From d399a297059c38a8aa8ade09903044d89431e32a Mon Sep 17 00:00:00 2001 From: TheCoreDev Date: Mon, 31 May 2021 16:48:14 +0200 Subject: [PATCH] Back-office : on affiche le prix TTC et plus HT --- local/local/.gitkeep | 0 local/local/I18n/.gitkeep | 0 local/local/backup/.gitkeep | 0 local/local/backup/update.sql | 11704 ---------------- local/local/config/.gitkeep | 0 local/local/config/.htaccess | 2 - local/local/config/Readme.md | 38 - local/local/config/build.properties.sample | 31 - local/local/config/composer.json | 10 - local/local/config/database.yml | 6 - local/local/config/database.yml.sample | 6 - local/local/config/schema.xml | 1938 --- local/local/media/.gitkeep | 0 .../images/carousel/banniere_5x106-2.jpg | Bin 96051 -> 0 bytes .../carousel/banniere_chutney_figue-1.jpg | Bin 138215 -> 0 bytes .../media/images/module/PayPal-1-logo.png | Bin 4196 -> 0 bytes .../media/images/product/cremecitron_1-1.jpg | Bin 38797 -> 0 bytes local/local/media/images/store/banner.jpg | Bin 74372 -> 0 bytes local/local/media/images/store/favicon.png | Bin 1415 -> 0 bytes local/local/media/images/store/logo.png | Bin 2593 -> 0 bytes local/local/modules/.gitkeep | 0 local/local/modules/Carousel/CHANGELOG.md | 6 - local/local/modules/Carousel/Carousel.php | 89 - .../local/modules/Carousel/Config/config.xml | 25 - .../local/modules/Carousel/Config/module.xml | 24 - .../local/modules/Carousel/Config/routing.xml | 42 - .../local/modules/Carousel/Config/schema.xml | 24 - .../modules/Carousel/Config/sql/destroy.sql | 6 - .../local/modules/Carousel/Config/thelia.sql | 43 - .../Controller/ConfigurationController.php | 184 - .../Carousel/Form/CarouselImageForm.php | 56 - .../Carousel/Form/CarouselUpdateForm.php | 166 - .../local/modules/Carousel/Hook/BackHook.php | 48 - .../I18n/backOffice/default/de_DE.php | 14 - .../I18n/backOffice/default/en_US.php | 14 - .../I18n/backOffice/default/fr_FR.php | 14 - .../I18n/backOffice/default/ru_RU.php | 14 - .../I18n/backOffice/default/tr_TR.php | 14 - local/local/modules/Carousel/I18n/de_DE.php | 20 - local/local/modules/Carousel/I18n/en_US.php | 20 - local/local/modules/Carousel/I18n/fr_FR.php | 20 - local/local/modules/Carousel/I18n/it_IT.php | 11 - local/local/modules/Carousel/I18n/tr_TR.php | 20 - .../modules/Carousel/Loop/CarouselLoop.php | 190 - .../modules/Carousel/Model/Base/Carousel.php | 1932 --- .../Carousel/Model/Base/CarouselI18n.php | 1500 -- .../Carousel/Model/Base/CarouselI18nQuery.php | 640 - .../Carousel/Model/Base/CarouselQuery.php | 753 - .../local/modules/Carousel/Model/Carousel.php | 113 - .../modules/Carousel/Model/CarouselI18n.php | 10 - .../modules/Carousel/Model/CarouselQuery.php | 25 - .../Model/Map/CarouselI18nTableMap.php | 506 - .../Carousel/Model/Map/CarouselTableMap.php | 475 - local/local/modules/Carousel/Readme.md | 62 - local/local/modules/Carousel/composer.json | 11 - .../default/assets/js/module-configuration.js | 6 - .../default/module_configuration.html | 136 - .../frontOffice/default/carousel.html | 24 - local/local/modules/Cheque/Cheque.php | 73 - local/local/modules/Cheque/Config/config.xml | 25 - local/local/modules/Cheque/Config/module.xml | 25 - local/local/modules/Cheque/Config/routing.xml | 9 - local/local/modules/Cheque/Config/setup.sql | 32 - .../Cheque/Controller/ConfigureController.php | 98 - .../modules/Cheque/Form/ConfigurationForm.php | 90 - .../local/modules/Cheque/Hook/HookManager.php | 34 - .../Cheque/I18n/backOffice/default/de_DE.php | 5 - .../Cheque/I18n/backOffice/default/en_US.php | 5 - .../Cheque/I18n/backOffice/default/fr_FR.php | 5 - .../Cheque/I18n/backOffice/default/tr_TR.php | 5 - local/local/modules/Cheque/I18n/de_DE.php | 11 - local/local/modules/Cheque/I18n/en_US.php | 11 - local/local/modules/Cheque/I18n/fr_FR.php | 11 - .../Cheque/I18n/frontOffice/default/de_DE.php | 6 - .../Cheque/I18n/frontOffice/default/en_US.php | 6 - .../Cheque/I18n/frontOffice/default/fr_FR.php | 6 - .../Cheque/I18n/frontOffice/default/tr_TR.php | 6 - local/local/modules/Cheque/I18n/tr_TR.php | 11 - .../Listener/SendPaymentConfirmationEmail.php | 85 - local/local/modules/Cheque/composer.json | 11 - local/local/modules/Cheque/images/cheque.png | Bin 24812 -> 0 bytes .../default/module_configuration.html | 55 - .../order-placed.additional-payment-info.html | 21 - local/local/modules/Colissimo/Colissimo.php | 177 - .../local/modules/Colissimo/Config/config.xml | 40 - .../local/modules/Colissimo/Config/module.xml | 18 - .../modules/Colissimo/Config/prices.json | 64 - .../modules/Colissimo/Config/routing.xml | 21 - .../local/modules/Colissimo/Config/thelia.sql | 32 - .../Colissimo/Controller/Configuration.php | 77 - .../Colissimo/Controller/EditPrices.php | 84 - .../modules/Colissimo/Controller/Export.php | 166 - .../Colissimo/Controller/FreeShipping.php | 62 - .../EventListener/AreaDeletedListener.php | 53 - .../modules/Colissimo/Form/Configuration.php | 59 - local/local/modules/Colissimo/Form/Export.php | 122 - .../modules/Colissimo/Form/FreeShipping.php | 62 - .../modules/Colissimo/Hook/HookManager.php | 31 - .../I18n/backOffice/default/de_DE.php | 25 - .../I18n/backOffice/default/en_US.php | 36 - .../I18n/backOffice/default/fr_FR.php | 37 - .../I18n/backOffice/default/it_IT.php | 13 - .../I18n/backOffice/default/tr_TR.php | 34 - local/local/modules/Colissimo/I18n/de_DE.php | 14 - local/local/modules/Colissimo/I18n/en_US.php | 14 - local/local/modules/Colissimo/I18n/fr_FR.php | 14 - local/local/modules/Colissimo/I18n/tr_TR.php | 14 - .../modules/Colissimo/Listener/SendMail.php | 104 - .../Colissimo/Loop/CheckRightsLoop.php | 100 - .../modules/Colissimo/Loop/NotSendLoop.php | 74 - local/local/modules/Colissimo/Loop/Price.php | 73 - .../Colissimo/Model/ColissimoQuery.php | 66 - .../Config/Base/ColissimoConfigValue.php | 25 - .../Model/Config/ColissimoConfigValue.php | 24 - local/local/modules/Colissimo/THELIA_INET.FMT | 23 - local/local/modules/Colissimo/composer.json | 11 - .../documentation/TarifsAvril2013.pdf | Bin 184810 -> 0 bytes .../Colissimo/documentation/readme.txt | 3 - .../assets/js/module-configuration-js.html | 36 - .../default/module_configuration.html | 316 - .../local/modules/FreeOrder/Config/config.xml | 6 - .../local/modules/FreeOrder/Config/module.xml | 27 - local/local/modules/FreeOrder/FreeOrder.php | 40 - local/local/modules/FreeOrder/LICENSE.txt | 165 - local/local/modules/FreeOrder/Readme.md | 25 - local/local/modules/FreeOrder/composer.json | 11 - local/local/modules/Front/Config/config.xml | 26 - local/local/modules/Front/Config/front.xml | 273 - local/local/modules/Front/Config/module.xml | 29 - .../Front/Controller/AddressController.php | 273 - .../Front/Controller/CartController.php | 237 - .../Front/Controller/ContactController.php | 84 - .../Front/Controller/CouponController.php | 159 - .../Front/Controller/CustomerController.php | 610 - .../Front/Controller/FeedController.php | 202 - .../Front/Controller/NewsletterController.php | 164 - .../Front/Controller/OrderController.php | 604 - .../Front/Controller/SitemapController.php | 150 - local/local/modules/Front/Front.php | 31 - local/local/modules/Front/I18n/de_DE.php | 22 - local/local/modules/Front/I18n/en_US.php | 24 - local/local/modules/Front/I18n/fr_FR.php | 23 - local/local/modules/Front/I18n/it_IT.php | 7 - local/local/modules/Front/I18n/tr_TR.php | 22 - local/local/modules/Front/LICENSE.txt | 165 - local/local/modules/Front/composer.json | 11 - .../modules/HookAdminHome/Config/config.xml | 35 - .../modules/HookAdminHome/Config/module.xml | 32 - .../modules/HookAdminHome/Config/routing.xml | 23 - .../Controller/HomeController.php | 154 - .../modules/HookAdminHome/Hook/AdminHook.php | 71 - .../modules/HookAdminHome/HookAdminHome.php | 21 - .../modules/HookAdminHome/I18n/ar_SA.php | 5 - .../I18n/backOffice/default/ar_SA.php | 11 - .../I18n/backOffice/default/cs_CZ.php | 31 - .../I18n/backOffice/default/de_DE.php | 30 - .../I18n/backOffice/default/en_US.php | 33 - .../I18n/backOffice/default/es_ES.php | 31 - .../I18n/backOffice/default/fr_FR.php | 33 - .../I18n/backOffice/default/it_IT.php | 32 - .../I18n/backOffice/default/pt_BR.php | 6 - .../I18n/backOffice/default/ru_RU.php | 31 - .../I18n/backOffice/default/tr_TR.php | 31 - .../modules/HookAdminHome/I18n/cs_CZ.php | 7 - .../modules/HookAdminHome/I18n/de_DE.php | 7 - .../modules/HookAdminHome/I18n/en_US.php | 7 - .../modules/HookAdminHome/I18n/es_ES.php | 6 - .../modules/HookAdminHome/I18n/fr_FR.php | 7 - .../modules/HookAdminHome/I18n/id_ID.php | 5 - .../modules/HookAdminHome/I18n/it_IT.php | 6 - .../modules/HookAdminHome/I18n/ru_RU.php | 7 - .../modules/HookAdminHome/I18n/tr_TR.php | 7 - local/local/modules/HookAdminHome/LICENSE.txt | 165 - .../local/modules/HookAdminHome/composer.json | 11 - .../default/ajax/thelia_news_feed.html | 29 - .../backOffice/default/assets/css/home.css | 1 - .../backOffice/default/assets/less/home.less | 45 - .../backOffice/default/block-information.html | 59 - .../default/block-month-sales-statistics.html | 48 - .../backOffice/default/block-news-js.html | 7 - .../backOffice/default/block-news.html | 5 - .../default/block-sales-statistics.html | 100 - .../default/block-statistics-js.html | 207 - .../backOffice/default/block-statistics.html | 34 - .../default/block-thelia-information.html | 20 - .../modules/HookAnalytics/Config/config.xml | 21 - .../modules/HookAnalytics/Config/module.xml | 24 - .../modules/HookAnalytics/Config/routing.xml | 10 - .../Controller/Configuration.php | 57 - .../HookAnalytics/Form/Configuration.php | 54 - .../modules/HookAnalytics/Hook/FrontHook.php | 33 - .../modules/HookAnalytics/HookAnalytics.php | 20 - .../I18n/backOffice/default/de_DE.php | 7 - .../I18n/backOffice/default/en_US.php | 7 - .../I18n/backOffice/default/fr_FR.php | 7 - .../I18n/backOffice/default/it_IT.php | 5 - .../I18n/backOffice/default/tr_TR.php | 7 - .../modules/HookAnalytics/I18n/de_DE.php | 5 - .../modules/HookAnalytics/I18n/en_US.php | 5 - .../modules/HookAnalytics/I18n/fr_FR.php | 5 - .../I18n/frontOffice/default/de_DE.php | 10 - .../I18n/frontOffice/default/en_US.php | 10 - .../I18n/frontOffice/default/fr_FR.php | 10 - .../I18n/frontOffice/default/it_IT.php | 10 - .../I18n/frontOffice/default/tr_TR.php | 10 - .../modules/HookAnalytics/I18n/it_IT.php | 5 - .../modules/HookAnalytics/I18n/tr_TR.php | 5 - local/local/modules/HookAnalytics/LICENSE.txt | 165 - .../local/modules/HookAnalytics/composer.json | 11 - .../default/assets/js/module-configuration.js | 29 - .../default/module_configuration.html | 52 - .../local/modules/HookCart/Config/config.xml | 15 - .../local/modules/HookCart/Config/module.xml | 24 - local/local/modules/HookCart/HookCart.php | 20 - .../I18n/frontOffice/default/de_DE.php | 9 - .../I18n/frontOffice/default/en_US.php | 9 - .../I18n/frontOffice/default/fr_FR.php | 9 - .../I18n/frontOffice/default/it_IT.php | 9 - .../I18n/frontOffice/default/tr_TR.php | 9 - local/local/modules/HookCart/LICENSE.txt | 165 - local/local/modules/HookCart/composer.json | 11 - .../frontOffice/default/assets/css/styles.css | 0 .../default/main-navbar-secondary.html | 3 - .../frontOffice/default/mini-cart.html | 81 - .../modules/HookContact/Config/config.xml | 13 - .../modules/HookContact/Config/module.xml | 24 - .../modules/HookContact/Hook/FrontHook.php | 39 - .../local/modules/HookContact/HookContact.php | 20 - .../local/modules/HookContact/I18n/de_DE.php | 5 - .../local/modules/HookContact/I18n/en_US.php | 5 - .../local/modules/HookContact/I18n/fr_FR.php | 5 - .../I18n/frontOffice/default/fr_FR.php | 5 - .../local/modules/HookContact/I18n/it_IT.php | 5 - .../local/modules/HookContact/I18n/tr_TR.php | 5 - local/local/modules/HookContact/LICENSE.txt | 165 - local/local/modules/HookContact/composer.json | 11 - .../frontOffice/default/main-footer-body.html | 25 - .../modules/HookCurrency/Config/config.xml | 13 - .../modules/HookCurrency/Config/module.xml | 24 - .../modules/HookCurrency/HookCurrency.php | 20 - local/local/modules/HookCurrency/LICENSE.txt | 165 - .../local/modules/HookCurrency/composer.json | 11 - .../default/main-navbar-secondary.html | 10 - .../modules/HookCustomer/Config/config.xml | 14 - .../modules/HookCustomer/Config/module.xml | 24 - .../modules/HookCustomer/HookCustomer.php | 20 - .../I18n/frontOffice/default/de_DE.php | 13 - .../I18n/frontOffice/default/en_US.php | 13 - .../I18n/frontOffice/default/fr_FR.php | 13 - .../I18n/frontOffice/default/it_IT.php | 13 - .../I18n/frontOffice/default/tr_TR.php | 13 - local/local/modules/HookCustomer/LICENSE.txt | 165 - .../local/modules/HookCustomer/composer.json | 11 - .../frontOffice/default/assets/css/styles.css | 0 .../default/main-navbar-secondary.html | 43 - .../local/modules/HookLang/Config/config.xml | 13 - .../local/modules/HookLang/Config/module.xml | 24 - local/local/modules/HookLang/HookLang.php | 20 - local/local/modules/HookLang/LICENSE.txt | 165 - local/local/modules/HookLang/composer.json | 11 - .../default/main-navbar-secondary.html | 10 - .../local/modules/HookLinks/Config/config.xml | 13 - .../local/modules/HookLinks/Config/module.xml | 24 - .../modules/HookLinks/Hook/FrontHook.php | 38 - local/local/modules/HookLinks/HookLinks.php | 20 - local/local/modules/HookLinks/I18n/de_DE.php | 5 - local/local/modules/HookLinks/I18n/en_US.php | 5 - local/local/modules/HookLinks/I18n/fr_FR.php | 5 - .../I18n/frontOffice/default/de_DE.php | 10 - .../I18n/frontOffice/default/en_US.php | 10 - .../I18n/frontOffice/default/fr_FR.php | 10 - .../I18n/frontOffice/default/it_IT.php | 10 - .../I18n/frontOffice/default/tr_TR.php | 10 - local/local/modules/HookLinks/I18n/it_IT.php | 5 - local/local/modules/HookLinks/I18n/tr_TR.php | 5 - local/local/modules/HookLinks/LICENSE.txt | 165 - local/local/modules/HookLinks/composer.json | 11 - .../frontOffice/default/main-footer-body.html | 15 - .../modules/HookNavigation/Config/config.xml | 17 - .../modules/HookNavigation/Config/module.xml | 24 - .../modules/HookNavigation/Config/routing.xml | 9 - .../HookNavigationConfigController.php | 75 - .../Form/HookNavigationConfigForm.php | 55 - .../modules/HookNavigation/Hook/FrontHook.php | 51 - .../modules/HookNavigation/HookNavigation.php | 24 - .../I18n/backOffice/default/de_DE.php | 11 - .../I18n/backOffice/default/en_US.php | 10 - .../I18n/backOffice/default/fr_FR.php | 10 - .../I18n/backOffice/default/it_IT.php | 7 - .../I18n/backOffice/default/tr_TR.php | 11 - .../modules/HookNavigation/I18n/en_US.php | 8 - .../modules/HookNavigation/I18n/fr_FR.php | 8 - .../I18n/frontOffice/default/de_DE.php | 6 - .../I18n/frontOffice/default/en_US.php | 8 - .../I18n/frontOffice/default/fr_FR.php | 8 - .../I18n/frontOffice/default/it_IT.php | 8 - .../I18n/frontOffice/default/tr_TR.php | 6 - .../modules/HookNavigation/I18n/it_IT.php | 5 - .../local/modules/HookNavigation/LICENSE.txt | 165 - .../Config/Base/HookNavigationConfigValue.php | 23 - .../Config/HookNavigationConfigValue.php | 23 - .../modules/HookNavigation/composer.json | 11 - .../default/hooknavigation-configuration.html | 116 - .../frontOffice/default/main-footer-body.html | 17 - .../default/main-footer-bottom.html | 7 - .../default/main-navbar-primary.html | 56 - .../modules/HookNewsletter/Config/config.xml | 13 - .../modules/HookNewsletter/Config/module.xml | 24 - .../modules/HookNewsletter/Hook/FrontHook.php | 37 - .../modules/HookNewsletter/HookNewsletter.php | 20 - .../modules/HookNewsletter/I18n/de_DE.php | 5 - .../modules/HookNewsletter/I18n/en_US.php | 5 - .../modules/HookNewsletter/I18n/fr_FR.php | 5 - .../I18n/frontOffice/default/de_DE.php | 8 - .../I18n/frontOffice/default/en_US.php | 8 - .../I18n/frontOffice/default/fr_FR.php | 8 - .../I18n/frontOffice/default/it_IT.php | 6 - .../I18n/frontOffice/default/tr_TR.php | 8 - .../modules/HookNewsletter/I18n/it_IT.php | 5 - .../modules/HookNewsletter/I18n/tr_TR.php | 5 - .../local/modules/HookNewsletter/LICENSE.txt | 165 - .../modules/HookNewsletter/composer.json | 11 - .../frontOffice/default/main-footer-body.html | 13 - .../modules/HookProductsNew/Config/config.xml | 13 - .../modules/HookProductsNew/Config/module.xml | 24 - .../HookProductsNew/HookProductsNew.php | 20 - .../I18n/frontOffice/default/de_DE.php | 6 - .../I18n/frontOffice/default/en_US.php | 6 - .../I18n/frontOffice/default/fr_FR.php | 6 - .../I18n/frontOffice/default/it_IT.php | 6 - .../I18n/frontOffice/default/tr_TR.php | 6 - .../local/modules/HookProductsNew/LICENSE.txt | 165 - .../modules/HookProductsNew/composer.json | 11 - .../frontOffice/default/home-body.html | 59 - .../HookProductsOffer/Config/config.xml | 13 - .../HookProductsOffer/Config/module.xml | 24 - .../HookProductsOffer/HookProductsOffer.php | 20 - .../I18n/frontOffice/default/de_DE.php | 6 - .../I18n/frontOffice/default/en_US.php | 6 - .../I18n/frontOffice/default/fr_FR.php | 6 - .../I18n/frontOffice/default/it_IT.php | 6 - .../I18n/frontOffice/default/tr_TR.php | 6 - .../modules/HookProductsOffer/LICENSE.txt | 165 - .../modules/HookProductsOffer/composer.json | 11 - .../frontOffice/default/home-body.html | 39 - .../modules/HookSearch/Config/config.xml | 15 - .../modules/HookSearch/Config/module.xml | 24 - local/local/modules/HookSearch/HookSearch.php | 20 - .../I18n/frontOffice/default/de_DE.php | 8 - .../I18n/frontOffice/default/en_US.php | 8 - .../I18n/frontOffice/default/fr_FR.php | 8 - .../I18n/frontOffice/default/it_IT.php | 8 - .../I18n/frontOffice/default/tr_TR.php | 8 - local/local/modules/HookSearch/LICENSE.txt | 165 - local/local/modules/HookSearch/composer.json | 11 - .../frontOffice/default/assets/css/styles.css | 11 - .../default/main-navbar-primary.html | 11 - .../default/main-navbar-secondary.html | 7 - .../modules/HookSocial/Config/config.xml | 21 - .../modules/HookSocial/Config/module.xml | 24 - .../modules/HookSocial/Config/routing.xml | 10 - .../HookSocial/Controller/Configuration.php | 61 - .../modules/HookSocial/Form/Configuration.php | 86 - .../modules/HookSocial/Hook/FrontHook.php | 37 - local/local/modules/HookSocial/HookSocial.php | 20 - .../I18n/backOffice/default/de_DE.php | 6 - .../I18n/backOffice/default/en_US.php | 7 - .../I18n/backOffice/default/fr_FR.php | 7 - .../I18n/backOffice/default/it_IT.php | 6 - .../I18n/backOffice/default/tr_TR.php | 7 - local/local/modules/HookSocial/I18n/de_DE.php | 12 - local/local/modules/HookSocial/I18n/en_US.php | 12 - local/local/modules/HookSocial/I18n/fr_FR.php | 12 - .../I18n/frontOffice/default/de_DE.php | 10 - .../I18n/frontOffice/default/en_US.php | 10 - .../I18n/frontOffice/default/fr_FR.php | 10 - .../I18n/frontOffice/default/it_IT.php | 10 - .../I18n/frontOffice/default/tr_TR.php | 10 - local/local/modules/HookSocial/I18n/it_IT.php | 12 - local/local/modules/HookSocial/I18n/tr_TR.php | 12 - local/local/modules/HookSocial/LICENSE.txt | 165 - local/local/modules/HookSocial/composer.json | 11 - .../default/assets/js/module-configuration.js | 28 - .../default/module_configuration.html | 94 - .../frontOffice/default/assets/css/styles.css | 0 .../frontOffice/default/main-footer-body.html | 86 - .../TheliaMigrateCountry/Config/config.xml | 27 - .../TheliaMigrateCountry/Config/routing.xml | 15 - .../Controller/MigrateController.php | 175 - .../EventListeners/MigrateCountryListener.php | 155 - .../Events/MigrateCountryEvent.php | 117 - .../Events/MigrateCountryEvents.php | 24 - .../Form/CountryStateMigrationForm.php | 54 - .../Form/Type/CountryStateMigrationType.php | 114 - .../I18n/backOffice/default/en_US.php | 31 - .../I18n/backOffice/default/fr_FR.php | 31 - .../I18n/backOffice/default/it_IT.php | 19 - .../TheliaMigrateCountry/I18n/en_US.php | 8 - .../TheliaMigrateCountry/I18n/fr_FR.php | 8 - .../TheliaMigrateCountry/I18n/it_IT.php | 8 - .../modules/TheliaMigrateCountry/LICENSE.txt | 165 - .../modules/TheliaMigrateCountry/Readme.md | 18 - .../TheliaMigrateCountry.php | 28 - .../TheliaMigrateCountry/composer.json | 11 - .../configuration-shipping-bottom.html | 6 - .../backOffice/default/countries-migrate.html | 299 - local/local/modules/TheliaSmarty/CREDITS.md | 40 - .../Compiler/RegisterParserPluginPass.php | 48 - .../modules/TheliaSmarty/Config/config.xml | 152 - .../modules/TheliaSmarty/Config/module.xml | 28 - .../local/modules/TheliaSmarty/I18n/en_US.php | 21 - .../local/modules/TheliaSmarty/I18n/fr_FR.php | 21 - .../local/modules/TheliaSmarty/I18n/tr_TR.php | 21 - local/local/modules/TheliaSmarty/LICENSE.txt | 165 - local/local/modules/TheliaSmarty/Readme.md | 2 - .../Template/AbstractSmartyPlugin.php | 97 - .../Template/Assets/SmartyAssetsManager.php | 268 - .../Template/Assets/SmartyAssetsResolver.php | 223 - .../Exception/SmartyPluginException.php | 22 - .../Template/Plugins/AdminUtilities.php | 172 - .../TheliaSmarty/Template/Plugins/Assets.php | 106 - .../TheliaSmarty/Template/Plugins/Cache.php | 124 - .../Template/Plugins/CartPostage.php | 251 - .../Template/Plugins/DataAccessFunctions.php | 961 -- .../TheliaSmarty/Template/Plugins/Esi.php | 73 - .../Template/Plugins/FlashMessage.php | 155 - .../TheliaSmarty/Template/Plugins/Form.php | 1029 -- .../TheliaSmarty/Template/Plugins/Format.php | 496 - .../TheliaSmarty/Template/Plugins/Hook.php | 476 - .../TheliaSmarty/Template/Plugins/Module.php | 104 - .../TheliaSmarty/Template/Plugins/Render.php | 167 - .../Template/Plugins/Security.php | 146 - .../Template/Plugins/TheliaLoop.php | 463 - .../Template/Plugins/Translation.php | 125 - .../TheliaSmarty/Template/Plugins/Type.php | 47 - .../Template/Plugins/UrlGenerator.php | 395 - .../TheliaSmarty/Template/SmartyHelper.php | 178 - .../TheliaSmarty/Template/SmartyParser.php | 514 - .../Template/SmartyPluginDescriptor.php | 92 - .../Plugin/Controller/TestController.php | 49 - .../Tests/Template/Plugin/FormTest.php | 186 - .../Tests/Template/Plugin/FormatTest.php | 234 - .../Tests/Template/Plugin/RenderTest.php | 80 - .../Template/Plugin/SmartyPluginTestCase.php | 112 - .../Tests/Template/Plugin/fixtures/test.html | 1 - .../Plugin/fixtures/testFormatMoney.html | 1 - .../Template/Plugin/fixtures/testMethod.html | 1 - .../Template/Plugin/fixtures/testParams.html | 1 - .../Plugin/fixtures/testQueryArray.html | 1 - .../Plugin/fixtures/testQueryString.html | 1 - .../Template/Plugin/fixtures/testRequest.html | 1 - .../Tests/Template/SmartyHelperTest.php | 128 - .../modules/TheliaSmarty/TheliaSmarty.php | 33 - .../local/modules/TheliaSmarty/composer.json | 11 - local/local/modules/Tinymce/CHANGELOG.md | 5 - local/local/modules/Tinymce/Config/config.xml | 25 - local/local/modules/Tinymce/Config/module.xml | 18 - .../local/modules/Tinymce/Config/routing.xml | 9 - .../Controller/ConfigureController.php | 128 - .../Tinymce/Form/ConfigurationForm.php | 161 - .../modules/Tinymce/Hook/HookManager.php | 31 - .../Tinymce/I18n/backOffice/default/de_DE.php | 5 - .../Tinymce/I18n/backOffice/default/en_US.php | 7 - .../Tinymce/I18n/backOffice/default/fr_FR.php | 17 - .../Tinymce/I18n/backOffice/default/tr_TR.php | 7 - local/local/modules/Tinymce/I18n/en_US.php | 15 - local/local/modules/Tinymce/I18n/fr_FR.php | 15 - local/local/modules/Tinymce/I18n/it_IT.php | 6 - local/local/modules/Tinymce/I18n/tr_TR.php | 15 - local/local/modules/Tinymce/LICENSE.txt | 165 - .../js/tinymce/filemanager/ajax_calls.php | 295 - .../js/tinymce/filemanager/config/.htaccess | 1 - .../js/tinymce/filemanager/config/config.php | 349 - .../css/bootstrap-lightbox.min.css | 6 - .../filemanager/css/bootstrap-modal.min.css | 8 - .../css/bootstrap-responsive.min.css | 9 - .../tinymce/filemanager/css/bootstrap.min.css | 9 - .../js/tinymce/filemanager/css/dropzone.css | 410 - .../tinymce/filemanager/css/dropzone.min.css | 1 - .../css/jquery.contextMenu.min.css | 38 - .../js/tinymce/filemanager/css/style.css | 1 - .../js/tinymce/filemanager/css/style.less | 926 -- .../js/tinymce/filemanager/dialog.php | 901 -- .../js/tinymce/filemanager/execute.php | 280 - .../js/tinymce/filemanager/force_download.php | 30 - .../filemanager/img/clipboard_apply.png | Bin 18029 -> 0 bytes .../filemanager/img/clipboard_clear.png | Bin 17840 -> 0 bytes .../js/tinymce/filemanager/img/copy.png | Bin 18072 -> 0 bytes .../js/tinymce/filemanager/img/cut.png | Bin 17849 -> 0 bytes .../js/tinymce/filemanager/img/date.png | Bin 1742 -> 0 bytes .../js/tinymce/filemanager/img/dimension.png | Bin 2076 -> 0 bytes .../js/tinymce/filemanager/img/door.png | Bin 412 -> 0 bytes .../js/tinymce/filemanager/img/down.png | Bin 1254 -> 0 bytes .../js/tinymce/filemanager/img/download.png | Bin 2325 -> 0 bytes .../js/tinymce/filemanager/img/duplicate.png | Bin 17917 -> 0 bytes .../js/tinymce/filemanager/img/edit_img.png | Bin 2154 -> 0 bytes .../img/glyphicons-halflings-white.png | Bin 23050 -> 0 bytes .../filemanager/img/glyphicons-halflings.png | Bin 29205 -> 0 bytes .../js/tinymce/filemanager/img/ico/ac3.jpg | Bin 1737 -> 0 bytes .../js/tinymce/filemanager/img/ico/accdb.jpg | Bin 3082 -> 0 bytes .../js/tinymce/filemanager/img/ico/ade.jpg | Bin 2958 -> 0 bytes .../js/tinymce/filemanager/img/ico/adp.jpg | Bin 2958 -> 0 bytes .../js/tinymce/filemanager/img/ico/ai.jpg | Bin 1818 -> 0 bytes .../js/tinymce/filemanager/img/ico/aiff.jpg | Bin 1778 -> 0 bytes .../js/tinymce/filemanager/img/ico/avi.jpg | Bin 1603 -> 0 bytes .../js/tinymce/filemanager/img/ico/bmp.jpg | Bin 2239 -> 0 bytes .../js/tinymce/filemanager/img/ico/css.jpg | Bin 1722 -> 0 bytes .../js/tinymce/filemanager/img/ico/csv.jpg | Bin 3052 -> 0 bytes .../tinymce/filemanager/img/ico/default.jpg | Bin 1780 -> 0 bytes .../js/tinymce/filemanager/img/ico/dmg.jpg | Bin 1624 -> 0 bytes .../js/tinymce/filemanager/img/ico/doc.jpg | Bin 3006 -> 0 bytes .../js/tinymce/filemanager/img/ico/docx.jpg | Bin 3006 -> 0 bytes .../tinymce/filemanager/img/ico/favicon.ico | Bin 1150 -> 0 bytes .../js/tinymce/filemanager/img/ico/fla.jpg | Bin 2208 -> 0 bytes .../js/tinymce/filemanager/img/ico/flv.jpg | Bin 2150 -> 0 bytes .../js/tinymce/filemanager/img/ico/folder.jpg | Bin 1906 -> 0 bytes .../js/tinymce/filemanager/img/ico/folder.png | Bin 4522 -> 0 bytes .../filemanager/img/ico/folder_back.jpg | Bin 1327 -> 0 bytes .../filemanager/img/ico/folder_back.png | Bin 2788 -> 0 bytes .../js/tinymce/filemanager/img/ico/gif.jpg | Bin 2239 -> 0 bytes .../js/tinymce/filemanager/img/ico/gz.jpg | Bin 1995 -> 0 bytes .../js/tinymce/filemanager/img/ico/html.jpg | Bin 2153 -> 0 bytes .../js/tinymce/filemanager/img/ico/iso.jpg | Bin 1608 -> 0 bytes .../js/tinymce/filemanager/img/ico/jpeg.jpg | Bin 2202 -> 0 bytes .../js/tinymce/filemanager/img/ico/jpg.jpg | Bin 2239 -> 0 bytes .../js/tinymce/filemanager/img/ico/log.jpg | Bin 1817 -> 0 bytes .../js/tinymce/filemanager/img/ico/m4a.jpg | Bin 1685 -> 0 bytes .../js/tinymce/filemanager/img/ico/mdb.jpg | Bin 3082 -> 0 bytes .../js/tinymce/filemanager/img/ico/mid.jpg | Bin 1655 -> 0 bytes .../js/tinymce/filemanager/img/ico/mov.jpg | Bin 1593 -> 0 bytes .../js/tinymce/filemanager/img/ico/mp3.jpg | Bin 1589 -> 0 bytes .../js/tinymce/filemanager/img/ico/mp4.jpg | Bin 1544 -> 0 bytes .../js/tinymce/filemanager/img/ico/mpeg.jpg | Bin 1613 -> 0 bytes .../js/tinymce/filemanager/img/ico/mpg.jpg | Bin 1606 -> 0 bytes .../js/tinymce/filemanager/img/ico/odb.jpg | Bin 1997 -> 0 bytes .../js/tinymce/filemanager/img/ico/odf.jpg | Bin 2016 -> 0 bytes .../js/tinymce/filemanager/img/ico/odg.jpg | Bin 1997 -> 0 bytes .../js/tinymce/filemanager/img/ico/odp.jpg | Bin 2016 -> 0 bytes .../js/tinymce/filemanager/img/ico/ods.jpg | Bin 1997 -> 0 bytes .../js/tinymce/filemanager/img/ico/odt.jpg | Bin 1997 -> 0 bytes .../js/tinymce/filemanager/img/ico/ogg.jpg | Bin 1705 -> 0 bytes .../js/tinymce/filemanager/img/ico/otg.jpg | Bin 1980 -> 0 bytes .../js/tinymce/filemanager/img/ico/otp.jpg | Bin 2005 -> 0 bytes .../js/tinymce/filemanager/img/ico/ots.jpg | Bin 1997 -> 0 bytes .../js/tinymce/filemanager/img/ico/ott.jpg | Bin 1997 -> 0 bytes .../js/tinymce/filemanager/img/ico/pdf.jpg | Bin 2089 -> 0 bytes .../js/tinymce/filemanager/img/ico/png.jpg | Bin 2239 -> 0 bytes .../js/tinymce/filemanager/img/ico/ppt.jpg | Bin 2769 -> 0 bytes .../js/tinymce/filemanager/img/ico/pptx.jpg | Bin 2893 -> 0 bytes .../js/tinymce/filemanager/img/ico/psd.jpg | Bin 2356 -> 0 bytes .../js/tinymce/filemanager/img/ico/rar.jpg | Bin 1995 -> 0 bytes .../js/tinymce/filemanager/img/ico/rtf.jpg | Bin 3006 -> 0 bytes .../js/tinymce/filemanager/img/ico/sql.jpg | Bin 1843 -> 0 bytes .../js/tinymce/filemanager/img/ico/svg.jpg | Bin 2239 -> 0 bytes .../js/tinymce/filemanager/img/ico/tar.jpg | Bin 2035 -> 0 bytes .../js/tinymce/filemanager/img/ico/tiff.jpg | Bin 2215 -> 0 bytes .../js/tinymce/filemanager/img/ico/txt.jpg | Bin 1817 -> 0 bytes .../js/tinymce/filemanager/img/ico/wav.jpg | Bin 1705 -> 0 bytes .../js/tinymce/filemanager/img/ico/webm.jpg | Bin 1603 -> 0 bytes .../js/tinymce/filemanager/img/ico/wma.jpg | Bin 1603 -> 0 bytes .../js/tinymce/filemanager/img/ico/xhtml.jpg | Bin 2101 -> 0 bytes .../js/tinymce/filemanager/img/ico/xls.jpg | Bin 2950 -> 0 bytes .../js/tinymce/filemanager/img/ico/xlsx.jpg | Bin 3025 -> 0 bytes .../js/tinymce/filemanager/img/ico/xml.jpg | Bin 1773 -> 0 bytes .../js/tinymce/filemanager/img/ico/zip.jpg | Bin 1995 -> 0 bytes .../tinymce/filemanager/img/ico_dark/ac3.jpg | Bin 3464 -> 0 bytes .../filemanager/img/ico_dark/accdb.jpg | Bin 4382 -> 0 bytes .../tinymce/filemanager/img/ico_dark/ade.jpg | Bin 4332 -> 0 bytes .../tinymce/filemanager/img/ico_dark/adp.jpg | Bin 4332 -> 0 bytes .../tinymce/filemanager/img/ico_dark/ai.jpg | Bin 3510 -> 0 bytes .../tinymce/filemanager/img/ico_dark/aiff.jpg | Bin 3468 -> 0 bytes .../tinymce/filemanager/img/ico_dark/avi.jpg | Bin 3467 -> 0 bytes .../tinymce/filemanager/img/ico_dark/bmp.jpg | Bin 3881 -> 0 bytes .../tinymce/filemanager/img/ico_dark/css.jpg | Bin 3450 -> 0 bytes .../tinymce/filemanager/img/ico_dark/csv.jpg | Bin 4417 -> 0 bytes .../filemanager/img/ico_dark/default.jpg | Bin 3783 -> 0 bytes .../tinymce/filemanager/img/ico_dark/dmg.jpg | Bin 3643 -> 0 bytes .../tinymce/filemanager/img/ico_dark/doc.jpg | Bin 4358 -> 0 bytes .../tinymce/filemanager/img/ico_dark/docx.jpg | Bin 4376 -> 0 bytes .../filemanager/img/ico_dark/favicon.ico | Bin 1150 -> 0 bytes .../tinymce/filemanager/img/ico_dark/fla.jpg | Bin 3791 -> 0 bytes .../tinymce/filemanager/img/ico_dark/flv.jpg | Bin 3712 -> 0 bytes .../filemanager/img/ico_dark/folder.jpg | Bin 15559 -> 0 bytes .../filemanager/img/ico_dark/folder.png | Bin 4252 -> 0 bytes .../filemanager/img/ico_dark/folder_back.jpg | Bin 15799 -> 0 bytes .../filemanager/img/ico_dark/folder_back.png | Bin 2788 -> 0 bytes .../tinymce/filemanager/img/ico_dark/gif.jpg | Bin 3881 -> 0 bytes .../tinymce/filemanager/img/ico_dark/gz.jpg | Bin 3495 -> 0 bytes .../tinymce/filemanager/img/ico_dark/html.jpg | Bin 3724 -> 0 bytes .../tinymce/filemanager/img/ico_dark/iso.jpg | Bin 3626 -> 0 bytes .../tinymce/filemanager/img/ico_dark/jpeg.jpg | Bin 3856 -> 0 bytes .../tinymce/filemanager/img/ico_dark/jpg.jpg | Bin 3881 -> 0 bytes .../tinymce/filemanager/img/ico_dark/log.jpg | Bin 3821 -> 0 bytes .../tinymce/filemanager/img/ico_dark/m4a.jpg | Bin 3399 -> 0 bytes .../tinymce/filemanager/img/ico_dark/mdb.jpg | Bin 4382 -> 0 bytes .../tinymce/filemanager/img/ico_dark/mid.jpg | Bin 3391 -> 0 bytes .../tinymce/filemanager/img/ico_dark/mov.jpg | Bin 3459 -> 0 bytes .../tinymce/filemanager/img/ico_dark/mp3.jpg | Bin 3335 -> 0 bytes .../tinymce/filemanager/img/ico_dark/mp4.jpg | Bin 3415 -> 0 bytes .../tinymce/filemanager/img/ico_dark/mpeg.jpg | Bin 3482 -> 0 bytes .../tinymce/filemanager/img/ico_dark/mpg.jpg | Bin 3466 -> 0 bytes .../tinymce/filemanager/img/ico_dark/odb.jpg | Bin 3655 -> 0 bytes .../tinymce/filemanager/img/ico_dark/odf.jpg | Bin 3664 -> 0 bytes .../tinymce/filemanager/img/ico_dark/odg.jpg | Bin 3655 -> 0 bytes .../tinymce/filemanager/img/ico_dark/odp.jpg | Bin 3664 -> 0 bytes .../tinymce/filemanager/img/ico_dark/ods.jpg | Bin 3655 -> 0 bytes .../tinymce/filemanager/img/ico_dark/odt.jpg | Bin 3655 -> 0 bytes .../tinymce/filemanager/img/ico_dark/ogg.jpg | Bin 3447 -> 0 bytes .../tinymce/filemanager/img/ico_dark/otg.jpg | Bin 3641 -> 0 bytes .../tinymce/filemanager/img/ico_dark/otp.jpg | Bin 3636 -> 0 bytes .../tinymce/filemanager/img/ico_dark/ots.jpg | Bin 3655 -> 0 bytes .../tinymce/filemanager/img/ico_dark/ott.jpg | Bin 3655 -> 0 bytes .../tinymce/filemanager/img/ico_dark/pdf.jpg | Bin 3716 -> 0 bytes .../tinymce/filemanager/img/ico_dark/png.jpg | Bin 3881 -> 0 bytes .../tinymce/filemanager/img/ico_dark/ppt.jpg | Bin 4144 -> 0 bytes .../tinymce/filemanager/img/ico_dark/pptx.jpg | Bin 4249 -> 0 bytes .../tinymce/filemanager/img/ico_dark/psd.jpg | Bin 3880 -> 0 bytes .../tinymce/filemanager/img/ico_dark/rar.jpg | Bin 3545 -> 0 bytes .../tinymce/filemanager/img/ico_dark/rtf.jpg | Bin 4358 -> 0 bytes .../tinymce/filemanager/img/ico_dark/sql.jpg | Bin 3871 -> 0 bytes .../tinymce/filemanager/img/ico_dark/svg.jpg | Bin 3881 -> 0 bytes .../tinymce/filemanager/img/ico_dark/tar.jpg | Bin 3527 -> 0 bytes .../tinymce/filemanager/img/ico_dark/tiff.jpg | Bin 3858 -> 0 bytes .../tinymce/filemanager/img/ico_dark/txt.jpg | Bin 3821 -> 0 bytes .../tinymce/filemanager/img/ico_dark/wav.jpg | Bin 3447 -> 0 bytes .../tinymce/filemanager/img/ico_dark/webm.jpg | Bin 3503 -> 0 bytes .../tinymce/filemanager/img/ico_dark/wma.jpg | Bin 3467 -> 0 bytes .../filemanager/img/ico_dark/xhtml.jpg | Bin 3670 -> 0 bytes .../tinymce/filemanager/img/ico_dark/xls.jpg | Bin 4417 -> 0 bytes .../tinymce/filemanager/img/ico_dark/xlsx.jpg | Bin 4507 -> 0 bytes .../tinymce/filemanager/img/ico_dark/xml.jpg | Bin 3788 -> 0 bytes .../tinymce/filemanager/img/ico_dark/zip.jpg | Bin 3495 -> 0 bytes .../js/tinymce/filemanager/img/info.png | Bin 1432 -> 0 bytes .../js/tinymce/filemanager/img/label.png | Bin 2658 -> 0 bytes .../js/tinymce/filemanager/img/loading.gif | Bin 1688 -> 0 bytes .../js/tinymce/filemanager/img/logo.png | Bin 34871 -> 0 bytes .../filemanager/img/page_white_add.png | Bin 442 -> 0 bytes .../filemanager/img/page_white_copy.png | Bin 309 -> 0 bytes .../filemanager/img/page_white_delete.png | Bin 1910 -> 0 bytes .../filemanager/img/page_white_edit.png | Bin 618 -> 0 bytes .../filemanager/img/page_white_paste.png | Bin 620 -> 0 bytes .../js/tinymce/filemanager/img/preview.png | Bin 2134 -> 0 bytes .../js/tinymce/filemanager/img/processing.gif | Bin 3209 -> 0 bytes .../js/tinymce/filemanager/img/rename.png | Bin 2022 -> 0 bytes .../js/tinymce/filemanager/img/size.png | Bin 2798 -> 0 bytes .../js/tinymce/filemanager/img/sort.png | Bin 1495 -> 0 bytes .../filemanager/img/spritemap@2x_en_EN.png | Bin 41065 -> 0 bytes .../filemanager/img/spritemap@2x_hu_HU.png | Bin 37736 -> 0 bytes .../filemanager/img/spritemap_en_EN.png | Bin 16954 -> 0 bytes .../filemanager/img/spritemap_hu_HU.png | Bin 17535 -> 0 bytes .../filemanager/img/storing_animation.gif | Bin 3887 -> 0 bytes .../js/tinymce/filemanager/img/up.png | Bin 1255 -> 0 bytes .../js/tinymce/filemanager/img/url.png | Bin 1583 -> 0 bytes .../js/tinymce/filemanager/img/zip.png | Bin 1773 -> 0 bytes .../include/php_image_magician.php | 3320 ----- .../js/tinymce/filemanager/include/utils.php | 486 - .../tinymce/filemanager/jPlayer/Jplayer.swf | Bin 14085 -> 0 bytes .../jPlayer/add-on/jplayer.playlist.min.js | 34 - .../add-on/jquery.jplayer.inspector.js | 338 - .../filemanager/jPlayer/jquery.jplayer.min.js | 107 - .../jPlayer/popcorn/popcorn.jplayer.js | 558 - .../skin/blue.monday/jplayer.blue.monday.css | 640 - .../skin/blue.monday/jplayer.blue.monday.jpg | Bin 16871 -> 0 bytes .../jplayer.blue.monday.seeking.gif | Bin 3284 -> 0 bytes .../jplayer.blue.monday.video.play.png | Bin 17692 -> 0 bytes .../blue.monday/spirites_blue.monday_2011.pxm | Bin 320476 -> 0 bytes .../js/tinymce/filemanager/js/bootbox.min.js | 6 - .../filemanager/js/bootstrap-lightbox.min.js | 1 - .../filemanager/js/bootstrap-modal.min.js | 1 - .../js/bootstrap-modalmanager.min.js | 1 - .../tinymce/filemanager/js/bootstrap.min.js | 6 - .../js/tinymce/filemanager/js/dropzone.min.js | 1 - .../filemanager/js/imagesloaded.pkgd.min.js | 6 - .../js/tinymce/filemanager/js/include.js | 1080 -- .../js/tinymce/filemanager/js/include.min.js | 1 - .../filemanager/js/jquery-ui-1.10.4.custom.js | 2789 ---- .../js/jquery-ui-1.10.4.custom.min.js | 6 - .../filemanager/js/jquery.contextMenu.js | 1686 --- .../filemanager/js/jquery.contextMenu.min.js | 1 - .../js/tinymce/filemanager/js/jquery.js | 5 - .../filemanager/js/jquery.queryloader2.min.js | 1 - .../filemanager/js/jquery.touchSwipe.min.js | 1 - .../filemanager/js/jquery.ui.position.js | 497 - .../filemanager/js/jquery.ui.position.min.js | 1 - .../filemanager/js/modernizr.custom.js | 4 - .../js/tinymce/filemanager/lang/az_AZ.php | 77 - .../js/tinymce/filemanager/lang/bg_BG.php | 77 - .../js/tinymce/filemanager/lang/ca.php | 77 - .../js/tinymce/filemanager/lang/cs.php | 77 - .../js/tinymce/filemanager/lang/de.php | 77 - .../js/tinymce/filemanager/lang/el_GR.php | 77 - .../js/tinymce/filemanager/lang/en_EN.php | 78 - .../js/tinymce/filemanager/lang/es.php | 77 - .../js/tinymce/filemanager/lang/fa.php | 77 - .../js/tinymce/filemanager/lang/fr_FR.php | 77 - .../js/tinymce/filemanager/lang/hr.php | 77 - .../js/tinymce/filemanager/lang/hr_HR.php | 77 - .../js/tinymce/filemanager/lang/hu_HU.php | 77 - .../js/tinymce/filemanager/lang/id.php | 77 - .../js/tinymce/filemanager/lang/it.php | 77 - .../js/tinymce/filemanager/lang/lt.php | 76 - .../js/tinymce/filemanager/lang/mn_MN.php | 77 - .../js/tinymce/filemanager/lang/nb_NO.php | 77 - .../js/tinymce/filemanager/lang/nl.php | 77 - .../js/tinymce/filemanager/lang/pl.php | 78 - .../js/tinymce/filemanager/lang/pt_BR.php | 77 - .../js/tinymce/filemanager/lang/pt_PT.php | 77 - .../js/tinymce/filemanager/lang/ru.php | 77 - .../js/tinymce/filemanager/lang/sk.php | 77 - .../js/tinymce/filemanager/lang/sl.php | 77 - .../js/tinymce/filemanager/lang/sv_SE.php | 77 - .../js/tinymce/filemanager/lang/tr_TR.php | 77 - .../js/tinymce/filemanager/lang/uk_UA.php | 77 - .../js/tinymce/filemanager/lang/zh_CN.php | 78 - .../js/tinymce/filemanager/plugin.js | 63 - .../js/tinymce/filemanager/plugin.min.js | 9 - .../js/tinymce/filemanager/upload.php | 132 - .../js/tinymce/filemanager/uploader/index.php | 142 - .../tinymce/filemanager/uploader/jupload.php | 767 - .../tinymce/filemanager/uploader/success.jpg | Bin 8021 -> 0 bytes .../tinymce/filemanager/uploader/success.php | 15 - .../filemanager/uploader/wjhk.jupload.jar | Bin 343591 -> 0 bytes .../Tinymce/Resources/js/tinymce/langs/cs.js | 197 - .../Tinymce/Resources/js/tinymce/langs/de.js | 197 - .../Tinymce/Resources/js/tinymce/langs/es.js | 197 - .../Resources/js/tinymce/langs/fr_FR.js | 197 - .../Tinymce/Resources/js/tinymce/langs/it.js | 197 - .../Resources/js/tinymce/langs/readme.md | 3 - .../Tinymce/Resources/js/tinymce/langs/ru.js | 197 - .../Tinymce/Resources/js/tinymce/license.txt | 504 - .../js/tinymce/plugins/advlist/plugin.min.js | 1 - .../js/tinymce/plugins/anchor/plugin.min.js | 1 - .../js/tinymce/plugins/autolink/plugin.min.js | 1 - .../tinymce/plugins/autoresize/plugin.min.js | 1 - .../js/tinymce/plugins/autosave/plugin.min.js | 1 - .../js/tinymce/plugins/bbcode/plugin.min.js | 1 - .../js/tinymce/plugins/charmap/plugin.min.js | 1 - .../js/tinymce/plugins/code/plugin.min.js | 1 - .../tinymce/plugins/codesample/css/prism.css | 138 - .../tinymce/plugins/codesample/plugin.min.js | 1 - .../tinymce/plugins/colorpicker/plugin.min.js | 1 - .../tinymce/plugins/contextmenu/plugin.min.js | 1 - .../plugins/directionality/plugin.min.js | 1 - .../plugins/emoticons/img/smiley-cool.gif | Bin 354 -> 0 bytes .../plugins/emoticons/img/smiley-cry.gif | Bin 329 -> 0 bytes .../emoticons/img/smiley-embarassed.gif | Bin 331 -> 0 bytes .../emoticons/img/smiley-foot-in-mouth.gif | Bin 342 -> 0 bytes .../plugins/emoticons/img/smiley-frown.gif | Bin 340 -> 0 bytes .../plugins/emoticons/img/smiley-innocent.gif | Bin 336 -> 0 bytes .../plugins/emoticons/img/smiley-kiss.gif | Bin 338 -> 0 bytes .../plugins/emoticons/img/smiley-laughing.gif | Bin 343 -> 0 bytes .../emoticons/img/smiley-money-mouth.gif | Bin 321 -> 0 bytes .../plugins/emoticons/img/smiley-sealed.gif | Bin 323 -> 0 bytes .../plugins/emoticons/img/smiley-smile.gif | Bin 344 -> 0 bytes .../emoticons/img/smiley-surprised.gif | Bin 338 -> 0 bytes .../emoticons/img/smiley-tongue-out.gif | Bin 328 -> 0 bytes .../emoticons/img/smiley-undecided.gif | Bin 337 -> 0 bytes .../plugins/emoticons/img/smiley-wink.gif | Bin 350 -> 0 bytes .../plugins/emoticons/img/smiley-yell.gif | Bin 336 -> 0 bytes .../tinymce/plugins/emoticons/plugin.min.js | 1 - .../js/tinymce/plugins/example/dialog.html | 8 - .../js/tinymce/plugins/example/plugin.min.js | 1 - .../plugins/example_dependency/plugin.min.js | 1 - .../js/tinymce/plugins/fullpage/plugin.min.js | 1 - .../tinymce/plugins/fullscreen/plugin.min.js | 1 - .../js/tinymce/plugins/hr/plugin.min.js | 1 - .../js/tinymce/plugins/image/plugin.min.js | 1 - .../tinymce/plugins/imagetools/plugin.min.js | 1 - .../tinymce/plugins/importcss/plugin.min.js | 1 - .../plugins/insertdatetime/plugin.min.js | 1 - .../js/tinymce/plugins/layer/plugin.min.js | 1 - .../plugins/legacyoutput/plugin.min.js | 1 - .../js/tinymce/plugins/link/plugin.min.js | 1 - .../js/tinymce/plugins/lists/plugin.min.js | 1 - .../js/tinymce/plugins/media/moxieplayer.swf | Bin 20017 -> 0 bytes .../js/tinymce/plugins/media/plugin.min.js | 1 - .../tinymce/plugins/nonbreaking/plugin.min.js | 1 - .../tinymce/plugins/noneditable/plugin.min.js | 1 - .../tinymce/plugins/pagebreak/plugin.min.js | 1 - .../js/tinymce/plugins/paste/plugin.min.js | 1 - .../js/tinymce/plugins/preview/plugin.min.js | 1 - .../js/tinymce/plugins/print/plugin.min.js | 1 - .../responsivefilemanager/editor_plugin.js | 126 - .../responsivefilemanager/img/insertfile.gif | Bin 3325 -> 0 bytes .../plugins/responsivefilemanager/plugin.js | 79 - .../responsivefilemanager/plugin.min.js | 9 - .../js/tinymce/plugins/save/plugin.min.js | 1 - .../plugins/searchreplace/plugin.min.js | 1 - .../plugins/spellchecker/plugin.min.js | 1 - .../js/tinymce/plugins/tabfocus/plugin.min.js | 1 - .../js/tinymce/plugins/table/plugin.min.js | 2 - .../js/tinymce/plugins/template/plugin.min.js | 1 - .../tinymce/plugins/textcolor/plugin.min.js | 1 - .../tinymce/plugins/textpattern/plugin.min.js | 1 - .../plugins/visualblocks/css/visualblocks.css | 135 - .../plugins/visualblocks/plugin.min.js | 1 - .../tinymce/plugins/visualchars/plugin.min.js | 1 - .../tinymce/plugins/wordcount/plugin.min.js | 1 - .../js/tinymce/plugins/youtube/README.md | 78 - .../js/tinymce/plugins/youtube/css/styles.css | 9 - .../youtube/img/Google-YouTube-128.png | Bin 11800 -> 0 bytes .../tinymce/plugins/youtube/img/youtube.gif | Bin 212 -> 0 bytes .../js/tinymce/plugins/youtube/js/main.js | 807 -- .../plugins/youtube/js/vendor/jquery.js | 6 - .../js/tinymce/plugins/youtube/langs/de.js | 10 - .../js/tinymce/plugins/youtube/langs/en.js | 12 - .../js/tinymce/plugins/youtube/langs/es.js | 10 - .../js/tinymce/plugins/youtube/langs/fr_FR.js | 12 - .../js/tinymce/plugins/youtube/langs/hu.js | 10 - .../js/tinymce/plugins/youtube/langs/it.js | 10 - .../js/tinymce/plugins/youtube/langs/pl.js | 10 - .../js/tinymce/plugins/youtube/langs/pt_BR.js | 10 - .../js/tinymce/plugins/youtube/langs/ru.js | 10 - .../js/tinymce/plugins/youtube/plugin.js | 51 - .../js/tinymce/plugins/youtube/plugin.min.js | 22 - .../tinymce/plugins/youtube/view/forms.html | 65 - .../js/tinymce/plugins/youtube/youtube.html | 20 - .../skins/lightgray/content.inline.min.css | 154 - .../tinymce/skins/lightgray/content.min.css | 1 - .../skins/lightgray/fonts/tinymce-small.eot | Bin 9492 -> 0 bytes .../skins/lightgray/fonts/tinymce-small.svg | 63 - .../skins/lightgray/fonts/tinymce-small.ttf | Bin 9304 -> 0 bytes .../skins/lightgray/fonts/tinymce-small.woff | Bin 9380 -> 0 bytes .../tinymce/skins/lightgray/fonts/tinymce.eot | Bin 14308 -> 0 bytes .../tinymce/skins/lightgray/fonts/tinymce.svg | 98 - .../tinymce/skins/lightgray/fonts/tinymce.ttf | Bin 14144 -> 0 bytes .../skins/lightgray/fonts/tinymce.woff | Bin 14220 -> 0 bytes .../js/tinymce/skins/lightgray/img/anchor.gif | Bin 53 -> 0 bytes .../js/tinymce/skins/lightgray/img/loader.gif | Bin 2608 -> 0 bytes .../js/tinymce/skins/lightgray/img/object.gif | Bin 152 -> 0 bytes .../js/tinymce/skins/lightgray/img/trans.gif | Bin 43 -> 0 bytes .../tinymce/skins/lightgray/skin.ie7.min.css | 1 - .../js/tinymce/skins/lightgray/skin.min.css | 1 - .../js/tinymce/themes/modern/theme.min.js | 1 - .../Resources/js/tinymce/tinymce.min.js | 13 - .../Tinymce/Smarty/TinyMCELanguage.php | 73 - local/local/modules/Tinymce/Tinymce.php | 108 - local/local/modules/Tinymce/composer.json | 11 - .../backOffice/default/assets/css/editor.less | 6 - .../default/module_configuration.html | 106 - .../backOffice/default/tinymce_init.tpl | 119 - .../modules/VirtualProductControl/LICENSE.txt | 165 - .../VirtualProductDelivery/LICENSE.txt | 165 - local/local/session/.gitkeep | 0 .../sess_117e6a88059df20ba267cd892f37f062 | Bin 1368 -> 0 bytes .../sess_b2ebbea5872c07bdbca4633b47b06839 | Bin 1296 -> 0 bytes .../sess_e75e78f2de193f9ab052b17b210c8df4 | Bin 1364 -> 0 bytes .../SessionPurge/Command/SessionPurge.php | 83 + local/modules/SessionPurge/Config/config.xml | 17 + .../Config/module.xml | 16 +- local/modules/SessionPurge/Config/routing.xml | 11 + .../SessionPurge/Config/secret-key.txt | 1 + .../Controller/PurgeController.php | 60 + .../SessionPurge/Event/SessionPurgeEvent.php | 91 + .../EventListener/EventManager.php | 70 + local/modules/SessionPurge/LICENSE.txt | 674 + local/modules/SessionPurge/Readme.md | 73 + .../SessionPurge.php} | 6 +- .../composer.json | 6 +- local/modules/Sitemap/Config/config.xml | 39 + .../Sitemap}/Config/module.xml | 16 +- local/modules/Sitemap/Config/routing.xml | 23 + local/modules/Sitemap/Config/schema.xml | 16 + local/modules/Sitemap/Config/sqldb.map | 2 + local/modules/Sitemap/Config/thelia.sql | 24 + .../Sitemap/Config/update/sql/1.5.0.sql | 24 + .../Sitemap/Controller/BrandSitemapTrait.php | 107 + .../Controller/CategorySitemapTrait.php | 150 + .../Controller/ContentSitemapTrait.php | 107 + .../Sitemap/Controller/FolderSitemapTrait.php | 144 + .../Sitemap/Controller/ProductImageTrait.php | 131 + .../Controller/ProductSitemapTrait.php | 106 + .../Controller/SitemapConfigController.php | 156 + .../Sitemap/Controller/SitemapController.php | 284 + .../modules/Sitemap/Event/SitemapEndEvent.php | 26 + local/modules/Sitemap/Event/SitemapEvent.php | 103 + .../Sitemap/EventListeners/EventManager.php | 208 + .../Sitemap/Form/SitemapConfigForm.php | 107 + local/modules/Sitemap/Hook/SitemapHook.php | 81 + .../Sitemap/I18n/backOffice/default/en_US.php | 12 + .../Sitemap/I18n/backOffice/default/fr_FR.php | 13 + local/modules/Sitemap/I18n/en_US.php | 21 + local/modules/Sitemap/I18n/fr_FR.php | 23 + .../Model/Base/SitemapPriority.php} | 632 +- .../Model/Base/SitemapPriorityQuery.php | 627 + .../Model/Map/SitemapPriorityTableMap.php} | 176 +- .../modules/Sitemap/Model/SitemapPriority.php | 10 + .../Sitemap/Model/SitemapPriorityQuery.php} | 10 +- local/modules/Sitemap/Readme.md | 30 + local/modules/Sitemap/Sitemap.php | 72 + .../FreeOrder => Sitemap}/composer.json | 4 +- .../default/generic-sitemap-definition.html | 1 + .../default/sitemap-configuration.html | 290 + .../VirtualProductControl/Config/config.xml | 0 .../VirtualProductControl/Config/module.xml | 0 .../Hook/VirtualProductHook.php | 0 .../I18n/backOffice/default/de_DE.php | 0 .../I18n/backOffice/default/en_US.php | 0 .../I18n/backOffice/default/fr_FR.php | 0 .../I18n/backOffice/default/it_IT.php | 0 .../I18n/backOffice/default/tr_TR.php | 0 .../VirtualProductControl/I18n/de_DE.php | 0 .../VirtualProductControl/I18n/en_US.php | 0 .../VirtualProductControl/I18n/fr_FR.php | 0 .../VirtualProductControl/I18n/it_IT.php | 0 .../VirtualProductControl/I18n/tr_TR.php | 0 .../VirtualProductControl}/LICENSE.txt | 0 .../VirtualProductControl.php | 0 .../VirtualProductControl/composer.json | 0 .../default/virtual-delivery-warning.html | 0 .../VirtualProductDelivery/Config/config.xml | 0 .../VirtualProductDelivery/Config/module.xml | 0 .../EventListeners/SendMail.php | 0 .../EventListeners/VirtualProductEvents.php | 0 .../Events/VirtualProductDeliveryEvents.php | 0 .../Hook/HookManager.php | 0 .../VirtualProductDelivery/I18n/de_DE.php | 0 .../I18n/email/default/en_US.php | 0 .../I18n/email/default/fr_FR.php | 0 .../I18n/email/default/it_IT.php | 0 .../I18n/email/default/tr_TR.php | 0 .../VirtualProductDelivery/I18n/en_US.php | 0 .../VirtualProductDelivery/I18n/fr_FR.php | 0 .../I18n/frontOffice/default/de_DE.php | 0 .../I18n/frontOffice/default/en_US.php | 0 .../I18n/frontOffice/default/fr_FR.php | 0 .../I18n/frontOffice/default/it_IT.php | 0 .../I18n/frontOffice/default/tr_TR.php | 0 .../VirtualProductDelivery/I18n/it_IT.php | 0 .../I18n/pdf/default/de_DE.php | 0 .../I18n/pdf/default/en_US.php | 0 .../I18n/pdf/default/fr_FR.php | 0 .../I18n/pdf/default/it_IT.php | 0 .../I18n/pdf/default/tr_TR.php | 0 .../VirtualProductDelivery/I18n/tr_TR.php | 0 .../VirtualProductDelivery}/LICENSE.txt | 0 .../VirtualProductDelivery.php | 0 .../VirtualProductDelivery/composer.json | 0 .../default/virtual-product-download.html | 0 .../default/virtual-product-download.txt | 0 .../default/account-order-after-products.html | 0 .../frontOffice/default/delivery-address.html | 0 .../pdf/default/delivery-address.html | 0 local/modules/modules/.gitkeep | 0 local/modules/modules/Carousel/CHANGELOG.md | 6 - local/modules/modules/Carousel/Carousel.php | 89 - .../modules/Carousel/Config/config.xml | 25 - .../modules/Carousel/Config/module.xml | 24 - .../modules/Carousel/Config/routing.xml | 42 - .../modules/Carousel/Config/schema.xml | 24 - .../modules/Carousel/Config/sql/destroy.sql | 6 - .../modules/Carousel/Config/thelia.sql | 43 - .../Controller/ConfigurationController.php | 184 - .../Carousel/Form/CarouselImageForm.php | 56 - .../Carousel/Form/CarouselUpdateForm.php | 166 - .../modules/Carousel/Hook/BackHook.php | 48 - .../I18n/backOffice/default/de_DE.php | 14 - .../I18n/backOffice/default/en_US.php | 14 - .../I18n/backOffice/default/fr_FR.php | 14 - .../I18n/backOffice/default/ru_RU.php | 14 - .../I18n/backOffice/default/tr_TR.php | 14 - local/modules/modules/Carousel/I18n/de_DE.php | 20 - local/modules/modules/Carousel/I18n/en_US.php | 20 - local/modules/modules/Carousel/I18n/fr_FR.php | 20 - local/modules/modules/Carousel/I18n/it_IT.php | 11 - local/modules/modules/Carousel/I18n/tr_TR.php | 20 - .../modules/Carousel/Loop/CarouselLoop.php | 190 - .../modules/Carousel/Model/Base/Carousel.php | 1932 --- .../Carousel/Model/Base/CarouselI18nQuery.php | 640 - .../Carousel/Model/Base/CarouselQuery.php | 753 - .../modules/Carousel/Model/Carousel.php | 113 - .../modules/Carousel/Model/CarouselI18n.php | 10 - .../Carousel/Model/CarouselI18nQuery.php | 21 - .../modules/Carousel/Model/CarouselQuery.php | 25 - .../Model/Map/CarouselI18nTableMap.php | 506 - local/modules/modules/Carousel/Readme.md | 62 - local/modules/modules/Carousel/composer.json | 11 - .../default/assets/js/module-configuration.js | 6 - .../default/module_configuration.html | 136 - .../frontOffice/default/carousel.html | 24 - local/modules/modules/Cheque/Cheque.php | 73 - .../modules/modules/Cheque/Config/config.xml | 25 - .../modules/modules/Cheque/Config/module.xml | 25 - .../modules/modules/Cheque/Config/routing.xml | 9 - local/modules/modules/Cheque/Config/setup.sql | 32 - .../Cheque/Controller/ConfigureController.php | 98 - .../modules/Cheque/Form/ConfigurationForm.php | 90 - .../modules/Cheque/Hook/HookManager.php | 34 - .../Cheque/I18n/backOffice/default/de_DE.php | 5 - .../Cheque/I18n/backOffice/default/en_US.php | 5 - .../Cheque/I18n/backOffice/default/fr_FR.php | 5 - .../Cheque/I18n/backOffice/default/tr_TR.php | 5 - local/modules/modules/Cheque/I18n/de_DE.php | 11 - local/modules/modules/Cheque/I18n/en_US.php | 11 - local/modules/modules/Cheque/I18n/fr_FR.php | 11 - .../Cheque/I18n/frontOffice/default/de_DE.php | 6 - .../Cheque/I18n/frontOffice/default/en_US.php | 6 - .../Cheque/I18n/frontOffice/default/fr_FR.php | 6 - .../Cheque/I18n/frontOffice/default/tr_TR.php | 6 - local/modules/modules/Cheque/I18n/tr_TR.php | 11 - local/modules/modules/Cheque/LICENSE.txt | 165 - .../Listener/SendPaymentConfirmationEmail.php | 85 - local/modules/modules/Cheque/composer.json | 11 - .../modules/modules/Cheque/images/cheque.png | Bin 24812 -> 0 bytes .../default/module_configuration.html | 55 - .../order-placed.additional-payment-info.html | 21 - local/modules/modules/Colissimo/Colissimo.php | 177 - .../modules/Colissimo/Config/config.xml | 40 - .../modules/Colissimo/Config/module.xml | 18 - .../modules/Colissimo/Config/prices.json | 64 - .../modules/Colissimo/Config/routing.xml | 21 - .../modules/Colissimo/Config/thelia.sql | 32 - .../Colissimo/Controller/Configuration.php | 77 - .../Colissimo/Controller/EditPrices.php | 84 - .../modules/Colissimo/Controller/Export.php | 166 - .../Colissimo/Controller/FreeShipping.php | 62 - .../EventListener/AreaDeletedListener.php | 53 - .../modules/Colissimo/Form/Configuration.php | 59 - .../modules/modules/Colissimo/Form/Export.php | 122 - .../modules/Colissimo/Form/FreeShipping.php | 62 - .../modules/Colissimo/Hook/HookManager.php | 31 - .../I18n/backOffice/default/de_DE.php | 25 - .../I18n/backOffice/default/en_US.php | 36 - .../I18n/backOffice/default/fr_FR.php | 37 - .../I18n/backOffice/default/it_IT.php | 13 - .../I18n/backOffice/default/tr_TR.php | 34 - .../modules/modules/Colissimo/I18n/de_DE.php | 14 - .../modules/modules/Colissimo/I18n/en_US.php | 14 - .../modules/modules/Colissimo/I18n/fr_FR.php | 14 - .../modules/modules/Colissimo/I18n/tr_TR.php | 14 - local/modules/modules/Colissimo/LICENSE.txt | 165 - .../modules/Colissimo/Listener/SendMail.php | 104 - .../Colissimo/Loop/CheckRightsLoop.php | 100 - .../modules/Colissimo/Loop/NotSendLoop.php | 74 - .../modules/modules/Colissimo/Loop/Price.php | 73 - .../Colissimo/Model/ColissimoQuery.php | 66 - .../Config/Base/ColissimoConfigValue.php | 25 - .../Model/Config/ColissimoConfigValue.php | 24 - .../modules/modules/Colissimo/THELIA_INET.FMT | 23 - local/modules/modules/Colissimo/composer.json | 11 - .../documentation/TarifsAvril2013.pdf | Bin 184810 -> 0 bytes .../Colissimo/documentation/readme.txt | 3 - .../assets/js/module-configuration-js.html | 36 - .../default/module_configuration.html | 316 - .../modules/FreeOrder/Config/config.xml | 6 - .../modules/FreeOrder/Config/module.xml | 27 - local/modules/modules/FreeOrder/FreeOrder.php | 40 - local/modules/modules/FreeOrder/LICENSE.txt | 165 - local/modules/modules/FreeOrder/Readme.md | 25 - local/modules/modules/Front/Config/config.xml | 26 - local/modules/modules/Front/Config/front.xml | 273 - local/modules/modules/Front/Config/module.xml | 29 - .../Front/Controller/AddressController.php | 273 - .../Front/Controller/CartController.php | 237 - .../Front/Controller/ContactController.php | 84 - .../Front/Controller/CouponController.php | 159 - .../Front/Controller/CustomerController.php | 610 - .../Front/Controller/FeedController.php | 202 - .../Front/Controller/NewsletterController.php | 164 - .../Front/Controller/OrderController.php | 604 - .../Front/Controller/SitemapController.php | 150 - local/modules/modules/Front/Front.php | 31 - local/modules/modules/Front/I18n/de_DE.php | 22 - local/modules/modules/Front/I18n/en_US.php | 24 - local/modules/modules/Front/I18n/fr_FR.php | 23 - local/modules/modules/Front/I18n/it_IT.php | 7 - local/modules/modules/Front/I18n/tr_TR.php | 22 - local/modules/modules/Front/LICENSE.txt | 165 - local/modules/modules/Front/composer.json | 11 - .../modules/HookAdminHome/Config/config.xml | 35 - .../modules/HookAdminHome/Config/routing.xml | 23 - .../Controller/HomeController.php | 154 - .../modules/HookAdminHome/Hook/AdminHook.php | 71 - .../modules/HookAdminHome/I18n/ar_SA.php | 5 - .../I18n/backOffice/default/ar_SA.php | 11 - .../I18n/backOffice/default/cs_CZ.php | 31 - .../I18n/backOffice/default/de_DE.php | 30 - .../I18n/backOffice/default/en_US.php | 33 - .../I18n/backOffice/default/es_ES.php | 31 - .../I18n/backOffice/default/fr_FR.php | 33 - .../I18n/backOffice/default/it_IT.php | 32 - .../I18n/backOffice/default/pt_BR.php | 6 - .../I18n/backOffice/default/ru_RU.php | 31 - .../I18n/backOffice/default/tr_TR.php | 31 - .../modules/HookAdminHome/I18n/cs_CZ.php | 7 - .../modules/HookAdminHome/I18n/de_DE.php | 7 - .../modules/HookAdminHome/I18n/en_US.php | 7 - .../modules/HookAdminHome/I18n/es_ES.php | 6 - .../modules/HookAdminHome/I18n/fr_FR.php | 7 - .../modules/HookAdminHome/I18n/id_ID.php | 5 - .../modules/HookAdminHome/I18n/it_IT.php | 6 - .../modules/HookAdminHome/I18n/ru_RU.php | 7 - .../modules/HookAdminHome/I18n/tr_TR.php | 7 - .../modules/modules/HookAdminHome/LICENSE.txt | 165 - .../default/ajax/thelia_news_feed.html | 29 - .../backOffice/default/assets/css/home.css | 1 - .../backOffice/default/assets/less/home.less | 45 - .../backOffice/default/block-information.html | 59 - .../default/block-month-sales-statistics.html | 48 - .../backOffice/default/block-news-js.html | 7 - .../backOffice/default/block-news.html | 5 - .../default/block-sales-statistics.html | 100 - .../default/block-statistics-js.html | 207 - .../backOffice/default/block-statistics.html | 34 - .../default/block-thelia-information.html | 20 - .../modules/HookAnalytics/Config/config.xml | 21 - .../modules/HookAnalytics/Config/module.xml | 24 - .../modules/HookAnalytics/Config/routing.xml | 10 - .../Controller/Configuration.php | 57 - .../HookAnalytics/Form/Configuration.php | 54 - .../modules/HookAnalytics/Hook/FrontHook.php | 33 - .../modules/HookAnalytics/HookAnalytics.php | 20 - .../I18n/backOffice/default/de_DE.php | 7 - .../I18n/backOffice/default/en_US.php | 7 - .../I18n/backOffice/default/fr_FR.php | 7 - .../I18n/backOffice/default/it_IT.php | 5 - .../I18n/backOffice/default/tr_TR.php | 7 - .../modules/HookAnalytics/I18n/de_DE.php | 5 - .../modules/HookAnalytics/I18n/en_US.php | 5 - .../modules/HookAnalytics/I18n/fr_FR.php | 5 - .../I18n/frontOffice/default/de_DE.php | 10 - .../I18n/frontOffice/default/en_US.php | 10 - .../I18n/frontOffice/default/fr_FR.php | 10 - .../I18n/frontOffice/default/it_IT.php | 10 - .../I18n/frontOffice/default/tr_TR.php | 10 - .../modules/HookAnalytics/I18n/it_IT.php | 5 - .../modules/HookAnalytics/I18n/tr_TR.php | 5 - .../modules/modules/HookAnalytics/LICENSE.txt | 165 - .../modules/HookAnalytics/composer.json | 11 - .../default/assets/js/module-configuration.js | 29 - .../default/module_configuration.html | 52 - .../modules/HookCart/Config/config.xml | 15 - .../modules/HookCart/Config/module.xml | 24 - local/modules/modules/HookCart/HookCart.php | 20 - .../I18n/frontOffice/default/de_DE.php | 9 - .../I18n/frontOffice/default/en_US.php | 9 - .../I18n/frontOffice/default/fr_FR.php | 9 - .../I18n/frontOffice/default/it_IT.php | 9 - .../I18n/frontOffice/default/tr_TR.php | 9 - local/modules/modules/HookCart/LICENSE.txt | 165 - local/modules/modules/HookCart/composer.json | 11 - .../frontOffice/default/assets/css/styles.css | 0 .../default/main-navbar-secondary.html | 3 - .../frontOffice/default/mini-cart.html | 81 - .../modules/HookContact/Config/config.xml | 13 - .../modules/HookContact/Config/module.xml | 24 - .../modules/HookContact/Hook/FrontHook.php | 39 - .../modules/HookContact/HookContact.php | 20 - .../modules/HookContact/I18n/de_DE.php | 5 - .../modules/HookContact/I18n/en_US.php | 5 - .../modules/HookContact/I18n/fr_FR.php | 5 - .../I18n/frontOffice/default/fr_FR.php | 5 - .../modules/HookContact/I18n/it_IT.php | 5 - .../modules/HookContact/I18n/tr_TR.php | 5 - local/modules/modules/HookContact/LICENSE.txt | 165 - .../modules/modules/HookContact/composer.json | 11 - .../frontOffice/default/main-footer-body.html | 25 - .../modules/HookCurrency/Config/config.xml | 13 - .../modules/HookCurrency/Config/module.xml | 24 - .../modules/HookCurrency/HookCurrency.php | 20 - .../modules/modules/HookCurrency/LICENSE.txt | 165 - .../modules/HookCurrency/composer.json | 11 - .../default/main-navbar-secondary.html | 10 - .../modules/HookCustomer/Config/config.xml | 14 - .../modules/HookCustomer/Config/module.xml | 24 - .../modules/HookCustomer/HookCustomer.php | 20 - .../I18n/frontOffice/default/de_DE.php | 13 - .../I18n/frontOffice/default/en_US.php | 13 - .../I18n/frontOffice/default/fr_FR.php | 13 - .../I18n/frontOffice/default/it_IT.php | 13 - .../I18n/frontOffice/default/tr_TR.php | 13 - .../modules/modules/HookCustomer/LICENSE.txt | 165 - .../modules/HookCustomer/composer.json | 11 - .../frontOffice/default/assets/css/styles.css | 0 .../default/main-navbar-secondary.html | 43 - .../modules/HookLang/Config/config.xml | 13 - .../modules/HookLang/Config/module.xml | 24 - local/modules/modules/HookLang/HookLang.php | 20 - local/modules/modules/HookLang/LICENSE.txt | 165 - local/modules/modules/HookLang/composer.json | 11 - .../default/main-navbar-secondary.html | 10 - .../modules/HookLinks/Config/config.xml | 13 - .../modules/HookLinks/Config/module.xml | 24 - .../modules/HookLinks/Hook/FrontHook.php | 38 - local/modules/modules/HookLinks/HookLinks.php | 20 - .../modules/modules/HookLinks/I18n/de_DE.php | 5 - .../modules/modules/HookLinks/I18n/en_US.php | 5 - .../modules/modules/HookLinks/I18n/fr_FR.php | 5 - .../I18n/frontOffice/default/de_DE.php | 10 - .../I18n/frontOffice/default/en_US.php | 10 - .../I18n/frontOffice/default/fr_FR.php | 10 - .../I18n/frontOffice/default/it_IT.php | 10 - .../I18n/frontOffice/default/tr_TR.php | 10 - .../modules/modules/HookLinks/I18n/it_IT.php | 5 - .../modules/modules/HookLinks/I18n/tr_TR.php | 5 - local/modules/modules/HookLinks/LICENSE.txt | 165 - local/modules/modules/HookLinks/composer.json | 11 - .../frontOffice/default/main-footer-body.html | 15 - .../modules/HookNavigation/Config/config.xml | 17 - .../modules/HookNavigation/Config/module.xml | 24 - .../modules/HookNavigation/Config/routing.xml | 9 - .../HookNavigationConfigController.php | 75 - .../Form/HookNavigationConfigForm.php | 55 - .../modules/HookNavigation/Hook/FrontHook.php | 51 - .../modules/HookNavigation/HookNavigation.php | 24 - .../I18n/backOffice/default/de_DE.php | 11 - .../I18n/backOffice/default/en_US.php | 10 - .../I18n/backOffice/default/fr_FR.php | 10 - .../I18n/backOffice/default/it_IT.php | 7 - .../I18n/backOffice/default/tr_TR.php | 11 - .../modules/HookNavigation/I18n/en_US.php | 8 - .../modules/HookNavigation/I18n/fr_FR.php | 8 - .../I18n/frontOffice/default/de_DE.php | 6 - .../I18n/frontOffice/default/en_US.php | 8 - .../I18n/frontOffice/default/fr_FR.php | 8 - .../I18n/frontOffice/default/it_IT.php | 8 - .../I18n/frontOffice/default/tr_TR.php | 6 - .../modules/HookNavigation/I18n/it_IT.php | 5 - .../modules/HookNavigation/LICENSE.txt | 165 - .../Config/Base/HookNavigationConfigValue.php | 23 - .../Config/HookNavigationConfigValue.php | 23 - .../modules/HookNavigation/composer.json | 11 - .../default/hooknavigation-configuration.html | 116 - .../frontOffice/default/main-footer-body.html | 17 - .../default/main-footer-bottom.html | 7 - .../default/main-navbar-primary.html | 56 - .../modules/HookNewsletter/Config/config.xml | 13 - .../modules/HookNewsletter/Config/module.xml | 24 - .../modules/HookNewsletter/Hook/FrontHook.php | 37 - .../modules/HookNewsletter/HookNewsletter.php | 20 - .../modules/HookNewsletter/I18n/de_DE.php | 5 - .../modules/HookNewsletter/I18n/en_US.php | 5 - .../modules/HookNewsletter/I18n/fr_FR.php | 5 - .../I18n/frontOffice/default/de_DE.php | 8 - .../I18n/frontOffice/default/en_US.php | 8 - .../I18n/frontOffice/default/fr_FR.php | 8 - .../I18n/frontOffice/default/it_IT.php | 6 - .../I18n/frontOffice/default/tr_TR.php | 8 - .../modules/HookNewsletter/I18n/it_IT.php | 5 - .../modules/HookNewsletter/I18n/tr_TR.php | 5 - .../modules/HookNewsletter/LICENSE.txt | 165 - .../modules/HookNewsletter/composer.json | 11 - .../frontOffice/default/main-footer-body.html | 13 - .../modules/HookProductsNew/Config/config.xml | 13 - .../modules/HookProductsNew/Config/module.xml | 24 - .../HookProductsNew/HookProductsNew.php | 20 - .../I18n/frontOffice/default/de_DE.php | 6 - .../I18n/frontOffice/default/en_US.php | 6 - .../I18n/frontOffice/default/fr_FR.php | 6 - .../I18n/frontOffice/default/it_IT.php | 6 - .../I18n/frontOffice/default/tr_TR.php | 6 - .../modules/HookProductsNew/LICENSE.txt | 165 - .../modules/HookProductsNew/composer.json | 11 - .../frontOffice/default/home-body.html | 59 - .../HookProductsOffer/Config/config.xml | 13 - .../HookProductsOffer/Config/module.xml | 24 - .../HookProductsOffer/HookProductsOffer.php | 20 - .../I18n/frontOffice/default/de_DE.php | 6 - .../I18n/frontOffice/default/en_US.php | 6 - .../I18n/frontOffice/default/fr_FR.php | 6 - .../I18n/frontOffice/default/it_IT.php | 6 - .../I18n/frontOffice/default/tr_TR.php | 6 - .../modules/HookProductsOffer/LICENSE.txt | 165 - .../modules/HookProductsOffer/composer.json | 11 - .../frontOffice/default/home-body.html | 39 - .../modules/HookSearch/Config/config.xml | 15 - .../modules/HookSearch/Config/module.xml | 24 - .../modules/modules/HookSearch/HookSearch.php | 20 - .../I18n/frontOffice/default/de_DE.php | 8 - .../I18n/frontOffice/default/en_US.php | 8 - .../I18n/frontOffice/default/fr_FR.php | 8 - .../I18n/frontOffice/default/it_IT.php | 8 - .../I18n/frontOffice/default/tr_TR.php | 8 - local/modules/modules/HookSearch/LICENSE.txt | 165 - .../modules/modules/HookSearch/composer.json | 11 - .../frontOffice/default/assets/css/styles.css | 11 - .../default/main-navbar-primary.html | 11 - .../default/main-navbar-secondary.html | 7 - .../modules/HookSocial/Config/config.xml | 21 - .../modules/HookSocial/Config/module.xml | 24 - .../modules/HookSocial/Config/routing.xml | 10 - .../HookSocial/Controller/Configuration.php | 61 - .../modules/HookSocial/Form/Configuration.php | 86 - .../modules/HookSocial/Hook/FrontHook.php | 37 - .../modules/modules/HookSocial/HookSocial.php | 20 - .../I18n/backOffice/default/de_DE.php | 6 - .../I18n/backOffice/default/en_US.php | 7 - .../I18n/backOffice/default/fr_FR.php | 7 - .../I18n/backOffice/default/it_IT.php | 6 - .../I18n/backOffice/default/tr_TR.php | 7 - .../modules/modules/HookSocial/I18n/de_DE.php | 12 - .../modules/modules/HookSocial/I18n/en_US.php | 12 - .../modules/modules/HookSocial/I18n/fr_FR.php | 12 - .../I18n/frontOffice/default/de_DE.php | 10 - .../I18n/frontOffice/default/en_US.php | 10 - .../I18n/frontOffice/default/fr_FR.php | 10 - .../I18n/frontOffice/default/it_IT.php | 10 - .../I18n/frontOffice/default/tr_TR.php | 10 - .../modules/modules/HookSocial/I18n/it_IT.php | 12 - .../modules/modules/HookSocial/I18n/tr_TR.php | 12 - local/modules/modules/HookSocial/LICENSE.txt | 165 - .../modules/modules/HookSocial/composer.json | 11 - .../default/assets/js/module-configuration.js | 28 - .../default/module_configuration.html | 94 - .../frontOffice/default/assets/css/styles.css | 0 .../frontOffice/default/main-footer-body.html | 86 - .../TheliaMigrateCountry/Config/config.xml | 27 - .../TheliaMigrateCountry/Config/module.xml | 26 - .../TheliaMigrateCountry/Config/routing.xml | 15 - .../Controller/MigrateController.php | 175 - .../EventListeners/MigrateCountryListener.php | 155 - .../Events/MigrateCountryEvent.php | 117 - .../Events/MigrateCountryEvents.php | 24 - .../Form/CountryStateMigrationForm.php | 54 - .../Form/Type/CountryStateMigrationType.php | 114 - .../I18n/backOffice/default/en_US.php | 31 - .../I18n/backOffice/default/fr_FR.php | 31 - .../I18n/backOffice/default/it_IT.php | 19 - .../TheliaMigrateCountry/I18n/en_US.php | 8 - .../TheliaMigrateCountry/I18n/fr_FR.php | 8 - .../TheliaMigrateCountry/I18n/it_IT.php | 8 - .../modules/TheliaMigrateCountry/LICENSE.txt | 165 - .../modules/TheliaMigrateCountry/Readme.md | 18 - .../TheliaMigrateCountry.php | 28 - .../TheliaMigrateCountry/composer.json | 11 - .../configuration-shipping-bottom.html | 6 - .../backOffice/default/countries-migrate.html | 299 - local/modules/modules/TheliaSmarty/CREDITS.md | 40 - .../Compiler/RegisterParserPluginPass.php | 48 - .../modules/TheliaSmarty/Config/config.xml | 152 - .../modules/TheliaSmarty/Config/module.xml | 28 - .../modules/TheliaSmarty/I18n/en_US.php | 21 - .../modules/TheliaSmarty/I18n/fr_FR.php | 21 - .../modules/TheliaSmarty/I18n/tr_TR.php | 21 - .../modules/modules/TheliaSmarty/LICENSE.txt | 165 - local/modules/modules/TheliaSmarty/Readme.md | 2 - .../Template/AbstractSmartyPlugin.php | 97 - .../Template/Assets/SmartyAssetsManager.php | 268 - .../Template/Assets/SmartyAssetsResolver.php | 223 - .../Exception/SmartyPluginException.php | 22 - .../Template/Plugins/AdminUtilities.php | 172 - .../TheliaSmarty/Template/Plugins/Assets.php | 106 - .../TheliaSmarty/Template/Plugins/Cache.php | 124 - .../Template/Plugins/CartPostage.php | 251 - .../Template/Plugins/DataAccessFunctions.php | 961 -- .../TheliaSmarty/Template/Plugins/Esi.php | 73 - .../Template/Plugins/FlashMessage.php | 155 - .../TheliaSmarty/Template/Plugins/Form.php | 1029 -- .../TheliaSmarty/Template/Plugins/Format.php | 496 - .../TheliaSmarty/Template/Plugins/Hook.php | 476 - .../TheliaSmarty/Template/Plugins/Module.php | 104 - .../TheliaSmarty/Template/Plugins/Render.php | 167 - .../Template/Plugins/Security.php | 146 - .../Template/Plugins/TheliaLoop.php | 463 - .../Template/Plugins/Translation.php | 125 - .../TheliaSmarty/Template/Plugins/Type.php | 47 - .../Template/Plugins/UrlGenerator.php | 395 - .../TheliaSmarty/Template/SmartyHelper.php | 178 - .../TheliaSmarty/Template/SmartyParser.php | 514 - .../Template/SmartyPluginDescriptor.php | 92 - .../Plugin/Controller/TestController.php | 49 - .../Tests/Template/Plugin/FormTest.php | 186 - .../Tests/Template/Plugin/FormatTest.php | 234 - .../Tests/Template/Plugin/RenderTest.php | 80 - .../Template/Plugin/SmartyPluginTestCase.php | 112 - .../Tests/Template/Plugin/fixtures/test.html | 1 - .../Plugin/fixtures/testFormatMoney.html | 1 - .../Template/Plugin/fixtures/testMethod.html | 1 - .../Template/Plugin/fixtures/testParams.html | 1 - .../Plugin/fixtures/testQueryArray.html | 1 - .../Plugin/fixtures/testQueryString.html | 1 - .../Template/Plugin/fixtures/testRequest.html | 1 - .../Tests/Template/SmartyHelperTest.php | 128 - .../modules/TheliaSmarty/TheliaSmarty.php | 33 - .../modules/TheliaSmarty/composer.json | 11 - local/modules/modules/Tinymce/CHANGELOG.md | 5 - .../modules/modules/Tinymce/Config/config.xml | 25 - .../modules/modules/Tinymce/Config/module.xml | 18 - .../modules/Tinymce/Config/routing.xml | 9 - .../Controller/ConfigureController.php | 128 - .../Tinymce/Form/ConfigurationForm.php | 161 - .../modules/Tinymce/Hook/HookManager.php | 31 - .../Tinymce/I18n/backOffice/default/de_DE.php | 5 - .../Tinymce/I18n/backOffice/default/en_US.php | 7 - .../Tinymce/I18n/backOffice/default/fr_FR.php | 17 - .../Tinymce/I18n/backOffice/default/tr_TR.php | 7 - local/modules/modules/Tinymce/I18n/en_US.php | 15 - local/modules/modules/Tinymce/I18n/fr_FR.php | 15 - local/modules/modules/Tinymce/I18n/it_IT.php | 6 - local/modules/modules/Tinymce/I18n/tr_TR.php | 15 - local/modules/modules/Tinymce/LICENSE.txt | 165 - .../js/tinymce/filemanager/ajax_calls.php | 295 - .../js/tinymce/filemanager/config/.htaccess | 1 - .../js/tinymce/filemanager/config/config.php | 349 - .../css/bootstrap-lightbox.min.css | 6 - .../filemanager/css/bootstrap-modal.min.css | 8 - .../css/bootstrap-responsive.min.css | 9 - .../tinymce/filemanager/css/bootstrap.min.css | 9 - .../js/tinymce/filemanager/css/dropzone.css | 410 - .../tinymce/filemanager/css/dropzone.min.css | 1 - .../css/jquery.contextMenu.min.css | 38 - .../js/tinymce/filemanager/css/style.css | 1 - .../js/tinymce/filemanager/css/style.less | 926 -- .../js/tinymce/filemanager/dialog.php | 901 -- .../js/tinymce/filemanager/execute.php | 280 - .../js/tinymce/filemanager/force_download.php | 30 - .../filemanager/img/clipboard_apply.png | Bin 18029 -> 0 bytes .../filemanager/img/clipboard_clear.png | Bin 17840 -> 0 bytes .../js/tinymce/filemanager/img/copy.png | Bin 18072 -> 0 bytes .../js/tinymce/filemanager/img/cut.png | Bin 17849 -> 0 bytes .../js/tinymce/filemanager/img/date.png | Bin 1742 -> 0 bytes .../js/tinymce/filemanager/img/dimension.png | Bin 2076 -> 0 bytes .../js/tinymce/filemanager/img/door.png | Bin 412 -> 0 bytes .../js/tinymce/filemanager/img/down.png | Bin 1254 -> 0 bytes .../js/tinymce/filemanager/img/download.png | Bin 2325 -> 0 bytes .../js/tinymce/filemanager/img/duplicate.png | Bin 17917 -> 0 bytes .../js/tinymce/filemanager/img/edit_img.png | Bin 2154 -> 0 bytes .../img/glyphicons-halflings-white.png | Bin 23050 -> 0 bytes .../filemanager/img/glyphicons-halflings.png | Bin 29205 -> 0 bytes .../js/tinymce/filemanager/img/ico/ac3.jpg | Bin 1737 -> 0 bytes .../js/tinymce/filemanager/img/ico/accdb.jpg | Bin 3082 -> 0 bytes .../js/tinymce/filemanager/img/ico/ade.jpg | Bin 2958 -> 0 bytes .../js/tinymce/filemanager/img/ico/adp.jpg | Bin 2958 -> 0 bytes .../js/tinymce/filemanager/img/ico/ai.jpg | Bin 1818 -> 0 bytes .../js/tinymce/filemanager/img/ico/aiff.jpg | Bin 1778 -> 0 bytes .../js/tinymce/filemanager/img/ico/avi.jpg | Bin 1603 -> 0 bytes .../js/tinymce/filemanager/img/ico/bmp.jpg | Bin 2239 -> 0 bytes .../js/tinymce/filemanager/img/ico/css.jpg | Bin 1722 -> 0 bytes .../js/tinymce/filemanager/img/ico/csv.jpg | Bin 3052 -> 0 bytes .../tinymce/filemanager/img/ico/default.jpg | Bin 1780 -> 0 bytes .../js/tinymce/filemanager/img/ico/dmg.jpg | Bin 1624 -> 0 bytes .../js/tinymce/filemanager/img/ico/doc.jpg | Bin 3006 -> 0 bytes .../js/tinymce/filemanager/img/ico/docx.jpg | Bin 3006 -> 0 bytes .../tinymce/filemanager/img/ico/favicon.ico | Bin 1150 -> 0 bytes .../js/tinymce/filemanager/img/ico/fla.jpg | Bin 2208 -> 0 bytes .../js/tinymce/filemanager/img/ico/flv.jpg | Bin 2150 -> 0 bytes .../js/tinymce/filemanager/img/ico/folder.jpg | Bin 1906 -> 0 bytes .../js/tinymce/filemanager/img/ico/folder.png | Bin 4522 -> 0 bytes .../filemanager/img/ico/folder_back.jpg | Bin 1327 -> 0 bytes .../filemanager/img/ico/folder_back.png | Bin 2788 -> 0 bytes .../js/tinymce/filemanager/img/ico/gif.jpg | Bin 2239 -> 0 bytes .../js/tinymce/filemanager/img/ico/gz.jpg | Bin 1995 -> 0 bytes .../js/tinymce/filemanager/img/ico/html.jpg | Bin 2153 -> 0 bytes .../js/tinymce/filemanager/img/ico/iso.jpg | Bin 1608 -> 0 bytes .../js/tinymce/filemanager/img/ico/jpeg.jpg | Bin 2202 -> 0 bytes .../js/tinymce/filemanager/img/ico/jpg.jpg | Bin 2239 -> 0 bytes .../js/tinymce/filemanager/img/ico/log.jpg | Bin 1817 -> 0 bytes .../js/tinymce/filemanager/img/ico/m4a.jpg | Bin 1685 -> 0 bytes .../js/tinymce/filemanager/img/ico/mdb.jpg | Bin 3082 -> 0 bytes .../js/tinymce/filemanager/img/ico/mid.jpg | Bin 1655 -> 0 bytes .../js/tinymce/filemanager/img/ico/mov.jpg | Bin 1593 -> 0 bytes .../js/tinymce/filemanager/img/ico/mp3.jpg | Bin 1589 -> 0 bytes .../js/tinymce/filemanager/img/ico/mp4.jpg | Bin 1544 -> 0 bytes .../js/tinymce/filemanager/img/ico/mpeg.jpg | Bin 1613 -> 0 bytes .../js/tinymce/filemanager/img/ico/mpg.jpg | Bin 1606 -> 0 bytes .../js/tinymce/filemanager/img/ico/odb.jpg | Bin 1997 -> 0 bytes .../js/tinymce/filemanager/img/ico/odf.jpg | Bin 2016 -> 0 bytes .../js/tinymce/filemanager/img/ico/odg.jpg | Bin 1997 -> 0 bytes .../js/tinymce/filemanager/img/ico/odp.jpg | Bin 2016 -> 0 bytes .../js/tinymce/filemanager/img/ico/ods.jpg | Bin 1997 -> 0 bytes .../js/tinymce/filemanager/img/ico/odt.jpg | Bin 1997 -> 0 bytes .../js/tinymce/filemanager/img/ico/ogg.jpg | Bin 1705 -> 0 bytes .../js/tinymce/filemanager/img/ico/otg.jpg | Bin 1980 -> 0 bytes .../js/tinymce/filemanager/img/ico/otp.jpg | Bin 2005 -> 0 bytes .../js/tinymce/filemanager/img/ico/ots.jpg | Bin 1997 -> 0 bytes .../js/tinymce/filemanager/img/ico/ott.jpg | Bin 1997 -> 0 bytes .../js/tinymce/filemanager/img/ico/pdf.jpg | Bin 2089 -> 0 bytes .../js/tinymce/filemanager/img/ico/png.jpg | Bin 2239 -> 0 bytes .../js/tinymce/filemanager/img/ico/ppt.jpg | Bin 2769 -> 0 bytes .../js/tinymce/filemanager/img/ico/pptx.jpg | Bin 2893 -> 0 bytes .../js/tinymce/filemanager/img/ico/psd.jpg | Bin 2356 -> 0 bytes .../js/tinymce/filemanager/img/ico/rar.jpg | Bin 1995 -> 0 bytes .../js/tinymce/filemanager/img/ico/rtf.jpg | Bin 3006 -> 0 bytes .../js/tinymce/filemanager/img/ico/sql.jpg | Bin 1843 -> 0 bytes .../js/tinymce/filemanager/img/ico/svg.jpg | Bin 2239 -> 0 bytes .../js/tinymce/filemanager/img/ico/tar.jpg | Bin 2035 -> 0 bytes .../js/tinymce/filemanager/img/ico/tiff.jpg | Bin 2215 -> 0 bytes .../js/tinymce/filemanager/img/ico/txt.jpg | Bin 1817 -> 0 bytes .../js/tinymce/filemanager/img/ico/wav.jpg | Bin 1705 -> 0 bytes .../js/tinymce/filemanager/img/ico/webm.jpg | Bin 1603 -> 0 bytes .../js/tinymce/filemanager/img/ico/wma.jpg | Bin 1603 -> 0 bytes .../js/tinymce/filemanager/img/ico/xhtml.jpg | Bin 2101 -> 0 bytes .../js/tinymce/filemanager/img/ico/xls.jpg | Bin 2950 -> 0 bytes .../js/tinymce/filemanager/img/ico/xlsx.jpg | Bin 3025 -> 0 bytes .../js/tinymce/filemanager/img/ico/xml.jpg | Bin 1773 -> 0 bytes .../js/tinymce/filemanager/img/ico/zip.jpg | Bin 1995 -> 0 bytes .../tinymce/filemanager/img/ico_dark/ac3.jpg | Bin 3464 -> 0 bytes .../filemanager/img/ico_dark/accdb.jpg | Bin 4382 -> 0 bytes .../tinymce/filemanager/img/ico_dark/ade.jpg | Bin 4332 -> 0 bytes .../tinymce/filemanager/img/ico_dark/adp.jpg | Bin 4332 -> 0 bytes .../tinymce/filemanager/img/ico_dark/ai.jpg | Bin 3510 -> 0 bytes .../tinymce/filemanager/img/ico_dark/aiff.jpg | Bin 3468 -> 0 bytes .../tinymce/filemanager/img/ico_dark/avi.jpg | Bin 3467 -> 0 bytes .../tinymce/filemanager/img/ico_dark/bmp.jpg | Bin 3881 -> 0 bytes .../tinymce/filemanager/img/ico_dark/css.jpg | Bin 3450 -> 0 bytes .../tinymce/filemanager/img/ico_dark/csv.jpg | Bin 4417 -> 0 bytes .../filemanager/img/ico_dark/default.jpg | Bin 3783 -> 0 bytes .../tinymce/filemanager/img/ico_dark/dmg.jpg | Bin 3643 -> 0 bytes .../tinymce/filemanager/img/ico_dark/doc.jpg | Bin 4358 -> 0 bytes .../tinymce/filemanager/img/ico_dark/docx.jpg | Bin 4376 -> 0 bytes .../filemanager/img/ico_dark/favicon.ico | Bin 1150 -> 0 bytes .../tinymce/filemanager/img/ico_dark/fla.jpg | Bin 3791 -> 0 bytes .../tinymce/filemanager/img/ico_dark/flv.jpg | Bin 3712 -> 0 bytes .../filemanager/img/ico_dark/folder.jpg | Bin 15559 -> 0 bytes .../filemanager/img/ico_dark/folder.png | Bin 4252 -> 0 bytes .../filemanager/img/ico_dark/folder_back.jpg | Bin 15799 -> 0 bytes .../filemanager/img/ico_dark/folder_back.png | Bin 2788 -> 0 bytes .../tinymce/filemanager/img/ico_dark/gif.jpg | Bin 3881 -> 0 bytes .../tinymce/filemanager/img/ico_dark/gz.jpg | Bin 3495 -> 0 bytes .../tinymce/filemanager/img/ico_dark/html.jpg | Bin 3724 -> 0 bytes .../tinymce/filemanager/img/ico_dark/iso.jpg | Bin 3626 -> 0 bytes .../tinymce/filemanager/img/ico_dark/jpeg.jpg | Bin 3856 -> 0 bytes .../tinymce/filemanager/img/ico_dark/jpg.jpg | Bin 3881 -> 0 bytes .../tinymce/filemanager/img/ico_dark/log.jpg | Bin 3821 -> 0 bytes .../tinymce/filemanager/img/ico_dark/m4a.jpg | Bin 3399 -> 0 bytes .../tinymce/filemanager/img/ico_dark/mdb.jpg | Bin 4382 -> 0 bytes .../tinymce/filemanager/img/ico_dark/mid.jpg | Bin 3391 -> 0 bytes .../tinymce/filemanager/img/ico_dark/mov.jpg | Bin 3459 -> 0 bytes .../tinymce/filemanager/img/ico_dark/mp3.jpg | Bin 3335 -> 0 bytes .../tinymce/filemanager/img/ico_dark/mp4.jpg | Bin 3415 -> 0 bytes .../tinymce/filemanager/img/ico_dark/mpeg.jpg | Bin 3482 -> 0 bytes .../tinymce/filemanager/img/ico_dark/mpg.jpg | Bin 3466 -> 0 bytes .../tinymce/filemanager/img/ico_dark/odb.jpg | Bin 3655 -> 0 bytes .../tinymce/filemanager/img/ico_dark/odf.jpg | Bin 3664 -> 0 bytes .../tinymce/filemanager/img/ico_dark/odg.jpg | Bin 3655 -> 0 bytes .../tinymce/filemanager/img/ico_dark/odp.jpg | Bin 3664 -> 0 bytes .../tinymce/filemanager/img/ico_dark/ods.jpg | Bin 3655 -> 0 bytes .../tinymce/filemanager/img/ico_dark/odt.jpg | Bin 3655 -> 0 bytes .../tinymce/filemanager/img/ico_dark/ogg.jpg | Bin 3447 -> 0 bytes .../tinymce/filemanager/img/ico_dark/otg.jpg | Bin 3641 -> 0 bytes .../tinymce/filemanager/img/ico_dark/otp.jpg | Bin 3636 -> 0 bytes .../tinymce/filemanager/img/ico_dark/ots.jpg | Bin 3655 -> 0 bytes .../tinymce/filemanager/img/ico_dark/ott.jpg | Bin 3655 -> 0 bytes .../tinymce/filemanager/img/ico_dark/pdf.jpg | Bin 3716 -> 0 bytes .../tinymce/filemanager/img/ico_dark/png.jpg | Bin 3881 -> 0 bytes .../tinymce/filemanager/img/ico_dark/ppt.jpg | Bin 4144 -> 0 bytes .../tinymce/filemanager/img/ico_dark/pptx.jpg | Bin 4249 -> 0 bytes .../tinymce/filemanager/img/ico_dark/psd.jpg | Bin 3880 -> 0 bytes .../tinymce/filemanager/img/ico_dark/rar.jpg | Bin 3545 -> 0 bytes .../tinymce/filemanager/img/ico_dark/rtf.jpg | Bin 4358 -> 0 bytes .../tinymce/filemanager/img/ico_dark/sql.jpg | Bin 3871 -> 0 bytes .../tinymce/filemanager/img/ico_dark/svg.jpg | Bin 3881 -> 0 bytes .../tinymce/filemanager/img/ico_dark/tar.jpg | Bin 3527 -> 0 bytes .../tinymce/filemanager/img/ico_dark/tiff.jpg | Bin 3858 -> 0 bytes .../tinymce/filemanager/img/ico_dark/txt.jpg | Bin 3821 -> 0 bytes .../tinymce/filemanager/img/ico_dark/wav.jpg | Bin 3447 -> 0 bytes .../tinymce/filemanager/img/ico_dark/webm.jpg | Bin 3503 -> 0 bytes .../tinymce/filemanager/img/ico_dark/wma.jpg | Bin 3467 -> 0 bytes .../filemanager/img/ico_dark/xhtml.jpg | Bin 3670 -> 0 bytes .../tinymce/filemanager/img/ico_dark/xls.jpg | Bin 4417 -> 0 bytes .../tinymce/filemanager/img/ico_dark/xlsx.jpg | Bin 4507 -> 0 bytes .../tinymce/filemanager/img/ico_dark/xml.jpg | Bin 3788 -> 0 bytes .../tinymce/filemanager/img/ico_dark/zip.jpg | Bin 3495 -> 0 bytes .../js/tinymce/filemanager/img/info.png | Bin 1432 -> 0 bytes .../js/tinymce/filemanager/img/label.png | Bin 2658 -> 0 bytes .../js/tinymce/filemanager/img/loading.gif | Bin 1688 -> 0 bytes .../js/tinymce/filemanager/img/logo.png | Bin 34871 -> 0 bytes .../filemanager/img/page_white_add.png | Bin 442 -> 0 bytes .../filemanager/img/page_white_copy.png | Bin 309 -> 0 bytes .../filemanager/img/page_white_delete.png | Bin 1910 -> 0 bytes .../filemanager/img/page_white_edit.png | Bin 618 -> 0 bytes .../filemanager/img/page_white_paste.png | Bin 620 -> 0 bytes .../js/tinymce/filemanager/img/preview.png | Bin 2134 -> 0 bytes .../js/tinymce/filemanager/img/processing.gif | Bin 3209 -> 0 bytes .../js/tinymce/filemanager/img/rename.png | Bin 2022 -> 0 bytes .../js/tinymce/filemanager/img/size.png | Bin 2798 -> 0 bytes .../js/tinymce/filemanager/img/sort.png | Bin 1495 -> 0 bytes .../filemanager/img/spritemap@2x_en_EN.png | Bin 41065 -> 0 bytes .../filemanager/img/spritemap@2x_hu_HU.png | Bin 37736 -> 0 bytes .../filemanager/img/spritemap_en_EN.png | Bin 16954 -> 0 bytes .../filemanager/img/spritemap_hu_HU.png | Bin 17535 -> 0 bytes .../filemanager/img/storing_animation.gif | Bin 3887 -> 0 bytes .../js/tinymce/filemanager/img/up.png | Bin 1255 -> 0 bytes .../js/tinymce/filemanager/img/url.png | Bin 1583 -> 0 bytes .../js/tinymce/filemanager/img/zip.png | Bin 1773 -> 0 bytes .../include/php_image_magician.php | 3320 ----- .../js/tinymce/filemanager/include/utils.php | 486 - .../tinymce/filemanager/jPlayer/Jplayer.swf | Bin 14085 -> 0 bytes .../jPlayer/add-on/jplayer.playlist.min.js | 34 - .../add-on/jquery.jplayer.inspector.js | 338 - .../filemanager/jPlayer/jquery.jplayer.min.js | 107 - .../jPlayer/popcorn/popcorn.jplayer.js | 558 - .../skin/blue.monday/jplayer.blue.monday.css | 640 - .../skin/blue.monday/jplayer.blue.monday.jpg | Bin 16871 -> 0 bytes .../jplayer.blue.monday.seeking.gif | Bin 3284 -> 0 bytes .../jplayer.blue.monday.video.play.png | Bin 17692 -> 0 bytes .../blue.monday/spirites_blue.monday_2011.pxm | Bin 320476 -> 0 bytes .../js/tinymce/filemanager/js/bootbox.min.js | 6 - .../filemanager/js/bootstrap-lightbox.min.js | 1 - .../filemanager/js/bootstrap-modal.min.js | 1 - .../js/bootstrap-modalmanager.min.js | 1 - .../tinymce/filemanager/js/bootstrap.min.js | 6 - .../js/tinymce/filemanager/js/dropzone.min.js | 1 - .../filemanager/js/imagesloaded.pkgd.min.js | 6 - .../js/tinymce/filemanager/js/include.js | 1080 -- .../js/tinymce/filemanager/js/include.min.js | 1 - .../filemanager/js/jquery-ui-1.10.4.custom.js | 2789 ---- .../js/jquery-ui-1.10.4.custom.min.js | 6 - .../filemanager/js/jquery.contextMenu.js | 1686 --- .../filemanager/js/jquery.contextMenu.min.js | 1 - .../js/tinymce/filemanager/js/jquery.js | 5 - .../filemanager/js/jquery.queryloader2.min.js | 1 - .../filemanager/js/jquery.touchSwipe.min.js | 1 - .../filemanager/js/jquery.ui.position.js | 497 - .../filemanager/js/jquery.ui.position.min.js | 1 - .../filemanager/js/modernizr.custom.js | 4 - .../js/tinymce/filemanager/lang/az_AZ.php | 77 - .../js/tinymce/filemanager/lang/bg_BG.php | 77 - .../js/tinymce/filemanager/lang/ca.php | 77 - .../js/tinymce/filemanager/lang/cs.php | 77 - .../js/tinymce/filemanager/lang/de.php | 77 - .../js/tinymce/filemanager/lang/el_GR.php | 77 - .../js/tinymce/filemanager/lang/en_EN.php | 78 - .../js/tinymce/filemanager/lang/es.php | 77 - .../js/tinymce/filemanager/lang/fa.php | 77 - .../js/tinymce/filemanager/lang/fr_FR.php | 77 - .../js/tinymce/filemanager/lang/hr.php | 77 - .../js/tinymce/filemanager/lang/hr_HR.php | 77 - .../js/tinymce/filemanager/lang/hu_HU.php | 77 - .../js/tinymce/filemanager/lang/id.php | 77 - .../js/tinymce/filemanager/lang/it.php | 77 - .../js/tinymce/filemanager/lang/lt.php | 76 - .../js/tinymce/filemanager/lang/mn_MN.php | 77 - .../js/tinymce/filemanager/lang/nb_NO.php | 77 - .../js/tinymce/filemanager/lang/nl.php | 77 - .../js/tinymce/filemanager/lang/pl.php | 78 - .../js/tinymce/filemanager/lang/pt_BR.php | 77 - .../js/tinymce/filemanager/lang/pt_PT.php | 77 - .../js/tinymce/filemanager/lang/ru.php | 77 - .../js/tinymce/filemanager/lang/sk.php | 77 - .../js/tinymce/filemanager/lang/sl.php | 77 - .../js/tinymce/filemanager/lang/sv_SE.php | 77 - .../js/tinymce/filemanager/lang/tr_TR.php | 77 - .../js/tinymce/filemanager/lang/uk_UA.php | 77 - .../js/tinymce/filemanager/lang/zh_CN.php | 78 - .../js/tinymce/filemanager/plugin.js | 63 - .../js/tinymce/filemanager/plugin.min.js | 9 - .../js/tinymce/filemanager/upload.php | 132 - .../js/tinymce/filemanager/uploader/index.php | 142 - .../tinymce/filemanager/uploader/jupload.php | 767 - .../tinymce/filemanager/uploader/success.jpg | Bin 8021 -> 0 bytes .../tinymce/filemanager/uploader/success.php | 15 - .../filemanager/uploader/wjhk.jupload.jar | Bin 343591 -> 0 bytes .../Tinymce/Resources/js/tinymce/langs/cs.js | 197 - .../Tinymce/Resources/js/tinymce/langs/de.js | 197 - .../Tinymce/Resources/js/tinymce/langs/es.js | 197 - .../Resources/js/tinymce/langs/fr_FR.js | 197 - .../Tinymce/Resources/js/tinymce/langs/it.js | 197 - .../Resources/js/tinymce/langs/readme.md | 3 - .../Tinymce/Resources/js/tinymce/langs/ru.js | 197 - .../Tinymce/Resources/js/tinymce/license.txt | 504 - .../js/tinymce/plugins/advlist/plugin.min.js | 1 - .../js/tinymce/plugins/anchor/plugin.min.js | 1 - .../js/tinymce/plugins/autolink/plugin.min.js | 1 - .../tinymce/plugins/autoresize/plugin.min.js | 1 - .../js/tinymce/plugins/autosave/plugin.min.js | 1 - .../js/tinymce/plugins/bbcode/plugin.min.js | 1 - .../js/tinymce/plugins/charmap/plugin.min.js | 1 - .../js/tinymce/plugins/code/plugin.min.js | 1 - .../tinymce/plugins/codesample/css/prism.css | 138 - .../tinymce/plugins/codesample/plugin.min.js | 1 - .../tinymce/plugins/colorpicker/plugin.min.js | 1 - .../tinymce/plugins/contextmenu/plugin.min.js | 1 - .../plugins/directionality/plugin.min.js | 1 - .../plugins/emoticons/img/smiley-cool.gif | Bin 354 -> 0 bytes .../plugins/emoticons/img/smiley-cry.gif | Bin 329 -> 0 bytes .../emoticons/img/smiley-embarassed.gif | Bin 331 -> 0 bytes .../emoticons/img/smiley-foot-in-mouth.gif | Bin 342 -> 0 bytes .../plugins/emoticons/img/smiley-frown.gif | Bin 340 -> 0 bytes .../plugins/emoticons/img/smiley-innocent.gif | Bin 336 -> 0 bytes .../plugins/emoticons/img/smiley-kiss.gif | Bin 338 -> 0 bytes .../plugins/emoticons/img/smiley-laughing.gif | Bin 343 -> 0 bytes .../emoticons/img/smiley-money-mouth.gif | Bin 321 -> 0 bytes .../plugins/emoticons/img/smiley-sealed.gif | Bin 323 -> 0 bytes .../plugins/emoticons/img/smiley-smile.gif | Bin 344 -> 0 bytes .../emoticons/img/smiley-surprised.gif | Bin 338 -> 0 bytes .../emoticons/img/smiley-tongue-out.gif | Bin 328 -> 0 bytes .../emoticons/img/smiley-undecided.gif | Bin 337 -> 0 bytes .../plugins/emoticons/img/smiley-wink.gif | Bin 350 -> 0 bytes .../plugins/emoticons/img/smiley-yell.gif | Bin 336 -> 0 bytes .../tinymce/plugins/emoticons/plugin.min.js | 1 - .../js/tinymce/plugins/example/dialog.html | 8 - .../js/tinymce/plugins/example/plugin.min.js | 1 - .../plugins/example_dependency/plugin.min.js | 1 - .../js/tinymce/plugins/fullpage/plugin.min.js | 1 - .../tinymce/plugins/fullscreen/plugin.min.js | 1 - .../js/tinymce/plugins/hr/plugin.min.js | 1 - .../js/tinymce/plugins/image/plugin.min.js | 1 - .../tinymce/plugins/imagetools/plugin.min.js | 1 - .../tinymce/plugins/importcss/plugin.min.js | 1 - .../plugins/insertdatetime/plugin.min.js | 1 - .../js/tinymce/plugins/layer/plugin.min.js | 1 - .../plugins/legacyoutput/plugin.min.js | 1 - .../js/tinymce/plugins/link/plugin.min.js | 1 - .../js/tinymce/plugins/lists/plugin.min.js | 1 - .../js/tinymce/plugins/media/moxieplayer.swf | Bin 20017 -> 0 bytes .../js/tinymce/plugins/media/plugin.min.js | 1 - .../tinymce/plugins/nonbreaking/plugin.min.js | 1 - .../tinymce/plugins/noneditable/plugin.min.js | 1 - .../tinymce/plugins/pagebreak/plugin.min.js | 1 - .../js/tinymce/plugins/paste/plugin.min.js | 1 - .../js/tinymce/plugins/preview/plugin.min.js | 1 - .../js/tinymce/plugins/print/plugin.min.js | 1 - .../responsivefilemanager/editor_plugin.js | 126 - .../responsivefilemanager/img/insertfile.gif | Bin 3325 -> 0 bytes .../plugins/responsivefilemanager/plugin.js | 79 - .../responsivefilemanager/plugin.min.js | 9 - .../js/tinymce/plugins/save/plugin.min.js | 1 - .../plugins/searchreplace/plugin.min.js | 1 - .../plugins/spellchecker/plugin.min.js | 1 - .../js/tinymce/plugins/tabfocus/plugin.min.js | 1 - .../js/tinymce/plugins/table/plugin.min.js | 2 - .../js/tinymce/plugins/template/plugin.min.js | 1 - .../tinymce/plugins/textcolor/plugin.min.js | 1 - .../tinymce/plugins/textpattern/plugin.min.js | 1 - .../plugins/visualblocks/css/visualblocks.css | 135 - .../plugins/visualblocks/plugin.min.js | 1 - .../tinymce/plugins/visualchars/plugin.min.js | 1 - .../tinymce/plugins/wordcount/plugin.min.js | 1 - .../js/tinymce/plugins/youtube/README.md | 78 - .../js/tinymce/plugins/youtube/css/styles.css | 9 - .../youtube/img/Google-YouTube-128.png | Bin 11800 -> 0 bytes .../tinymce/plugins/youtube/img/youtube.gif | Bin 212 -> 0 bytes .../js/tinymce/plugins/youtube/js/main.js | 807 -- .../plugins/youtube/js/vendor/jquery.js | 6 - .../js/tinymce/plugins/youtube/langs/de.js | 10 - .../js/tinymce/plugins/youtube/langs/en.js | 12 - .../js/tinymce/plugins/youtube/langs/es.js | 10 - .../js/tinymce/plugins/youtube/langs/fr_FR.js | 12 - .../js/tinymce/plugins/youtube/langs/hu.js | 10 - .../js/tinymce/plugins/youtube/langs/it.js | 10 - .../js/tinymce/plugins/youtube/langs/pl.js | 10 - .../js/tinymce/plugins/youtube/langs/pt_BR.js | 10 - .../js/tinymce/plugins/youtube/langs/ru.js | 10 - .../js/tinymce/plugins/youtube/plugin.js | 51 - .../js/tinymce/plugins/youtube/plugin.min.js | 22 - .../tinymce/plugins/youtube/view/forms.html | 65 - .../js/tinymce/plugins/youtube/youtube.html | 20 - .../skins/lightgray/content.inline.min.css | 154 - .../tinymce/skins/lightgray/content.min.css | 1 - .../skins/lightgray/fonts/tinymce-small.eot | Bin 9492 -> 0 bytes .../skins/lightgray/fonts/tinymce-small.svg | 63 - .../skins/lightgray/fonts/tinymce-small.ttf | Bin 9304 -> 0 bytes .../skins/lightgray/fonts/tinymce-small.woff | Bin 9380 -> 0 bytes .../tinymce/skins/lightgray/fonts/tinymce.eot | Bin 14308 -> 0 bytes .../tinymce/skins/lightgray/fonts/tinymce.svg | 98 - .../tinymce/skins/lightgray/fonts/tinymce.ttf | Bin 14144 -> 0 bytes .../skins/lightgray/fonts/tinymce.woff | Bin 14220 -> 0 bytes .../js/tinymce/skins/lightgray/img/anchor.gif | Bin 53 -> 0 bytes .../js/tinymce/skins/lightgray/img/loader.gif | Bin 2608 -> 0 bytes .../js/tinymce/skins/lightgray/img/object.gif | Bin 152 -> 0 bytes .../js/tinymce/skins/lightgray/img/trans.gif | Bin 43 -> 0 bytes .../tinymce/skins/lightgray/skin.ie7.min.css | 1 - .../js/tinymce/skins/lightgray/skin.min.css | 1 - .../js/tinymce/themes/modern/theme.min.js | 1 - .../Resources/js/tinymce/tinymce.min.js | 13 - .../Tinymce/Smarty/TinyMCELanguage.php | 73 - local/modules/modules/Tinymce/Tinymce.php | 108 - local/modules/modules/Tinymce/composer.json | 11 - .../backOffice/default/assets/css/editor.less | 6 - .../default/module_configuration.html | 106 - .../backOffice/default/tinymce_init.tpl | 119 - .../VirtualProductControl/Config/config.xml | 15 - .../VirtualProductControl/Config/module.xml | 20 - .../Hook/VirtualProductHook.php | 62 - .../I18n/backOffice/default/de_DE.php | 5 - .../I18n/backOffice/default/en_US.php | 5 - .../I18n/backOffice/default/fr_FR.php | 5 - .../I18n/backOffice/default/it_IT.php | 5 - .../I18n/backOffice/default/tr_TR.php | 5 - .../VirtualProductControl/I18n/de_DE.php | 5 - .../VirtualProductControl/I18n/en_US.php | 4 - .../VirtualProductControl/I18n/fr_FR.php | 5 - .../VirtualProductControl/I18n/it_IT.php | 5 - .../VirtualProductControl/I18n/tr_TR.php | 5 - .../modules/VirtualProductControl/LICENSE.txt | 165 - .../VirtualProductControl.php | 20 - .../VirtualProductControl/composer.json | 11 - .../default/virtual-delivery-warning.html | 7 - .../VirtualProductDelivery/Config/config.xml | 27 - .../VirtualProductDelivery/Config/module.xml | 24 - .../EventListeners/SendMail.php | 122 - .../EventListeners/VirtualProductEvents.php | 119 - .../Events/VirtualProductDeliveryEvents.php | 26 - .../Hook/HookManager.php | 39 - .../VirtualProductDelivery/I18n/de_DE.php | 8 - .../I18n/email/default/en_US.php | 10 - .../I18n/email/default/fr_FR.php | 10 - .../I18n/email/default/it_IT.php | 10 - .../I18n/email/default/tr_TR.php | 10 - .../VirtualProductDelivery/I18n/en_US.php | 8 - .../VirtualProductDelivery/I18n/fr_FR.php | 8 - .../I18n/frontOffice/default/de_DE.php | 9 - .../I18n/frontOffice/default/en_US.php | 9 - .../I18n/frontOffice/default/fr_FR.php | 9 - .../I18n/frontOffice/default/it_IT.php | 8 - .../I18n/frontOffice/default/tr_TR.php | 9 - .../VirtualProductDelivery/I18n/it_IT.php | 7 - .../I18n/pdf/default/de_DE.php | 5 - .../I18n/pdf/default/en_US.php | 5 - .../I18n/pdf/default/fr_FR.php | 5 - .../I18n/pdf/default/it_IT.php | 5 - .../I18n/pdf/default/tr_TR.php | 5 - .../VirtualProductDelivery/I18n/tr_TR.php | 8 - .../VirtualProductDelivery/LICENSE.txt | 165 - .../VirtualProductDelivery.php | 105 - .../VirtualProductDelivery/composer.json | 11 - .../default/virtual-product-download.html | 29 - .../default/virtual-product-download.txt | 26 - .../default/account-order-after-products.html | 24 - .../frontOffice/default/delivery-address.html | 6 - .../pdf/default/delivery-address.html | 3 - templates/frontOffice/boutique/layout.tpl | 1 + 1813 files changed, 4386 insertions(+), 118961 deletions(-) delete mode 100644 local/local/.gitkeep delete mode 100644 local/local/I18n/.gitkeep delete mode 100644 local/local/backup/.gitkeep delete mode 100644 local/local/backup/update.sql delete mode 100644 local/local/config/.gitkeep delete mode 100644 local/local/config/.htaccess delete mode 100644 local/local/config/Readme.md delete mode 100644 local/local/config/build.properties.sample delete mode 100644 local/local/config/composer.json delete mode 100644 local/local/config/database.yml delete mode 100644 local/local/config/database.yml.sample delete mode 100644 local/local/config/schema.xml delete mode 100644 local/local/media/.gitkeep delete mode 100644 local/local/media/images/carousel/banniere_5x106-2.jpg delete mode 100644 local/local/media/images/carousel/banniere_chutney_figue-1.jpg delete mode 100644 local/local/media/images/module/PayPal-1-logo.png delete mode 100644 local/local/media/images/product/cremecitron_1-1.jpg delete mode 100644 local/local/media/images/store/banner.jpg delete mode 100644 local/local/media/images/store/favicon.png delete mode 100644 local/local/media/images/store/logo.png delete mode 100644 local/local/modules/.gitkeep delete mode 100644 local/local/modules/Carousel/CHANGELOG.md delete mode 100644 local/local/modules/Carousel/Carousel.php delete mode 100644 local/local/modules/Carousel/Config/config.xml delete mode 100644 local/local/modules/Carousel/Config/module.xml delete mode 100644 local/local/modules/Carousel/Config/routing.xml delete mode 100644 local/local/modules/Carousel/Config/schema.xml delete mode 100644 local/local/modules/Carousel/Config/sql/destroy.sql delete mode 100644 local/local/modules/Carousel/Config/thelia.sql delete mode 100644 local/local/modules/Carousel/Controller/ConfigurationController.php delete mode 100644 local/local/modules/Carousel/Form/CarouselImageForm.php delete mode 100644 local/local/modules/Carousel/Form/CarouselUpdateForm.php delete mode 100644 local/local/modules/Carousel/Hook/BackHook.php delete mode 100644 local/local/modules/Carousel/I18n/backOffice/default/de_DE.php delete mode 100644 local/local/modules/Carousel/I18n/backOffice/default/en_US.php delete mode 100644 local/local/modules/Carousel/I18n/backOffice/default/fr_FR.php delete mode 100644 local/local/modules/Carousel/I18n/backOffice/default/ru_RU.php delete mode 100644 local/local/modules/Carousel/I18n/backOffice/default/tr_TR.php delete mode 100644 local/local/modules/Carousel/I18n/de_DE.php delete mode 100644 local/local/modules/Carousel/I18n/en_US.php delete mode 100644 local/local/modules/Carousel/I18n/fr_FR.php delete mode 100644 local/local/modules/Carousel/I18n/it_IT.php delete mode 100644 local/local/modules/Carousel/I18n/tr_TR.php delete mode 100644 local/local/modules/Carousel/Loop/CarouselLoop.php delete mode 100644 local/local/modules/Carousel/Model/Base/Carousel.php delete mode 100644 local/local/modules/Carousel/Model/Base/CarouselI18n.php delete mode 100644 local/local/modules/Carousel/Model/Base/CarouselI18nQuery.php delete mode 100644 local/local/modules/Carousel/Model/Base/CarouselQuery.php delete mode 100644 local/local/modules/Carousel/Model/Carousel.php delete mode 100644 local/local/modules/Carousel/Model/CarouselI18n.php delete mode 100644 local/local/modules/Carousel/Model/CarouselQuery.php delete mode 100644 local/local/modules/Carousel/Model/Map/CarouselI18nTableMap.php delete mode 100644 local/local/modules/Carousel/Model/Map/CarouselTableMap.php delete mode 100644 local/local/modules/Carousel/Readme.md delete mode 100644 local/local/modules/Carousel/composer.json delete mode 100644 local/local/modules/Carousel/templates/backOffice/default/assets/js/module-configuration.js delete mode 100644 local/local/modules/Carousel/templates/backOffice/default/module_configuration.html delete mode 100644 local/local/modules/Carousel/templates/frontOffice/default/carousel.html delete mode 100644 local/local/modules/Cheque/Cheque.php delete mode 100644 local/local/modules/Cheque/Config/config.xml delete mode 100644 local/local/modules/Cheque/Config/module.xml delete mode 100644 local/local/modules/Cheque/Config/routing.xml delete mode 100644 local/local/modules/Cheque/Config/setup.sql delete mode 100644 local/local/modules/Cheque/Controller/ConfigureController.php delete mode 100644 local/local/modules/Cheque/Form/ConfigurationForm.php delete mode 100644 local/local/modules/Cheque/Hook/HookManager.php delete mode 100644 local/local/modules/Cheque/I18n/backOffice/default/de_DE.php delete mode 100644 local/local/modules/Cheque/I18n/backOffice/default/en_US.php delete mode 100644 local/local/modules/Cheque/I18n/backOffice/default/fr_FR.php delete mode 100644 local/local/modules/Cheque/I18n/backOffice/default/tr_TR.php delete mode 100644 local/local/modules/Cheque/I18n/de_DE.php delete mode 100644 local/local/modules/Cheque/I18n/en_US.php delete mode 100644 local/local/modules/Cheque/I18n/fr_FR.php delete mode 100644 local/local/modules/Cheque/I18n/frontOffice/default/de_DE.php delete mode 100644 local/local/modules/Cheque/I18n/frontOffice/default/en_US.php delete mode 100644 local/local/modules/Cheque/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/local/modules/Cheque/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/local/modules/Cheque/I18n/tr_TR.php delete mode 100644 local/local/modules/Cheque/Listener/SendPaymentConfirmationEmail.php delete mode 100644 local/local/modules/Cheque/composer.json delete mode 100644 local/local/modules/Cheque/images/cheque.png delete mode 100644 local/local/modules/Cheque/templates/backOffice/default/module_configuration.html delete mode 100644 local/local/modules/Cheque/templates/frontOffice/default/order-placed.additional-payment-info.html delete mode 100644 local/local/modules/Colissimo/Colissimo.php delete mode 100644 local/local/modules/Colissimo/Config/config.xml delete mode 100644 local/local/modules/Colissimo/Config/module.xml delete mode 100644 local/local/modules/Colissimo/Config/prices.json delete mode 100644 local/local/modules/Colissimo/Config/routing.xml delete mode 100644 local/local/modules/Colissimo/Config/thelia.sql delete mode 100644 local/local/modules/Colissimo/Controller/Configuration.php delete mode 100644 local/local/modules/Colissimo/Controller/EditPrices.php delete mode 100644 local/local/modules/Colissimo/Controller/Export.php delete mode 100644 local/local/modules/Colissimo/Controller/FreeShipping.php delete mode 100644 local/local/modules/Colissimo/EventListener/AreaDeletedListener.php delete mode 100644 local/local/modules/Colissimo/Form/Configuration.php delete mode 100644 local/local/modules/Colissimo/Form/Export.php delete mode 100644 local/local/modules/Colissimo/Form/FreeShipping.php delete mode 100644 local/local/modules/Colissimo/Hook/HookManager.php delete mode 100644 local/local/modules/Colissimo/I18n/backOffice/default/de_DE.php delete mode 100644 local/local/modules/Colissimo/I18n/backOffice/default/en_US.php delete mode 100644 local/local/modules/Colissimo/I18n/backOffice/default/fr_FR.php delete mode 100644 local/local/modules/Colissimo/I18n/backOffice/default/it_IT.php delete mode 100644 local/local/modules/Colissimo/I18n/backOffice/default/tr_TR.php delete mode 100644 local/local/modules/Colissimo/I18n/de_DE.php delete mode 100644 local/local/modules/Colissimo/I18n/en_US.php delete mode 100644 local/local/modules/Colissimo/I18n/fr_FR.php delete mode 100644 local/local/modules/Colissimo/I18n/tr_TR.php delete mode 100644 local/local/modules/Colissimo/Listener/SendMail.php delete mode 100644 local/local/modules/Colissimo/Loop/CheckRightsLoop.php delete mode 100644 local/local/modules/Colissimo/Loop/NotSendLoop.php delete mode 100644 local/local/modules/Colissimo/Loop/Price.php delete mode 100644 local/local/modules/Colissimo/Model/ColissimoQuery.php delete mode 100644 local/local/modules/Colissimo/Model/Config/Base/ColissimoConfigValue.php delete mode 100644 local/local/modules/Colissimo/Model/Config/ColissimoConfigValue.php delete mode 100644 local/local/modules/Colissimo/THELIA_INET.FMT delete mode 100644 local/local/modules/Colissimo/composer.json delete mode 100644 local/local/modules/Colissimo/documentation/TarifsAvril2013.pdf delete mode 100644 local/local/modules/Colissimo/documentation/readme.txt delete mode 100644 local/local/modules/Colissimo/templates/backOffice/default/assets/js/module-configuration-js.html delete mode 100644 local/local/modules/Colissimo/templates/backOffice/default/module_configuration.html delete mode 100644 local/local/modules/FreeOrder/Config/config.xml delete mode 100644 local/local/modules/FreeOrder/Config/module.xml delete mode 100644 local/local/modules/FreeOrder/FreeOrder.php delete mode 100644 local/local/modules/FreeOrder/LICENSE.txt delete mode 100644 local/local/modules/FreeOrder/Readme.md delete mode 100644 local/local/modules/FreeOrder/composer.json delete mode 100644 local/local/modules/Front/Config/config.xml delete mode 100644 local/local/modules/Front/Config/front.xml delete mode 100644 local/local/modules/Front/Config/module.xml delete mode 100644 local/local/modules/Front/Controller/AddressController.php delete mode 100644 local/local/modules/Front/Controller/CartController.php delete mode 100644 local/local/modules/Front/Controller/ContactController.php delete mode 100644 local/local/modules/Front/Controller/CouponController.php delete mode 100644 local/local/modules/Front/Controller/CustomerController.php delete mode 100644 local/local/modules/Front/Controller/FeedController.php delete mode 100644 local/local/modules/Front/Controller/NewsletterController.php delete mode 100644 local/local/modules/Front/Controller/OrderController.php delete mode 100644 local/local/modules/Front/Controller/SitemapController.php delete mode 100644 local/local/modules/Front/Front.php delete mode 100644 local/local/modules/Front/I18n/de_DE.php delete mode 100644 local/local/modules/Front/I18n/en_US.php delete mode 100644 local/local/modules/Front/I18n/fr_FR.php delete mode 100644 local/local/modules/Front/I18n/it_IT.php delete mode 100644 local/local/modules/Front/I18n/tr_TR.php delete mode 100644 local/local/modules/Front/LICENSE.txt delete mode 100644 local/local/modules/Front/composer.json delete mode 100644 local/local/modules/HookAdminHome/Config/config.xml delete mode 100644 local/local/modules/HookAdminHome/Config/module.xml delete mode 100644 local/local/modules/HookAdminHome/Config/routing.xml delete mode 100644 local/local/modules/HookAdminHome/Controller/HomeController.php delete mode 100644 local/local/modules/HookAdminHome/Hook/AdminHook.php delete mode 100644 local/local/modules/HookAdminHome/HookAdminHome.php delete mode 100644 local/local/modules/HookAdminHome/I18n/ar_SA.php delete mode 100644 local/local/modules/HookAdminHome/I18n/backOffice/default/ar_SA.php delete mode 100644 local/local/modules/HookAdminHome/I18n/backOffice/default/cs_CZ.php delete mode 100644 local/local/modules/HookAdminHome/I18n/backOffice/default/de_DE.php delete mode 100644 local/local/modules/HookAdminHome/I18n/backOffice/default/en_US.php delete mode 100644 local/local/modules/HookAdminHome/I18n/backOffice/default/es_ES.php delete mode 100644 local/local/modules/HookAdminHome/I18n/backOffice/default/fr_FR.php delete mode 100644 local/local/modules/HookAdminHome/I18n/backOffice/default/it_IT.php delete mode 100644 local/local/modules/HookAdminHome/I18n/backOffice/default/pt_BR.php delete mode 100644 local/local/modules/HookAdminHome/I18n/backOffice/default/ru_RU.php delete mode 100644 local/local/modules/HookAdminHome/I18n/backOffice/default/tr_TR.php delete mode 100644 local/local/modules/HookAdminHome/I18n/cs_CZ.php delete mode 100644 local/local/modules/HookAdminHome/I18n/de_DE.php delete mode 100644 local/local/modules/HookAdminHome/I18n/en_US.php delete mode 100644 local/local/modules/HookAdminHome/I18n/es_ES.php delete mode 100644 local/local/modules/HookAdminHome/I18n/fr_FR.php delete mode 100644 local/local/modules/HookAdminHome/I18n/id_ID.php delete mode 100644 local/local/modules/HookAdminHome/I18n/it_IT.php delete mode 100644 local/local/modules/HookAdminHome/I18n/ru_RU.php delete mode 100644 local/local/modules/HookAdminHome/I18n/tr_TR.php delete mode 100644 local/local/modules/HookAdminHome/LICENSE.txt delete mode 100644 local/local/modules/HookAdminHome/composer.json delete mode 100644 local/local/modules/HookAdminHome/templates/backOffice/default/ajax/thelia_news_feed.html delete mode 100644 local/local/modules/HookAdminHome/templates/backOffice/default/assets/css/home.css delete mode 100644 local/local/modules/HookAdminHome/templates/backOffice/default/assets/less/home.less delete mode 100644 local/local/modules/HookAdminHome/templates/backOffice/default/block-information.html delete mode 100644 local/local/modules/HookAdminHome/templates/backOffice/default/block-month-sales-statistics.html delete mode 100644 local/local/modules/HookAdminHome/templates/backOffice/default/block-news-js.html delete mode 100644 local/local/modules/HookAdminHome/templates/backOffice/default/block-news.html delete mode 100644 local/local/modules/HookAdminHome/templates/backOffice/default/block-sales-statistics.html delete mode 100644 local/local/modules/HookAdminHome/templates/backOffice/default/block-statistics-js.html delete mode 100644 local/local/modules/HookAdminHome/templates/backOffice/default/block-statistics.html delete mode 100644 local/local/modules/HookAdminHome/templates/backOffice/default/block-thelia-information.html delete mode 100644 local/local/modules/HookAnalytics/Config/config.xml delete mode 100644 local/local/modules/HookAnalytics/Config/module.xml delete mode 100644 local/local/modules/HookAnalytics/Config/routing.xml delete mode 100644 local/local/modules/HookAnalytics/Controller/Configuration.php delete mode 100644 local/local/modules/HookAnalytics/Form/Configuration.php delete mode 100644 local/local/modules/HookAnalytics/Hook/FrontHook.php delete mode 100644 local/local/modules/HookAnalytics/HookAnalytics.php delete mode 100644 local/local/modules/HookAnalytics/I18n/backOffice/default/de_DE.php delete mode 100644 local/local/modules/HookAnalytics/I18n/backOffice/default/en_US.php delete mode 100644 local/local/modules/HookAnalytics/I18n/backOffice/default/fr_FR.php delete mode 100644 local/local/modules/HookAnalytics/I18n/backOffice/default/it_IT.php delete mode 100644 local/local/modules/HookAnalytics/I18n/backOffice/default/tr_TR.php delete mode 100644 local/local/modules/HookAnalytics/I18n/de_DE.php delete mode 100644 local/local/modules/HookAnalytics/I18n/en_US.php delete mode 100644 local/local/modules/HookAnalytics/I18n/fr_FR.php delete mode 100644 local/local/modules/HookAnalytics/I18n/frontOffice/default/de_DE.php delete mode 100644 local/local/modules/HookAnalytics/I18n/frontOffice/default/en_US.php delete mode 100644 local/local/modules/HookAnalytics/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/local/modules/HookAnalytics/I18n/frontOffice/default/it_IT.php delete mode 100644 local/local/modules/HookAnalytics/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/local/modules/HookAnalytics/I18n/it_IT.php delete mode 100644 local/local/modules/HookAnalytics/I18n/tr_TR.php delete mode 100644 local/local/modules/HookAnalytics/LICENSE.txt delete mode 100644 local/local/modules/HookAnalytics/composer.json delete mode 100644 local/local/modules/HookAnalytics/templates/backOffice/default/assets/js/module-configuration.js delete mode 100644 local/local/modules/HookAnalytics/templates/backOffice/default/module_configuration.html delete mode 100644 local/local/modules/HookCart/Config/config.xml delete mode 100644 local/local/modules/HookCart/Config/module.xml delete mode 100644 local/local/modules/HookCart/HookCart.php delete mode 100644 local/local/modules/HookCart/I18n/frontOffice/default/de_DE.php delete mode 100644 local/local/modules/HookCart/I18n/frontOffice/default/en_US.php delete mode 100644 local/local/modules/HookCart/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/local/modules/HookCart/I18n/frontOffice/default/it_IT.php delete mode 100644 local/local/modules/HookCart/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/local/modules/HookCart/LICENSE.txt delete mode 100644 local/local/modules/HookCart/composer.json delete mode 100644 local/local/modules/HookCart/templates/frontOffice/default/assets/css/styles.css delete mode 100644 local/local/modules/HookCart/templates/frontOffice/default/main-navbar-secondary.html delete mode 100644 local/local/modules/HookCart/templates/frontOffice/default/mini-cart.html delete mode 100644 local/local/modules/HookContact/Config/config.xml delete mode 100644 local/local/modules/HookContact/Config/module.xml delete mode 100644 local/local/modules/HookContact/Hook/FrontHook.php delete mode 100644 local/local/modules/HookContact/HookContact.php delete mode 100644 local/local/modules/HookContact/I18n/de_DE.php delete mode 100644 local/local/modules/HookContact/I18n/en_US.php delete mode 100644 local/local/modules/HookContact/I18n/fr_FR.php delete mode 100644 local/local/modules/HookContact/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/local/modules/HookContact/I18n/it_IT.php delete mode 100644 local/local/modules/HookContact/I18n/tr_TR.php delete mode 100644 local/local/modules/HookContact/LICENSE.txt delete mode 100644 local/local/modules/HookContact/composer.json delete mode 100644 local/local/modules/HookContact/templates/frontOffice/default/main-footer-body.html delete mode 100644 local/local/modules/HookCurrency/Config/config.xml delete mode 100644 local/local/modules/HookCurrency/Config/module.xml delete mode 100644 local/local/modules/HookCurrency/HookCurrency.php delete mode 100644 local/local/modules/HookCurrency/LICENSE.txt delete mode 100644 local/local/modules/HookCurrency/composer.json delete mode 100644 local/local/modules/HookCurrency/templates/frontOffice/default/main-navbar-secondary.html delete mode 100644 local/local/modules/HookCustomer/Config/config.xml delete mode 100644 local/local/modules/HookCustomer/Config/module.xml delete mode 100644 local/local/modules/HookCustomer/HookCustomer.php delete mode 100644 local/local/modules/HookCustomer/I18n/frontOffice/default/de_DE.php delete mode 100644 local/local/modules/HookCustomer/I18n/frontOffice/default/en_US.php delete mode 100644 local/local/modules/HookCustomer/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/local/modules/HookCustomer/I18n/frontOffice/default/it_IT.php delete mode 100644 local/local/modules/HookCustomer/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/local/modules/HookCustomer/LICENSE.txt delete mode 100644 local/local/modules/HookCustomer/composer.json delete mode 100644 local/local/modules/HookCustomer/templates/frontOffice/default/assets/css/styles.css delete mode 100644 local/local/modules/HookCustomer/templates/frontOffice/default/main-navbar-secondary.html delete mode 100644 local/local/modules/HookLang/Config/config.xml delete mode 100644 local/local/modules/HookLang/Config/module.xml delete mode 100644 local/local/modules/HookLang/HookLang.php delete mode 100644 local/local/modules/HookLang/LICENSE.txt delete mode 100644 local/local/modules/HookLang/composer.json delete mode 100644 local/local/modules/HookLang/templates/frontOffice/default/main-navbar-secondary.html delete mode 100644 local/local/modules/HookLinks/Config/config.xml delete mode 100644 local/local/modules/HookLinks/Config/module.xml delete mode 100644 local/local/modules/HookLinks/Hook/FrontHook.php delete mode 100644 local/local/modules/HookLinks/HookLinks.php delete mode 100644 local/local/modules/HookLinks/I18n/de_DE.php delete mode 100644 local/local/modules/HookLinks/I18n/en_US.php delete mode 100644 local/local/modules/HookLinks/I18n/fr_FR.php delete mode 100644 local/local/modules/HookLinks/I18n/frontOffice/default/de_DE.php delete mode 100644 local/local/modules/HookLinks/I18n/frontOffice/default/en_US.php delete mode 100644 local/local/modules/HookLinks/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/local/modules/HookLinks/I18n/frontOffice/default/it_IT.php delete mode 100644 local/local/modules/HookLinks/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/local/modules/HookLinks/I18n/it_IT.php delete mode 100644 local/local/modules/HookLinks/I18n/tr_TR.php delete mode 100644 local/local/modules/HookLinks/LICENSE.txt delete mode 100644 local/local/modules/HookLinks/composer.json delete mode 100644 local/local/modules/HookLinks/templates/frontOffice/default/main-footer-body.html delete mode 100644 local/local/modules/HookNavigation/Config/config.xml delete mode 100644 local/local/modules/HookNavigation/Config/module.xml delete mode 100644 local/local/modules/HookNavigation/Config/routing.xml delete mode 100644 local/local/modules/HookNavigation/Controller/HookNavigationConfigController.php delete mode 100644 local/local/modules/HookNavigation/Form/HookNavigationConfigForm.php delete mode 100644 local/local/modules/HookNavigation/Hook/FrontHook.php delete mode 100644 local/local/modules/HookNavigation/HookNavigation.php delete mode 100644 local/local/modules/HookNavigation/I18n/backOffice/default/de_DE.php delete mode 100644 local/local/modules/HookNavigation/I18n/backOffice/default/en_US.php delete mode 100644 local/local/modules/HookNavigation/I18n/backOffice/default/fr_FR.php delete mode 100644 local/local/modules/HookNavigation/I18n/backOffice/default/it_IT.php delete mode 100644 local/local/modules/HookNavigation/I18n/backOffice/default/tr_TR.php delete mode 100644 local/local/modules/HookNavigation/I18n/en_US.php delete mode 100644 local/local/modules/HookNavigation/I18n/fr_FR.php delete mode 100644 local/local/modules/HookNavigation/I18n/frontOffice/default/de_DE.php delete mode 100644 local/local/modules/HookNavigation/I18n/frontOffice/default/en_US.php delete mode 100644 local/local/modules/HookNavigation/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/local/modules/HookNavigation/I18n/frontOffice/default/it_IT.php delete mode 100644 local/local/modules/HookNavigation/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/local/modules/HookNavigation/I18n/it_IT.php delete mode 100644 local/local/modules/HookNavigation/LICENSE.txt delete mode 100644 local/local/modules/HookNavigation/Model/Config/Base/HookNavigationConfigValue.php delete mode 100644 local/local/modules/HookNavigation/Model/Config/HookNavigationConfigValue.php delete mode 100644 local/local/modules/HookNavigation/composer.json delete mode 100644 local/local/modules/HookNavigation/templates/backOffice/default/hooknavigation-configuration.html delete mode 100644 local/local/modules/HookNavigation/templates/frontOffice/default/main-footer-body.html delete mode 100644 local/local/modules/HookNavigation/templates/frontOffice/default/main-footer-bottom.html delete mode 100644 local/local/modules/HookNavigation/templates/frontOffice/default/main-navbar-primary.html delete mode 100644 local/local/modules/HookNewsletter/Config/config.xml delete mode 100644 local/local/modules/HookNewsletter/Config/module.xml delete mode 100644 local/local/modules/HookNewsletter/Hook/FrontHook.php delete mode 100644 local/local/modules/HookNewsletter/HookNewsletter.php delete mode 100644 local/local/modules/HookNewsletter/I18n/de_DE.php delete mode 100644 local/local/modules/HookNewsletter/I18n/en_US.php delete mode 100644 local/local/modules/HookNewsletter/I18n/fr_FR.php delete mode 100644 local/local/modules/HookNewsletter/I18n/frontOffice/default/de_DE.php delete mode 100644 local/local/modules/HookNewsletter/I18n/frontOffice/default/en_US.php delete mode 100644 local/local/modules/HookNewsletter/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/local/modules/HookNewsletter/I18n/frontOffice/default/it_IT.php delete mode 100644 local/local/modules/HookNewsletter/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/local/modules/HookNewsletter/I18n/it_IT.php delete mode 100644 local/local/modules/HookNewsletter/I18n/tr_TR.php delete mode 100644 local/local/modules/HookNewsletter/LICENSE.txt delete mode 100644 local/local/modules/HookNewsletter/composer.json delete mode 100644 local/local/modules/HookNewsletter/templates/frontOffice/default/main-footer-body.html delete mode 100644 local/local/modules/HookProductsNew/Config/config.xml delete mode 100644 local/local/modules/HookProductsNew/Config/module.xml delete mode 100644 local/local/modules/HookProductsNew/HookProductsNew.php delete mode 100644 local/local/modules/HookProductsNew/I18n/frontOffice/default/de_DE.php delete mode 100644 local/local/modules/HookProductsNew/I18n/frontOffice/default/en_US.php delete mode 100644 local/local/modules/HookProductsNew/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/local/modules/HookProductsNew/I18n/frontOffice/default/it_IT.php delete mode 100644 local/local/modules/HookProductsNew/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/local/modules/HookProductsNew/LICENSE.txt delete mode 100644 local/local/modules/HookProductsNew/composer.json delete mode 100644 local/local/modules/HookProductsNew/templates/frontOffice/default/home-body.html delete mode 100644 local/local/modules/HookProductsOffer/Config/config.xml delete mode 100644 local/local/modules/HookProductsOffer/Config/module.xml delete mode 100644 local/local/modules/HookProductsOffer/HookProductsOffer.php delete mode 100644 local/local/modules/HookProductsOffer/I18n/frontOffice/default/de_DE.php delete mode 100644 local/local/modules/HookProductsOffer/I18n/frontOffice/default/en_US.php delete mode 100644 local/local/modules/HookProductsOffer/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/local/modules/HookProductsOffer/I18n/frontOffice/default/it_IT.php delete mode 100644 local/local/modules/HookProductsOffer/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/local/modules/HookProductsOffer/LICENSE.txt delete mode 100644 local/local/modules/HookProductsOffer/composer.json delete mode 100644 local/local/modules/HookProductsOffer/templates/frontOffice/default/home-body.html delete mode 100644 local/local/modules/HookSearch/Config/config.xml delete mode 100644 local/local/modules/HookSearch/Config/module.xml delete mode 100644 local/local/modules/HookSearch/HookSearch.php delete mode 100644 local/local/modules/HookSearch/I18n/frontOffice/default/de_DE.php delete mode 100644 local/local/modules/HookSearch/I18n/frontOffice/default/en_US.php delete mode 100644 local/local/modules/HookSearch/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/local/modules/HookSearch/I18n/frontOffice/default/it_IT.php delete mode 100644 local/local/modules/HookSearch/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/local/modules/HookSearch/LICENSE.txt delete mode 100644 local/local/modules/HookSearch/composer.json delete mode 100644 local/local/modules/HookSearch/templates/frontOffice/default/assets/css/styles.css delete mode 100644 local/local/modules/HookSearch/templates/frontOffice/default/main-navbar-primary.html delete mode 100644 local/local/modules/HookSearch/templates/frontOffice/default/main-navbar-secondary.html delete mode 100644 local/local/modules/HookSocial/Config/config.xml delete mode 100644 local/local/modules/HookSocial/Config/module.xml delete mode 100644 local/local/modules/HookSocial/Config/routing.xml delete mode 100644 local/local/modules/HookSocial/Controller/Configuration.php delete mode 100644 local/local/modules/HookSocial/Form/Configuration.php delete mode 100644 local/local/modules/HookSocial/Hook/FrontHook.php delete mode 100644 local/local/modules/HookSocial/HookSocial.php delete mode 100644 local/local/modules/HookSocial/I18n/backOffice/default/de_DE.php delete mode 100644 local/local/modules/HookSocial/I18n/backOffice/default/en_US.php delete mode 100644 local/local/modules/HookSocial/I18n/backOffice/default/fr_FR.php delete mode 100644 local/local/modules/HookSocial/I18n/backOffice/default/it_IT.php delete mode 100644 local/local/modules/HookSocial/I18n/backOffice/default/tr_TR.php delete mode 100644 local/local/modules/HookSocial/I18n/de_DE.php delete mode 100644 local/local/modules/HookSocial/I18n/en_US.php delete mode 100644 local/local/modules/HookSocial/I18n/fr_FR.php delete mode 100644 local/local/modules/HookSocial/I18n/frontOffice/default/de_DE.php delete mode 100644 local/local/modules/HookSocial/I18n/frontOffice/default/en_US.php delete mode 100644 local/local/modules/HookSocial/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/local/modules/HookSocial/I18n/frontOffice/default/it_IT.php delete mode 100644 local/local/modules/HookSocial/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/local/modules/HookSocial/I18n/it_IT.php delete mode 100644 local/local/modules/HookSocial/I18n/tr_TR.php delete mode 100644 local/local/modules/HookSocial/LICENSE.txt delete mode 100644 local/local/modules/HookSocial/composer.json delete mode 100644 local/local/modules/HookSocial/templates/backOffice/default/assets/js/module-configuration.js delete mode 100644 local/local/modules/HookSocial/templates/backOffice/default/module_configuration.html delete mode 100644 local/local/modules/HookSocial/templates/frontOffice/default/assets/css/styles.css delete mode 100644 local/local/modules/HookSocial/templates/frontOffice/default/main-footer-body.html delete mode 100644 local/local/modules/TheliaMigrateCountry/Config/config.xml delete mode 100644 local/local/modules/TheliaMigrateCountry/Config/routing.xml delete mode 100644 local/local/modules/TheliaMigrateCountry/Controller/MigrateController.php delete mode 100644 local/local/modules/TheliaMigrateCountry/EventListeners/MigrateCountryListener.php delete mode 100644 local/local/modules/TheliaMigrateCountry/Events/MigrateCountryEvent.php delete mode 100644 local/local/modules/TheliaMigrateCountry/Events/MigrateCountryEvents.php delete mode 100644 local/local/modules/TheliaMigrateCountry/Form/CountryStateMigrationForm.php delete mode 100644 local/local/modules/TheliaMigrateCountry/Form/Type/CountryStateMigrationType.php delete mode 100644 local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/en_US.php delete mode 100644 local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/fr_FR.php delete mode 100644 local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/it_IT.php delete mode 100644 local/local/modules/TheliaMigrateCountry/I18n/en_US.php delete mode 100644 local/local/modules/TheliaMigrateCountry/I18n/fr_FR.php delete mode 100644 local/local/modules/TheliaMigrateCountry/I18n/it_IT.php delete mode 100644 local/local/modules/TheliaMigrateCountry/LICENSE.txt delete mode 100644 local/local/modules/TheliaMigrateCountry/Readme.md delete mode 100644 local/local/modules/TheliaMigrateCountry/TheliaMigrateCountry.php delete mode 100644 local/local/modules/TheliaMigrateCountry/composer.json delete mode 100644 local/local/modules/TheliaMigrateCountry/templates/backOffice/default/configuration-shipping-bottom.html delete mode 100644 local/local/modules/TheliaMigrateCountry/templates/backOffice/default/countries-migrate.html delete mode 100644 local/local/modules/TheliaSmarty/CREDITS.md delete mode 100644 local/local/modules/TheliaSmarty/Compiler/RegisterParserPluginPass.php delete mode 100644 local/local/modules/TheliaSmarty/Config/config.xml delete mode 100644 local/local/modules/TheliaSmarty/Config/module.xml delete mode 100644 local/local/modules/TheliaSmarty/I18n/en_US.php delete mode 100644 local/local/modules/TheliaSmarty/I18n/fr_FR.php delete mode 100644 local/local/modules/TheliaSmarty/I18n/tr_TR.php delete mode 100644 local/local/modules/TheliaSmarty/LICENSE.txt delete mode 100644 local/local/modules/TheliaSmarty/Readme.md delete mode 100644 local/local/modules/TheliaSmarty/Template/AbstractSmartyPlugin.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Assets/SmartyAssetsManager.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Assets/SmartyAssetsResolver.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Exception/SmartyPluginException.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/AdminUtilities.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/Assets.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/Cache.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/CartPostage.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/DataAccessFunctions.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/Esi.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/FlashMessage.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/Form.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/Format.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/Hook.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/Module.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/Render.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/Security.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/TheliaLoop.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/Translation.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/Type.php delete mode 100644 local/local/modules/TheliaSmarty/Template/Plugins/UrlGenerator.php delete mode 100644 local/local/modules/TheliaSmarty/Template/SmartyHelper.php delete mode 100644 local/local/modules/TheliaSmarty/Template/SmartyParser.php delete mode 100644 local/local/modules/TheliaSmarty/Template/SmartyPluginDescriptor.php delete mode 100644 local/local/modules/TheliaSmarty/Tests/Template/Plugin/Controller/TestController.php delete mode 100644 local/local/modules/TheliaSmarty/Tests/Template/Plugin/FormTest.php delete mode 100644 local/local/modules/TheliaSmarty/Tests/Template/Plugin/FormatTest.php delete mode 100644 local/local/modules/TheliaSmarty/Tests/Template/Plugin/RenderTest.php delete mode 100644 local/local/modules/TheliaSmarty/Tests/Template/Plugin/SmartyPluginTestCase.php delete mode 100644 local/local/modules/TheliaSmarty/Tests/Template/Plugin/fixtures/test.html delete mode 100644 local/local/modules/TheliaSmarty/Tests/Template/Plugin/fixtures/testFormatMoney.html delete mode 100644 local/local/modules/TheliaSmarty/Tests/Template/Plugin/fixtures/testMethod.html delete mode 100644 local/local/modules/TheliaSmarty/Tests/Template/Plugin/fixtures/testParams.html delete mode 100644 local/local/modules/TheliaSmarty/Tests/Template/Plugin/fixtures/testQueryArray.html delete mode 100644 local/local/modules/TheliaSmarty/Tests/Template/Plugin/fixtures/testQueryString.html delete mode 100644 local/local/modules/TheliaSmarty/Tests/Template/Plugin/fixtures/testRequest.html delete mode 100644 local/local/modules/TheliaSmarty/Tests/Template/SmartyHelperTest.php delete mode 100644 local/local/modules/TheliaSmarty/TheliaSmarty.php delete mode 100644 local/local/modules/TheliaSmarty/composer.json delete mode 100644 local/local/modules/Tinymce/CHANGELOG.md delete mode 100644 local/local/modules/Tinymce/Config/config.xml delete mode 100644 local/local/modules/Tinymce/Config/module.xml delete mode 100644 local/local/modules/Tinymce/Config/routing.xml delete mode 100644 local/local/modules/Tinymce/Controller/ConfigureController.php delete mode 100644 local/local/modules/Tinymce/Form/ConfigurationForm.php delete mode 100644 local/local/modules/Tinymce/Hook/HookManager.php delete mode 100644 local/local/modules/Tinymce/I18n/backOffice/default/de_DE.php delete mode 100644 local/local/modules/Tinymce/I18n/backOffice/default/en_US.php delete mode 100644 local/local/modules/Tinymce/I18n/backOffice/default/fr_FR.php delete mode 100644 local/local/modules/Tinymce/I18n/backOffice/default/tr_TR.php delete mode 100644 local/local/modules/Tinymce/I18n/en_US.php delete mode 100644 local/local/modules/Tinymce/I18n/fr_FR.php delete mode 100644 local/local/modules/Tinymce/I18n/it_IT.php delete mode 100644 local/local/modules/Tinymce/I18n/tr_TR.php delete mode 100644 local/local/modules/Tinymce/LICENSE.txt delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/ajax_calls.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/config/.htaccess delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/config/config.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-lightbox.min.css delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-modal.min.css delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-responsive.min.css delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap.min.css delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.css delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.min.css delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/jquery.contextMenu.min.css delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.css delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.less delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/dialog.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/execute.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/force_download.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_apply.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_clear.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/copy.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/cut.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/date.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/dimension.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/door.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/down.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/download.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/duplicate.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/edit_img.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/glyphicons-halflings-white.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/glyphicons-halflings.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ac3.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/accdb.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ade.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/adp.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ai.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/aiff.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/avi.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/bmp.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/css.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/csv.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/default.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/dmg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/doc.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/docx.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/favicon.ico delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/fla.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/flv.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder_back.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder_back.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gif.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gz.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/html.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/iso.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpeg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/log.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/m4a.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mdb.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mid.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mov.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp3.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp4.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpeg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odb.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odf.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odp.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ods.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odt.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ogg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otp.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ots.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ott.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pdf.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/png.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ppt.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pptx.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/psd.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rar.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rtf.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/sql.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/svg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/tar.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/tiff.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/txt.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wav.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/webm.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wma.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xhtml.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xls.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xlsx.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xml.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/zip.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ac3.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/accdb.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ade.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/adp.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ai.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/aiff.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/avi.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/bmp.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/css.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/csv.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/default.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/dmg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/doc.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/docx.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/favicon.ico delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/fla.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/flv.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gif.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gz.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/html.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/iso.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpeg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/log.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/m4a.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mdb.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mid.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mov.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mp3.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mp4.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpeg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odb.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odf.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odp.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ods.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odt.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ogg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otp.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ots.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ott.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pdf.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/png.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ppt.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pptx.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/psd.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rar.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rtf.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/sql.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/svg.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tar.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tiff.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/txt.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wav.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/webm.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wma.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xhtml.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xls.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xlsx.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xml.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/zip.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/info.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/label.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/loading.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/logo.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_add.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_copy.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_delete.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_edit.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_paste.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/preview.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/processing.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/rename.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/size.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/sort.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap@2x_en_EN.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap@2x_hu_HU.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap_en_EN.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap_hu_HU.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/storing_animation.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/up.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/url.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/zip.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/php_image_magician.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/utils.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/Jplayer.swf delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/add-on/jplayer.playlist.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/add-on/jquery.jplayer.inspector.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/jquery.jplayer.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/popcorn/popcorn.jplayer.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.seeking.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.video.play.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/spirites_blue.monday_2011.pxm delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootbox.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-lightbox.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modal.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modalmanager.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/dropzone.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/imagesloaded.pkgd.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/include.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/include.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery-ui-1.10.4.custom.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery-ui-1.10.4.custom.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery.contextMenu.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery.contextMenu.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery.queryloader2.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery.touchSwipe.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery.ui.position.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery.ui.position.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/modernizr.custom.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/az_AZ.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/bg_BG.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/ca.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/cs.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/de.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/el_GR.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/en_EN.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/es.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/fa.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/fr_FR.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/hr.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/hr_HR.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/hu_HU.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/id.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/it.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/lt.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/mn_MN.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/nb_NO.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/nl.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/pl.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/pt_BR.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/pt_PT.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/ru.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/sk.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/sl.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/sv_SE.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/tr_TR.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/uk_UA.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/zh_CN.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/plugin.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/upload.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/index.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/jupload.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/success.jpg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/success.php delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/wjhk.jupload.jar delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/langs/cs.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/langs/de.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/langs/es.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/langs/fr_FR.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/langs/it.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/langs/readme.md delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/langs/ru.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/license.txt delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/advlist/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/anchor/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/autolink/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/autoresize/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/autosave/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/bbcode/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/charmap/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/code/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/codesample/css/prism.css delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/codesample/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/colorpicker/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/contextmenu/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/directionality/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-cool.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-cry.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-embarassed.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-frown.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-innocent.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-kiss.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-laughing.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-money-mouth.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-sealed.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-smile.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-surprised.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-tongue-out.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-undecided.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-wink.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-yell.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/example/dialog.html delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/example/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/example_dependency/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/fullpage/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/fullscreen/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/hr/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/image/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/imagetools/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/importcss/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/insertdatetime/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/layer/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/legacyoutput/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/link/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/lists/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/media/moxieplayer.swf delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/media/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/nonbreaking/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/noneditable/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/pagebreak/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/paste/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/preview/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/print/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/responsivefilemanager/editor_plugin.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/responsivefilemanager/img/insertfile.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/responsivefilemanager/plugin.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/responsivefilemanager/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/save/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/searchreplace/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/spellchecker/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/tabfocus/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/table/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/template/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/textcolor/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/textpattern/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/visualblocks/css/visualblocks.css delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/visualblocks/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/visualchars/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/wordcount/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/README.md delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/css/styles.css delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/img/Google-YouTube-128.png delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/img/youtube.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/js/main.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/js/vendor/jquery.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/de.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/en.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/es.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/fr_FR.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/hu.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/it.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/pl.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/pt_BR.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/ru.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/plugin.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/plugin.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/view/forms.html delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/youtube.html delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/skins/lightgray/content.inline.min.css delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/skins/lightgray/content.min.css delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/skins/lightgray/fonts/tinymce-small.eot delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/skins/lightgray/fonts/tinymce-small.svg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/skins/lightgray/fonts/tinymce-small.ttf delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/skins/lightgray/fonts/tinymce-small.woff delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/skins/lightgray/fonts/tinymce.eot delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/skins/lightgray/fonts/tinymce.svg delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/skins/lightgray/fonts/tinymce.ttf delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/skins/lightgray/fonts/tinymce.woff delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/skins/lightgray/img/anchor.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/skins/lightgray/img/loader.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/skins/lightgray/img/object.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/skins/lightgray/img/trans.gif delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/skins/lightgray/skin.ie7.min.css delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/skins/lightgray/skin.min.css delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/themes/modern/theme.min.js delete mode 100644 local/local/modules/Tinymce/Resources/js/tinymce/tinymce.min.js delete mode 100644 local/local/modules/Tinymce/Smarty/TinyMCELanguage.php delete mode 100644 local/local/modules/Tinymce/Tinymce.php delete mode 100644 local/local/modules/Tinymce/composer.json delete mode 100644 local/local/modules/Tinymce/templates/backOffice/default/assets/css/editor.less delete mode 100644 local/local/modules/Tinymce/templates/backOffice/default/module_configuration.html delete mode 100644 local/local/modules/Tinymce/templates/backOffice/default/tinymce_init.tpl delete mode 100644 local/local/modules/VirtualProductControl/LICENSE.txt delete mode 100644 local/local/modules/VirtualProductDelivery/LICENSE.txt delete mode 100644 local/local/session/.gitkeep delete mode 100644 local/local/session/sess_117e6a88059df20ba267cd892f37f062 delete mode 100644 local/local/session/sess_b2ebbea5872c07bdbca4633b47b06839 delete mode 100644 local/local/session/sess_e75e78f2de193f9ab052b17b210c8df4 create mode 100644 local/modules/SessionPurge/Command/SessionPurge.php create mode 100644 local/modules/SessionPurge/Config/config.xml rename local/modules/{modules/HookAdminHome => SessionPurge}/Config/module.xml (61%) create mode 100644 local/modules/SessionPurge/Config/routing.xml create mode 100644 local/modules/SessionPurge/Config/secret-key.txt create mode 100644 local/modules/SessionPurge/Controller/PurgeController.php create mode 100644 local/modules/SessionPurge/Event/SessionPurgeEvent.php create mode 100644 local/modules/SessionPurge/EventListener/EventManager.php create mode 100644 local/modules/SessionPurge/LICENSE.txt create mode 100644 local/modules/SessionPurge/Readme.md rename local/modules/{modules/HookAdminHome/HookAdminHome.php => SessionPurge/SessionPurge.php} (90%) rename local/modules/{modules/HookAdminHome => SessionPurge}/composer.json (59%) create mode 100644 local/modules/Sitemap/Config/config.xml rename local/{local/modules/TheliaMigrateCountry => modules/Sitemap}/Config/module.xml (59%) create mode 100644 local/modules/Sitemap/Config/routing.xml create mode 100644 local/modules/Sitemap/Config/schema.xml create mode 100644 local/modules/Sitemap/Config/sqldb.map create mode 100644 local/modules/Sitemap/Config/thelia.sql create mode 100644 local/modules/Sitemap/Config/update/sql/1.5.0.sql create mode 100644 local/modules/Sitemap/Controller/BrandSitemapTrait.php create mode 100644 local/modules/Sitemap/Controller/CategorySitemapTrait.php create mode 100644 local/modules/Sitemap/Controller/ContentSitemapTrait.php create mode 100644 local/modules/Sitemap/Controller/FolderSitemapTrait.php create mode 100644 local/modules/Sitemap/Controller/ProductImageTrait.php create mode 100644 local/modules/Sitemap/Controller/ProductSitemapTrait.php create mode 100644 local/modules/Sitemap/Controller/SitemapConfigController.php create mode 100644 local/modules/Sitemap/Controller/SitemapController.php create mode 100644 local/modules/Sitemap/Event/SitemapEndEvent.php create mode 100644 local/modules/Sitemap/Event/SitemapEvent.php create mode 100644 local/modules/Sitemap/EventListeners/EventManager.php create mode 100644 local/modules/Sitemap/Form/SitemapConfigForm.php create mode 100644 local/modules/Sitemap/Hook/SitemapHook.php create mode 100644 local/modules/Sitemap/I18n/backOffice/default/en_US.php create mode 100644 local/modules/Sitemap/I18n/backOffice/default/fr_FR.php create mode 100644 local/modules/Sitemap/I18n/en_US.php create mode 100644 local/modules/Sitemap/I18n/fr_FR.php rename local/modules/{modules/Carousel/Model/Base/CarouselI18n.php => Sitemap/Model/Base/SitemapPriority.php} (66%) create mode 100644 local/modules/Sitemap/Model/Base/SitemapPriorityQuery.php rename local/modules/{modules/Carousel/Model/Map/CarouselTableMap.php => Sitemap/Model/Map/SitemapPriorityTableMap.php} (65%) create mode 100644 local/modules/Sitemap/Model/SitemapPriority.php rename local/{local/modules/Carousel/Model/CarouselI18nQuery.php => modules/Sitemap/Model/SitemapPriorityQuery.php} (57%) create mode 100644 local/modules/Sitemap/Readme.md create mode 100644 local/modules/Sitemap/Sitemap.php rename local/modules/{modules/FreeOrder => Sitemap}/composer.json (63%) create mode 100644 local/modules/Sitemap/templates/backOffice/default/generic-sitemap-definition.html create mode 100644 local/modules/Sitemap/templates/backOffice/default/sitemap-configuration.html rename local/{local => }/modules/VirtualProductControl/Config/config.xml (100%) rename local/{local => }/modules/VirtualProductControl/Config/module.xml (100%) rename local/{local => }/modules/VirtualProductControl/Hook/VirtualProductHook.php (100%) rename local/{local => }/modules/VirtualProductControl/I18n/backOffice/default/de_DE.php (100%) rename local/{local => }/modules/VirtualProductControl/I18n/backOffice/default/en_US.php (100%) rename local/{local => }/modules/VirtualProductControl/I18n/backOffice/default/fr_FR.php (100%) rename local/{local => }/modules/VirtualProductControl/I18n/backOffice/default/it_IT.php (100%) rename local/{local => }/modules/VirtualProductControl/I18n/backOffice/default/tr_TR.php (100%) rename local/{local => }/modules/VirtualProductControl/I18n/de_DE.php (100%) rename local/{local => }/modules/VirtualProductControl/I18n/en_US.php (100%) rename local/{local => }/modules/VirtualProductControl/I18n/fr_FR.php (100%) rename local/{local => }/modules/VirtualProductControl/I18n/it_IT.php (100%) rename local/{local => }/modules/VirtualProductControl/I18n/tr_TR.php (100%) rename local/{local/modules/Cheque => modules/VirtualProductControl}/LICENSE.txt (100%) rename local/{local => }/modules/VirtualProductControl/VirtualProductControl.php (100%) rename local/{local => }/modules/VirtualProductControl/composer.json (100%) rename local/{local => }/modules/VirtualProductControl/templates/backOffice/default/virtual-delivery-warning.html (100%) rename local/{local => }/modules/VirtualProductDelivery/Config/config.xml (100%) rename local/{local => }/modules/VirtualProductDelivery/Config/module.xml (100%) rename local/{local => }/modules/VirtualProductDelivery/EventListeners/SendMail.php (100%) rename local/{local => }/modules/VirtualProductDelivery/EventListeners/VirtualProductEvents.php (100%) rename local/{local => }/modules/VirtualProductDelivery/Events/VirtualProductDeliveryEvents.php (100%) rename local/{local => }/modules/VirtualProductDelivery/Hook/HookManager.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/de_DE.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/email/default/en_US.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/email/default/fr_FR.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/email/default/it_IT.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/email/default/tr_TR.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/en_US.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/fr_FR.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/frontOffice/default/de_DE.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/frontOffice/default/en_US.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/frontOffice/default/fr_FR.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/frontOffice/default/it_IT.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/frontOffice/default/tr_TR.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/it_IT.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/pdf/default/de_DE.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/pdf/default/en_US.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/pdf/default/fr_FR.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/pdf/default/it_IT.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/pdf/default/tr_TR.php (100%) rename local/{local => }/modules/VirtualProductDelivery/I18n/tr_TR.php (100%) rename local/{local/modules/Colissimo => modules/VirtualProductDelivery}/LICENSE.txt (100%) rename local/{local => }/modules/VirtualProductDelivery/VirtualProductDelivery.php (100%) rename local/{local => }/modules/VirtualProductDelivery/composer.json (100%) rename local/{local => }/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.html (100%) rename local/{local => }/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.txt (100%) rename local/{local => }/modules/VirtualProductDelivery/templates/frontOffice/default/account-order-after-products.html (100%) rename local/{local => }/modules/VirtualProductDelivery/templates/frontOffice/default/delivery-address.html (100%) rename local/{local => }/modules/VirtualProductDelivery/templates/pdf/default/delivery-address.html (100%) delete mode 100644 local/modules/modules/.gitkeep delete mode 100644 local/modules/modules/Carousel/CHANGELOG.md delete mode 100644 local/modules/modules/Carousel/Carousel.php delete mode 100644 local/modules/modules/Carousel/Config/config.xml delete mode 100644 local/modules/modules/Carousel/Config/module.xml delete mode 100644 local/modules/modules/Carousel/Config/routing.xml delete mode 100644 local/modules/modules/Carousel/Config/schema.xml delete mode 100644 local/modules/modules/Carousel/Config/sql/destroy.sql delete mode 100644 local/modules/modules/Carousel/Config/thelia.sql delete mode 100644 local/modules/modules/Carousel/Controller/ConfigurationController.php delete mode 100644 local/modules/modules/Carousel/Form/CarouselImageForm.php delete mode 100644 local/modules/modules/Carousel/Form/CarouselUpdateForm.php delete mode 100644 local/modules/modules/Carousel/Hook/BackHook.php delete mode 100644 local/modules/modules/Carousel/I18n/backOffice/default/de_DE.php delete mode 100644 local/modules/modules/Carousel/I18n/backOffice/default/en_US.php delete mode 100644 local/modules/modules/Carousel/I18n/backOffice/default/fr_FR.php delete mode 100644 local/modules/modules/Carousel/I18n/backOffice/default/ru_RU.php delete mode 100644 local/modules/modules/Carousel/I18n/backOffice/default/tr_TR.php delete mode 100644 local/modules/modules/Carousel/I18n/de_DE.php delete mode 100644 local/modules/modules/Carousel/I18n/en_US.php delete mode 100644 local/modules/modules/Carousel/I18n/fr_FR.php delete mode 100644 local/modules/modules/Carousel/I18n/it_IT.php delete mode 100644 local/modules/modules/Carousel/I18n/tr_TR.php delete mode 100644 local/modules/modules/Carousel/Loop/CarouselLoop.php delete mode 100644 local/modules/modules/Carousel/Model/Base/Carousel.php delete mode 100644 local/modules/modules/Carousel/Model/Base/CarouselI18nQuery.php delete mode 100644 local/modules/modules/Carousel/Model/Base/CarouselQuery.php delete mode 100644 local/modules/modules/Carousel/Model/Carousel.php delete mode 100644 local/modules/modules/Carousel/Model/CarouselI18n.php delete mode 100644 local/modules/modules/Carousel/Model/CarouselI18nQuery.php delete mode 100644 local/modules/modules/Carousel/Model/CarouselQuery.php delete mode 100644 local/modules/modules/Carousel/Model/Map/CarouselI18nTableMap.php delete mode 100644 local/modules/modules/Carousel/Readme.md delete mode 100644 local/modules/modules/Carousel/composer.json delete mode 100644 local/modules/modules/Carousel/templates/backOffice/default/assets/js/module-configuration.js delete mode 100644 local/modules/modules/Carousel/templates/backOffice/default/module_configuration.html delete mode 100644 local/modules/modules/Carousel/templates/frontOffice/default/carousel.html delete mode 100644 local/modules/modules/Cheque/Cheque.php delete mode 100644 local/modules/modules/Cheque/Config/config.xml delete mode 100644 local/modules/modules/Cheque/Config/module.xml delete mode 100644 local/modules/modules/Cheque/Config/routing.xml delete mode 100644 local/modules/modules/Cheque/Config/setup.sql delete mode 100644 local/modules/modules/Cheque/Controller/ConfigureController.php delete mode 100644 local/modules/modules/Cheque/Form/ConfigurationForm.php delete mode 100644 local/modules/modules/Cheque/Hook/HookManager.php delete mode 100644 local/modules/modules/Cheque/I18n/backOffice/default/de_DE.php delete mode 100644 local/modules/modules/Cheque/I18n/backOffice/default/en_US.php delete mode 100644 local/modules/modules/Cheque/I18n/backOffice/default/fr_FR.php delete mode 100644 local/modules/modules/Cheque/I18n/backOffice/default/tr_TR.php delete mode 100644 local/modules/modules/Cheque/I18n/de_DE.php delete mode 100644 local/modules/modules/Cheque/I18n/en_US.php delete mode 100644 local/modules/modules/Cheque/I18n/fr_FR.php delete mode 100644 local/modules/modules/Cheque/I18n/frontOffice/default/de_DE.php delete mode 100644 local/modules/modules/Cheque/I18n/frontOffice/default/en_US.php delete mode 100644 local/modules/modules/Cheque/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/modules/modules/Cheque/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/modules/modules/Cheque/I18n/tr_TR.php delete mode 100644 local/modules/modules/Cheque/LICENSE.txt delete mode 100644 local/modules/modules/Cheque/Listener/SendPaymentConfirmationEmail.php delete mode 100644 local/modules/modules/Cheque/composer.json delete mode 100644 local/modules/modules/Cheque/images/cheque.png delete mode 100644 local/modules/modules/Cheque/templates/backOffice/default/module_configuration.html delete mode 100644 local/modules/modules/Cheque/templates/frontOffice/default/order-placed.additional-payment-info.html delete mode 100644 local/modules/modules/Colissimo/Colissimo.php delete mode 100644 local/modules/modules/Colissimo/Config/config.xml delete mode 100644 local/modules/modules/Colissimo/Config/module.xml delete mode 100644 local/modules/modules/Colissimo/Config/prices.json delete mode 100644 local/modules/modules/Colissimo/Config/routing.xml delete mode 100644 local/modules/modules/Colissimo/Config/thelia.sql delete mode 100644 local/modules/modules/Colissimo/Controller/Configuration.php delete mode 100644 local/modules/modules/Colissimo/Controller/EditPrices.php delete mode 100644 local/modules/modules/Colissimo/Controller/Export.php delete mode 100644 local/modules/modules/Colissimo/Controller/FreeShipping.php delete mode 100644 local/modules/modules/Colissimo/EventListener/AreaDeletedListener.php delete mode 100644 local/modules/modules/Colissimo/Form/Configuration.php delete mode 100644 local/modules/modules/Colissimo/Form/Export.php delete mode 100644 local/modules/modules/Colissimo/Form/FreeShipping.php delete mode 100644 local/modules/modules/Colissimo/Hook/HookManager.php delete mode 100644 local/modules/modules/Colissimo/I18n/backOffice/default/de_DE.php delete mode 100644 local/modules/modules/Colissimo/I18n/backOffice/default/en_US.php delete mode 100644 local/modules/modules/Colissimo/I18n/backOffice/default/fr_FR.php delete mode 100644 local/modules/modules/Colissimo/I18n/backOffice/default/it_IT.php delete mode 100644 local/modules/modules/Colissimo/I18n/backOffice/default/tr_TR.php delete mode 100644 local/modules/modules/Colissimo/I18n/de_DE.php delete mode 100644 local/modules/modules/Colissimo/I18n/en_US.php delete mode 100644 local/modules/modules/Colissimo/I18n/fr_FR.php delete mode 100644 local/modules/modules/Colissimo/I18n/tr_TR.php delete mode 100644 local/modules/modules/Colissimo/LICENSE.txt delete mode 100644 local/modules/modules/Colissimo/Listener/SendMail.php delete mode 100644 local/modules/modules/Colissimo/Loop/CheckRightsLoop.php delete mode 100644 local/modules/modules/Colissimo/Loop/NotSendLoop.php delete mode 100644 local/modules/modules/Colissimo/Loop/Price.php delete mode 100644 local/modules/modules/Colissimo/Model/ColissimoQuery.php delete mode 100644 local/modules/modules/Colissimo/Model/Config/Base/ColissimoConfigValue.php delete mode 100644 local/modules/modules/Colissimo/Model/Config/ColissimoConfigValue.php delete mode 100644 local/modules/modules/Colissimo/THELIA_INET.FMT delete mode 100644 local/modules/modules/Colissimo/composer.json delete mode 100644 local/modules/modules/Colissimo/documentation/TarifsAvril2013.pdf delete mode 100644 local/modules/modules/Colissimo/documentation/readme.txt delete mode 100644 local/modules/modules/Colissimo/templates/backOffice/default/assets/js/module-configuration-js.html delete mode 100644 local/modules/modules/Colissimo/templates/backOffice/default/module_configuration.html delete mode 100644 local/modules/modules/FreeOrder/Config/config.xml delete mode 100644 local/modules/modules/FreeOrder/Config/module.xml delete mode 100644 local/modules/modules/FreeOrder/FreeOrder.php delete mode 100644 local/modules/modules/FreeOrder/LICENSE.txt delete mode 100644 local/modules/modules/FreeOrder/Readme.md delete mode 100644 local/modules/modules/Front/Config/config.xml delete mode 100644 local/modules/modules/Front/Config/front.xml delete mode 100644 local/modules/modules/Front/Config/module.xml delete mode 100644 local/modules/modules/Front/Controller/AddressController.php delete mode 100644 local/modules/modules/Front/Controller/CartController.php delete mode 100644 local/modules/modules/Front/Controller/ContactController.php delete mode 100644 local/modules/modules/Front/Controller/CouponController.php delete mode 100644 local/modules/modules/Front/Controller/CustomerController.php delete mode 100644 local/modules/modules/Front/Controller/FeedController.php delete mode 100644 local/modules/modules/Front/Controller/NewsletterController.php delete mode 100644 local/modules/modules/Front/Controller/OrderController.php delete mode 100644 local/modules/modules/Front/Controller/SitemapController.php delete mode 100644 local/modules/modules/Front/Front.php delete mode 100644 local/modules/modules/Front/I18n/de_DE.php delete mode 100644 local/modules/modules/Front/I18n/en_US.php delete mode 100644 local/modules/modules/Front/I18n/fr_FR.php delete mode 100644 local/modules/modules/Front/I18n/it_IT.php delete mode 100644 local/modules/modules/Front/I18n/tr_TR.php delete mode 100644 local/modules/modules/Front/LICENSE.txt delete mode 100644 local/modules/modules/Front/composer.json delete mode 100644 local/modules/modules/HookAdminHome/Config/config.xml delete mode 100644 local/modules/modules/HookAdminHome/Config/routing.xml delete mode 100644 local/modules/modules/HookAdminHome/Controller/HomeController.php delete mode 100644 local/modules/modules/HookAdminHome/Hook/AdminHook.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/ar_SA.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/backOffice/default/ar_SA.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/backOffice/default/cs_CZ.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/backOffice/default/de_DE.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/backOffice/default/en_US.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/backOffice/default/es_ES.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/backOffice/default/fr_FR.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/backOffice/default/it_IT.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/backOffice/default/pt_BR.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/backOffice/default/ru_RU.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/backOffice/default/tr_TR.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/cs_CZ.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/de_DE.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/en_US.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/es_ES.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/fr_FR.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/id_ID.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/it_IT.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/ru_RU.php delete mode 100644 local/modules/modules/HookAdminHome/I18n/tr_TR.php delete mode 100644 local/modules/modules/HookAdminHome/LICENSE.txt delete mode 100644 local/modules/modules/HookAdminHome/templates/backOffice/default/ajax/thelia_news_feed.html delete mode 100644 local/modules/modules/HookAdminHome/templates/backOffice/default/assets/css/home.css delete mode 100644 local/modules/modules/HookAdminHome/templates/backOffice/default/assets/less/home.less delete mode 100644 local/modules/modules/HookAdminHome/templates/backOffice/default/block-information.html delete mode 100644 local/modules/modules/HookAdminHome/templates/backOffice/default/block-month-sales-statistics.html delete mode 100644 local/modules/modules/HookAdminHome/templates/backOffice/default/block-news-js.html delete mode 100644 local/modules/modules/HookAdminHome/templates/backOffice/default/block-news.html delete mode 100644 local/modules/modules/HookAdminHome/templates/backOffice/default/block-sales-statistics.html delete mode 100644 local/modules/modules/HookAdminHome/templates/backOffice/default/block-statistics-js.html delete mode 100644 local/modules/modules/HookAdminHome/templates/backOffice/default/block-statistics.html delete mode 100644 local/modules/modules/HookAdminHome/templates/backOffice/default/block-thelia-information.html delete mode 100644 local/modules/modules/HookAnalytics/Config/config.xml delete mode 100644 local/modules/modules/HookAnalytics/Config/module.xml delete mode 100644 local/modules/modules/HookAnalytics/Config/routing.xml delete mode 100644 local/modules/modules/HookAnalytics/Controller/Configuration.php delete mode 100644 local/modules/modules/HookAnalytics/Form/Configuration.php delete mode 100644 local/modules/modules/HookAnalytics/Hook/FrontHook.php delete mode 100644 local/modules/modules/HookAnalytics/HookAnalytics.php delete mode 100644 local/modules/modules/HookAnalytics/I18n/backOffice/default/de_DE.php delete mode 100644 local/modules/modules/HookAnalytics/I18n/backOffice/default/en_US.php delete mode 100644 local/modules/modules/HookAnalytics/I18n/backOffice/default/fr_FR.php delete mode 100644 local/modules/modules/HookAnalytics/I18n/backOffice/default/it_IT.php delete mode 100644 local/modules/modules/HookAnalytics/I18n/backOffice/default/tr_TR.php delete mode 100644 local/modules/modules/HookAnalytics/I18n/de_DE.php delete mode 100644 local/modules/modules/HookAnalytics/I18n/en_US.php delete mode 100644 local/modules/modules/HookAnalytics/I18n/fr_FR.php delete mode 100644 local/modules/modules/HookAnalytics/I18n/frontOffice/default/de_DE.php delete mode 100644 local/modules/modules/HookAnalytics/I18n/frontOffice/default/en_US.php delete mode 100644 local/modules/modules/HookAnalytics/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/modules/modules/HookAnalytics/I18n/frontOffice/default/it_IT.php delete mode 100644 local/modules/modules/HookAnalytics/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/modules/modules/HookAnalytics/I18n/it_IT.php delete mode 100644 local/modules/modules/HookAnalytics/I18n/tr_TR.php delete mode 100644 local/modules/modules/HookAnalytics/LICENSE.txt delete mode 100644 local/modules/modules/HookAnalytics/composer.json delete mode 100644 local/modules/modules/HookAnalytics/templates/backOffice/default/assets/js/module-configuration.js delete mode 100644 local/modules/modules/HookAnalytics/templates/backOffice/default/module_configuration.html delete mode 100644 local/modules/modules/HookCart/Config/config.xml delete mode 100644 local/modules/modules/HookCart/Config/module.xml delete mode 100644 local/modules/modules/HookCart/HookCart.php delete mode 100644 local/modules/modules/HookCart/I18n/frontOffice/default/de_DE.php delete mode 100644 local/modules/modules/HookCart/I18n/frontOffice/default/en_US.php delete mode 100644 local/modules/modules/HookCart/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/modules/modules/HookCart/I18n/frontOffice/default/it_IT.php delete mode 100644 local/modules/modules/HookCart/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/modules/modules/HookCart/LICENSE.txt delete mode 100644 local/modules/modules/HookCart/composer.json delete mode 100644 local/modules/modules/HookCart/templates/frontOffice/default/assets/css/styles.css delete mode 100644 local/modules/modules/HookCart/templates/frontOffice/default/main-navbar-secondary.html delete mode 100644 local/modules/modules/HookCart/templates/frontOffice/default/mini-cart.html delete mode 100644 local/modules/modules/HookContact/Config/config.xml delete mode 100644 local/modules/modules/HookContact/Config/module.xml delete mode 100644 local/modules/modules/HookContact/Hook/FrontHook.php delete mode 100644 local/modules/modules/HookContact/HookContact.php delete mode 100644 local/modules/modules/HookContact/I18n/de_DE.php delete mode 100644 local/modules/modules/HookContact/I18n/en_US.php delete mode 100644 local/modules/modules/HookContact/I18n/fr_FR.php delete mode 100644 local/modules/modules/HookContact/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/modules/modules/HookContact/I18n/it_IT.php delete mode 100644 local/modules/modules/HookContact/I18n/tr_TR.php delete mode 100644 local/modules/modules/HookContact/LICENSE.txt delete mode 100644 local/modules/modules/HookContact/composer.json delete mode 100644 local/modules/modules/HookContact/templates/frontOffice/default/main-footer-body.html delete mode 100644 local/modules/modules/HookCurrency/Config/config.xml delete mode 100644 local/modules/modules/HookCurrency/Config/module.xml delete mode 100644 local/modules/modules/HookCurrency/HookCurrency.php delete mode 100644 local/modules/modules/HookCurrency/LICENSE.txt delete mode 100644 local/modules/modules/HookCurrency/composer.json delete mode 100644 local/modules/modules/HookCurrency/templates/frontOffice/default/main-navbar-secondary.html delete mode 100644 local/modules/modules/HookCustomer/Config/config.xml delete mode 100644 local/modules/modules/HookCustomer/Config/module.xml delete mode 100644 local/modules/modules/HookCustomer/HookCustomer.php delete mode 100644 local/modules/modules/HookCustomer/I18n/frontOffice/default/de_DE.php delete mode 100644 local/modules/modules/HookCustomer/I18n/frontOffice/default/en_US.php delete mode 100644 local/modules/modules/HookCustomer/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/modules/modules/HookCustomer/I18n/frontOffice/default/it_IT.php delete mode 100644 local/modules/modules/HookCustomer/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/modules/modules/HookCustomer/LICENSE.txt delete mode 100644 local/modules/modules/HookCustomer/composer.json delete mode 100644 local/modules/modules/HookCustomer/templates/frontOffice/default/assets/css/styles.css delete mode 100644 local/modules/modules/HookCustomer/templates/frontOffice/default/main-navbar-secondary.html delete mode 100644 local/modules/modules/HookLang/Config/config.xml delete mode 100644 local/modules/modules/HookLang/Config/module.xml delete mode 100644 local/modules/modules/HookLang/HookLang.php delete mode 100644 local/modules/modules/HookLang/LICENSE.txt delete mode 100644 local/modules/modules/HookLang/composer.json delete mode 100644 local/modules/modules/HookLang/templates/frontOffice/default/main-navbar-secondary.html delete mode 100644 local/modules/modules/HookLinks/Config/config.xml delete mode 100644 local/modules/modules/HookLinks/Config/module.xml delete mode 100644 local/modules/modules/HookLinks/Hook/FrontHook.php delete mode 100644 local/modules/modules/HookLinks/HookLinks.php delete mode 100644 local/modules/modules/HookLinks/I18n/de_DE.php delete mode 100644 local/modules/modules/HookLinks/I18n/en_US.php delete mode 100644 local/modules/modules/HookLinks/I18n/fr_FR.php delete mode 100644 local/modules/modules/HookLinks/I18n/frontOffice/default/de_DE.php delete mode 100644 local/modules/modules/HookLinks/I18n/frontOffice/default/en_US.php delete mode 100644 local/modules/modules/HookLinks/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/modules/modules/HookLinks/I18n/frontOffice/default/it_IT.php delete mode 100644 local/modules/modules/HookLinks/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/modules/modules/HookLinks/I18n/it_IT.php delete mode 100644 local/modules/modules/HookLinks/I18n/tr_TR.php delete mode 100644 local/modules/modules/HookLinks/LICENSE.txt delete mode 100644 local/modules/modules/HookLinks/composer.json delete mode 100644 local/modules/modules/HookLinks/templates/frontOffice/default/main-footer-body.html delete mode 100644 local/modules/modules/HookNavigation/Config/config.xml delete mode 100644 local/modules/modules/HookNavigation/Config/module.xml delete mode 100644 local/modules/modules/HookNavigation/Config/routing.xml delete mode 100644 local/modules/modules/HookNavigation/Controller/HookNavigationConfigController.php delete mode 100644 local/modules/modules/HookNavigation/Form/HookNavigationConfigForm.php delete mode 100644 local/modules/modules/HookNavigation/Hook/FrontHook.php delete mode 100644 local/modules/modules/HookNavigation/HookNavigation.php delete mode 100644 local/modules/modules/HookNavigation/I18n/backOffice/default/de_DE.php delete mode 100644 local/modules/modules/HookNavigation/I18n/backOffice/default/en_US.php delete mode 100644 local/modules/modules/HookNavigation/I18n/backOffice/default/fr_FR.php delete mode 100644 local/modules/modules/HookNavigation/I18n/backOffice/default/it_IT.php delete mode 100644 local/modules/modules/HookNavigation/I18n/backOffice/default/tr_TR.php delete mode 100644 local/modules/modules/HookNavigation/I18n/en_US.php delete mode 100644 local/modules/modules/HookNavigation/I18n/fr_FR.php delete mode 100644 local/modules/modules/HookNavigation/I18n/frontOffice/default/de_DE.php delete mode 100644 local/modules/modules/HookNavigation/I18n/frontOffice/default/en_US.php delete mode 100644 local/modules/modules/HookNavigation/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/modules/modules/HookNavigation/I18n/frontOffice/default/it_IT.php delete mode 100644 local/modules/modules/HookNavigation/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/modules/modules/HookNavigation/I18n/it_IT.php delete mode 100644 local/modules/modules/HookNavigation/LICENSE.txt delete mode 100644 local/modules/modules/HookNavigation/Model/Config/Base/HookNavigationConfigValue.php delete mode 100644 local/modules/modules/HookNavigation/Model/Config/HookNavigationConfigValue.php delete mode 100644 local/modules/modules/HookNavigation/composer.json delete mode 100644 local/modules/modules/HookNavigation/templates/backOffice/default/hooknavigation-configuration.html delete mode 100644 local/modules/modules/HookNavigation/templates/frontOffice/default/main-footer-body.html delete mode 100644 local/modules/modules/HookNavigation/templates/frontOffice/default/main-footer-bottom.html delete mode 100644 local/modules/modules/HookNavigation/templates/frontOffice/default/main-navbar-primary.html delete mode 100644 local/modules/modules/HookNewsletter/Config/config.xml delete mode 100644 local/modules/modules/HookNewsletter/Config/module.xml delete mode 100644 local/modules/modules/HookNewsletter/Hook/FrontHook.php delete mode 100644 local/modules/modules/HookNewsletter/HookNewsletter.php delete mode 100644 local/modules/modules/HookNewsletter/I18n/de_DE.php delete mode 100644 local/modules/modules/HookNewsletter/I18n/en_US.php delete mode 100644 local/modules/modules/HookNewsletter/I18n/fr_FR.php delete mode 100644 local/modules/modules/HookNewsletter/I18n/frontOffice/default/de_DE.php delete mode 100644 local/modules/modules/HookNewsletter/I18n/frontOffice/default/en_US.php delete mode 100644 local/modules/modules/HookNewsletter/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/modules/modules/HookNewsletter/I18n/frontOffice/default/it_IT.php delete mode 100644 local/modules/modules/HookNewsletter/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/modules/modules/HookNewsletter/I18n/it_IT.php delete mode 100644 local/modules/modules/HookNewsletter/I18n/tr_TR.php delete mode 100644 local/modules/modules/HookNewsletter/LICENSE.txt delete mode 100644 local/modules/modules/HookNewsletter/composer.json delete mode 100644 local/modules/modules/HookNewsletter/templates/frontOffice/default/main-footer-body.html delete mode 100644 local/modules/modules/HookProductsNew/Config/config.xml delete mode 100644 local/modules/modules/HookProductsNew/Config/module.xml delete mode 100644 local/modules/modules/HookProductsNew/HookProductsNew.php delete mode 100644 local/modules/modules/HookProductsNew/I18n/frontOffice/default/de_DE.php delete mode 100644 local/modules/modules/HookProductsNew/I18n/frontOffice/default/en_US.php delete mode 100644 local/modules/modules/HookProductsNew/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/modules/modules/HookProductsNew/I18n/frontOffice/default/it_IT.php delete mode 100644 local/modules/modules/HookProductsNew/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/modules/modules/HookProductsNew/LICENSE.txt delete mode 100644 local/modules/modules/HookProductsNew/composer.json delete mode 100644 local/modules/modules/HookProductsNew/templates/frontOffice/default/home-body.html delete mode 100644 local/modules/modules/HookProductsOffer/Config/config.xml delete mode 100644 local/modules/modules/HookProductsOffer/Config/module.xml delete mode 100644 local/modules/modules/HookProductsOffer/HookProductsOffer.php delete mode 100644 local/modules/modules/HookProductsOffer/I18n/frontOffice/default/de_DE.php delete mode 100644 local/modules/modules/HookProductsOffer/I18n/frontOffice/default/en_US.php delete mode 100644 local/modules/modules/HookProductsOffer/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/modules/modules/HookProductsOffer/I18n/frontOffice/default/it_IT.php delete mode 100644 local/modules/modules/HookProductsOffer/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/modules/modules/HookProductsOffer/LICENSE.txt delete mode 100644 local/modules/modules/HookProductsOffer/composer.json delete mode 100644 local/modules/modules/HookProductsOffer/templates/frontOffice/default/home-body.html delete mode 100644 local/modules/modules/HookSearch/Config/config.xml delete mode 100644 local/modules/modules/HookSearch/Config/module.xml delete mode 100644 local/modules/modules/HookSearch/HookSearch.php delete mode 100644 local/modules/modules/HookSearch/I18n/frontOffice/default/de_DE.php delete mode 100644 local/modules/modules/HookSearch/I18n/frontOffice/default/en_US.php delete mode 100644 local/modules/modules/HookSearch/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/modules/modules/HookSearch/I18n/frontOffice/default/it_IT.php delete mode 100644 local/modules/modules/HookSearch/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/modules/modules/HookSearch/LICENSE.txt delete mode 100644 local/modules/modules/HookSearch/composer.json delete mode 100644 local/modules/modules/HookSearch/templates/frontOffice/default/assets/css/styles.css delete mode 100644 local/modules/modules/HookSearch/templates/frontOffice/default/main-navbar-primary.html delete mode 100644 local/modules/modules/HookSearch/templates/frontOffice/default/main-navbar-secondary.html delete mode 100644 local/modules/modules/HookSocial/Config/config.xml delete mode 100644 local/modules/modules/HookSocial/Config/module.xml delete mode 100644 local/modules/modules/HookSocial/Config/routing.xml delete mode 100644 local/modules/modules/HookSocial/Controller/Configuration.php delete mode 100644 local/modules/modules/HookSocial/Form/Configuration.php delete mode 100644 local/modules/modules/HookSocial/Hook/FrontHook.php delete mode 100644 local/modules/modules/HookSocial/HookSocial.php delete mode 100644 local/modules/modules/HookSocial/I18n/backOffice/default/de_DE.php delete mode 100644 local/modules/modules/HookSocial/I18n/backOffice/default/en_US.php delete mode 100644 local/modules/modules/HookSocial/I18n/backOffice/default/fr_FR.php delete mode 100644 local/modules/modules/HookSocial/I18n/backOffice/default/it_IT.php delete mode 100644 local/modules/modules/HookSocial/I18n/backOffice/default/tr_TR.php delete mode 100644 local/modules/modules/HookSocial/I18n/de_DE.php delete mode 100644 local/modules/modules/HookSocial/I18n/en_US.php delete mode 100644 local/modules/modules/HookSocial/I18n/fr_FR.php delete mode 100644 local/modules/modules/HookSocial/I18n/frontOffice/default/de_DE.php delete mode 100644 local/modules/modules/HookSocial/I18n/frontOffice/default/en_US.php delete mode 100644 local/modules/modules/HookSocial/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/modules/modules/HookSocial/I18n/frontOffice/default/it_IT.php delete mode 100644 local/modules/modules/HookSocial/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/modules/modules/HookSocial/I18n/it_IT.php delete mode 100644 local/modules/modules/HookSocial/I18n/tr_TR.php delete mode 100644 local/modules/modules/HookSocial/LICENSE.txt delete mode 100644 local/modules/modules/HookSocial/composer.json delete mode 100644 local/modules/modules/HookSocial/templates/backOffice/default/assets/js/module-configuration.js delete mode 100644 local/modules/modules/HookSocial/templates/backOffice/default/module_configuration.html delete mode 100644 local/modules/modules/HookSocial/templates/frontOffice/default/assets/css/styles.css delete mode 100644 local/modules/modules/HookSocial/templates/frontOffice/default/main-footer-body.html delete mode 100644 local/modules/modules/TheliaMigrateCountry/Config/config.xml delete mode 100644 local/modules/modules/TheliaMigrateCountry/Config/module.xml delete mode 100644 local/modules/modules/TheliaMigrateCountry/Config/routing.xml delete mode 100644 local/modules/modules/TheliaMigrateCountry/Controller/MigrateController.php delete mode 100644 local/modules/modules/TheliaMigrateCountry/EventListeners/MigrateCountryListener.php delete mode 100644 local/modules/modules/TheliaMigrateCountry/Events/MigrateCountryEvent.php delete mode 100644 local/modules/modules/TheliaMigrateCountry/Events/MigrateCountryEvents.php delete mode 100644 local/modules/modules/TheliaMigrateCountry/Form/CountryStateMigrationForm.php delete mode 100644 local/modules/modules/TheliaMigrateCountry/Form/Type/CountryStateMigrationType.php delete mode 100644 local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/en_US.php delete mode 100644 local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/fr_FR.php delete mode 100644 local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/it_IT.php delete mode 100644 local/modules/modules/TheliaMigrateCountry/I18n/en_US.php delete mode 100644 local/modules/modules/TheliaMigrateCountry/I18n/fr_FR.php delete mode 100644 local/modules/modules/TheliaMigrateCountry/I18n/it_IT.php delete mode 100644 local/modules/modules/TheliaMigrateCountry/LICENSE.txt delete mode 100644 local/modules/modules/TheliaMigrateCountry/Readme.md delete mode 100644 local/modules/modules/TheliaMigrateCountry/TheliaMigrateCountry.php delete mode 100644 local/modules/modules/TheliaMigrateCountry/composer.json delete mode 100644 local/modules/modules/TheliaMigrateCountry/templates/backOffice/default/configuration-shipping-bottom.html delete mode 100644 local/modules/modules/TheliaMigrateCountry/templates/backOffice/default/countries-migrate.html delete mode 100644 local/modules/modules/TheliaSmarty/CREDITS.md delete mode 100644 local/modules/modules/TheliaSmarty/Compiler/RegisterParserPluginPass.php delete mode 100644 local/modules/modules/TheliaSmarty/Config/config.xml delete mode 100644 local/modules/modules/TheliaSmarty/Config/module.xml delete mode 100644 local/modules/modules/TheliaSmarty/I18n/en_US.php delete mode 100644 local/modules/modules/TheliaSmarty/I18n/fr_FR.php delete mode 100644 local/modules/modules/TheliaSmarty/I18n/tr_TR.php delete mode 100644 local/modules/modules/TheliaSmarty/LICENSE.txt delete mode 100644 local/modules/modules/TheliaSmarty/Readme.md delete mode 100644 local/modules/modules/TheliaSmarty/Template/AbstractSmartyPlugin.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Assets/SmartyAssetsManager.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Assets/SmartyAssetsResolver.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Exception/SmartyPluginException.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/AdminUtilities.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/Assets.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/Cache.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/CartPostage.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/DataAccessFunctions.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/Esi.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/FlashMessage.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/Form.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/Format.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/Hook.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/Module.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/Render.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/Security.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/TheliaLoop.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/Translation.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/Type.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/Plugins/UrlGenerator.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/SmartyHelper.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/SmartyParser.php delete mode 100644 local/modules/modules/TheliaSmarty/Template/SmartyPluginDescriptor.php delete mode 100644 local/modules/modules/TheliaSmarty/Tests/Template/Plugin/Controller/TestController.php delete mode 100644 local/modules/modules/TheliaSmarty/Tests/Template/Plugin/FormTest.php delete mode 100644 local/modules/modules/TheliaSmarty/Tests/Template/Plugin/FormatTest.php delete mode 100644 local/modules/modules/TheliaSmarty/Tests/Template/Plugin/RenderTest.php delete mode 100644 local/modules/modules/TheliaSmarty/Tests/Template/Plugin/SmartyPluginTestCase.php delete mode 100644 local/modules/modules/TheliaSmarty/Tests/Template/Plugin/fixtures/test.html delete mode 100644 local/modules/modules/TheliaSmarty/Tests/Template/Plugin/fixtures/testFormatMoney.html delete mode 100644 local/modules/modules/TheliaSmarty/Tests/Template/Plugin/fixtures/testMethod.html delete mode 100644 local/modules/modules/TheliaSmarty/Tests/Template/Plugin/fixtures/testParams.html delete mode 100644 local/modules/modules/TheliaSmarty/Tests/Template/Plugin/fixtures/testQueryArray.html delete mode 100644 local/modules/modules/TheliaSmarty/Tests/Template/Plugin/fixtures/testQueryString.html delete mode 100644 local/modules/modules/TheliaSmarty/Tests/Template/Plugin/fixtures/testRequest.html delete mode 100644 local/modules/modules/TheliaSmarty/Tests/Template/SmartyHelperTest.php delete mode 100644 local/modules/modules/TheliaSmarty/TheliaSmarty.php delete mode 100644 local/modules/modules/TheliaSmarty/composer.json delete mode 100644 local/modules/modules/Tinymce/CHANGELOG.md delete mode 100644 local/modules/modules/Tinymce/Config/config.xml delete mode 100644 local/modules/modules/Tinymce/Config/module.xml delete mode 100644 local/modules/modules/Tinymce/Config/routing.xml delete mode 100644 local/modules/modules/Tinymce/Controller/ConfigureController.php delete mode 100644 local/modules/modules/Tinymce/Form/ConfigurationForm.php delete mode 100644 local/modules/modules/Tinymce/Hook/HookManager.php delete mode 100644 local/modules/modules/Tinymce/I18n/backOffice/default/de_DE.php delete mode 100644 local/modules/modules/Tinymce/I18n/backOffice/default/en_US.php delete mode 100644 local/modules/modules/Tinymce/I18n/backOffice/default/fr_FR.php delete mode 100644 local/modules/modules/Tinymce/I18n/backOffice/default/tr_TR.php delete mode 100644 local/modules/modules/Tinymce/I18n/en_US.php delete mode 100644 local/modules/modules/Tinymce/I18n/fr_FR.php delete mode 100644 local/modules/modules/Tinymce/I18n/it_IT.php delete mode 100644 local/modules/modules/Tinymce/I18n/tr_TR.php delete mode 100644 local/modules/modules/Tinymce/LICENSE.txt delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/ajax_calls.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/config/.htaccess delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/config/config.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-lightbox.min.css delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-modal.min.css delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-responsive.min.css delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap.min.css delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.css delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.min.css delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/jquery.contextMenu.min.css delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.css delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.less delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/dialog.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/execute.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/force_download.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_apply.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_clear.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/copy.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/cut.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/date.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/dimension.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/door.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/down.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/download.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/duplicate.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/edit_img.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/glyphicons-halflings-white.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/glyphicons-halflings.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ac3.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/accdb.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ade.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/adp.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ai.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/aiff.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/avi.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/bmp.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/css.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/csv.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/default.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/dmg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/doc.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/docx.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/favicon.ico delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/fla.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/flv.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder_back.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder_back.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gif.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gz.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/html.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/iso.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpeg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/log.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/m4a.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mdb.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mid.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mov.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp3.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp4.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpeg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odb.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odf.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odp.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ods.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odt.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ogg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otp.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ots.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ott.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pdf.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/png.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ppt.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pptx.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/psd.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rar.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rtf.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/sql.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/svg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/tar.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/tiff.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/txt.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wav.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/webm.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wma.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xhtml.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xls.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xlsx.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xml.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/zip.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ac3.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/accdb.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ade.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/adp.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ai.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/aiff.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/avi.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/bmp.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/css.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/csv.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/default.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/dmg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/doc.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/docx.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/favicon.ico delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/fla.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/flv.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gif.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gz.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/html.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/iso.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpeg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/log.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/m4a.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mdb.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mid.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mov.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mp3.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mp4.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpeg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odb.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odf.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odp.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ods.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odt.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ogg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otp.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ots.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ott.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pdf.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/png.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ppt.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pptx.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/psd.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rar.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rtf.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/sql.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/svg.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tar.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tiff.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/txt.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wav.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/webm.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wma.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xhtml.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xls.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xlsx.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xml.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/zip.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/info.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/label.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/loading.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/logo.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_add.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_copy.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_delete.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_edit.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_paste.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/preview.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/processing.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/rename.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/size.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/sort.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap@2x_en_EN.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap@2x_hu_HU.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap_en_EN.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap_hu_HU.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/storing_animation.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/up.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/url.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/zip.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/include/php_image_magician.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/include/utils.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/Jplayer.swf delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/add-on/jplayer.playlist.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/add-on/jquery.jplayer.inspector.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/jquery.jplayer.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/popcorn/popcorn.jplayer.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.seeking.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.video.play.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/spirites_blue.monday_2011.pxm delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootbox.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-lightbox.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modal.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modalmanager.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/dropzone.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/imagesloaded.pkgd.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/include.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/include.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery-ui-1.10.4.custom.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery-ui-1.10.4.custom.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery.contextMenu.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery.contextMenu.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery.queryloader2.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery.touchSwipe.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery.ui.position.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/jquery.ui.position.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/modernizr.custom.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/az_AZ.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/bg_BG.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/ca.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/cs.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/de.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/el_GR.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/en_EN.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/es.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/fa.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/fr_FR.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/hr.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/hr_HR.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/hu_HU.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/id.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/it.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/lt.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/mn_MN.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/nb_NO.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/nl.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/pl.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/pt_BR.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/pt_PT.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/ru.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/sk.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/sl.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/sv_SE.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/tr_TR.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/uk_UA.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/lang/zh_CN.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/plugin.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/upload.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/index.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/jupload.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/success.jpg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/success.php delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/wjhk.jupload.jar delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/langs/cs.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/langs/de.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/langs/es.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/langs/fr_FR.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/langs/it.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/langs/readme.md delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/langs/ru.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/license.txt delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/advlist/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/anchor/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/autolink/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/autoresize/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/autosave/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/bbcode/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/charmap/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/code/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/codesample/css/prism.css delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/codesample/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/colorpicker/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/contextmenu/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/directionality/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-cool.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-cry.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-embarassed.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-frown.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-innocent.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-kiss.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-laughing.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-money-mouth.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-sealed.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-smile.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-surprised.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-tongue-out.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-undecided.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-wink.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/img/smiley-yell.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/emoticons/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/example/dialog.html delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/example/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/example_dependency/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/fullpage/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/fullscreen/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/hr/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/image/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/imagetools/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/importcss/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/insertdatetime/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/layer/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/legacyoutput/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/link/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/lists/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/media/moxieplayer.swf delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/media/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/nonbreaking/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/noneditable/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/pagebreak/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/paste/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/preview/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/print/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/responsivefilemanager/editor_plugin.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/responsivefilemanager/img/insertfile.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/responsivefilemanager/plugin.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/responsivefilemanager/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/save/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/searchreplace/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/spellchecker/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/tabfocus/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/table/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/template/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/textcolor/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/textpattern/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/visualblocks/css/visualblocks.css delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/visualblocks/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/visualchars/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/wordcount/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/README.md delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/css/styles.css delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/img/Google-YouTube-128.png delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/img/youtube.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/js/main.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/js/vendor/jquery.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/de.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/en.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/es.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/fr_FR.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/hu.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/it.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/pl.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/pt_BR.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/ru.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/plugin.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/plugin.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/view/forms.html delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/plugins/youtube/youtube.html delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/skins/lightgray/content.inline.min.css delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/skins/lightgray/content.min.css delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/skins/lightgray/fonts/tinymce-small.eot delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/skins/lightgray/fonts/tinymce-small.svg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/skins/lightgray/fonts/tinymce-small.ttf delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/skins/lightgray/fonts/tinymce-small.woff delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/skins/lightgray/fonts/tinymce.eot delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/skins/lightgray/fonts/tinymce.svg delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/skins/lightgray/fonts/tinymce.ttf delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/skins/lightgray/fonts/tinymce.woff delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/skins/lightgray/img/anchor.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/skins/lightgray/img/loader.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/skins/lightgray/img/object.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/skins/lightgray/img/trans.gif delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/skins/lightgray/skin.ie7.min.css delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/skins/lightgray/skin.min.css delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/themes/modern/theme.min.js delete mode 100644 local/modules/modules/Tinymce/Resources/js/tinymce/tinymce.min.js delete mode 100644 local/modules/modules/Tinymce/Smarty/TinyMCELanguage.php delete mode 100644 local/modules/modules/Tinymce/Tinymce.php delete mode 100644 local/modules/modules/Tinymce/composer.json delete mode 100644 local/modules/modules/Tinymce/templates/backOffice/default/assets/css/editor.less delete mode 100644 local/modules/modules/Tinymce/templates/backOffice/default/module_configuration.html delete mode 100644 local/modules/modules/Tinymce/templates/backOffice/default/tinymce_init.tpl delete mode 100644 local/modules/modules/VirtualProductControl/Config/config.xml delete mode 100644 local/modules/modules/VirtualProductControl/Config/module.xml delete mode 100644 local/modules/modules/VirtualProductControl/Hook/VirtualProductHook.php delete mode 100644 local/modules/modules/VirtualProductControl/I18n/backOffice/default/de_DE.php delete mode 100644 local/modules/modules/VirtualProductControl/I18n/backOffice/default/en_US.php delete mode 100644 local/modules/modules/VirtualProductControl/I18n/backOffice/default/fr_FR.php delete mode 100644 local/modules/modules/VirtualProductControl/I18n/backOffice/default/it_IT.php delete mode 100644 local/modules/modules/VirtualProductControl/I18n/backOffice/default/tr_TR.php delete mode 100644 local/modules/modules/VirtualProductControl/I18n/de_DE.php delete mode 100644 local/modules/modules/VirtualProductControl/I18n/en_US.php delete mode 100644 local/modules/modules/VirtualProductControl/I18n/fr_FR.php delete mode 100644 local/modules/modules/VirtualProductControl/I18n/it_IT.php delete mode 100644 local/modules/modules/VirtualProductControl/I18n/tr_TR.php delete mode 100644 local/modules/modules/VirtualProductControl/LICENSE.txt delete mode 100644 local/modules/modules/VirtualProductControl/VirtualProductControl.php delete mode 100644 local/modules/modules/VirtualProductControl/composer.json delete mode 100644 local/modules/modules/VirtualProductControl/templates/backOffice/default/virtual-delivery-warning.html delete mode 100644 local/modules/modules/VirtualProductDelivery/Config/config.xml delete mode 100644 local/modules/modules/VirtualProductDelivery/Config/module.xml delete mode 100644 local/modules/modules/VirtualProductDelivery/EventListeners/SendMail.php delete mode 100644 local/modules/modules/VirtualProductDelivery/EventListeners/VirtualProductEvents.php delete mode 100644 local/modules/modules/VirtualProductDelivery/Events/VirtualProductDeliveryEvents.php delete mode 100644 local/modules/modules/VirtualProductDelivery/Hook/HookManager.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/de_DE.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/email/default/en_US.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/email/default/fr_FR.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/email/default/it_IT.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/email/default/tr_TR.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/en_US.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/fr_FR.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/de_DE.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/en_US.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/fr_FR.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/it_IT.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/tr_TR.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/it_IT.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/pdf/default/de_DE.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/pdf/default/en_US.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/pdf/default/fr_FR.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/pdf/default/it_IT.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/pdf/default/tr_TR.php delete mode 100644 local/modules/modules/VirtualProductDelivery/I18n/tr_TR.php delete mode 100644 local/modules/modules/VirtualProductDelivery/LICENSE.txt delete mode 100644 local/modules/modules/VirtualProductDelivery/VirtualProductDelivery.php delete mode 100644 local/modules/modules/VirtualProductDelivery/composer.json delete mode 100644 local/modules/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.html delete mode 100644 local/modules/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.txt delete mode 100644 local/modules/modules/VirtualProductDelivery/templates/frontOffice/default/account-order-after-products.html delete mode 100644 local/modules/modules/VirtualProductDelivery/templates/frontOffice/default/delivery-address.html delete mode 100644 local/modules/modules/VirtualProductDelivery/templates/pdf/default/delivery-address.html diff --git a/local/local/.gitkeep b/local/local/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/I18n/.gitkeep b/local/local/I18n/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/backup/.gitkeep b/local/local/backup/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/backup/update.sql b/local/local/backup/update.sql deleted file mode 100644 index c6fb6f41..00000000 --- a/local/local/backup/update.sql +++ /dev/null @@ -1,11704 +0,0 @@ - -SET foreign_key_checks=0; - -DROP TABLE `accessory`; - -CREATE TABLE `accessory` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `product_id` int(11) NOT NULL, - `accessory` int(11) NOT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_address_product_id` (`product_id`), - KEY `idx_address_accessory` (`accessory`), - CONSTRAINT `fk_accessory_accessory` FOREIGN KEY (`accessory`) REFERENCES `product` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_accessory_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `address`; - -CREATE TABLE `address` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `label` varchar(255) DEFAULT NULL, - `customer_id` int(11) NOT NULL, - `title_id` int(11) NOT NULL, - `company` varchar(255) DEFAULT NULL, - `firstname` varchar(255) NOT NULL, - `lastname` varchar(255) NOT NULL, - `address1` varchar(255) NOT NULL, - `address2` varchar(255) NOT NULL, - `address3` varchar(255) NOT NULL, - `zipcode` varchar(10) NOT NULL, - `city` varchar(255) NOT NULL, - `country_id` int(11) NOT NULL, - `state_id` int(11) DEFAULT NULL, - `phone` varchar(20) DEFAULT NULL, - `cellphone` varchar(20) DEFAULT NULL, - `is_default` tinyint(4) DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_address_customer_id` (`customer_id`), - KEY `idx_address_customer_title_id` (`title_id`), - KEY `idx_address_country_id` (`country_id`), - KEY `fk_address_state_id_idx` (`state_id`), - CONSTRAINT `fk_address_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`), - CONSTRAINT `fk_address_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_address_customer_title_id` FOREIGN KEY (`title_id`) REFERENCES `customer_title` (`id`), - CONSTRAINT `fk_address_state_id` FOREIGN KEY (`state_id`) REFERENCES `state` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=87 DEFAULT CHARSET=utf8; - -INSERT INTO `address` VALUES("3","Mon adresse","33","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","64","","","0605040302","1","2017-04-12 23:28:45","2017-05-11 20:51:13"); -INSERT INTO `address` VALUES("5","Mon adresse","34","1","ACIG","Pascal ","PUJALTE","Chemin de la Serre","","","31370","POUCHARRAMET","64","","","0668579878","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("6","Domicile","35","1","","Jean-Marc","PUGINIER","10 rue des près","","","31780","CASTELGINEST","64","","","0612765170","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("7","Domicile","36","1","","Gérald","PASTEL","----","","","31000","TOULOUSE","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("8","Domicile","37","1","","Michel","MURAT","48 rue du Grand Vigne","","","31140","ST LOUP CAMMAS","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("9","Domicile","38","1","","Guillaume","ESPARDELIER","13 rue Dalmatie","","","31500","TOULOUSE","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("10","Mon adresse","40","1","","François","GAUTREAU","16 rte de l\'Isle Jourdain","","","32600","SEGOUFIELLE","64","","","06.72.06.93.87","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("11","Paypal_Address","41","1","","Matthieu","SALMONESE","22 rue de la Malnoue","","","18700","AUBIGNY SUR NERE","64","","","0623607248","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("12","Mon adresse","43","1","PEÑA ALMA FLAMENCA","Pascal","GUYON","11 rue Jeanne de Ségla","","","31200","TOULOUSE","64","","0534258121","0665442394","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("13","boucherie traiteur","44","1","BOUCHERIE TRAITEUR","Patrick","MARZARI","place de la république","","","31120","portet sur garonne","64","","05.61.72.07.27","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("14","BUREAUX","45","1","LARIMMO","LARY","RALUY","22 RUE LABRUYERE","","","31300","TOULOUSE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("15","Achat THE","46","1","","Philippe","PROTTI","4 rue de la Liberté","","","25200","BETHONCOURT","64","","","0685320095","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("16","Mon adresse","47","1","","Jean-Marc","MOLINIÉ","33 rue St Cyrice","","","12000","RODEZ","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("17","gouret nicolas","48","1","CTA78 AUTOSÉCURITÉ","nicolas","GOURET","rue de thiverval","zi de la vallee yart","","78640","st germain de la grange","64","","0134897447","0680343788","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("18","Salon","64","2","COIFFURE VIOLETTE","Violette","GUARDIA","8 rue Henri IV","","","81100","CASTRES","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("19","bureau","65","2","BELOTTI IMMOBILIER","Celine","BELOTTI","28 rue Principale","","","31120","PORTET-SUR-GARONNE","64","","05.61.72.06.49","06.24.37.11.36","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("20","Domicile","66","2","","Virginie","RASPAUD","71, bd de Peyramont - Appt B19","","","31600","MURET","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("21","Domicile","67","2","","Karine","RENAULT-JOLY","13 rue de l\'aviateur","","","81000","ALBI","64","","","0607498838","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("23","Domicile","68","2","","Volatiana","RAELISON","14 rue François Peyrille","","","31780","CASTELGINEST","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("24","Domicile","69","2","","Emmanuelle","STACCHETTI","9 rue Delmotte","","","31400","TOULOUSE","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("25","Domicile","70","2","","Catherine","KOGEL","------","","","81000","ALBI","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("26","Domicile","71","2","","Pauline","DELMOTTE","----","","","31000","TOULOUSE","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("27","Total Access Portet","72","2","SARL AE2C","Elvire","CHANGEAT","106 route d\'Espagne","","","31120","PORTET-SUR-GARONNE","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("28","Total Villeneuve-Tolosane","72","2","SARL PAC2E","Elvire","CHANGEAT","Relais du Blanquet","","","31270","VILLENEUVE TOLOSANE","64","","0561920851","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("29","Domicile","74","2","","Sandra","MARON","22 rue du puits","","","77700","MAGNY LE HONGRE","64","","","0605040302","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("30","Domicile","75","2","","Marie-Christine","GARCIA","----","","","31130","BALMA","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("31","Domicile","76","2","","Sophie","THOMAS","15 Cours de la Martinique","","","33000","BORDEAUX","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("32","Paypal_Address","77","2","","Sandra","MARON","22 rue du Puits","","","77700","MAGNY LE HONGRE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("33","MAMAN","77","2","","Sandra","MARON","33 rue de la Liberté","","","92220","BAGNEUX","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("34","Mon adresse","78","2","","Myriam","BELOTTI","10 route de rieumes","","","31600","LHERM","64","","","0612217819","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("35","Mon adresse","79","2","","Stéphanie","BELOTTI","5 rue des crouzettes","","","31120","PORTET SUR GARONNE","64","","","06.52.90.38.10","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("36","Paypal_Address","80","2","BELOTTI IMMOBILIER EURL","Belotti","IMMOBILIER","28 rue principale","","","31120","PORTET SUR GARONNE","64","","05.61.72.06.49","06.24.37.11.36","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("37","Domicile","81","2","","catherine","BOUSQUET","rue des crouzettes","","","31120","portet sur garonne","64","","33652903810","33652903810","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("38","BUREAUX","82","2","PHARMACIE DE LA HALLE","Karine","AGARD","rue principale","","","31120","portet sur garonne","64","","33652903810","33652903810","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("39","Blagnac","83","2","","Cécile","BOIAGO","rue","","","31700","blagnac","64","","0561428726","066318988","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("40","Mon adresse","84","2","","nolwenn","THIESSARD","54 rue jules verne","","","31200","TOULOUSE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("41","Paypal_Address","85","2","","christine","PORTE","9 rue sartre","","","31120","ROQUETTES","64","","","0649601077","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("42","dolder","86","2","","loren","DOLDER","saint papoul","","","31460","AURIAC SUR VENDINELLE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("43","Mon adresse","87","2","","Sandra","TEULIER","2 RUE BELLEVILLE","","","31200","TOULOUSE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("44","Mon adresse","88","2","","Margot","BAUVAIS","10 rue Aymeric de Murel","","","31370","POUCHARRAMET","64","","0561561316","33612968101","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("45","Mon adresse","88","2","","Margot","BAUVAIS","8 rue Cécile Brunschvicg","maison 1","","31200","TOULOUSE","64","","","0612968101","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("46","Domicile","89","2","","Lydia","GUARDIA","100 Avenue François Mitterrand","LE CHEVERNY Appt 195","","81100","CASTRES","64","","0950810807","0621345328","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("47","Mon adresse","90","2","","Sophie","BLANKE","11 rue des Temporets","","","78510","TRIEL-SUR-SEINE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("48","JEAN-PIERRE Rosemonde","91","2","","Rose","JEAN-PIERRE","147 RUE EDMOND ROSTAND","ENTREE D 412","","31200","TOULOUSE","64","","0610860134","0610860134","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("49","Adresse domicile","92","2","","KARINE","DELILLE","15 AVENUE GEORGES BRASSENS","BAT L\'AUTAN APPT 223 2ème ETAGE","","31670","LABEGE","64","","","0608689112","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("50","Maison","93","2","","charlotte","ESMENJAUD","19 rue Alexis Alquié","","","34000","MONTPELLIER","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("51","Montferrier","93","2","CENTRE D\'OPHTALMOLOGIE","charlotte","ESMENJAUD","67 chemin de Fescau","","","34980","MONTFERRIER SUR LEZ","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("52","Mon adresse franck","94","2","","fanny","DELEPLANQUE","29 rue edouard vaillant","","","59155","FACHES THUMESNIL","64","","","0659376414","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("53","Mon adresse","95","2","","Elisabeth","GABAUD","59 av de Carreli","","","31490","LEGUEVIN","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("54","domicile","96","2","","odile","DUBOIS BOUDES","3 allées des soupirs","","","31400","toulouse","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("55","BUREAUX","97","2","SARL VALESID","SARL VALESID","CURVES","3 route de la clé","","","31120","portet sur garonne","64","","05.61.91.60.33","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("56","bureau","98","2","LA FERME DU VILLAGE","Sabine","CAPPAROS","5 rue du commerce","","","31120","portet sur garonne","64","","05.61.41.65.16","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("57","domicile","99","2","","elisabeth","CURVES","route de la cle","","","31120","portet sur garonne","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("58","Mon adresse","100","2","","CORINE","LANFRANCO PRADEL","2 rue de la ruette","","","22520","BINIC","64","","","0619817945","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("59","HOPITAL","100","2","HOPITAL BON SAUVEUR UNITE KER AVEL","CORINE","LANFRANCO PRADEL","1 RUE DU BON SAUVEUR","","","22140","BEGARD","64","","0296453742","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("60","DOMAINE DE BEL AIR","101","2","DOMAINE DE BEL AIR","Corinne","AMAGAT","1455 Route de Villatte","","","31600","eaunes","64","","","06.09.17.19.74","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("61","Mon adresse","102","2","","Astride","LE CORRE","Les Cages","","","14570","clecy","64","","0688326595","0688326595","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("62","boulangerie","103","2","SARL RATINHO","Mercedes","RATINHO","9 place Alfred Sauvy","","","31270","cugnaux","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("63","VT","104","2","","Clotilde","JAOUEN","1 rue Gabriel Fauré","Appt3A","","31270","VILLENEUVE TOLOSANE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("64","Papa et Maman","104","2","","Clotilde","JAOUEN","676 chemin des Gardios","Chez L.JAOUEN","","82800","NEGREPELISSE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("65","BUREAUX","105","2","DIEGUEZ ET FILS","Myriam","DIEGUEZ","ZI DE LA PICHE","7 PLACE JEAN CHAUBET","","31600","SEYSSES","64","","05.34.56.49.60","06.21.41.26.51","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("66","Mon adresse","105","2","","Myriam","DIEGUEZ","17 Rue de l\'Embouchure","","","31120","PORTET SUR GARONNE","64","","05 34 56 49 60","06 21 41 26 51","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("68","hennebo","106","2","","elisabeth","HENNEBO","25 rue des sorbiers","","","31120","PORTET SUR GARONNE","64","","0562201433","0614098808","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("69","Mon adresse","107","2","","Dominique","RAMBAUD","3 lotissement le champ du pesqué","","","32600","Razengues","64","","","0631761049","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("70","Mon adresse","108","2","","dominique","LE CORRE","15 rue des Hogues","","","14230","ISIGNY SUR MER","64","","0231220301","0631483536","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("71","Crêperie","109","2","LE BIDULE","fabienne","TASSETTI CRÊPERIE LE BIDULE","Place Jules Ferry","","","31200","CAZERES","64","","0561873920","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("72","moi","110","2","","Claire","MARTINI","48 Avenue de Gascogne","","","31490","Leguevin","64","","0676054374","0676054374","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("73","Mon adresse","111","2","RESTAURANT LA VILLA 31","karine","GOETHALS","350 route de rieumes","","","31600","MURET","64","","0561563973","0617182269","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("74","Mon adresse","112","2","","VERONIQUE","GASPERI","RUE DE MANSENCAL","","","31500","TOULOUSE","64","","0677499988","0677499988","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("75","PRO","113","2","FLEUREA","Françoise","DAVID","39 rue Faubourg Bonnefoy","","","31500","TOULOUSE","64","","05 61 120 337","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("76","PRO","114","2","LES GOURMANDISES DU VOLVESTRE","AXELLE","LES GOURMANDISES DU VOLVESTRE","Place des ecoliers","","","31220","SAINT JULIEN","64","","05 61 98 23 59","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("77","bureau","115","2","LA RUCHE QUI DIT OUI","ODILE","MAILHE","208 rue saint Maur","","","75010","PARIS 10","64","","","0632157016","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("78","Mon adresse","116","2","","Aurélie","SOUM","7 rue saint-pierre","appartement 71, résidence l\'opaline","","31780","CASTELGINEST","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("79","valerie marchesin","117","2","","valérie","MARCHESIN","31 rue jacques lalanne","","","32220","lombez","64","","0960505407","0960505407","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("80","jean","118","2","","josiane","JEAN","15 rue corneille","","","31100","TOULOUSE","64","","","0674095745","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("81","Mon adresse","119","2","STICA","Genevieve","ROUJAS","5","rue des romarins","","32220","Lombez","64","","+33683389676","+33683389676","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("82","Ausy","120","2","AUSY","Claire","PELLAT","4 rue du Professeur Pierre Vellas","","","31300","TOULOUSE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("83","Mon adresse","121","2","DÉLÙ","Adèle","DELEBOIS","14 Rue jean favier","","","31500","TOULOUSE","64","","","06 26 69 02 64","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("84","Mon adresse","122","2","","BEAUMEL","MAGALI","4 PLACE CLEMENCE ISAURE","APPARTMENT N° 10","","31600","MURER","64","","","0675523369","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("85","domicile","123","2","","julienne","BOUKRAA","Ancienne voie romaine","Quartier le \"terré\"","","31430","St élix le chateau","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("86","Loze claire","124","2","","Claire","LOZE","5 chemin du pricle","","","31410","NOE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); - - - -DROP TABLE `address_icirelais`; - -CREATE TABLE `address_icirelais` ( - `id` int(11) NOT NULL, - `title_id` int(11) NOT NULL, - `company` varchar(255) DEFAULT NULL, - `firstname` varchar(255) NOT NULL, - `lastname` varchar(255) NOT NULL, - `address1` varchar(255) NOT NULL, - `address2` varchar(255) NOT NULL, - `address3` varchar(255) NOT NULL, - `zipcode` varchar(10) NOT NULL, - `city` varchar(255) NOT NULL, - `country_id` int(11) NOT NULL, - `code` varchar(10) NOT NULL, - PRIMARY KEY (`id`), - KEY `FI_address_icirelais_customer_title_id` (`title_id`), - KEY `FI_address_country_id` (`country_id`), - CONSTRAINT `fk_address_icirelais_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`), - CONSTRAINT `fk_address_icirelais_customer_title_id` FOREIGN KEY (`title_id`) REFERENCES `customer_title` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `admin`; - -CREATE TABLE `admin` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `profile_id` int(11) DEFAULT NULL, - `firstname` varchar(100) NOT NULL, - `lastname` varchar(100) NOT NULL, - `login` varchar(100) NOT NULL, - `password` varchar(128) NOT NULL, - `locale` varchar(45) NOT NULL, - `algo` varchar(128) DEFAULT NULL, - `salt` varchar(128) DEFAULT NULL, - `remember_me_token` varchar(255) DEFAULT NULL, - `remember_me_serial` varchar(255) DEFAULT NULL, - `email` varchar(255) NOT NULL, - `password_renew_token` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `login_UNIQUE` (`login`), - UNIQUE KEY `email_UNIQUE` (`email`), - KEY `idx_admin_profile_id` (`profile_id`), - CONSTRAINT `fk_admin_profile_id` FOREIGN KEY (`profile_id`) REFERENCES `profile` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `admin` VALUES("1","","admin","admin","admin","$2y$10$nrzcGr7w1PLq0S0oYlqW9.9E4aREayUNdxbJXZblHGox8pDg39WLS","fr_FR","PASSWORD_BCRYPT","","5933e3e71d909","58b5b1a6a4f20","boutiquefanny@free.fr","","2017-02-28 18:21:42","2017-06-04 10:41:43"); - - - -DROP TABLE `admin_log`; - -CREATE TABLE `admin_log` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `admin_login` varchar(255) DEFAULT NULL, - `admin_firstname` varchar(255) DEFAULT NULL, - `admin_lastname` varchar(255) DEFAULT NULL, - `resource` varchar(255) DEFAULT NULL, - `resource_id` int(11) DEFAULT NULL, - `action` varchar(255) DEFAULT NULL, - `message` text, - `request` longtext, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=198 DEFAULT CHARSET=utf8; - -INSERT INTO `admin_log` VALUES("1","root","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 264\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R3757013469; PHPSESSID=39437d1886609718fd4d0844c84236e6; mediaplanBAK=R129324588\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 60791\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60791\n\n","2017-02-28 18:22:24","2017-02-28 18:22:24"); -INSERT INTO `admin_log` VALUES("2","root","admin","admin","admin.configuration.attribute","1","CREATE","Attribute Petit (106ml) (ID 1) created","POST /thelia233/web/index.php/admin/configuration/attributes/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 420\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R3757013469; PHPSESSID=39437d1886609718fd4d0844c84236e6; mediaplanBAK=R129324588\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes\nRemote-Ip: 78.210.220.249\nRemote-Port: 61009\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61009\n\nthelia_attribute_creation%5B_token%5D=g-v21E0gYKv17RD0W1D9W8xRlMN7hKgRWmRBw_-pJPU&thelia_attribute_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D_ID_&thelia_attribute_creation%5Btitle%5D=Petit+%28106ml%29&edit_language_id=1&thelia_attribute_creation%5Blocale%5D=fr_FR&thelia_attribute_creation%5Badd_to_all%5D=1","2017-02-28 18:24:13","2017-02-28 18:24:13"); -INSERT INTO `admin_log` VALUES("3","root","admin","admin","admin.configuration.attribute","1","UPDATE","Attribute Petit (106ml) (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 600\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R3757013469; PHPSESSID=39437d1886609718fd4d0844c84236e6; mediaplanBAK=R129324588\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 61009\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61009\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=1&attribute_id=1&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=t-rpTk7SapcxWTp1djrQKVlCiYoNFBRe7SiLHrmrVK4&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=Petit+%28106ml%29&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=","2017-02-28 18:24:23","2017-02-28 18:24:23"); -INSERT INTO `admin_log` VALUES("4","root","admin","admin","admin.configuration.attribute","2","CREATE","Attribute Grand (228ml) (ID 2) created","POST /thelia233/web/index.php/admin/configuration/attributes/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 420\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R3757013469; PHPSESSID=39437d1886609718fd4d0844c84236e6; mediaplanBAK=R129324588\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes\nRemote-Ip: 78.210.220.249\nRemote-Port: 61009\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61009\n\nthelia_attribute_creation%5B_token%5D=g-v21E0gYKv17RD0W1D9W8xRlMN7hKgRWmRBw_-pJPU&thelia_attribute_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D_ID_&thelia_attribute_creation%5Btitle%5D=Grand+%28228ml%29&edit_language_id=1&thelia_attribute_creation%5Blocale%5D=fr_FR&thelia_attribute_creation%5Badd_to_all%5D=1","2017-02-28 18:24:36","2017-02-28 18:24:36"); -INSERT INTO `admin_log` VALUES("5","root","admin","admin","admin.configuration.attribute","2","UPDATE","Attribute Grand (228ml) (ID 2) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 600\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R3757013469; PHPSESSID=39437d1886609718fd4d0844c84236e6; mediaplanBAK=R129324588\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=2\nRemote-Ip: 78.210.220.249\nRemote-Port: 61009\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61009\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=2&attribute_id=2&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=t-rpTk7SapcxWTp1djrQKVlCiYoNFBRe7SiLHrmrVK4&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=Grand+%28228ml%29&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=","2017-02-28 18:24:38","2017-02-28 18:24:38"); -INSERT INTO `admin_log` VALUES("6","root","admin","admin","admin.configuration.currency","48","DELETE","Currency (ID 48) deleted","POST /thelia233/web/index.php/admin/configuration/currencies/delete?_token=bbf2e352cd8a0c9b78018f53aeb03bb2 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 14\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R3757013469; PHPSESSID=39437d1886609718fd4d0844c84236e6; mediaplanBAK=R129324588\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/currencies\nRemote-Ip: 78.210.220.249\nRemote-Port: 61120\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61120\n\ncurrency_id=48","2017-02-28 18:25:47","2017-02-28 18:25:47"); -INSERT INTO `admin_log` VALUES("7","root","admin","admin","admin.category","1","CREATE","Category Confitures (ID 1) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 427\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R3757013469; PHPSESSID=39437d1886609718fd4d0844c84236e6; mediaplanBAK=R129324588\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 78.210.220.249\nRemote-Port: 62706\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 62706\n\nthelia_category_creation%5B_token%5D=VnpwUvYnEi1Wrdo3WiTBMETmXtOkjZQuioHQA_9iRHY&thelia_category_creation%5Bparent%5D=0&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Confitures&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-02-28 18:48:43","2017-02-28 18:48:43"); -INSERT INTO `admin_log` VALUES("8","root","admin","admin","admin.category","1","UPDATE","Category Nos confitures (ID 1) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 817\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DGB3Twv6MYSQ%3DfwtnZ9ogvlg%3DbEW2VAjq3fU%3D000275; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R3757013469; PHPSESSID=39437d1886609718fd4d0844c84236e6; mediaplanBAK=R129324588\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 63155\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63155\n\nsave_mode=stay&category_id=1¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=1&thelia_category_modification%5B_token%5D=ebpbzplBeHkKdb1U3sL3H7JT83YZukfIiKF0tRH3sI4&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+confitures&thelia_category_modification%5Bchapo%5D=De+d%C3%A9licieuses+confitures+maison&thelia_category_modification%5Bdescription%5D=De+d%C3%A9licieuses+confitures+maison+%C3%A0+base+de+fruits+frais+et+garanties+sans+conservateur.&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=0&thelia_category_modification%5Bvisible%5D=1","2017-02-28 18:53:03","2017-02-28 18:53:03"); -INSERT INTO `admin_log` VALUES("9","root","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 304\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 51539\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51539\n\n","2017-03-01 12:46:10","2017-03-01 12:46:10"); -INSERT INTO `admin_log` VALUES("10","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin\nRemote-Ip: 78.210.220.249\nRemote-Port: 51539\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51539\nX-Requested-With: XMLHttpRequest\n\n","2017-03-01 12:46:14","2017-03-01 12:46:14"); -INSERT INTO `admin_log` VALUES("11","root","admin","admin","admin.category","2","CREATE","Category Nos salés (ID 2) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 431\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 78.210.220.249\nRemote-Port: 51567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51567\n\nthelia_category_creation%5B_token%5D=fv6qGeE_moxtajQR5FfsIJudOxIp4YwxaFhjMOOLkpU&thelia_category_creation%5Bparent%5D=0&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Nos+sal%C3%A9s&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 12:46:30","2017-03-01 12:46:30"); -INSERT INTO `admin_log` VALUES("12","root","admin","admin","admin.category","2","UPDATE","Category Nos salés (ID 2) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 684\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=2\nRemote-Ip: 78.210.220.249\nRemote-Port: 51567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51567\n\nsave_mode=close&category_id=2¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=2&thelia_category_modification%5B_token%5D=xG4PXi0TxQonG80sC9M2qT73Zr-FDkZmMv0somelXEA&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+sal%C3%A9s&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=0&thelia_category_modification%5Bvisible%5D=1","2017-03-01 12:46:38","2017-03-01 12:46:38"); -INSERT INTO `admin_log` VALUES("13","root","admin","admin","admin.category","3","CREATE","Category Nos crèmes et gelées (ID 3) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 447\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 78.210.220.249\nRemote-Port: 51567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51567\n\nthelia_category_creation%5B_token%5D=fv6qGeE_moxtajQR5FfsIJudOxIp4YwxaFhjMOOLkpU&thelia_category_creation%5Bparent%5D=0&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Nos+cr%C3%A8mes+et+gel%C3%A9es&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 12:46:47","2017-03-01 12:46:47"); -INSERT INTO `admin_log` VALUES("14","root","admin","admin","admin.category","3","UPDATE","Category Nos crèmes et gelées (ID 3) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 700\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=3\nRemote-Ip: 78.210.220.249\nRemote-Port: 51567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51567\n\nsave_mode=close&category_id=3¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=3&thelia_category_modification%5B_token%5D=xG4PXi0TxQonG80sC9M2qT73Zr-FDkZmMv0somelXEA&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+cr%C3%A8mes+et+gel%C3%A9es&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=0&thelia_category_modification%5Bvisible%5D=1","2017-03-01 12:46:49","2017-03-01 12:46:49"); -INSERT INTO `admin_log` VALUES("15","root","admin","admin","admin.category","4","CREATE","Category Nos coffrets (ID 4) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 429\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 78.210.220.249\nRemote-Port: 51567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51567\n\nthelia_category_creation%5B_token%5D=fv6qGeE_moxtajQR5FfsIJudOxIp4YwxaFhjMOOLkpU&thelia_category_creation%5Bparent%5D=0&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Nos+coffrets&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 12:46:56","2017-03-01 12:46:56"); -INSERT INTO `admin_log` VALUES("16","root","admin","admin","admin.category","4","UPDATE","Category Nos coffrets (ID 4) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 682\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=4\nRemote-Ip: 78.210.220.249\nRemote-Port: 51567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51567\n\nsave_mode=close&category_id=4¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=4&thelia_category_modification%5B_token%5D=xG4PXi0TxQonG80sC9M2qT73Zr-FDkZmMv0somelXEA&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+coffrets&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=0&thelia_category_modification%5Bvisible%5D=1","2017-03-01 12:46:58","2017-03-01 12:46:58"); -INSERT INTO `admin_log` VALUES("17","root","admin","admin","admin.category","5","CREATE","Category Nos préparations toutes prêtes (ID 5) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 457\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 78.210.220.249\nRemote-Port: 51567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51567\n\nthelia_category_creation%5B_token%5D=fv6qGeE_moxtajQR5FfsIJudOxIp4YwxaFhjMOOLkpU&thelia_category_creation%5Bparent%5D=0&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Nos+pr%C3%A9parations+toutes+pr%C3%AAtes&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 12:47:12","2017-03-01 12:47:12"); -INSERT INTO `admin_log` VALUES("18","root","admin","admin","admin.category","5","UPDATE","Category Nos préparations toutes prêtes (ID 5) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 710\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=5\nRemote-Ip: 78.210.220.249\nRemote-Port: 51567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51567\n\nsave_mode=close&category_id=5¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=5&thelia_category_modification%5B_token%5D=xG4PXi0TxQonG80sC9M2qT73Zr-FDkZmMv0somelXEA&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+pr%C3%A9parations+toutes+pr%C3%AAtes&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=0&thelia_category_modification%5Bvisible%5D=1","2017-03-01 12:47:14","2017-03-01 12:47:14"); -INSERT INTO `admin_log` VALUES("19","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/categories/update?category_id=5 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3Dd1ycd3iQyiQ%3DPfurZyy%2BVIk%3DDjfAbl%2F5GDc%3Dey4cnTzleVY%3D000370; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 78.210.220.249\nRemote-Port: 51492\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51492\n\n","2017-03-01 15:59:39","2017-03-01 15:59:39"); -INSERT INTO `admin_log` VALUES("20","root","admin","admin","admin.category","5","UPDATE","Category Nos préparations (ID 5) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 690\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3Dd1ycd3iQyiQ%3DPfurZyy%2BVIk%3DDjfAbl%2F5GDc%3Dey4cnTzleVY%3D000370; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=5\nRemote-Ip: 78.210.220.249\nRemote-Port: 51523\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51523\n\nsave_mode=stay&category_id=5¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=5&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+pr%C3%A9parations&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=0&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:00:00","2017-03-01 16:00:00"); -INSERT INTO `admin_log` VALUES("21","root","admin","admin","admin.category","6","CREATE","Category Fruits exotiques (ID 6) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 433\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 51846\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51846\n\nthelia_category_creation%5B_token%5D=s5wniaXxUTcno5v4CjS2OYErNljfu7iM9qq1zMplV0w&thelia_category_creation%5Bparent%5D=1&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Fruits+exotiques&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 16:03:45","2017-03-01 16:03:45"); -INSERT INTO `admin_log` VALUES("22","root","admin","admin","admin.category","6","UPDATE","Category Fruits exotiques (ID 6) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 707\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=6\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nsave_mode=close&category_id=6¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=6&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%3Fcategory_id%3D1&thelia_category_modification%5Btitle%5D=Fruits+exotiques&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=1&thelia_category_modification%5Bdefault_template_id%5D=0&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:05:07","2017-03-01 16:05:07"); -INSERT INTO `admin_log` VALUES("23","root","admin","admin","admin.configuration.template","1","CREATE","Template Pot (ID 1) created","POST /thelia233/web/index.php/admin/configuration/templates/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 355\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nthelia_template_creation%5B_token%5D=hOYhpwGLGdjzUP5P5NbwozsIclTZ0vM1-s1Filn9j6w&thelia_template_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates%2Fupdate%3Ftemplate_id%3D_ID_&thelia_template_creation%5Bname%5D=Pot&edit_language_id=1&thelia_template_creation%5Blocale%5D=fr_FR","2017-03-01 16:05:24","2017-03-01 16:05:24"); -INSERT INTO `admin_log` VALUES("24","root","admin","admin","admin.configuration.template","1","UPDATE","Template Pot (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 391\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\ntemplate_id=1&save_mode=close&thelia_template_modification%5Bid%5D=1&thelia_template_modification%5B_token%5D=-softPuRqV-NVAPUbrCASir4M76t6uCnUk1mPloTM0A&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Pot","2017-03-01 16:05:48","2017-03-01 16:05:48"); -INSERT INTO `admin_log` VALUES("25","root","admin","admin","admin.category","1","UPDATE","Category Nos confitures (ID 1) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 818\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nsave_mode=close&category_id=1¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=1&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+confitures&thelia_category_modification%5Bchapo%5D=De+d%C3%A9licieuses+confitures+maison&thelia_category_modification%5Bdescription%5D=De+d%C3%A9licieuses+confitures+maison+%C3%A0+base+de+fruits+frais+et+garanties+sans+conservateur.&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:06:11","2017-03-01 16:06:11"); -INSERT INTO `admin_log` VALUES("26","root","admin","admin","admin.category","2","UPDATE","Category Nos salés (ID 2) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 684\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=2\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nsave_mode=close&category_id=2¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=2&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+sal%C3%A9s&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:06:32","2017-03-01 16:06:32"); -INSERT INTO `admin_log` VALUES("27","root","admin","admin","admin.category","3","UPDATE","Category Nos crèmes et gelées (ID 3) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 700\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=3\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nsave_mode=close&category_id=3¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=3&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+cr%C3%A8mes+et+gel%C3%A9es&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:06:39","2017-03-01 16:06:39"); -INSERT INTO `admin_log` VALUES("28","root","admin","admin","admin.category","5","UPDATE","Category Nos préparations (ID 5) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 691\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=5\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nsave_mode=close&category_id=5¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=5&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+pr%C3%A9parations&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:06:45","2017-03-01 16:06:45"); -INSERT INTO `admin_log` VALUES("29","root","admin","admin","admin.configuration.template","2","CREATE","Template Panière (ID 2) created","POST /thelia233/web/index.php/admin/configuration/templates/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 364\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nthelia_template_creation%5B_token%5D=hOYhpwGLGdjzUP5P5NbwozsIclTZ0vM1-s1Filn9j6w&thelia_template_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates%2Fupdate%3Ftemplate_id%3D_ID_&thelia_template_creation%5Bname%5D=Pani%C3%A8re&edit_language_id=1&thelia_template_creation%5Blocale%5D=fr_FR","2017-03-01 16:07:04","2017-03-01 16:07:04"); -INSERT INTO `admin_log` VALUES("30","root","admin","admin","admin.configuration.template","2","UPDATE","Template Panière (ID 2) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 399\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=2\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\ntemplate_id=2&save_mode=stay&thelia_template_modification%5Bid%5D=2&thelia_template_modification%5B_token%5D=-softPuRqV-NVAPUbrCASir4M76t6uCnUk1mPloTM0A&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Pani%C3%A8re","2017-03-01 16:07:20","2017-03-01 16:07:20"); -INSERT INTO `admin_log` VALUES("31","root","admin","admin","admin.category","4","UPDATE","Category Nos coffrets (ID 4) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 682\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=4\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nsave_mode=close&category_id=4¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=4&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+coffrets&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=2&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:07:33","2017-03-01 16:07:33"); -INSERT INTO `admin_log` VALUES("32","root","admin","admin","admin.category","6","UPDATE","Category Fruits exotiques (ID 6) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 707\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=6\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nsave_mode=close&category_id=6¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=6&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%3Fcategory_id%3D1&thelia_category_modification%5Btitle%5D=Fruits+exotiques&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=1&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:07:42","2017-03-01 16:07:42"); -INSERT INTO `admin_log` VALUES("33","root","admin","admin","admin.category","7","CREATE","Category Fruits rouges (ID 7) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 430\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nthelia_category_creation%5B_token%5D=s5wniaXxUTcno5v4CjS2OYErNljfu7iM9qq1zMplV0w&thelia_category_creation%5Bparent%5D=1&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Fruits+rouges&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 16:07:52","2017-03-01 16:07:52"); -INSERT INTO `admin_log` VALUES("34","root","admin","admin","admin.category","7","UPDATE","Category Fruits rouges (ID 7) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 704\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=7\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nsave_mode=close&category_id=7¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=7&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%3Fcategory_id%3D1&thelia_category_modification%5Btitle%5D=Fruits+rouges&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=1&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:07:57","2017-03-01 16:07:57"); -INSERT INTO `admin_log` VALUES("35","root","admin","admin","admin.category","8","CREATE","Category Agrumes (ID 8) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 424\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 52269\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 52269\n\nthelia_category_creation%5B_token%5D=s5wniaXxUTcno5v4CjS2OYErNljfu7iM9qq1zMplV0w&thelia_category_creation%5Bparent%5D=1&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Agrumes&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 16:08:16","2017-03-01 16:08:16"); -INSERT INTO `admin_log` VALUES("36","root","admin","admin","admin.category","8","UPDATE","Category Agrumes (ID 8) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 698\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=8\nRemote-Ip: 78.210.220.249\nRemote-Port: 52269\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 52269\n\nsave_mode=close&category_id=8¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=8&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%3Fcategory_id%3D1&thelia_category_modification%5Btitle%5D=Agrumes&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=1&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:08:19","2017-03-01 16:08:19"); -INSERT INTO `admin_log` VALUES("37","root","admin","admin","admin.category","9","CREATE","Category Fruits à noyaux (ID 9) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 437\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 52269\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 52269\n\nthelia_category_creation%5B_token%5D=s5wniaXxUTcno5v4CjS2OYErNljfu7iM9qq1zMplV0w&thelia_category_creation%5Bparent%5D=1&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Fruits+%C3%A0+noyaux&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 16:08:27","2017-03-01 16:08:27"); -INSERT INTO `admin_log` VALUES("38","root","admin","admin","admin.category","9","UPDATE","Category Fruits à noyaux (ID 9) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 711\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=9\nRemote-Ip: 78.210.220.249\nRemote-Port: 52269\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 52269\n\nsave_mode=close&category_id=9¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=9&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%3Fcategory_id%3D1&thelia_category_modification%5Btitle%5D=Fruits+%C3%A0+noyaux&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=1&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:08:31","2017-03-01 16:08:31"); -INSERT INTO `admin_log` VALUES("39","root","admin","admin","admin.category","10","CREATE","Category Fruits à pépins (ID 10) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 442\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 52269\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 52269\n\nthelia_category_creation%5B_token%5D=s5wniaXxUTcno5v4CjS2OYErNljfu7iM9qq1zMplV0w&thelia_category_creation%5Bparent%5D=1&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Fruits+%C3%A0+p%C3%A9pins&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 16:08:40","2017-03-01 16:08:40"); -INSERT INTO `admin_log` VALUES("40","root","admin","admin","admin.category","10","UPDATE","Category Fruits à pépins (ID 10) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 718\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=10\nRemote-Ip: 78.210.220.249\nRemote-Port: 52269\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 52269\n\nsave_mode=close&category_id=10¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=10&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%3Fcategory_id%3D1&thelia_category_modification%5Btitle%5D=Fruits+%C3%A0+p%C3%A9pins&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=1&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:08:45","2017-03-01 16:08:45"); -INSERT INTO `admin_log` VALUES("41","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/catalog HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R2045159618; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 59293\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 59293\n\n","2017-03-01 17:52:57","2017-03-01 17:52:57"); -INSERT INTO `admin_log` VALUES("42","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/folders HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R2045159618; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplanBAK=R129298452; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 64348\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 64348\n\n","2017-03-01 18:55:20","2017-03-01 18:55:20"); -INSERT INTO `admin_log` VALUES("43","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/home HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DWwhwvvzM4jw%3DPfurZyy%2BVIk%3Dwx%2BwYQ2ARxk%3D6P5gOmLXpiY%3D000114; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; mediaplan=R3721346708; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/folders\nRemote-Ip: 78.210.220.249\nRemote-Port: 50722\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 50722\n\n","2017-03-02 11:12:22","2017-03-02 11:12:22"); -INSERT INTO `admin_log` VALUES("44","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DWwhwvvzM4jw%3DPfurZyy%2BVIk%3Dwx%2BwYQ2ARxk%3D6P5gOmLXpiY%3D000114; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; PHPSESSID=dd9564ac5ad6140e9f80132328de9066; mediaplan=R3721346708; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/home\nRemote-Ip: 78.210.220.249\nRemote-Port: 50722\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 50722\nX-Requested-With: XMLHttpRequest\n\n","2017-03-02 11:12:28","2017-03-02 11:12:28"); -INSERT INTO `admin_log` VALUES("45","root","admin","admin","admin.configuration.tax","2","DELETE","Taxrule (ID 2) deleted","POST /thelia233/web/index.php/admin/configuration/taxes_rules/delete?_token=4d45097c2ccdd588a50b085b3eef286b HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 13\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DWwhwvvzM4jw%3DPfurZyy%2BVIk%3Dwx%2BwYQ2ARxk%3D6P5gOmLXpiY%3D000114; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; mediaplan=R3721346708; PHPSESSID=dd9564ac5ad6140e9f80132328de9066; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/taxes_rules\nRemote-Ip: 78.210.220.249\nRemote-Port: 51286\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51286\n\ntax_rule_id=2","2017-03-02 11:20:21","2017-03-02 11:20:21"); -INSERT INTO `admin_log` VALUES("46","root","admin","admin","admin.configuration.tax","2","DELETE","Tax (ID 2) deleted","POST /thelia233/web/index.php/admin/configuration/taxes/delete?_token=e9df4ed411a1eecd3a895fff62bbe5a5 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 8\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DWwhwvvzM4jw%3DPfurZyy%2BVIk%3Dwx%2BwYQ2ARxk%3D6P5gOmLXpiY%3D000114; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; mediaplan=R3721346708; PHPSESSID=dd9564ac5ad6140e9f80132328de9066; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/taxes_rules\nRemote-Ip: 78.210.220.249\nRemote-Port: 51286\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51286\n\ntax_id=2","2017-03-02 11:20:27","2017-03-02 11:20:27"); -INSERT INTO `admin_log` VALUES("47","root","admin","admin","admin.configuration.store","","UPDATE","Store configuration changed","POST /thelia233/web/index.php/admin/configuration/store/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 1028\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3DlTM2NJVG9ow%3DcIrKWtvM2sM%3Dr3XxjOi2ZgU%3Dcd3J8jnX1gk%3DYt7C%2Boqk9PY%3DNtMIky0p4Vg%3D%2BcgRCTLwuxo%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DNtMIky0p4Vg%3D%2BcgRCTLwuxo%3DDQdLSTCUv9k%3DLSIAjfEcPrc%3D%2FHIzvL7HVt8%3DQ91ztp9hYj4%3Du7Aq7HcytBM%3DpnKkbBx1ROY%3DWj%2Bji8PYoIQ%3DHGyelKUFG9I%3DX32DtY1tVXc%3Ddyheh4rTMKI%3DjT17h0RU5zg%3DqtMgQAV2AcE%3DuKwYIlOLFGs%3DXX7xr1bfqiM%3DXN1LTbZkRBE%3De3hVr%2BtoPqY%3DipTQm%2Bf3MAs%3D2RsWrdnyErQ%3DYt7C%2Boqk9PY%3DBB%2Bhh0nO8%2B8%3D1K1H0Gbk%2F4s%3DtIxO%2F66U18U%3DjPFIu01fUto%3DYfkPKwhQWOg%3DSoyhH%2BN0UuE%3D%2BeQD%2FkwlLRI%3D5ckdqLdVDhQ%3D%2BVhcLfbZaqc%3Dy81dNl2%2BtFI%3Dv%2BYKg2iYegY%3DT8Y84TWAg9I%3DXGywjo8kfik%3DOFiBEjpkAOs%3DRJJm9JYd%2Fag%3D4d0rknTlKI0%3DDQdLSTCUv9k%3Dqch4a6JwZxw%3DMjXOzz41w2o%3DA0xBkJ9E214%3D000781; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DWwhwvvzM4jw%3DPfurZyy%2BVIk%3Dwx%2BwYQ2ARxk%3D6P5gOmLXpiY%3D000114; mediaplan=R3721346708; PHPSESSID=dd9564ac5ad6140e9f80132328de9066; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/store\nRemote-Ip: 78.210.220.249\nRemote-Port: 53587\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 53587\n\nthelia_configuration_store%5B_token%5D=X4bY-lc4sWW-gB3HK9hsJOp5biMOPskkULUf3ODwDaM&thelia_configuration_store%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration&save_mode=close&thelia_configuration_store%5Bstore_name%5D=La+boutique+de+Fanny&thelia_configuration_store%5Bstore_description%5D=Confitures+artisanales%2C+pr%C3%A9parations+en+bocaux&thelia_configuration_store%5Bstore_business_id%5D=SIRET+%3A+79746708100023&thelia_configuration_store%5Bstore_email%5D=boutiquefanny%40free.fr&thelia_configuration_store%5Bstore_notification_emails%5D=boutiquefanny%40free.fr&thelia_configuration_store%5Bstore_address1%5D=26+chemin+de+Marragon&thelia_configuration_store%5Bstore_address2%5D=&thelia_configuration_store%5Bstore_address3%5D=&thelia_configuration_store%5Bstore_zipcode%5D=31600&thelia_configuration_store%5Bstore_city%5D=MURET&thelia_configuration_store%5Bstore_country%5D=64&thelia_configuration_store%5Bstore_phone%5D=&thelia_configuration_store%5Bstore_fax%5D=","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `admin_log` VALUES("48","root","admin","admin","admin.configuration","2","UPDATE","Variable active-front-template (ID 2) modified","POST /thelia233/web/index.php/admin/configuration/variables/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 866\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3DlTM2NJVG9ow%3DcIrKWtvM2sM%3Dr3XxjOi2ZgU%3Dcd3J8jnX1gk%3DYt7C%2Boqk9PY%3DNtMIky0p4Vg%3D%2BcgRCTLwuxo%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DNtMIky0p4Vg%3D%2BcgRCTLwuxo%3DDQdLSTCUv9k%3DLSIAjfEcPrc%3D%2FHIzvL7HVt8%3DQ91ztp9hYj4%3Du7Aq7HcytBM%3DpnKkbBx1ROY%3DWj%2Bji8PYoIQ%3DHGyelKUFG9I%3DX32DtY1tVXc%3Ddyheh4rTMKI%3DjT17h0RU5zg%3DqtMgQAV2AcE%3DuKwYIlOLFGs%3DXX7xr1bfqiM%3DXN1LTbZkRBE%3De3hVr%2BtoPqY%3DipTQm%2Bf3MAs%3D2RsWrdnyErQ%3DYt7C%2Boqk9PY%3DBB%2Bhh0nO8%2B8%3D1K1H0Gbk%2F4s%3DtIxO%2F66U18U%3DjPFIu01fUto%3DYfkPKwhQWOg%3DSoyhH%2BN0UuE%3D%2BeQD%2FkwlLRI%3D5ckdqLdVDhQ%3D%2BVhcLfbZaqc%3Dy81dNl2%2BtFI%3Dv%2BYKg2iYegY%3DT8Y84TWAg9I%3DXGywjo8kfik%3DOFiBEjpkAOs%3DRJJm9JYd%2Fag%3D4d0rknTlKI0%3DDQdLSTCUv9k%3Dqch4a6JwZxw%3DMjXOzz41w2o%3DA0xBkJ9E214%3D000781; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DWwhwvvzM4jw%3DPfurZyy%2BVIk%3Dwx%2BwYQ2ARxk%3D6P5gOmLXpiY%3D000114; mediaplan=R3721346708; PHPSESSID=dd9564ac5ad6140e9f80132328de9066; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/variables/update?variable_id=2\nRemote-Ip: 78.210.220.249\nRemote-Port: 53646\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 53646\n\nvariable_id=2&save_mode=close&thelia_config_modification%5Bid%5D=2&thelia_config_modification%5Bhidden%5D=0&thelia_config_modification%5Bsecured%5D=0&thelia_config_modification%5Blocale%5D=fr_FR&thelia_config_modification%5B_token%5D=Wiaz7c4phCsqMwCc1juMp1o-MIBhDBqCnNFnC1-MMBk&thelia_config_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fvariables&thelia_config_modification%5Bid%5D=2&thelia_config_modification%5Bhidden%5D=0&thelia_config_modification%5Blocale%5D=fr_FR&thelia_config_modification%5Bname%5D=active-front-template&thelia_config_modification%5Bvalue%5D=BoutiqueFanny&thelia_config_modification%5Btitle%5D=Nom+du+mod%C3%A8le+de+front-office+actif&thelia_config_modification%5Bchapo%5D=&thelia_config_modification%5Bdescription%5D=&thelia_config_modification%5Bpostscriptum%5D=","2017-03-02 11:50:36","2017-03-02 11:50:36"); -INSERT INTO `admin_log` VALUES("49","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: mediaplan=R3721346708; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/variables\nRemote-Ip: 78.210.220.249\nRemote-Port: 55886\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 55886\n\n","2017-03-02 12:15:30","2017-03-02 12:15:30"); -INSERT INTO `admin_log` VALUES("50","root","admin","admin","admin.configuration.language","4","UPDATE","Lang Italiano (ID 4) modified","GET /thelia233/web/index.php/admin/configuration/languages/toggleVisible/4?_token=f552ac66508016b454b7956959c80f00 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3Dj0PSVoOGJqs%3Dhe09rOSpGJ0%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DLKFm1XBtOLQ%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DtN6tiSKabXI%3DJku0VYSH8QM%3D8Yuk3ekqF6A%3D5tMXqbIUe3o%3D000113; mediaplan=R3721346708; PHPSESSID=dc01fe01d46eb2974593ff590f7ef12e; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/languages\nRemote-Ip: 78.210.220.249\nRemote-Port: 57160\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 57160\n\n","2017-03-02 12:31:35","2017-03-02 12:31:35"); -INSERT INTO `admin_log` VALUES("51","root","admin","admin","admin.configuration.language","3","UPDATE","Lang Castellano (ID 3) modified","GET /thelia233/web/index.php/admin/configuration/languages/toggleVisible/3?_token=17a91cd86c91bcb679ec502652920b25 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3Dj0PSVoOGJqs%3Dhe09rOSpGJ0%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DLKFm1XBtOLQ%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DtN6tiSKabXI%3DJku0VYSH8QM%3D8Yuk3ekqF6A%3D5tMXqbIUe3o%3D000113; mediaplan=R3721346708; PHPSESSID=dc01fe01d46eb2974593ff590f7ef12e; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/languages\nRemote-Ip: 78.210.220.249\nRemote-Port: 57160\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 57160\n\n","2017-03-02 12:31:43","2017-03-02 12:31:43"); -INSERT INTO `admin_log` VALUES("52","root","admin","admin","admin.configuration.language","2","UPDATE","Lang English (ID 2) modified","GET /thelia233/web/index.php/admin/configuration/languages/toggleVisible/2?_token=3f023414389b0f880379f406c3aa998b HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3Dj0PSVoOGJqs%3Dhe09rOSpGJ0%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DLKFm1XBtOLQ%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DtN6tiSKabXI%3DJku0VYSH8QM%3D8Yuk3ekqF6A%3D5tMXqbIUe3o%3D000113; mediaplan=R3721346708; PHPSESSID=dc01fe01d46eb2974593ff590f7ef12e; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/languages\nRemote-Ip: 78.210.220.249\nRemote-Port: 57160\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 57160\n\n","2017-03-02 12:31:45","2017-03-02 12:31:45"); -INSERT INTO `admin_log` VALUES("53","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCache-Control: max-age=0\nConnection: close\nCookie: mediaplan=R3721346708; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/variables\nRemote-Ip: 78.210.220.249\nRemote-Port: 59147\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 59147\n\n","2017-03-02 13:01:11","2017-03-02 13:01:11"); -INSERT INTO `admin_log` VALUES("54","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCache-Control: max-age=0\nConnection: close\nCookie: mediaplan=R3721346708; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/variables\nRemote-Ip: 78.210.220.249\nRemote-Port: 60377\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60377\n\n","2017-03-02 13:16:44","2017-03-02 13:16:44"); -INSERT INTO `admin_log` VALUES("55","root","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 304\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 62337\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 62337\n\n","2017-03-02 13:43:44","2017-03-02 13:43:44"); -INSERT INTO `admin_log` VALUES("56","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin\nRemote-Ip: 78.210.220.249\nRemote-Port: 62337\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 62337\nX-Requested-With: XMLHttpRequest\n\n","2017-03-02 13:43:48","2017-03-02 13:43:48"); -INSERT INTO `admin_log` VALUES("57","root","admin","admin","admin.configuration.attribute","3","CREATE","Attribute 385ml (ID 3) created","POST /thelia233/web/index.php/admin/configuration/attributes/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 408\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3D3b9Z6Lewyhg%3DgtoH2RgkZIc%3D%2FYISt1RFId4%3DvU5JgKC6asY%3D000288; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes\nRemote-Ip: 78.210.220.249\nRemote-Port: 63752\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63752\n\nthelia_attribute_creation%5B_token%5D=vS887BNup7KA8qMM7YTJkgxjUPDObUI0oCKBvFB6V34&thelia_attribute_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D_ID_&thelia_attribute_creation%5Btitle%5D=385ml&edit_language_id=1&thelia_attribute_creation%5Blocale%5D=fr_FR&thelia_attribute_creation%5Badd_to_all%5D=1","2017-03-02 14:01:20","2017-03-02 14:01:20"); -INSERT INTO `admin_log` VALUES("58","root","admin","admin","admin.configuration.attribute","3","UPDATE","Attribute 385ml (ID 3) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 588\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3D3b9Z6Lewyhg%3DgtoH2RgkZIc%3D%2FYISt1RFId4%3DvU5JgKC6asY%3D000288; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=3\nRemote-Ip: 78.210.220.249\nRemote-Port: 63752\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63752\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=3&attribute_id=3&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=lwfckv_7_jX2oHeI4FJCNhcKhogTw4rVaucGukRpDOQ&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=385ml&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=","2017-03-02 14:01:28","2017-03-02 14:01:28"); -INSERT INTO `admin_log` VALUES("59","root","admin","admin","admin.configuration.attribute","4","CREATE","Attribute 750ml (ID 4) created","POST /thelia233/web/index.php/admin/configuration/attributes/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 364\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3D3b9Z6Lewyhg%3DgtoH2RgkZIc%3D%2FYISt1RFId4%3DvU5JgKC6asY%3D000288; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes\nRemote-Ip: 78.210.220.249\nRemote-Port: 63752\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63752\n\nthelia_attribute_creation%5B_token%5D=vS887BNup7KA8qMM7YTJkgxjUPDObUI0oCKBvFB6V34&thelia_attribute_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D_ID_&thelia_attribute_creation%5Btitle%5D=750ml&edit_language_id=1&thelia_attribute_creation%5Blocale%5D=fr_FR","2017-03-02 14:01:38","2017-03-02 14:01:38"); -INSERT INTO `admin_log` VALUES("60","root","admin","admin","admin.configuration.attribute","4","UPDATE","Attribute 750ml (ID 4) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 588\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3D3b9Z6Lewyhg%3DgtoH2RgkZIc%3D%2FYISt1RFId4%3DvU5JgKC6asY%3D000288; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=4\nRemote-Ip: 78.210.220.249\nRemote-Port: 63752\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63752\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=4&attribute_id=4&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=lwfckv_7_jX2oHeI4FJCNhcKhogTw4rVaucGukRpDOQ&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=750ml&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=","2017-03-02 14:01:41","2017-03-02 14:01:41"); -INSERT INTO `admin_log` VALUES("61","root","admin","admin","admin.configuration.attribute","2","UPDATE","Attribute 228ml (ID 2) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 588\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3D3b9Z6Lewyhg%3DgtoH2RgkZIc%3D%2FYISt1RFId4%3DvU5JgKC6asY%3D000288; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=2\nRemote-Ip: 78.210.220.249\nRemote-Port: 63752\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63752\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=2&attribute_id=2&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=lwfckv_7_jX2oHeI4FJCNhcKhogTw4rVaucGukRpDOQ&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=228ml&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=","2017-03-02 14:01:52","2017-03-02 14:01:52"); -INSERT INTO `admin_log` VALUES("62","root","admin","admin","admin.configuration.attribute","1","UPDATE","Attribute 106ml (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 588\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3D3b9Z6Lewyhg%3DgtoH2RgkZIc%3D%2FYISt1RFId4%3DvU5JgKC6asY%3D000288; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 63752\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63752\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=1&attribute_id=1&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=lwfckv_7_jX2oHeI4FJCNhcKhogTw4rVaucGukRpDOQ&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=106ml&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=","2017-03-02 14:02:02","2017-03-02 14:02:02"); -INSERT INTO `admin_log` VALUES("63","root","admin","admin","admin.configuration.template","2","UPDATE","Template Panière (ID 2) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 400\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3D3b9Z6Lewyhg%3DgtoH2RgkZIc%3D%2FYISt1RFId4%3DvU5JgKC6asY%3D000288; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=2\nRemote-Ip: 78.210.220.249\nRemote-Port: 63752\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63752\n\ntemplate_id=2&save_mode=close&thelia_template_modification%5Bid%5D=2&thelia_template_modification%5B_token%5D=_IF6Gr_sFV1V-aL4YuZft4E3nBgRDhntl3QyOKeHcTs&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Pani%C3%A8re","2017-03-02 14:02:19","2017-03-02 14:02:19"); -INSERT INTO `admin_log` VALUES("64","root","admin","admin","admin.configuration.template","1","UPDATE","Template Pot (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 391\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3D3b9Z6Lewyhg%3DgtoH2RgkZIc%3D%2FYISt1RFId4%3DvU5JgKC6asY%3D000288; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 63752\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63752\n\ntemplate_id=1&save_mode=close&thelia_template_modification%5Bid%5D=1&thelia_template_modification%5B_token%5D=_IF6Gr_sFV1V-aL4YuZft4E3nBgRDhntl3QyOKeHcTs&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Pot","2017-03-02 14:02:38","2017-03-02 14:02:38"); -INSERT INTO `admin_log` VALUES("65","root","admin","admin","admin.configuration.area","15","CREATE","Area Autour de Muret (ID 15) created","POST /thelia233/web/index.php/admin/configuration/shipping_configuration/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 292\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3DMTjWVVmu%2FQw%3DEFvtypp1EDI%3DXN1LTbZkRBE%3D18EDLdm6Jao%3Df0QNfqI4lQQ%3D1b%2B8gLkot2Q%3DsyTxVCAkAcw%3DpnKkbBx1ROY%3DLwAjXsDCNn4%3DmhikDgd4RpE%3D1t8vAQTodPg%3D7NglMgF5Ijs%3DYJvo0iOKUTc%3Dr3XxjOi2ZgU%3DtNnVxKBtbTc%3DNAPBuudzGog%3DKBkEIAFm8wM%3D69mROvY71Ag%3DXN1LTbZkRBE%3DnIn6OkAfNDg%3DzOzNyOX6hHA%3DZmYLZse9KlA%3DXKwPfYofGJg%3D000441; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/shipping_configuration\nRemote-Ip: 78.210.220.249\nRemote-Port: 49900\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49900\n\nthelia_area_creation%5B_token%5D=0AJdBrU2mN3KXfZAEW36_8cqQ7idM_lqP8kglZPIjrg&thelia_area_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fshipping_configuration%2Fupdate%2F_ID_&thelia_area_creation%5Bname%5D=Autour+de+Muret","2017-03-02 15:51:29","2017-03-02 15:51:29"); -INSERT INTO `admin_log` VALUES("66","root","admin","admin","admin.configuration.area","15","UPDATE","Area Autour de Muret (ID 15) modified, new country added","POST /thelia233/web/index.php/admin/configuration/shipping_configuration/country/add HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 335\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3DMTjWVVmu%2FQw%3DEFvtypp1EDI%3DXN1LTbZkRBE%3D18EDLdm6Jao%3Df0QNfqI4lQQ%3D1b%2B8gLkot2Q%3DsyTxVCAkAcw%3DpnKkbBx1ROY%3DLwAjXsDCNn4%3DmhikDgd4RpE%3D1t8vAQTodPg%3D7NglMgF5Ijs%3DYJvo0iOKUTc%3Dr3XxjOi2ZgU%3DtNnVxKBtbTc%3DNAPBuudzGog%3DKBkEIAFm8wM%3D69mROvY71Ag%3DXN1LTbZkRBE%3DnIn6OkAfNDg%3DzOzNyOX6hHA%3DZmYLZse9KlA%3DXKwPfYofGJg%3D000441; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/shipping_configuration/country/add\nRemote-Ip: 78.210.220.249\nRemote-Port: 49900\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49900\n\nthelia_area_country%5B_token%5D=1ASkKFOkWoxVxcpXXY9QNp3BQNch2yyxJVWdNQX7fOU&area_id=15&thelia_area_country%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fshipping_configuration%2Fupdate%2F15&thelia_area_country%5Barea_id%5D=15&thelia_area_country%5Bcountry_id%5D%5B%5D=64-0","2017-03-02 15:51:56","2017-03-02 15:51:56"); -INSERT INTO `admin_log` VALUES("67","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3DMTjWVVmu%2FQw%3DEFvtypp1EDI%3DXN1LTbZkRBE%3D18EDLdm6Jao%3Df0QNfqI4lQQ%3D1b%2B8gLkot2Q%3DsyTxVCAkAcw%3DpnKkbBx1ROY%3DLwAjXsDCNn4%3DmhikDgd4RpE%3D1t8vAQTodPg%3D7NglMgF5Ijs%3DYJvo0iOKUTc%3Dr3XxjOi2ZgU%3DtNnVxKBtbTc%3DNAPBuudzGog%3DKBkEIAFm8wM%3D69mROvY71Ag%3DXN1LTbZkRBE%3DnIn6OkAfNDg%3DzOzNyOX6hHA%3DZmYLZse9KlA%3DXKwPfYofGJg%3D000441; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/home\nRemote-Ip: 78.210.220.249\nRemote-Port: 49936\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49936\nX-Requested-With: XMLHttpRequest\n\n","2017-03-02 15:54:49","2017-03-02 15:54:49"); -INSERT INTO `admin_log` VALUES("68","root","admin","admin","admin.customer","1","CREATE","Customer CUS000000000001(BOND James) (ID 1) created","POST /thelia233/web/index.php/admin/customer/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 875\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3DMTjWVVmu%2FQw%3DEFvtypp1EDI%3DXN1LTbZkRBE%3D18EDLdm6Jao%3Df0QNfqI4lQQ%3D1b%2B8gLkot2Q%3DsyTxVCAkAcw%3DpnKkbBx1ROY%3DLwAjXsDCNn4%3DmhikDgd4RpE%3D1t8vAQTodPg%3D7NglMgF5Ijs%3DYJvo0iOKUTc%3Dr3XxjOi2ZgU%3DtNnVxKBtbTc%3DNAPBuudzGog%3DKBkEIAFm8wM%3D69mROvY71Ag%3DXN1LTbZkRBE%3DnIn6OkAfNDg%3DzOzNyOX6hHA%3DZmYLZse9KlA%3DXKwPfYofGJg%3D000441; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/customers\nRemote-Ip: 78.210.220.249\nRemote-Port: 50068\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 50068\n\nthelia_customer_create%5B_token%5D=TuTOAxJ9Tq2Snb-YSDKK8BU4kkrkfxwgreTvjwUUweI&thelia_customer_create%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcustomer%2Fupdate%3Fcustomer_id%3D_ID_&thelia_customer_create%5Bpassword%5D=dummmy-password&thelia_customer_create%5Bpassword_confirm%5D=dummmy-password&thelia_customer_create%5Bcompany%5D=&thelia_customer_create%5Btitle%5D=1&thelia_customer_create%5Bfirstname%5D=James&thelia_customer_create%5Blastname%5D=BOND&thelia_customer_create%5Baddress1%5D=26+chemin+de+Marragon&thelia_customer_create%5Baddress2%5D=&thelia_customer_create%5Baddress3%5D=&thelia_customer_create%5Bzipcode%5D=31600&thelia_customer_create%5Bcity%5D=Muret&thelia_customer_create%5Bcountry%5D=64&thelia_customer_create%5Bemail%5D=llecorre%40free.fr&thelia_customer_create%5Bemail_confirm%5D=llecorre%40free.fr","2017-03-02 16:04:44","2017-03-02 16:04:44"); -INSERT INTO `admin_log` VALUES("69","root","admin","admin","admin.customer","1","UPDATE","Customer CUS000000000001(BOND James) (ID 1) modified","POST /thelia233/web/index.php/admin/customer/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 869\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3DMTjWVVmu%2FQw%3DEFvtypp1EDI%3DXN1LTbZkRBE%3D18EDLdm6Jao%3Df0QNfqI4lQQ%3D1b%2B8gLkot2Q%3DsyTxVCAkAcw%3DpnKkbBx1ROY%3DLwAjXsDCNn4%3DmhikDgd4RpE%3D1t8vAQTodPg%3D7NglMgF5Ijs%3DYJvo0iOKUTc%3Dr3XxjOi2ZgU%3DtNnVxKBtbTc%3DNAPBuudzGog%3DKBkEIAFm8wM%3D69mROvY71Ag%3DXN1LTbZkRBE%3DnIn6OkAfNDg%3DzOzNyOX6hHA%3DZmYLZse9KlA%3DXKwPfYofGJg%3D000441; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/customer/update?customer_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 50080\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 50080\n\nsave_mode=close&thelia_customer_update%5B_token%5D=GXbk_mItNuN4DDe9PmTaIg7MipLoYyVmkWctfYeisjs&page=1&customer_id=1&thelia_customer_update%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcustomers%3Fpage%3D1&thelia_customer_update%5Btitle%5D=1&thelia_customer_update%5Bfirstname%5D=James&thelia_customer_update%5Blastname%5D=BOND&thelia_customer_update%5Bemail%5D=llecorre%40free.fr&thelia_customer_update%5Bdiscount%5D=&thelia_customer_update%5Bpassword%5D=&thelia_customer_update%5Bcompany%5D=&thelia_customer_update%5Baddress1%5D=26+chemin+de+Marragon&thelia_customer_update%5Baddress2%5D=&thelia_customer_update%5Baddress3%5D=&thelia_customer_update%5Bzipcode%5D=31600&thelia_customer_update%5Bcity%5D=Muret&thelia_customer_update%5Bcountry%5D=64&thelia_customer_update%5Bphone%5D=&thelia_customer_update%5Bcellphone%5D=","2017-03-02 16:05:32","2017-03-02 16:05:32"); -INSERT INTO `admin_log` VALUES("70","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D7bN3iFscEew%3DPfurZyy%2BVIk%3D6wnOQuV7VEc%3DvhLbdBb3GAY%3D000113; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3DMTjWVVmu%2FQw%3DEFvtypp1EDI%3DXN1LTbZkRBE%3D18EDLdm6Jao%3Df0QNfqI4lQQ%3D1b%2B8gLkot2Q%3DsyTxVCAkAcw%3DpnKkbBx1ROY%3DLwAjXsDCNn4%3DmhikDgd4RpE%3D1t8vAQTodPg%3D7NglMgF5Ijs%3DYJvo0iOKUTc%3Dr3XxjOi2ZgU%3DtNnVxKBtbTc%3DNAPBuudzGog%3DKBkEIAFm8wM%3D69mROvY71Ag%3DXN1LTbZkRBE%3DnIn6OkAfNDg%3DzOzNyOX6hHA%3DZmYLZse9KlA%3DXKwPfYofGJg%3D000441; mediaplan=R3058745172; mediaplanBAK=R129295185; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 56639\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 56639\n\n","2017-03-08 21:58:39","2017-03-08 21:58:39"); -INSERT INTO `admin_log` VALUES("71","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R1753932722; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D7bN3iFscEew%3DPfurZyy%2BVIk%3D6wnOQuV7VEc%3DvhLbdBb3GAY%3D000113; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3DMTjWVVmu%2FQw%3DEFvtypp1EDI%3DXN1LTbZkRBE%3D18EDLdm6Jao%3Df0QNfqI4lQQ%3D1b%2B8gLkot2Q%3DsyTxVCAkAcw%3DpnKkbBx1ROY%3DLwAjXsDCNn4%3DmhikDgd4RpE%3D1t8vAQTodPg%3D7NglMgF5Ijs%3DYJvo0iOKUTc%3Dr3XxjOi2ZgU%3DtNnVxKBtbTc%3DNAPBuudzGog%3DKBkEIAFm8wM%3D69mROvY71Ag%3DXN1LTbZkRBE%3DnIn6OkAfNDg%3DzOzNyOX6hHA%3DZmYLZse9KlA%3DXKwPfYofGJg%3D000441; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 56605\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 56605\n\n","2017-03-13 21:57:41","2017-03-13 21:57:41"); -INSERT INTO `admin_log` VALUES("72","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3757125636; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3Djntf9Ocj3%2BM%3DcBEkTHmhQ5Y%3D%2FR56Nu5VQJY%3D5tMXqbIUe3o%3D000113; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 65339\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 65339\n\n","2017-03-26 10:45:15","2017-03-26 10:45:15"); -INSERT INTO `admin_log` VALUES("73","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/home HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3757125636; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3Djntf9Ocj3%2BM%3DcBEkTHmhQ5Y%3D%2FR56Nu5VQJY%3D5tMXqbIUe3o%3D000113; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 63044\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63044\n\n","2017-03-26 14:18:45","2017-03-26 14:18:45"); -INSERT INTO `admin_log` VALUES("74","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/home HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3757125636; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3Djntf9Ocj3%2BM%3DcBEkTHmhQ5Y%3D%2FR56Nu5VQJY%3D5tMXqbIUe3o%3D000113; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 63051\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63051\n\n","2017-03-26 14:18:49","2017-03-26 14:18:49"); -INSERT INTO `admin_log` VALUES("75","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3Djntf9Ocj3%2BM%3DcBEkTHmhQ5Y%3D%2FR56Nu5VQJY%3D5tMXqbIUe3o%3D000113; mediaplan=R3757125636; PHPSESSID=d2746320c6cf2018a4f431490bead710; mediaplanBAK=R129297363; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/home\nRemote-Ip: 78.210.220.249\nRemote-Port: 63051\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63051\nX-Requested-With: XMLHttpRequest\n\n","2017-03-26 14:18:55","2017-03-26 14:18:55"); -INSERT INTO `admin_log` VALUES("76","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3058670031; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3Djntf9Ocj3%2BM%3DcBEkTHmhQ5Y%3D%2FR56Nu5VQJY%3D5tMXqbIUe3o%3D000113; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/modules\nRemote-Ip: 78.210.220.249\nRemote-Port: 50136\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 50136\n\n","2017-03-27 07:39:05","2017-03-27 07:39:05"); -INSERT INTO `admin_log` VALUES("77","root","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 264\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; mediaplan=R3058674387; PHPSESSID=8fdd615d7203948b66869010bf9ba8fb\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 55362\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 55362\n\n","2017-04-11 16:47:53","2017-04-11 16:47:53"); -INSERT INTO `admin_log` VALUES("78","root","admin","admin","admin.configuration.administrator","1","UPDATE","Administrator root (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/administrators/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 644\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; mediaplan=R3058674387; PHPSESSID=8fdd615d7203948b66869010bf9ba8fb\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/administrators\nRemote-Ip: 78.210.220.249\nRemote-Port: 55576\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 55576\n\nthelia_admin_administrator_modification%5Bid%5D=1&thelia_admin_administrator_modification%5B_token%5D=sFtNiCagPZr4SYL7zM7LlZZyIgn2tNAmFjQ-obqNPGg&thelia_admin_administrator_modification%5Blogin%5D=root&thelia_admin_administrator_modification%5Bfirstname%5D=admin&thelia_admin_administrator_modification%5Bemail%5D=boutiquefanny%40free.fr&thelia_admin_administrator_modification%5Blastname%5D=admin&thelia_admin_administrator_modification%5Bpassword%5D=MaCleo02&thelia_admin_administrator_modification%5Bpassword_confirm%5D=MaCleo02&thelia_admin_administrator_modification%5Blocale%5D=fr_FR&thelia_admin_administrator_modification%5Bprofile%5D=0","2017-04-11 16:50:36","2017-04-11 16:50:36"); -INSERT INTO `admin_log` VALUES("79","root","admin","admin","admin.customer","1","UPDATE","Customer CUS000000000001(BOND James) (ID 1) modified","POST /thelia233/web/index.php/admin/customer/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 872\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; mediaplan=R3058674387; PHPSESSID=8fdd615d7203948b66869010bf9ba8fb\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/customer/update?customer_id=1&page=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 55703\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 55703\n\nsave_mode=close&thelia_customer_update%5B_token%5D=GangQmSAPOXmLPYWjLStewLduum5Gl5e-W3j91hM1Gc&page=1&customer_id=1&thelia_customer_update%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcustomers%3Fpage%3D1&thelia_customer_update%5Btitle%5D=1&thelia_customer_update%5Bfirstname%5D=James&thelia_customer_update%5Blastname%5D=BOND&thelia_customer_update%5Bemail%5D=llecorre%40free.fr&thelia_customer_update%5Bdiscount%5D=&thelia_customer_update%5Bpassword%5D=&thelia_customer_update%5Bcompany%5D=MI6&thelia_customer_update%5Baddress1%5D=26+chemin+de+Marragon&thelia_customer_update%5Baddress2%5D=&thelia_customer_update%5Baddress3%5D=&thelia_customer_update%5Bzipcode%5D=31600&thelia_customer_update%5Bcity%5D=Muret&thelia_customer_update%5Bcountry%5D=64&thelia_customer_update%5Bphone%5D=&thelia_customer_update%5Bcellphone%5D=","2017-04-11 16:52:25","2017-04-11 16:52:25"); -INSERT INTO `admin_log` VALUES("80","","","","admin","","LOGIN","Authentication failure for username \'root\'","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 264\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; mediaplan=R3058674387; PHPSESSID=19f24a4d6b24a0baead8f6bb67ab6230; mediaplanBAK=R129296274\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 60301\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60301\n\nthelia_admin_login%5B_token%5D=graqooy154gmsS3XTVMRvUWTFWW609FZOMTi470aV4I&thelia_admin_login%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin&thelia_admin_login%5Busername%5D=root&thelia_admin_login%5Bpassword%5D=macleo02","2017-04-11 18:04:36","2017-04-11 18:04:36"); -INSERT INTO `admin_log` VALUES("81","root","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 304\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; mediaplan=R3058674387; PHPSESSID=19f24a4d6b24a0baead8f6bb67ab6230; mediaplanBAK=R129296274\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/checklogin\nRemote-Ip: 78.210.220.249\nRemote-Port: 60301\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60301\n\n","2017-04-11 18:04:47","2017-04-11 18:04:47"); -INSERT INTO `admin_log` VALUES("82","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; mediaplan=R3058674387; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D; PHPSESSID=19f24a4d6b24a0baead8f6bb67ab6230; mediaplanBAK=R129296274\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin\nRemote-Ip: 78.210.220.249\nRemote-Port: 60301\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60301\nX-Requested-With: XMLHttpRequest\n\n","2017-04-11 18:04:49","2017-04-11 18:04:49"); -INSERT INTO `admin_log` VALUES("83","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/home HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R2044949441; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 60101\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60101\n\n","2017-04-12 23:29:24","2017-04-12 23:29:24"); -INSERT INTO `admin_log` VALUES("84","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; mediaplan=R2044949441; PHPSESSID=487b7e4ba634d8ea9b6601e8e9fd71aa; mediaplanBAK=R129297363; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/home\nRemote-Ip: 78.210.220.249\nRemote-Port: 60101\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60101\nX-Requested-With: XMLHttpRequest\n\n","2017-04-12 23:29:29","2017-04-12 23:29:29"); -INSERT INTO `admin_log` VALUES("85","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/home HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3757051584; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 57181\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 57181\n\n","2017-04-14 15:12:41","2017-04-14 15:12:41"); -INSERT INTO `admin_log` VALUES("86","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/home HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3757051584; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 58409\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 58409\n\n","2017-04-14 15:30:51","2017-04-14 15:30:51"); -INSERT INTO `admin_log` VALUES("87","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; mediaplan=R3757051584; PHPSESSID=9ed8214728e2e147328d9aef3374c97f; mediaplanBAK=R129289740; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/home\nRemote-Ip: 78.210.220.249\nRemote-Port: 58438\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 58438\nX-Requested-With: XMLHttpRequest\n\n","2017-04-14 15:31:11","2017-04-14 15:31:11"); -INSERT INTO `admin_log` VALUES("88","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/customers HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3757051584; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; PHPSESSID=9ed8214728e2e147328d9aef3374c97f; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/customers\nRemote-Ip: 78.210.220.249\nRemote-Port: 55569\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 55569\n\n","2017-04-14 18:56:04","2017-04-14 18:56:04"); -INSERT INTO `admin_log` VALUES("89","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3721092971; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DAFiaJU7j07M%3D6kE262o51io%3DJku0VYSH8QM%3DxQyqtmaCzMY%3DU0vJC1ktuBo%3D000113; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3D4DmZHeTWmTU%3DUUvD8aqu%2FNU%3DrS8N3vpRN1Y%3D000860; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 50063\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 50063\n\n","2017-05-02 23:47:23","2017-05-02 23:47:23"); -INSERT INTO `admin_log` VALUES("90","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R2045129126; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DAFiaJU7j07M%3D6kE262o51io%3DJku0VYSH8QM%3DxQyqtmaCzMY%3DU0vJC1ktuBo%3D000113; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3D4DmZHeTWmTU%3DUUvD8aqu%2FNU%3DrS8N3vpRN1Y%3D000860; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 59327\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 59327\n\n","2017-05-04 14:15:17","2017-05-04 14:15:17"); -INSERT INTO `admin_log` VALUES("91","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R2045129126; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DAFiaJU7j07M%3D6kE262o51io%3DJku0VYSH8QM%3DxQyqtmaCzMY%3DU0vJC1ktuBo%3D000113; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3D4DmZHeTWmTU%3DUUvD8aqu%2FNU%3DrS8N3vpRN1Y%3D000860; PHPSESSID=0507eb353cdf2271bfb865d182b6a007; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php\nRemote-Ip: 80.12.59.76\nRemote-Port: 37469\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 80.12.59.76\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 80.12.59.76\nX-Remote-Port: 37469\n\n","2017-05-04 16:24:15","2017-05-04 16:24:15"); -INSERT INTO `admin_log` VALUES("92","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DAFiaJU7j07M%3D6kE262o51io%3DJku0VYSH8QM%3DxQyqtmaCzMY%3DU0vJC1ktuBo%3D000113; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3D4DmZHeTWmTU%3DUUvD8aqu%2FNU%3DrS8N3vpRN1Y%3D000860; mediaplan=R2045129126; mediaplanBAK=R129291918; PHPSESSID=0507eb353cdf2271bfb865d182b6a007; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/home\nRemote-Ip: 80.12.59.76\nRemote-Port: 34883\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 80.12.59.76\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 80.12.59.76\nX-Remote-Port: 34883\nX-Requested-With: XMLHttpRequest\n\n","2017-05-04 16:35:23","2017-05-04 16:35:23"); -INSERT INTO `admin_log` VALUES("93","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DAFiaJU7j07M%3DQyl5gEkdQcI%3DN9xm530GK0E%3Dl1nHhV59FuI%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3D4DmZHeTWmTU%3DUUvD8aqu%2FNU%3DrS8N3vpRN1Y%3D000860; mediaplan=R3757163751; mediaplanBAK=R129297363; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 52781\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 52781\n\n","2017-05-10 20:13:46","2017-05-10 20:13:46"); -INSERT INTO `admin_log` VALUES("94","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: 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 mediaplan=R3757163751; PHPSESSID=5e891a39ae93eb3d358b24a4fe7be2b9; mediaplanBAK=R129297363; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/home\nRemote-Ip: 78.210.220.249\nRemote-Port: 53581\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 53581\nX-Requested-With: XMLHttpRequest\n\n","2017-05-10 20:23:22","2017-05-10 20:23:22"); -INSERT INTO `admin_log` VALUES("95","root","admin","admin","admin.category","11","CREATE","Category test (ID 11) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 421\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3Dqch4a6JwZxw%3DCyapFS%2FxhVQ%3DP6V8RLGxqUE%3D000293; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3D4DmZHeTWmTU%3DUUvD8aqu%2FNU%3DrS8N3vpRN1Y%3D000860; mediaplan=R3757163751; PHPSESSID=5e891a39ae93eb3d358b24a4fe7be2b9; mediaplanBAK=R129297363; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 78.210.220.249\nRemote-Port: 53686\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 53686\n\nthelia_category_creation%5B_token%5D=wW-OOHR8LGXmvndQRcKhJqnmcFWl40C52Ody4ufBtcs&thelia_category_creation%5Bparent%5D=0&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=test&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-05-10 20:24:28","2017-05-10 20:24:28"); -INSERT INTO `admin_log` VALUES("96","root","admin","admin","admin.product","1","CREATE","Product toto (ID 1) created","POST /thelia233/web/index.php/admin/products/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 755\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3757163751; PHPSESSID=5e891a39ae93eb3d358b24a4fe7be2b9; mediaplanBAK=R129297363; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog?category_id=11\nRemote-Ip: 78.210.220.249\nRemote-Port: 53836\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 53836\n\nthelia_product_creation%5B_token%5D=atTs35h2JTHeQuZKIK2hVsaj9kTzbjUyUM0a8_B-dZs&category_id=11&thelia_product_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fproducts%2Fupdate%3Fproduct_id%3D_ID_&thelia_product_creation%5Bdefault_category%5D=11&thelia_product_creation%5Bref%5D=toto&thelia_product_creation%5Btitle%5D=toto&edit_language_id=1&thelia_product_creation%5Blocale%5D=fr_FR&thelia_product_creation%5Btax_rule%5D=1&thelia_product_creation%5Btemplate_id%5D=1&thelia_product_creation%5Bprice%5D=10&thelia_product_creation%5Bcurrency%5D=1&thelia_product_creation%5Btax_price%5D=12&thelia_product_creation%5Bweight%5D=&thelia_product_creation%5Bquantity%5D=&thelia_product_creation%5Bvisible%5D=1","2017-05-10 20:26:27","2017-05-10 20:26:27"); -INSERT INTO `admin_log` VALUES("97","root","admin","admin","admin.category","11","DELETE","Category (ID 11) deleted","POST /thelia233/web/index.php/admin/categories/delete?_token=f01ad8166c6b60cc31369fe4809ff66a HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 14\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3757163751; PHPSESSID=5e891a39ae93eb3d358b24a4fe7be2b9; mediaplanBAK=R129297363; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 78.210.220.249\nRemote-Port: 55758\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 55758\n\ncategory_id=11","2017-05-10 20:50:56","2017-05-10 20:50:56"); -INSERT INTO `admin_log` VALUES("98","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3058739727; 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\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 49567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49567\n\n","2017-05-11 13:54:29","2017-05-11 13:54:29"); -INSERT INTO `admin_log` VALUES("99","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/home HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3058739727; 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\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 57895\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 57895\n\n","2017-05-11 15:37:47","2017-05-11 15:37:47"); -INSERT INTO `admin_log` VALUES("100","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: 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 PHPSESSID=3489156ad18eec6ad089db7ec8c8101a; mediaplan=R3058739727; mediaplanBAK=R129296274; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/home\nRemote-Ip: 78.210.220.249\nRemote-Port: 57895\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 57895\nX-Requested-With: XMLHttpRequest\n\n","2017-05-11 15:37:57","2017-05-11 15:37:57"); -INSERT INTO `admin_log` VALUES("101","root","admin","admin","admin.configuration.profile","1","CREATE","Profile Gestion stock (ID 1) created","POST /thelia233/web/index.php/admin/configuration/profiles/add HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 339\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 translation_userMode=1; mediaplan=R3058739727; PHPSESSID=3489156ad18eec6ad089db7ec8c8101a; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/profiles\nRemote-Ip: 78.210.220.249\nRemote-Port: 64786\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 64786\n\nthelia_profile_creation%5B_token%5D=hFN4R--vJx1vZkBL_X0gfyu_yo1gRfkm_BLvakQN2xM&thelia_profile_creation%5Blocale%5D=fr_FR&thelia_profile_creation%5Bcode%5D=Gestion+stock&thelia_profile_creation%5Btitle%5D=Gestion+stock&thelia_profile_creation%5Bchapo%5D=&thelia_profile_creation%5Bdescription%5D=&thelia_profile_creation%5Bpostscriptum%5D=","2017-05-11 17:06:16","2017-05-11 17:06:16"); -INSERT INTO `admin_log` VALUES("102","","","","admin","","LOGIN","Authentication failure for username \'llecorre@me.com\'","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 277\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; PHPSESSID=1981da17baf50cf997bde13ff5fd0807; mediaplanBAK=R129297363\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 61001\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61001\n\nthelia_admin_login%5B_token%5D=2wbEkWaYlTv-BrTZhrAyk0q1qk6MciZdYQbePnVfYKE&thelia_admin_login%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin&thelia_admin_login%5Busername%5D=llecorre%40me.com&thelia_admin_login%5Bpassword%5D=testaro7","2017-05-11 19:38:46","2017-05-11 19:38:46"); -INSERT INTO `admin_log` VALUES("103","root","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 264\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; PHPSESSID=1981da17baf50cf997bde13ff5fd0807; mediaplanBAK=R129297363\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 61102\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61102\n\n","2017-05-11 19:40:01","2017-05-11 19:40:01"); -INSERT INTO `admin_log` VALUES("104","root","admin","admin","admin.product","1","CREATE","Product Crème de citron (ID 1) created","POST /thelia233/web/index.php/admin/products/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 798\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; PHPSESSID=1981da17baf50cf997bde13ff5fd0807; mediaplanBAK=R129297363\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog?category_id=3\nRemote-Ip: 78.210.220.249\nRemote-Port: 61333\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61333\n\nthelia_product_creation%5B_token%5D=H6OVyAIzsEwKlMb6-0IFD23SgimeUKRPFqEL4_K_sVQ&category_id=3&thelia_product_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fproducts%2Fupdate%3Fproduct_id%3D_ID_&thelia_product_creation%5Bdefault_category%5D=3&thelia_product_creation%5Bref%5D=Cr%C3%A8me+de+citron&thelia_product_creation%5Btitle%5D=Cr%C3%A8me+de+citron&edit_language_id=1&thelia_product_creation%5Blocale%5D=fr_FR&thelia_product_creation%5Btax_rule%5D=1&thelia_product_creation%5Btemplate_id%5D=1&thelia_product_creation%5Bprice%5D=4.166667&thelia_product_creation%5Bcurrency%5D=1&thelia_product_creation%5Btax_price%5D=5&thelia_product_creation%5Bweight%5D=0%2C250&thelia_product_creation%5Bquantity%5D=5&thelia_product_creation%5Bvisible%5D=1","2017-05-11 19:42:45","2017-05-11 19:42:45"); -INSERT INTO `admin_log` VALUES("105","root","admin","admin","admin.product","","UPDATE","Enregistrement de image pour ID parent 1","POST /thelia233/web/index.php/admin/image/type/product/1/save-ajax HTTP/1.1\nAccept: application/json\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCache-Control: no-cache\nContent-Length: 39171\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryfEGZkQeWVpXeBAni\nCookie: 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 mediaplan=R3058739727; PHPSESSID=1981da17baf50cf997bde13ff5fd0807\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/products/update?product_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 65284\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 65284\nX-Requested-With: XMLHttpRequest\n\n","2017-05-11 20:42:19","2017-05-11 20:42:19"); -INSERT INTO `admin_log` VALUES("106","root","admin","admin","admin.configuration.template","1","UPDATE","Template Pot (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 390\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; PHPSESSID=1981da17baf50cf997bde13ff5fd0807\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 65284\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 65284\n\ntemplate_id=1&save_mode=stay&thelia_template_modification%5Bid%5D=1&thelia_template_modification%5B_token%5D=iRxkl_OmS69yvEzh_uoLmU-C9yOTCIounRXMat4QypE&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Pot","2017-05-11 20:42:54","2017-05-11 20:42:54"); -INSERT INTO `admin_log` VALUES("107","root","admin","admin","admin.configuration.template","1","UPDATE","Template Pot (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 391\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; PHPSESSID=1981da17baf50cf997bde13ff5fd0807\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 65284\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 65284\n\ntemplate_id=1&save_mode=close&thelia_template_modification%5Bid%5D=1&thelia_template_modification%5B_token%5D=iRxkl_OmS69yvEzh_uoLmU-C9yOTCIounRXMat4QypE&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Pot","2017-05-11 20:43:06","2017-05-11 20:43:06"); -INSERT INTO `admin_log` VALUES("108","root","admin","admin","admin.product","1","UPDATE","Product Crème de citron (ID 1) modified","POST /thelia233/web/index.php/admin/products/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 814\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; PHPSESSID=1981da17baf50cf997bde13ff5fd0807\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/products/update?product_id=1&page=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 49195\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49195\n\npage=1&product_id=1¤t_tab=general&thelia_product_modification%5B_token%5D=Ild4idWdBizpiJtuqrb_G2AGPQRHZnEyv8Hty25-t0Y&thelia_product_modification%5Bid%5D=1&thelia_product_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%3Fcategory_id%3D3%26page%3D1&thelia_product_modification%5Blocale%5D=fr_FR&thelia_product_modification%5Bref%5D=Citron&thelia_product_modification%5Btitle%5D=Cr%C3%A8me+de+citron&thelia_product_modification%5Bchapo%5D=&thelia_product_modification%5Bdescription%5D=&thelia_product_modification%5Bpostscriptum%5D=&thelia_product_modification%5Bdefault_category%5D=3&thelia_product_modification%5Bvirtual_document_id%5D=0&thelia_product_modification%5Bbrand_id%5D=0&thelia_product_modification%5Bvisible%5D=1&save_mode=stay","2017-05-11 20:46:35","2017-05-11 20:46:35"); -INSERT INTO `admin_log` VALUES("109","root","admin","admin","admin.customer","33","UPDATE","Customer PS_1(LE CORRE Laurent) (ID 33) modified","POST /thelia233/web/index.php/admin/customer/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 914\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; thelia_cart=563b7c19d977612a3738ea9e2521dfe8; PHPSESSID=1981da17baf50cf997bde13ff5fd0807\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/customer/update?customer_id=33&page=3\nRemote-Ip: 78.210.220.249\nRemote-Port: 49544\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49544\n\nsave_mode=close&thelia_customer_update%5B_token%5D=h4Oo5zhGkwlROFMKk4MMINW0il8sOBvoCSXGJ1Ci6uM&page=3&customer_id=33&thelia_customer_update%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcustomers%3Fpage%3D3&thelia_customer_update%5Btitle%5D=1&thelia_customer_update%5Bfirstname%5D=Laurent&thelia_customer_update%5Blastname%5D=LE+CORRE&thelia_customer_update%5Bemail%5D=llecorre%40netcourrier.com&thelia_customer_update%5Bdiscount%5D=&thelia_customer_update%5Bpassword%5D=testaro7&thelia_customer_update%5Bcompany%5D=&thelia_customer_update%5Baddress1%5D=5+rue+des+Crouzettes&thelia_customer_update%5Baddress2%5D=&thelia_customer_update%5Baddress3%5D=&thelia_customer_update%5Bzipcode%5D=31120&thelia_customer_update%5Bcity%5D=PORTET-SUR-GARONNE&thelia_customer_update%5Bcountry%5D=64&thelia_customer_update%5Bphone%5D=&thelia_customer_update%5Bcellphone%5D=0605040302","2017-05-11 20:51:15","2017-05-11 20:51:15"); -INSERT INTO `admin_log` VALUES("110","","","","admin","","LOGIN","Authentication failure for username \'llecorre@me.com\'","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 277\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe; mediaplanBAK=R129298452\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 60234\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60234\n\nthelia_admin_login%5B_token%5D=sJun9uxjtzmVGJhWn_OciyIGg1UTWtS-an1qLVoTyQA&thelia_admin_login%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin&thelia_admin_login%5Busername%5D=llecorre%40me.com&thelia_admin_login%5Bpassword%5D=testaro7","2017-05-11 23:30:39","2017-05-11 23:30:39"); -INSERT INTO `admin_log` VALUES("111","root","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 264\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe; mediaplanBAK=R129298452\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/checklogin\nRemote-Ip: 78.210.220.249\nRemote-Port: 60234\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60234\n\n","2017-05-11 23:30:44","2017-05-11 23:30:44"); -INSERT INTO `admin_log` VALUES("112","root","admin","admin","admin.folder","1","CREATE","Folder test1 (ID 1) created","POST /thelia233/web/index.php/admin/folders/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 393\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/folders\nRemote-Ip: 78.210.220.249\nRemote-Port: 61467\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61467\n\nthelia_folder_creation%5B_token%5D=JgbkSmfL9GXNDqse_4sVUwA-5K_3b5i20aTGYsqyVfc&thelia_folder_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Ffolders%2Fupdate%2F_ID_&thelia_folder_creation%5Bparent%5D=0&thelia_folder_creation%5Btitle%5D=test1&edit_language_id=1&thelia_folder_creation%5Blocale%5D=fr_FR&thelia_folder_creation%5Bvisible%5D=1","2017-05-11 23:48:10","2017-05-11 23:48:10"); -INSERT INTO `admin_log` VALUES("113","root","admin","admin","admin.content","1","CREATE","Content test 2 (ID 1) created","POST /thelia233/web/index.php/admin/content/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 417\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/folders?parent=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 61558\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61558\n\nthelia_content_creation%5B_token%5D=DhsXDbgLBdRczRjMHFC9Wfee2xfMBaESfTCAcABzN3Q&parent=1&thelia_content_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcontent%2Fupdate%2F_ID_&thelia_content_creation%5Bdefault_folder%5D=1&thelia_content_creation%5Btitle%5D=test+2&edit_language_id=1&thelia_content_creation%5Blocale%5D=fr_FR&thelia_content_creation%5Bvisible%5D=1","2017-05-11 23:49:17","2017-05-11 23:49:17"); -INSERT INTO `admin_log` VALUES("114","root","admin","admin","admin.content","1","UPDATE","Content test 2 (ID 1) modified","POST /thelia233/web/index.php/admin/content/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 630\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/content/update/1\nRemote-Ip: 78.210.220.249\nRemote-Port: 61558\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61558\n\nsave_mode=close&content_id=1¤t_tab=general&thelia_content_modification%5Bid%5D=1&thelia_content_modification%5B_token%5D=3ar1t9DW7v_ijN3cD-bLF3tI4ED0RI7gIkMn5F8h2dI&thelia_content_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcontent%2Fupdate%2F1&thelia_content_modification%5Blocale%5D=fr_FR&thelia_content_modification%5Btitle%5D=test+2&thelia_content_modification%5Bchapo%5D=&thelia_content_modification%5Bdescription%5D=&thelia_content_modification%5Bpostscriptum%5D=&thelia_content_modification%5Bdefault_folder%5D=1&thelia_content_modification%5Bvisible%5D=1","2017-05-11 23:49:24","2017-05-11 23:49:24"); -INSERT INTO `admin_log` VALUES("115","root","admin","admin","admin.content","1","UPDATE","Content Description de nos pots (ID 1) modified","POST /thelia233/web/index.php/admin/content/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 702\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/content/update/1\nRemote-Ip: 78.210.220.249\nRemote-Port: 61687\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61687\n\nsave_mode=close&content_id=1¤t_tab=general&thelia_content_modification%5Bid%5D=1&thelia_content_modification%5B_token%5D=3ar1t9DW7v_ijN3cD-bLF3tI4ED0RI7gIkMn5F8h2dI&thelia_content_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcontent%2Fupdate%2F1&thelia_content_modification%5Blocale%5D=fr_FR&thelia_content_modification%5Btitle%5D=Description+de+nos+pots&thelia_content_modification%5Bchapo%5D=Quelques+informations+compl%C3%A9mentaires+sur+nos+pots&thelia_content_modification%5Bdescription%5D=&thelia_content_modification%5Bpostscriptum%5D=&thelia_content_modification%5Bdefault_folder%5D=1&thelia_content_modification%5Bvisible%5D=1","2017-05-11 23:50:27","2017-05-11 23:50:27"); -INSERT INTO `admin_log` VALUES("116","root","admin","admin","admin.content","1","UPDATE","Content Nos pots (ID 1) modified","POST /thelia233/web/index.php/admin/content/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 752\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/content/update/1\nRemote-Ip: 78.210.220.249\nRemote-Port: 61794\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61794\n\nsave_mode=stay&content_id=1¤t_tab=general&thelia_content_modification%5Bid%5D=1&thelia_content_modification%5B_token%5D=3ar1t9DW7v_ijN3cD-bLF3tI4ED0RI7gIkMn5F8h2dI&thelia_content_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcontent%2Fupdate%2F1&thelia_content_modification%5Blocale%5D=fr_FR&thelia_content_modification%5Btitle%5D=Nos+pots&thelia_content_modification%5Bchapo%5D=Quelques+informations+compl%C3%A9mentaires+sur+nos+pots&thelia_content_modification%5Bdescription%5D=Nos+produits+sont+conditionn%C3%A9s+sous+diff%C3%A9rentes+tailles.&thelia_content_modification%5Bpostscriptum%5D=&thelia_content_modification%5Bdefault_folder%5D=1&thelia_content_modification%5Bvisible%5D=1","2017-05-11 23:51:46","2017-05-11 23:51:46"); -INSERT INTO `admin_log` VALUES("117","root","admin","admin","admin.content","","UPDATE","Enregistrement de image pour ID parent 1","POST /thelia233/web/index.php/admin/image/type/content/1/save-ajax HTTP/1.1\nAccept: application/json\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCache-Control: no-cache\nContent-Length: 64356\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryJpdEFLOlXlLAIDwB\nCookie: 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 mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/content/update/1?current_tab=general&folder_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 61794\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61794\nX-Requested-With: XMLHttpRequest\n\n","2017-05-11 23:52:00","2017-05-11 23:52:00"); -INSERT INTO `admin_log` VALUES("118","root","admin","admin","admin.folder","1","UPDATE","Folder Pots (ID 1) modified","POST /thelia233/web/index.php/admin/folders/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 609\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/folders/update/1\nRemote-Ip: 78.210.220.249\nRemote-Port: 61794\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61794\n\nsave_mode=close&folder_id=1¤t_tab=general&thelia_folder_modification%5Bid%5D=1&thelia_folder_modification%5B_token%5D=RE0majFF0-eK-ZYOwnfMV1vXD_mikuOJLXcIYAoOumY&thelia_folder_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Ffolders%2Fupdate%2F1&thelia_folder_modification%5Blocale%5D=fr_FR&thelia_folder_modification%5Btitle%5D=Pots&thelia_folder_modification%5Bchapo%5D=&thelia_folder_modification%5Bdescription%5D=&thelia_folder_modification%5Bpostscriptum%5D=&thelia_folder_modification%5Bparent%5D=0&thelia_folder_modification%5Bvisible%5D=1","2017-05-11 23:52:51","2017-05-11 23:52:51"); -INSERT INTO `admin_log` VALUES("119","root","admin","admin","admin.content","1","UPDATE","Content Nos pots (ID 1) modified","POST /thelia233/web/index.php/admin/content/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 776\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/content/update/1\nRemote-Ip: 78.210.220.249\nRemote-Port: 62617\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 62617\n\ncontent_id=1¤t_tab=general&thelia_content_modification%5Bid%5D=1&thelia_content_modification%5B_token%5D=3ar1t9DW7v_ijN3cD-bLF3tI4ED0RI7gIkMn5F8h2dI&thelia_content_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcontent%2Fupdate%2F1&thelia_content_modification%5Blocale%5D=fr_FR&thelia_content_modification%5Btitle%5D=Nos+pots&thelia_content_modification%5Bchapo%5D=&thelia_content_modification%5Bdescription%5D=Afin+que+vous+vous+rendiez+compte+de+la+taille+des+diff%C3%A9rents+pots+que+nous+proposons%2C+voici+%C3%A0+quoi+ressemblent+nos+conditionnements.&thelia_content_modification%5Bpostscriptum%5D=&thelia_content_modification%5Bdefault_folder%5D=1&thelia_content_modification%5Bvisible%5D=1&save_mode=stay","2017-05-12 00:02:42","2017-05-12 00:02:42"); -INSERT INTO `admin_log` VALUES("120","root","admin","admin","admin.content","1","UPDATE","Content Nos pots (ID 1) modified","POST /thelia233/web/index.php/admin/content/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 1089\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/content/update/1?current_tab=association&folder_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 62743\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 62743\n\nsave_mode=stay&content_id=1¤t_tab=general&thelia_content_modification%5Bid%5D=1&thelia_content_modification%5B_token%5D=3ar1t9DW7v_ijN3cD-bLF3tI4ED0RI7gIkMn5F8h2dI&thelia_content_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcontent%2Fupdate%2F1&thelia_content_modification%5Blocale%5D=fr_FR&thelia_content_modification%5Btitle%5D=Nos+pots&thelia_content_modification%5Bchapo%5D=&thelia_content_modification%5Bdescription%5D=Afin+que+vous+vous+rendiez+compte+de+la+taille+des+diff%C3%A9rents+pots+que+nous+proposons%2C+voici+%C3%A0+quoi+ressemblent+nos+conditionnements.%0D%0A%0D%0A*+Les+poids+de+nos+pots+sont+indiqu%C3%A9s+%C3%A0+titre+indicatif+et+peuvent+varier+en+fonction+du+contenu.%0D%0AContenance%09Poids+net+moyen%09Hauteur%09Diam%C3%A8tre%0D%0A41ml%0945g%0955mm%0945mm%0D%0A106ml%09115g%0975mm%0950mm%0D%0A228ml%09245g%0988mm%0968mm%0D%0A375ml%09430g%09122mm%0970mm%0D%0A+&thelia_content_modification%5Bpostscriptum%5D=&thelia_content_modification%5Bdefault_folder%5D=1&thelia_content_modification%5Bvisible%5D=1","2017-05-12 00:04:21","2017-05-12 00:04:21"); -INSERT INTO `admin_log` VALUES("121","root","admin","admin","admin.content","1","UPDATE","Suppression de image, ID 1, ID parent 1","POST /thelia233/web/index.php/admin/image/type/content/delete/1 HTTP/1.1\nAccept: */*\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 0\nCookie: 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 mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/content/update/1?current_tab=general&folder_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 62743\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 62743\nX-Requested-With: XMLHttpRequest\n\n","2017-05-12 00:04:52","2017-05-12 00:04:52"); -INSERT INTO `admin_log` VALUES("122","root","admin","admin","admin.content","1","UPDATE","Content Nos pots (ID 1) modified","POST /thelia233/web/index.php/admin/content/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 1112\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/content/update/1?current_tab=general&folder_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 62816\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 62816\n\nsave_mode=stay&content_id=1¤t_tab=general&thelia_content_modification%5Bid%5D=1&thelia_content_modification%5B_token%5D=3ar1t9DW7v_ijN3cD-bLF3tI4ED0RI7gIkMn5F8h2dI&thelia_content_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcontent%2Fupdate%2F1&thelia_content_modification%5Blocale%5D=fr_FR&thelia_content_modification%5Btitle%5D=Nos+pots&thelia_content_modification%5Bchapo%5D=&thelia_content_modification%5Bdescription%5D=Afin+que+vous+vous+rendiez+compte+de+la+taille+des+diff%C3%A9rents+pots+que+nous+proposons%2C+voici+%C3%A0+quoi+ressemblent+nos+conditionnements.%0D%0A%0D%0A*+Les+poids+de+nos+pots+sont+indiqu%C3%A9s+%C3%A0+titre+indicatif+et+peuvent+varier+en+fonction+du+contenu.%0D%0AContenance%09Poids+net+moyen%09Hauteur%09Diam%C3%A8tre%0D%0A41ml%0945g%0955mm%0945mm%0D%0A106ml%09115g%0975mm%0950mm%3Cimg+src%3D%22pots.jpg%22%3E%0D%0A228ml%09245g%0988mm%0968mm%0D%0A375ml%09430g%09122mm%0970mm&thelia_content_modification%5Bpostscriptum%5D=&thelia_content_modification%5Bdefault_folder%5D=1&thelia_content_modification%5Bvisible%5D=1","2017-05-12 00:05:14","2017-05-12 00:05:14"); -INSERT INTO `admin_log` VALUES("123","","","","admin","","LOGIN","Authentication failure for username \'root\'","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 264\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058818135; PHPSESSID=1d2a1c9d277182bc2dd378a574fa86f2; mediaplanBAK=R129293007; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 49978\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49978\nX-Remote-Proto: http\n\nthelia_admin_login%5B_token%5D=xuinuhdIQ3k2Es9MCl0YHWM_fbCMOvhMuFHdcfkOu2M&thelia_admin_login%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin&thelia_admin_login%5Busername%5D=root&thelia_admin_login%5Bpassword%5D=macleo02","2017-05-22 19:03:15","2017-05-22 19:03:15"); -INSERT INTO `admin_log` VALUES("124","","","","admin","","LOGIN","Authentication failure for username \'root\'","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 268\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058818135; PHPSESSID=1d2a1c9d277182bc2dd378a574fa86f2; mediaplanBAK=R129293007; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/checklogin\nRemote-Ip: 78.210.220.249\nRemote-Port: 49978\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49978\nX-Remote-Proto: http\n\nthelia_admin_login%5B_token%5D=xuinuhdIQ3k2Es9MCl0YHWM_fbCMOvhMuFHdcfkOu2M&thelia_admin_login%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin&thelia_admin_login%5Busername%5D=root&thelia_admin_login%5Bpassword%5D=Triumph%2331","2017-05-22 19:03:29","2017-05-22 19:03:29"); -INSERT INTO `admin_log` VALUES("125","root","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 264\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058818135; PHPSESSID=1d2a1c9d277182bc2dd378a574fa86f2; mediaplanBAK=R129293007; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/checklogin\nRemote-Ip: 78.210.220.249\nRemote-Port: 49978\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49978\nX-Remote-Proto: http\n\n","2017-05-22 19:03:43","2017-05-22 19:03:43"); -INSERT INTO `admin_log` VALUES("126","root","admin","admin","admin.configuration.administrator","1","UPDATE","Administrator admin (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/administrators/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 629\nContent-Type: application/x-www-form-urlencoded\nCookie: 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 mediaplan=R3058818135; PHPSESSID=1d2a1c9d277182bc2dd378a574fa86f2; mediaplanBAK=R129293007; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/administrators\nRemote-Ip: 78.210.220.249\nRemote-Port: 50185\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 50185\nX-Remote-Proto: http\n\nthelia_admin_administrator_modification%5Bid%5D=1&thelia_admin_administrator_modification%5B_token%5D=J2DQO7-cy8y82JvIt87EAvryAoO_mCn8tiHoSgoZnvI&thelia_admin_administrator_modification%5Blogin%5D=admin&thelia_admin_administrator_modification%5Bfirstname%5D=admin&thelia_admin_administrator_modification%5Bemail%5D=boutiquefanny%40free.fr&thelia_admin_administrator_modification%5Blastname%5D=admin&thelia_admin_administrator_modification%5Bpassword%5D=&thelia_admin_administrator_modification%5Bpassword_confirm%5D=&thelia_admin_administrator_modification%5Blocale%5D=fr_FR&thelia_admin_administrator_modification%5Bprofile%5D=0","2017-05-22 19:05:19","2017-05-22 19:05:19"); -INSERT INTO `admin_log` VALUES("127","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 195.81.235.66\nRemote-Port: 24651\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 24651\nX-Remote-Proto: http\n\n","2017-05-23 12:37:05","2017-05-23 12:37:05"); -INSERT INTO `admin_log` VALUES("128","admin","admin","admin","admin.configuration.attribute","5","CREATE","Attribute A la botte (ID 5) created","POST /thelia233/web/index.php/admin/configuration/attributes/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 369\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes\nRemote-Ip: 195.81.235.66\nRemote-Port: 41115\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 41115\nX-Remote-Proto: http\n\nthelia_attribute_creation%5B_token%5D=M9eHUWVVc5ORnc_Vafvhs0dJIfQ7Usb2hFI42Gmz6hY&thelia_attribute_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D_ID_&thelia_attribute_creation%5Btitle%5D=A+la+botte&edit_language_id=1&thelia_attribute_creation%5Blocale%5D=fr_FR","2017-05-23 12:42:30","2017-05-23 12:42:30"); -INSERT INTO `admin_log` VALUES("129","admin","admin","admin","admin.configuration.attribute","5","UPDATE","Attribute A la botte (ID 5) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 593\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 41273\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 41273\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=5&attribute_id=5&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=A+la+botte&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=","2017-05-23 12:42:36","2017-05-23 12:42:36"); -INSERT INTO `admin_log` VALUES("130","admin","admin","admin","admin.configuration.attribute","6","CREATE","Attribute Au poids (ID 6) created","POST /thelia233/web/index.php/admin/configuration/attributes/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 367\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes\nRemote-Ip: 195.81.235.66\nRemote-Port: 33631\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 33631\nX-Remote-Proto: http\n\nthelia_attribute_creation%5B_token%5D=M9eHUWVVc5ORnc_Vafvhs0dJIfQ7Usb2hFI42Gmz6hY&thelia_attribute_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D_ID_&thelia_attribute_creation%5Btitle%5D=Au+poids&edit_language_id=1&thelia_attribute_creation%5Blocale%5D=fr_FR","2017-05-23 12:42:45","2017-05-23 12:42:45"); -INSERT INTO `admin_log` VALUES("131","admin","admin","admin","admin.configuration.attribute","6","UPDATE","Attribute Au poids (ID 6) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 591\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=6\nRemote-Ip: 195.81.235.66\nRemote-Port: 33736\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 33736\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=6&attribute_id=6&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=Au+poids&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=","2017-05-23 12:42:49","2017-05-23 12:42:49"); -INSERT INTO `admin_log` VALUES("132","admin","admin","admin","admin.configuration.template","3","CREATE","Template Au détail (ID 3) created","POST /thelia233/web/index.php/admin/configuration/templates/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 366\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates\nRemote-Ip: 195.81.235.66\nRemote-Port: 34186\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 34186\nX-Remote-Proto: http\n\nthelia_template_creation%5B_token%5D=2spDOCy7c3zpKjbfzq7lVWJFgAxMRkzRQqKhksyK9T8&thelia_template_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates%2Fupdate%3Ftemplate_id%3D_ID_&thelia_template_creation%5Bname%5D=Au+d%C3%A9tail&edit_language_id=1&thelia_template_creation%5Blocale%5D=fr_FR","2017-05-23 12:43:05","2017-05-23 12:43:05"); -INSERT INTO `admin_log` VALUES("133","admin","admin","admin","admin.configuration.template","3","UPDATE","Template Au détail (ID 3) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 402\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=3\nRemote-Ip: 195.81.235.66\nRemote-Port: 14845\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 14845\nX-Remote-Proto: http\n\ntemplate_id=3&save_mode=close&thelia_template_modification%5Bid%5D=3&thelia_template_modification%5B_token%5D=emMMfIZgrZeXEX1SxEmUw1MsOwTwBa0cc1ZzJyocauk&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Au+d%C3%A9tail","2017-05-23 12:44:35","2017-05-23 12:44:35"); -INSERT INTO `admin_log` VALUES("134","admin","admin","admin","admin.category","11","CREATE","Category Légumes (ID 11) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 429\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 195.81.235.66\nRemote-Port: 15314\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 15314\nX-Remote-Proto: http\n\nthelia_category_creation%5B_token%5D=lxJ6SAotGjEuZA4jcXpMaj6VudAWcf6luOIjc6kJ5fs&thelia_category_creation%5Bparent%5D=0&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=L%C3%A9gumes&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-05-23 12:44:56","2017-05-23 12:44:56"); -INSERT INTO `admin_log` VALUES("135","admin","admin","admin","admin.category","11","UPDATE","Category Légumes (ID 11) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 684\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=11\nRemote-Ip: 195.81.235.66\nRemote-Port: 44783\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 44783\nX-Remote-Proto: http\n\nsave_mode=close&category_id=11¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=11&thelia_category_modification%5B_token%5D=Pn8XaDKxyhFSyl60f_oJpa2KPYFGwFxBNX1WhWPc3co&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=L%C3%A9gumes&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=3&thelia_category_modification%5Bvisible%5D=1","2017-05-23 12:45:13","2017-05-23 12:45:13"); -INSERT INTO `admin_log` VALUES("136","admin","admin","admin","admin.product","2","CREATE","Product Blettes (ID 2) created","POST /thelia233/web/index.php/admin/products/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 765\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog?category_id=11\nRemote-Ip: 195.81.235.66\nRemote-Port: 46172\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 46172\nX-Remote-Proto: http\n\nthelia_product_creation%5B_token%5D=VaIa6nQFKElw9F3WdqSIQiDiLaZOHPYMPFhM-8ThGMs&category_id=11&thelia_product_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fproducts%2Fupdate%3Fproduct_id%3D_ID_&thelia_product_creation%5Bdefault_category%5D=11&thelia_product_creation%5Bref%5D=Blettes&thelia_product_creation%5Btitle%5D=Blettes&edit_language_id=1&thelia_product_creation%5Blocale%5D=fr_FR&thelia_product_creation%5Btax_rule%5D=1&thelia_product_creation%5Btemplate_id%5D=3&thelia_product_creation%5Bprice%5D=1&thelia_product_creation%5Bcurrency%5D=1&thelia_product_creation%5Btax_price%5D=1.20&thelia_product_creation%5Bweight%5D=100&thelia_product_creation%5Bquantity%5D=&thelia_product_creation%5Bvisible%5D=1","2017-05-23 12:46:29","2017-05-23 12:46:29"); -INSERT INTO `admin_log` VALUES("137","admin","admin","admin","admin.configuration.attribute","1","CREATE","Attributeav 1 (ID 1) created","POST /thelia233/web/index.php/admin/configuration/attributes-av/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 456\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 27934\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 27934\nX-Remote-Proto: http\n\nthelia_attributeav_creation%5Battribute_id%5D=&thelia_attributeav_creation%5B_token%5D=vGMNQODcLbGkotFeIyoozJ6zUCMsJKapZTDgxypVn6s&attribute_id=5&thelia_attributeav_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D5&thelia_attributeav_creation%5Battribute_id%5D=5&thelia_attributeav_creation%5Btitle%5D=1&thelia_attributeav_creation%5Blocale%5D=fr_FR","2017-05-23 12:48:16","2017-05-23 12:48:16"); -INSERT INTO `admin_log` VALUES("138","admin","admin","admin","admin.configuration.attribute","2","CREATE","Attributeav 2 (ID 2) created","POST /thelia233/web/index.php/admin/configuration/attributes-av/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 456\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 19711\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 19711\nX-Remote-Proto: http\n\nthelia_attributeav_creation%5Battribute_id%5D=&thelia_attributeav_creation%5B_token%5D=vGMNQODcLbGkotFeIyoozJ6zUCMsJKapZTDgxypVn6s&attribute_id=5&thelia_attributeav_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D5&thelia_attributeav_creation%5Battribute_id%5D=5&thelia_attributeav_creation%5Btitle%5D=2&thelia_attributeav_creation%5Blocale%5D=fr_FR","2017-05-23 12:48:24","2017-05-23 12:48:24"); -INSERT INTO `admin_log` VALUES("139","admin","admin","admin","admin.configuration.attribute","3","CREATE","Attributeav 3 (ID 3) created","POST /thelia233/web/index.php/admin/configuration/attributes-av/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 456\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 19854\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 19854\nX-Remote-Proto: http\n\nthelia_attributeav_creation%5Battribute_id%5D=&thelia_attributeav_creation%5B_token%5D=vGMNQODcLbGkotFeIyoozJ6zUCMsJKapZTDgxypVn6s&attribute_id=5&thelia_attributeav_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D5&thelia_attributeav_creation%5Battribute_id%5D=5&thelia_attributeav_creation%5Btitle%5D=3&thelia_attributeav_creation%5Blocale%5D=fr_FR","2017-05-23 12:48:29","2017-05-23 12:48:29"); -INSERT INTO `admin_log` VALUES("140","admin","admin","admin","admin.configuration.attribute","5","UPDATE","Attribute A la botte (ID 5) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 671\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 19966\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 19966\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=5&attribute_id=5&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=A+la+botte&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B1%5D=1&attribute_values%5B2%5D=2&attribute_values%5B3%5D=3","2017-05-23 12:48:33","2017-05-23 12:48:33"); -INSERT INTO `admin_log` VALUES("141","admin","admin","admin","admin.configuration.attribute","4","CREATE","Attributeav Poids (ID 4) created","POST /thelia233/web/index.php/admin/configuration/attributes-av/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 460\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=6\nRemote-Ip: 195.81.235.66\nRemote-Port: 28657\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 28657\nX-Remote-Proto: http\n\nthelia_attributeav_creation%5Battribute_id%5D=&thelia_attributeav_creation%5B_token%5D=vGMNQODcLbGkotFeIyoozJ6zUCMsJKapZTDgxypVn6s&attribute_id=6&thelia_attributeav_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D6&thelia_attributeav_creation%5Battribute_id%5D=6&thelia_attributeav_creation%5Btitle%5D=Poids&thelia_attributeav_creation%5Blocale%5D=fr_FR","2017-05-23 12:48:55","2017-05-23 12:48:55"); -INSERT INTO `admin_log` VALUES("142","admin","admin","admin","admin.configuration.attribute","6","UPDATE","Attribute Au poids (ID 6) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 656\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=6\nRemote-Ip: 195.81.235.66\nRemote-Port: 12445\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 12445\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=6&attribute_id=6&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=Au+poids&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B4%5D=Veuillez+indiquer+le+poids+souhait%C3%A9","2017-05-23 12:52:17","2017-05-23 12:52:17"); -INSERT INTO `admin_log` VALUES("143","admin","admin","admin","admin.configuration.attribute","2","DELETE","Attributeav (ID 2) deleted","POST /thelia233/web/index.php/admin/configuration/attributes-av/delete?_token=24c2ba7b1c595960d926a2ea46330f38 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=0\nContent-Length: 31\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 12838\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 12838\nX-Remote-Proto: http\n\nattribute_id=5&attributeav_id=2","2017-05-23 12:52:41","2017-05-23 12:52:41"); -INSERT INTO `admin_log` VALUES("144","admin","admin","admin","admin.configuration.attribute","3","DELETE","Attributeav (ID 3) deleted","POST /thelia233/web/index.php/admin/configuration/attributes-av/delete?_token=6479f688fc9833f66482dcf0bf38d07d HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=0\nContent-Length: 31\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5&order=manual\nRemote-Ip: 195.81.235.66\nRemote-Port: 12934\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 12934\nX-Remote-Proto: http\n\nattribute_id=5&attributeav_id=3","2017-05-23 12:52:44","2017-05-23 12:52:44"); -INSERT INTO `admin_log` VALUES("145","admin","admin","admin","admin.configuration.attribute","5","UPDATE","Attribute A la botte (ID 5) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 661\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5&order=manual\nRemote-Ip: 195.81.235.66\nRemote-Port: 41864\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 41864\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=5&attribute_id=5&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=A+la+botte&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B1%5D=Veuillez+indiquer+le+nombre+d%27unit%C3%A9s","2017-05-23 12:52:54","2017-05-23 12:52:54"); -INSERT INTO `admin_log` VALUES("146","admin","admin","admin","admin.configuration.attribute","5","UPDATE","Attribute A la botte (ID 5) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 648\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 47197\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 47197\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=5&attribute_id=5&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=A+la+botte&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B1%5D=Commander+%C3%A0+la+pi%C3%A8ce","2017-05-23 12:56:20","2017-05-23 12:56:20"); -INSERT INTO `admin_log` VALUES("147","admin","admin","admin","admin.configuration.attribute","5","UPDATE","Attribute A la pièce (ID 5) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 653\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 26333\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 26333\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=5&attribute_id=5&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=A+la+pi%C3%A8ce&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B1%5D=Commander+%C3%A0+la+pi%C3%A8ce","2017-05-23 12:56:31","2017-05-23 12:56:31"); -INSERT INTO `admin_log` VALUES("148","admin","admin","admin","admin.configuration.attribute","6","UPDATE","Attribute Au poids (ID 6) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 634\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=6\nRemote-Ip: 195.81.235.66\nRemote-Port: 26678\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 26678\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=6&attribute_id=6&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=Au+poids&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B4%5D=Commander+au+poids","2017-05-23 12:56:40","2017-05-23 12:56:40"); -INSERT INTO `admin_log` VALUES("149","admin","admin","admin","admin.configuration.feature","1","CREATE","Feature catégorie (ID 1) created","POST /thelia233/web/index.php/admin/configuration/features/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 403\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/features\nRemote-Ip: 195.81.235.66\nRemote-Port: 15495\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 15495\nX-Remote-Proto: http\n\nthelia_feature_creation%5B_token%5D=lYk2f4gwV3U_RRE44U4U_KddWyZgrNTdQQiR451ciZo&thelia_feature_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ffeatures%2Fupdate%3Ffeature_id%3D_ID_&thelia_feature_creation%5Btitle%5D=cat%C3%A9gorie&edit_language_id=1&thelia_feature_creation%5Blocale%5D=fr_FR&thelia_feature_creation%5Badd_to_all%5D=1","2017-05-23 13:01:51","2017-05-23 13:01:51"); -INSERT INTO `admin_log` VALUES("150","admin","admin","admin","admin.configuration.feature","1","CREATE","Featureav Bio (ID 1) created","POST /thelia233/web/index.php/admin/configuration/features-av/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 436\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/features/update?feature_id=1\nRemote-Ip: 195.81.235.66\nRemote-Port: 34718\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 34718\nX-Remote-Proto: http\n\nthelia_featureav_creation%5Bfeature_id%5D=&thelia_featureav_creation%5B_token%5D=4iQjEOrj0zjqhmXWkuRNYKOqzR79bfIM84lfrH5fbMs&feature_id=1&thelia_featureav_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ffeatures%2Fupdate%3Ffeature_id%3D1&thelia_featureav_creation%5Bfeature_id%5D=1&thelia_featureav_creation%5Btitle%5D=Bio&thelia_featureav_creation%5Blocale%5D=fr_FR","2017-05-23 13:02:17","2017-05-23 13:02:17"); -INSERT INTO `admin_log` VALUES("151","admin","admin","admin","admin.configuration.feature","1","UPDATE","Feature catégorie (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/features/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 601\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/features/update?feature_id=1\nRemote-Ip: 195.81.235.66\nRemote-Port: 44103\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 44103\nX-Remote-Proto: http\n\nsave_mode=close&thelia_feature_modification%5Bid%5D=1&feature_id=1&thelia_feature_modification%5Blocale%5D=fr_FR&thelia_feature_modification%5B_token%5D=_y1w0aYjki1CdmTXewVuHN1SmrdlxTCpOj-bmuVZXRQ&thelia_feature_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ffeatures&thelia_feature_modification%5Blocale%5D=fr_FR&thelia_feature_modification%5Btitle%5D=cat%C3%A9gorie&thelia_feature_modification%5Bchapo%5D=&thelia_feature_modification%5Bdescription%5D=&thelia_feature_modification%5Bpostscriptum%5D=&feature_values%5B1%5D=Bio","2017-05-23 13:02:23","2017-05-23 13:02:23"); -INSERT INTO `admin_log` VALUES("152","admin","admin","admin","admin.folder","1","UPDATE","Folder Taille de nos pots (ID 1) modified","POST /thelia233/web/index.php/admin/folders/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 623\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/folders/update/1\nRemote-Ip: 195.81.235.66\nRemote-Port: 23075\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 23075\nX-Remote-Proto: http\n\nsave_mode=close&folder_id=1¤t_tab=general&thelia_folder_modification%5Bid%5D=1&thelia_folder_modification%5B_token%5D=83CI2-FawClFedEQjnJDf4nAa-tryPMcKNSNA9cQFzY&thelia_folder_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Ffolders%2Fupdate%2F1&thelia_folder_modification%5Blocale%5D=fr_FR&thelia_folder_modification%5Btitle%5D=Taille+de+nos+pots&thelia_folder_modification%5Bchapo%5D=&thelia_folder_modification%5Bdescription%5D=&thelia_folder_modification%5Bpostscriptum%5D=&thelia_folder_modification%5Bparent%5D=0&thelia_folder_modification%5Bvisible%5D=1","2017-05-23 13:02:54","2017-05-23 13:02:54"); -INSERT INTO `admin_log` VALUES("153","admin","admin","admin","admin.configuration.feature","2","CREATE","Feature Poids (ID 2) created","POST /thelia233/web/index.php/admin/configuration/features/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 352\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/features\nRemote-Ip: 195.81.235.66\nRemote-Port: 26331\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 26331\nX-Remote-Proto: http\n\nthelia_feature_creation%5B_token%5D=lYk2f4gwV3U_RRE44U4U_KddWyZgrNTdQQiR451ciZo&thelia_feature_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ffeatures%2Fupdate%3Ffeature_id%3D_ID_&thelia_feature_creation%5Btitle%5D=Poids&edit_language_id=1&thelia_feature_creation%5Blocale%5D=fr_FR","2017-05-23 13:13:02","2017-05-23 13:13:02"); -INSERT INTO `admin_log` VALUES("154","admin","admin","admin","admin.configuration.feature","2","CREATE","Featureav Poids (ID 2) created","POST /thelia233/web/index.php/admin/configuration/features-av/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 438\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/features/update?feature_id=2\nRemote-Ip: 195.81.235.66\nRemote-Port: 36865\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 36865\nX-Remote-Proto: http\n\nthelia_featureav_creation%5Bfeature_id%5D=&thelia_featureav_creation%5B_token%5D=4iQjEOrj0zjqhmXWkuRNYKOqzR79bfIM84lfrH5fbMs&feature_id=2&thelia_featureav_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ffeatures%2Fupdate%3Ffeature_id%3D2&thelia_featureav_creation%5Bfeature_id%5D=2&thelia_featureav_creation%5Btitle%5D=Poids&thelia_featureav_creation%5Blocale%5D=fr_FR","2017-05-23 13:13:13","2017-05-23 13:13:13"); -INSERT INTO `admin_log` VALUES("155","admin","admin","admin","admin.configuration.feature","2","UPDATE","Feature Poids (ID 2) modified","POST /thelia233/web/index.php/admin/configuration/features/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 594\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/features/update?feature_id=2\nRemote-Ip: 195.81.235.66\nRemote-Port: 22304\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 22304\nX-Remote-Proto: http\n\nsave_mode=close&thelia_feature_modification%5Bid%5D=2&feature_id=2&thelia_feature_modification%5Blocale%5D=fr_FR&thelia_feature_modification%5B_token%5D=_y1w0aYjki1CdmTXewVuHN1SmrdlxTCpOj-bmuVZXRQ&thelia_feature_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ffeatures&thelia_feature_modification%5Blocale%5D=fr_FR&thelia_feature_modification%5Btitle%5D=Poids&thelia_feature_modification%5Bchapo%5D=&thelia_feature_modification%5Bdescription%5D=&thelia_feature_modification%5Bpostscriptum%5D=&feature_values%5B2%5D=Poids","2017-05-23 13:13:18","2017-05-23 13:13:18"); -INSERT INTO `admin_log` VALUES("156","admin","admin","admin","admin.configuration.template","3","UPDATE","Template Au détail (ID 3) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 402\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=3\nRemote-Ip: 195.81.235.66\nRemote-Port: 31195\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 31195\nX-Remote-Proto: http\n\ntemplate_id=3&save_mode=close&thelia_template_modification%5Bid%5D=3&thelia_template_modification%5B_token%5D=emMMfIZgrZeXEX1SxEmUw1MsOwTwBa0cc1ZzJyocauk&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Au+d%C3%A9tail","2017-05-23 13:15:37","2017-05-23 13:15:37"); -INSERT INTO `admin_log` VALUES("157","admin","admin","admin","admin.configuration.feature","2","DELETE","Feature (ID 2) deleted","POST /thelia233/web/index.php/admin/configuration/features/delete?_token=a913f7da70b4ad05741f830e93b3c511 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=0\nContent-Length: 12\nContent-Type: application/x-www-form-urlencoded\nCookie: translation_userMode=1; mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/features\nRemote-Ip: 195.81.235.66\nRemote-Port: 24397\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 24397\nX-Remote-Proto: http\n\nfeature_id=2","2017-05-23 13:53:05","2017-05-23 13:53:05"); -INSERT INTO `admin_log` VALUES("158","admin","admin","admin","admin.configuration.template","3","UPDATE","Template Au détail (ID 3) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 402\nContent-Type: application/x-www-form-urlencoded\nCookie: translation_userMode=1; mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=3\nRemote-Ip: 195.81.235.66\nRemote-Port: 39885\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 39885\nX-Remote-Proto: http\n\ntemplate_id=3&save_mode=close&thelia_template_modification%5Bid%5D=3&thelia_template_modification%5B_token%5D=emMMfIZgrZeXEX1SxEmUw1MsOwTwBa0cc1ZzJyocauk&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Au+d%C3%A9tail","2017-05-23 13:53:41","2017-05-23 13:53:41"); -INSERT INTO `admin_log` VALUES("159","admin","admin","admin","admin.configuration.attribute","6","UPDATE","Attribute Au poids (ID 6) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 632\nContent-Type: application/x-www-form-urlencoded\nCookie: translation_userMode=1; mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=6\nRemote-Ip: 195.81.235.66\nRemote-Port: 26662\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 26662\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=6&attribute_id=6&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=Au+poids&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B4%5D=Poids+%28en+g%29","2017-05-23 13:54:10","2017-05-23 13:54:10"); -INSERT INTO `admin_log` VALUES("160","admin","admin","admin","admin.configuration.attribute","5","UPDATE","Attribute A la pièce (ID 5) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 644\nContent-Type: application/x-www-form-urlencoded\nCookie: translation_userMode=1; mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 14085\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 14085\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=5&attribute_id=5&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=A+la+pi%C3%A8ce&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B1%5D=Nombre+de+pi%C3%A8ces","2017-05-23 13:54:21","2017-05-23 13:54:21"); -INSERT INTO `admin_log` VALUES("161","admin","admin","admin","admin.product","2","UPDATE","Product Blettes (ID 2) modified","POST /thelia233/web/index.php/admin/products/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 806\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/products/update?product_id=2&page=1\nRemote-Ip: 195.81.235.66\nRemote-Port: 27112\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 27112\nX-Remote-Proto: http\n\npage=1&product_id=2¤t_tab=general&thelia_product_modification%5B_token%5D=Ck0WIRZeb8re5A7C9xyVbffRQ9fORgWMGQHcq1pD89Q&thelia_product_modification%5Bid%5D=2&thelia_product_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%3Fcategory_id%3D11%26page%3D1&thelia_product_modification%5Blocale%5D=fr_FR&thelia_product_modification%5Bref%5D=Blettes&thelia_product_modification%5Btitle%5D=Blettes&thelia_product_modification%5Bchapo%5D=&thelia_product_modification%5Bdescription%5D=&thelia_product_modification%5Bpostscriptum%5D=&thelia_product_modification%5Bdefault_category%5D=11&thelia_product_modification%5Bvirtual_document_id%5D=-1&thelia_product_modification%5Bbrand_id%5D=0&thelia_product_modification%5Bvisible%5D=1&save_mode=close","2017-05-23 13:59:32","2017-05-23 13:59:32"); -INSERT INTO `admin_log` VALUES("162","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DH3IXx1JbSJY%3DeA5mIrhtzvU%3DZS0%2F%2BQqylyQ%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D%2F2q7%2B68K4oM%3DCQKKDuEaVBs%3DAFiaJU7j07M%3DBf9Dx4ebl5E%3DXhmUo9SMtSE%3Db38vClgjyWI%3DvU5JgKC6asY%3D000112; PHPSESSID=1b3a94a1c7f44dca0cbaeb77fd4b11f0; XDEBUG_SESSION=PHPSTORM; thelia_cart=f3a2d9b68d2c5a9cd3b2c2ad2873cc96; mediaplan=R2044987556\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 59171\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 59171\nX-Remote-Proto: http\n\n","2017-05-27 17:16:19","2017-05-27 17:16:19"); -INSERT INTO `admin_log` VALUES("163","admin","admin","admin","admin.configuration.feature","1","UPDATE","Feature PoidsEtUnite (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/features/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 599\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DH3IXx1JbSJY%3DeA5mIrhtzvU%3DZS0%2F%2BQqylyQ%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D%2F2q7%2B68K4oM%3DCQKKDuEaVBs%3DAFiaJU7j07M%3DBf9Dx4ebl5E%3DXhmUo9SMtSE%3Db38vClgjyWI%3DvU5JgKC6asY%3D000112; PHPSESSID=1b3a94a1c7f44dca0cbaeb77fd4b11f0; thelia_cart=f3a2d9b68d2c5a9cd3b2c2ad2873cc96; mediaplan=R2044987556\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/features/update?feature_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 59836\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 59836\nX-Remote-Proto: http\n\nsave_mode=close&thelia_feature_modification%5Bid%5D=1&feature_id=1&thelia_feature_modification%5Blocale%5D=fr_FR&thelia_feature_modification%5B_token%5D=-an_PyQsTkjZtv97ufEEQtTCnEymP1JTiJw3GZBtoww&thelia_feature_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ffeatures&thelia_feature_modification%5Blocale%5D=fr_FR&thelia_feature_modification%5Btitle%5D=PoidsEtUnite&thelia_feature_modification%5Bchapo%5D=&thelia_feature_modification%5Bdescription%5D=&thelia_feature_modification%5Bpostscriptum%5D=&feature_values%5B1%5D=Oui","2017-05-27 17:20:32","2017-05-27 17:20:32"); -INSERT INTO `admin_log` VALUES("164","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DH3IXx1JbSJY%3DeA5mIrhtzvU%3DZS0%2F%2BQqylyQ%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D%2F2q7%2B68K4oM%3DCQKKDuEaVBs%3DAFiaJU7j07M%3DBf9Dx4ebl5E%3DXhmUo9SMtSE%3Db38vClgjyWI%3DvU5JgKC6asY%3D000112; PHPSESSID=1b3a94a1c7f44dca0cbaeb77fd4b11f0; thelia_cart=7ae6b683f78e78cde2b46c695d8361aa; mediaplanBAK=R129295185; mediaplan=R2044987556\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 53204\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 53204\nX-Remote-Proto: http\n\n","2017-05-27 22:29:53","2017-05-27 22:29:53"); -INSERT INTO `admin_log` VALUES("165","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DH3IXx1JbSJY%3DeA5mIrhtzvU%3DZS0%2F%2BQqylyQ%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D%2F2q7%2B68K4oM%3DCQKKDuEaVBs%3DAFiaJU7j07M%3DBf9Dx4ebl5E%3DXhmUo9SMtSE%3Db38vClgjyWI%3DvU5JgKC6asY%3D000112; PHPSESSID=1b3a94a1c7f44dca0cbaeb77fd4b11f0; thelia_cart=7ae6b683f78e78cde2b46c695d8361aa; mediaplanBAK=R129295185; mediaplan=R2044987556\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 53266\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 53266\nX-Remote-Proto: http\n\n","2017-05-27 22:29:55","2017-05-27 22:29:55"); -INSERT INTO `admin_log` VALUES("166","","","","admin","","LOGIN","Authentication failure for username \'admin\'","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 56736\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 56736\nX-Remote-Proto: http\n\nthelia_admin_login%5B_token%5D=-lcrLj2roOyMHALbTpQAk-XvklszrQ0QAgfkWnjXpa0&thelia_admin_login%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin&thelia_admin_login%5Busername%5D=admin&thelia_admin_login%5Bpassword%5D=MaCloe02","2017-05-28 09:33:11","2017-05-28 09:33:11"); -INSERT INTO `admin_log` VALUES("167","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/checklogin\nRemote-Ip: 78.210.220.249\nRemote-Port: 56792\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 56792\nX-Remote-Proto: http\n\n","2017-05-28 09:33:50","2017-05-28 09:33:50"); -INSERT INTO `admin_log` VALUES("168","admin","admin","admin","admin.configuration.attribute","5","UPDATE","Attribute A la pièce (ID 5) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 638\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 78.210.220.249\nRemote-Port: 56792\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 56792\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=5&attribute_id=5&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=9JPE2--VHVvVUhLptB7ZRvfqhTF5wfn0zu0Mg6-hVvA&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=A+la+pi%C3%A8ce&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B1%5D=A+la+pi%C3%A8ce","2017-05-28 09:34:15","2017-05-28 09:34:15"); -INSERT INTO `admin_log` VALUES("169","admin","admin","admin","admin.configuration.attribute","5","UPDATE","Attribute A la pièce (ID 5) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 674\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 78.210.220.249\nRemote-Port: 56856\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 56856\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=5&attribute_id=5&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=9JPE2--VHVvVUhLptB7ZRvfqhTF5wfn0zu0Mg6-hVvA&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=A+la+pi%C3%A8ce&thelia_attribute_modification%5Bchapo%5D=Articles+vendus+%C3%A0+la+pi%C3%A8ce&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B1%5D=A+la+pi%C3%A8ce","2017-05-28 09:34:42","2017-05-28 09:34:42"); -INSERT INTO `admin_log` VALUES("170","admin","admin","admin","admin.configuration.attribute","6","UPDATE","Attribute Au poids (ID 6) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 647\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=6\nRemote-Ip: 78.210.220.249\nRemote-Port: 56878\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 56878\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=6&attribute_id=6&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=9JPE2--VHVvVUhLptB7ZRvfqhTF5wfn0zu0Mg6-hVvA&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=Au+poids&thelia_attribute_modification%5Bchapo%5D=Artices+vendus+au+poids&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B4%5D=Au+poids","2017-05-28 09:35:03","2017-05-28 09:35:03"); -INSERT INTO `admin_log` VALUES("171","admin","admin","admin","admin.configuration.template","3","UPDATE","Template Au détail (ID 3) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 402\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=3\nRemote-Ip: 78.210.220.249\nRemote-Port: 57999\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 57999\nX-Remote-Proto: http\n\ntemplate_id=3&save_mode=close&thelia_template_modification%5Bid%5D=3&thelia_template_modification%5B_token%5D=EYg04jlQIZWzvso21UEOfRZ5w3EbjdHtAbilNZKVKlQ&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Au+d%C3%A9tail","2017-05-28 09:52:54","2017-05-28 09:52:54"); -INSERT INTO `admin_log` VALUES("172","admin","admin","admin","admin.configuration.template","3","UPDATE","Template Au détail (ID 3) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 402\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; thelia_cart=bfcbb168f71c7257a3ab262a237cb3d6; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=3\nRemote-Ip: 78.210.220.249\nRemote-Port: 58167\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 58167\nX-Remote-Proto: http\n\ntemplate_id=3&save_mode=close&thelia_template_modification%5Bid%5D=3&thelia_template_modification%5B_token%5D=EYg04jlQIZWzvso21UEOfRZ5w3EbjdHtAbilNZKVKlQ&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Au+d%C3%A9tail","2017-05-28 09:54:30","2017-05-28 09:54:30"); -INSERT INTO `admin_log` VALUES("173","admin","admin","admin","admin.configuration.template","3","UPDATE","Template Au détail (ID 3) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 402\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; thelia_cart=bfcbb168f71c7257a3ab262a237cb3d6; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=3\nRemote-Ip: 78.210.220.249\nRemote-Port: 58244\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 58244\nX-Remote-Proto: http\n\ntemplate_id=3&save_mode=close&thelia_template_modification%5Bid%5D=3&thelia_template_modification%5B_token%5D=EYg04jlQIZWzvso21UEOfRZ5w3EbjdHtAbilNZKVKlQ&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Au+d%C3%A9tail","2017-05-28 09:55:53","2017-05-28 09:55:53"); -INSERT INTO `admin_log` VALUES("174","admin","admin","admin","admin.product","2","CREATE","Combination generation for product reference Blettes","POST /thelia233/web/index.php/admin/product/combination/build HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 966\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; thelia_cart=bfcbb168f71c7257a3ab262a237cb3d6; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/products/update?product_id=2&page=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 58416\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 58416\nX-Remote-Proto: http\n\nproduct_id=2¤t_tab=prices&thelia_product_combination_generation_form%5B_token%5D=SzHsjn27wa6TBtDmDu2_f5QMA9iHIRn_ITg8nGUOxOw&thelia_product_combination_generation_form%5Bproduct_id%5D=2&thelia_product_combination_generation_form%5Bcurrency%5D=1&thelia_product_combination_generation_form%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fproducts%2Fupdate%3Fproduct_id%3D2%26current_tab%3Dprices&thelia_product_combination_generation_form%5Battribute_av%5D%5B0%5D=5%3A1&thelia_product_combination_generation_form%5Battribute_av%5D%5B1%5D=6%3A4&thelia_product_combination_generation_form%5Bprice%5D=0.010000&thelia_product_combination_generation_form%5Breference%5D=Blettes&thelia_product_combination_generation_form%5Bean_code%5D=&thelia_product_combination_generation_form%5Bweight%5D=1&thelia_product_combination_generation_form%5Bquantity%5D=5000&thelia_product_combination_generation_form%5Bsale_price%5D=1.000000","2017-05-28 09:58:00","2017-05-28 09:58:00"); -INSERT INTO `admin_log` VALUES("175","admin","admin","admin","admin.product","2","CREATE","Combination generation for product reference Blettes","POST /thelia233/web/index.php/admin/product/combination/build HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 890\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; thelia_cart=bfcbb168f71c7257a3ab262a237cb3d6; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/products/update?category_id=11&product_id=2&folder_id=0&accessory_category_id=0¤t_tab=prices&page=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 58435\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 58435\nX-Remote-Proto: http\n\nproduct_id=2¤t_tab=prices&thelia_product_combination_generation_form%5B_token%5D=SzHsjn27wa6TBtDmDu2_f5QMA9iHIRn_ITg8nGUOxOw&thelia_product_combination_generation_form%5Bproduct_id%5D=2&thelia_product_combination_generation_form%5Bcurrency%5D=1&thelia_product_combination_generation_form%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fproducts%2Fupdate%3Fproduct_id%3D2%26current_tab%3Dprices&thelia_product_combination_generation_form%5Battribute_av%5D%5B0%5D=5%3A1&thelia_product_combination_generation_form%5Bprice%5D=0.083333&thelia_product_combination_generation_form%5Breference%5D=Blettes&thelia_product_combination_generation_form%5Bean_code%5D=&thelia_product_combination_generation_form%5Bweight%5D=80&thelia_product_combination_generation_form%5Bquantity%5D=0&thelia_product_combination_generation_form%5Bsale_price%5D=0.000000","2017-05-28 09:59:01","2017-05-28 09:59:01"); -INSERT INTO `admin_log` VALUES("176","","","","admin","","LOGIN","Authentication failure for username \'root\'","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 264\nContent-Type: application/x-www-form-urlencoded\nCookie: thelia_cart=bfcbb168f71c7257a3ab262a237cb3d6; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DH3IXx1JbSJY%3DW67PWx4Vvlk%3DA2thbvpU01s%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DD0dlBm7dVjU%3DCQKKDuEaVBs%3DAFiaJU7j07M%3Dpw025UUiFRg%3DPfurZyy%2BVIk%3Dzlh5G7sCjtg%3Dxcz7G2J3uAA%3D000113; PHPSESSID=5a0ff605d6c00afe9593376b9def28b2; mediaplanBAK=R129289740; mediaplan=R3721101683\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 51064\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51064\nX-Remote-Proto: http\n\nthelia_admin_login%5B_token%5D=7ZYHfKv8v3vxo_YHe5xE1_NGYPJIUy1vgxdeWxc9LeM&thelia_admin_login%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin&thelia_admin_login%5Busername%5D=root&thelia_admin_login%5Bpassword%5D=MaCleo02","2017-06-01 22:13:18","2017-06-01 22:13:18"); -INSERT INTO `admin_log` VALUES("177","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: thelia_cart=bfcbb168f71c7257a3ab262a237cb3d6; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DH3IXx1JbSJY%3DW67PWx4Vvlk%3DA2thbvpU01s%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DD0dlBm7dVjU%3DCQKKDuEaVBs%3DAFiaJU7j07M%3Dpw025UUiFRg%3DPfurZyy%2BVIk%3Dzlh5G7sCjtg%3Dxcz7G2J3uAA%3D000113; PHPSESSID=5a0ff605d6c00afe9593376b9def28b2; mediaplanBAK=R129289740; mediaplan=R3721101683\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/checklogin\nRemote-Ip: 78.210.220.249\nRemote-Port: 51064\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51064\nX-Remote-Proto: http\n\n","2017-06-01 22:13:32","2017-06-01 22:13:32"); -INSERT INTO `admin_log` VALUES("178","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129324588; PHPSESSID=6fd6fa7cc733ae8f9eab6818d3358bf8; mediaplan=R3721101683\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 54724\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 54724\nX-Remote-Proto: http\n\n","2017-06-01 22:31:59","2017-06-01 22:31:59"); -INSERT INTO `admin_log` VALUES("179","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129296274; PHPSESSID=423865e052aa125c8473a5d1e0ec2dcb; mediaplan=R3721101683\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 55681\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 55681\nX-Remote-Proto: http\n\n","2017-06-01 22:35:11","2017-06-01 22:35:11"); -INSERT INTO `admin_log` VALUES("180","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 305\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a97a6971ea23cf79f896e958d3586586; mediaplanBAK=R129289740; mediaplan=R2045162885\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 55432\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 55432\nX-Remote-Proto: http\n\n","2017-06-03 11:29:44","2017-06-03 11:29:44"); -INSERT INTO `admin_log` VALUES("181","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129297363; PHPSESSID=e3ce422ac2a6d7c2388967b757bb536c; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3D9sfTXuG5BLE%3DPXRhdRgiHkM%3DNW8zfRjKwbY%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DixQyRVfYKXY%3DCQKKDuEaVBs%3DAFiaJU7j07M%3DICCJWnfMiME%3DPfurZyy%2BVIk%3Dnmryud0P4Vw%3D5LDNIsbufsU%3D000114; mediaplan=R2045162885\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 50923\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 50923\nX-Remote-Proto: http\n\n","2017-06-03 12:35:45","2017-06-03 12:35:45"); -INSERT INTO `admin_log` VALUES("182","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=c393dba56fe897fa61002e84c71ef682; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3D9sfTXuG5BLE%3DJOwZr843Xtk%3DP7hehkuRBEc%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DyD629%2FWac%2Fg%3DCQKKDuEaVBs%3DAFiaJU7j07M%3DDdt4g8WhOv8%3DN9xm530GK0E%3DQupqxbDDxYQ%3DvU5JgKC6asY%3D000112; mediaplanBAK=R129289740; mediaplan=R2045162885\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 51635\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51635\nX-Remote-Proto: http\n\n","2017-06-03 14:40:34","2017-06-03 14:40:34"); -INSERT INTO `admin_log` VALUES("183","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nConnection: keep-alive\nContent-Length: 241\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=dbe86e20788cb1673b70f94047f23ec6\nDnt: 1\nHost: localhost:8001\nOrigin: http://localhost:8001\nReferer: http://localhost:8001/index.php/admin/login\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 08:55:50","2017-06-04 08:55:50"); -INSERT INTO `admin_log` VALUES("184","admin","admin","admin","admin.configuration.language","2","UPDATE","Lang English (ID 2) modified","GET /index.php/admin/configuration/languages/toggleDefault/2?_token=13f8a7b0b904ad6c7720fcedaa4bea9c HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, sdch, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nConnection: keep-alive\nCookie: PHPSESSID=dbe86e20788cb1673b70f94047f23ec6\nDnt: 1\nHost: localhost:8001\nReferer: http://localhost:8001/index.php/admin/configuration/languages/toggleActive/1?_token=bf3de3344e7d843d713faaf4dec66d1b\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 10:02:43","2017-06-04 10:02:43"); -INSERT INTO `admin_log` VALUES("185","admin","admin","admin","admin.configuration.language","1","UPDATE","Lang Français (ID 1) modified","GET /index.php/admin/configuration/languages/toggleActive/1?_token=779f9b43ac9fd07bce6ede07766d1fda HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, sdch, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nConnection: keep-alive\nCookie: PHPSESSID=dbe86e20788cb1673b70f94047f23ec6\nDnt: 1\nHost: localhost:8001\nReferer: http://localhost:8001/index.php/admin/configuration/languages\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 10:02:47","2017-06-04 10:02:47"); -INSERT INTO `admin_log` VALUES("186","admin","admin","admin","admin.configuration.language","1","UPDATE","Lang Français (ID 1) modified","GET /index.php/admin/configuration/languages/toggleVisible/1?_token=6d3cb53dbc5fd372c794684f799b1e06 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, sdch, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nConnection: keep-alive\nCookie: translation_userMode=1; PHPSESSID=dbe86e20788cb1673b70f94047f23ec6\nDnt: 1\nHost: localhost:8001\nReferer: http://localhost:8001/index.php/admin/configuration/languages\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 10:05:11","2017-06-04 10:05:11"); -INSERT INTO `admin_log` VALUES("187","admin","admin","admin","admin.configuration.language","3","UPDATE","Lang Castellano (ID 3) modified","GET /index.php/admin/configuration/languages/toggleVisible/3?_token=45333a5aa856b9b9787448dae4a7581c HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, sdch, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nConnection: keep-alive\nCookie: translation_userMode=1; PHPSESSID=dbe86e20788cb1673b70f94047f23ec6\nDnt: 1\nHost: localhost:8001\nReferer: http://localhost:8001/index.php/admin/configuration/languages\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 10:05:17","2017-06-04 10:05:17"); -INSERT INTO `admin_log` VALUES("188","admin","admin","admin","admin.configuration.language","1","UPDATE","Lang Français (ID 1) modified","GET /index.php/admin/configuration/languages/toggleDefault/1?_token=30d586dee075e087ac4cee21a9e482bb HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, sdch, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nConnection: keep-alive\nCookie: translation_userMode=1; PHPSESSID=dbe86e20788cb1673b70f94047f23ec6\nDnt: 1\nHost: localhost:8001\nReferer: http://localhost:8001/index.php/admin/configuration/languages\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 10:05:21","2017-06-04 10:05:21"); -INSERT INTO `admin_log` VALUES("189","admin","admin","admin","admin.configuration.language","2","UPDATE","Lang English (ID 2) modified","GET /index.php/admin/configuration/languages/toggleActive/2?_token=e542211d56c1b543637818e98d5c246c HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, sdch, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nConnection: keep-alive\nCookie: translation_userMode=1; PHPSESSID=dbe86e20788cb1673b70f94047f23ec6\nDnt: 1\nHost: localhost:8001\nReferer: http://localhost:8001/index.php/admin/configuration/languages\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 10:05:36","2017-06-04 10:05:36"); -INSERT INTO `admin_log` VALUES("190","admin","admin","admin","admin.configuration.language","3","UPDATE","Lang Castellano (ID 3) modified","GET /index.php/admin/configuration/languages/toggleVisible/3?_token=7e3c4d864f80b9e4bf19f0511aeeefc3 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, sdch, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nConnection: keep-alive\nCookie: translation_userMode=1; PHPSESSID=dbe86e20788cb1673b70f94047f23ec6\nDnt: 1\nHost: localhost:8001\nReferer: http://localhost:8001/index.php/admin/configuration/languages\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 10:06:02","2017-06-04 10:06:02"); -INSERT INTO `admin_log` VALUES("191","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nConnection: keep-alive\nContent-Length: 281\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=605703975825c564cca81fbf44e2c8a2; thelia_cart=45b88c7a0d5a87d4a605eddec1b80b31\nDnt: 1\nHost: localhost:8001\nOrigin: http://localhost:8001\nReferer: http://localhost:8001/index.php/admin/login\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 10:41:43","2017-06-04 10:41:43"); -INSERT INTO `admin_log` VALUES("192","admin","admin","admin","admin.module","32","UPDATE","Module Fonctionnalités spécifiques Céline (ID 32) modified","POST /index.php/admin/module/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nConnection: keep-alive\nContent-Length: 584\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=605703975825c564cca81fbf44e2c8a2; armcn=YWRtaW4ANTkzM2UzZTcxZDkwOQA1OGI1YjFhNmE0ZjIw; thelia_cart=e3a4b60beec2af98acfac013f3547112\nDnt: 1\nHost: localhost:8001\nOrigin: http://localhost:8001\nReferer: http://localhost:8001/index.php/admin/module/update/32\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\nsave_mode=close&module_id=32¤t_tab=general&thelia_admin_module_modification%5Blocale%5D=fr_FR&thelia_admin_module_modification%5Bid%5D=32&thelia_admin_module_modification%5B_token%5D=qlKUiTHnIyEKQnx34AwYPjqgNlGzrl_lLBmJx3G1n_k&thelia_admin_module_modification%5Bsuccess_url%5D=http%3A%2F%2Flocalhost%3A8001%2Findex.php%2Fadmin%2Fmodules&thelia_admin_module_modification%5Btitle%5D=Fonctionnalit%C3%A9s+sp%C3%A9cifiques+C%C3%A9line&thelia_admin_module_modification%5Bchapo%5D=&thelia_admin_module_modification%5Bdescription%5D=&thelia_admin_module_modification%5Bpostscriptum%5D=","2017-06-04 13:36:15","2017-06-04 13:36:15"); -INSERT INTO `admin_log` VALUES("193","admin","admin","admin","admin","","LOGIN","Authentication successful","GET /index_dev.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, sdch, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nConnection: keep-alive\nCookie: armcn=YWRtaW4ANTkzM2UzZTcxZDkwOQA1OGI1YjFhNmE0ZjIw; thelia_cart=e3a4b60beec2af98acfac013f3547112; XDEBUG_SESSION=PHPSTORM\nDnt: 1\nHost: localhost:8001\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 13:53:54","2017-06-04 13:53:54"); -INSERT INTO `admin_log` VALUES("194","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\nAccept-Encoding: gzip, deflate, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nConnection: keep-alive\nContent-Length: 241\nContent-Type: application/x-www-form-urlencoded\nCookie: XDEBUG_SESSION=PHPSTORM; PHPSESSID=72a3924fe262d3f56c09ef1c0c5e0827; thelia_cart=be9330b10747af92fc6517ca1675ee45\nDnt: 1\nHost: localhost:8001\nOrigin: http://localhost:8001\nReferer: http://localhost:8001/index.php/admin/login\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-15 13:13:27","2017-06-15 13:13:27"); -INSERT INTO `admin_log` VALUES("195","admin","admin","admin","admin.configuration.language","3","UPDATE","Lang Castellano (ID 3) modified","GET /index_dev.php/admin/configuration/languages/toggleActive/3?_token=8a12d224d401d52082dd4e351b2c34ad HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\nAccept-Encoding: gzip, deflate, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nConnection: keep-alive\nCookie: PHPSESSID=72a3924fe262d3f56c09ef1c0c5e0827; thelia_cart=be9330b10747af92fc6517ca1675ee45\nDnt: 1\nHost: localhost:8001\nReferer: http://localhost:8001/index_dev.php/admin/configuration/languages\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-15 13:50:12","2017-06-15 13:50:12"); -INSERT INTO `admin_log` VALUES("196","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /index_dev.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\nAccept-Encoding: gzip, deflate, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nConnection: keep-alive\nContent-Length: 245\nContent-Type: application/x-www-form-urlencoded\nCookie: XDEBUG_SESSION=PHPSTORM; PHPSESSID=a129e1416532017d50aa8aa786189774; thelia_cart=040698d3e58003c006a32ce7209f7510\nDnt: 1\nHost: localhost:8001\nOrigin: http://localhost:8001\nReferer: http://localhost:8001/index_dev.php/admin/login\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.109 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-22 21:42:38","2017-06-22 21:42:38"); -INSERT INTO `admin_log` VALUES("197","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /index_dev.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\nAccept-Encoding: gzip, deflate, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nConnection: keep-alive\nContent-Length: 245\nContent-Type: application/x-www-form-urlencoded\nCookie: XDEBUG_SESSION=PHPSTORM; PHPSESSID=6574b66026d19b1b9760d0bb2799d04c; thelia_cart=173bcb6360d2e3797f73aa0dea110d9b\nDnt: 1\nHost: localhost:8001\nOrigin: http://localhost:8001\nReferer: http://localhost:8001/index_dev.php/admin/login\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-27 19:58:01","2017-06-27 19:58:01"); - - - -DROP TABLE `api`; - -CREATE TABLE `api` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `label` varchar(255) DEFAULT NULL, - `api_key` varchar(100) DEFAULT NULL, - `profile_id` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_api_profile_id` (`profile_id`), - CONSTRAINT `fk_api_profile_id` FOREIGN KEY (`profile_id`) REFERENCES `profile` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `area`; - -CREATE TABLE `area` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(100) NOT NULL, - `postage` float DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8; - -INSERT INTO `area` VALUES("1","France","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("2","A Zone","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("3","B Zone","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("4","C Zone","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("5","France OM1","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("6","France OM2","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("7","Europe","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("8","North America","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("9","Asia","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("10","Africa","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("11","Oceania","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("12","South America","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("13","Europe (non-EU)","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("14","Central America/Antilla","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("15","Autour de Muret","","2017-03-02 15:51:29","2017-03-02 15:51:29"); - - - -DROP TABLE `area_delivery_module`; - -CREATE TABLE `area_delivery_module` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `area_id` int(11) NOT NULL, - `delivery_module_id` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `area_id_delivery_module_id_UNIQUE` (`area_id`,`delivery_module_id`), - KEY `idx_area_delivery_module_area_id` (`area_id`), - KEY `idx_area_delivery_module_delivery_module_id_idx` (`delivery_module_id`), - CONSTRAINT `fk_area_delivery_module_area_id` FOREIGN KEY (`area_id`) REFERENCES `area` (`id`) ON DELETE CASCADE, - CONSTRAINT `idx_area_delivery_module_delivery_module_id` FOREIGN KEY (`delivery_module_id`) REFERENCES `module` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; - -INSERT INTO `area_delivery_module` VALUES("1","1","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area_delivery_module` VALUES("9","15","26","2017-03-02 15:52:59","2017-03-02 15:52:59"); -INSERT INTO `area_delivery_module` VALUES("10","15","27","2017-03-02 15:53:18","2017-03-02 15:53:18"); -INSERT INTO `area_delivery_module` VALUES("11","1","28","2017-03-02 15:53:32","2017-03-02 15:53:32"); - - - -DROP TABLE `atos_currency`; - -CREATE TABLE `atos_currency` ( - `code` varchar(128) NOT NULL, - `atos_code` int(11) DEFAULT NULL, - `decimals` int(11) DEFAULT NULL, - PRIMARY KEY (`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `atos_currency` VALUES("ARS","32","2"); -INSERT INTO `atos_currency` VALUES("AUD","36","2"); -INSERT INTO `atos_currency` VALUES("BRL","986","2"); -INSERT INTO `atos_currency` VALUES("CAD","124","2"); -INSERT INTO `atos_currency` VALUES("CHF","756","2"); -INSERT INTO `atos_currency` VALUES("DKK","208","2"); -INSERT INTO `atos_currency` VALUES("EUR","978","2"); -INSERT INTO `atos_currency` VALUES("GBP","826","2"); -INSERT INTO `atos_currency` VALUES("JPY","392","0"); -INSERT INTO `atos_currency` VALUES("KHR","116","2"); -INSERT INTO `atos_currency` VALUES("KRW","410","0"); -INSERT INTO `atos_currency` VALUES("MXN","484","2"); -INSERT INTO `atos_currency` VALUES("NOK","578","2"); -INSERT INTO `atos_currency` VALUES("NZD","554","2"); -INSERT INTO `atos_currency` VALUES("SEK","752","2"); -INSERT INTO `atos_currency` VALUES("SGD","702","2"); -INSERT INTO `atos_currency` VALUES("TRY","949","2"); -INSERT INTO `atos_currency` VALUES("TWD","901","2"); -INSERT INTO `atos_currency` VALUES("USD","840","2"); -INSERT INTO `atos_currency` VALUES("XAF","952","2"); -INSERT INTO `atos_currency` VALUES("XPF","953","2"); - - - -DROP TABLE `attribute`; - -CREATE TABLE `attribute` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; - -INSERT INTO `attribute` VALUES("1","1","2017-02-28 18:24:13","2017-03-02 14:02:02"); -INSERT INTO `attribute` VALUES("2","2","2017-02-28 18:24:36","2017-03-02 14:01:52"); -INSERT INTO `attribute` VALUES("3","3","2017-03-02 14:01:20","2017-03-02 14:01:20"); -INSERT INTO `attribute` VALUES("4","4","2017-03-02 14:01:38","2017-03-02 14:01:38"); -INSERT INTO `attribute` VALUES("5","5","2017-05-23 12:42:29","2017-05-28 09:34:42"); -INSERT INTO `attribute` VALUES("6","6","2017-05-23 12:42:45","2017-05-28 09:35:03"); - - - -DROP TABLE `attribute_av`; - -CREATE TABLE `attribute_av` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `attribute_id` int(11) NOT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_attribute_av_attribute_id` (`attribute_id`), - CONSTRAINT `fk_attribute_av_attribute_id` FOREIGN KEY (`attribute_id`) REFERENCES `attribute` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; - -INSERT INTO `attribute_av` VALUES("1","5","1","2017-05-23 12:48:16","2017-05-28 09:34:15"); -INSERT INTO `attribute_av` VALUES("4","6","1","2017-05-23 12:48:55","2017-05-28 09:35:03"); - - - -DROP TABLE `attribute_av_i18n`; - -CREATE TABLE `attribute_av_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `attribute_av_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `attribute_av` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `attribute_av_i18n` VALUES("1","fr_FR","A la pièce","","",""); -INSERT INTO `attribute_av_i18n` VALUES("4","fr_FR","Au poids","","",""); - - - -DROP TABLE `attribute_combination`; - -CREATE TABLE `attribute_combination` ( - `attribute_id` int(11) NOT NULL, - `attribute_av_id` int(11) NOT NULL, - `product_sale_elements_id` int(11) NOT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`attribute_id`,`attribute_av_id`,`product_sale_elements_id`), - KEY `idx_attribute_combination_attribute_id` (`attribute_id`), - KEY `idx_attribute_combination_attribute_av_id` (`attribute_av_id`), - KEY `idx_attribute_combination_product_sale_elements_id` (`product_sale_elements_id`), - CONSTRAINT `fk_attribute_combination_attribute_av_id` FOREIGN KEY (`attribute_av_id`) REFERENCES `attribute_av` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_attribute_combination_attribute_id` FOREIGN KEY (`attribute_id`) REFERENCES `attribute` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_attribute_combination_product_sale_elements_id` FOREIGN KEY (`product_sale_elements_id`) REFERENCES `product_sale_elements` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `attribute_combination` VALUES("5","1","6","","2017-05-28 09:59:01","2017-05-28 09:59:01"); -INSERT INTO `attribute_combination` VALUES("6","4","7","","2017-05-28 09:59:40","2017-05-28 09:59:40"); - - - -DROP TABLE `attribute_i18n`; - -CREATE TABLE `attribute_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `attribute_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `attribute` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `attribute_i18n` VALUES("1","fr_FR","106ml","","",""); -INSERT INTO `attribute_i18n` VALUES("2","fr_FR","228ml","","",""); -INSERT INTO `attribute_i18n` VALUES("3","fr_FR","385ml","","",""); -INSERT INTO `attribute_i18n` VALUES("4","fr_FR","750ml","","",""); -INSERT INTO `attribute_i18n` VALUES("5","fr_FR","A la pièce","","Articles vendus à la pièce",""); -INSERT INTO `attribute_i18n` VALUES("6","fr_FR","Au poids","","Artices vendus au poids",""); - - - -DROP TABLE `attribute_template`; - -CREATE TABLE `attribute_template` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `attribute_id` int(11) NOT NULL, - `template_id` int(11) NOT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_attribute_template_id` (`attribute_id`), - KEY `fk_attribute_template_idx` (`template_id`), - CONSTRAINT `fk_attribute_template` FOREIGN KEY (`template_id`) REFERENCES `template` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_attribute_template_id` FOREIGN KEY (`attribute_id`) REFERENCES `attribute` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; - -INSERT INTO `attribute_template` VALUES("2","2","1","2","2017-03-01 16:05:40","2017-03-01 16:05:40"); -INSERT INTO `attribute_template` VALUES("6","5","3","1","2017-05-23 12:44:27","2017-05-23 12:44:27"); -INSERT INTO `attribute_template` VALUES("7","6","3","2","2017-05-23 12:44:33","2017-05-23 12:44:33"); - - - -DROP TABLE `brand`; - -CREATE TABLE `brand` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `visible` tinyint(4) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `logo_image_id` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `fk_brand_brand_image_idx` (`logo_image_id`), - CONSTRAINT `fk_logo_image_id_brand_image` FOREIGN KEY (`logo_image_id`) REFERENCES `brand_image` (`id`) ON DELETE SET NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `brand_document`; - -CREATE TABLE `brand_document` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `brand_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_brand_document_brand_id` (`brand_id`), - CONSTRAINT `fk_brand_document_brand_id` FOREIGN KEY (`brand_id`) REFERENCES `brand` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `brand_document_i18n`; - -CREATE TABLE `brand_document_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `brand_document_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `brand_document` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `brand_i18n`; - -CREATE TABLE `brand_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - `meta_title` varchar(255) DEFAULT NULL, - `meta_description` text, - `meta_keywords` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `brand_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `brand` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `brand_image`; - -CREATE TABLE `brand_image` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `brand_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_brand_image_brand_id` (`brand_id`), - CONSTRAINT `fk_brand_image_brand_id` FOREIGN KEY (`brand_id`) REFERENCES `brand` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `brand_image_i18n`; - -CREATE TABLE `brand_image_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `brand_image_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `brand_image` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `carousel`; - -CREATE TABLE `carousel` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `file` varchar(255) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `url` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; - -INSERT INTO `carousel` VALUES("1","banniere_chutney_figue-1.jpg","","","2017-02-28 18:29:18","2017-02-28 18:29:18"); -INSERT INTO `carousel` VALUES("2","banniere_5x106-2.jpg","","","2017-02-28 18:46:30","2017-02-28 18:46:30"); - - - -DROP TABLE `carousel_i18n`; - -CREATE TABLE `carousel_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `alt` varchar(255) DEFAULT NULL, - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `carousel_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `carousel` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `carousel_i18n` VALUES("1","cs_CZ","","","","",""); -INSERT INTO `carousel_i18n` VALUES("1","de_DE","","","","",""); -INSERT INTO `carousel_i18n` VALUES("1","en_US","","","","",""); -INSERT INTO `carousel_i18n` VALUES("1","es_ES","","","","",""); -INSERT INTO `carousel_i18n` VALUES("1","fr_FR","","","","",""); -INSERT INTO `carousel_i18n` VALUES("1","it_IT","","","","",""); -INSERT INTO `carousel_i18n` VALUES("1","ru_RU","","","","",""); -INSERT INTO `carousel_i18n` VALUES("2","cs_CZ","","","","",""); -INSERT INTO `carousel_i18n` VALUES("2","de_DE","","","","",""); -INSERT INTO `carousel_i18n` VALUES("2","en_US","","","","",""); -INSERT INTO `carousel_i18n` VALUES("2","es_ES","","","","",""); -INSERT INTO `carousel_i18n` VALUES("2","fr_FR","","","","",""); -INSERT INTO `carousel_i18n` VALUES("2","it_IT","","","","",""); -INSERT INTO `carousel_i18n` VALUES("2","ru_RU","","","","",""); - - - -DROP TABLE `cart`; - -CREATE TABLE `cart` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `token` varchar(255) DEFAULT NULL, - `customer_id` int(11) DEFAULT NULL, - `address_delivery_id` int(11) DEFAULT NULL, - `address_invoice_id` int(11) DEFAULT NULL, - `currency_id` int(11) DEFAULT NULL, - `discount` decimal(16,6) DEFAULT '0.000000', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `token_UNIQUE` (`token`), - KEY `idx_cart_customer_id` (`customer_id`), - KEY `idx_cart_address_delivery_id` (`address_delivery_id`), - KEY `idx_cart_address_invoice_id` (`address_invoice_id`), - KEY `idx_cart_currency_id` (`currency_id`), - CONSTRAINT `fk_cart_address_delivery_id` FOREIGN KEY (`address_delivery_id`) REFERENCES `address` (`id`), - CONSTRAINT `fk_cart_address_invoice_id` FOREIGN KEY (`address_invoice_id`) REFERENCES `address` (`id`), - CONSTRAINT `fk_cart_currency_id` FOREIGN KEY (`currency_id`) REFERENCES `currency` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_cart_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8; - -INSERT INTO `cart` VALUES("2","ce333c94f76634ff2557ec7b38ee96d7","33","","","1","0.000000","2017-05-11 23:01:43","2017-05-11 23:01:43"); -INSERT INTO `cart` VALUES("3","743384c371839620b059d4676ef314c6","","","","1","0.000000","2017-05-23 13:11:19","2017-05-23 14:16:00"); -INSERT INTO `cart` VALUES("6","7ae6b683f78e78cde2b46c695d8361aa","","","","1","0.000000","2017-05-27 19:49:16","2017-05-27 19:49:16"); -INSERT INTO `cart` VALUES("7","bfcbb168f71c7257a3ab262a237cb3d6","","","","1","0.000000","2017-05-28 09:53:39","2017-05-28 10:03:55"); -INSERT INTO `cart` VALUES("10","94b29ed6be69db7d88f09a553aea0f2a","","","","1","0.000000","2017-06-04 13:53:54","2017-06-04 13:53:54"); -INSERT INTO `cart` VALUES("34","b289e16177d34024bae28a33ede82e22","33","","","1","0.000000","2017-06-27 20:00:35","2017-06-27 20:01:28"); - - - -DROP TABLE `cart_item`; - -CREATE TABLE `cart_item` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `cart_id` int(11) NOT NULL, - `product_id` int(11) NOT NULL, - `quantity` float DEFAULT '1', - `product_sale_elements_id` int(11) NOT NULL, - `price` decimal(16,6) DEFAULT '0.000000', - `promo_price` decimal(16,6) DEFAULT '0.000000', - `price_end_of_life` datetime DEFAULT NULL, - `promo` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_cart_item_cart_id` (`cart_id`), - KEY `idx_cart_item_product_id` (`product_id`), - KEY `idx_cart_item_product_sale_elements_id` (`product_sale_elements_id`), - CONSTRAINT `fk_cart_item_cart_id` FOREIGN KEY (`cart_id`) REFERENCES `cart` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_cart_item_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_cart_item_product_sale_elements_id` FOREIGN KEY (`product_sale_elements_id`) REFERENCES `product_sale_elements` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=utf8; - -INSERT INTO `cart_item` VALUES("2","2","1","1","1","4.166667","4.166667","","0","2017-05-11 23:01:43","2017-05-11 23:01:43"); -INSERT INTO `cart_item` VALUES("8","10","2","10","6","0.083333","0.000000","","0","2017-06-04 13:53:54","2017-06-04 13:53:54"); -INSERT INTO `cart_item` VALUES("9","10","2","300","7","0.010000","0.000000","","0","2017-06-04 13:53:54","2017-06-04 13:53:54"); -INSERT INTO `cart_item` VALUES("50","34","2","300","7","0.010000","0.000000","","0","2017-06-27 20:00:35","2017-06-27 20:00:35"); -INSERT INTO `cart_item` VALUES("51","34","2","1","6","0.083333","0.000000","","0","2017-06-27 20:00:35","2017-06-27 20:00:35"); - - - -DROP TABLE `category`; - -CREATE TABLE `category` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `parent` int(11) NOT NULL DEFAULT '0', - `visible` tinyint(4) NOT NULL, - `position` int(11) NOT NULL, - `default_template_id` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_parent` (`parent`), - KEY `idx_parent_position` (`parent`,`position`) -) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; - -INSERT INTO `category` VALUES("1","0","1","1","1","2017-02-28 18:48:43","2017-03-01 16:06:11","2","2017-03-01 16:06:11",""); -INSERT INTO `category` VALUES("2","0","1","2","1","2017-03-01 12:46:30","2017-03-01 16:06:32","2","2017-03-01 16:06:32",""); -INSERT INTO `category` VALUES("3","0","1","3","1","2017-03-01 12:46:47","2017-03-01 16:06:39","2","2017-03-01 16:06:39",""); -INSERT INTO `category` VALUES("4","0","1","5","2","2017-03-01 12:46:56","2017-03-01 16:07:33","3","2017-03-01 16:07:33",""); -INSERT INTO `category` VALUES("5","0","1","4","1","2017-03-01 12:47:12","2017-03-01 16:06:45","3","2017-03-01 16:06:45",""); -INSERT INTO `category` VALUES("6","1","1","1","1","2017-03-01 16:03:45","2017-03-01 16:07:42","2","2017-03-01 16:07:42",""); -INSERT INTO `category` VALUES("7","1","1","2","1","2017-03-01 16:07:52","2017-03-01 16:07:57","2","2017-03-01 16:07:57",""); -INSERT INTO `category` VALUES("8","1","1","3","1","2017-03-01 16:08:15","2017-03-01 16:08:19","2","2017-03-01 16:08:19",""); -INSERT INTO `category` VALUES("9","1","1","4","1","2017-03-01 16:08:27","2017-03-01 16:08:31","2","2017-03-01 16:08:31",""); -INSERT INTO `category` VALUES("10","1","1","5","1","2017-03-01 16:08:40","2017-03-01 16:08:45","2","2017-03-01 16:08:45",""); -INSERT INTO `category` VALUES("11","0","1","6","3","2017-05-23 12:44:55","2017-06-04 09:23:41","4","2017-06-04 09:23:41",""); - - - -DROP TABLE `category_associated_content`; - -CREATE TABLE `category_associated_content` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `category_id` int(11) NOT NULL, - `content_id` int(11) NOT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_category_associated_content_category_id` (`category_id`), - KEY `idx_category_associated_content_content_id` (`content_id`), - CONSTRAINT `fk_category_associated_content_category_id` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_category_associated_content_content_id` FOREIGN KEY (`content_id`) REFERENCES `content` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `category_document`; - -CREATE TABLE `category_document` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `category_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_category_document_category_id` (`category_id`), - CONSTRAINT `fk_catgory_document_category_id` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `category_document_i18n`; - -CREATE TABLE `category_document_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `category_document_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `category_document` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `category_i18n`; - -CREATE TABLE `category_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - `meta_title` varchar(255) DEFAULT NULL, - `meta_description` text, - `meta_keywords` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `category_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `category` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `category_i18n` VALUES("1","fr_FR","Nos confitures","De délicieuses confitures maison à base de fruits frais et garanties sans conservateur.","De délicieuses confitures maison","","Confitures maison","De délicieuses confitures maison",""); -INSERT INTO `category_i18n` VALUES("2","fr_FR","Nos salés","","","","","",""); -INSERT INTO `category_i18n` VALUES("3","fr_FR","Nos crèmes et gelées","","","","","",""); -INSERT INTO `category_i18n` VALUES("4","fr_FR","Nos coffrets","","","","","",""); -INSERT INTO `category_i18n` VALUES("5","fr_FR","Nos préparations","","","","","",""); -INSERT INTO `category_i18n` VALUES("6","fr_FR","Fruits exotiques","","","","","",""); -INSERT INTO `category_i18n` VALUES("7","fr_FR","Fruits rouges","","","","","",""); -INSERT INTO `category_i18n` VALUES("8","fr_FR","Agrumes","","","","","",""); -INSERT INTO `category_i18n` VALUES("9","fr_FR","Fruits à noyaux","","","","","",""); -INSERT INTO `category_i18n` VALUES("10","fr_FR","Fruits à pépins","","","","","",""); -INSERT INTO `category_i18n` VALUES("11","fr_FR","Légumes","","","","","",""); - - - -DROP TABLE `category_image`; - -CREATE TABLE `category_image` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `category_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_category_image_category_id` (`category_id`), - KEY `idx_category_image_category_id_position` (`category_id`,`position`), - CONSTRAINT `fk_category_image_category_id` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `category_image_i18n`; - -CREATE TABLE `category_image_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `category_image_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `category_image` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `category_version`; - -CREATE TABLE `category_version` ( - `id` int(11) NOT NULL, - `parent` int(11) NOT NULL DEFAULT '0', - `visible` tinyint(4) NOT NULL, - `position` int(11) NOT NULL, - `default_template_id` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`,`version`), - CONSTRAINT `category_version_FK_1` FOREIGN KEY (`id`) REFERENCES `category` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `category_version` VALUES("1","0","1","1","","2017-02-28 18:48:43","2017-02-28 18:48:43","1","2017-02-28 18:48:43",""); -INSERT INTO `category_version` VALUES("1","0","1","1","1","2017-02-28 18:48:43","2017-03-01 16:06:11","2","2017-03-01 16:06:11",""); -INSERT INTO `category_version` VALUES("2","0","1","2","","2017-03-01 12:46:30","2017-03-01 12:46:30","1","2017-03-01 12:46:30",""); -INSERT INTO `category_version` VALUES("2","0","1","2","1","2017-03-01 12:46:30","2017-03-01 16:06:32","2","2017-03-01 16:06:32",""); -INSERT INTO `category_version` VALUES("3","0","1","3","","2017-03-01 12:46:47","2017-03-01 12:46:47","1","2017-03-01 12:46:47",""); -INSERT INTO `category_version` VALUES("3","0","1","3","1","2017-03-01 12:46:47","2017-03-01 16:06:39","2","2017-03-01 16:06:39",""); -INSERT INTO `category_version` VALUES("4","0","1","4","","2017-03-01 12:46:56","2017-03-01 12:46:56","1","2017-03-01 12:46:56",""); -INSERT INTO `category_version` VALUES("4","0","1","5","","2017-03-01 12:46:56","2017-03-01 12:47:29","2","2017-03-01 12:47:29",""); -INSERT INTO `category_version` VALUES("4","0","1","5","2","2017-03-01 12:46:56","2017-03-01 16:07:33","3","2017-03-01 16:07:33",""); -INSERT INTO `category_version` VALUES("5","0","1","5","","2017-03-01 12:47:12","2017-03-01 12:47:12","1","2017-03-01 12:47:12",""); -INSERT INTO `category_version` VALUES("5","0","1","4","","2017-03-01 12:47:12","2017-03-01 12:47:29","2","2017-03-01 12:47:29",""); -INSERT INTO `category_version` VALUES("5","0","1","4","1","2017-03-01 12:47:12","2017-03-01 16:06:45","3","2017-03-01 16:06:45",""); -INSERT INTO `category_version` VALUES("6","1","1","1","","2017-03-01 16:03:45","2017-03-01 16:03:45","1","2017-03-01 16:03:45",""); -INSERT INTO `category_version` VALUES("6","1","1","1","1","2017-03-01 16:03:45","2017-03-01 16:07:42","2","2017-03-01 16:07:42",""); -INSERT INTO `category_version` VALUES("7","1","1","2","","2017-03-01 16:07:52","2017-03-01 16:07:52","1","2017-03-01 16:07:52",""); -INSERT INTO `category_version` VALUES("7","1","1","2","1","2017-03-01 16:07:52","2017-03-01 16:07:57","2","2017-03-01 16:07:57",""); -INSERT INTO `category_version` VALUES("8","1","1","3","","2017-03-01 16:08:15","2017-03-01 16:08:15","1","2017-03-01 16:08:15",""); -INSERT INTO `category_version` VALUES("8","1","1","3","1","2017-03-01 16:08:15","2017-03-01 16:08:19","2","2017-03-01 16:08:19",""); -INSERT INTO `category_version` VALUES("9","1","1","4","","2017-03-01 16:08:27","2017-03-01 16:08:27","1","2017-03-01 16:08:27",""); -INSERT INTO `category_version` VALUES("9","1","1","4","1","2017-03-01 16:08:27","2017-03-01 16:08:31","2","2017-03-01 16:08:31",""); -INSERT INTO `category_version` VALUES("10","1","1","5","","2017-03-01 16:08:40","2017-03-01 16:08:40","1","2017-03-01 16:08:40",""); -INSERT INTO `category_version` VALUES("10","1","1","5","1","2017-03-01 16:08:40","2017-03-01 16:08:45","2","2017-03-01 16:08:45",""); -INSERT INTO `category_version` VALUES("11","0","1","6","","2017-05-23 12:44:55","2017-05-23 12:44:55","1","2017-05-23 12:44:55",""); -INSERT INTO `category_version` VALUES("11","0","1","6","3","2017-05-23 12:44:55","2017-05-23 12:45:13","2","2017-05-23 12:45:13",""); -INSERT INTO `category_version` VALUES("11","0","0","6","3","2017-05-23 12:44:55","2017-06-04 09:20:13","3","2017-06-04 09:20:13",""); -INSERT INTO `category_version` VALUES("11","0","1","6","3","2017-05-23 12:44:55","2017-06-04 09:23:41","4","2017-06-04 09:23:41",""); - - - -DROP TABLE `config`; - -CREATE TABLE `config` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(255) NOT NULL, - `value` text NOT NULL, - `secured` tinyint(4) NOT NULL DEFAULT '1', - `hidden` tinyint(4) NOT NULL DEFAULT '1', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=85 DEFAULT CHARSET=utf8; - -INSERT INTO `config` VALUES("1","check-available-stock","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("2","active-front-template","BoutiqueFanny","0","0","2017-02-28 18:20:10","2017-03-02 12:27:27"); -INSERT INTO `config` VALUES("3","active-admin-template","default","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("4","active-pdf-template","BoutiqueFanny","0","0","2017-02-28 18:20:10","2017-03-02 11:55:03"); -INSERT INTO `config` VALUES("5","active-mail-template","BoutiqueFanny","0","0","2017-02-28 18:20:10","2017-03-02 11:55:03"); -INSERT INTO `config` VALUES("6","rewriting_enable","1","0","0","2017-02-28 18:20:10","2017-05-23 12:57:10"); -INSERT INTO `config` VALUES("7","imagine_graphic_driver","gd","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("8","default_images_quality_percent","75","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("9","original_image_delivery_mode","symlink","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("10","original_document_delivery_mode","symlink","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("11","images_library_path","local/media/images","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("12","documents_library_path","local/media/documents","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("13","image_cache_dir_from_web_root","cache/images","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("14","document_cache_dir_from_web_root","cache/documents","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("15","page_not_found_view","404.html","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("16","obsolete_rewriten_url_view","obsolete-rewritten-url","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("17","use_tax_free_amounts","0","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("18","process_assets","1","0","0","2017-02-28 18:20:10","2017-06-03 12:42:01"); -INSERT INTO `config` VALUES("19","thelia_admin_remember_me_cookie_name","tarmcn","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("20","thelia_admin_remember_me_cookie_expiration","2592000","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("21","thelia_customer_remember_me_cookie_name","boutiquefanny","0","0","2017-02-28 18:20:10","2017-03-02 11:55:04"); -INSERT INTO `config` VALUES("22","thelia_customer_remember_me_cookie_expiration","31536000","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("23","url_site","http://www.boutique-fanny.com/thelia233/web","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("24","pdf_invoice_file","invoice","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("25","pdf_delivery_file","delivery","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("26","unknown-flag-path","assets/img/flags/unknown.png","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("27","html_output_trim_level","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("28","default_available_stock","100","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("29","information_folder_id","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("30","terms_conditions_content_id","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("31","allow_negative_stock","0","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("32","cart.use_persistent_cookie","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("33","cart.cookie_name","thelia_cart","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("34","cart.cookie_lifetime","31536060","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("35","session_config.lifetime","0","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("36","session_config.default","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("37","default_lang_without_translation","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("38","store_name","La boutique de Fanny","0","1","2017-02-28 18:20:10","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("39","store_description","Confitures artisanales, préparations en bocaux","0","1","2017-02-28 18:20:10","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("40","store_email","boutiquefanny@free.fr","0","1","2017-02-28 18:20:10","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("41","store_notification_emails","boutiquefanny@free.fr","0","1","2017-02-28 18:20:10","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("42","one_domain_foreach_lang","0","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("43","thelia_version","2.3.3","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("44","thelia_major_version","2","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("45","thelia_minus_version","3","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("46","thelia_release_version","3","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("47","thelia_extra_version","","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("48","front_cart_country_cookie_name","fcccn","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("49","front_cart_country_cookie_expires","2592000","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("50","sitemap_ttl","7200","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("51","feed_ttl","7200","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("52","form_firewall_bruteforce_time_to_wait","10","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("53","form_firewall_time_to_wait","60","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("54","form_firewall_bruteforce_attempts","10","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("55","form_firewall_attempts","6","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("56","form_firewall_active","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("57","allow_slash_ended_uri","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("58","error_message.show","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("59","error_message.page_name","error.html","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("60","customer_change_email","0","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("61","customer_confirm_email","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("62","form.secret","8c42ef09e61010b83d1f1e5ef2e1ea68","0","0","2017-02-28 18:20:10","2017-02-28 18:21:43"); -INSERT INTO `config` VALUES("63","minimum_admin_password_length","4","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("64","enable_lost_admin_password_recovery","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("65","notify_newsletter_subscription","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("66","number_default_results_per_page.product_list","20","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("67","number_default_results_per_page.order_list","20","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("68","number_default_results_per_page.customer_list","20","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("69","store_business_id","SIRET : 79746708100023","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("70","store_phone","","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("71","store_fax","","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("72","store_address1","26 chemin de Marragon","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("73","store_address2","","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("74","store_address3","","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("75","store_zipcode","31600","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("76","store_city","MURET","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("77","store_country","64","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("78","hooksocial_twitter","","0","1","2017-05-12 00:01:12","2017-05-12 00:01:12"); -INSERT INTO `config` VALUES("79","hooksocial_facebook","boutiquedefanny","0","1","2017-05-12 00:01:12","2017-05-12 00:01:12"); -INSERT INTO `config` VALUES("80","hooksocial_google","","0","1","2017-05-12 00:01:12","2017-05-12 00:01:12"); -INSERT INTO `config` VALUES("81","hooksocial_instagram","","0","1","2017-05-12 00:01:12","2017-05-12 00:01:12"); -INSERT INTO `config` VALUES("82","hooksocial_pinterest","","0","1","2017-05-12 00:01:12","2017-05-12 00:01:12"); -INSERT INTO `config` VALUES("83","hooksocial_youtube","","0","1","2017-05-12 00:01:12","2017-05-12 00:01:12"); -INSERT INTO `config` VALUES("84","hooksocial_rss","","0","1","2017-05-12 00:01:12","2017-05-12 00:01:12"); - - - -DROP TABLE `config_i18n`; - -CREATE TABLE `config_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `config_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `config` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `config_i18n` VALUES("1","de_DE","Verfügbaren Lagerbestand prüfen (1) oder ignorieren (0) beim Anzeigen und Änderung der bestellte Menge","","",""); -INSERT INTO `config_i18n` VALUES("1","en_US","Check available product stock (1) or ignore it (0) when displaying and changing ordered quantity","","",""); -INSERT INTO `config_i18n` VALUES("1","es_ES","Comprobar disponibilidad de stock de producto (1) o ignorar (0) cuando se muestra o cambia cantidad en pedido","","",""); -INSERT INTO `config_i18n` VALUES("1","fr_FR","Vérifier la présence de produits en stock (1) ou l\'ignorer (0) lors de l\'affichage et la modification des quantités commandées","","",""); -INSERT INTO `config_i18n` VALUES("2","de_DE","Name der aktiven Front Office Template","","",""); -INSERT INTO `config_i18n` VALUES("2","en_US","Name of the active front-office template","","",""); -INSERT INTO `config_i18n` VALUES("2","es_ES","Nombre de la plantilla activa de recepción","","",""); -INSERT INTO `config_i18n` VALUES("2","fr_FR","Nom du modèle de front-office actif","","",""); -INSERT INTO `config_i18n` VALUES("3","de_DE","Name der aktiven Back Office Template","","",""); -INSERT INTO `config_i18n` VALUES("3","en_US","Name of the active back-office template","","",""); -INSERT INTO `config_i18n` VALUES("3","es_ES","Nombe de la plantilla del administrador activo","","",""); -INSERT INTO `config_i18n` VALUES("3","fr_FR","Nom du modèle de back-office actif","","",""); -INSERT INTO `config_i18n` VALUES("4","de_DE","Name der aktiven PDF Template","","",""); -INSERT INTO `config_i18n` VALUES("4","en_US","Name of the active PDF template","","",""); -INSERT INTO `config_i18n` VALUES("4","es_ES","Nombre de la plantilla PDF activa","","",""); -INSERT INTO `config_i18n` VALUES("4","fr_FR","Nom du modèle PDF actif","","",""); -INSERT INTO `config_i18n` VALUES("5","de_DE","Name der aktiven E-Mail Template","","",""); -INSERT INTO `config_i18n` VALUES("5","en_US","Name of the active mailing template","","",""); -INSERT INTO `config_i18n` VALUES("5","es_ES","Nombre de la plantilla de correo activa","","",""); -INSERT INTO `config_i18n` VALUES("5","fr_FR","Nom du modèle d\'e-mail actif","","",""); -INSERT INTO `config_i18n` VALUES("6","de_DE","Aktivieren (1) oder deaktivieren (0) URL Überschreibung","","",""); -INSERT INTO `config_i18n` VALUES("6","en_US","Enable (1) or disable (0) URL rewriting","","",""); -INSERT INTO `config_i18n` VALUES("6","es_ES","Activar(1) o desactivar(0) reescritura de URL","","",""); -INSERT INTO `config_i18n` VALUES("6","fr_FR","Activer (1) ou désactiver (0) la réécriture d\'URL","","",""); -INSERT INTO `config_i18n` VALUES("7","de_DE","Name des Grafik-Treibers, der von der Imagine-Bibliothek verwendet wird (siehe https://imagine.readthedocs.org)","","",""); -INSERT INTO `config_i18n` VALUES("7","en_US","Name of the graphic driver used by the Imagine library (see https://imagine.readthedocs.org)","","",""); -INSERT INTO `config_i18n` VALUES("7","es_ES","Nombre del controlador gráfico usado por la Librería Imagine (ver https://imagine.readthedocs.org)","","",""); -INSERT INTO `config_i18n` VALUES("7","fr_FR","Nom du pilote graphique utilisé par la bibliothèque Imagine (voir https://imagine.readthedocs.org)","","",""); -INSERT INTO `config_i18n` VALUES("8","de_DE","Die Standardqualität (in%) der erzeugten Bilder","","",""); -INSERT INTO `config_i18n` VALUES("8","en_US","The default quality (in %) of the generated images","","",""); -INSERT INTO `config_i18n` VALUES("8","es_ES","La calidad por defecto (en %) de las imágenes generadas","","",""); -INSERT INTO `config_i18n` VALUES("8","fr_FR","La qualité par défaut (en %) dans les images générées","","",""); -INSERT INTO `config_i18n` VALUES("9","de_DE","Wie werden die Originalbilder (volle Auflösung) im Webspace ausgeliefert (symlink or copy)","","",""); -INSERT INTO `config_i18n` VALUES("9","en_US","How original (full resolution) images are delivered in the web space (symlink or copy)","","",""); -INSERT INTO `config_i18n` VALUES("9","es_ES","Cómo se entregan imágenes originales (resolución completa) en el espacio de la web (enlace o copia)","","",""); -INSERT INTO `config_i18n` VALUES("9","fr_FR","Comment les images originales (pleine résolution) sont-elles fournises dans l\'espace web (lien symbolique ou copie)","","",""); -INSERT INTO `config_i18n` VALUES("10","de_DE","Wie werden Dokumentdateien im Webspace (Symlink oder Kopie) ausgeliefert","","",""); -INSERT INTO `config_i18n` VALUES("10","en_US","How document files are delivered in the web space (symlink or copy)","","",""); -INSERT INTO `config_i18n` VALUES("10","es_ES","Cómo los documento son enviados en el espacio de la web (enlace o copia)","","",""); -INSERT INTO `config_i18n` VALUES("10","fr_FR","Comment les documents sont-ils fournis dans l\'espace web (lien symbolique ou copie)","","",""); -INSERT INTO `config_i18n` VALUES("11","de_DE","Pfad zu dem Verzeichnis, in dem Bilder gespeichert sind","","",""); -INSERT INTO `config_i18n` VALUES("11","en_US","Path to the directory where images are stored","","",""); -INSERT INTO `config_i18n` VALUES("11","es_ES","Ruta al directorio donde las imágenes estén guardadas","","",""); -INSERT INTO `config_i18n` VALUES("11","fr_FR","Chemin vers le répertoire où les images sont stockées","","",""); -INSERT INTO `config_i18n` VALUES("12","de_DE","Pfad zu dem Verzeichnis, in dem Dokumente gespeichert sind","","",""); -INSERT INTO `config_i18n` VALUES("12","en_US","Path to the directory where documents are stored","","",""); -INSERT INTO `config_i18n` VALUES("12","es_ES","Ruta al directorio donde los documentos estén guardados","","",""); -INSERT INTO `config_i18n` VALUES("12","fr_FR","Chemin vers le répertoire où sont stockés les documents","","",""); -INSERT INTO `config_i18n` VALUES("13","de_DE","Der Pfad zum Bild-Cache-Verzeichnis in dem Web-Space","","",""); -INSERT INTO `config_i18n` VALUES("13","en_US","The path to the image cache directory in the web space","","",""); -INSERT INTO `config_i18n` VALUES("13","es_ES","La ruta de acceso para el directorio de caché de imagen en el espacio web","","",""); -INSERT INTO `config_i18n` VALUES("13","fr_FR","Chemin vers le répertoire de cache d\'images dans l\'espace web","","",""); -INSERT INTO `config_i18n` VALUES("14","de_DE","Der Pfad zum Dokument-Cache-Verzeichnis in dem Web-Space","","",""); -INSERT INTO `config_i18n` VALUES("14","en_US","The path to the document cache directory in the web space","","",""); -INSERT INTO `config_i18n` VALUES("14","es_ES","La ruta al directorio de caché de documentos en el espacio web","","",""); -INSERT INTO `config_i18n` VALUES("14","fr_FR","Chemin d\'accès au répertoire de cache de documents dans l\'espace web","","",""); -INSERT INTO `config_i18n` VALUES("15","de_DE","Name der Seite 404 (unauffindbar) in dem aktuellen Modell (mit der Dateinamenerweiterung 404.html zum Beispiel)","","",""); -INSERT INTO `config_i18n` VALUES("15","en_US","File name of the 404 (not found) view in the current template (with extension, e.g. 404.html)","","",""); -INSERT INTO `config_i18n` VALUES("15","es_ES","Nombre de archivo de la vista 404 (no encontrado) en la plantilla actual (con la extensión, ej: 404.html)","","",""); -INSERT INTO `config_i18n` VALUES("15","fr_FR","Nom de la page 404 (introuvable) dans le modèle actuel (avec l\'extension, par exemple, 404.html)","","",""); -INSERT INTO `config_i18n` VALUES("16","de_DE","Name des Templates zurückgegeben, wenn eine veraltete (oder inaktive) Produkt-URL aufgerufen wird","","",""); -INSERT INTO `config_i18n` VALUES("16","en_US","Name of the template view returned when an obsolete (or inactive) product URL is invoked","","",""); -INSERT INTO `config_i18n` VALUES("16","es_ES","Nombre de la plantilla regresada cuando se llama una URL obsoleta (o inactiva) de un producto","","",""); -INSERT INTO `config_i18n` VALUES("16","fr_FR","Nom de la page du modèle retournée lorsqu\'une URL obsolète (ou inactive) est invoquée","","",""); -INSERT INTO `config_i18n` VALUES("17","de_DE","Anzeigt und verwendet Preise mit (0) oder ohne (1) Taxen","","",""); -INSERT INTO `config_i18n` VALUES("17","en_US","Display and process prices with (0) or without (1) taxes.","","",""); -INSERT INTO `config_i18n` VALUES("17","es_ES","Mostrar y procesar precios con (0) o sin (1) impuestos.","","",""); -INSERT INTO `config_i18n` VALUES("17","fr_FR","Affiche et traite les prix avec(0) ou sans (1) les taxes","","",""); -INSERT INTO `config_i18n` VALUES("18","de_DE","Template Assets automatisch bei Codeänderungen kompilieren? (1 = ja, 0 = nein)","","",""); -INSERT INTO `config_i18n` VALUES("18","en_US","Compile templates assets automatically upon asset source change (1 = yes, 0 = no)","","",""); -INSERT INTO `config_i18n` VALUES("18","es_ES","Compilar las plantillas automáticamente en cada cambio de código fuente (1 = sí, 2 = no)","","",""); -INSERT INTO `config_i18n` VALUES("18","fr_FR","Compiler les resources du modèle actif à chaque changement (1 = oui, 2 = non)","","",""); -INSERT INTO `config_i18n` VALUES("19","de_DE","Name des Cookies \"Remember me\" für die Administratoren","","",""); -INSERT INTO `config_i18n` VALUES("19","en_US","\"Remember me\" cookie name for administration users","","",""); -INSERT INTO `config_i18n` VALUES("19","es_ES","Nombre de la cookie \"Recordarme\" para los usuarios de administración","","",""); -INSERT INTO `config_i18n` VALUES("19","fr_FR","Nom du cookie \"Remember me\" pour les utilisateurs d\'administration","","",""); -INSERT INTO `config_i18n` VALUES("20","de_DE","Ablaufzeit in Sekunden des Cookies \"Remember me\" für die Administratoren","","",""); -INSERT INTO `config_i18n` VALUES("20","en_US","\"Remember me\" cookie expiration time, in seconds, for administration users","","",""); -INSERT INTO `config_i18n` VALUES("20","es_ES","Fecha de caducidad de cookie \"recuerdame\", en segundos, para los usuarios de la administración","","",""); -INSERT INTO `config_i18n` VALUES("20","fr_FR","Délai d\'expiration du cookie \"Remember me\", en secondes, pour les utilisateurs d\'administration","","",""); -INSERT INTO `config_i18n` VALUES("21","de_DE","Name des Cookies \"Remember me\" für die Kunden","","",""); -INSERT INTO `config_i18n` VALUES("21","en_US","\"Remember me\" cookie name for customer users","","",""); -INSERT INTO `config_i18n` VALUES("21","es_ES","Nombre de la cookie \"Recordarme\" para los usuarios cliente","","",""); -INSERT INTO `config_i18n` VALUES("21","fr_FR","Nom du cookie \"Remember me\" pour les clients","","",""); -INSERT INTO `config_i18n` VALUES("22","de_DE","Ablaufzeit in Sekunden des Cookies \"Remember me\" für die Kunden","","",""); -INSERT INTO `config_i18n` VALUES("22","en_US","\"Remember me\" cookie expiration time, in seconds, for customer users","","",""); -INSERT INTO `config_i18n` VALUES("22","es_ES","Fecha de caducidad de cookie \"Acuérdate de mi\", en segundos, para los usuarios cliente","","",""); -INSERT INTO `config_i18n` VALUES("22","fr_FR","Délai d\'expiration du cookie \"Remember me\", en secondes, pour les clients","","",""); -INSERT INTO `config_i18n` VALUES("23","de_DE","Shops Basis-URL (zum Beispiel http://www.yourshopdomain.com)","","",""); -INSERT INTO `config_i18n` VALUES("23","en_US","Base URL of the shop (e.g. http://www.yourshopdomain.com)","","",""); -INSERT INTO `config_i18n` VALUES("23","es_ES","Base URL de la tienda (por ejemplo http://www.yourshopdomain.com)","","",""); -INSERT INTO `config_i18n` VALUES("23","fr_FR","URL de base pour la boutique (par exemple http://www.yourshopdomain.com)","","",""); -INSERT INTO `config_i18n` VALUES("24","de_DE","Name der Rechnungsansicht in der aktuellen PDF-Vorlage (ohne Erweiterung)","","",""); -INSERT INTO `config_i18n` VALUES("24","en_US","Name of the invoice view in the current PDF template (without extension)","","",""); -INSERT INTO `config_i18n` VALUES("24","es_ES","Nombre de la vista para la factura en la plantilla PDF actual (sin extensión)","","",""); -INSERT INTO `config_i18n` VALUES("24","fr_FR","Nom de la vue de la facture dans le modèle PDF en cours (sans extension)","","",""); -INSERT INTO `config_i18n` VALUES("25","de_DE","Name der Lieferung Sicht in der aktuellen PDF-Vorlage (ohne Erweiterung)","","",""); -INSERT INTO `config_i18n` VALUES("25","en_US","Name of the delivery view in the current PDF template (without extension)","","",""); -INSERT INTO `config_i18n` VALUES("25","es_ES","Nombre de la vista de entrega en la plantilla PDF actual (sin extensión)","","",""); -INSERT INTO `config_i18n` VALUES("25","fr_FR","Nom de la vue de la livraison dans le modèle PDF en cours (sans extension)","","",""); -INSERT INTO `config_i18n` VALUES("26","de_DE","Der Pfad (relativ zu der Standard-Backoffice-Vorlage) zu dem verwendetes Bild wenn kein Flagge-Bild für ein Land gefunden werden kann","","",""); -INSERT INTO `config_i18n` VALUES("26","en_US","The path (relative to the default back-office template) to the image used when no flag image can be found for a country","","",""); -INSERT INTO `config_i18n` VALUES("26","es_ES","La ruta (relativa a la plantilla de back office por defecto) a la imagen que se utiliza cuando no se puede encontrar ninguna imagen de la bandera para un país","","",""); -INSERT INTO `config_i18n` VALUES("26","fr_FR","Le chemin (par rapport au modèle de back-office par défaut) vers l\'image utilisée lorsque aucune image de drapeau ne peut être trouvée pour un pays","","",""); -INSERT INTO `config_i18n` VALUES("27","de_DE","Whitespace trim Ebene des generierten HTML-Codes (0 = aus, 1 = Mittel, 2 = Maximum)","","",""); -INSERT INTO `config_i18n` VALUES("27","en_US","Whitespace trim level of the generated HTML code (0 = none, 1 = medium, 2 = maximum)","","",""); -INSERT INTO `config_i18n` VALUES("27","es_ES","Espacio en blanco del ajuste nivel del código HTML generado (0 = ninguna, 1 = medio, 2 = máximo)","","",""); -INSERT INTO `config_i18n` VALUES("27","fr_FR","Niveau de découpe des espaces dans le code HTML généré (0 = aucun, 1 = moyen, 2 = maximum)","","",""); -INSERT INTO `config_i18n` VALUES("28","de_DE","Standart verfügbaren Bestand wenn check-available-stock gleich 0.","","",""); -INSERT INTO `config_i18n` VALUES("28","en_US","Default available stock when check-available-stock is set to 0.","","",""); -INSERT INTO `config_i18n` VALUES("28","es_ES","Cuando check-available-stock es 0 stock disponible por defecto.","","",""); -INSERT INTO `config_i18n` VALUES("28","fr_FR","Stock disponible par défaut quand check-available-stock est à 0.","","",""); -INSERT INTO `config_i18n` VALUES("29","de_DE","Die ID des Ordners mit Ihren Informations-Seiten: AGB, Impressum, ...","","",""); -INSERT INTO `config_i18n` VALUES("29","en_US","The ID of the folder containing your information pages : terms, imprint, ...","","",""); -INSERT INTO `config_i18n` VALUES("29","es_ES","El ID de la carpeta que contiene sus páginas de información: términos, impresión,...","","",""); -INSERT INTO `config_i18n` VALUES("29","fr_FR","L\'ID du dossier contenant vos pages d\'informations : CGV, mentions légales, ...","","",""); -INSERT INTO `config_i18n` VALUES("30","de_DE","Ihr \'Allgemeine Geschäftsbedingungen \' ID.","","",""); -INSERT INTO `config_i18n` VALUES("30","en_US","The ID of the \'Terms & Conditions\' content.","","",""); -INSERT INTO `config_i18n` VALUES("30","es_ES","El ID de los contenidos de \'Términos y condiciones\'.","","",""); -INSERT INTO `config_i18n` VALUES("30","fr_FR","L\'ID du contenu de vos \'CGV\'.","","",""); -INSERT INTO `config_i18n` VALUES("31","de_DE","Negativen Lagerbestand erlauben (1) oder nicht (0)","","",""); -INSERT INTO `config_i18n` VALUES("31","en_US","Allow negative product stock (1) or not (0)","","",""); -INSERT INTO `config_i18n` VALUES("31","es_ES","Permitir valores negativos producto (1) o no (0)","","",""); -INSERT INTO `config_i18n` VALUES("31","fr_FR","Autoriser un stock négatif sur les produits (1) ou pas (0, défaut)","","",""); -INSERT INTO `config_i18n` VALUES("32","de_DE","Ein dauerhaftes Cookie verwenden, um den Kundes-Warenkorb zu merken","","",""); -INSERT INTO `config_i18n` VALUES("32","en_US","Use a persistent cookie to keep track of customer cart","","",""); -INSERT INTO `config_i18n` VALUES("32","es_ES","Usa una \'cookie\' persistente para mantener el trayecto del carrito del cliente","","",""); -INSERT INTO `config_i18n` VALUES("32","fr_FR","Utiliser un cookie persistant pour mémoriser le panier du client","","",""); -INSERT INTO `config_i18n` VALUES("33","de_DE","Name der Warenkorb-Cookie","","",""); -INSERT INTO `config_i18n` VALUES("33","en_US","Name of the cart cookie","","",""); -INSERT INTO `config_i18n` VALUES("33","es_ES","Nombre de la cookie del carrito","","",""); -INSERT INTO `config_i18n` VALUES("33","fr_FR","Nom du cookie de stockage du panier","","",""); -INSERT INTO `config_i18n` VALUES("34","de_DE","Dauer der Warenkorb-Cookie in dem Kunden-Browser, in Sekunden","","",""); -INSERT INTO `config_i18n` VALUES("34","en_US","Life time of the cart cookie in the customer browser, in seconds","","",""); -INSERT INTO `config_i18n` VALUES("34","es_ES","Tiempo de vida de la cookie del carro en el navegador del cliente, en segundos","","",""); -INSERT INTO `config_i18n` VALUES("34","fr_FR","Durée de vie du cookie du panier dans le navigateur du client, en secondes","","",""); -INSERT INTO `config_i18n` VALUES("35","de_DE","Dauer der Session-Cookie in dem Kunden-Browser, in Sekunden","","",""); -INSERT INTO `config_i18n` VALUES("35","en_US","Life time of the session cookie in the customer browser, in seconds","","",""); -INSERT INTO `config_i18n` VALUES("35","es_ES","Tiempo de vida de la cookie de la sesión en el navegador del cliente, en segundos","","",""); -INSERT INTO `config_i18n` VALUES("35","fr_FR","Durée de vie du cookie de la session dans le navigateur du client, en secondes","","",""); -INSERT INTO `config_i18n` VALUES("36","de_DE","Die Session Standartkonfiguration lassen","","",""); -INSERT INTO `config_i18n` VALUES("36","en_US","Leave the default configuration of session","","",""); -INSERT INTO `config_i18n` VALUES("36","es_ES","Abandonde la configuración predeterminada de la sesión","","",""); -INSERT INTO `config_i18n` VALUES("36","fr_FR","Laisser la configuration par défaut de la session","","",""); -INSERT INTO `config_i18n` VALUES("37","de_DE","Standartsprache ohne Übersetzung","","",""); -INSERT INTO `config_i18n` VALUES("37","en_US","Default lang without translation","","",""); -INSERT INTO `config_i18n` VALUES("37","es_ES","Lenguaje por defecto sin traducción","","",""); -INSERT INTO `config_i18n` VALUES("37","fr_FR","Langue par défaut sans traduction","","",""); -INSERT INTO `config_i18n` VALUES("52","de_DE","[Firewall/Bruteforce] Wartezeit zwischen X Versuche","","",""); -INSERT INTO `config_i18n` VALUES("52","en_US","[Firewall/Bruteforce] Time to wait between X attempts","","",""); -INSERT INTO `config_i18n` VALUES("52","es_ES","[Firewall/Bruteforce] Tiempo de espera entre X intentos","","",""); -INSERT INTO `config_i18n` VALUES("52","fr_FR","[Pare-feu/Bruteforce] Temps à attendre entre X essais","","",""); -INSERT INTO `config_i18n` VALUES("53","de_DE","[Firewall] Wartezeit zwischen X Versuche","","",""); -INSERT INTO `config_i18n` VALUES("53","en_US","[Firewall] Time to wait between X attempts","","",""); -INSERT INTO `config_i18n` VALUES("53","es_ES","[Firewall] Tiempo de espera entre X intentos","","",""); -INSERT INTO `config_i18n` VALUES("53","fr_FR","[Pare-feu] Temps à attendre entre X essais","","",""); -INSERT INTO `config_i18n` VALUES("54","de_DE","[Firewall/Bruteforce] Anzahl der erlaubten Versuche","","",""); -INSERT INTO `config_i18n` VALUES("54","en_US","[Firewall/Bruteforce] Number of allowed attemps","","",""); -INSERT INTO `config_i18n` VALUES("54","es_ES","[Firewall/Bruteforce] Número de intentos permitidos","","",""); -INSERT INTO `config_i18n` VALUES("54","fr_FR","[Pare-feu/Bruteforce] Nombre de tentatives autorisées","","",""); -INSERT INTO `config_i18n` VALUES("55","de_DE","[Firewall] Anzahl der erlaubten Versuche","","",""); -INSERT INTO `config_i18n` VALUES("55","en_US","[Firewall] Number of allowed attemps","","",""); -INSERT INTO `config_i18n` VALUES("55","es_ES","[Firewall] Número de intentos permitidos","","",""); -INSERT INTO `config_i18n` VALUES("55","fr_FR","[Pare-feu] Nombre de tentatives autorisées","","",""); -INSERT INTO `config_i18n` VALUES("56","de_DE","[Firewall] Firewall aktivieren","","",""); -INSERT INTO `config_i18n` VALUES("56","en_US","[Firewall] Activate the firewall","","",""); -INSERT INTO `config_i18n` VALUES("56","es_ES","[Firewall] Activar el firewall","","",""); -INSERT INTO `config_i18n` VALUES("56","fr_FR","[Pare-feu] Activer le pare-feu","","",""); -INSERT INTO `config_i18n` VALUES("57","de_DE","URI mit Slash beendet erlauben","","",""); -INSERT INTO `config_i18n` VALUES("57","en_US","Allow slash ended uri","","",""); -INSERT INTO `config_i18n` VALUES("57","es_ES","Permitir barra de fín de url","","",""); -INSERT INTO `config_i18n` VALUES("57","fr_FR","Autoriser les URI terminées par un slash","","",""); -INSERT INTO `config_i18n` VALUES("58","de_DE","Fehlermeldung zeigen anstatt einer weißen Seite im Falle eines eines Serverfehlers","","",""); -INSERT INTO `config_i18n` VALUES("58","en_US","Show error message instead of a white page on a server error","","",""); -INSERT INTO `config_i18n` VALUES("58","es_ES","Mostrar mensaje de error en lugar de una página en blanco cuando ocurre un error de servidor","","",""); -INSERT INTO `config_i18n` VALUES("58","fr_FR","Afficher un message d\'erreur à la place d\'une page blanche lors d\'une erreur serveur","","",""); -INSERT INTO `config_i18n` VALUES("59","de_DE","Dateiname der Fehlerseite","","",""); -INSERT INTO `config_i18n` VALUES("59","en_US","Filename of the error page","","",""); -INSERT INTO `config_i18n` VALUES("59","es_ES","Nombre de archivo de la página de error","","",""); -INSERT INTO `config_i18n` VALUES("59","fr_FR","Nom du fichier de la page d\'erreur","","",""); -INSERT INTO `config_i18n` VALUES("60","de_DE","Den Kunden erlauben ihre E-Mail-Adresse zu ändern. 1 für Ja, 0 für Nein","","",""); -INSERT INTO `config_i18n` VALUES("60","en_US","Allow customers to change their email. 1 for yes, 0 for no","","",""); -INSERT INTO `config_i18n` VALUES("60","es_ES","Permitir a los clientes cambiar su correo electrónico. 1 para sí, 0 para no","","",""); -INSERT INTO `config_i18n` VALUES("60","fr_FR","Permettre aux utilisateurs de changer leur email. 1 pour oui, 0 pour non","","",""); -INSERT INTO `config_i18n` VALUES("61","de_DE","Den Kunden fragen, ihre E-Mail-Adresse zu bestätigen. 1 für Jan, 0 für Nein","","",""); -INSERT INTO `config_i18n` VALUES("61","en_US","Ask the customers to confirm their email, 1 for yes, 0 for no","","",""); -INSERT INTO `config_i18n` VALUES("61","es_ES","Preguntar al cliente para confirmar su correo electrónico, 1 para sí, 0 no","","",""); -INSERT INTO `config_i18n` VALUES("61","fr_FR","Demander aux clients de confirmer leur email. 1 pour oui, 0 pour non","","",""); -INSERT INTO `config_i18n` VALUES("62","de_DE","Geheimer Schlüssel für Formular CSRF-token","","",""); -INSERT INTO `config_i18n` VALUES("62","en_US","Secret key for form CSRF token","","",""); -INSERT INTO `config_i18n` VALUES("62","es_ES","Clave secreta para el token CSRF del formulario","","",""); -INSERT INTO `config_i18n` VALUES("62","fr_FR","Clé secrète pour le jeton CSRF des formulaires","","",""); -INSERT INTO `config_i18n` VALUES("63","de_DE","","","",""); -INSERT INTO `config_i18n` VALUES("63","en_US","The minimum length required for an administrator password","","",""); -INSERT INTO `config_i18n` VALUES("63","es_ES","La longitud mínima de la contraseña de administrador","","",""); -INSERT INTO `config_i18n` VALUES("63","fr_FR","La longueur minimale requise pour un mot de passe administrateur","","",""); -INSERT INTO `config_i18n` VALUES("64","de_DE","","","",""); -INSERT INTO `config_i18n` VALUES("64","en_US","Allow an administrator to recreate a lost password (1 = yes, 0 = no)","","",""); -INSERT INTO `config_i18n` VALUES("64","es_ES","Permite a un administrador recrear una contraseña perdida (1 = sí, 0 = no)","","",""); -INSERT INTO `config_i18n` VALUES("64","fr_FR","Permettre à un administrateur de recréer un mot de passe perdu (1 = Oui, 0 = non)","","",""); -INSERT INTO `config_i18n` VALUES("65","de_DE","","","",""); -INSERT INTO `config_i18n` VALUES("65","en_US","Send a confirmation email to newsletter subscribers (1 = yes, 0 = no)","","",""); -INSERT INTO `config_i18n` VALUES("65","es_ES","Enviar un correo de confirmación a los suscriptores del boletín (1 = sí, 0 = no)","","",""); -INSERT INTO `config_i18n` VALUES("65","fr_FR","Envoyer un email de confirmation aux abonnés de la newsletter (1 = Oui, 0 = non)","","",""); -INSERT INTO `config_i18n` VALUES("66","de_DE","","","",""); -INSERT INTO `config_i18n` VALUES("66","en_US","Number by default of results per page for product list","","",""); -INSERT INTO `config_i18n` VALUES("66","es_ES","Número predeterminado de resultados por página para la lista de productos","","",""); -INSERT INTO `config_i18n` VALUES("66","fr_FR","Nombre par défaut de résultats par page pour la liste des produits","","",""); -INSERT INTO `config_i18n` VALUES("67","de_DE","","","",""); -INSERT INTO `config_i18n` VALUES("67","en_US","Number by default of results per page for order list","","",""); -INSERT INTO `config_i18n` VALUES("67","es_ES","Número predeterminado de resultados por página para la lista de pedidos","","",""); -INSERT INTO `config_i18n` VALUES("67","fr_FR","Nombre par défaut de résultats par page pour la liste des commandes","","",""); -INSERT INTO `config_i18n` VALUES("68","de_DE","","","",""); -INSERT INTO `config_i18n` VALUES("68","en_US","Number by default of results per page for customer list","","",""); -INSERT INTO `config_i18n` VALUES("68","es_ES","Número predeterminado de resultados por página para la lista de clientes","","",""); -INSERT INTO `config_i18n` VALUES("68","fr_FR","Nombre par défaut de résultats par page pour la liste des clients","","",""); - - - -DROP TABLE `content`; - -CREATE TABLE `content` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `visible` tinyint(4) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `content` VALUES("1","1","1","2017-05-11 23:49:17","2017-05-12 00:05:14","2","2017-05-11 23:49:17",""); - - - -DROP TABLE `content_document`; - -CREATE TABLE `content_document` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `content_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_content_document_content_id` (`content_id`), - CONSTRAINT `fk_content_document_content_id` FOREIGN KEY (`content_id`) REFERENCES `content` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `content_document_i18n`; - -CREATE TABLE `content_document_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `content_document_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `content_document` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `content_folder`; - -CREATE TABLE `content_folder` ( - `content_id` int(11) NOT NULL, - `folder_id` int(11) NOT NULL, - `default_folder` tinyint(1) DEFAULT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`content_id`,`folder_id`), - KEY `idx_content_folder_content_id` (`content_id`), - KEY `idx_content_folder_folder_id` (`folder_id`), - KEY `idx_content_folder_default` (`default_folder`), - CONSTRAINT `fk_content_folder_content_id` FOREIGN KEY (`content_id`) REFERENCES `content` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_content_folder_folder_id` FOREIGN KEY (`folder_id`) REFERENCES `folder` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `content_folder` VALUES("1","1","1","1","2017-05-11 23:49:17","2017-05-11 23:49:17"); - - - -DROP TABLE `content_i18n`; - -CREATE TABLE `content_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - `meta_title` varchar(255) DEFAULT NULL, - `meta_description` text, - `meta_keywords` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `content_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `content` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `content_i18n` VALUES("1","fr_FR","Nos pots","Afin que vous vous rendiez compte de la taille des différents pots que nous proposons, voici à quoi ressemblent nos conditionnements.\n\n* Les poids de nos pots sont indiqués à titre indicatif et peuvent varier en fonction du contenu.\nContenance Poids net moyen Hauteur Diamètre\n41ml 45g 55mm 45mm\n106ml 115g 75mm 50mm\n228ml 245g 88mm 68mm\n375ml 430g 122mm 70mm","","","","",""); - - - -DROP TABLE `content_image`; - -CREATE TABLE `content_image` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `content_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_content_image_content_id` (`content_id`), - KEY `idx_content_image_content_id_position` (`content_id`,`position`), - CONSTRAINT `fk_content_image_content_id` FOREIGN KEY (`content_id`) REFERENCES `content` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `content_image_i18n`; - -CREATE TABLE `content_image_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `content_image_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `content_image` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `content_version`; - -CREATE TABLE `content_version` ( - `id` int(11) NOT NULL, - `visible` tinyint(4) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`,`version`), - CONSTRAINT `content_version_FK_1` FOREIGN KEY (`id`) REFERENCES `content` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `content_version` VALUES("1","1","","2017-05-11 23:49:17","2017-05-11 23:49:17","1","2017-05-11 23:49:17",""); -INSERT INTO `content_version` VALUES("1","1","1","2017-05-11 23:49:17","2017-05-11 23:49:17","2","2017-05-11 23:49:17",""); - - - -DROP TABLE `country`; - -CREATE TABLE `country` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `visible` tinyint(4) NOT NULL DEFAULT '0', - `isocode` varchar(4) NOT NULL, - `isoalpha2` varchar(2) DEFAULT NULL, - `isoalpha3` varchar(4) DEFAULT NULL, - `has_states` tinyint(4) DEFAULT '0', - `need_zip_code` tinyint(4) DEFAULT '0', - `zip_code_format` varchar(20) DEFAULT NULL, - `by_default` tinyint(4) DEFAULT '0', - `shop_country` tinyint(1) NOT NULL DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_country_by_default` (`by_default`) -) ENGINE=InnoDB AUTO_INCREMENT=273 DEFAULT CHARSET=utf8; - -INSERT INTO `country` VALUES("1","0","4","AF","AFG","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("2","0","710","ZA","ZAF","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("3","0","8","AL","ALB","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("4","0","12","DZ","DZA","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("5","0","276","DE","DEU","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("6","0","20","AD","AND","0","1","CNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("7","0","24","AO","AGO","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("8","0","28","AG","ATG","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("9","0","682","SA","SAU","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("10","0","32","AR","ARG","1","1","LNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("11","0","51","AM","ARM","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("12","0","36","AU","AUS","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("13","0","40","AT","AUT","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("14","0","31","AZ","AZE","0","1","CNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("15","0","44","BS","BHS","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("16","0","48","BH","BHR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("17","0","50","BD","BGD","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("18","0","52","BB","BRB","0","1","CNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("19","0","585","PW","PLW","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("20","0","56","BE","BEL","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("21","0","84","BL","BLZ","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("22","0","204","BJ","BEN","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("23","0","64","BT","BTN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("24","0","112","BY","BLR","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("25","0","104","MM","MMR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("26","0","68","BO","BOL","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("27","0","70","BA","BIH","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("28","0","72","BW","BWA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("29","0","76","BR","BRA","0","1","NNNNN-NNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("30","0","96","BN","BRN","0","1","LLNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("31","0","100","BG","BGR","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("32","0","854","BF","BFA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("33","0","108","BI","BDI","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("34","0","116","KH","KHM","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("35","0","120","CM","CMR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("37","0","132","CV","CPV","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("38","0","152","CL","CHL","0","1","NNN-NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("39","0","156","CN","CHN","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("40","0","196","CY","CYP","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("41","0","170","CO","COL","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("42","0","174","KM","COM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("43","0","178","CG","COG","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("44","0","184","CK","COK","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("45","0","408","KP","PRK","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("46","0","410","KR","KOR","0","1","NNN-NNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("47","0","188","CR","CRI","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("48","0","384","CI","CIV","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("49","0","191","HR","HRV","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("50","0","192","CU","CUB","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("51","0","208","DK","DNK","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("52","0","262","DJ","DJI","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("53","0","212","DM","DMA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("54","0","818","EG","EGY","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("55","0","784","AE","ARE","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("56","0","218","EC","ECU","0","1","CNNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("57","0","232","ER","ERI","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("58","0","724","ES","ESP","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("59","0","233","EE","EST","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("61","0","231","ET","ETH","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("62","0","242","FJ","FJI","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("63","0","246","FI","FIN","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("64","1","250","FR","FRA","0","1","NNNNN","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("65","0","266","GA","GAB","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("66","0","270","GM","GMB","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("67","0","268","GE","GEO","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("68","0","288","GH","GHA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("69","0","300","GR","GRC","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("70","0","308","GD","GRD","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("71","0","320","GT","GTM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("72","0","324","GN","GIN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("73","0","624","GW","GNB","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("74","0","226","GQ","GNQ","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("75","0","328","GY","GUY","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("76","0","332","HT","HTI","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("77","0","340","HN","HND","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("78","0","348","HU","HUN","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("79","0","356","IN","IND","0","1","NNN NNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("80","0","360","ID","IDN","1","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("81","0","364","IR","IRN","0","1","NNNNN-NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("82","0","368","IQ","IRQ","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("83","0","372","IE","IRL","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("84","0","352","IS","ISL","0","1","NNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("85","0","376","IL","ISR","0","1","NNNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("86","0","380","IT","ITA","1","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("87","0","388","JM","JAM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("88","0","392","JP","JPN","1","1","NNN-NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("89","0","400","JO","JOR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("90","0","398","KZ","KAZ","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("91","0","404","KE","KEN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("92","0","417","KG","KGZ","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("93","0","296","KI","KIR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("94","0","414","KW","KWT","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("95","0","418","LA","LAO","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("96","0","426","LS","LSO","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("97","0","428","LV","LVA","0","1","C-NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("98","0","422","LB","LBN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("99","0","430","LR","LBR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("100","0","343","LY","LBY","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("101","0","438","LI","LIE","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("102","0","440","LT","LTU","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("103","0","442","LU","LUX","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("104","0","807","MK","MKD","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("105","0","450","MG","MDG","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("106","0","458","MY","MYS","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("107","0","454","MW","MWI","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("108","0","462","MV","MDV","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("109","0","466","ML","MLI","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("110","0","470","MT","MLT","0","1","LLL NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("111","0","504","MA","MAR","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("112","0","584","MH","MHL","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("113","0","480","MU","MUS","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("114","0","478","MR","MRT","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("115","0","484","MX","MEX","1","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("116","0","583","FM","FSM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("117","0","498","MD","MDA","0","1","C-NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("118","0","492","MC","MCO","0","1","980NN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("119","0","496","MN","MNG","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("120","0","508","MZ","MOZ","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("121","0","516","NA","NAM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("122","0","520","NR","NRU","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("123","0","524","NP","NPL","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("124","0","558","NI","NIC","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("125","0","562","NE","NER","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("126","0","566","NG","NGA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("127","0","570","NU","NIU","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("128","0","578","NO","NOR","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("129","0","554","NZ","NZL","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("130","0","512","OM","OMN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("131","0","800","UG","UGA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("132","0","860","UZ","UZB","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("133","0","586","PK","PAK","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("134","0","591","PA","PAN","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("135","0","598","PG","PNG","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("136","0","600","PY","PRY","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("137","0","528","NL","NLD","0","1","NNNN LL","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("138","0","604","PE","PER","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("139","0","608","PH","PHL","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("140","0","616","PL","POL","0","1","NN-NNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("141","0","620","PT","PRT","0","1","NNNN-NNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("142","0","634","QA","QAT","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("143","0","140","CF","CAF","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("144","0","214","DO","DOM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("145","0","203","CZ","CZE","0","1","NNN NN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("146","0","642","RO","ROU","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("147","0","826","GB","GBR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("148","0","643","RU","RUS","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("149","0","646","RW","RWA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("150","0","659","KN","KNA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("151","0","662","LC","LCA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("152","0","674","SM","SMR","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("153","0","670","VC","VCT","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("154","0","90","SB","SLB","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("155","0","222","SV","SLV","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("156","0","882","WS","WSM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("157","0","678","ST","STP","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("158","0","686","SN","SEN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("159","0","690","SC","SYC","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("160","0","694","SL","SLE","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("161","0","702","SG","SGP","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("162","0","703","SK","SVK","0","1","NNN NN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("163","0","705","SI","SVN","0","1","C-NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("164","0","706","SO","SOM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("165","0","729","SD","SDN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("166","0","144","LK","LKA","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("167","0","752","SE","SWE","0","1","NNN NN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("168","0","756","CH","CHE","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("169","0","740","SR","SUR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("170","0","748","SZ","SWZ","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("171","0","760","SY","SYR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("172","0","762","TJ","TJK","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("173","0","834","TZ","TZA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("174","0","148","TD","TCD","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("175","0","764","TH","THA","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("176","0","768","TG","TGO","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("177","0","776","TO","TON","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("178","0","780","TT","TTO","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("179","0","788","TN","TUN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("180","0","795","TM","TKM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("181","0","792","TR","TUR","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("182","0","798","TV","TUV","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("183","0","804","UA","UKR","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("184","0","858","UY","URY","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("185","0","336","VA","VAT","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("186","0","548","VU","VUT","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("187","0","862","VE","VEN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("188","0","704","VN","VNM","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("189","0","887","YE","YEM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("191","0","180","CD","COD","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("192","0","894","ZM","ZMB","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("193","0","716","ZW","ZWE","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("196","0","840","US","USA","1","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("246","0","124","CA","CAN","1","1","LNL NLN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("259","0","312","GP","GLP","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("260","0","254","GF","GUF","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("261","0","474","MQ","MTQ","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("262","0","175","YT","MYT","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("263","0","638","RE","REU","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("264","0","666","PM","SPM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("265","0","540","NC","NCL","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("266","0","258","PF","PYF","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("267","0","876","WF","WLF","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("269","0","344","HK","HKG","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("270","0","652","BL","BLM","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("271","0","663","MF","MAF","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("272","0","260","TF","ATF","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `country_area`; - -CREATE TABLE `country_area` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `country_id` int(11) NOT NULL, - `state_id` int(11) DEFAULT NULL, - `area_id` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `country_area_area_id_idx` (`area_id`), - KEY `fk_country_area_country_id_idx` (`country_id`), - KEY `fk_country_area_state_id_idx` (`state_id`), - CONSTRAINT `fk_country_area_area_id` FOREIGN KEY (`area_id`) REFERENCES `area` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_country_area_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=405 DEFAULT CHARSET=utf8; - -INSERT INTO `country_area` VALUES("1","1","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("2","2","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("3","3","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("4","4","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("5","5","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("6","6","","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("7","7","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("8","8","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("9","9","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("10","10","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("11","11","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("12","12","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("13","13","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("14","14","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("15","15","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("16","16","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("17","17","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("18","18","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("19","19","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("20","20","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("21","21","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("22","22","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("23","24","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("24","25","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("25","26","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("26","27","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("27","28","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("28","29","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("29","30","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("30","31","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("31","32","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("32","33","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("33","34","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("34","35","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("35","37","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("36","38","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("37","39","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("38","40","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("39","41","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("40","42","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("41","43","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("42","44","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("43","45","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("44","46","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("45","47","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("46","48","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("47","49","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("48","50","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("49","51","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("50","52","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("51","53","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("52","54","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("53","55","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("54","56","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("55","57","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("56","58","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("57","59","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("58","61","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("59","62","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("60","63","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("61","64","","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("62","65","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("63","66","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("64","67","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("65","68","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("66","69","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("67","70","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("68","71","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("69","72","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("70","73","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("71","74","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("72","75","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("73","76","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("74","77","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("75","78","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("76","79","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("77","80","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("78","81","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("79","82","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("80","83","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("81","84","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("82","85","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("83","86","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("84","87","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("85","88","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("86","89","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("87","90","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("88","91","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("89","92","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("90","93","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("91","94","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("92","95","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("93","96","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("94","97","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("95","98","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("96","99","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("97","100","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("98","101","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("99","102","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("100","103","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("101","104","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("102","105","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("103","106","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("104","107","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("105","108","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("106","109","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("107","110","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("108","111","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("109","112","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("110","113","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("111","114","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("112","115","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("113","117","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("114","118","","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("115","119","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("116","120","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("117","121","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("118","122","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("119","123","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("120","124","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("121","125","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("122","126","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("123","128","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("124","129","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("125","130","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("126","131","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("127","132","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("128","133","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("129","134","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("130","135","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("131","136","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("132","137","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("133","138","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("134","139","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("135","140","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("136","141","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("137","142","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("138","143","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("139","144","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("140","145","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("141","146","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("142","147","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("143","148","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("144","149","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("145","150","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("146","151","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("147","152","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("148","153","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("149","154","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("150","156","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("151","157","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("152","158","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("153","159","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("154","160","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("155","161","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("156","162","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("157","163","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("158","164","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("159","165","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("160","166","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("161","167","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("162","168","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("163","169","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("164","170","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("165","171","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("166","172","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("167","173","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("168","174","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("169","175","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("170","176","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("171","177","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("172","178","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("173","179","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("174","180","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("175","181","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("176","182","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("177","183","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("178","184","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("179","185","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("180","186","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("181","187","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("182","188","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("183","189","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("184","191","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("185","192","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("186","193","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("187","196","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("188","246","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("189","259","","5","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("190","260","","5","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("191","261","","5","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("192","262","","5","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("193","263","","5","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("194","264","","5","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("195","265","","6","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("196","266","","6","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("197","267","","6","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("198","269","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("199","270","","5","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("200","271","","5","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("201","272","","6","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("202","1","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("203","2","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("204","3","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("205","4","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("206","5","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("207","6","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("208","7","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("209","8","","8","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("210","9","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("211","10","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("212","11","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("213","12","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("214","13","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("215","14","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("216","15","","8","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("217","16","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("218","17","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("219","18","","8","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("220","19","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("221","20","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("222","21","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("223","22","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("224","23","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("225","24","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("226","25","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("227","26","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("228","27","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("229","28","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("230","29","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("231","30","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("232","31","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("233","32","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("234","33","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("235","34","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("236","35","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("237","37","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("238","38","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("239","39","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("240","40","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("241","41","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("242","42","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("243","43","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("244","44","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("245","45","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("246","46","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("247","47","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("248","48","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("249","49","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("250","50","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("251","51","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("252","52","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("253","53","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("254","54","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("255","55","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("256","56","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("257","57","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("258","58","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("259","59","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("260","61","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("261","62","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("262","63","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("263","64","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("264","65","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("265","66","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("266","67","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("267","68","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("268","69","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("269","70","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("270","71","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("271","72","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("272","73","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("273","74","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("274","75","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("275","76","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("276","77","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("277","78","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("278","79","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("279","80","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("280","81","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("281","82","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("282","83","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("283","84","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("284","85","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("285","86","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("286","87","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("287","88","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("288","89","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("289","90","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("290","91","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("291","92","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("292","93","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("293","94","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("294","95","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("295","96","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("296","97","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("297","98","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("298","99","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("299","100","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("300","101","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("301","102","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("302","103","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("303","104","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("304","105","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("305","106","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("306","107","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("307","108","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("308","109","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("309","110","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("310","111","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("311","112","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("312","113","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("313","114","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("314","115","","8","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("315","116","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("316","117","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("317","118","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("318","119","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("319","120","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("320","121","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("321","122","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("322","123","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("323","124","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("324","125","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("325","126","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("326","127","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("327","128","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("328","129","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("329","130","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("330","131","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("331","132","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("332","133","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("333","134","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("334","135","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("335","136","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("336","137","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("337","138","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("338","139","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("339","140","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("340","141","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("341","142","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("342","143","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("343","144","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("344","145","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("345","146","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("346","147","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("347","148","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("348","149","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("349","150","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("350","151","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("351","152","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("352","153","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("353","154","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("354","155","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("355","156","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("356","157","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("357","158","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("358","159","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("359","160","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("360","161","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("361","162","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("362","163","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("363","164","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("364","165","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("365","166","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("366","167","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("367","168","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("368","169","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("369","170","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("370","171","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("371","172","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("372","173","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("373","174","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("374","175","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("375","176","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("376","177","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("377","178","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("378","179","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("379","180","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("380","181","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("381","182","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("382","183","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("383","184","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("384","185","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("385","186","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("386","187","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("387","188","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("388","189","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("389","191","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("390","192","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("391","193","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("392","196","","8","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("393","246","","8","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("394","259","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("395","260","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("396","261","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("397","262","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("398","263","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("399","264","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("400","265","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("401","266","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("402","267","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("403","269","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("404","64","","15","2017-03-02 15:51:56","2017-03-02 15:51:56"); - - - -DROP TABLE `country_i18n`; - -CREATE TABLE `country_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `country_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `country` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `country_i18n` VALUES("1","de_DE","Afghanistan","","",""); -INSERT INTO `country_i18n` VALUES("1","en_US","Afghanistan","","",""); -INSERT INTO `country_i18n` VALUES("1","es_ES","Afganistán","","",""); -INSERT INTO `country_i18n` VALUES("1","fr_FR","Afghanistan","","",""); -INSERT INTO `country_i18n` VALUES("2","de_DE","Südafrika","","",""); -INSERT INTO `country_i18n` VALUES("2","en_US","South Africa","","",""); -INSERT INTO `country_i18n` VALUES("2","es_ES","Sudáfrica","","",""); -INSERT INTO `country_i18n` VALUES("2","fr_FR","Afrique du Sud","","",""); -INSERT INTO `country_i18n` VALUES("3","de_DE","Albanien","","",""); -INSERT INTO `country_i18n` VALUES("3","en_US","Albania","","",""); -INSERT INTO `country_i18n` VALUES("3","es_ES","Albania","","",""); -INSERT INTO `country_i18n` VALUES("3","fr_FR","Albanie","","",""); -INSERT INTO `country_i18n` VALUES("4","de_DE","Algerien","","",""); -INSERT INTO `country_i18n` VALUES("4","en_US","Algeria","","",""); -INSERT INTO `country_i18n` VALUES("4","es_ES","Argelia","","",""); -INSERT INTO `country_i18n` VALUES("4","fr_FR","Algérie","","",""); -INSERT INTO `country_i18n` VALUES("5","de_DE","Deutschland","","",""); -INSERT INTO `country_i18n` VALUES("5","en_US","Germany","","",""); -INSERT INTO `country_i18n` VALUES("5","es_ES","Alemania","","",""); -INSERT INTO `country_i18n` VALUES("5","fr_FR","Allemagne","","",""); -INSERT INTO `country_i18n` VALUES("6","de_DE","Andorra","","",""); -INSERT INTO `country_i18n` VALUES("6","en_US","Andorra","","",""); -INSERT INTO `country_i18n` VALUES("6","es_ES","Andorra","","",""); -INSERT INTO `country_i18n` VALUES("6","fr_FR","Andorre","","",""); -INSERT INTO `country_i18n` VALUES("7","de_DE","Angola","","",""); -INSERT INTO `country_i18n` VALUES("7","en_US","Angola","","",""); -INSERT INTO `country_i18n` VALUES("7","es_ES","Angola","","",""); -INSERT INTO `country_i18n` VALUES("7","fr_FR","Angola","","",""); -INSERT INTO `country_i18n` VALUES("8","de_DE","Antigua und Barbuda","","",""); -INSERT INTO `country_i18n` VALUES("8","en_US","Antigua and Barbuda","","",""); -INSERT INTO `country_i18n` VALUES("8","es_ES","Antigua y Barbuda","","",""); -INSERT INTO `country_i18n` VALUES("8","fr_FR","Antigua-et-Barbuda","","",""); -INSERT INTO `country_i18n` VALUES("9","de_DE","Saudi-Arabien","","",""); -INSERT INTO `country_i18n` VALUES("9","en_US","Saudi Arabia","","",""); -INSERT INTO `country_i18n` VALUES("9","es_ES","Arabia Saudita","","",""); -INSERT INTO `country_i18n` VALUES("9","fr_FR","Arabie saoudite","","",""); -INSERT INTO `country_i18n` VALUES("10","de_DE","Argentinien","","",""); -INSERT INTO `country_i18n` VALUES("10","en_US","Argentina","","",""); -INSERT INTO `country_i18n` VALUES("10","es_ES","Argentina","","",""); -INSERT INTO `country_i18n` VALUES("10","fr_FR","Argentine","","",""); -INSERT INTO `country_i18n` VALUES("11","de_DE","Armenien","","",""); -INSERT INTO `country_i18n` VALUES("11","en_US","Armenia","","",""); -INSERT INTO `country_i18n` VALUES("11","es_ES","Armenia","","",""); -INSERT INTO `country_i18n` VALUES("11","fr_FR","Arménie","","",""); -INSERT INTO `country_i18n` VALUES("12","de_DE","Australien","","",""); -INSERT INTO `country_i18n` VALUES("12","en_US","Australia","","",""); -INSERT INTO `country_i18n` VALUES("12","es_ES","Australia","","",""); -INSERT INTO `country_i18n` VALUES("12","fr_FR","Australie","","",""); -INSERT INTO `country_i18n` VALUES("13","de_DE","Österreich","","",""); -INSERT INTO `country_i18n` VALUES("13","en_US","Austria","","",""); -INSERT INTO `country_i18n` VALUES("13","es_ES","Austria","","",""); -INSERT INTO `country_i18n` VALUES("13","fr_FR","Autriche","","",""); -INSERT INTO `country_i18n` VALUES("14","de_DE","Aserbaidschan","","",""); -INSERT INTO `country_i18n` VALUES("14","en_US","Azerbaijan","","",""); -INSERT INTO `country_i18n` VALUES("14","es_ES","Azerbaiyán","","",""); -INSERT INTO `country_i18n` VALUES("14","fr_FR","Azerbaïdjan","","",""); -INSERT INTO `country_i18n` VALUES("15","de_DE","Bahamas","","",""); -INSERT INTO `country_i18n` VALUES("15","en_US","Bahamas","","",""); -INSERT INTO `country_i18n` VALUES("15","es_ES","Bahamas","","",""); -INSERT INTO `country_i18n` VALUES("15","fr_FR","Bahamas","","",""); -INSERT INTO `country_i18n` VALUES("16","de_DE","Bahrein","","",""); -INSERT INTO `country_i18n` VALUES("16","en_US","Bahrain","","",""); -INSERT INTO `country_i18n` VALUES("16","es_ES","Bahrein","","",""); -INSERT INTO `country_i18n` VALUES("16","fr_FR","Bahreïn","","",""); -INSERT INTO `country_i18n` VALUES("17","de_DE","Bangladesch","","",""); -INSERT INTO `country_i18n` VALUES("17","en_US","Bangladesh","","",""); -INSERT INTO `country_i18n` VALUES("17","es_ES","Bangladesh","","",""); -INSERT INTO `country_i18n` VALUES("17","fr_FR","Bangladesh","","",""); -INSERT INTO `country_i18n` VALUES("18","de_DE","Barbados","","",""); -INSERT INTO `country_i18n` VALUES("18","en_US","Barbados","","",""); -INSERT INTO `country_i18n` VALUES("18","es_ES","Barbados","","",""); -INSERT INTO `country_i18n` VALUES("18","fr_FR","Barbade","","",""); -INSERT INTO `country_i18n` VALUES("19","de_DE","Weißrussland","","",""); -INSERT INTO `country_i18n` VALUES("19","en_US","Belarus","","",""); -INSERT INTO `country_i18n` VALUES("19","es_ES","Belarús","","",""); -INSERT INTO `country_i18n` VALUES("19","fr_FR","Belarus","","",""); -INSERT INTO `country_i18n` VALUES("20","de_DE","Belgien","","",""); -INSERT INTO `country_i18n` VALUES("20","en_US","Belgium","","",""); -INSERT INTO `country_i18n` VALUES("20","es_ES","Bélgica","","",""); -INSERT INTO `country_i18n` VALUES("20","fr_FR","Belgique","","",""); -INSERT INTO `country_i18n` VALUES("21","de_DE","Belize","","",""); -INSERT INTO `country_i18n` VALUES("21","en_US","Belize","","",""); -INSERT INTO `country_i18n` VALUES("21","es_ES","Belice","","",""); -INSERT INTO `country_i18n` VALUES("21","fr_FR","Belize","","",""); -INSERT INTO `country_i18n` VALUES("22","de_DE","Bénin","","",""); -INSERT INTO `country_i18n` VALUES("22","en_US","Benin","","",""); -INSERT INTO `country_i18n` VALUES("22","es_ES","Benin","","",""); -INSERT INTO `country_i18n` VALUES("22","fr_FR","Bénin","","",""); -INSERT INTO `country_i18n` VALUES("23","de_DE","Bhutan","","",""); -INSERT INTO `country_i18n` VALUES("23","en_US","Bhutan","","",""); -INSERT INTO `country_i18n` VALUES("23","es_ES","Bhután","","",""); -INSERT INTO `country_i18n` VALUES("23","fr_FR","Bhoutan","","",""); -INSERT INTO `country_i18n` VALUES("24","de_DE","Weißrussland","","",""); -INSERT INTO `country_i18n` VALUES("24","en_US","Bielorussia","","",""); -INSERT INTO `country_i18n` VALUES("24","es_ES","Bielorusia","","",""); -INSERT INTO `country_i18n` VALUES("24","fr_FR","Biélorussie","","",""); -INSERT INTO `country_i18n` VALUES("25","de_DE","Birma","","",""); -INSERT INTO `country_i18n` VALUES("25","en_US","Burma","","",""); -INSERT INTO `country_i18n` VALUES("25","es_ES","Birmania","","",""); -INSERT INTO `country_i18n` VALUES("25","fr_FR","Birmanie","","",""); -INSERT INTO `country_i18n` VALUES("26","de_DE","Bolivien","","",""); -INSERT INTO `country_i18n` VALUES("26","en_US","Bolivia","","",""); -INSERT INTO `country_i18n` VALUES("26","es_ES","Bolivia","","",""); -INSERT INTO `country_i18n` VALUES("26","fr_FR","Bolivie","","",""); -INSERT INTO `country_i18n` VALUES("27","de_DE","Bosnien Herzegovina","","",""); -INSERT INTO `country_i18n` VALUES("27","en_US","Bosnia and Herzegovina","","",""); -INSERT INTO `country_i18n` VALUES("27","es_ES","Bosnia y Herzegovina","","",""); -INSERT INTO `country_i18n` VALUES("27","fr_FR","Bosnie-Herzégovine","","",""); -INSERT INTO `country_i18n` VALUES("28","de_DE","Botswana","","",""); -INSERT INTO `country_i18n` VALUES("28","en_US","Botswana","","",""); -INSERT INTO `country_i18n` VALUES("28","es_ES","Botswana","","",""); -INSERT INTO `country_i18n` VALUES("28","fr_FR","Botswana","","",""); -INSERT INTO `country_i18n` VALUES("29","de_DE","Brasilien","","",""); -INSERT INTO `country_i18n` VALUES("29","en_US","Brazil","","",""); -INSERT INTO `country_i18n` VALUES("29","es_ES","Brasil","","",""); -INSERT INTO `country_i18n` VALUES("29","fr_FR","Brésil","","",""); -INSERT INTO `country_i18n` VALUES("30","de_DE","Brunei","","",""); -INSERT INTO `country_i18n` VALUES("30","en_US","Brunei","","",""); -INSERT INTO `country_i18n` VALUES("30","es_ES","Brunei","","",""); -INSERT INTO `country_i18n` VALUES("30","fr_FR","Brunei","","",""); -INSERT INTO `country_i18n` VALUES("31","de_DE","Bulgarien","","",""); -INSERT INTO `country_i18n` VALUES("31","en_US","Bulgaria","","",""); -INSERT INTO `country_i18n` VALUES("31","es_ES","Bulgaria","","",""); -INSERT INTO `country_i18n` VALUES("31","fr_FR","Bulgarie","","",""); -INSERT INTO `country_i18n` VALUES("32","de_DE","Burkina Faso","","",""); -INSERT INTO `country_i18n` VALUES("32","en_US","Burkina","","",""); -INSERT INTO `country_i18n` VALUES("32","es_ES","Burkina","","",""); -INSERT INTO `country_i18n` VALUES("32","fr_FR","Burkina","","",""); -INSERT INTO `country_i18n` VALUES("33","de_DE","Burundi","","",""); -INSERT INTO `country_i18n` VALUES("33","en_US","Burundi","","",""); -INSERT INTO `country_i18n` VALUES("33","es_ES","Burundi","","",""); -INSERT INTO `country_i18n` VALUES("33","fr_FR","Burundi","","",""); -INSERT INTO `country_i18n` VALUES("34","de_DE","Kambodscha","","",""); -INSERT INTO `country_i18n` VALUES("34","en_US","Cambodia","","",""); -INSERT INTO `country_i18n` VALUES("34","es_ES","Camboya","","",""); -INSERT INTO `country_i18n` VALUES("34","fr_FR","Cambodge","","",""); -INSERT INTO `country_i18n` VALUES("35","de_DE","Kamerun","","",""); -INSERT INTO `country_i18n` VALUES("35","en_US","Cameroon","","",""); -INSERT INTO `country_i18n` VALUES("35","es_ES","Camerún","","",""); -INSERT INTO `country_i18n` VALUES("35","fr_FR","Cameroun","","",""); -INSERT INTO `country_i18n` VALUES("37","de_DE","Kap Verde","","",""); -INSERT INTO `country_i18n` VALUES("37","en_US","Cape Verde","","",""); -INSERT INTO `country_i18n` VALUES("37","es_ES","Cabo Verde","","",""); -INSERT INTO `country_i18n` VALUES("37","fr_FR","Cap-Vert","","",""); -INSERT INTO `country_i18n` VALUES("38","de_DE","Chile","","",""); -INSERT INTO `country_i18n` VALUES("38","en_US","Chile","","",""); -INSERT INTO `country_i18n` VALUES("38","es_ES","Chile","","",""); -INSERT INTO `country_i18n` VALUES("38","fr_FR","Chili","","",""); -INSERT INTO `country_i18n` VALUES("39","de_DE","China","","",""); -INSERT INTO `country_i18n` VALUES("39","en_US","China","","",""); -INSERT INTO `country_i18n` VALUES("39","es_ES","China","","",""); -INSERT INTO `country_i18n` VALUES("39","fr_FR","Chine","","",""); -INSERT INTO `country_i18n` VALUES("40","de_DE","Zypern","","",""); -INSERT INTO `country_i18n` VALUES("40","en_US","Cyprus","","",""); -INSERT INTO `country_i18n` VALUES("40","es_ES","Chipre","","",""); -INSERT INTO `country_i18n` VALUES("40","fr_FR","Chypre","","",""); -INSERT INTO `country_i18n` VALUES("41","de_DE","Kolumbien","","",""); -INSERT INTO `country_i18n` VALUES("41","en_US","Colombia","","",""); -INSERT INTO `country_i18n` VALUES("41","es_ES","Colombia","","",""); -INSERT INTO `country_i18n` VALUES("41","fr_FR","Colombie","","",""); -INSERT INTO `country_i18n` VALUES("42","de_DE","Komoren","","",""); -INSERT INTO `country_i18n` VALUES("42","en_US","Comoros","","",""); -INSERT INTO `country_i18n` VALUES("42","es_ES","Comoras","","",""); -INSERT INTO `country_i18n` VALUES("42","fr_FR","Comores","","",""); -INSERT INTO `country_i18n` VALUES("43","de_DE","Kongo","","",""); -INSERT INTO `country_i18n` VALUES("43","en_US","Congo","","",""); -INSERT INTO `country_i18n` VALUES("43","es_ES","Congo","","",""); -INSERT INTO `country_i18n` VALUES("43","fr_FR","Congo","","",""); -INSERT INTO `country_i18n` VALUES("44","de_DE","Cookinseln","","",""); -INSERT INTO `country_i18n` VALUES("44","en_US","Cook Islands","","",""); -INSERT INTO `country_i18n` VALUES("44","es_ES","Cook","","",""); -INSERT INTO `country_i18n` VALUES("44","fr_FR","Cook","","",""); -INSERT INTO `country_i18n` VALUES("45","de_DE","Nordkorea","","",""); -INSERT INTO `country_i18n` VALUES("45","en_US","North Korea","","",""); -INSERT INTO `country_i18n` VALUES("45","es_ES","Corea del Norte","","",""); -INSERT INTO `country_i18n` VALUES("45","fr_FR","Corée du Nord","","",""); -INSERT INTO `country_i18n` VALUES("46","de_DE","Südkorea","","",""); -INSERT INTO `country_i18n` VALUES("46","en_US","South Korea","","",""); -INSERT INTO `country_i18n` VALUES("46","es_ES","Corea del Sur","","",""); -INSERT INTO `country_i18n` VALUES("46","fr_FR","Corée du Sud","","",""); -INSERT INTO `country_i18n` VALUES("47","de_DE","Costa Rica","","",""); -INSERT INTO `country_i18n` VALUES("47","en_US","Costa Rica","","",""); -INSERT INTO `country_i18n` VALUES("47","es_ES","Costa Rica","","",""); -INSERT INTO `country_i18n` VALUES("47","fr_FR","Costa Rica","","",""); -INSERT INTO `country_i18n` VALUES("48","de_DE","Elfenbeinküste","","",""); -INSERT INTO `country_i18n` VALUES("48","en_US","Ivory Coast","","",""); -INSERT INTO `country_i18n` VALUES("48","es_ES","Costa de Marfil","","",""); -INSERT INTO `country_i18n` VALUES("48","fr_FR","Côte dIvoire","","",""); -INSERT INTO `country_i18n` VALUES("49","de_DE","Kroatien","","",""); -INSERT INTO `country_i18n` VALUES("49","en_US","Croatia","","",""); -INSERT INTO `country_i18n` VALUES("49","es_ES","Croacia","","",""); -INSERT INTO `country_i18n` VALUES("49","fr_FR","Croatie","","",""); -INSERT INTO `country_i18n` VALUES("50","de_DE","Kuba","","",""); -INSERT INTO `country_i18n` VALUES("50","en_US","Cuba","","",""); -INSERT INTO `country_i18n` VALUES("50","es_ES","Cuba","","",""); -INSERT INTO `country_i18n` VALUES("50","fr_FR","Cuba","","",""); -INSERT INTO `country_i18n` VALUES("51","de_DE","Dänemark","","",""); -INSERT INTO `country_i18n` VALUES("51","en_US","Denmark","","",""); -INSERT INTO `country_i18n` VALUES("51","es_ES","Dinamarca","","",""); -INSERT INTO `country_i18n` VALUES("51","fr_FR","Danemark","","",""); -INSERT INTO `country_i18n` VALUES("52","de_DE","Djibuti","","",""); -INSERT INTO `country_i18n` VALUES("52","en_US","Djibouti","","",""); -INSERT INTO `country_i18n` VALUES("52","es_ES","Djibouti","","",""); -INSERT INTO `country_i18n` VALUES("52","fr_FR","Djibouti","","",""); -INSERT INTO `country_i18n` VALUES("53","de_DE","Dominikanische Republik","","",""); -INSERT INTO `country_i18n` VALUES("53","en_US","Dominica","","",""); -INSERT INTO `country_i18n` VALUES("53","es_ES","Dominica","","",""); -INSERT INTO `country_i18n` VALUES("53","fr_FR","Dominique","","",""); -INSERT INTO `country_i18n` VALUES("54","de_DE","Ägypten","","",""); -INSERT INTO `country_i18n` VALUES("54","en_US","Egypt","","",""); -INSERT INTO `country_i18n` VALUES("54","es_ES","Egipto","","",""); -INSERT INTO `country_i18n` VALUES("54","fr_FR","Égypte","","",""); -INSERT INTO `country_i18n` VALUES("55","de_DE","Vereinigte Arabische Emirate","","",""); -INSERT INTO `country_i18n` VALUES("55","en_US","United Arab Emirates","","",""); -INSERT INTO `country_i18n` VALUES("55","es_ES","Emiratos Árabes Unidos","","",""); -INSERT INTO `country_i18n` VALUES("55","fr_FR","Émirats arabes unis","","",""); -INSERT INTO `country_i18n` VALUES("56","de_DE","Ecuador","","",""); -INSERT INTO `country_i18n` VALUES("56","en_US","Ecuador","","",""); -INSERT INTO `country_i18n` VALUES("56","es_ES","Ecuador","","",""); -INSERT INTO `country_i18n` VALUES("56","fr_FR","Équateur","","",""); -INSERT INTO `country_i18n` VALUES("57","de_DE","Eritrea","","",""); -INSERT INTO `country_i18n` VALUES("57","en_US","Eritrea","","",""); -INSERT INTO `country_i18n` VALUES("57","es_ES","Eritrea","","",""); -INSERT INTO `country_i18n` VALUES("57","fr_FR","Érythrée","","",""); -INSERT INTO `country_i18n` VALUES("58","de_DE","Spanien","","",""); -INSERT INTO `country_i18n` VALUES("58","en_US","Spain","","",""); -INSERT INTO `country_i18n` VALUES("58","es_ES","España","","",""); -INSERT INTO `country_i18n` VALUES("58","fr_FR","Espagne","","",""); -INSERT INTO `country_i18n` VALUES("59","de_DE","Estland","","",""); -INSERT INTO `country_i18n` VALUES("59","en_US","Estonia","","",""); -INSERT INTO `country_i18n` VALUES("59","es_ES","Estonia","","",""); -INSERT INTO `country_i18n` VALUES("59","fr_FR","Estonie","","",""); -INSERT INTO `country_i18n` VALUES("61","de_DE","Äthiopien","","",""); -INSERT INTO `country_i18n` VALUES("61","en_US","Ethiopia","","",""); -INSERT INTO `country_i18n` VALUES("61","es_ES","Etiopía","","",""); -INSERT INTO `country_i18n` VALUES("61","fr_FR","Éthiopie","","",""); -INSERT INTO `country_i18n` VALUES("62","de_DE","Fiji","","",""); -INSERT INTO `country_i18n` VALUES("62","en_US","Fiji","","",""); -INSERT INTO `country_i18n` VALUES("62","es_ES","Fiji","","",""); -INSERT INTO `country_i18n` VALUES("62","fr_FR","Fidji","","",""); -INSERT INTO `country_i18n` VALUES("63","de_DE","Finnland","","",""); -INSERT INTO `country_i18n` VALUES("63","en_US","Finland","","",""); -INSERT INTO `country_i18n` VALUES("63","es_ES","Finlandia","","",""); -INSERT INTO `country_i18n` VALUES("63","fr_FR","Finlande","","",""); -INSERT INTO `country_i18n` VALUES("64","de_DE","Frankreich","","",""); -INSERT INTO `country_i18n` VALUES("64","en_US","France metropolitan","","",""); -INSERT INTO `country_i18n` VALUES("64","es_ES","Francia","","",""); -INSERT INTO `country_i18n` VALUES("64","fr_FR","France métropolitaine","","",""); -INSERT INTO `country_i18n` VALUES("65","de_DE","Gabun","","",""); -INSERT INTO `country_i18n` VALUES("65","en_US","Gabon","","",""); -INSERT INTO `country_i18n` VALUES("65","es_ES","Gabón","","",""); -INSERT INTO `country_i18n` VALUES("65","fr_FR","Gabon","","",""); -INSERT INTO `country_i18n` VALUES("66","de_DE","Gambie","","",""); -INSERT INTO `country_i18n` VALUES("66","en_US","Gambia","","",""); -INSERT INTO `country_i18n` VALUES("66","es_ES","Gambia","","",""); -INSERT INTO `country_i18n` VALUES("66","fr_FR","Gambie","","",""); -INSERT INTO `country_i18n` VALUES("67","de_DE","Georgien","","",""); -INSERT INTO `country_i18n` VALUES("67","en_US","Georgia","","",""); -INSERT INTO `country_i18n` VALUES("67","es_ES","Georgia","","",""); -INSERT INTO `country_i18n` VALUES("67","fr_FR","Géorgie","","",""); -INSERT INTO `country_i18n` VALUES("68","de_DE","Ghana","","",""); -INSERT INTO `country_i18n` VALUES("68","en_US","Ghana","","",""); -INSERT INTO `country_i18n` VALUES("68","es_ES","Ghana","","",""); -INSERT INTO `country_i18n` VALUES("68","fr_FR","Ghana","","",""); -INSERT INTO `country_i18n` VALUES("69","de_DE","Griechenland","","",""); -INSERT INTO `country_i18n` VALUES("69","en_US","Greece","","",""); -INSERT INTO `country_i18n` VALUES("69","es_ES","Grecia","","",""); -INSERT INTO `country_i18n` VALUES("69","fr_FR","Grèce","","",""); -INSERT INTO `country_i18n` VALUES("70","de_DE","Grenada","","",""); -INSERT INTO `country_i18n` VALUES("70","en_US","Grenada","","",""); -INSERT INTO `country_i18n` VALUES("70","es_ES","Granada","","",""); -INSERT INTO `country_i18n` VALUES("70","fr_FR","Grenade","","",""); -INSERT INTO `country_i18n` VALUES("71","de_DE","Guatemala","","",""); -INSERT INTO `country_i18n` VALUES("71","en_US","Guatemala","","",""); -INSERT INTO `country_i18n` VALUES("71","es_ES","Guatemala","","",""); -INSERT INTO `country_i18n` VALUES("71","fr_FR","Guatemala","","",""); -INSERT INTO `country_i18n` VALUES("72","de_DE","Guinea","","",""); -INSERT INTO `country_i18n` VALUES("72","en_US","Guinea","","",""); -INSERT INTO `country_i18n` VALUES("72","es_ES","Guinea","","",""); -INSERT INTO `country_i18n` VALUES("72","fr_FR","Guinée","","",""); -INSERT INTO `country_i18n` VALUES("73","de_DE","Guinea-Bissau","","",""); -INSERT INTO `country_i18n` VALUES("73","en_US","Guinea-Bissau","","",""); -INSERT INTO `country_i18n` VALUES("73","es_ES","Guinea-Bissau","","",""); -INSERT INTO `country_i18n` VALUES("73","fr_FR","Guinée-Bissao","","",""); -INSERT INTO `country_i18n` VALUES("74","de_DE","Äquatorialguinea","","",""); -INSERT INTO `country_i18n` VALUES("74","en_US","Equatorial Guinea","","",""); -INSERT INTO `country_i18n` VALUES("74","es_ES","Guinea Ecuatorial","","",""); -INSERT INTO `country_i18n` VALUES("74","fr_FR","Guinée équatoriale","","",""); -INSERT INTO `country_i18n` VALUES("75","de_DE","Guyana","","",""); -INSERT INTO `country_i18n` VALUES("75","en_US","Guyana","","",""); -INSERT INTO `country_i18n` VALUES("75","es_ES","Guyana","","",""); -INSERT INTO `country_i18n` VALUES("75","fr_FR","Guyane","","",""); -INSERT INTO `country_i18n` VALUES("76","de_DE","Haiti","","",""); -INSERT INTO `country_i18n` VALUES("76","en_US","Haiti","","",""); -INSERT INTO `country_i18n` VALUES("76","es_ES","Haití","","",""); -INSERT INTO `country_i18n` VALUES("76","fr_FR","Haïti","","",""); -INSERT INTO `country_i18n` VALUES("77","de_DE","Honduras","","",""); -INSERT INTO `country_i18n` VALUES("77","en_US","Honduras","","",""); -INSERT INTO `country_i18n` VALUES("77","es_ES","Honduras","","",""); -INSERT INTO `country_i18n` VALUES("77","fr_FR","Honduras","","",""); -INSERT INTO `country_i18n` VALUES("78","de_DE","Ungarn","","",""); -INSERT INTO `country_i18n` VALUES("78","en_US","Hungary","","",""); -INSERT INTO `country_i18n` VALUES("78","es_ES","Hungría","","",""); -INSERT INTO `country_i18n` VALUES("78","fr_FR","Hongrie","","",""); -INSERT INTO `country_i18n` VALUES("79","de_DE","Indien","","",""); -INSERT INTO `country_i18n` VALUES("79","en_US","India","","",""); -INSERT INTO `country_i18n` VALUES("79","es_ES","India","","",""); -INSERT INTO `country_i18n` VALUES("79","fr_FR","Inde","","",""); -INSERT INTO `country_i18n` VALUES("80","de_DE","Indonesien","","",""); -INSERT INTO `country_i18n` VALUES("80","en_US","Indonesia","","",""); -INSERT INTO `country_i18n` VALUES("80","es_ES","Indonesia","","",""); -INSERT INTO `country_i18n` VALUES("80","fr_FR","Indonésie","","",""); -INSERT INTO `country_i18n` VALUES("81","de_DE","Iran","","",""); -INSERT INTO `country_i18n` VALUES("81","en_US","Iran","","",""); -INSERT INTO `country_i18n` VALUES("81","es_ES","Irán","","",""); -INSERT INTO `country_i18n` VALUES("81","fr_FR","Iran","","",""); -INSERT INTO `country_i18n` VALUES("82","de_DE","Irak","","",""); -INSERT INTO `country_i18n` VALUES("82","en_US","Iraq","","",""); -INSERT INTO `country_i18n` VALUES("82","es_ES","Iraq","","",""); -INSERT INTO `country_i18n` VALUES("82","fr_FR","Iraq","","",""); -INSERT INTO `country_i18n` VALUES("83","de_DE","Irland","","",""); -INSERT INTO `country_i18n` VALUES("83","en_US","Ireland","","",""); -INSERT INTO `country_i18n` VALUES("83","es_ES","Irlanda","","",""); -INSERT INTO `country_i18n` VALUES("83","fr_FR","Irlande","","",""); -INSERT INTO `country_i18n` VALUES("84","de_DE","Island","","",""); -INSERT INTO `country_i18n` VALUES("84","en_US","Iceland","","",""); -INSERT INTO `country_i18n` VALUES("84","es_ES","Islandia","","",""); -INSERT INTO `country_i18n` VALUES("84","fr_FR","Islande","","",""); -INSERT INTO `country_i18n` VALUES("85","de_DE","Israel","","",""); -INSERT INTO `country_i18n` VALUES("85","en_US","Israel","","",""); -INSERT INTO `country_i18n` VALUES("85","es_ES","Israel","","",""); -INSERT INTO `country_i18n` VALUES("85","fr_FR","Israël","","",""); -INSERT INTO `country_i18n` VALUES("86","de_DE","Italien","","",""); -INSERT INTO `country_i18n` VALUES("86","en_US","Italy","","",""); -INSERT INTO `country_i18n` VALUES("86","es_ES","Italia","","",""); -INSERT INTO `country_i18n` VALUES("86","fr_FR","Italie","","",""); -INSERT INTO `country_i18n` VALUES("87","de_DE","Jamaika","","",""); -INSERT INTO `country_i18n` VALUES("87","en_US","Jamaica","","",""); -INSERT INTO `country_i18n` VALUES("87","es_ES","Jamaica","","",""); -INSERT INTO `country_i18n` VALUES("87","fr_FR","Jamaïque","","",""); -INSERT INTO `country_i18n` VALUES("88","de_DE","Japan","","",""); -INSERT INTO `country_i18n` VALUES("88","en_US","Japan","","",""); -INSERT INTO `country_i18n` VALUES("88","es_ES","Japón","","",""); -INSERT INTO `country_i18n` VALUES("88","fr_FR","Japon","","",""); -INSERT INTO `country_i18n` VALUES("89","de_DE","Jordanien","","",""); -INSERT INTO `country_i18n` VALUES("89","en_US","Jordan","","",""); -INSERT INTO `country_i18n` VALUES("89","es_ES","Jordania","","",""); -INSERT INTO `country_i18n` VALUES("89","fr_FR","Jordanie","","",""); -INSERT INTO `country_i18n` VALUES("90","de_DE","Kasachstan","","",""); -INSERT INTO `country_i18n` VALUES("90","en_US","Kazakhstan","","",""); -INSERT INTO `country_i18n` VALUES("90","es_ES","Kazajstán","","",""); -INSERT INTO `country_i18n` VALUES("90","fr_FR","Kazakhstan","","",""); -INSERT INTO `country_i18n` VALUES("91","de_DE","Kenia","","",""); -INSERT INTO `country_i18n` VALUES("91","en_US","Kenya","","",""); -INSERT INTO `country_i18n` VALUES("91","es_ES","Kenia","","",""); -INSERT INTO `country_i18n` VALUES("91","fr_FR","Kenya","","",""); -INSERT INTO `country_i18n` VALUES("92","de_DE","Kirgisistan","","",""); -INSERT INTO `country_i18n` VALUES("92","en_US","Kyrgyzstan","","",""); -INSERT INTO `country_i18n` VALUES("92","es_ES","Kirguistán","","",""); -INSERT INTO `country_i18n` VALUES("92","fr_FR","Kirghizistan","","",""); -INSERT INTO `country_i18n` VALUES("93","de_DE","Kiribati","","",""); -INSERT INTO `country_i18n` VALUES("93","en_US","Kiribati","","",""); -INSERT INTO `country_i18n` VALUES("93","es_ES","Kiribati","","",""); -INSERT INTO `country_i18n` VALUES("93","fr_FR","Kiribati","","",""); -INSERT INTO `country_i18n` VALUES("94","de_DE","Kuwait","","",""); -INSERT INTO `country_i18n` VALUES("94","en_US","Kuwait","","",""); -INSERT INTO `country_i18n` VALUES("94","es_ES","Kuwait","","",""); -INSERT INTO `country_i18n` VALUES("94","fr_FR","Koweït","","",""); -INSERT INTO `country_i18n` VALUES("95","de_DE","Laos","","",""); -INSERT INTO `country_i18n` VALUES("95","en_US","Laos","","",""); -INSERT INTO `country_i18n` VALUES("95","es_ES","Laos","","",""); -INSERT INTO `country_i18n` VALUES("95","fr_FR","Laos","","",""); -INSERT INTO `country_i18n` VALUES("96","de_DE","Lesotho","","",""); -INSERT INTO `country_i18n` VALUES("96","en_US","Lesotho","","",""); -INSERT INTO `country_i18n` VALUES("96","es_ES","Lesoto","","",""); -INSERT INTO `country_i18n` VALUES("96","fr_FR","Lesotho","","",""); -INSERT INTO `country_i18n` VALUES("97","de_DE","Lettland","","",""); -INSERT INTO `country_i18n` VALUES("97","en_US","Latvia","","",""); -INSERT INTO `country_i18n` VALUES("97","es_ES","Letonia","","",""); -INSERT INTO `country_i18n` VALUES("97","fr_FR","Lettonie","","",""); -INSERT INTO `country_i18n` VALUES("98","de_DE","Libanon","","",""); -INSERT INTO `country_i18n` VALUES("98","en_US","Lebanon","","",""); -INSERT INTO `country_i18n` VALUES("98","es_ES","Líbano","","",""); -INSERT INTO `country_i18n` VALUES("98","fr_FR","Liban","","",""); -INSERT INTO `country_i18n` VALUES("99","de_DE","Liberia","","",""); -INSERT INTO `country_i18n` VALUES("99","en_US","Liberia","","",""); -INSERT INTO `country_i18n` VALUES("99","es_ES","Liberia","","",""); -INSERT INTO `country_i18n` VALUES("99","fr_FR","Liberia","","",""); -INSERT INTO `country_i18n` VALUES("100","de_DE","Libyen","","",""); -INSERT INTO `country_i18n` VALUES("100","en_US","Libya","","",""); -INSERT INTO `country_i18n` VALUES("100","es_ES","Libia","","",""); -INSERT INTO `country_i18n` VALUES("100","fr_FR","Libye","","",""); -INSERT INTO `country_i18n` VALUES("101","de_DE","Liechtenstein","","",""); -INSERT INTO `country_i18n` VALUES("101","en_US","Liechtenstein","","",""); -INSERT INTO `country_i18n` VALUES("101","es_ES","Liechtenstein","","",""); -INSERT INTO `country_i18n` VALUES("101","fr_FR","Liechtenstein","","",""); -INSERT INTO `country_i18n` VALUES("102","de_DE","Litauen","","",""); -INSERT INTO `country_i18n` VALUES("102","en_US","Lithuania","","",""); -INSERT INTO `country_i18n` VALUES("102","es_ES","Lituania","","",""); -INSERT INTO `country_i18n` VALUES("102","fr_FR","Lituanie","","",""); -INSERT INTO `country_i18n` VALUES("103","de_DE","Luxemburg","","",""); -INSERT INTO `country_i18n` VALUES("103","en_US","Luxembourg","","",""); -INSERT INTO `country_i18n` VALUES("103","es_ES","Luxemburgo","","",""); -INSERT INTO `country_i18n` VALUES("103","fr_FR","Luxembourg","","",""); -INSERT INTO `country_i18n` VALUES("104","de_DE","Mazedonien","","",""); -INSERT INTO `country_i18n` VALUES("104","en_US","Macedonia","","",""); -INSERT INTO `country_i18n` VALUES("104","es_ES","Macedonia","","",""); -INSERT INTO `country_i18n` VALUES("104","fr_FR","Macédoine","","",""); -INSERT INTO `country_i18n` VALUES("105","de_DE","Madagaskar","","",""); -INSERT INTO `country_i18n` VALUES("105","en_US","Madagascar","","",""); -INSERT INTO `country_i18n` VALUES("105","es_ES","Madagascar","","",""); -INSERT INTO `country_i18n` VALUES("105","fr_FR","Madagascar","","",""); -INSERT INTO `country_i18n` VALUES("106","de_DE","Malaysien","","",""); -INSERT INTO `country_i18n` VALUES("106","en_US","Malaysia","","",""); -INSERT INTO `country_i18n` VALUES("106","es_ES","Malasia","","",""); -INSERT INTO `country_i18n` VALUES("106","fr_FR","Malaisie","","",""); -INSERT INTO `country_i18n` VALUES("107","de_DE","Malawi","","",""); -INSERT INTO `country_i18n` VALUES("107","en_US","Malawi","","",""); -INSERT INTO `country_i18n` VALUES("107","es_ES","Malawi","","",""); -INSERT INTO `country_i18n` VALUES("107","fr_FR","Malawi","","",""); -INSERT INTO `country_i18n` VALUES("108","de_DE","Malediven","","",""); -INSERT INTO `country_i18n` VALUES("108","en_US","Maldives","","",""); -INSERT INTO `country_i18n` VALUES("108","es_ES","Maldivas","","",""); -INSERT INTO `country_i18n` VALUES("108","fr_FR","Maldives","","",""); -INSERT INTO `country_i18n` VALUES("109","de_DE","Mali","","",""); -INSERT INTO `country_i18n` VALUES("109","en_US","Mali","","",""); -INSERT INTO `country_i18n` VALUES("109","es_ES","Malí","","",""); -INSERT INTO `country_i18n` VALUES("109","fr_FR","Mali","","",""); -INSERT INTO `country_i18n` VALUES("110","de_DE","Malta","","",""); -INSERT INTO `country_i18n` VALUES("110","en_US","Malta","","",""); -INSERT INTO `country_i18n` VALUES("110","es_ES","Malta","","",""); -INSERT INTO `country_i18n` VALUES("110","fr_FR","Malte","","",""); -INSERT INTO `country_i18n` VALUES("111","de_DE","Marokko","","",""); -INSERT INTO `country_i18n` VALUES("111","en_US","Morocco","","",""); -INSERT INTO `country_i18n` VALUES("111","es_ES","Marruecos","","",""); -INSERT INTO `country_i18n` VALUES("111","fr_FR","Maroc","","",""); -INSERT INTO `country_i18n` VALUES("112","de_DE","Marshallinseln","","",""); -INSERT INTO `country_i18n` VALUES("112","en_US","Marshall Islands","","",""); -INSERT INTO `country_i18n` VALUES("112","es_ES","Marshall","","",""); -INSERT INTO `country_i18n` VALUES("112","fr_FR","Marshall","","",""); -INSERT INTO `country_i18n` VALUES("113","de_DE","Mauritius","","",""); -INSERT INTO `country_i18n` VALUES("113","en_US","Mauritius","","",""); -INSERT INTO `country_i18n` VALUES("113","es_ES","Mauricio","","",""); -INSERT INTO `country_i18n` VALUES("113","fr_FR","Maurice","","",""); -INSERT INTO `country_i18n` VALUES("114","de_DE","Mauretanien","","",""); -INSERT INTO `country_i18n` VALUES("114","en_US","Mauritania","","",""); -INSERT INTO `country_i18n` VALUES("114","es_ES","Mauritania","","",""); -INSERT INTO `country_i18n` VALUES("114","fr_FR","Mauritanie","","",""); -INSERT INTO `country_i18n` VALUES("115","de_DE","Mexiko","","",""); -INSERT INTO `country_i18n` VALUES("115","en_US","Mexico","","",""); -INSERT INTO `country_i18n` VALUES("115","es_ES","Méjico","","",""); -INSERT INTO `country_i18n` VALUES("115","fr_FR","Mexique","","",""); -INSERT INTO `country_i18n` VALUES("116","de_DE","Mikronesien","","",""); -INSERT INTO `country_i18n` VALUES("116","en_US","Micronesia","","",""); -INSERT INTO `country_i18n` VALUES("116","es_ES","Micronesia","","",""); -INSERT INTO `country_i18n` VALUES("116","fr_FR","Micronésie","","",""); -INSERT INTO `country_i18n` VALUES("117","de_DE","Moldau","","",""); -INSERT INTO `country_i18n` VALUES("117","en_US","Moldova","","",""); -INSERT INTO `country_i18n` VALUES("117","es_ES","Moldova","","",""); -INSERT INTO `country_i18n` VALUES("117","fr_FR","Moldavie","","",""); -INSERT INTO `country_i18n` VALUES("118","de_DE","Monaco","","",""); -INSERT INTO `country_i18n` VALUES("118","en_US","Monaco","","",""); -INSERT INTO `country_i18n` VALUES("118","es_ES","Mónaco","","",""); -INSERT INTO `country_i18n` VALUES("118","fr_FR","Principauté de Monaco","","",""); -INSERT INTO `country_i18n` VALUES("119","de_DE","Mongolei","","",""); -INSERT INTO `country_i18n` VALUES("119","en_US","Mongolia","","",""); -INSERT INTO `country_i18n` VALUES("119","es_ES","Mongolia","","",""); -INSERT INTO `country_i18n` VALUES("119","fr_FR","Mongolie","","",""); -INSERT INTO `country_i18n` VALUES("120","de_DE","Mosambik","","",""); -INSERT INTO `country_i18n` VALUES("120","en_US","Mozambique","","",""); -INSERT INTO `country_i18n` VALUES("120","es_ES","Mozambique","","",""); -INSERT INTO `country_i18n` VALUES("120","fr_FR","Mozambique","","",""); -INSERT INTO `country_i18n` VALUES("121","de_DE","Namibia","","",""); -INSERT INTO `country_i18n` VALUES("121","en_US","Namibia","","",""); -INSERT INTO `country_i18n` VALUES("121","es_ES","Namibia","","",""); -INSERT INTO `country_i18n` VALUES("121","fr_FR","Namibie","","",""); -INSERT INTO `country_i18n` VALUES("122","de_DE","Nauru","","",""); -INSERT INTO `country_i18n` VALUES("122","en_US","Nauru","","",""); -INSERT INTO `country_i18n` VALUES("122","es_ES","Nauru","","",""); -INSERT INTO `country_i18n` VALUES("122","fr_FR","Nauru","","",""); -INSERT INTO `country_i18n` VALUES("123","de_DE","Nepal","","",""); -INSERT INTO `country_i18n` VALUES("123","en_US","Nepal","","",""); -INSERT INTO `country_i18n` VALUES("123","es_ES","Nepal","","",""); -INSERT INTO `country_i18n` VALUES("123","fr_FR","Népal","","",""); -INSERT INTO `country_i18n` VALUES("124","de_DE","Nicaragua","","",""); -INSERT INTO `country_i18n` VALUES("124","en_US","Nicaragua","","",""); -INSERT INTO `country_i18n` VALUES("124","es_ES","Nicaragua","","",""); -INSERT INTO `country_i18n` VALUES("124","fr_FR","Nicaragua","","",""); -INSERT INTO `country_i18n` VALUES("125","de_DE","Niger","","",""); -INSERT INTO `country_i18n` VALUES("125","en_US","Niger","","",""); -INSERT INTO `country_i18n` VALUES("125","es_ES","Níger","","",""); -INSERT INTO `country_i18n` VALUES("125","fr_FR","Niger","","",""); -INSERT INTO `country_i18n` VALUES("126","de_DE","Nigeria","","",""); -INSERT INTO `country_i18n` VALUES("126","en_US","Nigeria","","",""); -INSERT INTO `country_i18n` VALUES("126","es_ES","Nigeria","","",""); -INSERT INTO `country_i18n` VALUES("126","fr_FR","Nigeria","","",""); -INSERT INTO `country_i18n` VALUES("127","de_DE","Niue","","",""); -INSERT INTO `country_i18n` VALUES("127","en_US","Niue","","",""); -INSERT INTO `country_i18n` VALUES("127","es_ES","Niue","","",""); -INSERT INTO `country_i18n` VALUES("127","fr_FR","Niue","","",""); -INSERT INTO `country_i18n` VALUES("128","de_DE","Norwegen","","",""); -INSERT INTO `country_i18n` VALUES("128","en_US","Norway","","",""); -INSERT INTO `country_i18n` VALUES("128","es_ES","Noruega","","",""); -INSERT INTO `country_i18n` VALUES("128","fr_FR","Norvège","","",""); -INSERT INTO `country_i18n` VALUES("129","de_DE","Neuseeland","","",""); -INSERT INTO `country_i18n` VALUES("129","en_US","New Zealand","","",""); -INSERT INTO `country_i18n` VALUES("129","es_ES","Nueva Zelandia","","",""); -INSERT INTO `country_i18n` VALUES("129","fr_FR","Nouvelle-Zélande","","",""); -INSERT INTO `country_i18n` VALUES("130","de_DE","Oman","","",""); -INSERT INTO `country_i18n` VALUES("130","en_US","Oman","","",""); -INSERT INTO `country_i18n` VALUES("130","es_ES","Omán","","",""); -INSERT INTO `country_i18n` VALUES("130","fr_FR","Oman","","",""); -INSERT INTO `country_i18n` VALUES("131","de_DE","Uganda","","",""); -INSERT INTO `country_i18n` VALUES("131","en_US","Uganda","","",""); -INSERT INTO `country_i18n` VALUES("131","es_ES","","","",""); -INSERT INTO `country_i18n` VALUES("131","fr_FR","Ouganda","","",""); -INSERT INTO `country_i18n` VALUES("132","de_DE","Usbekistan","","",""); -INSERT INTO `country_i18n` VALUES("132","en_US","Uzbekistan","","",""); -INSERT INTO `country_i18n` VALUES("132","es_ES","Uzbekistán","","",""); -INSERT INTO `country_i18n` VALUES("132","fr_FR","Ouzbékistan","","",""); -INSERT INTO `country_i18n` VALUES("133","de_DE","Pakistan","","",""); -INSERT INTO `country_i18n` VALUES("133","en_US","Pakistan","","",""); -INSERT INTO `country_i18n` VALUES("133","es_ES","Pakistán","","",""); -INSERT INTO `country_i18n` VALUES("133","fr_FR","Pakistan","","",""); -INSERT INTO `country_i18n` VALUES("134","de_DE","Panama","","",""); -INSERT INTO `country_i18n` VALUES("134","en_US","Panama","","",""); -INSERT INTO `country_i18n` VALUES("134","es_ES","Panamá","","",""); -INSERT INTO `country_i18n` VALUES("134","fr_FR","Panama","","",""); -INSERT INTO `country_i18n` VALUES("135","de_DE","Papua-Neuguinea","","",""); -INSERT INTO `country_i18n` VALUES("135","en_US","Papua Nueva Guinea","","",""); -INSERT INTO `country_i18n` VALUES("135","es_ES","Papua Nueva Guinea","","",""); -INSERT INTO `country_i18n` VALUES("135","fr_FR","Papouasie","","",""); -INSERT INTO `country_i18n` VALUES("136","de_DE","Paraguay","","",""); -INSERT INTO `country_i18n` VALUES("136","en_US","Paraguay","","",""); -INSERT INTO `country_i18n` VALUES("136","es_ES","Paraguay","","",""); -INSERT INTO `country_i18n` VALUES("136","fr_FR","Paraguay","","",""); -INSERT INTO `country_i18n` VALUES("137","de_DE","Niederlande","","",""); -INSERT INTO `country_i18n` VALUES("137","en_US","Netherlands","","",""); -INSERT INTO `country_i18n` VALUES("137","es_ES","Países Bajos","","",""); -INSERT INTO `country_i18n` VALUES("137","fr_FR","Pays-Bas","","",""); -INSERT INTO `country_i18n` VALUES("138","de_DE","Peru","","",""); -INSERT INTO `country_i18n` VALUES("138","en_US","Peru","","",""); -INSERT INTO `country_i18n` VALUES("138","es_ES","Perú","","",""); -INSERT INTO `country_i18n` VALUES("138","fr_FR","Pérou","","",""); -INSERT INTO `country_i18n` VALUES("139","de_DE","Philippinen","","",""); -INSERT INTO `country_i18n` VALUES("139","en_US","Philippines","","",""); -INSERT INTO `country_i18n` VALUES("139","es_ES","Filipinas","","",""); -INSERT INTO `country_i18n` VALUES("139","fr_FR","Philippines","","",""); -INSERT INTO `country_i18n` VALUES("140","de_DE","Polen","","",""); -INSERT INTO `country_i18n` VALUES("140","en_US","Poland","","",""); -INSERT INTO `country_i18n` VALUES("140","es_ES","Polonia","","",""); -INSERT INTO `country_i18n` VALUES("140","fr_FR","Pologne","","",""); -INSERT INTO `country_i18n` VALUES("141","de_DE","Portugal","","",""); -INSERT INTO `country_i18n` VALUES("141","en_US","Portugal","","",""); -INSERT INTO `country_i18n` VALUES("141","es_ES","Portugal","","",""); -INSERT INTO `country_i18n` VALUES("141","fr_FR","Portugal","","",""); -INSERT INTO `country_i18n` VALUES("142","de_DE","Katar","","",""); -INSERT INTO `country_i18n` VALUES("142","en_US","Qatar","","",""); -INSERT INTO `country_i18n` VALUES("142","es_ES","Qatar","","",""); -INSERT INTO `country_i18n` VALUES("142","fr_FR","Qatar","","",""); -INSERT INTO `country_i18n` VALUES("143","de_DE","Zentralafrikanische Republik","","",""); -INSERT INTO `country_i18n` VALUES("143","en_US","Central African Republic","","",""); -INSERT INTO `country_i18n` VALUES("143","es_ES","República Centroafricana","","",""); -INSERT INTO `country_i18n` VALUES("143","fr_FR","République centrafricaine","","",""); -INSERT INTO `country_i18n` VALUES("144","de_DE","Dominikanische Republik","","",""); -INSERT INTO `country_i18n` VALUES("144","en_US","Dominican Republic","","",""); -INSERT INTO `country_i18n` VALUES("144","es_ES","República Dominicana","","",""); -INSERT INTO `country_i18n` VALUES("144","fr_FR","République dominicaine","","",""); -INSERT INTO `country_i18n` VALUES("145","de_DE","Tschechische Republik","","",""); -INSERT INTO `country_i18n` VALUES("145","en_US","Czech Republic","","",""); -INSERT INTO `country_i18n` VALUES("145","es_ES","República Checa","","",""); -INSERT INTO `country_i18n` VALUES("145","fr_FR","République tchèque","","",""); -INSERT INTO `country_i18n` VALUES("146","de_DE","Rumänien","","",""); -INSERT INTO `country_i18n` VALUES("146","en_US","Romania","","",""); -INSERT INTO `country_i18n` VALUES("146","es_ES","Rumania","","",""); -INSERT INTO `country_i18n` VALUES("146","fr_FR","Roumanie","","",""); -INSERT INTO `country_i18n` VALUES("147","de_DE","Vereinigtes Königreich","","",""); -INSERT INTO `country_i18n` VALUES("147","en_US","United Kingdom","","",""); -INSERT INTO `country_i18n` VALUES("147","es_ES","Reino Unido","","",""); -INSERT INTO `country_i18n` VALUES("147","fr_FR","Royaume-Uni","","",""); -INSERT INTO `country_i18n` VALUES("148","de_DE","Russland","","",""); -INSERT INTO `country_i18n` VALUES("148","en_US","Russia","","",""); -INSERT INTO `country_i18n` VALUES("148","es_ES","Rusia","","",""); -INSERT INTO `country_i18n` VALUES("148","fr_FR","Russie","","",""); -INSERT INTO `country_i18n` VALUES("149","de_DE","Ruanda","","",""); -INSERT INTO `country_i18n` VALUES("149","en_US","Rwanda","","",""); -INSERT INTO `country_i18n` VALUES("149","es_ES","Ruanda","","",""); -INSERT INTO `country_i18n` VALUES("149","fr_FR","Rwanda","","",""); -INSERT INTO `country_i18n` VALUES("150","de_DE","St. Kitts und Nevis","","",""); -INSERT INTO `country_i18n` VALUES("150","en_US","Saint Kitts and Nevis","","",""); -INSERT INTO `country_i18n` VALUES("150","es_ES","San Cristóbal","","",""); -INSERT INTO `country_i18n` VALUES("150","fr_FR","Saint-Christophe-et-Niévès","","",""); -INSERT INTO `country_i18n` VALUES("151","de_DE","St. Lucia","","",""); -INSERT INTO `country_i18n` VALUES("151","en_US","Saint Lucia","","",""); -INSERT INTO `country_i18n` VALUES("151","es_ES","Santa Lucía","","",""); -INSERT INTO `country_i18n` VALUES("151","fr_FR","Sainte-Lucie","","",""); -INSERT INTO `country_i18n` VALUES("152","de_DE","Saint-Marin","","",""); -INSERT INTO `country_i18n` VALUES("152","en_US","San Marino","","",""); -INSERT INTO `country_i18n` VALUES("152","es_ES","San Marino","","",""); -INSERT INTO `country_i18n` VALUES("152","fr_FR","Saint-Marin","","",""); -INSERT INTO `country_i18n` VALUES("153","de_DE","St. Vincent und die Grenadinen","","",""); -INSERT INTO `country_i18n` VALUES("153","en_US","Saint Vincent and the Grenadines","","",""); -INSERT INTO `country_i18n` VALUES("153","es_ES","San Vicente y las Granadinas","","",""); -INSERT INTO `country_i18n` VALUES("153","fr_FR","Saint-Vincent-et-les Grenadines","","",""); -INSERT INTO `country_i18n` VALUES("154","de_DE","Salomon-Inseln","","",""); -INSERT INTO `country_i18n` VALUES("154","en_US","Solomon Islands","","",""); -INSERT INTO `country_i18n` VALUES("154","es_ES","Salomón","","",""); -INSERT INTO `country_i18n` VALUES("154","fr_FR","Salomon","","",""); -INSERT INTO `country_i18n` VALUES("155","de_DE","El Salvador","","",""); -INSERT INTO `country_i18n` VALUES("155","en_US","El Salvador","","",""); -INSERT INTO `country_i18n` VALUES("155","es_ES","El Salvador","","",""); -INSERT INTO `country_i18n` VALUES("155","fr_FR","Salvador","","",""); -INSERT INTO `country_i18n` VALUES("156","de_DE","West-Samoa","","",""); -INSERT INTO `country_i18n` VALUES("156","en_US","Western Samoa","","",""); -INSERT INTO `country_i18n` VALUES("156","es_ES","Samoa","","",""); -INSERT INTO `country_i18n` VALUES("156","fr_FR","Samoa occidentales","","",""); -INSERT INTO `country_i18n` VALUES("157","de_DE","São Tomé und Príncipe","","",""); -INSERT INTO `country_i18n` VALUES("157","en_US","Sao Tome and Principe","","",""); -INSERT INTO `country_i18n` VALUES("157","es_ES","Santo Tomé y Príncipe","","",""); -INSERT INTO `country_i18n` VALUES("157","fr_FR","Sao Tomé-et-Principe","","",""); -INSERT INTO `country_i18n` VALUES("158","de_DE","Senegal","","",""); -INSERT INTO `country_i18n` VALUES("158","en_US","Senegal","","",""); -INSERT INTO `country_i18n` VALUES("158","es_ES","Senegal","","",""); -INSERT INTO `country_i18n` VALUES("158","fr_FR","Sénégal","","",""); -INSERT INTO `country_i18n` VALUES("159","de_DE","Seychellen","","",""); -INSERT INTO `country_i18n` VALUES("159","en_US","Seychelles","","",""); -INSERT INTO `country_i18n` VALUES("159","es_ES","Seychelles","","",""); -INSERT INTO `country_i18n` VALUES("159","fr_FR","Seychelles","","",""); -INSERT INTO `country_i18n` VALUES("160","de_DE","Sierra Leone","","",""); -INSERT INTO `country_i18n` VALUES("160","en_US","Sierra Leone","","",""); -INSERT INTO `country_i18n` VALUES("160","es_ES","Sierra Leona","","",""); -INSERT INTO `country_i18n` VALUES("160","fr_FR","Sierra Léone","","",""); -INSERT INTO `country_i18n` VALUES("161","de_DE","Singapur","","",""); -INSERT INTO `country_i18n` VALUES("161","en_US","Singapore","","",""); -INSERT INTO `country_i18n` VALUES("161","es_ES","Singapur","","",""); -INSERT INTO `country_i18n` VALUES("161","fr_FR","Singapour","","",""); -INSERT INTO `country_i18n` VALUES("162","de_DE","Slowakei","","",""); -INSERT INTO `country_i18n` VALUES("162","en_US","Slovakia","","",""); -INSERT INTO `country_i18n` VALUES("162","es_ES","Eslovaquia","","",""); -INSERT INTO `country_i18n` VALUES("162","fr_FR","Slovaquie","","",""); -INSERT INTO `country_i18n` VALUES("163","de_DE","Slowenien","","",""); -INSERT INTO `country_i18n` VALUES("163","en_US","Slovenia","","",""); -INSERT INTO `country_i18n` VALUES("163","es_ES","Eslovenia","","",""); -INSERT INTO `country_i18n` VALUES("163","fr_FR","Slovénie","","",""); -INSERT INTO `country_i18n` VALUES("164","de_DE","Somalia","","",""); -INSERT INTO `country_i18n` VALUES("164","en_US","Somalia","","",""); -INSERT INTO `country_i18n` VALUES("164","es_ES","Somalia","","",""); -INSERT INTO `country_i18n` VALUES("164","fr_FR","Somalie","","",""); -INSERT INTO `country_i18n` VALUES("165","de_DE","Sudan","","",""); -INSERT INTO `country_i18n` VALUES("165","en_US","Sudan","","",""); -INSERT INTO `country_i18n` VALUES("165","es_ES","Sudán","","",""); -INSERT INTO `country_i18n` VALUES("165","fr_FR","Soudan","","",""); -INSERT INTO `country_i18n` VALUES("166","de_DE","Sri Lanka","","",""); -INSERT INTO `country_i18n` VALUES("166","en_US","Sri Lanka","","",""); -INSERT INTO `country_i18n` VALUES("166","es_ES","Sri Lanka","","",""); -INSERT INTO `country_i18n` VALUES("166","fr_FR","Sri Lanka","","",""); -INSERT INTO `country_i18n` VALUES("167","de_DE","Schweden","","",""); -INSERT INTO `country_i18n` VALUES("167","en_US","Sweden","","",""); -INSERT INTO `country_i18n` VALUES("167","es_ES","Suecia","","",""); -INSERT INTO `country_i18n` VALUES("167","fr_FR","Suède","","",""); -INSERT INTO `country_i18n` VALUES("168","de_DE","Schweiz","","",""); -INSERT INTO `country_i18n` VALUES("168","en_US","Switzerland","","",""); -INSERT INTO `country_i18n` VALUES("168","es_ES","Suiza","","",""); -INSERT INTO `country_i18n` VALUES("168","fr_FR","Suisse","","",""); -INSERT INTO `country_i18n` VALUES("169","de_DE","Suriname","","",""); -INSERT INTO `country_i18n` VALUES("169","en_US","Suriname","","",""); -INSERT INTO `country_i18n` VALUES("169","es_ES","Suriname","","",""); -INSERT INTO `country_i18n` VALUES("169","fr_FR","Suriname","","",""); -INSERT INTO `country_i18n` VALUES("170","de_DE","Swaziland","","",""); -INSERT INTO `country_i18n` VALUES("170","en_US","Swaziland","","",""); -INSERT INTO `country_i18n` VALUES("170","es_ES","Swazilandia","","",""); -INSERT INTO `country_i18n` VALUES("170","fr_FR","Swaziland","","",""); -INSERT INTO `country_i18n` VALUES("171","de_DE","Syrien","","",""); -INSERT INTO `country_i18n` VALUES("171","en_US","Syria","","",""); -INSERT INTO `country_i18n` VALUES("171","es_ES","Siria","","",""); -INSERT INTO `country_i18n` VALUES("171","fr_FR","Syrie","","",""); -INSERT INTO `country_i18n` VALUES("172","de_DE","Tadschikistan","","",""); -INSERT INTO `country_i18n` VALUES("172","en_US","Tajikistan","","",""); -INSERT INTO `country_i18n` VALUES("172","es_ES","Tayikistán","","",""); -INSERT INTO `country_i18n` VALUES("172","fr_FR","Tadjikistan","","",""); -INSERT INTO `country_i18n` VALUES("173","de_DE","Tansania","","",""); -INSERT INTO `country_i18n` VALUES("173","en_US","Tanzania","","",""); -INSERT INTO `country_i18n` VALUES("173","es_ES","Tanzanía","","",""); -INSERT INTO `country_i18n` VALUES("173","fr_FR","Tanzanie","","",""); -INSERT INTO `country_i18n` VALUES("174","de_DE","Tschad","","",""); -INSERT INTO `country_i18n` VALUES("174","en_US","Chad","","",""); -INSERT INTO `country_i18n` VALUES("174","es_ES","Chad","","",""); -INSERT INTO `country_i18n` VALUES("174","fr_FR","Tchad","","",""); -INSERT INTO `country_i18n` VALUES("175","de_DE","Thailand","","",""); -INSERT INTO `country_i18n` VALUES("175","en_US","Thailand","","",""); -INSERT INTO `country_i18n` VALUES("175","es_ES","Tailandia","","",""); -INSERT INTO `country_i18n` VALUES("175","fr_FR","Thaïlande","","",""); -INSERT INTO `country_i18n` VALUES("176","de_DE","Togo","","",""); -INSERT INTO `country_i18n` VALUES("176","en_US","Togo","","",""); -INSERT INTO `country_i18n` VALUES("176","es_ES","Togo","","",""); -INSERT INTO `country_i18n` VALUES("176","fr_FR","Togo","","",""); -INSERT INTO `country_i18n` VALUES("177","de_DE","Tonga","","",""); -INSERT INTO `country_i18n` VALUES("177","en_US","Tonga","","",""); -INSERT INTO `country_i18n` VALUES("177","es_ES","Tonga","","",""); -INSERT INTO `country_i18n` VALUES("177","fr_FR","Îles Tonga","","",""); -INSERT INTO `country_i18n` VALUES("178","de_DE","Trinidad und Tobago","","",""); -INSERT INTO `country_i18n` VALUES("178","en_US","Trinidad and Tobago","","",""); -INSERT INTO `country_i18n` VALUES("178","es_ES","Trinidad y Tabago","","",""); -INSERT INTO `country_i18n` VALUES("178","fr_FR","Trinité-et-Tobago","","",""); -INSERT INTO `country_i18n` VALUES("179","de_DE","Tunesien","","",""); -INSERT INTO `country_i18n` VALUES("179","en_US","Tunisia","","",""); -INSERT INTO `country_i18n` VALUES("179","es_ES","Túnez","","",""); -INSERT INTO `country_i18n` VALUES("179","fr_FR","Tunisie","","",""); -INSERT INTO `country_i18n` VALUES("180","de_DE","Turkménistan","","",""); -INSERT INTO `country_i18n` VALUES("180","en_US","Turkmenistan","","",""); -INSERT INTO `country_i18n` VALUES("180","es_ES","Turkmenistán","","",""); -INSERT INTO `country_i18n` VALUES("180","fr_FR","Turkménistan","","",""); -INSERT INTO `country_i18n` VALUES("181","de_DE","Türkei","","",""); -INSERT INTO `country_i18n` VALUES("181","en_US","Turkey","","",""); -INSERT INTO `country_i18n` VALUES("181","es_ES","Turquía","","",""); -INSERT INTO `country_i18n` VALUES("181","fr_FR","Turquie","","",""); -INSERT INTO `country_i18n` VALUES("182","de_DE","Tuvalu","","",""); -INSERT INTO `country_i18n` VALUES("182","en_US","Tuvalu","","",""); -INSERT INTO `country_i18n` VALUES("182","es_ES","Tuvalu","","",""); -INSERT INTO `country_i18n` VALUES("182","fr_FR","Tuvalu","","",""); -INSERT INTO `country_i18n` VALUES("183","de_DE","Ukraine","","",""); -INSERT INTO `country_i18n` VALUES("183","en_US","Ukraine","","",""); -INSERT INTO `country_i18n` VALUES("183","es_ES","Ucrania","","",""); -INSERT INTO `country_i18n` VALUES("183","fr_FR","Ukraine","","",""); -INSERT INTO `country_i18n` VALUES("184","de_DE","Uruguay","","",""); -INSERT INTO `country_i18n` VALUES("184","en_US","Uruguay","","",""); -INSERT INTO `country_i18n` VALUES("184","es_ES","Uruguay","","",""); -INSERT INTO `country_i18n` VALUES("184","fr_FR","Uruguay","","",""); -INSERT INTO `country_i18n` VALUES("185","de_DE","der Vatikan","","",""); -INSERT INTO `country_i18n` VALUES("185","en_US","The Vatican","","",""); -INSERT INTO `country_i18n` VALUES("185","es_ES","El Vatican","","",""); -INSERT INTO `country_i18n` VALUES("185","fr_FR","Vatican","","",""); -INSERT INTO `country_i18n` VALUES("186","de_DE","Vanuatu","","",""); -INSERT INTO `country_i18n` VALUES("186","en_US","Vanuatu","","",""); -INSERT INTO `country_i18n` VALUES("186","es_ES","Vanuatu","","",""); -INSERT INTO `country_i18n` VALUES("186","fr_FR","Vanuatu","","",""); -INSERT INTO `country_i18n` VALUES("187","de_DE","Venezuela","","",""); -INSERT INTO `country_i18n` VALUES("187","en_US","Venezuela","","",""); -INSERT INTO `country_i18n` VALUES("187","es_ES","Venezuela","","",""); -INSERT INTO `country_i18n` VALUES("187","fr_FR","Vénézuela","","",""); -INSERT INTO `country_i18n` VALUES("188","de_DE","Vietnam","","",""); -INSERT INTO `country_i18n` VALUES("188","en_US","Vietnam","","",""); -INSERT INTO `country_i18n` VALUES("188","es_ES","Viet Nam","","",""); -INSERT INTO `country_i18n` VALUES("188","fr_FR","Viêt Nam","","",""); -INSERT INTO `country_i18n` VALUES("189","de_DE","Jemen","","",""); -INSERT INTO `country_i18n` VALUES("189","en_US","Yemen","","",""); -INSERT INTO `country_i18n` VALUES("189","es_ES","Yemen","","",""); -INSERT INTO `country_i18n` VALUES("189","fr_FR","Yémen","","",""); -INSERT INTO `country_i18n` VALUES("191","de_DE","Zaire","","",""); -INSERT INTO `country_i18n` VALUES("191","en_US","Zaire","","",""); -INSERT INTO `country_i18n` VALUES("191","es_ES","Zaire","","",""); -INSERT INTO `country_i18n` VALUES("191","fr_FR","Zaïre","","",""); -INSERT INTO `country_i18n` VALUES("192","de_DE","Sambia","","",""); -INSERT INTO `country_i18n` VALUES("192","en_US","Zambia","","",""); -INSERT INTO `country_i18n` VALUES("192","es_ES","Zambia","","",""); -INSERT INTO `country_i18n` VALUES("192","fr_FR","Zambie","","",""); -INSERT INTO `country_i18n` VALUES("193","de_DE","Zimbabwe","","",""); -INSERT INTO `country_i18n` VALUES("193","en_US","Zimbabwe","","",""); -INSERT INTO `country_i18n` VALUES("193","es_ES","Zimbabue","","",""); -INSERT INTO `country_i18n` VALUES("193","fr_FR","Zimbabwe","","",""); -INSERT INTO `country_i18n` VALUES("196","de_DE","","","",""); -INSERT INTO `country_i18n` VALUES("196","en_US","USA","","",""); -INSERT INTO `country_i18n` VALUES("196","es_ES","","","",""); -INSERT INTO `country_i18n` VALUES("196","fr_FR","États-Unis","","",""); -INSERT INTO `country_i18n` VALUES("246","de_DE","","","",""); -INSERT INTO `country_i18n` VALUES("246","en_US","Canada","","",""); -INSERT INTO `country_i18n` VALUES("246","es_ES","","","",""); -INSERT INTO `country_i18n` VALUES("246","fr_FR","Canada","","",""); -INSERT INTO `country_i18n` VALUES("259","de_DE","Guadeloupe","","",""); -INSERT INTO `country_i18n` VALUES("259","en_US","Guadeloupe","","",""); -INSERT INTO `country_i18n` VALUES("259","es_ES","Guadalupe","","",""); -INSERT INTO `country_i18n` VALUES("259","fr_FR","Guadeloupe","","",""); -INSERT INTO `country_i18n` VALUES("260","de_DE","Französisch-Guayana","","",""); -INSERT INTO `country_i18n` VALUES("260","en_US","Guyane Française","","",""); -INSERT INTO `country_i18n` VALUES("260","es_ES","Guayana Francesa","","",""); -INSERT INTO `country_i18n` VALUES("260","fr_FR","Guyane Française","","",""); -INSERT INTO `country_i18n` VALUES("261","de_DE","Martinique","","",""); -INSERT INTO `country_i18n` VALUES("261","en_US","Martinique","","",""); -INSERT INTO `country_i18n` VALUES("261","es_ES","Martinica","","",""); -INSERT INTO `country_i18n` VALUES("261","fr_FR","Martinique","","",""); -INSERT INTO `country_i18n` VALUES("262","de_DE","Mayotte","","",""); -INSERT INTO `country_i18n` VALUES("262","en_US","Mayotte","","",""); -INSERT INTO `country_i18n` VALUES("262","es_ES","Mayotte","","",""); -INSERT INTO `country_i18n` VALUES("262","fr_FR","Mayotte","","",""); -INSERT INTO `country_i18n` VALUES("263","de_DE","La Réunion","","",""); -INSERT INTO `country_i18n` VALUES("263","en_US","Réunion(La)","","",""); -INSERT INTO `country_i18n` VALUES("263","es_ES","Réunion(la)","","",""); -INSERT INTO `country_i18n` VALUES("263","fr_FR","Réunion(La)","","",""); -INSERT INTO `country_i18n` VALUES("264","de_DE","Saint-Pierre und Miquelon","","",""); -INSERT INTO `country_i18n` VALUES("264","en_US","St Pierre et Miquelon","","",""); -INSERT INTO `country_i18n` VALUES("264","es_ES","San Pedro y Miquelón","","",""); -INSERT INTO `country_i18n` VALUES("264","fr_FR","St Pierre et Miquelon","","",""); -INSERT INTO `country_i18n` VALUES("265","de_DE","Neu-Kaledonien","","",""); -INSERT INTO `country_i18n` VALUES("265","en_US","Nouvelle-Calédonie","","",""); -INSERT INTO `country_i18n` VALUES("265","es_ES","Nouvelle-Calédonie","","",""); -INSERT INTO `country_i18n` VALUES("265","fr_FR","Nouvelle-Calédonie","","",""); -INSERT INTO `country_i18n` VALUES("266","de_DE","Französisch-Polynesien","","",""); -INSERT INTO `country_i18n` VALUES("266","en_US","Polynésie française","","",""); -INSERT INTO `country_i18n` VALUES("266","es_ES","Polinesia Francesa","","",""); -INSERT INTO `country_i18n` VALUES("266","fr_FR","Polynésie française","","",""); -INSERT INTO `country_i18n` VALUES("267","de_DE","Wallis und Futuna","","",""); -INSERT INTO `country_i18n` VALUES("267","en_US","Wallis-et-Futuna","","",""); -INSERT INTO `country_i18n` VALUES("267","es_ES","Wallis-et-Futuna","","",""); -INSERT INTO `country_i18n` VALUES("267","fr_FR","Wallis-et-Futuna","","",""); -INSERT INTO `country_i18n` VALUES("269","de_DE","Hong Kong","","",""); -INSERT INTO `country_i18n` VALUES("269","en_US","Hong Kong","","",""); -INSERT INTO `country_i18n` VALUES("269","es_ES","Hong Kong","","",""); -INSERT INTO `country_i18n` VALUES("269","fr_FR","Hong Kong","","",""); -INSERT INTO `country_i18n` VALUES("270","de_DE","Saint-Barthélemy","","",""); -INSERT INTO `country_i18n` VALUES("270","en_US","Saint Barthélemy","","",""); -INSERT INTO `country_i18n` VALUES("270","es_ES","San Bartolomé","","",""); -INSERT INTO `country_i18n` VALUES("270","fr_FR","Saint-Barthélemy","","",""); -INSERT INTO `country_i18n` VALUES("271","de_DE","Saint-Martin (franz. Teil)","","",""); -INSERT INTO `country_i18n` VALUES("271","en_US","Saint Martin (French part)","","",""); -INSERT INTO `country_i18n` VALUES("271","es_ES","San Martín (parte francesa)","","",""); -INSERT INTO `country_i18n` VALUES("271","fr_FR","Saint-Martin (Antilles françaises)","","",""); -INSERT INTO `country_i18n` VALUES("272","de_DE","Französische Süd- und Antarktisgebiete","","",""); -INSERT INTO `country_i18n` VALUES("272","en_US","French Southern Territories","","",""); -INSERT INTO `country_i18n` VALUES("272","es_ES","Tierras Australes y Antárticas Francesas","","",""); -INSERT INTO `country_i18n` VALUES("272","fr_FR","Terres australes et antarctiques françaises","","",""); - - - -DROP TABLE `coupon`; - -CREATE TABLE `coupon` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(45) NOT NULL, - `type` varchar(255) NOT NULL, - `serialized_effects` longtext NOT NULL, - `is_enabled` tinyint(1) NOT NULL, - `start_date` datetime DEFAULT NULL, - `expiration_date` datetime DEFAULT NULL, - `max_usage` int(11) NOT NULL, - `is_cumulative` tinyint(1) NOT NULL, - `is_removing_postage` tinyint(1) NOT NULL, - `is_available_on_special_offers` tinyint(1) NOT NULL, - `is_used` tinyint(1) NOT NULL, - `serialized_conditions` text NOT NULL, - `per_customer_usage_count` tinyint(1) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `code_UNIQUE` (`code`), - KEY `idx_is_enabled` (`is_enabled`), - KEY `idx_is_used` (`is_used`), - KEY `idx_type` (`type`), - KEY `idx_start_date` (`start_date`), - KEY `idx_expiration_date` (`expiration_date`), - KEY `idx_is_cumulative` (`is_cumulative`), - KEY `idx_is_removing_postage` (`is_removing_postage`), - KEY `idx_max_usage` (`max_usage`), - KEY `idx_is_available_on_special_offers` (`is_available_on_special_offers`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `coupon_country`; - -CREATE TABLE `coupon_country` ( - `coupon_id` int(11) NOT NULL, - `country_id` int(11) NOT NULL, - PRIMARY KEY (`coupon_id`,`country_id`), - KEY `fk_country_id_idx` (`country_id`), - CONSTRAINT `fk_coupon_country_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_coupon_country_coupon_id` FOREIGN KEY (`coupon_id`) REFERENCES `coupon` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `coupon_customer_count`; - -CREATE TABLE `coupon_customer_count` ( - `coupon_id` int(11) NOT NULL, - `customer_id` int(11) NOT NULL, - `count` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`coupon_id`,`customer_id`), - KEY `fk_coupon_customer_customer_id_idx` (`customer_id`), - KEY `fk_coupon_customer_coupon_id_idx` (`coupon_id`), - CONSTRAINT `fk_coupon_customer_coupon_id` FOREIGN KEY (`coupon_id`) REFERENCES `coupon` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_coupon_customer_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `coupon_i18n`; - -CREATE TABLE `coupon_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) NOT NULL, - `short_description` text NOT NULL, - `description` longtext NOT NULL, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `coupon_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `coupon` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `coupon_module`; - -CREATE TABLE `coupon_module` ( - `coupon_id` int(11) NOT NULL, - `module_id` int(11) NOT NULL, - PRIMARY KEY (`coupon_id`,`module_id`), - KEY `fk_module_id_idx` (`module_id`), - CONSTRAINT `fk_coupon_module_coupon_id` FOREIGN KEY (`coupon_id`) REFERENCES `coupon` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_coupon_module_module_id` FOREIGN KEY (`module_id`) REFERENCES `module` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `coupon_version`; - -CREATE TABLE `coupon_version` ( - `id` int(11) NOT NULL, - `code` varchar(45) NOT NULL, - `type` varchar(255) NOT NULL, - `serialized_effects` longtext NOT NULL, - `is_enabled` tinyint(1) NOT NULL, - `start_date` datetime DEFAULT NULL, - `expiration_date` datetime DEFAULT NULL, - `max_usage` int(11) NOT NULL, - `is_cumulative` tinyint(1) NOT NULL, - `is_removing_postage` tinyint(1) NOT NULL, - `is_available_on_special_offers` tinyint(1) NOT NULL, - `is_used` tinyint(1) NOT NULL, - `serialized_conditions` text NOT NULL, - `per_customer_usage_count` tinyint(1) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`,`version`), - CONSTRAINT `coupon_version_FK_1` FOREIGN KEY (`id`) REFERENCES `coupon` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `currency`; - -CREATE TABLE `currency` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(45) DEFAULT NULL, - `symbol` varchar(45) DEFAULT NULL, - `format` char(10) DEFAULT NULL, - `rate` float DEFAULT NULL, - `visible` tinyint(4) DEFAULT '0', - `position` int(11) DEFAULT NULL, - `by_default` tinyint(4) DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_currency_by_default` (`by_default`), - KEY `idx_currency_code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8; - -INSERT INTO `currency` VALUES("1","EUR","€","%n %s","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("2","USD","$","%s%n","1.26","0","2","0","2017-02-28 18:20:10","2017-02-28 18:25:16"); -INSERT INTO `currency` VALUES("3","GBP","£","%s%n","0.89","0","3","0","2017-02-28 18:20:10","2017-02-28 18:25:18"); -INSERT INTO `currency` VALUES("4","CHF","CHF","%n %s","1.34183","0","4","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("5","MXN","$","%n %s","17.1304","0","5","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("6","PLN","zł","%n %s","3.8451","0","6","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("7","CNY","¥","%s %n","9.13916","0","7","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("8","NOK","kr","%n %s","7.97791","0","8","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("9","MDL","MDL","%n %s","16.1774","0","9","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("10","PYG","Gs","%n %s","6547.98","0","10","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("11","ARS","ARS","%n %s","5.39","0","11","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("12","BYR","р.","%n%s","1","0","12","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("13","FJD","$","%s%n","2.57483","0","13","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("14","RSD","RSD","%n %s","115.68","0","14","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("15","SEK","kr","%n %s","9.14651","0","15","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("16","HRK","kn","%n %s","1","0","16","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("17","DKK","kr","%n %s","7.45201","0","17","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("18","NGN","₦","%s %n","1","0","18","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("19","HKD","$","%n %s","11.0512","0","19","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("20","CAD","CAD$","%s%n","1.40054","0","20","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("21","SAR","﷼","%n %s","5.10682","0","21","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("22","CZK","Kč","%n %s","1","0","22","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("23","CRC","₡","%s %n","560","0","23","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("24","AZN","AZN","%n %s","1.09237","0","24","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("25","IDR","Rp‎","%n %s","12177.6","0","25","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("26","PKR","₨","%n %s","117.289","0","26","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("27","BRL","R$","%s %n","2.31583","0","27","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("28","VND","₫","%n %s","26505.8","0","28","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("29","PHP","PHP","%s %n","1","0","29","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("30","GTQ","Q","%n %s","11.0988","0","30","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("31","TRY","TL","%n %s","1.97638","0","31","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("32","JPY","¥","%s %n","113.786","0","32","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("33","RUB","руб","%n %s","41.7632","0","33","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("34","PEN","S/.","%s %n","2.7845","0","34","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("35","EGP","£","%s %n","7.77518","0","35","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("36","GEL","ლ","%n %s","2.46684","0","36","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("37","BOB","$b","%n %s","9.5762","0","37","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("38","AED","AED","%s %n","1","0","38","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("39","THB","฿","%n %s","41.4441","0","39","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("40","ILS","₪‎","%n%s","4.97713","0","40","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("41","MYR","RM","%s%n","1","0","41","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("42","VEF","Bs","%n %s","5.84819","0","42","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("43","HUF","Ft‎","%n %s","276.334","0","43","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("44","KES","KSh","%s %n","1","0","44","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("45","UAH","₴","%n %s","1","0","45","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("46","TND","DT","%n%s","1","0","46","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("47","BGN","лв","%n %s","1.9558","0","47","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `currency_i18n`; - -CREATE TABLE `currency_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `name` varchar(45) DEFAULT NULL, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `currency_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `currency` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `currency_i18n` VALUES("1","de_DE","Euro"); -INSERT INTO `currency_i18n` VALUES("1","en_US","Euro"); -INSERT INTO `currency_i18n` VALUES("1","es_ES","Euro"); -INSERT INTO `currency_i18n` VALUES("1","fr_FR","Euro"); -INSERT INTO `currency_i18n` VALUES("2","de_DE","US Dollar"); -INSERT INTO `currency_i18n` VALUES("2","en_US","United States Dollar"); -INSERT INTO `currency_i18n` VALUES("2","es_ES","Dólar Estadunidense"); -INSERT INTO `currency_i18n` VALUES("2","fr_FR","Dollar Américain"); -INSERT INTO `currency_i18n` VALUES("3","de_DE","Britische Pfund"); -INSERT INTO `currency_i18n` VALUES("3","en_US","UK Pound"); -INSERT INTO `currency_i18n` VALUES("3","es_ES","Libra Reino Unido"); -INSERT INTO `currency_i18n` VALUES("3","fr_FR","Livre anglaise"); -INSERT INTO `currency_i18n` VALUES("4","de_DE",""); -INSERT INTO `currency_i18n` VALUES("4","en_US","Franc"); -INSERT INTO `currency_i18n` VALUES("4","es_ES",""); -INSERT INTO `currency_i18n` VALUES("4","fr_FR","Franc"); -INSERT INTO `currency_i18n` VALUES("5","de_DE",""); -INSERT INTO `currency_i18n` VALUES("5","en_US","Peso"); -INSERT INTO `currency_i18n` VALUES("5","es_ES",""); -INSERT INTO `currency_i18n` VALUES("5","fr_FR","Peso"); -INSERT INTO `currency_i18n` VALUES("6","de_DE",""); -INSERT INTO `currency_i18n` VALUES("6","en_US","Złoty"); -INSERT INTO `currency_i18n` VALUES("6","es_ES",""); -INSERT INTO `currency_i18n` VALUES("6","fr_FR","Złoty"); -INSERT INTO `currency_i18n` VALUES("7","de_DE",""); -INSERT INTO `currency_i18n` VALUES("7","en_US","Yuan"); -INSERT INTO `currency_i18n` VALUES("7","es_ES",""); -INSERT INTO `currency_i18n` VALUES("7","fr_FR","Yuan"); -INSERT INTO `currency_i18n` VALUES("8","de_DE",""); -INSERT INTO `currency_i18n` VALUES("8","en_US","Krone"); -INSERT INTO `currency_i18n` VALUES("8","es_ES",""); -INSERT INTO `currency_i18n` VALUES("8","fr_FR","Couronne Norvégienne"); -INSERT INTO `currency_i18n` VALUES("9","de_DE",""); -INSERT INTO `currency_i18n` VALUES("9","en_US","Lei"); -INSERT INTO `currency_i18n` VALUES("9","es_ES",""); -INSERT INTO `currency_i18n` VALUES("9","fr_FR","Lei"); -INSERT INTO `currency_i18n` VALUES("10","de_DE",""); -INSERT INTO `currency_i18n` VALUES("10","en_US","Guaraní"); -INSERT INTO `currency_i18n` VALUES("10","es_ES",""); -INSERT INTO `currency_i18n` VALUES("10","fr_FR","Guaraní"); -INSERT INTO `currency_i18n` VALUES("11","de_DE",""); -INSERT INTO `currency_i18n` VALUES("11","en_US","Peso Argentino"); -INSERT INTO `currency_i18n` VALUES("11","es_ES",""); -INSERT INTO `currency_i18n` VALUES("11","fr_FR","Peso Argentin"); -INSERT INTO `currency_i18n` VALUES("12","de_DE",""); -INSERT INTO `currency_i18n` VALUES("12","en_US","Belarusian ruble"); -INSERT INTO `currency_i18n` VALUES("12","es_ES",""); -INSERT INTO `currency_i18n` VALUES("12","fr_FR","Rouble Biélorusse"); -INSERT INTO `currency_i18n` VALUES("13","de_DE","Dollar"); -INSERT INTO `currency_i18n` VALUES("13","en_US","Dollar"); -INSERT INTO `currency_i18n` VALUES("13","es_ES",""); -INSERT INTO `currency_i18n` VALUES("13","fr_FR","Dollar"); -INSERT INTO `currency_i18n` VALUES("14","de_DE",""); -INSERT INTO `currency_i18n` VALUES("14","en_US","Dinar"); -INSERT INTO `currency_i18n` VALUES("14","es_ES",""); -INSERT INTO `currency_i18n` VALUES("14","fr_FR","Dinar"); -INSERT INTO `currency_i18n` VALUES("15","de_DE",""); -INSERT INTO `currency_i18n` VALUES("15","en_US","Krona"); -INSERT INTO `currency_i18n` VALUES("15","es_ES",""); -INSERT INTO `currency_i18n` VALUES("15","fr_FR","Couronne Suédoise"); -INSERT INTO `currency_i18n` VALUES("16","de_DE",""); -INSERT INTO `currency_i18n` VALUES("16","en_US","Croatian Kuna"); -INSERT INTO `currency_i18n` VALUES("16","es_ES",""); -INSERT INTO `currency_i18n` VALUES("16","fr_FR","Kuna Croate"); -INSERT INTO `currency_i18n` VALUES("17","de_DE","Dänische Kronen"); -INSERT INTO `currency_i18n` VALUES("17","en_US","Danish krone"); -INSERT INTO `currency_i18n` VALUES("17","es_ES",""); -INSERT INTO `currency_i18n` VALUES("17","fr_FR","Couronne Danoise"); -INSERT INTO `currency_i18n` VALUES("18","de_DE",""); -INSERT INTO `currency_i18n` VALUES("18","en_US","Nigerian naira"); -INSERT INTO `currency_i18n` VALUES("18","es_ES",""); -INSERT INTO `currency_i18n` VALUES("18","fr_FR","Naira Nigérien"); -INSERT INTO `currency_i18n` VALUES("19","de_DE",""); -INSERT INTO `currency_i18n` VALUES("19","en_US","Hong Kong Dollar"); -INSERT INTO `currency_i18n` VALUES("19","es_ES","Dólar de Hong Kong"); -INSERT INTO `currency_i18n` VALUES("19","fr_FR","Dollar de Honk-Kong"); -INSERT INTO `currency_i18n` VALUES("20","de_DE","Dollar (CAD)"); -INSERT INTO `currency_i18n` VALUES("20","en_US","Dollar (CAD)"); -INSERT INTO `currency_i18n` VALUES("20","es_ES",""); -INSERT INTO `currency_i18n` VALUES("20","fr_FR","Dollar Canadien"); -INSERT INTO `currency_i18n` VALUES("21","de_DE",""); -INSERT INTO `currency_i18n` VALUES("21","en_US","Riyal"); -INSERT INTO `currency_i18n` VALUES("21","es_ES",""); -INSERT INTO `currency_i18n` VALUES("21","fr_FR","Riyal"); -INSERT INTO `currency_i18n` VALUES("22","de_DE",""); -INSERT INTO `currency_i18n` VALUES("22","en_US","Czech koruna"); -INSERT INTO `currency_i18n` VALUES("22","es_ES",""); -INSERT INTO `currency_i18n` VALUES("22","fr_FR","Couronne Tchèque"); -INSERT INTO `currency_i18n` VALUES("23","de_DE",""); -INSERT INTO `currency_i18n` VALUES("23","en_US","Colón"); -INSERT INTO `currency_i18n` VALUES("23","es_ES",""); -INSERT INTO `currency_i18n` VALUES("23","fr_FR","Colón"); -INSERT INTO `currency_i18n` VALUES("24","de_DE",""); -INSERT INTO `currency_i18n` VALUES("24","en_US","Manat"); -INSERT INTO `currency_i18n` VALUES("24","es_ES",""); -INSERT INTO `currency_i18n` VALUES("24","fr_FR","Manat"); -INSERT INTO `currency_i18n` VALUES("25","de_DE",""); -INSERT INTO `currency_i18n` VALUES("25","en_US","Rupiah"); -INSERT INTO `currency_i18n` VALUES("25","es_ES",""); -INSERT INTO `currency_i18n` VALUES("25","fr_FR","Roupie Indonésienne"); -INSERT INTO `currency_i18n` VALUES("26","de_DE",""); -INSERT INTO `currency_i18n` VALUES("26","en_US","Rupee"); -INSERT INTO `currency_i18n` VALUES("26","es_ES",""); -INSERT INTO `currency_i18n` VALUES("26","fr_FR","Roupie Pakistanaise"); -INSERT INTO `currency_i18n` VALUES("27","de_DE",""); -INSERT INTO `currency_i18n` VALUES("27","en_US","Real"); -INSERT INTO `currency_i18n` VALUES("27","es_ES",""); -INSERT INTO `currency_i18n` VALUES("27","fr_FR","Real"); -INSERT INTO `currency_i18n` VALUES("28","de_DE",""); -INSERT INTO `currency_i18n` VALUES("28","en_US","Đồng"); -INSERT INTO `currency_i18n` VALUES("28","es_ES",""); -INSERT INTO `currency_i18n` VALUES("28","fr_FR","Đồng"); -INSERT INTO `currency_i18n` VALUES("29","de_DE",""); -INSERT INTO `currency_i18n` VALUES("29","en_US","Philippine Peso"); -INSERT INTO `currency_i18n` VALUES("29","es_ES",""); -INSERT INTO `currency_i18n` VALUES("29","fr_FR","Peso Philippin"); -INSERT INTO `currency_i18n` VALUES("30","de_DE",""); -INSERT INTO `currency_i18n` VALUES("30","en_US","Quetzal"); -INSERT INTO `currency_i18n` VALUES("30","es_ES",""); -INSERT INTO `currency_i18n` VALUES("30","fr_FR","Quetzal"); -INSERT INTO `currency_i18n` VALUES("31","de_DE",""); -INSERT INTO `currency_i18n` VALUES("31","en_US","Lira"); -INSERT INTO `currency_i18n` VALUES("31","es_ES",""); -INSERT INTO `currency_i18n` VALUES("31","fr_FR","Lire"); -INSERT INTO `currency_i18n` VALUES("32","de_DE",""); -INSERT INTO `currency_i18n` VALUES("32","en_US","Yen"); -INSERT INTO `currency_i18n` VALUES("32","es_ES",""); -INSERT INTO `currency_i18n` VALUES("32","fr_FR","Yen"); -INSERT INTO `currency_i18n` VALUES("33","de_DE",""); -INSERT INTO `currency_i18n` VALUES("33","en_US","Ruble"); -INSERT INTO `currency_i18n` VALUES("33","es_ES",""); -INSERT INTO `currency_i18n` VALUES("33","fr_FR","Rouble"); -INSERT INTO `currency_i18n` VALUES("34","de_DE",""); -INSERT INTO `currency_i18n` VALUES("34","en_US","Nuevo Sol"); -INSERT INTO `currency_i18n` VALUES("34","es_ES",""); -INSERT INTO `currency_i18n` VALUES("34","fr_FR","Nuevo Sol"); -INSERT INTO `currency_i18n` VALUES("35","de_DE",""); -INSERT INTO `currency_i18n` VALUES("35","en_US","Pound"); -INSERT INTO `currency_i18n` VALUES("35","es_ES",""); -INSERT INTO `currency_i18n` VALUES("35","fr_FR","Livre"); -INSERT INTO `currency_i18n` VALUES("36","de_DE",""); -INSERT INTO `currency_i18n` VALUES("36","en_US","Lari"); -INSERT INTO `currency_i18n` VALUES("36","es_ES",""); -INSERT INTO `currency_i18n` VALUES("36","fr_FR","Lari"); -INSERT INTO `currency_i18n` VALUES("37","de_DE",""); -INSERT INTO `currency_i18n` VALUES("37","en_US","Boliviano"); -INSERT INTO `currency_i18n` VALUES("37","es_ES",""); -INSERT INTO `currency_i18n` VALUES("37","fr_FR","Bolivie"); -INSERT INTO `currency_i18n` VALUES("38","de_DE",""); -INSERT INTO `currency_i18n` VALUES("38","en_US","United Arab Emirates dirham"); -INSERT INTO `currency_i18n` VALUES("38","es_ES",""); -INSERT INTO `currency_i18n` VALUES("38","fr_FR","Dirham des Émirats Arabes Unis"); -INSERT INTO `currency_i18n` VALUES("39","de_DE",""); -INSERT INTO `currency_i18n` VALUES("39","en_US","Baht"); -INSERT INTO `currency_i18n` VALUES("39","es_ES",""); -INSERT INTO `currency_i18n` VALUES("39","fr_FR","Baht"); -INSERT INTO `currency_i18n` VALUES("40","de_DE",""); -INSERT INTO `currency_i18n` VALUES("40","en_US","Shekel"); -INSERT INTO `currency_i18n` VALUES("40","es_ES",""); -INSERT INTO `currency_i18n` VALUES("40","fr_FR","Shekel"); -INSERT INTO `currency_i18n` VALUES("41","de_DE",""); -INSERT INTO `currency_i18n` VALUES("41","en_US","Ringgit"); -INSERT INTO `currency_i18n` VALUES("41","es_ES",""); -INSERT INTO `currency_i18n` VALUES("41","fr_FR","Ringgit"); -INSERT INTO `currency_i18n` VALUES("42","de_DE",""); -INSERT INTO `currency_i18n` VALUES("42","en_US","Bolívar fuerte"); -INSERT INTO `currency_i18n` VALUES("42","es_ES",""); -INSERT INTO `currency_i18n` VALUES("42","fr_FR","Bolivar Vénézuélien"); -INSERT INTO `currency_i18n` VALUES("43","de_DE",""); -INSERT INTO `currency_i18n` VALUES("43","en_US","Forint"); -INSERT INTO `currency_i18n` VALUES("43","es_ES",""); -INSERT INTO `currency_i18n` VALUES("43","fr_FR","Forint"); -INSERT INTO `currency_i18n` VALUES("44","de_DE",""); -INSERT INTO `currency_i18n` VALUES("44","en_US","Kenyan shilling"); -INSERT INTO `currency_i18n` VALUES("44","es_ES",""); -INSERT INTO `currency_i18n` VALUES("44","fr_FR","Shilling Kenyan"); -INSERT INTO `currency_i18n` VALUES("45","de_DE",""); -INSERT INTO `currency_i18n` VALUES("45","en_US","Гривна"); -INSERT INTO `currency_i18n` VALUES("45","es_ES",""); -INSERT INTO `currency_i18n` VALUES("45","fr_FR","Hryvnia Ukrainien"); -INSERT INTO `currency_i18n` VALUES("46","de_DE",""); -INSERT INTO `currency_i18n` VALUES("46","en_US","Tunisian Dinar"); -INSERT INTO `currency_i18n` VALUES("46","es_ES",""); -INSERT INTO `currency_i18n` VALUES("46","fr_FR","Dinar Tunisien"); -INSERT INTO `currency_i18n` VALUES("47","de_DE",""); -INSERT INTO `currency_i18n` VALUES("47","en_US","Lev"); -INSERT INTO `currency_i18n` VALUES("47","es_ES",""); -INSERT INTO `currency_i18n` VALUES("47","fr_FR","Lev"); - - - -DROP TABLE `customer`; - -CREATE TABLE `customer` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `title_id` int(11) NOT NULL, - `lang_id` int(11) DEFAULT NULL, - `ref` varchar(50) DEFAULT NULL, - `firstname` varchar(255) NOT NULL, - `lastname` varchar(255) NOT NULL, - `email` varchar(255) DEFAULT NULL, - `password` varchar(255) DEFAULT NULL, - `algo` varchar(128) DEFAULT NULL, - `reseller` tinyint(4) DEFAULT NULL, - `sponsor` varchar(50) DEFAULT NULL, - `discount` decimal(16,6) DEFAULT '0.000000', - `remember_me_token` varchar(255) DEFAULT NULL, - `remember_me_serial` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `ref_UNIQUE` (`ref`), - KEY `idx_customer_customer_title_id` (`title_id`), - KEY `idx_customer_lang_id` (`lang_id`), - KEY `idx_email` (`email`), - CONSTRAINT `fk_customer_customer_title_id` FOREIGN KEY (`title_id`) REFERENCES `customer_title` (`id`), - CONSTRAINT `fk_customer_lang_id` FOREIGN KEY (`lang_id`) REFERENCES `lang` (`id`) ON DELETE SET NULL -) ENGINE=InnoDB AUTO_INCREMENT=125 DEFAULT CHARSET=utf8; - -INSERT INTO `customer` VALUES("33","1","1","PS_1","Laurent","LE CORRE","llecorre@netcourrier.com","$2y$10$RHV9fKE/KQMnK3SLwJlZk.oanrZVOO2f8fwFnGRm0eu8jEdqHVR1u","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-05-11 20:51:13","1","2017-05-11 20:51:13",""); -INSERT INTO `customer` VALUES("34","1","1","PS_2","Pascal ","PUJALTE","acig31@orange.fr","405c5794ffdcd1a39ac347fbb82c9336","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("35","1","1","PS_7","Jean-Marc","PUGINIER","jean-marc.puginier@orange.fr","2d475a23acdf0277e20f83cab98ba12d","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("36","1","1","PS_8","Gérald","PASTEL","gpastel.ext@orange.com","4787d170707b38b037ae55df3210e510","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("37","1","1","PS_9","Michel","MURAT","michel-murat@orange.fr","85532664a6f49d6d212428fdfbd2b1e7","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("38","1","1","PS_11","Guillaume","ESPARDELIER","guillaume.espardelier@sopra.com","11969c5c187e6e97ea2606ad7d135db9","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("40","1","1","PS_19","François","GAUTREAU","gautreau.francois@orange.fr","461a742c529c3bacdad5186b6b89f1c6","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("41","1","1","PS_23","Matthieu","SALMONESE","matthieu.salmonese@sfr.fr","8493e43d593ccc61dc5c3246c9517318","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("43","1","1","PS_36","Pascal","GUYON","pg.guyon@laposte.net","54050744aa97e52456f4b743c0171245","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("44","1","1","PS_54","Patrick","MARZARI","marzari@toto.fr","2413842b09b24dfbfa094e382d578ac9","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("45","1","1","PS_59","LARY","RALUY","laryraluy@gmail.com","40e4736cc17638c91d3a7755a76c3b50","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("46","1","1","PS_65","Philippe","PROTTI","philippe.protti25@gmail.com","96f598d10a47f2f2f1535c79d68ffb6f","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("47","1","1","PS_76","Jean-Marc","MOLINIÉ","jeanmarcmolinie@aol.com","98a049326925b0eafb7070d138e57127","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("48","1","1","PS_78","nicolas","GOURET","nico.gougou@hotmail.fr","58ad6bf0a9c067ed6928087293f631a5","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("64","2","1","PS_3","Violette","GUARDIA","l.guardia@free.fr","67a61e9a7cdc803682f305e7e208ecef","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("65","2","1","PS_4","Celine","BELOTTI","celinebelotti8888@gmail.com","446af3890da51debbf071661e1d7674d","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("66","2","1","PS_5","Virginie","RASPAUD","virginie.raspaud@gmail.com","bc092275d38be971781f95421a59b36b","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("67","2","1","PS_10","Karine","RENAULT-JOLY","joke.renault@orange.fr","b6a80c5f1e5378c566da3c17b20b593d","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("68","2","1","PS_12","Volatiana","RAELISON","volatiana.raelison@orange.com","531e509f64f166db365347e940521764","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("69","2","1","PS_14","Emmanuelle","STACCHETTI","manu1940@orange.fr","854c4a1d6ecc8459c3d81164d1ae2139","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("70","2","1","PS_15","Catherine","KOGEL","catherine.kogel@orange.com","fa39e369b04d5d5f4114001c3c838f31","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("71","2","1","PS_16","Pauline","DELMOTTE","delmotte.pauline@wanadoo.fr","12fcdce6244ecc810f08795bed72e999","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("72","2","1","PS_17","Elvire","CHANGEAT","changeat-elvire@orange.fr","20062c794464b265cbdc9e5ce057a3ff","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("74","2","1","PS_20","Sandra","MARON","smaron@repere21.fr","3b69a4ea70a5b98a3928d36ecc770560","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("75","2","1","PS_21","Marie-Christine","GARCIA","mariechristinegarcia1@orange.fr","685f526f9eebc184d9c7697a43573cca","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("76","2","1","PS_22","Sophie","THOMAS","sophie19@gmail.com","ba366f30639dccfbbcc3310bec65d877","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("77","2","1","PS_26","Sandra","MARON","ssuicmez@yahoo.fr","c44fb908023c0eb0726a398b5ebb91bd","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("78","2","1","PS_27","Myriam","BELOTTI","belotti.myriam@orange.fr","51b57189da598e3e09b5f5e019907f6c","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("79","2","1","PS_28","Stéphanie","BELOTTI","stephanie.belotti@hotmail.fr","49f1ae4b4d10925930fcfaa2a093930c","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("80","2","1","PS_29","Belotti","IMMOBILIER","belotti.immobilier@wanadoo.fr","85127b9cb2a23eaa1c8358f86f6c164e","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("81","2","1","PS_30","catherine","BOUSQUET","bousquetcatherine@bbox.fr","4bf7619cb170e22f2fcb55f692e6230f","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("82","2","1","PS_31","Karine","AGARD","d.agard@neuf.fr","db8367e2343453d5c36408fad7b17102","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("83","2","1","PS_32","Cécile","BOIAGO","cboiago@sfr.fr","ac9874bf6c76f6e394eae65ab9e914fb","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("84","2","1","PS_33","nolwenn","THIESSARD","nolwennthiessard@yahoo.fr","681ba3d13ae6fb269fa06ac2ae095bb6","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("85","2","1","PS_35","christine","PORTE","chris.porte31@gmail.com","2af179751fcf7acb70cec8314d0e230d","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("86","2","1","PS_37","loren","DOLDER","tahis2003@yahoo.fr","fb0742e7a939b1055a2cdc7502c0747d","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("87","2","1","PS_38","Sandra","TEULIER","sandra.teulier@orange.fr","85ea597ad54f703747d9d1e0aad3e63b","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("88","2","1","PS_39","Margot","BAUVAIS","margot.bauvais@gmail.com","ffb3e565c6c55d5acde1740d87a5e194","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("89","2","1","PS_40","Lydia","GUARDIA","nena.guardia@free.fr","d096aac522edff43cd2e0dc6af135fc3","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("90","2","1","PS_41","Sophie","BLANKE","epalkk@gmail.com","9302ea90cb50956feb44c1301ee0f2b9","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("91","2","1","PS_42","Rose","JEAN-PIERRE","rosejp@laposte.net","92daf4333b24fd79a7b721856763017a","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("92","2","1","PS_43","KARINE","DELILLE","kdelille@yahoo.com","06a5c07c2957739216b15183d3b11df7","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("93","2","1","PS_44","charlotte","ESMENJAUD","charlotte_dreyfuss@yahoo.fr","430740600cb396128442ed2361a3e552","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("94","2","1","PS_45","fanny","DELEPLANQUE","franck.deleplanque@hotmail.fr","6fbed6e8f7bfc26f8b8110617a0dabfb","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("95","2","1","PS_46","Elisabeth","GABAUD","elisabeth.gabaud@sopra.com","1000698d9a9327985abcdf8eb34d1ba7","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("96","2","1","PS_47","odile","DUBOIS BOUDES","odile.duboisboudesi@hotmail.fr","6231b645bb031a061988620f2337f162","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("97","2","1","PS_48","SARL VALESID","CURVES","curves.portetsurgaronne@orange.fr","a56d928a983a43575ee37506a779ad41","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("98","2","1","PS_49","Sabine","CAPPAROS","sabine.capparos@wanadoo.fr","1426908954d1d6fff2adc68c008caf4e","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("99","2","1","PS_51","elisabeth","CURVES","e.curves@hotmail.fr","b8698f24353bbdfef3d43ef6fea16500","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("100","2","1","PS_52","CORINE","LANFRANCO PRADEL","oiseaudelune@gmail.com","14769620507b5fbe06e58a28d8f2e7c3","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("101","2","1","PS_53","Corinne","AMAGAT","contact@domainedebelair.fr","61ce25dd6f0c39e6b92141d00bd5ab65","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("102","2","1","PS_55","Astride","LE CORRE","yolc@orange.fr","66747167e9127de2c6441932e8c22f4f","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("103","2","1","PS_56","Mercedes","RATINHO","ymratinho@icloud.com","d36e9024e40da2d2eba5d12b2ddd995e","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("104","2","1","PS_57","Clotilde","JAOUEN","clotilde.jaouen@gmail.com","df410c73803d1d622ac8f1dddc6e1a9d","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("105","2","1","PS_58","Myriam","DIEGUEZ","contact@dieguezetfils.com","fdbe7e6f0b73914a4521412c46d0142e","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("106","2","1","PS_60","elisabeth","HENNEBO","thebabey@hotmail.com","6cedf1346b3f4a11825d75d5d32a2402","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("107","2","1","PS_61","Dominique","RAMBAUD","ambre_juste@hotmail.com","20f67841748c37f26d5714e4ea0099f3","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("108","2","1","PS_62","dominique","LE CORRE","dominiquelc2@orange.fr","ff4c401862b579a617f6df02137a2785","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("109","2","1","PS_63","fabienne","TASSETTI CRÊPERIE LE BIDULE","tasfab@hotmail.fr","a3e62b2b98606e20d4a0cf6ae6a0421c","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("110","2","1","PS_64","Claire","MARTINI","martini.claire@orange.fr","28c117d30c8c3c59aabfd77bb24aa23d","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("111","2","1","PS_66","karine","GOETHALS","karine.kg@hotmail.fr","fd838ac56eb181542b92f9c635809082","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("112","2","1","PS_67","VERONIQUE","GASPERI","f.gasperi@orange.fr","39ef14e50b8eca25704d9c091d71784a","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("113","2","1","PS_68","Françoise","DAVID","fleurea31@gmail.com","49f1ae4b4d10925930fcfaa2a093930c","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("114","2","1","PS_69","AXELLE","LES GOURMANDISES DU VOLVESTRE","contact@les-gourmandises-du-volvestre.fr","054ee6f7e13e60d0d37fc3cbd4528471","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("115","2","1","PS_70","ODILE","MAILHE","odile@lrqdo.fr","6231b645bb031a061988620f2337f162","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("116","2","1","PS_71","Aurélie","SOUM","eternite_ephemere@hotmail.fr","13b4b3e592b27602150adb13296a778a","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("117","2","1","PS_72","valérie","MARCHESIN","valeriemarches@orange.fr","fe1c39ca3ee22034a721e1d2528b5549","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("118","2","1","PS_73","josiane","JEAN","josiane.jean54@free.fr","e431b5c849e25fa1bee1903b0e76e75a","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("119","2","1","PS_75","Genevieve","ROUJAS","genehugues@orange.fr","809486eacdb79ae6054e3f9b4cf93ad2","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("120","2","1","PS_77","Claire","PELLAT","claire.fiastre@gmail.com","e689f7299e837d69a9fb789b54bbd4f7","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("121","2","1","PS_79","Adèle","DELEBOIS","bonjour.delu@gmail.com","e4f56a32e71c0fdd6950dcd473d6df91","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("122","2","1","PS_80","BEAUMEL","MAGALI","PINk79red@hotmail.com","3a4db406db4d8208a5a7ae8b739bc89c","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("123","2","1","PS_81","julienne","BOUKRAA","juj75@live.fr","1aaea93cd49a36096ae89b42ff03a709","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("124","2","1","PS_82","Claire","LOZE","Claireloze31@gmail.com","820eda1117d3d177603d61913a082160","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); - - - -DROP TABLE `customer_title`; - -CREATE TABLE `customer_title` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `by_default` int(11) NOT NULL DEFAULT '0', - `position` varchar(45) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; - -INSERT INTO `customer_title` VALUES("1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `customer_title` VALUES("2","0","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `customer_title` VALUES("3","0","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `customer_title_i18n`; - -CREATE TABLE `customer_title_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `short` varchar(10) DEFAULT NULL, - `long` varchar(45) DEFAULT NULL, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `customer_title_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `customer_title` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `customer_title_i18n` VALUES("1","de_DE","Hr.","Herr"); -INSERT INTO `customer_title_i18n` VALUES("1","en_US","Mr.","Mister"); -INSERT INTO `customer_title_i18n` VALUES("1","es_ES","Sr.","Señor"); -INSERT INTO `customer_title_i18n` VALUES("1","fr_FR","M.","Monsieur"); -INSERT INTO `customer_title_i18n` VALUES("2","de_DE","Fr.","Frau"); -INSERT INTO `customer_title_i18n` VALUES("2","en_US","Mrs","Misses"); -INSERT INTO `customer_title_i18n` VALUES("2","es_ES","Sra","Señora"); -INSERT INTO `customer_title_i18n` VALUES("2","fr_FR","Mme","Madame"); -INSERT INTO `customer_title_i18n` VALUES("3","de_DE","Fr.","Fräulein"); -INSERT INTO `customer_title_i18n` VALUES("3","en_US","Miss_short","Miss"); -INSERT INTO `customer_title_i18n` VALUES("3","es_ES","Señorita","Señorita"); -INSERT INTO `customer_title_i18n` VALUES("3","fr_FR","Mlle","Mademoiselle"); - - - -DROP TABLE `customer_version`; - -CREATE TABLE `customer_version` ( - `id` int(11) NOT NULL, - `title_id` int(11) NOT NULL, - `lang_id` int(11) DEFAULT NULL, - `ref` varchar(50) DEFAULT NULL, - `firstname` varchar(255) NOT NULL, - `lastname` varchar(255) NOT NULL, - `email` varchar(255) DEFAULT NULL, - `password` varchar(255) DEFAULT NULL, - `algo` varchar(128) DEFAULT NULL, - `reseller` tinyint(4) DEFAULT NULL, - `sponsor` varchar(50) DEFAULT NULL, - `discount` decimal(16,6) DEFAULT '0.000000', - `remember_me_token` varchar(255) DEFAULT NULL, - `remember_me_serial` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - `order_ids` text, - `order_versions` text, - PRIMARY KEY (`id`,`version`), - CONSTRAINT `customer_version_FK_1` FOREIGN KEY (`id`) REFERENCES `customer` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `customer_version` VALUES("33","1","1","PS_1","Laurent","LE CORRE","llecorre@netcourrier.com","$2y$10$RHV9fKE/KQMnK3SLwJlZk.oanrZVOO2f8fwFnGRm0eu8jEdqHVR1u","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-05-11 20:51:13","1","2017-05-11 20:51:13","","",""); - - - -DROP TABLE `dpdpickup_price`; - -CREATE TABLE `dpdpickup_price` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `area_id` int(11) NOT NULL, - `weight_max` float NOT NULL, - `price` decimal(16,6) DEFAULT '0.000000', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `FI_dpdpickup_price_area_id` (`area_id`), - CONSTRAINT `fk_dpdpickup_price_area_id` FOREIGN KEY (`area_id`) REFERENCES `area` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `export`; - -CREATE TABLE `export` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(255) NOT NULL, - `position` int(11) NOT NULL, - `export_category_id` int(11) NOT NULL, - `handle_class` longtext NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `ref_UNIQUE` (`ref`), - KEY `fk_export_1_idx` (`export_category_id`), - CONSTRAINT `fk_export_export_category_id` FOREIGN KEY (`export_category_id`) REFERENCES `export_category` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; - -INSERT INTO `export` VALUES("1","thelia.export.mailing","1","1","Thelia\\ImportExport\\Export\\Type\\MailingExport","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export` VALUES("2","thelia.export.complete","2","1","Thelia\\ImportExport\\Export\\Type\\CustomerExport","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export` VALUES("3","thelia.export.prices","1","2","Thelia\\ImportExport\\Export\\Type\\ProductPricesExport","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export` VALUES("4","thelia.export.taxed_prices","2","2","Thelia\\ImportExport\\Export\\Type\\ProductTaxedPricesExport","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export` VALUES("5","thelia.export.product_seo","3","2","Thelia\\ImportExport\\Export\\Type\\ProductSEOExport","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export` VALUES("6","thelia.export.content","1","3","Thelia\\ImportExport\\Export\\Type\\ContentExport","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export` VALUES("7","thelia.export.orders","1","4","Thelia\\ImportExport\\Export\\Type\\OrderExport","2017-02-28 18:21:41","2017-02-28 18:21:41"); - - - -DROP TABLE `export_category`; - -CREATE TABLE `export_category` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(255) NOT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `ref_UNIQUE` (`ref`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; - -INSERT INTO `export_category` VALUES("1","thelia.export.customer","1","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export_category` VALUES("2","thelia.export.products","2","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export_category` VALUES("3","thelia.export.content","3","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export_category` VALUES("4","thelia.export.orders","4","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export_category` VALUES("5","thelia.export.modules","5","2017-02-28 18:21:40","2017-02-28 18:21:40"); - - - -DROP TABLE `export_category_i18n`; - -CREATE TABLE `export_category_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) NOT NULL, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `export_category_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `export_category` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `export_category_i18n` VALUES("1","en_US","Customers"); -INSERT INTO `export_category_i18n` VALUES("1","fr_FR","Clients"); -INSERT INTO `export_category_i18n` VALUES("2","en_US","Products"); -INSERT INTO `export_category_i18n` VALUES("2","fr_FR","Produits"); -INSERT INTO `export_category_i18n` VALUES("3","en_US","Content"); -INSERT INTO `export_category_i18n` VALUES("3","fr_FR","Contenu"); -INSERT INTO `export_category_i18n` VALUES("4","en_US","Orders"); -INSERT INTO `export_category_i18n` VALUES("4","fr_FR","Commandes"); -INSERT INTO `export_category_i18n` VALUES("5","en_US","Modules"); -INSERT INTO `export_category_i18n` VALUES("5","fr_FR","Modules"); - - - -DROP TABLE `export_i18n`; - -CREATE TABLE `export_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) NOT NULL, - `description` longtext, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `export_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `export` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `export_i18n` VALUES("1","en_US","Mailing","Export the last name, first name and email address of the newsletter subscribers"); -INSERT INTO `export_i18n` VALUES("1","fr_FR","Mailing","Exporter le nom, prénom et adresse mail des abonnés à la newsletter"); -INSERT INTO `export_i18n` VALUES("2","en_US","Customers","Export all the information about your customers"); -INSERT INTO `export_i18n` VALUES("2","fr_FR","Clients","Exporter toutes les informations à propos de vos clients"); -INSERT INTO `export_i18n` VALUES("3","en_US","Product prices excluding taxes","Export the prices of the products excluding taxes"); -INSERT INTO `export_i18n` VALUES("3","fr_FR","Prix des produits Hors-Taxes","Exporter le prix hors taxes de vos produits"); -INSERT INTO `export_i18n` VALUES("4","en_US","Product prices including taxes","Export the prices of the products including taxes"); -INSERT INTO `export_i18n` VALUES("4","fr_FR","Prix des produits TTC","Exporter le prix TTC de vos produits"); -INSERT INTO `export_i18n` VALUES("5","en_US","Product SEO information","\n Export the SEO information ( rewritten url, meta description and keywords, page title ) of your products\n "); -INSERT INTO `export_i18n` VALUES("5","fr_FR","Informations SEO des produits","\n Exporter les informations SEO de vos produits\n ( url réécrites, meta description et mots clés, titre ) de vos produits\n "); -INSERT INTO `export_i18n` VALUES("6","en_US","Contents and folder","\n Export your contents and their related folders\n "); -INSERT INTO `export_i18n` VALUES("6","fr_FR","Contenus et dossiers","\n Exporter vos contenus et les dossiers associés\n "); -INSERT INTO `export_i18n` VALUES("7","en_US","Full orders","\n Export your orders\n "); -INSERT INTO `export_i18n` VALUES("7","fr_FR","Commandes complètes","\n Exporter vos commandes\n "); - - - -DROP TABLE `feature`; - -CREATE TABLE `feature` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `visible` int(11) DEFAULT '0', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `feature` VALUES("1","0","1","2017-05-23 13:01:50","2017-05-27 17:20:32"); - - - -DROP TABLE `feature_av`; - -CREATE TABLE `feature_av` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `feature_id` int(11) NOT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_feature_av_feature_id` (`feature_id`), - CONSTRAINT `fk_feature_av_feature_id` FOREIGN KEY (`feature_id`) REFERENCES `feature` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `feature_av` VALUES("1","1","1","2017-05-23 13:02:17","2017-05-27 17:20:32"); - - - -DROP TABLE `feature_av_i18n`; - -CREATE TABLE `feature_av_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `feature_av_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `feature_av` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `feature_av_i18n` VALUES("1","fr_FR","Oui","","",""); - - - -DROP TABLE `feature_i18n`; - -CREATE TABLE `feature_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `feature_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `feature` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `feature_i18n` VALUES("1","fr_FR","PoidsEtUnite","","",""); - - - -DROP TABLE `feature_product`; - -CREATE TABLE `feature_product` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `product_id` int(11) NOT NULL, - `feature_id` int(11) NOT NULL, - `feature_av_id` int(11) DEFAULT NULL, - `free_text_value` text, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_feature_prod_product_id` (`product_id`), - KEY `idx_feature_prod_feature_id` (`feature_id`), - KEY `idx_feature_prod_feature_av_id` (`feature_av_id`), - KEY `idx_feature_product_product_id_feature_id_position` (`product_id`,`feature_id`,`position`), - CONSTRAINT `fk_feature_prod_feature_av_id` FOREIGN KEY (`feature_av_id`) REFERENCES `feature_av` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_feature_prod_feature_id` FOREIGN KEY (`feature_id`) REFERENCES `feature` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_feature_prod_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `feature_template`; - -CREATE TABLE `feature_template` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `feature_id` int(11) NOT NULL, - `template_id` int(11) NOT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_feature_template_id` (`feature_id`), - KEY `fk_feature_template_idx` (`template_id`), - KEY `idx_feature_template_template_id_position` (`template_id`,`position`), - CONSTRAINT `fk_feature_template` FOREIGN KEY (`template_id`) REFERENCES `template` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_feature_template_id` FOREIGN KEY (`feature_id`) REFERENCES `feature` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; - -INSERT INTO `feature_template` VALUES("1","1","1","1","2017-05-23 13:01:51","2017-05-23 13:01:51"); -INSERT INTO `feature_template` VALUES("2","1","2","1","2017-05-23 13:01:51","2017-05-23 13:01:51"); - - - -DROP TABLE `folder`; - -CREATE TABLE `folder` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `parent` int(11) NOT NULL DEFAULT '0', - `visible` tinyint(4) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `folder` VALUES("1","0","1","1","2017-05-11 23:48:09","2017-05-23 13:02:54","1","2017-05-11 23:48:09",""); - - - -DROP TABLE `folder_document`; - -CREATE TABLE `folder_document` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `folder_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_folder_document_folder_id` (`folder_id`), - CONSTRAINT `fk_folder_document_folder_id` FOREIGN KEY (`folder_id`) REFERENCES `folder` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `folder_document_i18n`; - -CREATE TABLE `folder_document_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `folder_document_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `folder_document` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `folder_i18n`; - -CREATE TABLE `folder_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - `meta_title` varchar(255) DEFAULT NULL, - `meta_description` text, - `meta_keywords` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `folder_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `folder` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `folder_i18n` VALUES("1","fr_FR","Taille de nos pots","","","","","",""); - - - -DROP TABLE `folder_image`; - -CREATE TABLE `folder_image` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `folder_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_folder_image_folder_id` (`folder_id`), - KEY `idx_folder_image_folder_id_position` (`folder_id`,`position`), - CONSTRAINT `fk_folder_image_folder_id` FOREIGN KEY (`folder_id`) REFERENCES `folder` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `folder_image_i18n`; - -CREATE TABLE `folder_image_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `folder_image_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `folder_image` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `folder_version`; - -CREATE TABLE `folder_version` ( - `id` int(11) NOT NULL, - `parent` int(11) NOT NULL DEFAULT '0', - `visible` tinyint(4) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`,`version`), - CONSTRAINT `folder_version_FK_1` FOREIGN KEY (`id`) REFERENCES `folder` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `folder_version` VALUES("1","0","1","1","2017-05-11 23:48:09","2017-05-11 23:48:09","1","2017-05-11 23:48:09",""); - - - -DROP TABLE `form_firewall`; - -CREATE TABLE `form_firewall` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `form_name` varchar(255) NOT NULL, - `ip_address` varchar(15) NOT NULL, - `attempts` tinyint(4) DEFAULT '1', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_form_firewall_form_name` (`form_name`), - KEY `idx_form_firewall_ip_address` (`ip_address`) -) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8; - -INSERT INTO `form_firewall` VALUES("4","thelia_customer_create","78.210.220.249","1","2017-03-02 16:04:43","2017-03-02 16:04:43"); -INSERT INTO `form_firewall` VALUES("16","thelia_customer_login","78.210.220.249","1","2017-05-27 17:11:18","2017-05-27 17:11:18"); -INSERT INTO `form_firewall` VALUES("27","thelia_admin_login","::1","1","2017-06-15 13:13:27","2017-06-15 13:13:27"); - - - -DROP TABLE `free_shipping`; - -CREATE TABLE `free_shipping` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `area_id` int(11) NOT NULL, - `amount` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `FI_area_associated_freeShipping_area_id` (`area_id`), - CONSTRAINT `fk_area_associated_freeShipping_area_id` FOREIGN KEY (`area_id`) REFERENCES `area` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `hook`; - -CREATE TABLE `hook` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(255) NOT NULL, - `type` tinyint(4) DEFAULT NULL, - `by_module` tinyint(1) DEFAULT NULL, - `native` tinyint(1) DEFAULT NULL, - `activate` tinyint(1) DEFAULT NULL, - `block` tinyint(1) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `code_UNIQUE` (`code`,`type`), - KEY `idx_module_activate` (`activate`) -) ENGINE=InnoDB AUTO_INCREMENT=3027 DEFAULT CHARSET=utf8; - -INSERT INTO `hook` VALUES("1","order-invoice.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2","order-invoice.delivery-address","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3","order-invoice.payment-extra","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("4","order-invoice.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("5","order-invoice.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("6","order-invoice.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("7","order-invoice.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("8","order-payment-gateway.body","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("9","order-payment-gateway.javascript","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("10","order-payment-gateway.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("11","order-payment-gateway.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("12","order-payment-gateway.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("13","sitemap.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("14","currency.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("15","currency.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("16","currency.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("17","currency.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("18","currency.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("19","login.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("20","login.main-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("21","login.form-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("22","login.form-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("23","login.main-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("24","login.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("25","login.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("26","login.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("27","login.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("28","account-update.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("29","account-update.form-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("30","account-update.form-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("31","account-update.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("32","account-update.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("33","account-update.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("34","account-update.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("35","cart.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("36","cart.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("37","cart.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("38","cart.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("39","cart.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("40","contact.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("41","contact.form-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("42","contact.form-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("43","contact.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("44","contact.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("45","contact.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("46","contact.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("47","order-placed.body","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("48","order-placed.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("49","order-placed.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("50","order-placed.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("51","search.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("52","search.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("53","search.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("54","register.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("55","register.form-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("56","register.form-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("57","register.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("58","register.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("59","register.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("60","register.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("61","password.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("62","password.form-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("63","password.form-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("64","password.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("65","password.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("66","password.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("67","password.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("68","language.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("69","language.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("70","language.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("71","language.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("72","language.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("73","contact.success","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("74","newsletter.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("75","newsletter.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("76","newsletter.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("77","newsletter.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("78","newsletter.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("79","badresponseorder.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("80","badresponseorder.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("81","badresponseorder.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("82","content.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("83","content.main-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("84","content.main-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("85","content.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("86","content.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("87","content.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("88","content.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("89","main.head-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("90","main.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("91","main.head-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("92","main.body-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("93","main.header-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("94","main.navbar-secondary","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("95","main.navbar-primary","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("96","main.header-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("97","main.content-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("98","main.content-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("99","main.footer-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("100","main.footer-body","1","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("101","main.footer-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("102","main.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("103","main.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("104","main.body-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("105","404.content","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("106","404.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("107","404.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("108","404.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("109","order-delivery.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("110","order-delivery.form-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("111","order-delivery.form-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("112","order-delivery.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("113","order-delivery.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("114","order-delivery.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("115","order-delivery.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("116","address-create.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("117","address-create.form-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("118","address-create.form-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("119","address-create.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("120","address-create.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("121","address-create.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("122","address-create.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("123","folder.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("124","folder.main-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("125","folder.main-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("126","folder.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("127","folder.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("128","folder.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("129","folder.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("130","order-failed.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("131","order-failed.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("132","order-failed.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("133","order-failed.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("134","order-failed.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("135","category.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("136","category.main-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("137","category.main-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("138","category.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("139","category.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("140","category.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("141","category.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("142","address-update.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("143","address-update.form-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("144","address-update.form-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("145","address-update.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("146","address-update.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("147","address-update.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("148","address-update.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("149","home.body","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("150","home.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("151","home.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("152","home.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("153","account-password.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("154","account-password.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("155","account-password.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("156","account-password.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("157","account-password.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("158","product.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("159","product.gallery","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("160","product.details-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("161","product.details-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("162","product.additional","1","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("163","product.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("164","product.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("165","product.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("166","product.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("167","account.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("168","account.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("169","account.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("170","account.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("171","account.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("172","viewall.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("173","viewall.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("174","viewall.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("175","viewall.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("176","viewall.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("177","singleproduct.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("178","singleproduct.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("179","category.sidebar-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("180","category.sidebar-body","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("181","category.sidebar-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("182","content.sidebar-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("183","content.sidebar-body","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("184","content.sidebar-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("185","order-delivery.extra","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("186","order-delivery.javascript","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("187","category.content-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("188","category.content-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("189","content.content-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("190","content.content-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("191","folder.content-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("192","folder.content-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("193","brand.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("194","brand.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("195","brand.main-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("196","brand.main-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("197","brand.content-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("198","brand.content-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("199","brand.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("200","brand.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("201","brand.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("202","brand.sidebar-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("203","brand.sidebar-body","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("204","brand.sidebar-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("205","account-order.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("206","account-order.information","1","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("207","account-order.after-information","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("208","account-order.delivery-information","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("209","account-order.delivery-address","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("210","account-order.invoice-information","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("211","account-order.invoice-address","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("212","account-order.after-addresses","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("213","account-order.products-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("214","account-order.product-extra","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("215","account-order.products-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("216","account-order.after-products","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("217","account-order.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("218","account-order.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("219","account-order.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("220","account-order.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("221","account.additional","1","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("222","account-order.product","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("223","mini-cart","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("224","sale.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("225","sale.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("226","sale.main-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("227","sale.main-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("228","sale.content-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("229","sale.content-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("230","sale.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("231","sale.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("232","sale.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("233","account-order.invoice-address-bottom","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("234","account-order.delivery-address-bottom","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("235","newsletter-unsubscribe.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("236","newsletter-unsubscribe.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("237","newsletter-unsubscribe.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("238","newsletter-unsubscribe.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("239","newsletter-unsubscribe.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1000","category.tab-content","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1001","content.tab-content","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1002","folder.tab-content","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1003","order.tab-content","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1004","product.tab-content","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1005","features-value.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1006","features-value.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1007","feature.value-create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1008","feature.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1009","product.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1010","coupon.create-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1011","taxes.update-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1012","tax-rule.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1013","tools.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1014","tools.col1-top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1015","tools.col1-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1016","tools.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1017","tools.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1018","messages.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1019","messages.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1020","messages.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1021","messages.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1022","message.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1023","message.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1024","messages.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1025","taxes-rules.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1026","taxes-rules.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1027","tax.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1028","tax.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1029","tax-rule.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1030","tax-rule.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1031","taxes-rules.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1032","exports.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1033","exports.row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1034","exports.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1035","exports.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1036","export.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1037","product.folders-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1038","product.folders-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1039","product.details-pricing-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1040","product.details-details-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1041","product.details-promotion-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1042","product.before-combinations","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1043","product.combinations-list-caption","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1044","product.after-combinations","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1045","product.combination-delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1046","modules.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1047","modules.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1048","currency.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1049","category.contents-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1050","category.contents-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1051","category.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1052","document.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1053","customer.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1054","customers.caption","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1055","customers.header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1056","customers.row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1057","customer.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1058","customer.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1059","customer.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1060","customers.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1061","product.contents-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1062","product.contents-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1063","product.accessories-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1064","product.accessories-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1065","product.categories-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1066","product.categories-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1067","product.attributes-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1068","product.attributes-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1069","product.features-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1070","product.features-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1071","template.attributes-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1072","template.attributes-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1073","template.features-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1074","template.features-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1075","templates.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1076","templates.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1077","templates.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1078","templates.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1079","template.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1080","template.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1081","templates.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1082","configuration.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1083","configuration.catalog-top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1084","configuration.catalog-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1085","configuration.shipping-top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1086","configuration.shipping-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1087","configuration.system-top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1088","configuration.system-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1089","configuration.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1090","configuration.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1091","index.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1092","index.middle","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1093","index.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1094","orders.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1095","orders.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1096","orders.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1097","orders.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1098","orders.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1099","shipping-zones.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1100","shipping-zones.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1101","shipping-zones.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1102","shipping-zones.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1103","shipping-zones.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1104","content.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1105","home.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1106","home.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1107","home.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1108","modules.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1109","modules.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1110","modules.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1111","languages.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1112","languages.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1113","language.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1114","languages.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1115","languages.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1116","zone.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1117","shipping-zones.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1118","system.logs-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1119","search.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1120","search.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1121","search.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1122","administrators.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1123","administrators.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1124","administrator.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1125","administrator.update-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1126","administrator.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1127","administrators.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1128","module-hook.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1129","shipping-configuration.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1130","shipping-configuration.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1131","shipping-configuration.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1132","shipping-configuration.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1133","shipping-configuration.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1134","shipping-configuration.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1135","shipping-configuration.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1136","features.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1137","features.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1138","features.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1139","features.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1140","feature.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1141","feature.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1142","feature.add-to-all-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1143","feature.remove-to-all-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1144","features.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1145","module.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1146","module-hook.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1147","module-hook.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1148","module-hook.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1149","shipping-configuration.edit","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1150","shipping-configuration.country-delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1151","shipping-configuration.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1152","mailing-system.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1153","mailing-system.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1154","mailing-system.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1155","categories.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1156","categories.caption","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1157","categories.header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1158","categories.row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1159","products.caption","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1160","products.header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1161","products.row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1162","categories.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1163","categories.catalog-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1164","category.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1165","product.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1166","category.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1167","product.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1168","categories.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1169","variables.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1170","variables.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1171","variables.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1172","variables.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1173","variable.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1174","variable.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1175","variables.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1176","order.product-list","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1177","order.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1178","config-store.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1179","translations.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1180","folders.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1181","folders.caption","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1182","folders.header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1183","folders.row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1184","contents.caption","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1185","contents.header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1186","contents.row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1187","folders.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1188","folder.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1189","content.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1190","folder.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1191","content.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1192","folders.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1193","template.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1194","tax.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1195","hook.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1196","countries.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1197","countries.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1198","countries.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1199","countries.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1200","country.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1201","country.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1202","countries.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1203","currencies.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1204","currencies.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1205","currencies.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1206","currencies.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1207","currency.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1208","currency.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1209","currencies.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1210","customer.edit","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1211","customer.address-create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1212","customer.address-update-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1213","customer.address-delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1214","customer.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1215","attributes-value.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1216","attributes-value.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1217","attribute-value.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1218","attribute.id-delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1219","attribute.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1220","profiles.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1221","profiles.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1222","profile.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1223","profile.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1224","profiles.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1225","country.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1226","profile.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1227","variable.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1228","coupon.update-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1229","coupon.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1230","coupon.list-caption","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1231","coupon.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1232","coupon.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1233","coupon.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1234","coupon.list-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1235","module.configuration","2","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1236","module.config-js","2","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1237","message.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1238","image.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1239","attributes.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1240","attributes.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1241","attributes.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1242","attributes.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1243","attribute.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1244","attribute.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1245","attribute.add-to-all-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1246","attribute.remove-to-all-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1247","attributes.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1248","admin-logs.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1249","admin-logs.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1250","admin-logs.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1251","folder.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1252","hooks.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1253","hooks.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1254","hooks.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1255","hooks.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1256","hook.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1257","hook.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1258","hooks.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1259","main.head-css","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1260","main.before-topbar","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1261","main.inside-topbar","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1262","main.after-topbar","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1263","main.before-top-menu","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1264","main.in-top-menu-items","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1265","main.after-top-menu","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1266","main.before-footer","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1267","main.in-footer","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1268","main.after-footer","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1269","main.footer-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1270","main.topbar-top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1271","main.topbar-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1272","main.top-menu-customer","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1273","main.top-menu-order","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1274","main.top-menu-catalog","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1275","main.top-menu-content","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1276","main.top-menu-tools","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1277","main.top-menu-modules","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1278","main.top-menu-configuration","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1279","brand.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1280","home.block","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1281","brands.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1282","brands.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1283","brands.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1284","brands.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1285","brand.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1286","brand.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1287","brand.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1288","imports.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1289","imports.row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1290","imports.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1291","imports.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1292","import.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1293","brand.tab-content","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1294","customer.orders-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1295","customer.orders-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1296","sales.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1297","sales.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1298","sales.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1299","sales.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1300","sale.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1301","sale.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1302","sales.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1303","product.combinations-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1304","main.before-content","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1305","main.after-content","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1306","category.tab","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1307","product.tab","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1308","folder.tab","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1309","content.tab","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1310","brand.tab","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1311","order-edit.bill-delivery-address","2","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1312","product.modification.form_top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1313","product.modification.form_bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1314","brand.update-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1315","sale.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1316","api.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1317","api.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1318","api.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1319","coupon.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1320","order.tab","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1321","profile.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1322","profile.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1323","import.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1324","import.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1325","export.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1326","export.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1327","category-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1328","category-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1329","brand-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1330","brand-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1331","attribute-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1332","attribute-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1333","currency-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1334","currency-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1335","country-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1336","country-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1337","content-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1338","content-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1339","feature-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1340","feature-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1341","document-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1342","document-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1343","customer-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1344","customer-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1345","image-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1346","image-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1347","hook-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1348","hook-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1349","folder-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1350","folder-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1351","module-hook-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1352","module-hook-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1353","module-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1354","module-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1355","message-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1356","message-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1357","profile-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1358","profile-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1359","product-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1360","product-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1361","order-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1362","order-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1363","shipping-zones-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1364","shipping-zones-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1365","shipping-configuration-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1366","shipping-configuration-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1367","sale-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1368","sale-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1369","variables-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1370","variables-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1371","template-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1372","template-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1373","tax-rule-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1374","tax-rule-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1375","tax-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1376","tax-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1377","order-edit.product-list","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1378","tab-seo.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1379","tab-seo.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1380","tab-image.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1381","tab-image.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1382","tab-document.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1383","tab-document.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1384","export.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1385","export.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1386","order-edit.customer-information-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1387","order-edit.payment-module-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1388","order-edit.delivery-module-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1389","tab-seo.update-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1390","order-edit.order-product-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1391","order-edit.order-product-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1392","administrators.header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1393","administrators.row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1394","advanced-configuration","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1395","advanced-configuration.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1396","brand.modification.form-right.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1397","brand.modification.form-right.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1398","category.modification.form-right.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1399","category.modification.form-right.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1400","content.modification.form-right.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1401","content.modification.form-right.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1402","folder.modification.form-right.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1403","folder.modification.form-right.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1404","product.modification.form-right.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1405","product.modification.form-right.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1406","state-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1407","state-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1408","state.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1409","states.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1410","states.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1411","states.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1412","states.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1413","state.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1414","state.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1415","states.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2001","invoice.css","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2002","invoice.header","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2003","invoice.footer-top","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2004","invoice.imprint","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2005","invoice.footer-bottom","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2006","invoice.information","3","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2007","invoice.after-information","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2008","invoice.delivery-address","3","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2009","invoice.after-addresses","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2010","invoice.after-products","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2011","invoice.after-summary","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2012","delivery.css","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2013","delivery.header","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2014","delivery.footer-top","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2015","delivery.imprint","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2016","delivery.footer-bottom","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2017","delivery.information","3","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2018","delivery.after-information","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2019","delivery.delivery-address","3","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2020","delivery.after-addresses","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2021","delivery.after-summary","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2022","order-placed.additional-payment-info","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2023","wysiwyg.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2024","order-edit.cart-top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2025","order-edit.cart-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2026","order-edit.bill-top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2027","order-edit.bill-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2028","order-edit.before-order-product-list","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2029","order-edit.before-order-product-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2030","order-edit.after-order-product-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2031","order-edit.after-order-product-list","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2032","invoice.after-payment-module","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2033","invoice.after-delivery-module","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2034","delivery.after-delivery-module","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2035","invoice.order-product","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2036","delivery.order-product","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3000","email-html.layout.css","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3001","email-html.layout.footer","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3002","email-html.order-confirmation.before-address","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3003","email-html.order-confirmation.delivery-address","4","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3004","email-html.order-confirmation.after-address","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3005","email-html.order-confirmation.order-product","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3006","email-html.order-confirmation.before-products","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3007","email-html.order-confirmation.after-products","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3008","email-html.order-confirmation.footer","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3009","email-html.order-notification.before-address","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3010","email-html.order-notification.delivery-address","4","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3011","email-html.order-notification.after-address","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3012","email-html.order-notification.order-product","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3013","email-html.order-notification.before-products","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3014","email-html.order-notification.after-products","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3015","email-txt.order-confirmation.before-address","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3016","email-txt.order-confirmation.delivery-address","4","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3017","email-txt.order-confirmation.after-address","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3018","email-txt.order-confirmation.order-product","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3019","email-txt.order-confirmation.before-products","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3020","email-txt.order-confirmation.after-products","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3021","email-txt.order-notification.before-address","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3022","email-txt.order-notification.delivery-address","4","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3023","email-txt.order-notification.after-address","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3024","email-txt.order-notification.order-product","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3025","email-txt.order-notification.before-products","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3026","email-txt.order-notification.after-products","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `hook_i18n`; - -CREATE TABLE `hook_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `hook_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `hook` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `hook_i18n` VALUES("1","de_DE","Bezahlungsmethode - oben","",""); -INSERT INTO `hook_i18n` VALUES("1","en_US","Invoice choice - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1","es_ES","Opción de factura - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1","fr_FR","Choix du mode de paiement - en haut","",""); -INSERT INTO `hook_i18n` VALUES("2","de_DE","Bezahlungsmethode - Lieferadresse","",""); -INSERT INTO `hook_i18n` VALUES("2","en_US","Invoice choice - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("2","es_ES","Opción de factura - dirección de envío","",""); -INSERT INTO `hook_i18n` VALUES("2","fr_FR","Choix du mode de paiement - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("3","de_DE","Bezahlungsmethode - extra payment zone","",""); -INSERT INTO `hook_i18n` VALUES("3","en_US","Invoice choice - extra payment zone","",""); -INSERT INTO `hook_i18n` VALUES("3","es_ES","Opción de factura - zona de pago extra","",""); -INSERT INTO `hook_i18n` VALUES("3","fr_FR","Choix du mode de paiement - zone de paiement supplémentaire","",""); -INSERT INTO `hook_i18n` VALUES("4","de_DE","Bezahlungsmethode - unten","",""); -INSERT INTO `hook_i18n` VALUES("4","en_US","Invoice choice - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("4","es_ES","Opción de factura - en la parte inferior de la factura","",""); -INSERT INTO `hook_i18n` VALUES("4","fr_FR","Choix du mode de paiement - en bas","",""); -INSERT INTO `hook_i18n` VALUES("5","de_DE","Bezahlungsmethode - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("5","en_US","Invoice choice - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("5","es_ES","Opción de factura - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("5","fr_FR","Choix du mode de paiement - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("6","de_DE","Bezahlungsmethode - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("6","en_US","Invoice choice - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("6","es_ES","Opción de factura - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("6","fr_FR","Choix du mode de paiement - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("7","de_DE","Bezahlungsmethode - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("7","en_US","Invoice choice - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("7","es_ES","Opción de factura - después de incluir javascript","",""); -INSERT INTO `hook_i18n` VALUES("7","fr_FR","Choix du mode de paiement - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("8","de_DE","Zahlung-Gateway - Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("8","en_US","Payment gateway - main area","",""); -INSERT INTO `hook_i18n` VALUES("8","es_ES","Pasarela de pago - área principal","",""); -INSERT INTO `hook_i18n` VALUES("8","fr_FR","Passerelle de paiement - zone principale","",""); -INSERT INTO `hook_i18n` VALUES("9","de_DE","Zahlung-Gateway - Javascript","",""); -INSERT INTO `hook_i18n` VALUES("9","en_US","Payment gateway - javascript","",""); -INSERT INTO `hook_i18n` VALUES("9","es_ES","Pasarela de pago - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("9","fr_FR","Passerelle de paiement - javascript","",""); -INSERT INTO `hook_i18n` VALUES("10","de_DE","Zahlung-Gateway - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("10","en_US","Payment gateway - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("10","es_ES","Pasarela de pago - después de inicializar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("10","fr_FR","Passerelle de paiement - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("11","de_DE","Zahlung-Gateway - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("11","en_US","Payment gateway - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("11","es_ES","Pasarela de pago - Hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("11","fr_FR","Passerelle de paiement - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("12","de_DE","Zahlung-Gateway - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("12","en_US","Payment gateway - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("12","es_ES","Pasarela de pago - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("12","fr_FR","Passerelle de paiement - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("13","de_DE","Sitemap - unten","",""); -INSERT INTO `hook_i18n` VALUES("13","en_US","Sitemap - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("13","es_ES","Mapa de sitio - en la base","",""); -INSERT INTO `hook_i18n` VALUES("13","fr_FR","Sitemap - en bas","",""); -INSERT INTO `hook_i18n` VALUES("14","de_DE","Währungswahl-Seite - oben","",""); -INSERT INTO `hook_i18n` VALUES("14","en_US","Curency selection page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("14","es_ES","Página de selección de divisa - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("14","fr_FR","Page du choix de la device - en haut","",""); -INSERT INTO `hook_i18n` VALUES("15","de_DE","Währungswahl-Seite - unten","",""); -INSERT INTO `hook_i18n` VALUES("15","en_US","Curency selection page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("15","es_ES","Página de selección de divisa - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("15","fr_FR","Page du choix de la device - en bas","",""); -INSERT INTO `hook_i18n` VALUES("16","de_DE","Währungswahl-Seite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("16","en_US","Curency selection page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("16","es_ES","Página de selección de divisa - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("16","fr_FR","Page du choix de la device - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("17","de_DE","Währungswahl-Seite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("17","en_US","Curency selection page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("17","es_ES","Página de selección de divisa - después de inclusión javascript","",""); -INSERT INTO `hook_i18n` VALUES("17","fr_FR","Page du choix de la device - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("18","de_DE","Währungswahl-Seite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("18","en_US","Curency selection page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("18","es_ES","Página de selección de divisa - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("18","fr_FR","Page du choix de la device - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("19","de_DE","Anmeldeseite - oben","",""); -INSERT INTO `hook_i18n` VALUES("19","en_US","Login page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("19","es_ES","Página de inicio de sesión - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("19","fr_FR","Page de connexion - en haut","",""); -INSERT INTO `hook_i18n` VALUES("20","de_DE","Anmeldeseite - oben an dem Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("20","en_US","Login page - at the top of the main area","",""); -INSERT INTO `hook_i18n` VALUES("20","es_ES","Página de inicio de sesión - en la parte superior del área principal","",""); -INSERT INTO `hook_i18n` VALUES("20","fr_FR","Page de connexion - en haut de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("21","de_DE","Anmeldeseite - oben im Formular","",""); -INSERT INTO `hook_i18n` VALUES("21","en_US","Login page - at the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("21","es_ES","Página de inicio de sesión - en la parte superior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("21","fr_FR","Page de connexion - en haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("22","de_DE","Anmeldeseite - unten an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("22","en_US","Login page - at the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("22","es_ES","Página de inicio de sesión - en la parte inferior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("22","fr_FR","Page de connexion - en bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("23","de_DE","Anmeldeseite - unten an dem Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("23","en_US","Login page - at the bottom of the main area","",""); -INSERT INTO `hook_i18n` VALUES("23","es_ES","Página de inicio de sesión - en la parte inferior del área principal","",""); -INSERT INTO `hook_i18n` VALUES("23","fr_FR","Page de connexion - en bas de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("24","de_DE","Anmeldeseite - unten","",""); -INSERT INTO `hook_i18n` VALUES("24","en_US","Login page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("24","es_ES","Página de inicio de sesión - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("24","fr_FR","Page de connexion - en bas","",""); -INSERT INTO `hook_i18n` VALUES("25","de_DE","Anmeldeseite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("25","en_US","Login page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("25","es_ES","Página de inicio de sesión - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("25","fr_FR","Page de connexion - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("26","de_DE","Anmeldeseite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("26","en_US","Login page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("26","es_ES","Página de inicio de sesión - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("26","fr_FR","Page de connexion - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("27","de_DE","Anmeldeseite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("27","en_US","Login page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("27","es_ES","Página de inicio de sesión - después de la inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("27","fr_FR","Page de connexion - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("28","de_DE","Kundenkonto Änderung - oben","",""); -INSERT INTO `hook_i18n` VALUES("28","en_US","Update customer account - at the top","",""); -INSERT INTO `hook_i18n` VALUES("28","es_ES","Actualización de cuenta de cliente - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("28","fr_FR","Modification compte client - en haut","",""); -INSERT INTO `hook_i18n` VALUES("29","de_DE","Kundenkonto Änderung - oben im Formular","",""); -INSERT INTO `hook_i18n` VALUES("29","en_US","Update customer account - at the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("29","es_ES","Actualización de cuenta de cliente - encabezado del formulario","",""); -INSERT INTO `hook_i18n` VALUES("29","fr_FR","Modification compte client - en haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("30","de_DE","Kundenkonto Änderung - unten an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("30","en_US","Update customer account - at the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("30","es_ES","Actualización de cuenta de cliente - al pie del formulario","",""); -INSERT INTO `hook_i18n` VALUES("30","fr_FR","Modification compte client - en bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("31","de_DE","Kundenkonto Änderung - unten","",""); -INSERT INTO `hook_i18n` VALUES("31","en_US","Update customer account - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("31","es_ES","Actualización de cuenta de cliente - al pie","",""); -INSERT INTO `hook_i18n` VALUES("31","fr_FR","Modification compte client - en bas","",""); -INSERT INTO `hook_i18n` VALUES("32","de_DE","Kundenkonto Änderung - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("32","en_US","Update customer account - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("32","es_ES","Actualización de cuenta del cliente - Hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("32","fr_FR","Modification compte client - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("33","de_DE","Kundenkonto Änderung - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("33","en_US","Update customer account - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("33","es_ES","Actualización de cuenta del cliente - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("33","fr_FR","Modification compte client - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("34","de_DE","Kundenkonto Änderung - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("34","en_US","Update customer account - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("34","es_ES","Actualización de cuenta de cliente - después de inicializar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("34","fr_FR","Modification compte client - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("35","de_DE","Warenkorb - oben ","",""); -INSERT INTO `hook_i18n` VALUES("35","en_US","Cart - at the top","",""); -INSERT INTO `hook_i18n` VALUES("35","es_ES","Carrito - En la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("35","fr_FR","Panier - en haut","",""); -INSERT INTO `hook_i18n` VALUES("36","de_DE","Warenkorb - unten","",""); -INSERT INTO `hook_i18n` VALUES("36","en_US","Cart - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("36","es_ES","Carrito - En la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("36","fr_FR","Panier - en bas","",""); -INSERT INTO `hook_i18n` VALUES("37","de_DE","Warenkorb - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("37","en_US","Cart - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("37","es_ES","Carro - después de inclusión javascript","",""); -INSERT INTO `hook_i18n` VALUES("37","fr_FR","Panier - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("38","de_DE","Warenkorb - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("38","en_US","Cart - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("38","es_ES","Carrito - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("38","fr_FR","Panier - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("39","de_DE","Warenkorb - Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("39","en_US","Cart - javascript initialization","",""); -INSERT INTO `hook_i18n` VALUES("39","es_ES","Carro - inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("39","fr_FR","Panier - initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("40","de_DE","Kontaktseite - oben","",""); -INSERT INTO `hook_i18n` VALUES("40","en_US","Contact page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("40","es_ES","Página de contacto - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("40","fr_FR","Page contact - en haut","",""); -INSERT INTO `hook_i18n` VALUES("41","de_DE","Kontaktseite - oben an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("41","en_US","Contact page - at the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("41","es_ES","Página de contacto - en la parte superior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("41","fr_FR","Page contact - en haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("42","de_DE","Kontaktseite - unten an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("42","en_US","Contact page - at the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("42","es_ES","Página de contacto - en la parte inferior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("42","fr_FR","Page contact - en bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("43","de_DE","Kontaktseite - unten","",""); -INSERT INTO `hook_i18n` VALUES("43","en_US","Contact page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("43","es_ES","Página de contacto - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("43","fr_FR","Page contact - en bas","",""); -INSERT INTO `hook_i18n` VALUES("44","de_DE","Kontaktseite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("44","en_US","Contact page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("44","es_ES","Página de contacto - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("44","fr_FR","Page contact - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("45","de_DE","Kontaktseite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("45","en_US","Contact page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("45","es_ES","Página de contacto - después del include de javascript","",""); -INSERT INTO `hook_i18n` VALUES("45","fr_FR","Page contact - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("46","de_DE","Kontaktseite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("46","en_US","Contact page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("46","es_ES","Página de contacto - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("46","fr_FR","Page contact - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("47","de_DE","Erteilten Auftrag - Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("47","en_US","Placed order - main area","",""); -INSERT INTO `hook_i18n` VALUES("47","es_ES","Orden registrada - área principal","",""); -INSERT INTO `hook_i18n` VALUES("47","fr_FR","Commande terminée - zone principale","",""); -INSERT INTO `hook_i18n` VALUES("48","de_DE","Erteilten Auftrag - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("48","en_US","Placed order - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("48","es_ES","Orden registrada - Hoja de estilo CSS","",""); -INSERT INTO `hook_i18n` VALUES("48","fr_FR","Commande terminée - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("49","de_DE","Erteilten Auftrag - nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("49","en_US","Placed order - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("49","es_ES","Orden registrada - después del javascript include","",""); -INSERT INTO `hook_i18n` VALUES("49","fr_FR","Commande terminée - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("50","de_DE","Erteilten Auftrag - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("50","en_US","Placed order - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("50","es_ES","Orden registrada - después de la inicialización de Javascript","",""); -INSERT INTO `hook_i18n` VALUES("50","fr_FR","Commande terminée - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("51","de_DE","Suche-Seite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("51","en_US","Search page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("51","es_ES","Página de búsqueda - Hoja de Estilos en Cascada","",""); -INSERT INTO `hook_i18n` VALUES("51","fr_FR","Page de recherche - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("52","de_DE","Suche-Seite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("52","en_US","Search page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("52","es_ES","Página de búsqueda - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("52","fr_FR","Page de recherche - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("53","de_DE","Suche-Seite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("53","en_US","Search page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("53","es_ES","Página de búsqueda - después de inicializar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("53","fr_FR","Page de recherche - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("54","de_DE","Konto-Erstellung - oben","",""); -INSERT INTO `hook_i18n` VALUES("54","en_US","Register - at the top","",""); -INSERT INTO `hook_i18n` VALUES("54","es_ES","Registro - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("54","fr_FR","Création de compte - en haut","",""); -INSERT INTO `hook_i18n` VALUES("55","de_DE","Konto-Erstellung - oben im Formular","",""); -INSERT INTO `hook_i18n` VALUES("55","en_US","Register - at the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("55","es_ES","Registro - en la parte superior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("55","fr_FR","Création de compte - en haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("56","de_DE","Konto-Erstellung - unten an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("56","en_US","Register - at the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("56","es_ES","Registro - en la parte inferior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("56","fr_FR","Création de compte - en bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("57","de_DE","Konto-Erstellung - unten","",""); -INSERT INTO `hook_i18n` VALUES("57","en_US","Register - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("57","es_ES","Registro - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("57","fr_FR","Création de compte - en bas","",""); -INSERT INTO `hook_i18n` VALUES("58","de_DE","Konto-Erstellung - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("58","en_US","Register - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("58","es_ES","Registro - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("58","fr_FR","Création de compte - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("59","de_DE","Konto-Erstellung - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("59","en_US","Register - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("59","es_ES","Registro - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("59","fr_FR","Création de compte - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("60","de_DE","Konto-Erstellung - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("60","en_US","Register - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("60","es_ES","Registro - después de la inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("60","fr_FR","Création de compte - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("61","de_DE","Passwort verloren - oben","",""); -INSERT INTO `hook_i18n` VALUES("61","en_US","Lost password - at the top","",""); -INSERT INTO `hook_i18n` VALUES("61","es_ES","Contraseña perdida - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("61","fr_FR","Mot de passe perdu - en haut","",""); -INSERT INTO `hook_i18n` VALUES("62","de_DE","Passwort verloren - oben im Formular","",""); -INSERT INTO `hook_i18n` VALUES("62","en_US","Lost password - at the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("62","es_ES","Contraseña perdida - en la parte superior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("62","fr_FR","Mot de passe perdu - en haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("63","de_DE","Passwort verloren - unten an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("63","en_US","Lost password - at the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("63","es_ES","Contraseña perdida - en la parte inferior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("63","fr_FR","Mot de passe perdu - en bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("64","de_DE","Passwort verloren - unten","",""); -INSERT INTO `hook_i18n` VALUES("64","en_US","Lost password - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("64","es_ES","Contraseña perdida - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("64","fr_FR","Mot de passe perdu - en bas","",""); -INSERT INTO `hook_i18n` VALUES("65","de_DE","Passwort verloren - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("65","en_US","Lost password - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("65","es_ES","Contraseña perdida - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("65","fr_FR","Mot de passe perdu - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("66","de_DE","Passwort verloren - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("66","en_US","Lost password - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("66","es_ES","Contraseña perdida - después de incluir javascript","",""); -INSERT INTO `hook_i18n` VALUES("66","fr_FR","Mot de passe perdu - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("67","de_DE","Passwort verloren - Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("67","en_US","Lost password - javascript initialization","",""); -INSERT INTO `hook_i18n` VALUES("67","es_ES","Contraseña perdida - inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("67","fr_FR","Mot de passe perdu - initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("68","de_DE","Sprachwahl Seite - oben","",""); -INSERT INTO `hook_i18n` VALUES("68","en_US","language selection page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("68","es_ES","página de selección de idioma - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("68","fr_FR","Page du choix du langage - en haut","",""); -INSERT INTO `hook_i18n` VALUES("69","de_DE","Sprachwahl Seite - unten","",""); -INSERT INTO `hook_i18n` VALUES("69","en_US","language selection page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("69","es_ES","página de selección de idioma - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("69","fr_FR","Page du choix du langage - en bas","",""); -INSERT INTO `hook_i18n` VALUES("70","de_DE","Sprachwahl Seite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("70","en_US","language selection page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("70","es_ES","página de selección de idioma - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("70","fr_FR","Page du choix du langage - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("71","de_DE","Sprachwahl Seite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("71","en_US","language selection page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("71","es_ES","página de selección de idioma - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("71","fr_FR","Page du choix du langage - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("72","de_DE","Sprachwahl Seite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("72","en_US","language selection page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("72","es_ES","página de selección de idioma - después de la inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("72","fr_FR","Page du choix du langage - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("73","de_DE","Kontaktseite - wenn erfolgreich","",""); -INSERT INTO `hook_i18n` VALUES("73","en_US","Contact page - if successful response","",""); -INSERT INTO `hook_i18n` VALUES("73","es_ES","Página de contacto - si la respuesta es exitosa","",""); -INSERT INTO `hook_i18n` VALUES("73","fr_FR","Page contact - en cas de succès","",""); -INSERT INTO `hook_i18n` VALUES("74","de_DE","Newletter-Seite - oben","",""); -INSERT INTO `hook_i18n` VALUES("74","en_US","Newsletter page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("74","es_ES","Página del boletín de noticias - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("74","fr_FR","Page newsletter - en haut","",""); -INSERT INTO `hook_i18n` VALUES("75","de_DE","Newletter-Seite - unten","",""); -INSERT INTO `hook_i18n` VALUES("75","en_US","Newsletter page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("75","es_ES","Página del boletín de noticias - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("75","fr_FR","Page newsletter - en bas","",""); -INSERT INTO `hook_i18n` VALUES("76","de_DE","Newletter-Seite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("76","en_US","Newsletter page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("76","es_ES","Página del boletín de noticias - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("76","fr_FR","Page newsletter - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("77","de_DE","Newletter-Seite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("77","en_US","Newsletter page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("77","es_ES","Página del boletín de noticias - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("77","fr_FR","Page newsletter - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("78","de_DE","Newletter-Seite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("78","en_US","Newsletter page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("78","es_ES","Página del boletín de noticias - después de la inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("78","fr_FR","Page newsletter - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("79","de_DE","Bezahlungs-Fehlschlagen - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("79","en_US","Payment failed - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("79","es_ES","Pago erróneo - Hoja de Estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("79","fr_FR","Échec du paiement - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("80","de_DE","Bezahlungs-Fehlschlagen - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("80","en_US","Payment failed - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("80","es_ES","Pago erróneo - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("80","fr_FR","Echec du paiement - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("81","de_DE","Bezahlungs-Fehlschlagen - Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("81","en_US","Payment failed - javascript initialization","",""); -INSERT INTO `hook_i18n` VALUES("81","es_ES","Pago erróneo - inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("81","fr_FR","Echec du paiement - initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("82","de_DE","Inhaltseite - oben","",""); -INSERT INTO `hook_i18n` VALUES("82","en_US","Content page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("82","es_ES","Página de contacto - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("82","fr_FR","Page de contenu - en haut","",""); -INSERT INTO `hook_i18n` VALUES("83","de_DE","Inhaltseite - oben an dem Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("83","en_US","Content page - at the top of the main area","",""); -INSERT INTO `hook_i18n` VALUES("83","es_ES","Página de contenido - en la parte superior de la zona principal","",""); -INSERT INTO `hook_i18n` VALUES("83","fr_FR","Page de contenu - en haut de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("84","de_DE","Inhaltseite - unten an dem Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("84","en_US","Content page - at the bottom of the main area","",""); -INSERT INTO `hook_i18n` VALUES("84","es_ES","Página de contenido - en la parte inferior de la zona principal","",""); -INSERT INTO `hook_i18n` VALUES("84","fr_FR","Page de contenu - en bas de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("85","de_DE","Inhaltseite - unten","",""); -INSERT INTO `hook_i18n` VALUES("85","en_US","Content page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("85","es_ES","Página de contacto - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("85","fr_FR","Page de contenu - en bas","",""); -INSERT INTO `hook_i18n` VALUES("86","de_DE","Inhaltseite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("86","en_US","Content page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("86","es_ES","Página de contacto - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("86","fr_FR","Page de contenu - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("87","de_DE","Inhaltseite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("87","en_US","Content page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("87","es_ES","Página de contacto - después del include de javascript","",""); -INSERT INTO `hook_i18n` VALUES("87","fr_FR","Page de contenu - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("88","de_DE","Inhaltseite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("88","en_US","Content page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("88","es_ES","Página de contacto - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("88","fr_FR","Page de contenu - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("89","de_DE","HTML Struktur - nach der Eröffnung des Head-Tag","",""); -INSERT INTO `hook_i18n` VALUES("89","en_US","HTML layout - after the opening of the head tag","",""); -INSERT INTO `hook_i18n` VALUES("89","es_ES","Diseño HTML - después de la etiqueta head de apertura","",""); -INSERT INTO `hook_i18n` VALUES("89","fr_FR","Structure HTML - après l\'ouverture de la balise head","",""); -INSERT INTO `hook_i18n` VALUES("90","de_DE","HTML Struktur - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("90","en_US","HTML layout - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("90","es_ES","Diseño HTML - hojas de estilo CSS","",""); -INSERT INTO `hook_i18n` VALUES("90","fr_FR","Structure HTML - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("91","de_DE","HTML Struktur - vor dem Ende des Head-Tag","",""); -INSERT INTO `hook_i18n` VALUES("91","en_US","HTML layout - before the end of the head tag","",""); -INSERT INTO `hook_i18n` VALUES("91","es_ES","Diseño HTML - antes de la etiqueta head de cierre","",""); -INSERT INTO `hook_i18n` VALUES("91","fr_FR","Structure HTML - avant la fin de la balise head","",""); -INSERT INTO `hook_i18n` VALUES("92","de_DE","HTML Struktur - nach der Eröffnung des Body-Tag","",""); -INSERT INTO `hook_i18n` VALUES("92","en_US","HTML layout - after the opening of the body tag","",""); -INSERT INTO `hook_i18n` VALUES("92","es_ES","Diseño HTML - después de la etiqueta body de apertura","",""); -INSERT INTO `hook_i18n` VALUES("92","fr_FR","Structure HTML - après l\'ouverture de la balise body","",""); -INSERT INTO `hook_i18n` VALUES("93","de_DE","HTML Struktur - oben an dem Header","",""); -INSERT INTO `hook_i18n` VALUES("93","en_US","HTML layout - at the top of the header","",""); -INSERT INTO `hook_i18n` VALUES("93","es_ES","Diseño HTML - en la parte superior de la cabecera","",""); -INSERT INTO `hook_i18n` VALUES("93","fr_FR","Structure HTML - en haut du header","",""); -INSERT INTO `hook_i18n` VALUES("94","de_DE","HTML Struktur - Sekundärenavigation","",""); -INSERT INTO `hook_i18n` VALUES("94","en_US","HTML layout - secondary navigation","",""); -INSERT INTO `hook_i18n` VALUES("94","es_ES","Diseño HTML - navegación secundaria","",""); -INSERT INTO `hook_i18n` VALUES("94","fr_FR","Structure HTML - navigation secondaire","",""); -INSERT INTO `hook_i18n` VALUES("95","de_DE","HTML Struktur - Hauptnavigation","",""); -INSERT INTO `hook_i18n` VALUES("95","en_US","HTML layout - primary navigation","",""); -INSERT INTO `hook_i18n` VALUES("95","es_ES","Diseño HTML - navegación principal","",""); -INSERT INTO `hook_i18n` VALUES("95","fr_FR","Structure HTML - navigation principale","",""); -INSERT INTO `hook_i18n` VALUES("96","de_DE","HTML Struktur - unten an dem Header","",""); -INSERT INTO `hook_i18n` VALUES("96","en_US","HTML layout - at the bottom of the header","",""); -INSERT INTO `hook_i18n` VALUES("96","es_ES","Diseño HTML - en la parte inferior de la cabecera","",""); -INSERT INTO `hook_i18n` VALUES("96","fr_FR","Structure HTML - en bas du header","",""); -INSERT INTO `hook_i18n` VALUES("97","de_DE","HTML Struktur - vor dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("97","en_US","HTML layout - before the main content area","",""); -INSERT INTO `hook_i18n` VALUES("97","es_ES","Diseño HTML - antes el área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("97","fr_FR","Structure HTML - au dessus de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("98","de_DE","HTML Struktur - nach dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("98","en_US","HTML layout - after the main content area","",""); -INSERT INTO `hook_i18n` VALUES("98","es_ES","Diseño HTML - después del área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("98","fr_FR","Structure HTML - en dessous de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("99","de_DE","HTML Struktur - oben an dem Footer","",""); -INSERT INTO `hook_i18n` VALUES("99","en_US","HTML layout - at the top of the footer","",""); -INSERT INTO `hook_i18n` VALUES("99","es_ES","Diseño HTML - en la parte superior del pie de página","",""); -INSERT INTO `hook_i18n` VALUES("99","fr_FR","Structure HTML - en haut du pied de page","",""); -INSERT INTO `hook_i18n` VALUES("100","de_DE","HTML Struktur - Footer Body","",""); -INSERT INTO `hook_i18n` VALUES("100","en_US","HTML layout - footer body","",""); -INSERT INTO `hook_i18n` VALUES("100","es_ES","Diseño HTML - cuerpo del pie de página","",""); -INSERT INTO `hook_i18n` VALUES("100","fr_FR","Structure HTML - corps du pied de page","",""); -INSERT INTO `hook_i18n` VALUES("101","de_DE","HTML Struktur - unten an dem Footer","",""); -INSERT INTO `hook_i18n` VALUES("101","en_US","HTML layout - bottom of the footer","",""); -INSERT INTO `hook_i18n` VALUES("101","es_ES","Diseño HTML - parte inferior del pie de página","",""); -INSERT INTO `hook_i18n` VALUES("101","fr_FR","Structure HTML - en bas du pied de page","",""); -INSERT INTO `hook_i18n` VALUES("102","de_DE","HTML Struktur - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("102","en_US","HTML layout - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("102","es_ES","Diseño HTML - después de incluir javascript","",""); -INSERT INTO `hook_i18n` VALUES("102","fr_FR","Structure HTML - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("103","de_DE","HTML Struktur - Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("103","en_US","HTML layout - javascript initialization","",""); -INSERT INTO `hook_i18n` VALUES("103","es_ES","Diseño HTML - inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("103","fr_FR","Structure HTML - initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("104","de_DE","HTML Struktur - vor dem Ende des Body-Tag","",""); -INSERT INTO `hook_i18n` VALUES("104","en_US","HTML layout - before the end body tag","",""); -INSERT INTO `hook_i18n` VALUES("104","es_ES","Diseño HTML - antes de la etiqueta body de cierre","",""); -INSERT INTO `hook_i18n` VALUES("104","fr_FR","Structure HTML - avant la fin de la balise body","",""); -INSERT INTO `hook_i18n` VALUES("105","de_DE","Seite nicht gefunden - Inhalts-Bereich","",""); -INSERT INTO `hook_i18n` VALUES("105","en_US","Page 404 - content area","",""); -INSERT INTO `hook_i18n` VALUES("105","es_ES","Página 404 - área de contenido","",""); -INSERT INTO `hook_i18n` VALUES("105","fr_FR","Page introuvable - zone de contenu","",""); -INSERT INTO `hook_i18n` VALUES("106","de_DE","Seite nicht gefunden - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("106","en_US","Page 404 - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("106","es_ES","Página 404 - CSS Hoja de estilos","",""); -INSERT INTO `hook_i18n` VALUES("106","fr_FR","Page introuvable - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("107","de_DE","Seite nicht gefunden - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("107","en_US","Page 404 - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("107","es_ES","Página 404 - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("107","fr_FR","Page introuvable - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("108","de_DE","Seite nicht gefunden - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("108","en_US","Page 404 - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("108","es_ES","Página 404 - después de inicializar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("108","fr_FR","Page introuvable - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("109","de_DE","Lieferwahl - oben","",""); -INSERT INTO `hook_i18n` VALUES("109","en_US","Delivery choice - at the top","",""); -INSERT INTO `hook_i18n` VALUES("109","es_ES","Opción de entrega - en la cabecera","",""); -INSERT INTO `hook_i18n` VALUES("109","fr_FR","Choix du transporteur - en haut","",""); -INSERT INTO `hook_i18n` VALUES("110","de_DE","Lieferwahl - oben an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("110","en_US","Delivery choice - at the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("110","es_ES","Opción de entrega - en la cabecera del formulario","",""); -INSERT INTO `hook_i18n` VALUES("110","fr_FR","Choix du transporteur - en haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("111","de_DE","Lieferwahl - unten an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("111","en_US","Delivery choice - at the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("111","es_ES","Opción de entrega - en el pie del formulario","",""); -INSERT INTO `hook_i18n` VALUES("111","fr_FR","Choix du transporteur - en bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("112","de_DE","Lieferwahl - unten","",""); -INSERT INTO `hook_i18n` VALUES("112","en_US","Delivery choice - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("112","es_ES","Elección de entrega - en el pie","",""); -INSERT INTO `hook_i18n` VALUES("112","fr_FR","Choix du transporteur - en bas","",""); -INSERT INTO `hook_i18n` VALUES("113","de_DE","Lieferwahl - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("113","en_US","Delivery choice - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("113","es_ES","Opción de entrega - despues de inicializar el javascript","",""); -INSERT INTO `hook_i18n` VALUES("113","fr_FR","Choix du transporteur - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("114","de_DE","Lieferwahl - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("114","en_US","Delivery choice - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("114","es_ES","Opción de entrega - CSS","",""); -INSERT INTO `hook_i18n` VALUES("114","fr_FR","Choix du transporteur - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("115","de_DE","Lieferwahl - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("115","en_US","Delivery choice - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("115","es_ES","Opción de entrega - después de incluir el javascript","",""); -INSERT INTO `hook_i18n` VALUES("115","fr_FR","Choix du transporteur - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("116","de_DE","Adresse Erstellung - oben","",""); -INSERT INTO `hook_i18n` VALUES("116","en_US","Address creation - at the top","",""); -INSERT INTO `hook_i18n` VALUES("116","es_ES","Creación de dirección - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("116","fr_FR","Création d\'adresse - en haut","",""); -INSERT INTO `hook_i18n` VALUES("117","de_DE","Adresse Erstellung - oben im Formular","",""); -INSERT INTO `hook_i18n` VALUES("117","en_US","Address creation - at the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("117","es_ES","Creación de dirección - en la parte superior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("117","fr_FR","Création d\'adresse - en haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("118","de_DE","Adresse Erstellung - unten im Formular","",""); -INSERT INTO `hook_i18n` VALUES("118","en_US","Address creation - at the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("118","es_ES","Creación de dirección - en la parte inferior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("118","fr_FR","Création d\'adresse - en bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("119","de_DE","Adresse Erstellung - unten","",""); -INSERT INTO `hook_i18n` VALUES("119","en_US","Address creation - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("119","es_ES","Creación de dirección - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("119","fr_FR","Création d\'adresse - en bas","",""); -INSERT INTO `hook_i18n` VALUES("120","de_DE","Adresse Erstellung - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("120","en_US","Address creation - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("120","es_ES","Creación de dirección - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("120","fr_FR","Création d\'adresse - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("121","de_DE","Adresse Erstellung - nach der Integration von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("121","en_US","Address creation - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("121","es_ES","Creación de dirección- después del include javascript","",""); -INSERT INTO `hook_i18n` VALUES("121","fr_FR","Création d\'adresse - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("122","de_DE","Adresse Erstellung - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("122","en_US","Address creation - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("122","es_ES","Creación de dirección - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("122","fr_FR","Création d\'adresse - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("123","de_DE","Ordnerseite - oben","",""); -INSERT INTO `hook_i18n` VALUES("123","en_US","Folder page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("123","es_ES","Carpeta de página - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("123","fr_FR","Page dossier - en haut","",""); -INSERT INTO `hook_i18n` VALUES("124","de_DE","Ordnerseite - oben an dem Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("124","en_US","Folder page - at the top of the main area","",""); -INSERT INTO `hook_i18n` VALUES("124","es_ES","Carpeta de página - en la parte superior del área principal","",""); -INSERT INTO `hook_i18n` VALUES("124","fr_FR","Page dossier - en haut de la zone principale","",""); -INSERT INTO `hook_i18n` VALUES("125","de_DE","Ordnerseite - unten an dem Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("125","en_US","Folder page - at the bottom of the main area","",""); -INSERT INTO `hook_i18n` VALUES("125","es_ES","Carpeta de página - al final del área principal","",""); -INSERT INTO `hook_i18n` VALUES("125","fr_FR","Page dossier - en bas de la zone principale","",""); -INSERT INTO `hook_i18n` VALUES("126","de_DE","Ordnerseite - unten","",""); -INSERT INTO `hook_i18n` VALUES("126","en_US","Folder page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("126","es_ES","Carpeta de página - al final","",""); -INSERT INTO `hook_i18n` VALUES("126","fr_FR","Page dossier - en bas","",""); -INSERT INTO `hook_i18n` VALUES("127","de_DE","Ordnerseite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("127","en_US","Folder page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("127","es_ES","Página de la carpeta - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("127","fr_FR","Page dossier - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("128","de_DE","Ordnerseite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("128","en_US","Folder page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("128","es_ES","Carpeta de página - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("128","fr_FR","Page dossier - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("129","de_DE","Ordnerseite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("129","en_US","Folder page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("129","es_ES","Carpeta de página - después de inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("129","fr_FR","Page dossier - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("130","de_DE","Fehlschlag der Bestellung - oben","",""); -INSERT INTO `hook_i18n` VALUES("130","en_US","Order failed - at the top","",""); -INSERT INTO `hook_i18n` VALUES("130","es_ES","Pedido erróneo - al tope","",""); -INSERT INTO `hook_i18n` VALUES("130","fr_FR","Échec de la commande - en haut","",""); -INSERT INTO `hook_i18n` VALUES("131","de_DE","Fehlschlag der Bestellung - unten","",""); -INSERT INTO `hook_i18n` VALUES("131","en_US","Order failed - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("131","es_ES","Pedido erróneo - al pie","",""); -INSERT INTO `hook_i18n` VALUES("131","fr_FR","Échec de la commande - en bas","",""); -INSERT INTO `hook_i18n` VALUES("132","de_DE","Fehlschlag der Bestellung - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("132","en_US","Order failed - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("132","es_ES","Pedido erróneo - Hoja de Estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("132","fr_FR","Échec de la commande - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("133","de_DE","Fehlschlag der Bestellung - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("133","en_US","Order failed - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("133","es_ES","Pedido erróneo - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("133","fr_FR","Echec de la commande - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("134","de_DE","Fehlschlag der Bestellung - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("134","en_US","Order failed - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("134","es_ES","Pedido erróneo - después de la inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("134","fr_FR","Echec de la commande - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("135","de_DE","Kategorieseite - oben","",""); -INSERT INTO `hook_i18n` VALUES("135","en_US","Category page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("135","es_ES","Página de la categoría - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("135","fr_FR","Page catégorie - en haut","",""); -INSERT INTO `hook_i18n` VALUES("136","de_DE","Kategorieseite - oben an dem Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("136","en_US","Category page - at the top of the main area","",""); -INSERT INTO `hook_i18n` VALUES("136","es_ES","Página de categoría - en la parte superior de la zona principal","",""); -INSERT INTO `hook_i18n` VALUES("136","fr_FR","Page catégorie - en haut de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("137","de_DE","Kategorieseite - unten an dem Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("137","en_US","Category page - at the bottom of the main area","",""); -INSERT INTO `hook_i18n` VALUES("137","es_ES","Página de la categoría - en la parte inferior de la zona principal","",""); -INSERT INTO `hook_i18n` VALUES("137","fr_FR","Page catégorie - en bas de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("138","de_DE","Kategorieseite - unten","",""); -INSERT INTO `hook_i18n` VALUES("138","en_US","Category page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("138","es_ES","Página de la categoría - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("138","fr_FR","Page catégorie - en bas","",""); -INSERT INTO `hook_i18n` VALUES("139","de_DE","Kategorieseite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("139","en_US","Category page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("139","es_ES","Página de la categoría - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("139","fr_FR","Page catégorie - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("140","de_DE","Kategorieseite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("140","en_US","Category page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("140","es_ES","Página de la categoría - después de inclusión javascript","",""); -INSERT INTO `hook_i18n` VALUES("140","fr_FR","Page catégorie - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("141","de_DE","Kategorieseite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("141","en_US","Category page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("141","es_ES","Página de la categoría - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("141","fr_FR","Page catégorie - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("142","de_DE","Adresseänderung - oben","",""); -INSERT INTO `hook_i18n` VALUES("142","en_US","Address update - at the top","",""); -INSERT INTO `hook_i18n` VALUES("142","es_ES","Actualizar dirección - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("142","fr_FR","Modification d\'adresse - en haut","",""); -INSERT INTO `hook_i18n` VALUES("143","de_DE","Adressänderung - oben im Formular","",""); -INSERT INTO `hook_i18n` VALUES("143","en_US","Address update - at the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("143","es_ES","Actualizar dirección - en la parte superior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("143","fr_FR","Modification d\'adresse - en haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("144","de_DE","Adresseänderung - unten im Formular","",""); -INSERT INTO `hook_i18n` VALUES("144","en_US","Address update - at the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("144","es_ES","Actualización de dirección - en la parte inferior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("144","fr_FR","Modification d\'adresse - en bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("145","de_DE","Adresseänderung - unten","",""); -INSERT INTO `hook_i18n` VALUES("145","en_US","Address update - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("145","es_ES","Actualización de dirección - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("145","fr_FR","Modification d\'adresse - en bas","",""); -INSERT INTO `hook_i18n` VALUES("146","de_DE","Adresseänderung - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("146","en_US","Address update - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("146","es_ES","Actualización de dirección - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("146","fr_FR","Modification d\'adresse - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("147","de_DE","Adresseänderung - nach der Integration von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("147","en_US","Address update - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("147","es_ES","Actualización de dirección - tras el include javascript","",""); -INSERT INTO `hook_i18n` VALUES("147","fr_FR","Modification d\'adresse - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("148","de_DE","Adresseänderung - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("148","en_US","Address update - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("148","es_ES","Actualización de dirección - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("148","fr_FR","Modification d\'adresse - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("149","de_DE","Startseite - Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("149","en_US","Home page - main area","",""); -INSERT INTO `hook_i18n` VALUES("149","es_ES","Página de inicio - Área Principal","",""); -INSERT INTO `hook_i18n` VALUES("149","fr_FR","Page d\'accueil - zone principale","",""); -INSERT INTO `hook_i18n` VALUES("150","de_DE","Startseite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("150","en_US","Home page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("150","es_ES","Página de inicio - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("150","fr_FR","Page d\'accueil - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("151","de_DE","Startseite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("151","en_US","Home page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("151","es_ES","Página de inicio - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("151","fr_FR","Page d\'accueil - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("152","de_DE","Startseite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("152","en_US","Home page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("152","es_ES","Página de inicio - después de la inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("152","fr_FR","Page d\'accueil - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("153","de_DE","Passwort Änderung - oben","",""); -INSERT INTO `hook_i18n` VALUES("153","en_US","Change password - at the top","",""); -INSERT INTO `hook_i18n` VALUES("153","es_ES","Cambiar contraseña - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("153","fr_FR","Changement de mot de passe - en haut","",""); -INSERT INTO `hook_i18n` VALUES("154","de_DE","Passwort Änderung - unten","",""); -INSERT INTO `hook_i18n` VALUES("154","en_US","Change password - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("154","es_ES","Cambiar contraseña - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("154","fr_FR","Changement de mot de passe - en bas","",""); -INSERT INTO `hook_i18n` VALUES("155","de_DE","Passwort Änderung - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("155","en_US","Change password - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("155","es_ES","Cambiar contraseña - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("155","fr_FR","Changement de mot de passe - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("156","de_DE","Passwort Änderung - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("156","en_US","Change password - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("156","es_ES","Cambiar contraseña - después de inclusión javascript","",""); -INSERT INTO `hook_i18n` VALUES("156","fr_FR","Changement de mot de passe - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("157","de_DE","Passwort Änderung - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("157","en_US","Change password - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("157","es_ES","Cambiar contraseña - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("157","fr_FR","Changement de mot de passe - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("158","de_DE","Produktseite - oben","",""); -INSERT INTO `hook_i18n` VALUES("158","en_US","Product page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("158","es_ES","Página de producto - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("158","fr_FR","Page produit - en haut","",""); -INSERT INTO `hook_i18n` VALUES("159","de_DE","Produktseite - Bilder-Gallerie","",""); -INSERT INTO `hook_i18n` VALUES("159","en_US","Product page - photo gallery","",""); -INSERT INTO `hook_i18n` VALUES("159","es_ES","Página de producto - Galería de fotos","",""); -INSERT INTO `hook_i18n` VALUES("159","fr_FR","Page produit - galerie photos","",""); -INSERT INTO `hook_i18n` VALUES("160","de_DE","Produktseite - oben dem Details-Bereich","",""); -INSERT INTO `hook_i18n` VALUES("160","en_US","Product page - at the top of the detail","",""); -INSERT INTO `hook_i18n` VALUES("160","es_ES","Página de producto - en la parte superior del detalle","",""); -INSERT INTO `hook_i18n` VALUES("160","fr_FR","Page produit - en haut de la zone détail","",""); -INSERT INTO `hook_i18n` VALUES("161","de_DE","Produktseite - unten dem Details-Bereich","",""); -INSERT INTO `hook_i18n` VALUES("161","en_US","Product page - at the bottom of the detail area","",""); -INSERT INTO `hook_i18n` VALUES("161","es_ES","Página de producto - en la parte inferior del área de detalle","",""); -INSERT INTO `hook_i18n` VALUES("161","fr_FR","Page produit - en dessous de la zone de détail","",""); -INSERT INTO `hook_i18n` VALUES("162","de_DE","Produktseite - erweitere Informationen","",""); -INSERT INTO `hook_i18n` VALUES("162","en_US","Product page - additional information","",""); -INSERT INTO `hook_i18n` VALUES("162","es_ES","Página de producto - información adicional","",""); -INSERT INTO `hook_i18n` VALUES("162","fr_FR","Page produit - informations additionnelles","",""); -INSERT INTO `hook_i18n` VALUES("163","de_DE","Produktseite - unten","",""); -INSERT INTO `hook_i18n` VALUES("163","en_US","Product page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("163","es_ES","Página de producto - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("163","fr_FR","Page produit - en bas","",""); -INSERT INTO `hook_i18n` VALUES("164","de_DE","Produktseite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("164","en_US","Product page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("164","es_ES","Página de producto - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("164","fr_FR","Page produit - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("165","de_DE","Produktseite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("165","en_US","Product page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("165","es_ES","Página de producto - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("165","fr_FR","Page produit - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("166","de_DE","Produktseite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("166","en_US","Product page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("166","es_ES","Página de producto - después de la inicialización de Javascript","",""); -INSERT INTO `hook_i18n` VALUES("166","fr_FR","Page produit - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("167","de_DE","Kundenkonto - oben","",""); -INSERT INTO `hook_i18n` VALUES("167","en_US","customer account - at the top","",""); -INSERT INTO `hook_i18n` VALUES("167","es_ES","cuenta de cliente - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("167","fr_FR","Compte client - en haut","",""); -INSERT INTO `hook_i18n` VALUES("168","de_DE","Kundenkonto - unten","",""); -INSERT INTO `hook_i18n` VALUES("168","en_US","customer account - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("168","es_ES","cuenta de cliente - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("168","fr_FR","Compte client - en bas","",""); -INSERT INTO `hook_i18n` VALUES("169","de_DE","Kundenkonto - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("169","en_US","customer account - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("169","es_ES","cuenta de cliente - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("169","fr_FR","Compte client - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("170","de_DE","Kundenkonto - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("170","en_US","customer account - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("170","es_ES","cuenta de cliente - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("170","fr_FR","Compte client - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("171","de_DE","Kundenkonto - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("171","en_US","customer account - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("171","es_ES","cuenta de cliente - después de la inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("171","fr_FR","Compte client - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("172","de_DE","Alle Produkte - oben","",""); -INSERT INTO `hook_i18n` VALUES("172","en_US","All Products - at the top","",""); -INSERT INTO `hook_i18n` VALUES("172","es_ES","Todos los productos - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("172","fr_FR","Tous les produits - en haut","",""); -INSERT INTO `hook_i18n` VALUES("173","de_DE","Alle Produkte - unten","",""); -INSERT INTO `hook_i18n` VALUES("173","en_US","All Products - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("173","es_ES","Todos los productos - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("173","fr_FR","Tous les produits - en bas","",""); -INSERT INTO `hook_i18n` VALUES("174","de_DE","Alle Produkte - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("174","en_US","All Products - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("174","es_ES","Todos los productos - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("174","fr_FR","Tous les produits - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("175","de_DE","Alle Produkte - nach der Integration von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("175","en_US","All Products - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("175","es_ES","Todos los productos - después de include javascript","",""); -INSERT INTO `hook_i18n` VALUES("175","fr_FR","Tous les produits - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("176","de_DE","Alle Produkte - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("176","en_US","All Products - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("176","es_ES","Todos los productos - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("176","fr_FR","Tous les produits - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("177","de_DE","Produkt-Loop - oben","",""); -INSERT INTO `hook_i18n` VALUES("177","en_US","Product loop - at the top","",""); -INSERT INTO `hook_i18n` VALUES("177","es_ES","Ciclo del producto - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("177","fr_FR","Boucle produit - en haut","",""); -INSERT INTO `hook_i18n` VALUES("178","de_DE","Produkt-Loop - unten","",""); -INSERT INTO `hook_i18n` VALUES("178","en_US","Product loop - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("178","es_ES","Ciclo del producto - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("178","fr_FR","Boucle produit - en bas","",""); -INSERT INTO `hook_i18n` VALUES("179","de_DE","Kategorieseite - oben an der Sidebar","",""); -INSERT INTO `hook_i18n` VALUES("179","en_US","Category page - at the top of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("179","es_ES","Página de categoría - en la parte inferior de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("179","fr_FR","Page catégorie - en haut de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("180","de_DE","Kategorieseite - Sidebars Body","",""); -INSERT INTO `hook_i18n` VALUES("180","en_US","Category page - the body of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("180","es_ES","Página de categoría - el cuerpo de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("180","fr_FR","Page catégorie - le corps de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("181","de_DE","Kategorieseite - unten an der Sidebar","",""); -INSERT INTO `hook_i18n` VALUES("181","en_US","Category page - at the bottom of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("181","es_ES","Página de la categoría - en la parte inferior de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("181","fr_FR","Page catégorie - en bas de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("182","de_DE","Inhaltseite - oben an der Sidebar","",""); -INSERT INTO `hook_i18n` VALUES("182","en_US","Content page - at the top of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("182","es_ES","Página de contenido - en la parte superior de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("182","fr_FR","Page de contenu - en haut de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("183","de_DE","Inhaltseite - Sidebars Body","",""); -INSERT INTO `hook_i18n` VALUES("183","en_US","Content page - the body of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("183","es_ES","Página de contenido - cuerpo de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("183","fr_FR","Page de contenu - le corps de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("184","de_DE","Inhaltseite - unten an der Sidebar","",""); -INSERT INTO `hook_i18n` VALUES("184","en_US","Content page - at the bottom of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("184","es_ES","Página de contenido - en la parte inferior de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("184","fr_FR","Page de contenu - en bas de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("185","de_DE","Lieferwahl - Erweiteren Bereich","",""); -INSERT INTO `hook_i18n` VALUES("185","en_US","Delivery choice - extra area","",""); -INSERT INTO `hook_i18n` VALUES("185","es_ES","Opción de entrega - área extra","",""); -INSERT INTO `hook_i18n` VALUES("185","fr_FR","Choix du transporteur - zone supplémentaire","",""); -INSERT INTO `hook_i18n` VALUES("186","de_DE","Lieferwahl - Javascript","",""); -INSERT INTO `hook_i18n` VALUES("186","en_US","Delivery choice - javascript","",""); -INSERT INTO `hook_i18n` VALUES("186","es_ES","Opción de entrega - javascript","",""); -INSERT INTO `hook_i18n` VALUES("186","fr_FR","Choix du transporteur - javascript","",""); -INSERT INTO `hook_i18n` VALUES("187","de_DE","Kategorieseite - vor dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("187","en_US","Category page - before the main content area","",""); -INSERT INTO `hook_i18n` VALUES("187","es_ES","Página de categoría - antes el área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("187","fr_FR","Page catégorie - au dessus de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("188","de_DE","Kategorieseite - nach dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("188","en_US","Category page - after the main content area","",""); -INSERT INTO `hook_i18n` VALUES("188","es_ES","Página de la categoría - después el área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("188","fr_FR","Page catégorie - en dessous de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("189","de_DE","Inhaltseite- vor dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("189","en_US","Content page - before the main content area","",""); -INSERT INTO `hook_i18n` VALUES("189","es_ES","Página de contenido - antes del área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("189","fr_FR","Page de contenu - au dessus de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("190","de_DE","Inhaltseite - nach dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("190","en_US","Content page - after the main content area","",""); -INSERT INTO `hook_i18n` VALUES("190","es_ES","Página de contenido - después del área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("190","fr_FR","Page de contenu - en dessous de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("191","de_DE","Ordnerseite - vor dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("191","en_US","Folder page - before the main content area","",""); -INSERT INTO `hook_i18n` VALUES("191","es_ES","Carpeta de página - antes del área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("191","fr_FR","Page dossier - au dessus de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("192","de_DE","Ordnerseite - nach dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("192","en_US","Folder page - after the main content area","",""); -INSERT INTO `hook_i18n` VALUES("192","es_ES","Carpeta de página - después del área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("192","fr_FR","Page dossier - en dessous de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("193","de_DE","Marken Seite - oben","",""); -INSERT INTO `hook_i18n` VALUES("193","en_US","Brands page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("193","es_ES","Página de las marcas - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("193","fr_FR","Page des marques - en haut","",""); -INSERT INTO `hook_i18n` VALUES("194","de_DE","Marken Seite - unten","",""); -INSERT INTO `hook_i18n` VALUES("194","en_US","Brands page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("194","es_ES","Página de las marcas - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("194","fr_FR","Page des marques - en bas","",""); -INSERT INTO `hook_i18n` VALUES("195","de_DE","Marken Seite - oben des Hauptbereichs","",""); -INSERT INTO `hook_i18n` VALUES("195","en_US","Brands page - at the top of the main area","",""); -INSERT INTO `hook_i18n` VALUES("195","es_ES","Página de las marcas - en la parte inferior del área principal","",""); -INSERT INTO `hook_i18n` VALUES("195","fr_FR","Page des marques - en haut de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("196","de_DE","Marken Seite - unten des Hauptbereichs","",""); -INSERT INTO `hook_i18n` VALUES("196","en_US","Brands page - at the bottom of the main area","",""); -INSERT INTO `hook_i18n` VALUES("196","es_ES","Página de las marcas - en la parte inferior del área principal","",""); -INSERT INTO `hook_i18n` VALUES("196","fr_FR","Page des marques - en bas de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("197","de_DE","Marken Seite - vor dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("197","en_US","Brands page - before the main content area","",""); -INSERT INTO `hook_i18n` VALUES("197","es_ES","Página de marcas - antes del área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("197","fr_FR","Page des marques - au dessus de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("198","de_DE","Marken Seite - Nach dem Hauptinhalt Bereich","",""); -INSERT INTO `hook_i18n` VALUES("198","en_US","Brands page - after the main content area","",""); -INSERT INTO `hook_i18n` VALUES("198","es_ES","Página de marcas - después el área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("198","fr_FR","Page des marques - en dessous de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("199","de_DE","Marken Seite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("199","en_US","Brands page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("199","es_ES","Página de marcas - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("199","fr_FR","Page des marques - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("200","de_DE","Marken Seite - Nach der Integration von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("200","en_US","Brands page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("200","es_ES","Página de marcas - después de inclusión de javascript","",""); -INSERT INTO `hook_i18n` VALUES("200","fr_FR","Page des marques - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("201","de_DE","Marken Seite - Javascript Initialisation","",""); -INSERT INTO `hook_i18n` VALUES("201","en_US","Brands page - javascript initialization","",""); -INSERT INTO `hook_i18n` VALUES("201","es_ES","Página de marcas - inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("201","fr_FR","Page des marques - initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("202","de_DE","Marken Seite - oben der Sidebar","",""); -INSERT INTO `hook_i18n` VALUES("202","en_US","Brands page - at the top of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("202","es_ES","Página de las marcas - en la parte inferior de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("202","fr_FR","Page des marques - en haut de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("203","de_DE","Marken Seite - Sidebars Body","",""); -INSERT INTO `hook_i18n` VALUES("203","en_US","Brands page - the body of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("203","es_ES","Página de marcas - el cuerpo de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("203","fr_FR","Page des marques - le corps de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("204","de_DE","Marken Seite - unten der Sidebar","",""); -INSERT INTO `hook_i18n` VALUES("204","en_US","Brands page - at the bottom of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("204","es_ES","Página de las marcas - en la parte inferior de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("204","fr_FR","Page des marques - en bas de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("205","de_DE","Bestellungsdetails - oben","",""); -INSERT INTO `hook_i18n` VALUES("205","en_US","Order details - at the top","",""); -INSERT INTO `hook_i18n` VALUES("205","es_ES","Detalles de la orden - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("205","fr_FR","Détail d\'une commande - en haut","",""); -INSERT INTO `hook_i18n` VALUES("206","de_DE","Bestellungsdetails - weitere Informationen","",""); -INSERT INTO `hook_i18n` VALUES("206","en_US","Order details - additional information","",""); -INSERT INTO `hook_i18n` VALUES("206","es_ES","Detalles de la Orden - información adicional","",""); -INSERT INTO `hook_i18n` VALUES("206","fr_FR","Détail d\'une commande - informations additionnelles","",""); -INSERT INTO `hook_i18n` VALUES("207","de_DE","Bestellungsdetails - nach den allgemeinen Informationen","",""); -INSERT INTO `hook_i18n` VALUES("207","en_US","Order details - after global information","",""); -INSERT INTO `hook_i18n` VALUES("207","es_ES","Detalles de la orden - después de la información global","",""); -INSERT INTO `hook_i18n` VALUES("207","fr_FR","Détail d\'une commande - après les informations générales","",""); -INSERT INTO `hook_i18n` VALUES("208","de_DE","Bestellungsdetails - weitere Informationen für den Versand","",""); -INSERT INTO `hook_i18n` VALUES("208","en_US","Order details - additional delivery information","",""); -INSERT INTO `hook_i18n` VALUES("208","es_ES","Detalles de la Orden - información adicional del envío","",""); -INSERT INTO `hook_i18n` VALUES("208","fr_FR","Détail d\'une commande - informations additionnelles pour l\'expédition","",""); -INSERT INTO `hook_i18n` VALUES("209","de_DE","Bestellungsdetails - Lieferadresse","",""); -INSERT INTO `hook_i18n` VALUES("209","en_US","Order details - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("209","es_ES","Pedir detalles - dirección de envío","",""); -INSERT INTO `hook_i18n` VALUES("209","fr_FR","Détail d\'une commande - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("210","de_DE","Bestellungsdetails - weitere Informationen für die Rechnung","",""); -INSERT INTO `hook_i18n` VALUES("210","en_US","Order details - additional invoice information","",""); -INSERT INTO `hook_i18n` VALUES("210","es_ES","Detalles de la Orden - información adicional de la factura","",""); -INSERT INTO `hook_i18n` VALUES("210","fr_FR","Détail d\'une commande - informations additionnelles pour la facturation","",""); -INSERT INTO `hook_i18n` VALUES("211","de_DE","Bestellungsdetails - Rechnungsadresse","",""); -INSERT INTO `hook_i18n` VALUES("211","en_US","Order details - invoice address","",""); -INSERT INTO `hook_i18n` VALUES("211","es_ES","Detalles de la orden - dirección de factura","",""); -INSERT INTO `hook_i18n` VALUES("211","fr_FR","Détail d\'une commande - adresse de facturation","",""); -INSERT INTO `hook_i18n` VALUES("212","de_DE","Bestellungsdetails - Nach den Adressen","",""); -INSERT INTO `hook_i18n` VALUES("212","en_US","Order details - after addresses","",""); -INSERT INTO `hook_i18n` VALUES("212","es_ES","Detalles de la Orden - después de direcciones","",""); -INSERT INTO `hook_i18n` VALUES("212","fr_FR","Détail d\'une commande - Après les adresses","",""); -INSERT INTO `hook_i18n` VALUES("213","de_DE","Bestellungsdetails - vor der Produktliste","",""); -INSERT INTO `hook_i18n` VALUES("213","en_US","Order details - before products list","",""); -INSERT INTO `hook_i18n` VALUES("213","es_ES","Detalles de la orden - antes de lista de productos","",""); -INSERT INTO `hook_i18n` VALUES("213","fr_FR","Détail d\'une commande - avant la liste des produits","",""); -INSERT INTO `hook_i18n` VALUES("214","de_DE","Bestellungsdetails - weitere Informationen für ein Produkt","",""); -INSERT INTO `hook_i18n` VALUES("214","en_US","Order details - additional product information","",""); -INSERT INTO `hook_i18n` VALUES("214","es_ES","Detalles de la Orden - información adicional del producto","",""); -INSERT INTO `hook_i18n` VALUES("214","fr_FR","Détail d\'une commande - informations additionnelles pour un produit","",""); -INSERT INTO `hook_i18n` VALUES("215","de_DE","Bestellungsdetails - nach der Produktliste","",""); -INSERT INTO `hook_i18n` VALUES("215","en_US","Order details - after products list","",""); -INSERT INTO `hook_i18n` VALUES("215","es_ES","Detalles de la orden - después de la lista de productos","",""); -INSERT INTO `hook_i18n` VALUES("215","fr_FR","Détail d\'une commande - après la liste des produits","",""); -INSERT INTO `hook_i18n` VALUES("216","de_DE","Bestellungsdetails - nach den Produkten","",""); -INSERT INTO `hook_i18n` VALUES("216","en_US","Order details - after products","",""); -INSERT INTO `hook_i18n` VALUES("216","es_ES","Detalles de la orden - después de los productos","",""); -INSERT INTO `hook_i18n` VALUES("216","fr_FR","Détail d\'une commande - Après les produits","",""); -INSERT INTO `hook_i18n` VALUES("217","de_DE","Bestellungsdetails - unten","",""); -INSERT INTO `hook_i18n` VALUES("217","en_US","Order details - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("217","es_ES","Detalles de la orden - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("217","fr_FR","Détail d\'une commande - en bas","",""); -INSERT INTO `hook_i18n` VALUES("218","de_DE","Bestellungsdetails - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("218","en_US","Order details - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("218","es_ES","Detalles de la Orden - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("218","fr_FR","Détail d\'une commande - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("219","de_DE","Bestellungsdetails - nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("219","en_US","Order details - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("219","es_ES","Detalles de la orden - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("219","fr_FR","Détail d\'une commande - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("220","de_DE","Bestellungsdetails - Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("220","en_US","Order details - javascript initialization","",""); -INSERT INTO `hook_i18n` VALUES("220","es_ES","Detalles de la Orden - inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("220","fr_FR","Détail d\'une commande - initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("221","de_DE","Kundenkonto - Erweitere Informationen","",""); -INSERT INTO `hook_i18n` VALUES("221","en_US","Customer account - additional information","",""); -INSERT INTO `hook_i18n` VALUES("221","es_ES","Cuenta de cliente - información adicional","",""); -INSERT INTO `hook_i18n` VALUES("221","fr_FR","Compte client - informations additionnelles","",""); -INSERT INTO `hook_i18n` VALUES("222","de_DE","Bestelldaten - nach einem Produkt","",""); -INSERT INTO `hook_i18n` VALUES("222","en_US","Order details - after product","",""); -INSERT INTO `hook_i18n` VALUES("222","es_ES","Detalles de la orden - después del producto","",""); -INSERT INTO `hook_i18n` VALUES("222","fr_FR","Détail d\'une commande - Après un produit","",""); -INSERT INTO `hook_i18n` VALUES("223","de_DE","Mini-Warenkorb","",""); -INSERT INTO `hook_i18n` VALUES("223","en_US","Mini cart","",""); -INSERT INTO `hook_i18n` VALUES("223","es_ES","Mini tarjeta","",""); -INSERT INTO `hook_i18n` VALUES("223","fr_FR","Mini panier","",""); -INSERT INTO `hook_i18n` VALUES("224","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("224","en_US","Sale - at the top","",""); -INSERT INTO `hook_i18n` VALUES("224","es_ES","Venta - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("224","fr_FR","Promotion - en haut","",""); -INSERT INTO `hook_i18n` VALUES("225","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("225","en_US","Sale - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("225","es_ES","Venta - al pie","",""); -INSERT INTO `hook_i18n` VALUES("225","fr_FR","Promotion - en bas","",""); -INSERT INTO `hook_i18n` VALUES("226","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("226","en_US","Sale - at the top of the main area","",""); -INSERT INTO `hook_i18n` VALUES("226","es_ES","Venta - encabezado del área principal","",""); -INSERT INTO `hook_i18n` VALUES("226","fr_FR","Promotion - en haut de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("227","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("227","en_US","Sale - at the bottom of the main area","",""); -INSERT INTO `hook_i18n` VALUES("227","es_ES","Venta - al pie del área principal","",""); -INSERT INTO `hook_i18n` VALUES("227","fr_FR","Promotion - en bas de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("228","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("228","en_US","Sale - before the main content area","",""); -INSERT INTO `hook_i18n` VALUES("228","es_ES","Venta - antes del área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("228","fr_FR","Promotion - au dessous de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("229","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("229","en_US","Sale - after the main content area","",""); -INSERT INTO `hook_i18n` VALUES("229","es_ES","Venta - después del área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("229","fr_FR","Promotion - en dessous de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("230","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("230","en_US","Sale - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("230","es_ES","Venta - Hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("230","fr_FR","Promotion - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("231","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("231","en_US","Sale - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("231","es_ES","Venta - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("231","fr_FR","Promotion - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("232","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("232","en_US","Sale - javascript initialization","",""); -INSERT INTO `hook_i18n` VALUES("232","es_ES","Venta - inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("232","fr_FR","Promotion - initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("233","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("233","en_US","Order details - after invoice address","",""); -INSERT INTO `hook_i18n` VALUES("233","es_ES","Detalles de pedido - después de la dirección de facturación","",""); -INSERT INTO `hook_i18n` VALUES("233","fr_FR","Détail d\'une commande - après l\'adresse de facturation","",""); -INSERT INTO `hook_i18n` VALUES("234","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("234","en_US","Order details - after delivery address","",""); -INSERT INTO `hook_i18n` VALUES("234","es_ES","Detalles de pedido - después de la dirección de entrega","",""); -INSERT INTO `hook_i18n` VALUES("234","fr_FR","Détails d\'une commande - après l\'adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("235","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("235","en_US","Newsletter unsubscribe page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("235","es_ES","Página de baja del boletín - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("235","fr_FR","Désabonnement newsletter - en haut","",""); -INSERT INTO `hook_i18n` VALUES("236","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("236","en_US","Newsletter unsubscribe page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("236","es_ES","Página de baja del boletín - al pie","",""); -INSERT INTO `hook_i18n` VALUES("236","fr_FR","Désabonnement newsletter - en bas","",""); -INSERT INTO `hook_i18n` VALUES("237","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("237","en_US","Newsletter unsubscribe page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("237","es_ES","Página de baja del boletín - Hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("237","fr_FR","Désabonnement newsletter - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("238","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("238","en_US","Newsletter unsubscribe page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("238","es_ES","Página de baja del boletín - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("238","fr_FR","Désabonnement newsletter - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("239","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("239","en_US","Newsletter unsubscribe page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("239","es_ES","Página de baja del boletín - después de la inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("239","fr_FR","Désabonnement newsletter - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1000","de_DE","Kategorie - Inhalt","",""); -INSERT INTO `hook_i18n` VALUES("1000","en_US","Category - content","",""); -INSERT INTO `hook_i18n` VALUES("1000","es_ES","Categoría - contenido","",""); -INSERT INTO `hook_i18n` VALUES("1000","fr_FR","Catégorie - contenu","",""); -INSERT INTO `hook_i18n` VALUES("1001","de_DE","Inhalt - Inhalt","",""); -INSERT INTO `hook_i18n` VALUES("1001","en_US","Content - content","",""); -INSERT INTO `hook_i18n` VALUES("1001","es_ES","Contenido - contenido","",""); -INSERT INTO `hook_i18n` VALUES("1001","fr_FR","Contenu - contenu","",""); -INSERT INTO `hook_i18n` VALUES("1002","de_DE","Ordner - Inhalt","",""); -INSERT INTO `hook_i18n` VALUES("1002","en_US","Folder - content","",""); -INSERT INTO `hook_i18n` VALUES("1002","es_ES","Carpeta - contenido","",""); -INSERT INTO `hook_i18n` VALUES("1002","fr_FR","Dossier - contenu","",""); -INSERT INTO `hook_i18n` VALUES("1003","de_DE","Bestellung - Inhalt","",""); -INSERT INTO `hook_i18n` VALUES("1003","en_US","Order - content","",""); -INSERT INTO `hook_i18n` VALUES("1003","es_ES","Orden - contenido","",""); -INSERT INTO `hook_i18n` VALUES("1003","fr_FR","Commande - contenu","",""); -INSERT INTO `hook_i18n` VALUES("1004","de_DE","Produkt - Inhalt","",""); -INSERT INTO `hook_i18n` VALUES("1004","en_US","Product - content","",""); -INSERT INTO `hook_i18n` VALUES("1004","es_ES","Producto - contenido","",""); -INSERT INTO `hook_i18n` VALUES("1004","fr_FR","Produit - contenu","",""); -INSERT INTO `hook_i18n` VALUES("1005","de_DE","Karakteristiken-Angaben - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1005","en_US","Features value - table header","",""); -INSERT INTO `hook_i18n` VALUES("1005","es_ES","Valor Característica - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1005","fr_FR","Valeur de caractéristiques - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1006","de_DE","Karakteristiken-Angaben - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1006","en_US","Features value - table row","",""); -INSERT INTO `hook_i18n` VALUES("1006","es_ES","Valor Característica - fila de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1006","fr_FR","Valeur de caractéristiques - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1007","de_DE","Karakteristik - Angabe-Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1007","en_US","Feature - Value create form","",""); -INSERT INTO `hook_i18n` VALUES("1007","es_ES","Característica - Formulario para crear valor","",""); -INSERT INTO `hook_i18n` VALUES("1007","fr_FR","Caractéristique - Formulaire de création de valeur","",""); -INSERT INTO `hook_i18n` VALUES("1008","de_DE","Karakteristik - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1008","en_US","Feature - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1008","es_ES","Característica - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1008","fr_FR","Caractéristique - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1009","de_DE","Produkt - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1009","en_US","Product - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1009","es_ES","Producto - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1009","fr_FR","Produit - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1010","de_DE","Gutschein - JavaScript erstellen","",""); -INSERT INTO `hook_i18n` VALUES("1010","en_US","Coupon - create JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1010","es_ES","Cupón - crear JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1010","fr_FR","Code promo - JavaScript création","",""); -INSERT INTO `hook_i18n` VALUES("1011","de_DE","Taxes - Änderungs-Formular","",""); -INSERT INTO `hook_i18n` VALUES("1011","en_US","Taxes - update form","",""); -INSERT INTO `hook_i18n` VALUES("1011","es_ES","Impuestos - formulario de actualización","",""); -INSERT INTO `hook_i18n` VALUES("1011","fr_FR","Taxes - formulaire de modification","",""); -INSERT INTO `hook_i18n` VALUES("1012","de_DE","Taxregel - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1012","en_US","tax rule - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1012","es_ES","regla de impuesto - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1012","fr_FR","Règle de taxe - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1013","de_DE","Tools - oben","",""); -INSERT INTO `hook_i18n` VALUES("1013","en_US","Tools - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1013","es_ES","Herramientas - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1013","fr_FR","Outils - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1014","de_DE","Tools - oben der Spalte","",""); -INSERT INTO `hook_i18n` VALUES("1014","en_US","Tools - at the top of the column","",""); -INSERT INTO `hook_i18n` VALUES("1014","es_ES","Herramientas - en la parte superior de la columna","",""); -INSERT INTO `hook_i18n` VALUES("1014","fr_FR","Outils - en haut de la colonne","",""); -INSERT INTO `hook_i18n` VALUES("1015","de_DE","Tools - unten der Spalte 1","",""); -INSERT INTO `hook_i18n` VALUES("1015","en_US","Tools - at the bottom of column 1","",""); -INSERT INTO `hook_i18n` VALUES("1015","es_ES","Herramientas - en la parte inferior de la columna 1","",""); -INSERT INTO `hook_i18n` VALUES("1015","fr_FR","Outils - en bas de la colonne 1","",""); -INSERT INTO `hook_i18n` VALUES("1016","de_DE","Tools - unten","",""); -INSERT INTO `hook_i18n` VALUES("1016","en_US","Tools - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1016","es_ES","Herramientas - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1016","fr_FR","Outils - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1017","de_DE","Tools - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1017","en_US","Tools - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1017","es_ES","Herramientas - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1017","fr_FR","Outils - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1018","de_DE","Nachrichten - oben","",""); -INSERT INTO `hook_i18n` VALUES("1018","en_US","Messages - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1018","es_ES","Mensajes - al tope","",""); -INSERT INTO `hook_i18n` VALUES("1018","fr_FR","Messages - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1019","de_DE","Nachrichten - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1019","en_US","Messages - table header","",""); -INSERT INTO `hook_i18n` VALUES("1019","es_ES","Mensajes - encabezado de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1019","fr_FR","Messages - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1020","de_DE","Nachrichten - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1020","en_US","Messages - table row","",""); -INSERT INTO `hook_i18n` VALUES("1020","es_ES","Mensajes - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1020","fr_FR","Messages - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1021","de_DE","Nachrichten - unten","",""); -INSERT INTO `hook_i18n` VALUES("1021","en_US","Messages - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1021","es_ES","Mensajes - base","",""); -INSERT INTO `hook_i18n` VALUES("1021","fr_FR","Messages - bas","",""); -INSERT INTO `hook_i18n` VALUES("1022","de_DE","Nachricht - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1022","en_US","Message - create form","",""); -INSERT INTO `hook_i18n` VALUES("1022","es_ES","Mensaje - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1022","fr_FR","Message - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1023","de_DE","Nachricht - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1023","en_US","Message - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1023","es_ES","Mensaje - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1023","fr_FR","Message - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1024","de_DE","Nachrichten - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1024","en_US","Messages - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1024","es_ES","Mensajes - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1024","fr_FR","Messages - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1025","de_DE","Taxeregeln - oben","",""); -INSERT INTO `hook_i18n` VALUES("1025","en_US","Taxes rules - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1025","es_ES","Reglas de impuestos - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1025","fr_FR","Règles de taxes - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1026","de_DE","Taxeregeln - unten","",""); -INSERT INTO `hook_i18n` VALUES("1026","en_US","Taxes rules - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1026","es_ES","Reglas de impuestos - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1026","fr_FR","Règles de taxes - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1027","de_DE","Taxe - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1027","en_US","Tax - create form","",""); -INSERT INTO `hook_i18n` VALUES("1027","es_ES","Impuesto - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1027","fr_FR","Taxe - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1028","de_DE","Taxe - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1028","en_US","Tax - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1028","es_ES","Impuesto - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1028","fr_FR","Taxe - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1029","de_DE","Taxregel - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1029","en_US","tax rule - create form","",""); -INSERT INTO `hook_i18n` VALUES("1029","es_ES","regla de impuesto - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1029","fr_FR","Règle de taxe - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1030","de_DE","Taxregel - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1030","en_US","tax rule - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1030","es_ES","regla de impuesto - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1030","fr_FR","Règle de taxe - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1031","de_DE","Taxeregeln - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1031","en_US","Taxes rules - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1031","es_ES","Reglas de impuestos - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1031","fr_FR","Règles de taxes - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1032","de_DE","Exporte - oben","",""); -INSERT INTO `hook_i18n` VALUES("1032","en_US","Exports - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1032","es_ES","Exportar - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1032","fr_FR","Exports - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1033","de_DE","Exporte - unten einer Kategorie","",""); -INSERT INTO `hook_i18n` VALUES("1033","en_US","Exports - at the bottom of a category","",""); -INSERT INTO `hook_i18n` VALUES("1033","es_ES","Exportar - en la parte inferior de una categoría","",""); -INSERT INTO `hook_i18n` VALUES("1033","fr_FR","Exports - en bas d\'une catégorie","",""); -INSERT INTO `hook_i18n` VALUES("1034","de_DE","Exporte - unten der Spalte 1","",""); -INSERT INTO `hook_i18n` VALUES("1034","en_US","Exports - at the bottom of column 1","",""); -INSERT INTO `hook_i18n` VALUES("1034","es_ES","Exportar - en la parte inferior de la columna 1","",""); -INSERT INTO `hook_i18n` VALUES("1034","fr_FR","Exports - en bas de la colonne 1","",""); -INSERT INTO `hook_i18n` VALUES("1035","de_DE","Exporte - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1035","en_US","Exports - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1035","es_ES","Exportar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1035","fr_FR","Exports - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1036","de_DE","Export - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1036","en_US","Export - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1036","es_ES","Exportación - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1036","fr_FR","Export - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1037","de_DE","Produkt - Ordner Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1037","en_US","Product - folders table header","",""); -INSERT INTO `hook_i18n` VALUES("1037","es_ES","Producto - encabezado de la tabla de carpetas","",""); -INSERT INTO `hook_i18n` VALUES("1037","fr_FR","Produit - colonne tableau dossiers","",""); -INSERT INTO `hook_i18n` VALUES("1038","de_DE","Produkt - Ordner Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1038","en_US","Product - folders table row","",""); -INSERT INTO `hook_i18n` VALUES("1038","es_ES","Producto - fila de la tabla de carpetas","",""); -INSERT INTO `hook_i18n` VALUES("1038","fr_FR","Produit - ligne tableau dossiers","",""); -INSERT INTO `hook_i18n` VALUES("1039","de_DE","Produkt - Preisedetails Formular","",""); -INSERT INTO `hook_i18n` VALUES("1039","en_US","Product - details pricing form","",""); -INSERT INTO `hook_i18n` VALUES("1039","es_ES","Producto - formato de detalles del precio","",""); -INSERT INTO `hook_i18n` VALUES("1039","fr_FR","Produit - Formulaire détail des prix","",""); -INSERT INTO `hook_i18n` VALUES("1040","de_DE","Produkt - Bestandänderung Formular","",""); -INSERT INTO `hook_i18n` VALUES("1040","en_US","Product - stock edit form","",""); -INSERT INTO `hook_i18n` VALUES("1040","es_ES","Producto - Editar formulario de stock","",""); -INSERT INTO `hook_i18n` VALUES("1040","fr_FR","Produit - formulaire de modification du stock","",""); -INSERT INTO `hook_i18n` VALUES("1041","de_DE","Produkt - Sonderangebotdetails Formular","",""); -INSERT INTO `hook_i18n` VALUES("1041","en_US","Product - details promotion form","",""); -INSERT INTO `hook_i18n` VALUES("1041","es_ES","Producto - formulario de detalles de la promoción","",""); -INSERT INTO `hook_i18n` VALUES("1041","fr_FR","Produit - Formulaire détail des promotions","",""); -INSERT INTO `hook_i18n` VALUES("1042","de_DE","Produkt - vor den Kombinationen","",""); -INSERT INTO `hook_i18n` VALUES("1042","en_US","Product - before combinations","",""); -INSERT INTO `hook_i18n` VALUES("1042","es_ES","Producto - después de las combinaciones","",""); -INSERT INTO `hook_i18n` VALUES("1042","fr_FR","Produit - avant les déclinaisons","",""); -INSERT INTO `hook_i18n` VALUES("1043","de_DE","Produkt - Kombinationsliste-Bildunterschrift","",""); -INSERT INTO `hook_i18n` VALUES("1043","en_US","Product - combinations list caption","",""); -INSERT INTO `hook_i18n` VALUES("1043","es_ES","Producto - título de la lista de combinaciones","",""); -INSERT INTO `hook_i18n` VALUES("1043","fr_FR","Produit - légende liste des déclinaisons","",""); -INSERT INTO `hook_i18n` VALUES("1044","de_DE","Produkt - nach den Kombinationen","",""); -INSERT INTO `hook_i18n` VALUES("1044","en_US","Product - after combinations","",""); -INSERT INTO `hook_i18n` VALUES("1044","es_ES","Producto - después de las combinaciones","",""); -INSERT INTO `hook_i18n` VALUES("1044","fr_FR","Produit - après les déclinaisons","",""); -INSERT INTO `hook_i18n` VALUES("1045","de_DE","Produkt - Kombinations-Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1045","en_US","Product - combination delete form","",""); -INSERT INTO `hook_i18n` VALUES("1045","es_ES","Producto - Formulario para borrar combinaciones","",""); -INSERT INTO `hook_i18n` VALUES("1045","fr_FR","Produit - formulaire de suppression de combinaison","",""); -INSERT INTO `hook_i18n` VALUES("1046","de_DE","Modulen - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1046","en_US","Modules - table header","",""); -INSERT INTO `hook_i18n` VALUES("1046","es_ES","Módulos - encabezado de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1046","fr_FR","Modules - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1047","de_DE","Modulen - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1047","en_US","Modules - table row","",""); -INSERT INTO `hook_i18n` VALUES("1047","es_ES","Módulos - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1047","fr_FR","Modules - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1048","de_DE","Währung - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1048","en_US","Currency - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1048","es_ES","Divisas - Editar javaScript","",""); -INSERT INTO `hook_i18n` VALUES("1048","fr_FR","Devise - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1049","de_DE","Kategorie - Inhalts Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1049","en_US","Category - contents table header","",""); -INSERT INTO `hook_i18n` VALUES("1049","es_ES","Categoría - encabezado de tabla de contenido","",""); -INSERT INTO `hook_i18n` VALUES("1049","fr_FR","Catégorie - colonne tableau contenus","",""); -INSERT INTO `hook_i18n` VALUES("1050","de_DE","Kategorie - Inhalts Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1050","en_US","Category - contents table row","",""); -INSERT INTO `hook_i18n` VALUES("1050","es_ES","Categoría - fila de la tabla de contenido","",""); -INSERT INTO `hook_i18n` VALUES("1050","fr_FR","Catégorie - ligne tableau contenus","",""); -INSERT INTO `hook_i18n` VALUES("1051","de_DE","Kategorie - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1051","en_US","Category - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1051","es_ES","Categoría - edición JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1051","fr_FR","Catégorie - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1052","de_DE","Dokument - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1052","en_US","Document - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1052","es_ES","Documento - edición JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1052","fr_FR","Document - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1053","de_DE","Kunde - oben","",""); -INSERT INTO `hook_i18n` VALUES("1053","en_US","Customer - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1053","es_ES","Cliente - en la cabecera","",""); -INSERT INTO `hook_i18n` VALUES("1053","fr_FR","Client - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1054","de_DE","Kunden - Bildunterschrift","",""); -INSERT INTO `hook_i18n` VALUES("1054","en_US","Customers - caption","",""); -INSERT INTO `hook_i18n` VALUES("1054","es_ES","Clientes - texto","",""); -INSERT INTO `hook_i18n` VALUES("1054","fr_FR","Clients - légende","",""); -INSERT INTO `hook_i18n` VALUES("1055","de_DE","Kunden - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1055","en_US","Customers - header","",""); -INSERT INTO `hook_i18n` VALUES("1055","es_ES","Clientes - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("1055","fr_FR","Clients - en-tête","",""); -INSERT INTO `hook_i18n` VALUES("1056","de_DE","Kunden - Zeile","",""); -INSERT INTO `hook_i18n` VALUES("1056","en_US","Customers - row","",""); -INSERT INTO `hook_i18n` VALUES("1056","es_ES","Clientes - fila","",""); -INSERT INTO `hook_i18n` VALUES("1056","fr_FR","Clients - ligne","",""); -INSERT INTO `hook_i18n` VALUES("1057","de_DE","Kunde - unten","",""); -INSERT INTO `hook_i18n` VALUES("1057","en_US","Customer - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1057","es_ES","Cliente - pie","",""); -INSERT INTO `hook_i18n` VALUES("1057","fr_FR","Client - bas","",""); -INSERT INTO `hook_i18n` VALUES("1058","de_DE","Kunde - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1058","en_US","Customer - create form","",""); -INSERT INTO `hook_i18n` VALUES("1058","es_ES","Cliente - formulario creación","",""); -INSERT INTO `hook_i18n` VALUES("1058","fr_FR","Client - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1059","de_DE","Kunde - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1059","en_US","Customer - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1059","es_ES","Cliente - formulario eliminación","",""); -INSERT INTO `hook_i18n` VALUES("1059","fr_FR","Client - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1060","de_DE","Kunden - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1060","en_US","Customers - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1060","es_ES","Clientes - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1060","fr_FR","Clients - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1061","de_DE","Produkt - Inhalte Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1061","en_US","Product - contents table header","",""); -INSERT INTO `hook_i18n` VALUES("1061","es_ES","Producto - contenidos del encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1061","fr_FR","Produit - colonne tableau contenus","",""); -INSERT INTO `hook_i18n` VALUES("1062","de_DE","Produkt - Inhalte Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1062","en_US","Product - contents table row","",""); -INSERT INTO `hook_i18n` VALUES("1062","es_ES","Producto - contenidos de la fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1062","fr_FR","Produit - ligne tableau contenus","",""); -INSERT INTO `hook_i18n` VALUES("1063","de_DE","Produkt - Zubehör Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1063","en_US","Product - accessories table header","",""); -INSERT INTO `hook_i18n` VALUES("1063","es_ES","Producto - encabezado de la tabla accesoria","",""); -INSERT INTO `hook_i18n` VALUES("1063","fr_FR","Produit - colonne tableau accessoires","",""); -INSERT INTO `hook_i18n` VALUES("1064","de_DE","Produkt - Zubehör Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1064","en_US","Product - accessories table row","",""); -INSERT INTO `hook_i18n` VALUES("1064","es_ES","Producto - fila de la tabla de accesorios","",""); -INSERT INTO `hook_i18n` VALUES("1064","fr_FR","Produit - ligne tableau accessoires","",""); -INSERT INTO `hook_i18n` VALUES("1065","de_DE","Produkt - Kategorien Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1065","en_US","Product - categories table header","",""); -INSERT INTO `hook_i18n` VALUES("1065","es_ES","Producto - encabezado de la tabla de categorías","",""); -INSERT INTO `hook_i18n` VALUES("1065","fr_FR","Produit - colonne tableau catégories","",""); -INSERT INTO `hook_i18n` VALUES("1066","de_DE","Produkt - Kategorien Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1066","en_US","Product - categories table row","",""); -INSERT INTO `hook_i18n` VALUES("1066","es_ES","Producto - fila de la tabla de categorías","",""); -INSERT INTO `hook_i18n` VALUES("1066","fr_FR","Produit - ligne tableau catégories","",""); -INSERT INTO `hook_i18n` VALUES("1067","de_DE","Produkt - Deklination Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1067","en_US","Product - attributes table header","",""); -INSERT INTO `hook_i18n` VALUES("1067","es_ES","Producto - encabezado de la tabla de atributos","",""); -INSERT INTO `hook_i18n` VALUES("1067","fr_FR","Produit - colonne tableau attributs","",""); -INSERT INTO `hook_i18n` VALUES("1068","de_DE","Produkt - Deklination Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1068","en_US","Product - attributes table row","",""); -INSERT INTO `hook_i18n` VALUES("1068","es_ES","Producto - fila de la tabla de atributos","",""); -INSERT INTO `hook_i18n` VALUES("1068","fr_FR","Produit - ligne tableau attributs","",""); -INSERT INTO `hook_i18n` VALUES("1069","de_DE","Produkt - Charakteristiken Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1069","en_US","Product - features-table-header","",""); -INSERT INTO `hook_i18n` VALUES("1069","es_ES","Producto - encabezado de la tabla de características","",""); -INSERT INTO `hook_i18n` VALUES("1069","fr_FR","Produit - colonne tableau caractéristiques","",""); -INSERT INTO `hook_i18n` VALUES("1070","de_DE","Produkt - Charakteristiken Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1070","en_US","Product - features table row","",""); -INSERT INTO `hook_i18n` VALUES("1070","es_ES","Producto - fila de la tabla de características","",""); -INSERT INTO `hook_i18n` VALUES("1070","fr_FR","Produit - ligne tableau caractéristiques","",""); -INSERT INTO `hook_i18n` VALUES("1071","de_DE","Template - Tabellenkopf attributs","",""); -INSERT INTO `hook_i18n` VALUES("1071","en_US","Template - attributes table header","",""); -INSERT INTO `hook_i18n` VALUES("1071","es_ES","Plantilla - cabecera de la tabla de atributos","",""); -INSERT INTO `hook_i18n` VALUES("1071","fr_FR","Gabarit - colonne tableau attributs","",""); -INSERT INTO `hook_i18n` VALUES("1072","de_DE","Template - Tabellenzeile attributs","",""); -INSERT INTO `hook_i18n` VALUES("1072","en_US","Template - attributes table row","",""); -INSERT INTO `hook_i18n` VALUES("1072","es_ES","Plantilla - fila de la tabla de atributos","",""); -INSERT INTO `hook_i18n` VALUES("1072","fr_FR","Gabarit - ligne tableau attributs","",""); -INSERT INTO `hook_i18n` VALUES("1073","de_DE","Template - Charakteristiken Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1073","en_US","Template - features-table-header","",""); -INSERT INTO `hook_i18n` VALUES("1073","es_ES","Plantilla - encabezado de tabla de características","",""); -INSERT INTO `hook_i18n` VALUES("1073","fr_FR","Gabarit - colonne tableau caractéristiques","",""); -INSERT INTO `hook_i18n` VALUES("1074","de_DE","Template - Charakteristiken Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1074","en_US","Template - features table row","",""); -INSERT INTO `hook_i18n` VALUES("1074","es_ES","Plantilla - fila de la tabla de características","",""); -INSERT INTO `hook_i18n` VALUES("1074","fr_FR","Gabarit - ligne tableau caractéristiques","",""); -INSERT INTO `hook_i18n` VALUES("1075","de_DE","Templates - oben","",""); -INSERT INTO `hook_i18n` VALUES("1075","en_US","Templates - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1075","es_ES","Plantillas - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1075","fr_FR","Gabarits - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1076","de_DE","Templates - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1076","en_US","Templates - table header","",""); -INSERT INTO `hook_i18n` VALUES("1076","es_ES","Plantillas - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1076","fr_FR","Gabarits - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1077","de_DE","Templates - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1077","en_US","Templates - table row","",""); -INSERT INTO `hook_i18n` VALUES("1077","es_ES","Plantillas - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1077","fr_FR","Gabarits - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1078","de_DE","Templates - unten","",""); -INSERT INTO `hook_i18n` VALUES("1078","en_US","Templates - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1078","es_ES","Plantillas - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1078","fr_FR","Gabarits - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1079","de_DE","Template - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1079","en_US","Template - create form","",""); -INSERT INTO `hook_i18n` VALUES("1079","es_ES","Plantilla - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1079","fr_FR","Gabarit - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1080","de_DE","Template - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1080","en_US","Template - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1080","es_ES","Plantilla - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1080","fr_FR","Gabarit - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1081","de_DE","Templates - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1081","en_US","Templates - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1081","es_ES","Plantillas - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1081","fr_FR","Gabarits - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1082","de_DE","Konfiguration - oben","",""); -INSERT INTO `hook_i18n` VALUES("1082","en_US","Configuration - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1082","es_ES","Configuración - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1082","fr_FR","Configuration - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1083","de_DE","Konfiguration - oben an dem Katalogsbereich","",""); -INSERT INTO `hook_i18n` VALUES("1083","en_US","Configuration - at the top of the catalog area","",""); -INSERT INTO `hook_i18n` VALUES("1083","es_ES","Configuración - en la parte superior de la zona de catálogo","",""); -INSERT INTO `hook_i18n` VALUES("1083","fr_FR","Configuration - en haut de la zone catalogue","",""); -INSERT INTO `hook_i18n` VALUES("1084","de_DE","Konfiguration - unten an dem katalog","",""); -INSERT INTO `hook_i18n` VALUES("1084","en_US","Configuration - at the bottom of the catalog","",""); -INSERT INTO `hook_i18n` VALUES("1084","es_ES","Configuración - en la parte inferior del catálogo","",""); -INSERT INTO `hook_i18n` VALUES("1084","fr_FR","Configuration - en bas du catlogue","",""); -INSERT INTO `hook_i18n` VALUES("1085","de_DE","Konfiguration - oben an der Lieferzone","",""); -INSERT INTO `hook_i18n` VALUES("1085","en_US","Configuration - at the top of the shipping area","",""); -INSERT INTO `hook_i18n` VALUES("1085","es_ES","Configuración - en la parte superior del área de envío","",""); -INSERT INTO `hook_i18n` VALUES("1085","fr_FR","Configuration - en haut de la zone livraison","",""); -INSERT INTO `hook_i18n` VALUES("1086","de_DE","Konfiguration - unten an der Lieferzone","",""); -INSERT INTO `hook_i18n` VALUES("1086","en_US","Configuration - at the bottom of the shipping area","",""); -INSERT INTO `hook_i18n` VALUES("1086","es_ES","Configuración - en la parte inferior de la zona de envío","",""); -INSERT INTO `hook_i18n` VALUES("1086","fr_FR","Configuration - en bas de la zone livraison","",""); -INSERT INTO `hook_i18n` VALUES("1087","de_DE","Konfiguration - oben an dem Systembereich","",""); -INSERT INTO `hook_i18n` VALUES("1087","en_US","Configuration - at the top of the system area","",""); -INSERT INTO `hook_i18n` VALUES("1087","es_ES","Configuración - en la parte superior del área del sistema","",""); -INSERT INTO `hook_i18n` VALUES("1087","fr_FR","Configuration - en haut de la zone système","",""); -INSERT INTO `hook_i18n` VALUES("1088","de_DE","Konfiguration - unten an dem Systembereich","",""); -INSERT INTO `hook_i18n` VALUES("1088","en_US","Configuration - at the bottom of the system area","",""); -INSERT INTO `hook_i18n` VALUES("1088","es_ES","Configuración - en la parte inferior de la zona del sistema","",""); -INSERT INTO `hook_i18n` VALUES("1088","fr_FR","Configuration - en bas de la zone système","",""); -INSERT INTO `hook_i18n` VALUES("1089","de_DE","Konfiguration - unten","",""); -INSERT INTO `hook_i18n` VALUES("1089","en_US","Configuration - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1089","es_ES","Configuración - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1089","fr_FR","Configuration - bas","",""); -INSERT INTO `hook_i18n` VALUES("1090","de_DE","Konfiguration - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1090","en_US","Configuration - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1090","es_ES","Configuración - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1090","fr_FR","Configuration - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1091","de_DE","Dashboard - oben","",""); -INSERT INTO `hook_i18n` VALUES("1091","en_US","Dashboard - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1091","es_ES","Dashboard - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1091","fr_FR","Tableau de bord - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1092","de_DE","Dashboard - in der Mitte","",""); -INSERT INTO `hook_i18n` VALUES("1092","en_US","Dashboard - middle","",""); -INSERT INTO `hook_i18n` VALUES("1092","es_ES","Dashboard - medio","",""); -INSERT INTO `hook_i18n` VALUES("1092","fr_FR","Tableau de bord - au milieu","",""); -INSERT INTO `hook_i18n` VALUES("1093","de_DE","Dashboard - unten","",""); -INSERT INTO `hook_i18n` VALUES("1093","en_US","Dashboard - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1093","es_ES","Dashboard - fondo","",""); -INSERT INTO `hook_i18n` VALUES("1093","fr_FR","Tableau de bord - bas","",""); -INSERT INTO `hook_i18n` VALUES("1094","de_DE","Bestellungen - oben","",""); -INSERT INTO `hook_i18n` VALUES("1094","en_US","Orders - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1094","es_ES","Pedidos - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("1094","fr_FR","Commandes - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1095","de_DE","Bestellungen - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1095","en_US","Orders - table header","",""); -INSERT INTO `hook_i18n` VALUES("1095","es_ES","Pedidos - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1095","fr_FR","Commandes - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1096","de_DE","Bestellungen - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1096","en_US","Orders - table row","",""); -INSERT INTO `hook_i18n` VALUES("1096","es_ES","Pedidos - fila de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1096","fr_FR","Commandes - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1097","de_DE","Bestellungen - unten","",""); -INSERT INTO `hook_i18n` VALUES("1097","en_US","Orders - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1097","es_ES","Pedidos - pie de página","",""); -INSERT INTO `hook_i18n` VALUES("1097","fr_FR","Commandes - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1098","de_DE","Bestellungen - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1098","en_US","Orders - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1098","es_ES","Pedidos - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1098","fr_FR","Commandes - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1099","de_DE","Lieferzone - oben","",""); -INSERT INTO `hook_i18n` VALUES("1099","en_US","Delivery zone - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1099","es_ES","Zona de entrega - En la cabecera","",""); -INSERT INTO `hook_i18n` VALUES("1099","fr_FR","Zone de livraison - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1100","de_DE","Lieferzone - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1100","en_US","Delivery zone - table header","",""); -INSERT INTO `hook_i18n` VALUES("1100","es_ES","Zona de entrega - en el encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1100","fr_FR","Zone de livraison - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1101","de_DE","Lieferzone - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1101","en_US","Delivery zone - table row","",""); -INSERT INTO `hook_i18n` VALUES("1101","es_ES","Zona de entrega - en la fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1101","fr_FR","Zone de livraison - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1102","de_DE","Lieferzone - unten","",""); -INSERT INTO `hook_i18n` VALUES("1102","en_US","Delivery zone - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1102","es_ES","Zona de entrega - en el pie","",""); -INSERT INTO `hook_i18n` VALUES("1102","fr_FR","Zone de livraison - bas","",""); -INSERT INTO `hook_i18n` VALUES("1103","de_DE","Lieferzone - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1103","en_US","Delivery zone - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1103","es_ES","Zona de entrega - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1103","fr_FR","Zone de livraison - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1104","de_DE","Inhalt - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1104","en_US","Content - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1104","es_ES","Contenido - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1104","fr_FR","Contenu - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1105","de_DE","Accueil - oben","",""); -INSERT INTO `hook_i18n` VALUES("1105","en_US","Home - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1105","es_ES","Inicio - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1105","fr_FR","Accueil - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1106","de_DE","Accueil - unten","",""); -INSERT INTO `hook_i18n` VALUES("1106","en_US","Home - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1106","es_ES","Inicio - fondo","",""); -INSERT INTO `hook_i18n` VALUES("1106","fr_FR","Accueil - bas","",""); -INSERT INTO `hook_i18n` VALUES("1107","de_DE","Accueil - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1107","en_US","Home - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1107","es_ES","Inicio - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1107","fr_FR","Accueil - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1108","de_DE","Modulen - oben","",""); -INSERT INTO `hook_i18n` VALUES("1108","en_US","Modules - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1108","es_ES","Módulos - al inicio","",""); -INSERT INTO `hook_i18n` VALUES("1108","fr_FR","Modules - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1109","de_DE","Modulen - unten","",""); -INSERT INTO `hook_i18n` VALUES("1109","en_US","Modules - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1109","es_ES","Módulos - base","",""); -INSERT INTO `hook_i18n` VALUES("1109","fr_FR","Modules - bas","",""); -INSERT INTO `hook_i18n` VALUES("1110","de_DE","Modulen - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1110","en_US","Modules - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1110","es_ES","Módulos - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1110","fr_FR","Modules - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1111","de_DE","Sprachen - oben","",""); -INSERT INTO `hook_i18n` VALUES("1111","en_US","Languages - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1111","es_ES","Idiomas - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1111","fr_FR","Langages - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1112","de_DE","Sprachen - unten","",""); -INSERT INTO `hook_i18n` VALUES("1112","en_US","Languages - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1112","es_ES","Idiomas - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1112","fr_FR","Langages - bas","",""); -INSERT INTO `hook_i18n` VALUES("1113","de_DE","Sprache - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1113","en_US","Language - create form","",""); -INSERT INTO `hook_i18n` VALUES("1113","es_ES","Idioma - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1113","fr_FR","Langage - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1114","de_DE","Sprachen - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1114","en_US","Languages - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1114","es_ES","Idiomas - Formulario de borrar","",""); -INSERT INTO `hook_i18n` VALUES("1114","fr_FR","Langages - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1115","de_DE","Sprachen - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1115","en_US","Languages - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1115","es_ES","Idiomas - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1115","fr_FR","Langages - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1116","de_DE","Zone - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1116","en_US","Zone - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1116","es_ES","Zona - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1116","fr_FR","Zone - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1117","de_DE","Lieferzone - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1117","en_US","Delivery zone - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1117","es_ES","Zona de entrega - Editar JavasCript","",""); -INSERT INTO `hook_i18n` VALUES("1117","fr_FR","Zone de livraison - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1118","de_DE","System - JavaScript Logs","",""); -INSERT INTO `hook_i18n` VALUES("1118","en_US","System - logs JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1118","es_ES","Sistema - registros de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1118","fr_FR","Système - logs JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1119","de_DE","Suche - oben","",""); -INSERT INTO `hook_i18n` VALUES("1119","en_US","Search - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1119","es_ES","Búsqueda - al inicio","",""); -INSERT INTO `hook_i18n` VALUES("1119","fr_FR","Recherche - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1120","de_DE","Suche - unten","",""); -INSERT INTO `hook_i18n` VALUES("1120","en_US","Search - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1120","es_ES","Búsqueda - base","",""); -INSERT INTO `hook_i18n` VALUES("1120","fr_FR","Recherche - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1121","de_DE","Suche - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1121","en_US","Search - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1121","es_ES","Búsqueda - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1121","fr_FR","Recherche - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1122","de_DE","Administratoren - oben","",""); -INSERT INTO `hook_i18n` VALUES("1122","en_US","Administrators - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1122","es_ES","Administradores - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1122","fr_FR","Administateurs - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1123","de_DE","Administratoren - unten","",""); -INSERT INTO `hook_i18n` VALUES("1123","en_US","Administrators - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1123","es_ES","Administradores - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1123","fr_FR","Administateurs - bas","",""); -INSERT INTO `hook_i18n` VALUES("1124","de_DE","Administrator - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1124","en_US","Administrator - create form","",""); -INSERT INTO `hook_i18n` VALUES("1124","es_ES","Administrador - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1124","fr_FR","Administateur - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1125","de_DE","Administrator - Änderungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1125","en_US","Administrator - update form","",""); -INSERT INTO `hook_i18n` VALUES("1125","es_ES","Administrador - formulario de actualización","",""); -INSERT INTO `hook_i18n` VALUES("1125","fr_FR","Administateur - formulaire de modification","",""); -INSERT INTO `hook_i18n` VALUES("1126","de_DE","Administrator - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1126","en_US","Administrator - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1126","es_ES","Administrador - formulario de eliminación","",""); -INSERT INTO `hook_i18n` VALUES("1126","fr_FR","Administateur - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1127","de_DE","Administratoren - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1127","en_US","Administrators - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1127","es_ES","Administradores - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1127","fr_FR","Administateurs - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1128","de_DE","Modul Hook - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1128","en_US","Module hook - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1128","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1128","fr_FR","Module hook - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1129","de_DE","Versandkonfiguration - oben","",""); -INSERT INTO `hook_i18n` VALUES("1129","en_US","Shipping configuration - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1129","es_ES","Configuración de envío - al inicio","",""); -INSERT INTO `hook_i18n` VALUES("1129","fr_FR","Configuration du transport - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1130","de_DE","Versandkonfiguration - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1130","en_US","Shipping configuration - table header","",""); -INSERT INTO `hook_i18n` VALUES("1130","es_ES","Configuración de envío - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1130","fr_FR","Configuration du transport - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1131","de_DE","Versandkonfiguration - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1131","en_US","Shipping configuration - table row","",""); -INSERT INTO `hook_i18n` VALUES("1131","es_ES","Configuración de envío - fila de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1131","fr_FR","Configuration du transport - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1132","de_DE","Versandkonfiguration - unten","",""); -INSERT INTO `hook_i18n` VALUES("1132","en_US","Shipping configuration - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1132","es_ES","Configuración de envío - base","",""); -INSERT INTO `hook_i18n` VALUES("1132","fr_FR","Configuration du transport - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1133","de_DE","Versandkonfiguration - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1133","en_US","Shipping configuration - create form","",""); -INSERT INTO `hook_i18n` VALUES("1133","es_ES","Configuración de envío - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1133","fr_FR","Configuration du transport - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1134","de_DE","Versandkonfiguration - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1134","en_US","Shipping configuration - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1134","es_ES","Configuración de envío - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1134","fr_FR","Configuration du transport - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1135","de_DE","Versandkonfiguration - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1135","en_US","Shipping configuration - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1135","es_ES","Configuración de envío - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1135","fr_FR","Configuration du transport - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1136","de_DE","Karakteristiken - oben","",""); -INSERT INTO `hook_i18n` VALUES("1136","en_US","Features - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1136","es_ES","Característica - ir arriba","",""); -INSERT INTO `hook_i18n` VALUES("1136","fr_FR","Caractéristiques - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1137","de_DE","Karakteristiken - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1137","en_US","Features - table header","",""); -INSERT INTO `hook_i18n` VALUES("1137","es_ES","Característica - Encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1137","fr_FR","Caractéristiques - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1138","de_DE","Karakteristiken - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1138","en_US","Features - table row","",""); -INSERT INTO `hook_i18n` VALUES("1138","es_ES","Característica - Fila de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1138","fr_FR","Caractéristiques - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1139","de_DE","Karakteristiken - unten","",""); -INSERT INTO `hook_i18n` VALUES("1139","en_US","Features - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1139","es_ES","Característica - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1139","fr_FR","Caractéristiques - bas","",""); -INSERT INTO `hook_i18n` VALUES("1140","de_DE","Karakteristik - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1140","en_US","Feature - create form","",""); -INSERT INTO `hook_i18n` VALUES("1140","es_ES","Característica - formulario crear","",""); -INSERT INTO `hook_i18n` VALUES("1140","fr_FR","Caractéristique - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1141","de_DE","Karakteristik - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1141","en_US","Feature - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1141","es_ES","Característica - formulario borrar","",""); -INSERT INTO `hook_i18n` VALUES("1141","fr_FR","Caractéristique - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1142","de_DE","Karakteristik - zu allen hinzufügen Formular","",""); -INSERT INTO `hook_i18n` VALUES("1142","en_US","Feature - add to all form","",""); -INSERT INTO `hook_i18n` VALUES("1142","es_ES","Característica - Agregar a todos los formularios","",""); -INSERT INTO `hook_i18n` VALUES("1142","fr_FR","Caractéristique - formulaire ajouter à tous","",""); -INSERT INTO `hook_i18n` VALUES("1143","de_DE","Karakteristik - multipel Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1143","en_US","Feature - remove to all form","",""); -INSERT INTO `hook_i18n` VALUES("1143","es_ES","Característica - eliminar todos los formularios","",""); -INSERT INTO `hook_i18n` VALUES("1143","fr_FR","Caractéristique - formulaire de suppression multiple","",""); -INSERT INTO `hook_i18n` VALUES("1144","de_DE","Karakteristiken - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1144","en_US","Features - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1144","es_ES","Característica - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1144","fr_FR","Caractéristiques - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1145","de_DE","Modul - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1145","en_US","Module - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1145","es_ES","Módulo - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1145","fr_FR","Module - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1146","de_DE","Modul Hook - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1146","en_US","Module hook - create form","",""); -INSERT INTO `hook_i18n` VALUES("1146","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1146","fr_FR","Module hook - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1147","de_DE","Modul Hook - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1147","en_US","Module hook - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1147","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1147","fr_FR","Module hook - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1148","de_DE","Modul Hook - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1148","en_US","Module hook - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1148","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1148","fr_FR","Point d\'accroche des modules - Javascript","",""); -INSERT INTO `hook_i18n` VALUES("1149","de_DE","Versandkonfiguration - Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1149","en_US","Shipping configuration - Edit","",""); -INSERT INTO `hook_i18n` VALUES("1149","es_ES","Configuración de envío - Editar","",""); -INSERT INTO `hook_i18n` VALUES("1149","fr_FR","Configuration du transport - Modification","",""); -INSERT INTO `hook_i18n` VALUES("1150","de_DE","Versandkonfiguration - Länder Löschungsfomular","",""); -INSERT INTO `hook_i18n` VALUES("1150","en_US","Shipping configuration - country delete form","",""); -INSERT INTO `hook_i18n` VALUES("1150","es_ES","Configuración de envío - formulario de borrado de país","",""); -INSERT INTO `hook_i18n` VALUES("1150","fr_FR","Configuration du transport - formulaire de suppression de pays","",""); -INSERT INTO `hook_i18n` VALUES("1151","de_DE","Versandkonfiguration - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1151","en_US","Shipping configuration - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1151","es_ES","Configuración de envío - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1151","fr_FR","Configuration du transport - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1152","de_DE","E-Mail Sendung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1152","en_US","Mailing system - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1152","es_ES","Sistema de correo - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1152","fr_FR","Envoi des e-mails - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1153","de_DE","E-Mail Sendung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1153","en_US","Mailing system - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1153","es_ES","Sistema de correo - fondo","",""); -INSERT INTO `hook_i18n` VALUES("1153","fr_FR","Envoi des e-mails - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1154","de_DE","E-Mail Sendung - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1154","en_US","Mailing system - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1154","es_ES","Sistema de correo - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1154","fr_FR","Envoi des e-mails - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1155","de_DE","Kategorien - oben","",""); -INSERT INTO `hook_i18n` VALUES("1155","en_US","Categories - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1155","es_ES","Categorías - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1155","fr_FR","Catégories - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1156","de_DE","Kategorien - Bildunterschrift","",""); -INSERT INTO `hook_i18n` VALUES("1156","en_US","Categories - caption","",""); -INSERT INTO `hook_i18n` VALUES("1156","es_ES","Categorías - título","",""); -INSERT INTO `hook_i18n` VALUES("1156","fr_FR","Catégories - légende","",""); -INSERT INTO `hook_i18n` VALUES("1157","de_DE","Kategorien - Kopfzeile","",""); -INSERT INTO `hook_i18n` VALUES("1157","en_US","Categories - header","",""); -INSERT INTO `hook_i18n` VALUES("1157","es_ES","Categorías - header","",""); -INSERT INTO `hook_i18n` VALUES("1157","fr_FR","Catégories - en-tête","",""); -INSERT INTO `hook_i18n` VALUES("1158","de_DE","Kategorien - Zeile","",""); -INSERT INTO `hook_i18n` VALUES("1158","en_US","Categories - row","",""); -INSERT INTO `hook_i18n` VALUES("1158","es_ES","Categorías - fila","",""); -INSERT INTO `hook_i18n` VALUES("1158","fr_FR","Catégories - ligne","",""); -INSERT INTO `hook_i18n` VALUES("1159","de_DE","Produkte - Bildunterschrift","",""); -INSERT INTO `hook_i18n` VALUES("1159","en_US","Products - caption","",""); -INSERT INTO `hook_i18n` VALUES("1159","es_ES","Productos - leyenda","",""); -INSERT INTO `hook_i18n` VALUES("1159","fr_FR","Produits - légende","",""); -INSERT INTO `hook_i18n` VALUES("1160","de_DE","Produkte - Header","",""); -INSERT INTO `hook_i18n` VALUES("1160","en_US","Products - header","",""); -INSERT INTO `hook_i18n` VALUES("1160","es_ES","Productos - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("1160","fr_FR","Produits - en-tête","",""); -INSERT INTO `hook_i18n` VALUES("1161","de_DE","Produkte - Zeile","",""); -INSERT INTO `hook_i18n` VALUES("1161","en_US","Products - row","",""); -INSERT INTO `hook_i18n` VALUES("1161","es_ES","Productos - fila","",""); -INSERT INTO `hook_i18n` VALUES("1161","fr_FR","Produits - ligne","",""); -INSERT INTO `hook_i18n` VALUES("1162","de_DE","Kategorien - unten","",""); -INSERT INTO `hook_i18n` VALUES("1162","en_US","Categories - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1162","es_ES","Categorías - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1162","fr_FR","Catégories - bas","",""); -INSERT INTO `hook_i18n` VALUES("1163","de_DE","Kategorien - unten an dem Katalog","",""); -INSERT INTO `hook_i18n` VALUES("1163","en_US","Categories - at the bottom of the catalog","",""); -INSERT INTO `hook_i18n` VALUES("1163","es_ES","Categorías - en la parte inferior del catálogo","",""); -INSERT INTO `hook_i18n` VALUES("1163","fr_FR","Catégories - en bas du catalogue","",""); -INSERT INTO `hook_i18n` VALUES("1164","de_DE","Kategorie - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1164","en_US","Category - create form","",""); -INSERT INTO `hook_i18n` VALUES("1164","es_ES","Formulario de creación de la categoría-","",""); -INSERT INTO `hook_i18n` VALUES("1164","fr_FR","Catégorie - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1165","de_DE","Produkt - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1165","en_US","Product - create form","",""); -INSERT INTO `hook_i18n` VALUES("1165","es_ES","Producto - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1165","fr_FR","Produit - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1166","de_DE","Kategorie - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1166","en_US","Category - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1166","es_ES","Categoría - formulario de eliminación","",""); -INSERT INTO `hook_i18n` VALUES("1166","fr_FR","Catégorie - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1167","de_DE","Produkt - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1167","en_US","Product - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1167","es_ES","Producto - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1167","fr_FR","Produit - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1168","de_DE","Kategorien - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1168","en_US","Categories - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1168","es_ES","Categorías - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1168","fr_FR","Catégories - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1169","de_DE","Variablen - oben","",""); -INSERT INTO `hook_i18n` VALUES("1169","en_US","Variables - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1169","es_ES","Variables - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1169","fr_FR","Variables - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1170","de_DE","Variablen - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1170","en_US","Variables - table header","",""); -INSERT INTO `hook_i18n` VALUES("1170","es_ES","Variables - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1170","fr_FR","Variables - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1171","de_DE","Variablen - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1171","en_US","Variables - table row","",""); -INSERT INTO `hook_i18n` VALUES("1171","es_ES","Variables - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1171","fr_FR","Variables - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1172","de_DE","Variablen - unten","",""); -INSERT INTO `hook_i18n` VALUES("1172","en_US","Variables - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1172","es_ES","Variables - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1172","fr_FR","Variables - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1173","de_DE","Variable - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1173","en_US","Variable - create form","",""); -INSERT INTO `hook_i18n` VALUES("1173","es_ES","Variable - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1173","fr_FR","Variable - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1174","de_DE","Variable - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1174","en_US","Variable - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1174","es_ES","Variable - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1174","fr_FR","Variable - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1175","de_DE","Variablen - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1175","en_US","Variables - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1175","es_ES","Variables - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1175","fr_FR","Variables - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1176","de_DE","Bestellung - Produktliste","",""); -INSERT INTO `hook_i18n` VALUES("1176","en_US","Order - product list","",""); -INSERT INTO `hook_i18n` VALUES("1176","es_ES","Orden - lista de productos","",""); -INSERT INTO `hook_i18n` VALUES("1176","fr_FR","Commande - liste produit","",""); -INSERT INTO `hook_i18n` VALUES("1177","de_DE","Bestellung - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1177","en_US","Order - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1177","es_ES","Orden - editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1177","fr_FR","Commande - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1178","de_DE","Shop Informationen - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1178","en_US","Store Information - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1178","es_ES","Información de tienda - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1178","fr_FR","Information boutique - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1179","de_DE","Übersetzungen - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1179","en_US","Translations - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1179","es_ES","Traducciones - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1179","fr_FR","Traductions - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1180","de_DE","Ordner - oben","",""); -INSERT INTO `hook_i18n` VALUES("1180","en_US","Folder - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1180","es_ES","Carpeta - ir arriba","",""); -INSERT INTO `hook_i18n` VALUES("1180","fr_FR","Dossiers - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1181","de_DE","Ordner - Bildunterschrift","",""); -INSERT INTO `hook_i18n` VALUES("1181","en_US","Folder - caption","",""); -INSERT INTO `hook_i18n` VALUES("1181","es_ES","Carpeta - título","",""); -INSERT INTO `hook_i18n` VALUES("1181","fr_FR","Dossiers - légende","",""); -INSERT INTO `hook_i18n` VALUES("1182","de_DE","Ordner - Header","",""); -INSERT INTO `hook_i18n` VALUES("1182","en_US","Folder - header","",""); -INSERT INTO `hook_i18n` VALUES("1182","es_ES","Carpeta - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("1182","fr_FR","Dossiers - en-tête","",""); -INSERT INTO `hook_i18n` VALUES("1183","de_DE","Ordner - Zeile","",""); -INSERT INTO `hook_i18n` VALUES("1183","en_US","Folder - row","",""); -INSERT INTO `hook_i18n` VALUES("1183","es_ES","Carpeta - fila","",""); -INSERT INTO `hook_i18n` VALUES("1183","fr_FR","Dossiers - ligne","",""); -INSERT INTO `hook_i18n` VALUES("1184","de_DE","Inhalte - Bildunterschrift","",""); -INSERT INTO `hook_i18n` VALUES("1184","en_US","Contents - caption","",""); -INSERT INTO `hook_i18n` VALUES("1184","es_ES","Contenido - leyenda","",""); -INSERT INTO `hook_i18n` VALUES("1184","fr_FR","Contenus - légende","",""); -INSERT INTO `hook_i18n` VALUES("1185","de_DE","Inhalte - Kopfzeile","",""); -INSERT INTO `hook_i18n` VALUES("1185","en_US","Contents - header","",""); -INSERT INTO `hook_i18n` VALUES("1185","es_ES","Contenido - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("1185","fr_FR","Contenus - en-tête","",""); -INSERT INTO `hook_i18n` VALUES("1186","de_DE","Inhalte - Zeile","",""); -INSERT INTO `hook_i18n` VALUES("1186","en_US","Contents - row","",""); -INSERT INTO `hook_i18n` VALUES("1186","es_ES","Contenido - fila","",""); -INSERT INTO `hook_i18n` VALUES("1186","fr_FR","Contenus - ligne","",""); -INSERT INTO `hook_i18n` VALUES("1187","de_DE","Ordner - unten","",""); -INSERT INTO `hook_i18n` VALUES("1187","en_US","Folder - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1187","es_ES","Carpeta - abajo","",""); -INSERT INTO `hook_i18n` VALUES("1187","fr_FR","Dossiers - bas","",""); -INSERT INTO `hook_i18n` VALUES("1188","de_DE","Ordner - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1188","en_US","Folder - create form","",""); -INSERT INTO `hook_i18n` VALUES("1188","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1188","fr_FR","Dossier - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1189","de_DE","Inhalt - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1189","en_US","Content - create form","",""); -INSERT INTO `hook_i18n` VALUES("1189","es_ES","Contenido - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1189","fr_FR","Contenu - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1190","de_DE","Ordner - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1190","en_US","Folder - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1190","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1190","fr_FR","Dossier - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1191","de_DE","Inhalt - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1191","en_US","Content - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1191","es_ES","Contenido - Formulario para eliminar","",""); -INSERT INTO `hook_i18n` VALUES("1191","fr_FR","Contenu - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1192","de_DE","Ordner - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1192","en_US","Folder - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1192","es_ES","Carpeta - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1192","fr_FR","Dossiers - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1193","de_DE","Template - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1193","en_US","Template - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1193","es_ES","Plantilla - editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1193","fr_FR","Gabarit - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1194","de_DE","Taxe - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1194","en_US","Tax - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1194","es_ES","Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1194","fr_FR","Taxe - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1195","de_DE","Hook - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1195","en_US","Hook - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1195","es_ES","Hook - editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1195","fr_FR","Point d\'accroche - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1196","de_DE","Länder - oben","",""); -INSERT INTO `hook_i18n` VALUES("1196","en_US","Countries - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1196","es_ES","Países - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1196","fr_FR","Pays - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1197","de_DE","Länder - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1197","en_US","Countries - table header","",""); -INSERT INTO `hook_i18n` VALUES("1197","es_ES","Países - encabezado de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1197","fr_FR","Pays - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1198","de_DE","Länder - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1198","en_US","Countries - table row","",""); -INSERT INTO `hook_i18n` VALUES("1198","es_ES","Países - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1198","fr_FR","Pays - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1199","de_DE","Länder - unten","",""); -INSERT INTO `hook_i18n` VALUES("1199","en_US","Countries - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1199","es_ES","Países - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1199","fr_FR","Pays - bas","",""); -INSERT INTO `hook_i18n` VALUES("1200","de_DE","Land - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1200","en_US","Country - create form","",""); -INSERT INTO `hook_i18n` VALUES("1200","es_ES","País - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1200","fr_FR","Pays - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1201","de_DE","Land - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1201","en_US","Country - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1201","es_ES","País - formulario para eliminar","",""); -INSERT INTO `hook_i18n` VALUES("1201","fr_FR","Pays - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1202","de_DE","Länder - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1202","en_US","Countries - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1202","es_ES","Países - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1202","fr_FR","Pays - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1203","de_DE","Währungen - oben","",""); -INSERT INTO `hook_i18n` VALUES("1203","en_US","Currencies - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1203","es_ES","Divisas - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1203","fr_FR","Devises - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1204","de_DE","Währungen - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1204","en_US","Currencies - table header","",""); -INSERT INTO `hook_i18n` VALUES("1204","es_ES","Divisas - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1204","fr_FR","Devises - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1205","de_DE","Währungen - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1205","en_US","Currencies - table row","",""); -INSERT INTO `hook_i18n` VALUES("1205","es_ES","Divisas - fila de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1205","fr_FR","Devises - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1206","de_DE","Währungen - unten","",""); -INSERT INTO `hook_i18n` VALUES("1206","en_US","Currencies - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1206","es_ES","Divisas - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1206","fr_FR","Devises - bas","",""); -INSERT INTO `hook_i18n` VALUES("1207","de_DE","Währung - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1207","en_US","Currency - create form","",""); -INSERT INTO `hook_i18n` VALUES("1207","es_ES","Divisas - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1207","fr_FR","Devise - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1208","de_DE","Währung - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1208","en_US","Currency - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1208","es_ES","Moneda - Formulario de eliminación","",""); -INSERT INTO `hook_i18n` VALUES("1208","fr_FR","Devise - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1209","de_DE","Währungen - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1209","en_US","Currencies - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1209","es_ES","Divisas - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1209","fr_FR","Devises - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1210","de_DE","Kunde - Modification","",""); -INSERT INTO `hook_i18n` VALUES("1210","en_US","Customer - Edit","",""); -INSERT INTO `hook_i18n` VALUES("1210","es_ES","Cliente - Editar","",""); -INSERT INTO `hook_i18n` VALUES("1210","fr_FR","Client - Modification","",""); -INSERT INTO `hook_i18n` VALUES("1211","de_DE","Kunde - Adresse-Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1211","en_US","Customer - address create form","",""); -INSERT INTO `hook_i18n` VALUES("1211","es_ES","Cliente - formulario crear dirección","",""); -INSERT INTO `hook_i18n` VALUES("1211","fr_FR","Client - formulaire de création d\'adresse","",""); -INSERT INTO `hook_i18n` VALUES("1212","de_DE","Kunde - Adresse-Änderungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1212","en_US","Customer - address update form","",""); -INSERT INTO `hook_i18n` VALUES("1212","es_ES","Cliente - formulario de actualización de dirección","",""); -INSERT INTO `hook_i18n` VALUES("1212","fr_FR","Client - formulaire de Modification d\'adresse","",""); -INSERT INTO `hook_i18n` VALUES("1213","de_DE","Kunde - Adresse-Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1213","en_US","Customer - address delete form","",""); -INSERT INTO `hook_i18n` VALUES("1213","es_ES","Cliente - Formulario borrar dirección","",""); -INSERT INTO `hook_i18n` VALUES("1213","fr_FR","Client - formulaire de suppression adresse","",""); -INSERT INTO `hook_i18n` VALUES("1214","de_DE","Kunde - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1214","en_US","Customer - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1214","es_ES","Cliente - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1214","fr_FR","Client - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1215","de_DE","Deklinationenangaben - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1215","en_US","Attributes value - table header","",""); -INSERT INTO `hook_i18n` VALUES("1215","es_ES","Valor de atributos - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1215","fr_FR","Valeurs des attributs - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1216","de_DE","Deklinationenangaben - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1216","en_US","Attributes value - table row","",""); -INSERT INTO `hook_i18n` VALUES("1216","es_ES","Valor de atributos - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1216","fr_FR","Valeurs des attributs - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1217","de_DE","Deklinationsangabe - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1217","en_US","Attribute value - create form","",""); -INSERT INTO `hook_i18n` VALUES("1217","es_ES","Valor de atributo - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1217","fr_FR","Valeur d\'attribut - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1218","de_DE","Deklination - ID Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1218","en_US","Attribut - id delete form","",""); -INSERT INTO `hook_i18n` VALUES("1218","es_ES","Atributo - Formulario de eliminación de id","",""); -INSERT INTO `hook_i18n` VALUES("1218","fr_FR","Attribut - formulaire de suppression ID","",""); -INSERT INTO `hook_i18n` VALUES("1219","de_DE","Deklination - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1219","en_US","Attribut - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1219","es_ES","Atributo - editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1219","fr_FR","Attribut - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1220","de_DE","Profile - oben","",""); -INSERT INTO `hook_i18n` VALUES("1220","en_US","Profiles - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1220","es_ES","Perfiles - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1220","fr_FR","Profils - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1221","de_DE","Profile - unten","",""); -INSERT INTO `hook_i18n` VALUES("1221","en_US","Profiles - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1221","es_ES","Perfiles - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1221","fr_FR","Profils - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1222","de_DE","Profil - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1222","en_US","Profile - create form","",""); -INSERT INTO `hook_i18n` VALUES("1222","es_ES","Perfil - formulario de alta","",""); -INSERT INTO `hook_i18n` VALUES("1222","fr_FR","Profil - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1223","de_DE","Profil - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1223","en_US","Profile - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1223","es_ES","Perfil - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1223","fr_FR","Profil - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1224","de_DE","Profile - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1224","en_US","Profiles - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1224","es_ES","Perfiles - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1224","fr_FR","Profils - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1225","de_DE","Land - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1225","en_US","Country - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1225","es_ES","País - editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1225","fr_FR","Pays - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1226","de_DE","Profil - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1226","en_US","Profile - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1226","es_ES","Perfil - editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1226","fr_FR","Profil - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1227","de_DE","Variable - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1227","en_US","Variable - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1227","es_ES","Variable - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1227","fr_FR","Variable - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1228","de_DE","Gutschein - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1228","en_US","Coupon - update JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1228","es_ES","Cupón - actualizar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1228","fr_FR","Code promo - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1229","de_DE","Gutschein - oben","",""); -INSERT INTO `hook_i18n` VALUES("1229","en_US","Coupon - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1229","es_ES","Cupón - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1229","fr_FR","Code promo - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1230","de_DE","Gutschein - Bildunterschrift","",""); -INSERT INTO `hook_i18n` VALUES("1230","en_US","Coupon - list caption","",""); -INSERT INTO `hook_i18n` VALUES("1230","es_ES","Cupón - titulo de la lista","",""); -INSERT INTO `hook_i18n` VALUES("1230","fr_FR","Code promo - légende liste","",""); -INSERT INTO `hook_i18n` VALUES("1231","de_DE","Gutschein - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1231","en_US","Coupon - table header","",""); -INSERT INTO `hook_i18n` VALUES("1231","es_ES","Cupón - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1231","fr_FR","Code promo - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1232","de_DE","Gutschein - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1232","en_US","Coupon - table row","",""); -INSERT INTO `hook_i18n` VALUES("1232","es_ES","Cupón - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1232","fr_FR","Code promo - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1233","de_DE","Gutschein - unten","",""); -INSERT INTO `hook_i18n` VALUES("1233","en_US","Coupon - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1233","es_ES","Cupón - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1233","fr_FR","Code promo - bas","",""); -INSERT INTO `hook_i18n` VALUES("1234","de_DE","Gutschein - JavaScript den Listen","",""); -INSERT INTO `hook_i18n` VALUES("1234","en_US","Coupon - list JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1234","es_ES","Cupón - enlistar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1234","fr_FR","Code promo - JavaScript des listes","",""); -INSERT INTO `hook_i18n` VALUES("1235","de_DE","Modul - Konfiguration","",""); -INSERT INTO `hook_i18n` VALUES("1235","en_US","Module - configuration","",""); -INSERT INTO `hook_i18n` VALUES("1235","es_ES","Módulo - configuración","",""); -INSERT INTO `hook_i18n` VALUES("1235","fr_FR","Module - configuration","",""); -INSERT INTO `hook_i18n` VALUES("1236","de_DE","Modul - JavaScript Konfiguration","",""); -INSERT INTO `hook_i18n` VALUES("1236","en_US","Module - configuration JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1236","es_ES","Módulo - configuración de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1236","fr_FR","Module - JavaScript configuration","",""); -INSERT INTO `hook_i18n` VALUES("1237","de_DE","Nachricht - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1237","en_US","Message - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1237","es_ES","Mensaje - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1237","fr_FR","Message - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1238","de_DE","Bild - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1238","en_US","Image - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1238","es_ES","Imagen - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1238","fr_FR","Image - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1239","de_DE","Deklinationen - oben","",""); -INSERT INTO `hook_i18n` VALUES("1239","en_US","Attributes - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1239","es_ES","Atributos - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1239","fr_FR","Attributs - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1240","de_DE","Deklinationen - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1240","en_US","Attributes - table header","",""); -INSERT INTO `hook_i18n` VALUES("1240","es_ES","Atributos - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1240","fr_FR","Attributs - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1241","de_DE","Deklinationen - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1241","en_US","Attributes - table row","",""); -INSERT INTO `hook_i18n` VALUES("1241","es_ES","Atributos - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1241","fr_FR","Attributs - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1242","de_DE","Deklinationen - unten","",""); -INSERT INTO `hook_i18n` VALUES("1242","en_US","Attributes - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1242","es_ES","Atributos - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1242","fr_FR","Attributs - bas","",""); -INSERT INTO `hook_i18n` VALUES("1243","de_DE","Deklination - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1243","en_US","Attribut - create form","",""); -INSERT INTO `hook_i18n` VALUES("1243","es_ES","Atributo - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1243","fr_FR","Attribut - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1244","de_DE","Deklination - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1244","en_US","Attribut - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1244","es_ES","Atributo - formulario de eliminación","",""); -INSERT INTO `hook_i18n` VALUES("1244","fr_FR","Attribut - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1245","de_DE","Deklination - zu allen hinzufügen Formular","",""); -INSERT INTO `hook_i18n` VALUES("1245","en_US","Attribut - add to all form","",""); -INSERT INTO `hook_i18n` VALUES("1245","es_ES","Atributo - agregar a todos los formularios","",""); -INSERT INTO `hook_i18n` VALUES("1245","fr_FR","Attribut - formulaire ajouter à tous","",""); -INSERT INTO `hook_i18n` VALUES("1246","de_DE","Deklination - multipel Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1246","en_US","Attribut - remove to all form","",""); -INSERT INTO `hook_i18n` VALUES("1246","es_ES","Atributo - quitar a todos","",""); -INSERT INTO `hook_i18n` VALUES("1246","fr_FR","Attribut - formulaire de suppression multiple","",""); -INSERT INTO `hook_i18n` VALUES("1247","de_DE","Deklinationen - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1247","en_US","Attributes - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1247","es_ES","Atributos - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1247","fr_FR","Attributs - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1248","de_DE","Logs - oben","",""); -INSERT INTO `hook_i18n` VALUES("1248","en_US","Logs - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1248","es_ES","Registros - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1248","fr_FR","Logs - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1249","de_DE","Logs - unten","",""); -INSERT INTO `hook_i18n` VALUES("1249","en_US","Logs - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1249","es_ES","Registros - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1249","fr_FR","Logs - bas","",""); -INSERT INTO `hook_i18n` VALUES("1250","de_DE","Protokolle - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1250","en_US","Logs - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1250","es_ES","Registros - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1250","fr_FR","Journaux - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1251","de_DE","Ordner - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1251","en_US","Folder - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1251","es_ES","Carpeta - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1251","fr_FR","Dossier - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1252","de_DE","Hooks - oben","",""); -INSERT INTO `hook_i18n` VALUES("1252","en_US","Hooks - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1252","es_ES","Hooks - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1252","fr_FR","Point d\'accroches - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1253","de_DE","Hooks - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1253","en_US","Hooks - table header","",""); -INSERT INTO `hook_i18n` VALUES("1253","es_ES","Hooks - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1253","fr_FR","Point d\'accroches - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1254","de_DE","Hooks - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1254","en_US","Hooks - table row","",""); -INSERT INTO `hook_i18n` VALUES("1254","es_ES","Hooks - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1254","fr_FR","Point d\'accroches - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1255","de_DE","Hooks - unten","",""); -INSERT INTO `hook_i18n` VALUES("1255","en_US","Hooks - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1255","es_ES","Hooks - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1255","fr_FR","Point d\'accroches - bas","",""); -INSERT INTO `hook_i18n` VALUES("1256","de_DE","Hook - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1256","en_US","Hook - create form","",""); -INSERT INTO `hook_i18n` VALUES("1256","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1256","fr_FR","Point d\'accroche - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1257","de_DE","Hook - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1257","en_US","Hook - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1257","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1257","fr_FR","Point d\'accroche - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1258","de_DE","Hooks - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1258","en_US","Hooks - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1258","es_ES","Hooks - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1258","fr_FR","Points d\'accroche - Javascript","",""); -INSERT INTO `hook_i18n` VALUES("1259","de_DE","Layout - CSS","",""); -INSERT INTO `hook_i18n` VALUES("1259","en_US","Layout - CSS","",""); -INSERT INTO `hook_i18n` VALUES("1259","es_ES","Diseño - CSS","",""); -INSERT INTO `hook_i18n` VALUES("1259","fr_FR","Mise en page - CSS","",""); -INSERT INTO `hook_i18n` VALUES("1260","de_DE","Layout - vor der Titelleiste","",""); -INSERT INTO `hook_i18n` VALUES("1260","en_US","Layout - before topbar","",""); -INSERT INTO `hook_i18n` VALUES("1260","es_ES","Diseño - antes de la barra superior","",""); -INSERT INTO `hook_i18n` VALUES("1260","fr_FR","Mise en page - avant la barre de titre","",""); -INSERT INTO `hook_i18n` VALUES("1261","de_DE","Layout - in der Titelleiste","",""); -INSERT INTO `hook_i18n` VALUES("1261","en_US","Layout - inside top bar","",""); -INSERT INTO `hook_i18n` VALUES("1261","es_ES","Diseño - en la barra superior","",""); -INSERT INTO `hook_i18n` VALUES("1261","fr_FR","Mise en page - dans la barre de titre","",""); -INSERT INTO `hook_i18n` VALUES("1262","de_DE","Layout - nach der Titelleiste","",""); -INSERT INTO `hook_i18n` VALUES("1262","en_US","Layout - after top bar","",""); -INSERT INTO `hook_i18n` VALUES("1262","es_ES","Diseño - después de la barra superior","",""); -INSERT INTO `hook_i18n` VALUES("1262","fr_FR","Mise en page - après la barre de titre","",""); -INSERT INTO `hook_i18n` VALUES("1263","de_DE","Layout - vor dem Top Menü","",""); -INSERT INTO `hook_i18n` VALUES("1263","en_US","Layout - before top menu","",""); -INSERT INTO `hook_i18n` VALUES("1263","es_ES","Diseño - antes del menú principal","",""); -INSERT INTO `hook_i18n` VALUES("1263","fr_FR","Mise en page - avant le menu haut","",""); -INSERT INTO `hook_i18n` VALUES("1264","de_DE","Layout - in Top-Menü Elementen","",""); -INSERT INTO `hook_i18n` VALUES("1264","en_US","Layout - in top menu items","",""); -INSERT INTO `hook_i18n` VALUES("1264","es_ES","Diseño - en la parte superior del menú artículos","",""); -INSERT INTO `hook_i18n` VALUES("1264","fr_FR","Mise en page - éléments du menu haut","",""); -INSERT INTO `hook_i18n` VALUES("1265","de_DE","Layout - nach dem Top Menü","",""); -INSERT INTO `hook_i18n` VALUES("1265","en_US","Layout - after top menu","",""); -INSERT INTO `hook_i18n` VALUES("1265","es_ES","Diseño - después del menú principal","",""); -INSERT INTO `hook_i18n` VALUES("1265","fr_FR","Mise en page - après le menu haut","",""); -INSERT INTO `hook_i18n` VALUES("1266","de_DE","Layout - vor dem Footer","",""); -INSERT INTO `hook_i18n` VALUES("1266","en_US","Layout - before footer","",""); -INSERT INTO `hook_i18n` VALUES("1266","es_ES","Diseño - antes del pie de página","",""); -INSERT INTO `hook_i18n` VALUES("1266","fr_FR","Mise en page - avant le pied de page","",""); -INSERT INTO `hook_i18n` VALUES("1267","de_DE","Layout - Im Footer","",""); -INSERT INTO `hook_i18n` VALUES("1267","en_US","Layout - in footer","",""); -INSERT INTO `hook_i18n` VALUES("1267","es_ES","Diseño - en el pie de página","",""); -INSERT INTO `hook_i18n` VALUES("1267","fr_FR","Mise en page - dans le pied de page","",""); -INSERT INTO `hook_i18n` VALUES("1268","de_DE","Layout - nach dem Footer","",""); -INSERT INTO `hook_i18n` VALUES("1268","en_US","Layout - after footer","",""); -INSERT INTO `hook_i18n` VALUES("1268","es_ES","Diseño - después de pie de página","",""); -INSERT INTO `hook_i18n` VALUES("1268","fr_FR","Mise en page - après le pied de page","",""); -INSERT INTO `hook_i18n` VALUES("1269","de_DE","Layout - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1269","en_US","Layout - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1269","es_ES","Diseño - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1269","fr_FR","Mise en page - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1270","de_DE","Layout - oben an der Titelleiste","",""); -INSERT INTO `hook_i18n` VALUES("1270","en_US","Layout - at the top of the top bar","",""); -INSERT INTO `hook_i18n` VALUES("1270","es_ES","Diseño - en la parte superior de la barra superior","",""); -INSERT INTO `hook_i18n` VALUES("1270","fr_FR","Mise en page - en haut de la barre supérieure","",""); -INSERT INTO `hook_i18n` VALUES("1271","de_DE","Layout - unten an der Titelleiste","",""); -INSERT INTO `hook_i18n` VALUES("1271","en_US","Layout - at the bottom of the top bar","",""); -INSERT INTO `hook_i18n` VALUES("1271","es_ES","Diseño - en la parte inferior de la barra superior","",""); -INSERT INTO `hook_i18n` VALUES("1271","fr_FR","Mise en page - en bas de la barre supérieure","",""); -INSERT INTO `hook_i18n` VALUES("1272","de_DE","Layout - im Kundes-Menü","",""); -INSERT INTO `hook_i18n` VALUES("1272","en_US","Layout - in the menu customers","",""); -INSERT INTO `hook_i18n` VALUES("1272","es_ES","Diseño - en el menú de cliente","",""); -INSERT INTO `hook_i18n` VALUES("1272","fr_FR","Mise en page - dans le menu clients","",""); -INSERT INTO `hook_i18n` VALUES("1273","de_DE","Layout - im Bestellungsmenü","",""); -INSERT INTO `hook_i18n` VALUES("1273","en_US","Layout - in the menu orders","",""); -INSERT INTO `hook_i18n` VALUES("1273","es_ES","Diseño - en el menú de pedidos","",""); -INSERT INTO `hook_i18n` VALUES("1273","fr_FR","Mise en page - dans le menu commandes","",""); -INSERT INTO `hook_i18n` VALUES("1274","de_DE","Layout - im Katalogs-Menü","",""); -INSERT INTO `hook_i18n` VALUES("1274","en_US","Layout - in the menu catalog","",""); -INSERT INTO `hook_i18n` VALUES("1274","es_ES","Diseño - en el menú de catálogo","",""); -INSERT INTO `hook_i18n` VALUES("1274","fr_FR","Mise en page - dans le menu catalogue","",""); -INSERT INTO `hook_i18n` VALUES("1275","de_DE","Layout - im Ordners-Menü","",""); -INSERT INTO `hook_i18n` VALUES("1275","en_US","Layout - in the menu folders","",""); -INSERT INTO `hook_i18n` VALUES("1275","es_ES","Diseño - en el menú de carpetas","",""); -INSERT INTO `hook_i18n` VALUES("1275","fr_FR","Mise en page - dans le menu dossiers","",""); -INSERT INTO `hook_i18n` VALUES("1276","de_DE","Layout - im Tools-Menü","",""); -INSERT INTO `hook_i18n` VALUES("1276","en_US","Layout - in the menu tools","",""); -INSERT INTO `hook_i18n` VALUES("1276","es_ES","Diseño - en el menú de herramientas","",""); -INSERT INTO `hook_i18n` VALUES("1276","fr_FR","Mise en page - dans le menu outils","",""); -INSERT INTO `hook_i18n` VALUES("1277","de_DE","Layout - im Moduls-Menü","",""); -INSERT INTO `hook_i18n` VALUES("1277","en_US","Layout - in the menu modules","",""); -INSERT INTO `hook_i18n` VALUES("1277","es_ES","Diseño - en el menú de módulos","",""); -INSERT INTO `hook_i18n` VALUES("1277","fr_FR","Mise en page - dans le menu modules","",""); -INSERT INTO `hook_i18n` VALUES("1278","de_DE","Layout - im konfigurations-Menü","",""); -INSERT INTO `hook_i18n` VALUES("1278","en_US","Layout - in the menu configuration","",""); -INSERT INTO `hook_i18n` VALUES("1278","es_ES","Diseño - en el menú de configuración","",""); -INSERT INTO `hook_i18n` VALUES("1278","fr_FR","Mise en page - dans le menu configuration","",""); -INSERT INTO `hook_i18n` VALUES("1279","de_DE","Marke - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1279","en_US","Brand - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1279","es_ES","Marca - editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1279","fr_FR","Marque - Modification du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1280","de_DE","Accueil - Block","",""); -INSERT INTO `hook_i18n` VALUES("1280","en_US","Home - block","",""); -INSERT INTO `hook_i18n` VALUES("1280","es_ES","Inicio - bloque","",""); -INSERT INTO `hook_i18n` VALUES("1280","fr_FR","Accueil - bloc","",""); -INSERT INTO `hook_i18n` VALUES("1281","de_DE","Marken - oben","",""); -INSERT INTO `hook_i18n` VALUES("1281","en_US","Brands - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1281","es_ES","Marcas - en parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1281","fr_FR","Marques - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1282","de_DE","Marken - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1282","en_US","Brands - table header","",""); -INSERT INTO `hook_i18n` VALUES("1282","es_ES","Marcas - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1282","fr_FR","Marques - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1283","de_DE","Marken - Tabellzeilen","",""); -INSERT INTO `hook_i18n` VALUES("1283","en_US","Brands - table row","",""); -INSERT INTO `hook_i18n` VALUES("1283","es_ES","Marcas - file de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1283","fr_FR","Marques - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1284","de_DE","Marken - unten","",""); -INSERT INTO `hook_i18n` VALUES("1284","en_US","Brands - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1284","es_ES","Marcas - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1284","fr_FR","Marques - bas","",""); -INSERT INTO `hook_i18n` VALUES("1285","de_DE","Marke - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1285","en_US","Brand - create form","",""); -INSERT INTO `hook_i18n` VALUES("1285","es_ES","Marca - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1285","fr_FR","Marque - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1286","de_DE","Marke - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1286","en_US","Brand - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1286","es_ES","Marca - formulario de eliminación","",""); -INSERT INTO `hook_i18n` VALUES("1286","fr_FR","Marque - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1287","de_DE","Marke - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1287","en_US","Brand - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1287","es_ES","Marca - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1287","fr_FR","Marque - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1288","de_DE","Exporte - oben","",""); -INSERT INTO `hook_i18n` VALUES("1288","en_US","Exports - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1288","es_ES","Exportar - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1288","fr_FR","Exports - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1289","de_DE","Exporte - unten einer Kategorie","",""); -INSERT INTO `hook_i18n` VALUES("1289","en_US","Exports - at the bottom of a category","",""); -INSERT INTO `hook_i18n` VALUES("1289","es_ES","Exportar - en la parte inferior de una categoría","",""); -INSERT INTO `hook_i18n` VALUES("1289","fr_FR","Exports - en bas d\'une catégorie","",""); -INSERT INTO `hook_i18n` VALUES("1290","de_DE","Exporte - unten der Spalte 1","",""); -INSERT INTO `hook_i18n` VALUES("1290","en_US","Exports - at the bottom of column 1","",""); -INSERT INTO `hook_i18n` VALUES("1290","es_ES","Exportar - en la parte inferior de la columna 1","",""); -INSERT INTO `hook_i18n` VALUES("1290","fr_FR","Exports - en bas de la colonne 1","",""); -INSERT INTO `hook_i18n` VALUES("1291","de_DE","Exporte - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1291","en_US","Exports - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1291","es_ES","Exportar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1291","fr_FR","Exports - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1292","de_DE","Export - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1292","en_US","Export - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1292","es_ES","Exportación - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1292","fr_FR","Export - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1293","de_DE","Marke - Inhalt","",""); -INSERT INTO `hook_i18n` VALUES("1293","en_US","Brand - content","",""); -INSERT INTO `hook_i18n` VALUES("1293","es_ES","Marca - contenido","",""); -INSERT INTO `hook_i18n` VALUES("1293","fr_FR","Marque - contenu","",""); -INSERT INTO `hook_i18n` VALUES("1294","de_DE","Kunde - Bestellungs-Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1294","en_US","Customer - order table header","",""); -INSERT INTO `hook_i18n` VALUES("1294","es_ES","Cliente - cabecera tabla de pedidos","",""); -INSERT INTO `hook_i18n` VALUES("1294","fr_FR","Client - colonne tableau commande","",""); -INSERT INTO `hook_i18n` VALUES("1295","de_DE","Kunde - Bestellungs-Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1295","en_US","Customer - order table row","",""); -INSERT INTO `hook_i18n` VALUES("1295","es_ES","Cliente - celda tabla pedidos","",""); -INSERT INTO `hook_i18n` VALUES("1295","fr_FR","Client - ligne tableau commande","",""); -INSERT INTO `hook_i18n` VALUES("1296","de_DE","Sonderangebote - oben","",""); -INSERT INTO `hook_i18n` VALUES("1296","en_US","Sales - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1296","es_ES","Ventas - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1296","fr_FR","Promotions - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1297","de_DE","Sonderangebote - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1297","en_US","Sales - table header","",""); -INSERT INTO `hook_i18n` VALUES("1297","es_ES","Ventas - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1297","fr_FR","Promotions - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1298","de_DE","Sonderangebote - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1298","en_US","Sales - table row","",""); -INSERT INTO `hook_i18n` VALUES("1298","es_ES","Ventas - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1298","fr_FR","Promotions - ligne du tableau","",""); -INSERT INTO `hook_i18n` VALUES("1299","de_DE","Sonderangebote - unten","",""); -INSERT INTO `hook_i18n` VALUES("1299","en_US","Sales - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("1299","es_ES","Ventas - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1299","fr_FR","Promotions - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1300","de_DE","Sonderangebot - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1300","en_US","Sale - create form","",""); -INSERT INTO `hook_i18n` VALUES("1300","es_ES","Venta - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1300","fr_FR","Promotion - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1301","de_DE","Sonderangebot - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1301","en_US","Sale - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1301","es_ES","Venta - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1301","fr_FR","Promotion - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1302","de_DE","Sonderangebote - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1302","en_US","Sales - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1302","es_ES","Ventas - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1302","fr_FR","Promotions - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1303","de_DE","Produkt - unten einer Produkt-Kombination","",""); -INSERT INTO `hook_i18n` VALUES("1303","en_US","Product - at the bottom of a product combination","",""); -INSERT INTO `hook_i18n` VALUES("1303","es_ES","Producto - al pie de la combinación de un producto","",""); -INSERT INTO `hook_i18n` VALUES("1303","fr_FR","Produit - en bas d\'une combinaison de déclinaisons","",""); -INSERT INTO `hook_i18n` VALUES("1304","de_DE","Layout - vor dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("1304","en_US","Layout - Before the main content","",""); -INSERT INTO `hook_i18n` VALUES("1304","es_ES","Diseño - antes el contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("1304","fr_FR","Layout - Avant le contenu principal","",""); -INSERT INTO `hook_i18n` VALUES("1305","de_DE","Admin layout - Nach dem Hauptinhalt","",""); -INSERT INTO `hook_i18n` VALUES("1305","en_US","Admin layout - After the main content","",""); -INSERT INTO `hook_i18n` VALUES("1305","es_ES","Diseño de administración - Después del contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("1305","fr_FR","Admin layout - Après le contenu principal","",""); -INSERT INTO `hook_i18n` VALUES("1306","de_DE","Kategorie - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1306","en_US","Category - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1306","es_ES","Categoría - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1306","fr_FR","Catégorie - Onglet","",""); -INSERT INTO `hook_i18n` VALUES("1307","de_DE","Produkt - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1307","en_US","Product - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1307","es_ES","Producto - Pestaña","",""); -INSERT INTO `hook_i18n` VALUES("1307","fr_FR","Produit - Onglet","",""); -INSERT INTO `hook_i18n` VALUES("1308","de_DE","Ordner - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1308","en_US","Folder - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1308","es_ES","Carpeta - Pestaña","",""); -INSERT INTO `hook_i18n` VALUES("1308","fr_FR","Dossier - Onglet","",""); -INSERT INTO `hook_i18n` VALUES("1309","de_DE","Inhalt - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1309","en_US","Content - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1309","es_ES","Contenido - Pestaña","",""); -INSERT INTO `hook_i18n` VALUES("1309","fr_FR","Contenu - Onglet","",""); -INSERT INTO `hook_i18n` VALUES("1310","de_DE","Marke - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1310","en_US","Brand - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1310","es_ES","Marca - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1310","fr_FR","Marque - Onglet","",""); -INSERT INTO `hook_i18n` VALUES("1311","de_DE","Bestellungs-Änderung - Lieferadresse","",""); -INSERT INTO `hook_i18n` VALUES("1311","en_US","Order edit - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("1311","es_ES","Editar Orden - dirección de envío","",""); -INSERT INTO `hook_i18n` VALUES("1311","fr_FR","Modification commande - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("1312","de_DE","Produktseite - oben im Formular","",""); -INSERT INTO `hook_i18n` VALUES("1312","en_US","Product page - On the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("1312","es_ES","Página de producto - en la parte superior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("1312","fr_FR","Page produit - En haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("1313","de_DE","Produktseite - unten an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("1313","en_US","Product page - On the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("1313","es_ES","Página del producto - en la parte inferior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("1313","fr_FR","Page produit - En bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("1314","de_DE","Brand edit Seite - im Formular","",""); -INSERT INTO `hook_i18n` VALUES("1314","en_US","Brand edit page - in the form","",""); -INSERT INTO `hook_i18n` VALUES("1314","es_ES","Página de edición de marca - en formulario","",""); -INSERT INTO `hook_i18n` VALUES("1314","fr_FR","Page brand edit - dans formulaire","",""); -INSERT INTO `hook_i18n` VALUES("1315","de_DE","Sonderangebot Änderungsseite - javascript last call block","",""); -INSERT INTO `hook_i18n` VALUES("1315","en_US","Sale edit page - javascript last call block","",""); -INSERT INTO `hook_i18n` VALUES("1315","es_ES","Página de edición de Venta - última bloque de llamada JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1315","fr_FR","Page sale edit - appel javascript","",""); -INSERT INTO `hook_i18n` VALUES("1316","de_DE","API Seite - oben","",""); -INSERT INTO `hook_i18n` VALUES("1316","en_US","Api page - at top","",""); -INSERT INTO `hook_i18n` VALUES("1316","es_ES","Página de la API - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1316","fr_FR","Page api - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1317","de_DE","API Seite - unten","",""); -INSERT INTO `hook_i18n` VALUES("1317","en_US","Api page - at bottom","",""); -INSERT INTO `hook_i18n` VALUES("1317","es_ES","Página de la API - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1317","fr_FR","Page api - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1318","de_DE","API Seite - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1318","en_US","Api page - in deletion form","",""); -INSERT INTO `hook_i18n` VALUES("1318","es_ES","Página de Api - en formulario de eliminación","",""); -INSERT INTO `hook_i18n` VALUES("1318","fr_FR","Page api - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1319","de_DE","Gutschein-Seite - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1319","en_US","Coupon page - in deletion form","",""); -INSERT INTO `hook_i18n` VALUES("1319","es_ES","Página de cupón - en formulario de eliminación","",""); -INSERT INTO `hook_i18n` VALUES("1319","fr_FR","Page coupon - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1320","de_DE","Bestellung - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1320","en_US","Order - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1320","es_ES","Orden - Pestaña","",""); -INSERT INTO `hook_i18n` VALUES("1320","fr_FR","Commande- Onglet","",""); -INSERT INTO `hook_i18n` VALUES("1321","de_DE","Profil - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1321","en_US","Profile - table header","",""); -INSERT INTO `hook_i18n` VALUES("1321","es_ES","Perfil - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1321","fr_FR","Profil - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1322","de_DE","Profil - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1322","en_US","Profile - table row","",""); -INSERT INTO `hook_i18n` VALUES("1322","es_ES","Perfil - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1322","fr_FR","Profil - ligne du tableau","",""); -INSERT INTO `hook_i18n` VALUES("1323","de_DE","Import - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1323","en_US","Import - table header","",""); -INSERT INTO `hook_i18n` VALUES("1323","es_ES","Importar - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1323","fr_FR","Import - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1324","de_DE","Import - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1324","en_US","Import - table row","",""); -INSERT INTO `hook_i18n` VALUES("1324","es_ES","Importar - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1324","fr_FR","Import - ligne du tableau","",""); -INSERT INTO `hook_i18n` VALUES("1325","de_DE","Export - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1325","en_US","Export - table header","",""); -INSERT INTO `hook_i18n` VALUES("1325","es_ES","Exportación - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1325","fr_FR","Export - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1326","de_DE","Export - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1326","en_US","Export - table row","",""); -INSERT INTO `hook_i18n` VALUES("1326","es_ES","Exportación - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1326","fr_FR","Export - ligne du tableau","",""); -INSERT INTO `hook_i18n` VALUES("1327","de_DE","Kategorie Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1327","en_US","Category edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1327","es_ES","Categoría edición - superior","",""); -INSERT INTO `hook_i18n` VALUES("1327","fr_FR","Édition d\'une categorie - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1328","de_DE","Kategorie Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1328","en_US","Category edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1328","es_ES","Editar categoría - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1328","fr_FR","Édition d\'une categorie - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1329","de_DE","Marke Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1329","en_US","Brand edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1329","es_ES","Editar marca - superior","",""); -INSERT INTO `hook_i18n` VALUES("1329","fr_FR","Édition d\'une marque - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1330","de_DE","Marke Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1330","en_US","Brand edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1330","es_ES","Editar marca - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1330","fr_FR","Édition d\'une marque - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1331","de_DE","Deklination Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1331","en_US","Attribute edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1331","es_ES","Editar atributo - superior","",""); -INSERT INTO `hook_i18n` VALUES("1331","fr_FR","Édition d\'une déclinaison - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1332","de_DE","Deklination Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1332","en_US","Attribute edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1332","es_ES","Edición de atributos - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1332","fr_FR","Édition d\'une déclinaison - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1333","de_DE","Währung Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1333","en_US","Currency edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1333","es_ES","Editar Monedas - Cabecera","",""); -INSERT INTO `hook_i18n` VALUES("1333","fr_FR","Édition d\'une devise - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1334","de_DE","Währung Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1334","en_US","Currency edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1334","es_ES","Editar Monedas - Pie","",""); -INSERT INTO `hook_i18n` VALUES("1334","fr_FR","Édition d\'une devise - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1335","de_DE","Währung Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1335","en_US","Country edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1335","es_ES","Edición de país - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1335","fr_FR","Édition d\'un pays - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1336","de_DE","Währung Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1336","en_US","Country edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1336","es_ES","Edición de pais - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1336","fr_FR","Édition d\'un pays - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1337","de_DE","Inhalt Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1337","en_US","Content edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1337","es_ES","Editar contenido - superior","",""); -INSERT INTO `hook_i18n` VALUES("1337","fr_FR","Édition d\'un contenu - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1338","de_DE","Inhalt Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1338","en_US","Content edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1338","es_ES","Editar Contenido - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1338","fr_FR","Édition d\'un contenu - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1339","de_DE","Charakteristik Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1339","en_US","Feature edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1339","es_ES","Editar Característica - superior","",""); -INSERT INTO `hook_i18n` VALUES("1339","fr_FR","Édition d\'une caractéristique - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1340","de_DE","Charakteristik Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1340","en_US","Feature edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1340","es_ES","Editar Característica - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1340","fr_FR","Édition d\'une caractéristique - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1341","de_DE","Dokument Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1341","en_US","Document edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1341","es_ES","Edición de documentos - cabecera","",""); -INSERT INTO `hook_i18n` VALUES("1341","fr_FR","Édition d\'un document - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1342","de_DE","Dokument Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1342","en_US","Document edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1342","es_ES","Edición de documentos - pie","",""); -INSERT INTO `hook_i18n` VALUES("1342","fr_FR","Édition d\'un document - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1343","de_DE","Kunde Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1343","en_US","Client edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1343","es_ES","Editar cliente - superior","",""); -INSERT INTO `hook_i18n` VALUES("1343","fr_FR","Édition d\'un client - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1344","de_DE","Kunde Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1344","en_US","Client edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1344","es_ES","Editar cliente - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1344","fr_FR","Édition d\'un client - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1345","de_DE","Bild Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1345","en_US","Image edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1345","es_ES","Edición de imagen - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1345","fr_FR","Édition d\'image - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1346","de_DE","Bild Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1346","en_US","Image edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1346","es_ES","Edición de imagen - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1346","fr_FR","Édition d\'image - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1347","de_DE","Hook Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1347","en_US","Hook edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1347","es_ES","Edición de Hook - superior","",""); -INSERT INTO `hook_i18n` VALUES("1347","fr_FR","Édition d\'hook - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1348","de_DE","Hook Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1348","en_US","Hook edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1348","es_ES","Edición de Hook - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1348","fr_FR","Édition d\'hook - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1349","de_DE","Ordner Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1349","en_US","Folder edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1349","es_ES","Edición de carpeta - superior","",""); -INSERT INTO `hook_i18n` VALUES("1349","fr_FR","Édition d\'un dossier - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1350","de_DE","Ordner Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1350","en_US","Folder edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1350","es_ES","Editar carpeta - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1350","fr_FR","Édition d\'un dossier - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1351","de_DE","Modul-Hook Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1351","en_US","Module hook edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1351","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1351","fr_FR","Édition d\'un hook de module - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1352","de_DE","Modul-Hook Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1352","en_US","Module hook edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1352","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1352","fr_FR","Édition d\'un hook de module - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1353","de_DE","Modul Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1353","en_US","Module edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1353","es_ES","Edición de módulo - tope","",""); -INSERT INTO `hook_i18n` VALUES("1353","fr_FR","Édition d\'un module - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1354","de_DE","Modul Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1354","en_US","Module edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1354","es_ES","Edición de módulo - base","",""); -INSERT INTO `hook_i18n` VALUES("1354","fr_FR","Édition d\'un module - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1355","de_DE","Nachricht Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1355","en_US","Message edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1355","es_ES","Editar mensaje - tope","",""); -INSERT INTO `hook_i18n` VALUES("1355","fr_FR","Édition d\'un message - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1356","de_DE","Nachricht Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1356","en_US","Message edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1356","es_ES","Editar mensaje - base","",""); -INSERT INTO `hook_i18n` VALUES("1356","fr_FR","Édition d\'un message - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1357","de_DE","Profil Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1357","en_US","Profile edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1357","es_ES","Editar Perfil - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1357","fr_FR","Édition d\'un profil - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1358","de_DE","Profil Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1358","en_US","Profile edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1358","es_ES","Editar Perfil - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1358","fr_FR","Édition d\'un profil - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1359","de_DE","Produkt Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1359","en_US","Product edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1359","es_ES","Editar producto - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1359","fr_FR","Édition d\'un produit - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1360","de_DE","Produkt Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1360","en_US","Product edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1360","es_ES","Editar producto - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1360","fr_FR","Édition d\'un produit - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1361","de_DE","Bestellung Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1361","en_US","Order edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1361","es_ES","Edición de Pedido - al tope","",""); -INSERT INTO `hook_i18n` VALUES("1361","fr_FR","Édition d\'une commande - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1362","de_DE","Bestellung Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1362","en_US","Order edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1362","es_ES","Editar Orden - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1362","fr_FR","Édition d\'une commande - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1363","de_DE","Transporteur Lieferzonen Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1363","en_US","Shipping zones edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1363","es_ES","Edición zonas de envío - inicio","",""); -INSERT INTO `hook_i18n` VALUES("1363","fr_FR","Édition des zones de livraison d\'un transporteur - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1364","de_DE","Transporteur Lieferzonen Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1364","en_US","Shipping zones edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1364","es_ES","Edición zonas de envío - base","",""); -INSERT INTO `hook_i18n` VALUES("1364","fr_FR","Édition des zones de livraison d\'un transporteur - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1365","de_DE","Lieferzone Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1365","en_US","Shipping configuration edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1365","es_ES","Configuración de envío - inicio","",""); -INSERT INTO `hook_i18n` VALUES("1365","fr_FR","Édition d\'une zone de livraison - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1366","de_DE","Lieferzone Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1366","en_US","Shipping configuration edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1366","es_ES","Configuración de envío - base","",""); -INSERT INTO `hook_i18n` VALUES("1366","fr_FR","Édition d\'une zone de livraiso - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1367","de_DE","Sonderangebot Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1367","en_US","Sale edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1367","es_ES","Editar Venta - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1367","fr_FR","Édition d\'une promotion - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1368","de_DE","Sonderangebot Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1368","en_US","Sale edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1368","es_ES","Editar Venta - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1368","fr_FR","Édition d\'une promotion - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1369","de_DE","Variable Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1369","en_US","Variable edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1369","es_ES","Editar variable - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1369","fr_FR","Édition d\'une variable - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1370","de_DE","Variable Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1370","en_US","Variable edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1370","es_ES","Editar variable - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1370","fr_FR","Édition d\'une variable - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1371","de_DE","Template Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1371","en_US","Template edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1371","es_ES","Editar plantilla - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1371","fr_FR","Édition d\'un gabarit - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1372","de_DE","Template Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1372","en_US","Template edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1372","es_ES","Editar plantilla - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1372","fr_FR","Édition d\'un gabarit - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1373","de_DE","Taxregel Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1373","en_US","Tax rule edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1373","es_ES","Edición de regla de impuesto - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1373","fr_FR","Édition d\'une règle de taxe - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1374","de_DE","Taxregel Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1374","en_US","Tax rule edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1374","es_ES","Editar regla de Impuesto - base","",""); -INSERT INTO `hook_i18n` VALUES("1374","fr_FR","Édition d\'une règle de taxe - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1375","de_DE","Taxe Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1375","en_US","Tax edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1375","es_ES","Editar Impuesto - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1375","fr_FR","Édition d\'une taxe - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1376","de_DE","Taxe Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1376","en_US","Tax edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1376","es_ES","Editar Impuesto - base","",""); -INSERT INTO `hook_i18n` VALUES("1376","fr_FR","Édition d\'une taxe - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1377","de_DE","Bestellungs Bearbeitung - unter die Produktdaten","",""); -INSERT INTO `hook_i18n` VALUES("1377","en_US","Order edit - displayed after product information","",""); -INSERT INTO `hook_i18n` VALUES("1377","es_ES","Edición de Pedido - se muestra después de la información de producto","",""); -INSERT INTO `hook_i18n` VALUES("1377","fr_FR","Édition d\'une commande - sous les informations du produit","",""); -INSERT INTO `hook_i18n` VALUES("1378","de_DE","SEO Tab - oben","",""); -INSERT INTO `hook_i18n` VALUES("1378","en_US","Tab SEO - top","",""); -INSERT INTO `hook_i18n` VALUES("1378","es_ES","Ficha SEO - arriba","",""); -INSERT INTO `hook_i18n` VALUES("1378","fr_FR","Onglet SEO - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1379","de_DE","SEO Tab - unten","",""); -INSERT INTO `hook_i18n` VALUES("1379","en_US","Tab SEO - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1379","es_ES","Ficha SEO - abajo","",""); -INSERT INTO `hook_i18n` VALUES("1379","fr_FR","Onglet SEO - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1380","de_DE","Bild Tab - oben","",""); -INSERT INTO `hook_i18n` VALUES("1380","en_US","Tab image - top","",""); -INSERT INTO `hook_i18n` VALUES("1380","es_ES","Pestaña de imagen - arriba","",""); -INSERT INTO `hook_i18n` VALUES("1380","fr_FR","Onglet image - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1381","de_DE","Bild Tab - unten","",""); -INSERT INTO `hook_i18n` VALUES("1381","en_US","Tab image - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1381","es_ES","Pestaña de imagen - abajo","",""); -INSERT INTO `hook_i18n` VALUES("1381","fr_FR","Onglet image - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1382","de_DE","Dokument Tab - oben","",""); -INSERT INTO `hook_i18n` VALUES("1382","en_US","Tab document - top","",""); -INSERT INTO `hook_i18n` VALUES("1382","es_ES","Ficha de documento - arriba","",""); -INSERT INTO `hook_i18n` VALUES("1382","fr_FR","Onglet document - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1383","de_DE","Dokument Tab - unten","",""); -INSERT INTO `hook_i18n` VALUES("1383","en_US","Tab document - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1383","es_ES","Ficha de documento - abajo","",""); -INSERT INTO `hook_i18n` VALUES("1383","fr_FR","Onglet document - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1384","de_DE","Export modal or page - oben","",""); -INSERT INTO `hook_i18n` VALUES("1384","en_US","Export modal or page - top","",""); -INSERT INTO `hook_i18n` VALUES("1384","es_ES","Modal o página de exportación - superior","",""); -INSERT INTO `hook_i18n` VALUES("1384","fr_FR","Modal ou page d\'export - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1385","de_DE","Export modal or page - unten","",""); -INSERT INTO `hook_i18n` VALUES("1385","en_US","Export modal or page - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1385","es_ES","Modal o página de exportación - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1385","fr_FR","Modal ou page d\'export - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1386","de_DE","Bestellung - Kunde Informationen unten","",""); -INSERT INTO `hook_i18n` VALUES("1386","en_US","Order - customer information bottom","",""); -INSERT INTO `hook_i18n` VALUES("1386","es_ES","Orden - parte inferior de información del cliente","",""); -INSERT INTO `hook_i18n` VALUES("1386","fr_FR","Commande - en bas des informations client","",""); -INSERT INTO `hook_i18n` VALUES("1387","de_DE","Bestellung - Zahlungsmodul unten","",""); -INSERT INTO `hook_i18n` VALUES("1387","en_US","Order - payment module bottom","",""); -INSERT INTO `hook_i18n` VALUES("1387","es_ES","Orden - parte inferior del módulo de pago","",""); -INSERT INTO `hook_i18n` VALUES("1387","fr_FR","Commande - en bas du module de paiement","",""); -INSERT INTO `hook_i18n` VALUES("1388","de_DE","Bestellung - Liefermodul unten","",""); -INSERT INTO `hook_i18n` VALUES("1388","en_US","Order - delivery module bottom","",""); -INSERT INTO `hook_i18n` VALUES("1388","es_ES","Orden - parte inferior del módulo de entrega","",""); -INSERT INTO `hook_i18n` VALUES("1388","fr_FR","Commande - en bas du module de livraison","",""); -INSERT INTO `hook_i18n` VALUES("1389","de_DE","Registerkarte SEO - Update-Formular","",""); -INSERT INTO `hook_i18n` VALUES("1389","en_US","Tab SEO - update form","",""); -INSERT INTO `hook_i18n` VALUES("1389","es_ES","Ficha SEO - formato de actualización","",""); -INSERT INTO `hook_i18n` VALUES("1389","fr_FR","Onglet SEO - formulaire de mise à jour","",""); -INSERT INTO `hook_i18n` VALUES("1390","de_DE","Bestellung bearbeiten - Produkttabelle Header","",""); -INSERT INTO `hook_i18n` VALUES("1390","en_US","Order edit - order product table header","",""); -INSERT INTO `hook_i18n` VALUES("1390","es_ES","Edición de Pedido - encabezado de la tabla de pedido de producto","",""); -INSERT INTO `hook_i18n` VALUES("1390","fr_FR","Modification commande - en-tête des produits","",""); -INSERT INTO `hook_i18n` VALUES("1391","de_DE","Bestellung bearbeiten - Produkttabelle Zeile","",""); -INSERT INTO `hook_i18n` VALUES("1391","en_US","Order edit - order product table row","",""); -INSERT INTO `hook_i18n` VALUES("1391","es_ES","Edición de Pedido - fila de la tabla del pedido de producto","",""); -INSERT INTO `hook_i18n` VALUES("1391","fr_FR","Modification commande - ligne du tableau des produits","",""); -INSERT INTO `hook_i18n` VALUES("1392","de_DE","Administratoren - Header","",""); -INSERT INTO `hook_i18n` VALUES("1392","en_US","Administrators - header","",""); -INSERT INTO `hook_i18n` VALUES("1392","es_ES","Administradores - cabecera","",""); -INSERT INTO `hook_i18n` VALUES("1392","fr_FR","Administrateurs - en-tête","",""); -INSERT INTO `hook_i18n` VALUES("1393","de_DE","Administratoren - Zeile","",""); -INSERT INTO `hook_i18n` VALUES("1393","en_US","Administrators - row","",""); -INSERT INTO `hook_i18n` VALUES("1393","es_ES","Administradores - fila","",""); -INSERT INTO `hook_i18n` VALUES("1393","fr_FR","Administrateurs - ligne","",""); -INSERT INTO `hook_i18n` VALUES("1394","de_DE","Erweiterte Konfiguration","",""); -INSERT INTO `hook_i18n` VALUES("1394","en_US","Advanced Configuration","",""); -INSERT INTO `hook_i18n` VALUES("1394","es_ES","Configuración avanzada","",""); -INSERT INTO `hook_i18n` VALUES("1394","fr_FR","Configuration avancée","",""); -INSERT INTO `hook_i18n` VALUES("1395","de_DE","Erweiterte Konfiguration - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1395","en_US","Advanced Configuration - Javascript","",""); -INSERT INTO `hook_i18n` VALUES("1395","es_ES","Configuración avanzada - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1395","fr_FR","Configuration avancée - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1396","de_DE","Marke bearbeiten - Rechte Spalte oben","",""); -INSERT INTO `hook_i18n` VALUES("1396","en_US","Brand edit - right column top","",""); -INSERT INTO `hook_i18n` VALUES("1396","es_ES","Edición de marca - encabezado de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1396","fr_FR","Édition d\'une marque - en haut de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1397","de_DE","Marke bearbeiten - Rechte Spalte unten","",""); -INSERT INTO `hook_i18n` VALUES("1397","en_US","Brand edit - right column bottom","",""); -INSERT INTO `hook_i18n` VALUES("1397","es_ES","Edición de marca - al pie de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1397","fr_FR","Édition d\'une marque - en bas de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1398","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1398","en_US","Category edit - right column top","",""); -INSERT INTO `hook_i18n` VALUES("1398","es_ES","Edición de categoría - al tope de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1398","fr_FR","Édition d\'une catégorie - en haut de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1399","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1399","en_US","Category edit - right column bottom","",""); -INSERT INTO `hook_i18n` VALUES("1399","es_ES","Edición de categoría - al pie de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1399","fr_FR","Édition d\'une catégorie - en bas de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1400","de_DE","Inhalt bearbeiten - Rechte Spalte oben","",""); -INSERT INTO `hook_i18n` VALUES("1400","en_US","Content edit - right column top","",""); -INSERT INTO `hook_i18n` VALUES("1400","es_ES","Edición de Contenido - al tope de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1400","fr_FR","Édition d\'un contenu - en haut de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1401","de_DE","Inhalt bearbeiten - Rechte Spalte unten","",""); -INSERT INTO `hook_i18n` VALUES("1401","en_US","Content edit - right column bottom","",""); -INSERT INTO `hook_i18n` VALUES("1401","es_ES","Edición de Contenido - al pie de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1401","fr_FR","Édition d\'un contenu - en bas de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1402","de_DE","Ordner bearbeiten - Rechte Spalte oben","",""); -INSERT INTO `hook_i18n` VALUES("1402","en_US","Folder edit - right column top","",""); -INSERT INTO `hook_i18n` VALUES("1402","es_ES","Edición de carpeta - al tope de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1402","fr_FR","Édition d\'un dossier - en haut de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1403","de_DE","Ordner bearbeiten - Rechte Spalte unten","",""); -INSERT INTO `hook_i18n` VALUES("1403","en_US","Folder edit - right column bottom","",""); -INSERT INTO `hook_i18n` VALUES("1403","es_ES","Edición de carpeta - al pie de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1403","fr_FR","Édition d\'un dossier - en bas de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1404","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1404","en_US","Product edit - right column top","",""); -INSERT INTO `hook_i18n` VALUES("1404","es_ES","Edición de producto - encabezado de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1404","fr_FR","Édition d\'un produit - en haut de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1405","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1405","en_US","Product edit - right column bottom","",""); -INSERT INTO `hook_i18n` VALUES("1405","es_ES","Edición de producto - al pie de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1405","fr_FR","Édition d\'un produit - en bas de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1406","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1406","en_US","state-edit - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1406","es_ES","estado - editar - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("1406","fr_FR","édition d\'un état - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1407","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1407","en_US","state-edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1407","es_ES","estado - al pie","",""); -INSERT INTO `hook_i18n` VALUES("1407","fr_FR","édition d\'un état - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1408","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1408","en_US","state - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1408","es_ES","estado - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1408","fr_FR","Etat - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1409","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1409","en_US","states - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1409","es_ES","estados - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("1409","fr_FR","états - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1410","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1410","en_US","states - table header","",""); -INSERT INTO `hook_i18n` VALUES("1410","es_ES","estados - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1410","fr_FR","états - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1411","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1411","en_US","states - table row","",""); -INSERT INTO `hook_i18n` VALUES("1411","es_ES","estados - fila de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1411","fr_FR","états - ligne du tableau","",""); -INSERT INTO `hook_i18n` VALUES("1412","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1412","en_US","states - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1412","es_ES","estados - al pie","",""); -INSERT INTO `hook_i18n` VALUES("1412","fr_FR","états - bas","",""); -INSERT INTO `hook_i18n` VALUES("1413","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1413","en_US","state - creation form","",""); -INSERT INTO `hook_i18n` VALUES("1413","es_ES","estado - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1413","fr_FR","état - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1414","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1414","en_US","state - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1414","es_ES","estado - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1414","fr_FR","état - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1415","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1415","en_US","states - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1415","es_ES","estados - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1415","fr_FR","états - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("2001","de_DE","Rechnung - CSS","",""); -INSERT INTO `hook_i18n` VALUES("2001","en_US","Invoice - CSS","",""); -INSERT INTO `hook_i18n` VALUES("2001","es_ES","Factura - CSS","",""); -INSERT INTO `hook_i18n` VALUES("2001","fr_FR","Facture - CSS","",""); -INSERT INTO `hook_i18n` VALUES("2002","de_DE","Rechnung - im Header","",""); -INSERT INTO `hook_i18n` VALUES("2002","en_US","Invoice - in the header","",""); -INSERT INTO `hook_i18n` VALUES("2002","es_ES","Factura - en la cabecera","",""); -INSERT INTO `hook_i18n` VALUES("2002","fr_FR","Facture - dans l\'en-tête","",""); -INSERT INTO `hook_i18n` VALUES("2003","de_DE","Rechnung - oben an dem Footer","",""); -INSERT INTO `hook_i18n` VALUES("2003","en_US","Invoice - at the top of the footer","",""); -INSERT INTO `hook_i18n` VALUES("2003","es_ES","Factura - en la parte superior del pie de página","",""); -INSERT INTO `hook_i18n` VALUES("2003","fr_FR","Facture - en haut du pied de page","",""); -INSERT INTO `hook_i18n` VALUES("2004","de_DE","Rechnung - Impressum","",""); -INSERT INTO `hook_i18n` VALUES("2004","en_US","Invoice - imprint","",""); -INSERT INTO `hook_i18n` VALUES("2004","es_ES","Factura - pie de imprenta","",""); -INSERT INTO `hook_i18n` VALUES("2004","fr_FR","Facture - mentions légales","",""); -INSERT INTO `hook_i18n` VALUES("2005","de_DE","Rechnung - unten an dem Footer","",""); -INSERT INTO `hook_i18n` VALUES("2005","en_US","Invoice - at the bottom of the footer","",""); -INSERT INTO `hook_i18n` VALUES("2005","es_ES","Factura - en la parte inferior del pie de página","",""); -INSERT INTO `hook_i18n` VALUES("2005","fr_FR","Facture - en bas du pied de page","",""); -INSERT INTO `hook_i18n` VALUES("2006","de_DE","Rechnung - unten an dem Informationsbereich","",""); -INSERT INTO `hook_i18n` VALUES("2006","en_US","Invoice - at the bottom of information area","",""); -INSERT INTO `hook_i18n` VALUES("2006","es_ES","Factura - en la parte inferior del área de la información","",""); -INSERT INTO `hook_i18n` VALUES("2006","fr_FR","Facture - en bas de la zone d\'informations","",""); -INSERT INTO `hook_i18n` VALUES("2007","de_DE","Rechnung - nach dem Informationsbereich","",""); -INSERT INTO `hook_i18n` VALUES("2007","en_US","Invoice - after the information area","",""); -INSERT INTO `hook_i18n` VALUES("2007","es_ES","Factura - después del área de información","",""); -INSERT INTO `hook_i18n` VALUES("2007","fr_FR","Facture - après la zone d\'informations","",""); -INSERT INTO `hook_i18n` VALUES("2008","de_DE","Rechnung - Bestellungsadresse","",""); -INSERT INTO `hook_i18n` VALUES("2008","en_US","Invoice - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("2008","es_ES","Factura - dirección de envío","",""); -INSERT INTO `hook_i18n` VALUES("2008","fr_FR","Facture - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("2009","de_DE","Rechnung - nach dem Adressebereich","",""); -INSERT INTO `hook_i18n` VALUES("2009","en_US","Invoice - after addresse area","",""); -INSERT INTO `hook_i18n` VALUES("2009","es_ES","Factura - después del área de dirección","",""); -INSERT INTO `hook_i18n` VALUES("2009","fr_FR","Facture - après la zone d\'adresses","",""); -INSERT INTO `hook_i18n` VALUES("2010","de_DE","Rechnung - nach der Produktliste","",""); -INSERT INTO `hook_i18n` VALUES("2010","en_US","Invoice - after product listing","",""); -INSERT INTO `hook_i18n` VALUES("2010","es_ES","Factura - después de listado de productos","",""); -INSERT INTO `hook_i18n` VALUES("2010","fr_FR","Facture - après la liste des produits","",""); -INSERT INTO `hook_i18n` VALUES("2011","de_DE","Rechnung - nach der Bestellungs-Zusammenfassung","",""); -INSERT INTO `hook_i18n` VALUES("2011","en_US","Invoice - after the order summary","",""); -INSERT INTO `hook_i18n` VALUES("2011","es_ES","Factura - después del resumen de la orden","",""); -INSERT INTO `hook_i18n` VALUES("2011","fr_FR","Facture - après le résumé de la commande","",""); -INSERT INTO `hook_i18n` VALUES("2012","de_DE","Lieferung - CSS","",""); -INSERT INTO `hook_i18n` VALUES("2012","en_US","Delivery - CSS","",""); -INSERT INTO `hook_i18n` VALUES("2012","es_ES","Entrega - CSS","",""); -INSERT INTO `hook_i18n` VALUES("2012","fr_FR","Bon de livraison - CSS","",""); -INSERT INTO `hook_i18n` VALUES("2013","de_DE","Lieferung - im Header","",""); -INSERT INTO `hook_i18n` VALUES("2013","en_US","Delivery - in the header","",""); -INSERT INTO `hook_i18n` VALUES("2013","es_ES","Envío - en la cabecera","",""); -INSERT INTO `hook_i18n` VALUES("2013","fr_FR","Bon de livraison - dans l\'en-tête","",""); -INSERT INTO `hook_i18n` VALUES("2014","de_DE","Lieferung - oben an dem Footer","",""); -INSERT INTO `hook_i18n` VALUES("2014","en_US","Delivery - at the top of the footer","",""); -INSERT INTO `hook_i18n` VALUES("2014","es_ES","Envío - en la parte superior del footer","",""); -INSERT INTO `hook_i18n` VALUES("2014","fr_FR","Bon de livraison - en haut du pied de page","",""); -INSERT INTO `hook_i18n` VALUES("2015","de_DE","Lieferung - Impressum","",""); -INSERT INTO `hook_i18n` VALUES("2015","en_US","Delivery - imprint","",""); -INSERT INTO `hook_i18n` VALUES("2015","es_ES","Envío - imprimir","",""); -INSERT INTO `hook_i18n` VALUES("2015","fr_FR","Bon de livraison - mentions légales","",""); -INSERT INTO `hook_i18n` VALUES("2016","de_DE","Lieferung - unten an dem Footer","",""); -INSERT INTO `hook_i18n` VALUES("2016","en_US","Delivery - at the bottom of the footer","",""); -INSERT INTO `hook_i18n` VALUES("2016","es_ES","Envío - En el pie del footer","",""); -INSERT INTO `hook_i18n` VALUES("2016","fr_FR","Bon de livraison - en bas du pied de page","",""); -INSERT INTO `hook_i18n` VALUES("2017","de_DE","Lieferung - unten an dem Informationsbereich","",""); -INSERT INTO `hook_i18n` VALUES("2017","en_US","Delivery - at the bottom of information area","",""); -INSERT INTO `hook_i18n` VALUES("2017","es_ES","Envío - en el pié del área de información","",""); -INSERT INTO `hook_i18n` VALUES("2017","fr_FR","Bon de livraison - en bas de la zone d\'informations","",""); -INSERT INTO `hook_i18n` VALUES("2018","de_DE","Lieferung - Nach dem Informationsbereich","",""); -INSERT INTO `hook_i18n` VALUES("2018","en_US","Delivery - after the information area","",""); -INSERT INTO `hook_i18n` VALUES("2018","es_ES","Entrega - después del área de información","",""); -INSERT INTO `hook_i18n` VALUES("2018","fr_FR","Bon de livraison - après la zone d\'informations","",""); -INSERT INTO `hook_i18n` VALUES("2019","de_DE","Lieferung - Lieferadresse","",""); -INSERT INTO `hook_i18n` VALUES("2019","en_US","Delivery - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("2019","es_ES","Envío - dirección de entrega","",""); -INSERT INTO `hook_i18n` VALUES("2019","fr_FR","Bon de livraison - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("2020","de_DE","Lieferung - Nach dem Adresse-Bereich","",""); -INSERT INTO `hook_i18n` VALUES("2020","en_US","Delivery - after addresse area","",""); -INSERT INTO `hook_i18n` VALUES("2020","es_ES","Entrega - tras el área de dirección","",""); -INSERT INTO `hook_i18n` VALUES("2020","fr_FR","Bon de livraison - après la zone d\'adresses","",""); -INSERT INTO `hook_i18n` VALUES("2021","de_DE","Lieferung - Nach der Zusammenfassung der Bestellung","",""); -INSERT INTO `hook_i18n` VALUES("2021","en_US","Delivery - after the order summary","",""); -INSERT INTO `hook_i18n` VALUES("2021","es_ES","Envío - después del resumen de pedido","",""); -INSERT INTO `hook_i18n` VALUES("2021","fr_FR","Bon de livraison - après le résumé de la commande","",""); -INSERT INTO `hook_i18n` VALUES("2022","de_DE","Bestellbestätigung - nach den Bestellungszusammenfassungen","",""); -INSERT INTO `hook_i18n` VALUES("2022","en_US","Order confirmation - after the order summary","",""); -INSERT INTO `hook_i18n` VALUES("2022","es_ES","Confirmación de la orden - después del Resumen de la orden","",""); -INSERT INTO `hook_i18n` VALUES("2022","fr_FR","Confirmation de commande - après les récapitulatif de commande","",""); -INSERT INTO `hook_i18n` VALUES("2023","de_DE","Überall wo WYSIWYG editor ist nötig","",""); -INSERT INTO `hook_i18n` VALUES("2023","en_US","Where the WYSIWYG editor is required","",""); -INSERT INTO `hook_i18n` VALUES("2023","es_ES","Donde se requiere el editor WYSIWYG","",""); -INSERT INTO `hook_i18n` VALUES("2023","fr_FR","Partout ou l\'éditeur WYSIWYG est nécessaire","",""); -INSERT INTO `hook_i18n` VALUES("2024","de_DE","Bestellung - Warenkorb oben","",""); -INSERT INTO `hook_i18n` VALUES("2024","en_US","Order - cart top","",""); -INSERT INTO `hook_i18n` VALUES("2024","es_ES","Orden - parte superior del carro","",""); -INSERT INTO `hook_i18n` VALUES("2024","fr_FR","Commande - panier haut","",""); -INSERT INTO `hook_i18n` VALUES("2025","de_DE","Bestellung - Warenkorb unten","",""); -INSERT INTO `hook_i18n` VALUES("2025","en_US","Order - cart bottom","",""); -INSERT INTO `hook_i18n` VALUES("2025","es_ES","Orden - parte inferior del carro","",""); -INSERT INTO `hook_i18n` VALUES("2025","fr_FR","Commande - panier bas","",""); -INSERT INTO `hook_i18n` VALUES("2026","de_DE","Bestellung - Rechnung oben","",""); -INSERT INTO `hook_i18n` VALUES("2026","en_US","Order - bill top","",""); -INSERT INTO `hook_i18n` VALUES("2026","es_ES","Orden - parte superior de la cuenta","",""); -INSERT INTO `hook_i18n` VALUES("2026","fr_FR","Commande - facture haut","",""); -INSERT INTO `hook_i18n` VALUES("2027","de_DE","Bestellung - Rechnung unten","",""); -INSERT INTO `hook_i18n` VALUES("2027","en_US","Order - bill bottom","",""); -INSERT INTO `hook_i18n` VALUES("2027","es_ES","Orden - parte inferior de la cuenta","",""); -INSERT INTO `hook_i18n` VALUES("2027","fr_FR","Commande - facture bas","",""); -INSERT INTO `hook_i18n` VALUES("2028","de_DE","Bestellung - Vor der Produktliste","",""); -INSERT INTO `hook_i18n` VALUES("2028","en_US","Order - Before product list","",""); -INSERT INTO `hook_i18n` VALUES("2028","es_ES","Orden - antes de la lista de productos","",""); -INSERT INTO `hook_i18n` VALUES("2028","fr_FR","Commande - Avant la liste des produits","",""); -INSERT INTO `hook_i18n` VALUES("2029","de_DE","Bestellung - Vor der Öffnung der Produktzeile","",""); -INSERT INTO `hook_i18n` VALUES("2029","en_US","Order - Before starting product row","",""); -INSERT INTO `hook_i18n` VALUES("2029","es_ES","Orden - antes de comenzar la fila de producto","",""); -INSERT INTO `hook_i18n` VALUES("2029","fr_FR","Commande - Avant d\'ouvrir la ligne produit","",""); -INSERT INTO `hook_i18n` VALUES("2030","de_DE","Bestellung - Nach Sperrung der Produkt Zeile","",""); -INSERT INTO `hook_i18n` VALUES("2030","en_US","Order - After closing product row","",""); -INSERT INTO `hook_i18n` VALUES("2030","es_ES","Orden - después de cerrar la fila de producto","",""); -INSERT INTO `hook_i18n` VALUES("2030","fr_FR","Commande - Après avoir fermé la ligne produit","",""); -INSERT INTO `hook_i18n` VALUES("2031","de_DE","Bestellung - Nach der Produktliste","",""); -INSERT INTO `hook_i18n` VALUES("2031","en_US","Order - After product list","",""); -INSERT INTO `hook_i18n` VALUES("2031","es_ES","Orden - después de la lista de productos","",""); -INSERT INTO `hook_i18n` VALUES("2031","fr_FR","Commande - Après la liste des produits","",""); -INSERT INTO `hook_i18n` VALUES("2032","de_DE","Rechnung - Nach dem Zahlungsmodul","",""); -INSERT INTO `hook_i18n` VALUES("2032","en_US","Invoice - After payment module","",""); -INSERT INTO `hook_i18n` VALUES("2032","es_ES","Factura - Después de módulo de pago de factura","",""); -INSERT INTO `hook_i18n` VALUES("2032","fr_FR","Commande - après le module de paiement","",""); -INSERT INTO `hook_i18n` VALUES("2033","de_DE","Rechnung - Nach dem Liefermodul","",""); -INSERT INTO `hook_i18n` VALUES("2033","en_US","Invoice - After delivery module","",""); -INSERT INTO `hook_i18n` VALUES("2033","es_ES","Factura - Después de módulo de entrega de factura","",""); -INSERT INTO `hook_i18n` VALUES("2033","fr_FR","Commande - après le module de livraison","",""); -INSERT INTO `hook_i18n` VALUES("2034","de_DE","Lieferung - Nach dem Liefermodul","",""); -INSERT INTO `hook_i18n` VALUES("2034","en_US","Delivery - After delivery module","",""); -INSERT INTO `hook_i18n` VALUES("2034","es_ES","Entrega - después del módulo de entrega","",""); -INSERT INTO `hook_i18n` VALUES("2034","fr_FR","Commande - après le module de livraison","",""); -INSERT INTO `hook_i18n` VALUES("2035","de_DE","Rechnung - Weitere Produktinformationen","",""); -INSERT INTO `hook_i18n` VALUES("2035","en_US","Invoice - additional product information","",""); -INSERT INTO `hook_i18n` VALUES("2035","es_ES","Factura - información adicional del producto","",""); -INSERT INTO `hook_i18n` VALUES("2035","fr_FR","Facture - informations additionnelles pour un produit","",""); -INSERT INTO `hook_i18n` VALUES("2036","de_DE","Lieferung - Weitere Produktinformationen","",""); -INSERT INTO `hook_i18n` VALUES("2036","en_US","Delivery - additional product information","",""); -INSERT INTO `hook_i18n` VALUES("2036","es_ES","Entrega - información adicional del producto","",""); -INSERT INTO `hook_i18n` VALUES("2036","fr_FR","Bon de livraison - informations additionnelles pour un produit","",""); -INSERT INTO `hook_i18n` VALUES("3000","de_DE","E-Mail html - Layout - CSS","",""); -INSERT INTO `hook_i18n` VALUES("3000","en_US","Email html - layout - CSS","",""); -INSERT INTO `hook_i18n` VALUES("3000","es_ES","Email HTML - Interfaz - CSS","",""); -INSERT INTO `hook_i18n` VALUES("3000","fr_FR","Email html - layout - CSS","",""); -INSERT INTO `hook_i18n` VALUES("3001","de_DE","E-Mail html - Layout - Fußzeile","",""); -INSERT INTO `hook_i18n` VALUES("3001","en_US","Email html - layout - footer","",""); -INSERT INTO `hook_i18n` VALUES("3001","es_ES","Email HTML - Interfaz - pie","",""); -INSERT INTO `hook_i18n` VALUES("3001","fr_FR","Email html - layout - pied de page","",""); -INSERT INTO `hook_i18n` VALUES("3002","de_DE","E-Mail html - Bestellbestätigung - vor Adresse","",""); -INSERT INTO `hook_i18n` VALUES("3002","en_US","Email html - order confirmation - before address","",""); -INSERT INTO `hook_i18n` VALUES("3002","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3002","fr_FR","Email html - confirmation commande - avant adresses","",""); -INSERT INTO `hook_i18n` VALUES("3003","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3003","en_US","Email html - order confirmation - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("3003","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3003","fr_FR","Email html - confirmation commande - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("3004","de_DE","E-Mail html - Bestellbestätigung - nach Adresse","",""); -INSERT INTO `hook_i18n` VALUES("3004","en_US","Email html - order confirmation - after address","",""); -INSERT INTO `hook_i18n` VALUES("3004","es_ES","Email HTML - confirmación de orden - después de la dirección","",""); -INSERT INTO `hook_i18n` VALUES("3004","fr_FR","Email html - confirmation commande - après adresses","",""); -INSERT INTO `hook_i18n` VALUES("3005","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3005","en_US","Email html - order confirmation - order product","",""); -INSERT INTO `hook_i18n` VALUES("3005","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3005","fr_FR","Email html - confirmation commande - produit de la commande","",""); -INSERT INTO `hook_i18n` VALUES("3006","de_DE","E-Mail html - Bestellbestätigung - vor Produkten","",""); -INSERT INTO `hook_i18n` VALUES("3006","en_US","Email html - order confirmation - before products","",""); -INSERT INTO `hook_i18n` VALUES("3006","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3006","fr_FR","Email html - confirmation commande - avant produits","",""); -INSERT INTO `hook_i18n` VALUES("3007","de_DE","E-Mail html - Bestellbestätigung - nach Produkten","",""); -INSERT INTO `hook_i18n` VALUES("3007","en_US","Email html - order confirmation - after products","",""); -INSERT INTO `hook_i18n` VALUES("3007","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3007","fr_FR","Email html - confirmation commande - après produits","",""); -INSERT INTO `hook_i18n` VALUES("3008","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3008","en_US","Email html - order confirmation - footer","",""); -INSERT INTO `hook_i18n` VALUES("3008","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3008","fr_FR","Email html - confirmation commande - pied de page","",""); -INSERT INTO `hook_i18n` VALUES("3009","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3009","en_US","Email html - order notification - before address","",""); -INSERT INTO `hook_i18n` VALUES("3009","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3009","fr_FR","Email html - notification commande - avant adresses","",""); -INSERT INTO `hook_i18n` VALUES("3010","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3010","en_US","Email html - order notification - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("3010","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3010","fr_FR","Email html - notification commande - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("3011","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3011","en_US","Email html - order notification - after address","",""); -INSERT INTO `hook_i18n` VALUES("3011","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3011","fr_FR","Email html - notification commande - après adresses","",""); -INSERT INTO `hook_i18n` VALUES("3012","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3012","en_US","Email html - order notification - order product","",""); -INSERT INTO `hook_i18n` VALUES("3012","es_ES","Email HTML - notificación de orden - pedir producto","",""); -INSERT INTO `hook_i18n` VALUES("3012","fr_FR","Email html - notification commande - produit de la commande","",""); -INSERT INTO `hook_i18n` VALUES("3013","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3013","en_US","Email html - order notification - before products","",""); -INSERT INTO `hook_i18n` VALUES("3013","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3013","fr_FR","Email html - notification commande - avant produits","",""); -INSERT INTO `hook_i18n` VALUES("3014","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3014","en_US","Email html - order notification - after products","",""); -INSERT INTO `hook_i18n` VALUES("3014","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3014","fr_FR","Email html - notification commande - après produits","",""); -INSERT INTO `hook_i18n` VALUES("3015","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3015","en_US","Email txt - order confirmation - before address","",""); -INSERT INTO `hook_i18n` VALUES("3015","es_ES","Email texto - confirmación de pedido - antes de la dirección","",""); -INSERT INTO `hook_i18n` VALUES("3015","fr_FR","Email txt - confirmation commande - avant adresses","",""); -INSERT INTO `hook_i18n` VALUES("3016","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3016","en_US","Email txt - order confirmation - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("3016","es_ES","Email texto - confirmación de pedido - dirección de entrega","",""); -INSERT INTO `hook_i18n` VALUES("3016","fr_FR","Email txt - confirmation commande - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("3017","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3017","en_US","Email txt - order confirmation - after address","",""); -INSERT INTO `hook_i18n` VALUES("3017","es_ES","Email texto - confirmación de pedido - después de la dirección","",""); -INSERT INTO `hook_i18n` VALUES("3017","fr_FR","Email txt - confirmation commande - après adresses","",""); -INSERT INTO `hook_i18n` VALUES("3018","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3018","en_US","Email txt - order confirmation - order product","",""); -INSERT INTO `hook_i18n` VALUES("3018","es_ES","Email texto - confirmación de pedido - pedido de producto","",""); -INSERT INTO `hook_i18n` VALUES("3018","fr_FR","Email txt - confirmation commande - produit de la commande","",""); -INSERT INTO `hook_i18n` VALUES("3019","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3019","en_US","Email txt - order confirmation - before products","",""); -INSERT INTO `hook_i18n` VALUES("3019","es_ES","Email texto - confirmación de pedido - antes de los productos","",""); -INSERT INTO `hook_i18n` VALUES("3019","fr_FR","Email txt - confirmation commande - avant produits","",""); -INSERT INTO `hook_i18n` VALUES("3020","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3020","en_US","Email txt - order confirmation - after products","",""); -INSERT INTO `hook_i18n` VALUES("3020","es_ES","Email texto - confirmación de pedido - después de los productos","",""); -INSERT INTO `hook_i18n` VALUES("3020","fr_FR","Email txt - confirmation commande - après produits","",""); -INSERT INTO `hook_i18n` VALUES("3021","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3021","en_US","Email txt - order notification - before address","",""); -INSERT INTO `hook_i18n` VALUES("3021","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3021","fr_FR","Email txt - notification commande - avant adresses","",""); -INSERT INTO `hook_i18n` VALUES("3022","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3022","en_US","Email txt - order notification - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("3022","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3022","fr_FR","Email txt - notification commande - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("3023","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3023","en_US","Email txt - order notification - after address","",""); -INSERT INTO `hook_i18n` VALUES("3023","es_ES","Email texto - notificación de pedido - después de la dirección","",""); -INSERT INTO `hook_i18n` VALUES("3023","fr_FR","Email txt - notification commande - après adresses","",""); -INSERT INTO `hook_i18n` VALUES("3024","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3024","en_US","Email txt - order notification - order product","",""); -INSERT INTO `hook_i18n` VALUES("3024","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3024","fr_FR","Email txt - notification commande - produit de la commande","",""); -INSERT INTO `hook_i18n` VALUES("3025","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3025","en_US","Email txt - order notification - before products","",""); -INSERT INTO `hook_i18n` VALUES("3025","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3025","fr_FR","Email txt - notification commande - avant produits","",""); -INSERT INTO `hook_i18n` VALUES("3026","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3026","en_US","Email txt - order notification - after products","",""); -INSERT INTO `hook_i18n` VALUES("3026","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3026","fr_FR","Email txt - notification commande - après produits","",""); - - - -DROP TABLE `icirelais_freeshipping`; - -CREATE TABLE `icirelais_freeshipping` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `active` tinyint(1) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `icirelais_freeshipping` VALUES("1","0","2017-03-02 15:50:05","2017-03-02 15:50:05"); - - - -DROP TABLE `ignored_module_hook`; - -CREATE TABLE `ignored_module_hook` ( - `module_id` int(11) NOT NULL, - `hook_id` int(11) NOT NULL, - `method` varchar(255) DEFAULT NULL, - `classname` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`module_id`,`hook_id`), - KEY `fk_deleted_module_hook_module_id_idx` (`module_id`), - KEY `fk_deleted_module_hook_hook_id_idx` (`hook_id`), - CONSTRAINT `fk_deleted_module_hook_hook_id` FOREIGN KEY (`hook_id`) REFERENCES `hook` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_deleted_module_hook_module_id` FOREIGN KEY (`module_id`) REFERENCES `module` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `import`; - -CREATE TABLE `import` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(255) NOT NULL, - `position` int(11) NOT NULL, - `import_category_id` int(11) NOT NULL, - `handle_class` longtext NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `ref_UNIQUE` (`ref`), - KEY `fk_export_1_idx` (`import_category_id`), - CONSTRAINT `fk_import_import_category_id` FOREIGN KEY (`import_category_id`) REFERENCES `import_category` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; - -INSERT INTO `import` VALUES("1","thelia.import.stock","1","1","Thelia\\ImportExport\\Import\\Type\\ProductStockImport","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `import` VALUES("2","thelia.import.price","2","1","Thelia\\ImportExport\\Import\\Type\\ProductPricesImport","2017-02-28 18:21:40","2017-02-28 18:21:40"); - - - -DROP TABLE `import_category`; - -CREATE TABLE `import_category` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(255) NOT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `ref_UNIQUE` (`ref`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; - -INSERT INTO `import_category` VALUES("1","thelia.import.products","1","2017-02-28 18:21:39","2017-02-28 18:21:40"); -INSERT INTO `import_category` VALUES("2","thelia.import.modules","2","2017-02-28 18:21:40","2017-02-28 18:21:40"); - - - -DROP TABLE `import_category_i18n`; - -CREATE TABLE `import_category_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) NOT NULL, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `import_category_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `import_category` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `import_category_i18n` VALUES("1","en_US","Products"); -INSERT INTO `import_category_i18n` VALUES("1","fr_FR","Produits"); -INSERT INTO `import_category_i18n` VALUES("2","en_US","Modules"); -INSERT INTO `import_category_i18n` VALUES("2","fr_FR","Modules"); - - - -DROP TABLE `import_i18n`; - -CREATE TABLE `import_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) NOT NULL, - `description` longtext, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `import_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `import` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `import_i18n` VALUES("1","en_US","Import your stock","\n \n Your file must have the following columns to work:\n
    \n
  • id: The id of your product sale elements
  • \n
  • stock: The quantity of product you have
  • \n
\n It can have the column \"ean\" that defines the product\'s EAN code.\n \n "); -INSERT INTO `import_i18n` VALUES("1","fr_FR","Importer votre stock","\n \n Votre fichier doit avoir les colonnes suivantes :\n
    \n
  • id: L\'id de la déclinaison de produit
  • \n
  • stock: La quantité de la déclinaison
  • \n
\n \n "); -INSERT INTO `import_i18n` VALUES("2","en_US","Import your prices excluding taxes","\n \n Your file must have the following columns:\n
    \n
  • id: The id of your product sale elements
  • \n
  • price: The price excluding taxes of the product attribute combinations
  • \n
\n It may also optionally have those columns:\n
    \n
  • currency: the currency code (example: EUR, USD)
  • \n
  • promo_price: the promo price excluding taxes of the product attribute combinations
  • \n
  • promo: If this value is 0, set the product not in promo, if 1, it sets the product in promo
  • \n
\n \n "); -INSERT INTO `import_i18n` VALUES("2","fr_FR","Importer vos prix Hors-Taxes","\n \n Votre fichier doit avoir les colonnes suivantes:\n
    \n
  • id: L\'id de la déclinaison de produit
  • \n
  • price: Le prix Hors-Taxes de votre déclinaison de combinaison de produit
  • \n
\n Il peut aussi optionnellement avoir ces colonnes:\n
    \n
  • currency: Le code de la monnaie (exemple: EUR, USD)
  • \n
  • promo_price: Le prix promotionnel Hors-Taxes de votre déclinaison de combinaison de produit
  • \n
  • promo: Si cette valeur est a 0, désactive la promotion, si elle est a 1, l\'active
  • \n
\n \n "); - - - -DROP TABLE `lang`; - -CREATE TABLE `lang` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `title` varchar(100) DEFAULT NULL, - `code` varchar(10) DEFAULT NULL, - `locale` varchar(45) DEFAULT NULL, - `url` varchar(255) DEFAULT NULL, - `date_format` varchar(45) DEFAULT NULL, - `time_format` varchar(45) DEFAULT NULL, - `datetime_format` varchar(45) DEFAULT NULL, - `decimal_separator` varchar(45) DEFAULT NULL, - `thousands_separator` varchar(45) DEFAULT NULL, - `active` tinyint(1) DEFAULT '0', - `visible` tinyint(4) DEFAULT '0', - `decimals` varchar(45) DEFAULT NULL, - `by_default` tinyint(4) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_lang_by_default` (`by_default`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; - -INSERT INTO `lang` VALUES("1","Français","fr","fr_FR","","d/m/Y","H:i:s","d/m/Y H:i:s",","," ","1","1","2","1","","2017-02-28 18:20:10","2017-06-04 10:05:21"); -INSERT INTO `lang` VALUES("2","English","en","en_US","","m-d-Y","h:i:s","m-d-Y h:i:s","."," ","0","0","2","0","","2017-02-28 18:20:10","2017-06-04 10:05:36"); -INSERT INTO `lang` VALUES("3","Castellano","es","es_ES","","m-d-Y","h:i:s","m-d-Y h:i:s",",",".","0","0","2","0","","2017-02-28 18:20:10","2017-06-15 13:50:12"); -INSERT INTO `lang` VALUES("7","Deutsch","de","de_DE","","d-m-Y","H:i:s","d-m-Y H:i:s",",",".","0","0","2","0","","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `local_pickup_shipping`; - -CREATE TABLE `local_pickup_shipping` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `price` double NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `local_pickup_shipping` VALUES("1","0","2017-03-02 15:49:52","2017-03-02 15:49:52"); - - - -DROP TABLE `message`; - -CREATE TABLE `message` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(255) NOT NULL, - `secured` tinyint(4) DEFAULT NULL, - `text_layout_file_name` varchar(255) DEFAULT NULL, - `text_template_file_name` varchar(255) DEFAULT NULL, - `html_layout_file_name` varchar(255) DEFAULT NULL, - `html_template_file_name` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8; - -INSERT INTO `message` VALUES("1","order_confirmation","","","order_confirmation.txt","","order_confirmation.html","2017-02-28 18:20:10","2017-02-28 18:20:10","0","",""); -INSERT INTO `message` VALUES("2","lost_password","","","password.txt","","password.html","2017-02-28 18:20:10","2017-02-28 18:20:10","0","",""); -INSERT INTO `message` VALUES("3","order_notification","","","order_notification.txt","","order_notification.html","2017-02-28 18:20:10","2017-02-28 18:20:10","0","",""); -INSERT INTO `message` VALUES("4","customer_account_changed","0","","account_changed_by_admin.txt","","account_changed_by_admin.html","2017-02-28 18:20:10","2017-02-28 18:20:10","0","",""); -INSERT INTO `message` VALUES("5","customer_account_created","0","","account_created_by_admin.txt","","account_created_by_admin.html","2017-02-28 18:20:10","2017-02-28 18:20:10","0","",""); -INSERT INTO `message` VALUES("6","new_admin_password","","","admin_password.txt","","admin_password.html","2017-02-28 18:20:10","2017-02-28 18:20:10","0","",""); -INSERT INTO `message` VALUES("7","newsletter_subscription_confirmation","","","newsletter_subscription_confirmation.txt","","newsletter_subscription_confirmation.html","2017-02-28 18:20:10","2017-02-28 18:20:10","0","",""); -INSERT INTO `message` VALUES("8","mail_colissimo","0","","","","","","","0","",""); -INSERT INTO `message` VALUES("9","order_confirmation_cheque","0","","","","","","","0","",""); -INSERT INTO `message` VALUES("10","order_confirmation_localpickup","0","","","","","","","0","",""); -INSERT INTO `message` VALUES("11","send_comfirmation_freeshipping","","","send_comfirmation_freeshipping.txt","","send_comfirmation_freeshipping.html","2017-03-02 15:49:57","2017-03-02 15:49:57","1","2017-03-02 15:49:57",""); -INSERT INTO `message` VALUES("12","order_confirmation_icirelais","0","","","","","","","0","",""); -INSERT INTO `message` VALUES("13","paypal_payment_confirmation","","","paypal-payment-confirmation.txt","","paypal-payment-confirmation.html","2017-03-02 15:59:00","2017-03-02 15:59:00","1","2017-03-02 15:59:00",""); -INSERT INTO `message` VALUES("14","paypal_recursive_payment_confirmation","","","paypal-recursive-payment-confirmation.txt","","paypal-recursive-payment-confirmation.html","2017-03-02 15:59:00","2017-03-02 15:59:00","1","2017-03-02 15:59:00",""); -INSERT INTO `message` VALUES("15","atos_payment_confirmation","","","atos-payment-confirmation.txt","","atos-payment-confirmation.html","2017-03-02 16:01:40","2017-03-02 16:01:40","1","2017-03-02 16:01:40",""); -INSERT INTO `message` VALUES("16","recall_payment_not_paid","","","","","","2017-03-02 16:02:39","2017-03-02 16:02:39","1","2017-03-02 16:02:39",""); - - - -DROP TABLE `message_i18n`; - -CREATE TABLE `message_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` text, - `subject` text, - `text_message` longtext, - `html_message` longtext, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `message_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `message` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `message_i18n` VALUES("1","de_DE","Bestellbestätigung den Kunden gesendet","Ihre Bestellung {$order_ref} bei {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("1","en_US","Order confirmation sent to the customer","Your order {$order_ref} at {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("1","es_ES","Confirmación de la orden enviada al cliente","Su orden {$order_ref} en {tecla config = \"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("1","fr_FR","Confirmation de commande envoyée au client","Votre commande {$order_ref} chez {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("2","de_DE","Ihr neues Passwort","Ihr neues Passwort für {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("2","en_US","Your new password","Your new password for {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("2","es_ES","Su nueva contraseña","Su nueva contraseña para {tecla config = \"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("2","fr_FR","Votre nouveau mot de passe","Votre nouveau mot de passe {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("3","de_DE","Gesendete Nachricht wenn eine neue Bestellung erteilt wird.","Neue Bestellung {$order_ref} für {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("3","en_US","Message sent to the shop owner when a new order is placed","New order {$order_ref} placed on {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("3","es_ES","Mensaje enviado al propietario de la tienda cuando se envía una nueva orden","Nueva orden {$order_ref} ubicada en {tecla config = \"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("3","fr_FR","Message envoyé au gestionnaire de la boutique lors d\'une nouvelle commande.","Nouvelle commande {$order_ref} reçue sur {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("4","de_DE","Mail an den Kunden geschickt, wenn sein Passwort oder E-Mail von einem Administrator im Back-Office geändert werden","Ihre Konto-Zugriff für {config key=\"store_name\"} wurde geändert","",""); -INSERT INTO `message_i18n` VALUES("4","en_US","Mail sent to the customer when its password or email is changed in the back-office","Your account information on {config key=\"store_name\"} has been changed.","",""); -INSERT INTO `message_i18n` VALUES("4","es_ES","Correo enviado al cliente cuando se cambia su contraseña o correo electrónico en el back-office","La información de su cuenta en {tecla config = \"store_name\"} ha sido cambiada.","",""); -INSERT INTO `message_i18n` VALUES("4","fr_FR","Message envoyé au client lorsque son mot de passe ou son email est changé dans le back-office","L\'accès à votre compte {config key=\"store_name\"} a changé","",""); -INSERT INTO `message_i18n` VALUES("5","de_DE","Mail an den Kunden geschickt, wenn sein Konto von einem Administrator im Back-Office erstellt wird","Ein Konto {config key=\"store_name\"} wurde für Sie erstellt.","",""); -INSERT INTO `message_i18n` VALUES("5","en_US","Mail sent to the customer when its account is created by an administrator in the back-office","A {config key=\"store_name\"} account has been created for you","",""); -INSERT INTO `message_i18n` VALUES("5","es_ES","Correo enviado al cliente cuando se crea su cuenta por un administrador en el back-office","Una {config key=\"store_name\"} cuenta ha sido creada para ti","",""); -INSERT INTO `message_i18n` VALUES("5","fr_FR","Mail envoyé au client lorsque son compte est créé depuis le back-office par un administrateur","Un compte {config key=\"store_name\"} vient d\'être créé pour vous.","",""); -INSERT INTO `message_i18n` VALUES("6","de_DE","","","",""); -INSERT INTO `message_i18n` VALUES("6","en_US","Mail sent to an administrator who requested a new password","","",""); -INSERT INTO `message_i18n` VALUES("6","es_ES","Correo enviado a un administrador que ha solicitado una nueva contraseña","","",""); -INSERT INTO `message_i18n` VALUES("6","fr_FR","Courrier envoyé à un administrateur qui a demandé un nouveau mot de passe","","",""); -INSERT INTO `message_i18n` VALUES("7","de_DE","","","",""); -INSERT INTO `message_i18n` VALUES("7","en_US","Newsletter subscription confirmation mail","Your subscription to %store newsletter","",""); -INSERT INTO `message_i18n` VALUES("7","es_ES","Confirmación de suscripción por correo al boletín","Tu suscripción al boletín de %store","",""); -INSERT INTO `message_i18n` VALUES("7","fr_FR","Mail de confirmation d\'inscription à la newsletter","Vous avez souscrit à la newsletter du site %store","",""); -INSERT INTO `message_i18n` VALUES("8","en_US","Colissimo shipping message","Your order {$order_ref} has been shipped","{loop type=\"customer\" name=\"customer.order\" current=\"false\" id=\"$customer_id\" backend_context=\"1\"}\nDear {$FIRSTNAME} {$LASTNAME},\n{/loop}\nThank you for your order on our online store {config key=\"store_name\"}.\nYour order {$order_ref} dated {format_date date=$order_date} has been shipped on {format_date date=$update_date}.\nThe tracking number for this delivery is {$package}. Please check the La Poste website for tracking your parcel: www.coliposte.net.\nYou can use this tracking number to get your parcel in your local La Poste office. If don\'t get an advice in your mailbox after two working days, claim your parcel at your local La Poste office, using this tracking number.\nFeel free to contact us for any forther information\nBest Regards.","{loop type=\"customer\" name=\"customer.order\" current=\"false\" id=\"$customer_id\" backend_context=\"1\"}\n

Dear {$FIRSTNAME} {$LASTNAME},

\n{/loop}\n

Thank you for your order on our online store {config key=\"store_name\"}.

\n

Your order {$order_ref} dated {format_date date=$order_date} has been shipped on {format_date date=$update_date}.\nThe tracking number for this delivery is {$package}. Please check the La Poste website for tracking your parcel: www.coliposte.net.

\n

You can use this tracking number to get your parcel in your local La Poste office. If don\'t get an advice in your mailbox after two working days, claim your parcel at your local La Poste office, using this tracking number.

\n

Feel free to contact us for any forther information

\n

Best Regards.

"); -INSERT INTO `message_i18n` VALUES("8","fr_FR","Message d\'expédition de colissimo","Suivi colissimo commande : {$order_ref}","{loop type=\"customer\" name=\"customer.order\" current=\"false\" id=\"$customer_id\" backend_context=\"1\"}\n{$LASTNAME} {$FIRSTNAME},\n{/loop}\nNous vous remercions de votre commande sur notre site {config key=\"store_name\"}\nUn colis concernant votre commande {$order_ref} du {format_date date=$order_date} a quitté nos entrepôts pour être pris en charge par La Poste le {format_date date=$update_date}.\nSon numéro de suivi est le suivant : {$package}\nIl vous permet de suivre votre colis en ligne sur le site de La Poste : www.coliposte.net\nIl vous sera, par ailleurs, très utile si vous étiez absent au moment de la livraison de votre colis : en fournissant ce numéro de Colissimo Suivi, vous pourrez retirer votre colis dans le bureau de Poste le plus proche.\nATTENTION ! Si vous ne trouvez pas l\'avis de passage normalement déposé dans votre boîte aux lettres au bout de 48 Heures jours ouvrables, n\'hésitez pas à aller le réclamer à votre bureau de Poste, muni de votre numéro de Colissimo Suivi.\nNous restons à votre disposition pour toute information complémentaire.\nCordialement","{loop type=\"customer\" name=\"customer.order\" current=\"false\" id=\"$customer_id\" backend_context=\"1\"}\n{$LASTNAME} {$FIRSTNAME},\n{/loop}\nNous vous remercions de votre commande sur notre site {config key=\"store_name\"}\nUn colis concernant votre commande {$order_ref} du {format_date date=$order_date} a quitté nos entrepôts pour être pris en charge par La Poste le {format_date date=$update_date}.\nSon numéro de suivi est le suivant : {$package}\nIl vous permet de suivre votre colis en ligne sur le site de La Poste : www.coliposte.net\nIl vous sera, par ailleurs, très utile si vous étiez absent au moment de la livraison de votre colis : en fournissant ce numéro de Colissimo Suivi, vous pourrez retirer votre colis dans le bureau de Poste le plus proche.\nATTENTION ! Si vous ne trouvez pas l\'avis de passage normalement déposé dans votre boîte aux lettres au bout de 48 Heures jours ouvrables, n\'hésitez pas à aller le réclamer à votre bureau de Poste, muni de votre numéro de Colissimo Suivi.\nNous restons à votre disposition pour toute information complémentaire.\nCordialement"); -INSERT INTO `message_i18n` VALUES("9","en_US","Confirmation of payment by cheque","Payment of order {$order_ref}","Dear customer,\nThis is a confirmation of the payment by cheque of your order {$order_ref} on our shop.\nYour invoice is now available in your customer account at {config key=\"url_site\"}\nThank you again for your purchase.\nThe {config key=\"store_name\"} team.","\n\n\n \n courriel de confirmation de commande de {config key=\"url_site\"} \n \n\n\n
\n
\n

{config key=\"store_name\"}

\n

The payment of your order is confirmed

\n

Reference {$order_ref}

\n
\n

\n Your invoice is now available in your customer account on\n {config key=\"store_name\"}.\n

\n

Thank you for your order !

\n

The {config key=\"store_name\"} team.

\n
\n\n"); -INSERT INTO `message_i18n` VALUES("9","fr_FR","Confirmation de paiement par chèque","Paiement de la commande : {$order_ref}","Cher client,\nCe message confirme le paiement par chèque de votre commande numero {$order_ref} sur notre boutique.\nVotre facture est maintenant disponible dans votre compte client à l\'adresse {config key=\"url_site\"}\nMerci encore pour votre achat !\nL\'équipe {config key=\"store_name\"}","\n\n\n \n Confirmation du paiement de votre commande sur {config key=\"url_site\"} \n \n\n\n
\n
\n

{config key=\"store_name\"}

\n

Confirmation du paiement de votre commande

\n

N° {$order_ref}

\n
\n

\n Le suivi de votre commande est disponible dans la rubrique mon compte sur\n {config key=\"url_site\"}\n

\n

Merci pour votre achat !

\n

L\'équipe {config key=\"store_name\"}

\n
\n\n"); -INSERT INTO `message_i18n` VALUES("10","en_US","order confirmation_localpickup","Reception de la commande : {$order_ref}","Votre commande: {$order_ref} est disponible à l\'adresse suivante :\n{$store_name}\n{$store_address1}\n{$store_address2}\n{$store_address3}\n{$store_zipcode} {$store_city}\n{$store_country} ","

Votre commande: {$order_ref} est disponible à l\'adresse suivante :
{$store_name}
{$store_address1}{if !empty($store_address2)}
{$store_address2}{/if}{if !empty($store_address3)}
{$store_address3}{/if}
{$store_zipcode} {$store_city}
{$store_country}

"); -INSERT INTO `message_i18n` VALUES("10","fr_FR","order confirmation_localpickup","Reception de la commande : {$order_ref}","Votre commande: {$order_ref} est disponible à l\'adresse suivante :\n{$store_name}\n{$store_address1}\n{$store_address2}\n{$store_address3}\n{$store_zipcode} {$store_city}\n{$store_country} ","

Votre commande: {$order_ref} est disponible à l\'adresse suivante :
{$store_name}
{$store_address1}{if !empty($store_address2)}
{$store_address2}{/if}{if !empty($store_address3)}
{$store_address3}{/if}
{$store_zipcode} {$store_city}
{$store_country}

"); -INSERT INTO `message_i18n` VALUES("11","cs_CZ","Order send confirmation","Order send confirmation","",""); -INSERT INTO `message_i18n` VALUES("11","de_DE","Order send confirmation","Order send confirmation","",""); -INSERT INTO `message_i18n` VALUES("11","en_US","Order send confirmation","Order send confirmation","",""); -INSERT INTO `message_i18n` VALUES("11","es_ES","Order send confirmation","Order send confirmation","",""); -INSERT INTO `message_i18n` VALUES("11","fr_FR","Confirmation d\'envoi de commande","Confirmation d\'envoi de commande","",""); -INSERT INTO `message_i18n` VALUES("11","it_IT","Order send confirmation","Order send confirmation","",""); -INSERT INTO `message_i18n` VALUES("11","ru_RU","Order send confirmation","Order send confirmation","",""); -INSERT INTO `message_i18n` VALUES("12","en_US","order confirmation icirelais","Livraison de la commande : {$order_ref}","{loop name=\"order.invoice\" type=\"order\" id=$order_id customer=\"*\"}\n {loop name=\"currency.order\" type=\"currency\" id=$CURRENCY}\n {assign \"orderCurrency\" $CODE}\n {/loop}\n{loop type=\"order_address\" name=\"delivery_address\" id=$DELIVERY_ADDRESS}\n{loop type=\"title\" name=\"order-invoice-address-title\" id=$TITLE}{$LONG}{/loop}{$FIRSTNAME} {$LASTNAME}\\r\\n\n{$ADDRESS1} {$ADDRESS2} {$ADDRESS3}\\r\\n\n{$ZIPCODE} {$CITY}\\r\\n\n{loop type=\"country\" name=\"country_delivery\" id=$COUNTRY}{$TITLE}{/loop}\\r\\n\n{/loop}\nConfirmation de commande {$REF} du {format_date date=$INVOICE_DATE}\\r\\n\\r\\n\nLes articles commandés:\\r\\n\n{loop type=\"order_product\" name=\"order-products\" order=$ID}\n{if $WAS_IN_PROMO == 1}\n {assign \"realPrice\" $PROMO_PRICE}\n {assign \"realTax\" $PROMO_PRICE_TAX}\n {assign \"realTaxedPrice\" $TAXED_PROMO_PRICE}\n{else}\n {assign \"realPrice\" $PRICE}\n {assign \"realTax\" $PRICE_TAX}\n {assign \"realTaxedPrice\" $TAXED_PRICE}\n{/if}\n \\r\\n\n Article : {$TITLE}\n{ifloop rel=\"combinations\"}\n {loop type=\"order_product_attribute_combination\" name=\"combinations\" order_product=$ID}\n {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}\\r\\n\n{/loop}\n{/ifloop}\\r\\n\n Quantité : {$QUANTITY}\\r\\n\n Prix unitaire TTC : {$realTaxedPrice} {$orderCurrency}\\r\\n\n{/loop}\n\\r\\n-----------------------------------------\\r\\n\nMontant total TTC : {$TOTAL_TAXED_AMOUNT - $POSTAGE} {$orderCurrency} \\r\\n\nFrais de port TTC : {$POSTAGE} {$orderCurrency} \\r\\n\nSomme totale: {$TOTAL_TAXED_AMOUNT} {$orderCurrency} \\r\\n\n==================================\\r\\n\\r\\n\nVotre facture est disponible dans la rubrique mon compte sur {config key=\"url_site\"}\n{loop name=\"tracking\" type=\"dpdpickup.urltracking\" ref=$REF}\nVous pouvez suivre votre colis à l\'adresse suivante: {$URL}\n{/loop}\n{/loop}","{loop name=\"order.invoice\" type=\"order\" id=$order_id customer=\"*\"}\n {loop name=\"currency.order\" type=\"currency\" id=$CURRENCY}\n {assign \"orderCurrency\" $SYMBOL}\n {/loop}\n{loop type=\"customer\" name=\"customer.invoice\" id=$CUSTOMER current=\"0\"}\n {assign var=\"customer_ref\" value=$REF}\n{/loop}\n\n\n\n \n courriel de confirmation de commande de {config key=\"url_site\"} \n {literal}\n \n {/literal}\n\n\n
\n

{config key=\"store_name\"}

\n

Confirmation de commande

\n

N° {$REF} du {format_date date=$INVOICE_DATE output=\"date\"}

\n
\n \n \n \n \n \n \n \n \n {loop type=\"order_product\" name=\"order-products\" order=$ID}\n {if $WAS_IN_PROMO == 1}\n {assign \"realPrice\" $PROMO_PRICE}\n {assign \"realTax\" $PROMO_PRICE_TAX}\n {assign \"realTaxedPrice\" $TAXED_PROMO_PRICE}\n {else}\n {assign \"realPrice\" $PRICE}\n {assign \"realTax\" $PRICE_TAX}\n {assign \"realTaxedPrice\" $TAXED_PRICE}\n {/if}\n \n \n \n \n \n \n {/loop}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
RéférenceDésignationP.U. €Qté
{$REF}{$TITLE}\n {ifloop rel=\"combinations\"}\n {loop type=\"order_product_attribute_combination\" name=\"combinations\" order_product=$ID}\n {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}
\n {/loop}\n {/ifloop}\n
{$orderCurrency} {$realTaxedPrice}{$QUANTITY}
 
Montant total avant remise €{$orderCurrency} {$TOTAL_TAXED_AMOUNT - $POSTAGE}
Port €{$orderCurrency} {$POSTAGE}
Montant total de la commande €{$orderCurrency} {$TOTAL_TAXED_AMOUNT}
\n
\n

LIVRAISON : {loop name=\"delivery-module\" type=\"module\" id=$DELIVERY_MODULE}{$TITLE}{/loop}

\n {loop type=\"order_address\" name=\"delivery_address\" id=$DELIVERY_ADDRESS}\n

N° de client : {$customer_ref}

\n

Nom :\n {loop type=\"title\" name=\"order-invoice-address-title\" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}

\n

N° et rue :\n {$ADDRESS1}

\n

Complément : {$ADDRESS2}\n {$ADDRESS3}

\n

Code postal : {$ZIPCODE}

\n

Ville : {$CITY}

\n

Pays : {loop type=\"country\" name=\"country_delivery\" id=$COUNTRY}{$TITLE}{/loop}

\n
\n {/loop}\n
\n

FACTURATION : paiement par {loop name=\"payment-module\" type=\"module\" id=$PAYMENT_MODULE}{$TITLE}{/loop}

\n {loop type=\"order_address\" name=\"delivery_address\" id=$INVOICE_ADDRESS}\n

N° de client : {$customer_ref}

\n

Nom :\n {loop type=\"title\" name=\"order-invoice-address-title\" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}

\n

N° et rue :\n {$ADDRESS1}

\n

Complément : {$ADDRESS2}\n {$ADDRESS3}

\n

Code postal : {$ZIPCODE}

\n

Ville : {$CITY}

\n

Pays : {loop type=\"country\" name=\"country_delivery\" id=$COUNTRY}{$TITLE}{/loop}

\n
\n {/loop}\n

Le suivi de votre commande est disponible dans la rubrique mon compte sur {config key=\"url_site\"}

\n

Vous pouvez suivre votre colis {$DELIVERY_REF}\">ici

\n
\n\n\n{/loop}"); -INSERT INTO `message_i18n` VALUES("12","fr_FR","order confirmation icirelais","Livraison de la commande : {$order_ref}","{loop name=\"order.invoice\" type=\"order\" id=$order_id customer=\"*\"}\n {loop name=\"currency.order\" type=\"currency\" id=$CURRENCY}\n {assign \"orderCurrency\" $CODE}\n {/loop}\n{loop type=\"order_address\" name=\"delivery_address\" id=$DELIVERY_ADDRESS}\n{loop type=\"title\" name=\"order-invoice-address-title\" id=$TITLE}{$LONG}{/loop}{$FIRSTNAME} {$LASTNAME}\\r\\n\n{$ADDRESS1} {$ADDRESS2} {$ADDRESS3}\\r\\n\n{$ZIPCODE} {$CITY}\\r\\n\n{loop type=\"country\" name=\"country_delivery\" id=$COUNTRY}{$TITLE}{/loop}\\r\\n\n{/loop}\nConfirmation de commande {$REF} du {format_date date=$INVOICE_DATE}\\r\\n\\r\\n\nLes articles commandés:\\r\\n\n{loop type=\"order_product\" name=\"order-products\" order=$ID}\n{if $WAS_IN_PROMO == 1}\n {assign \"realPrice\" $PROMO_PRICE}\n {assign \"realTax\" $PROMO_PRICE_TAX}\n {assign \"realTaxedPrice\" $TAXED_PROMO_PRICE}\n{else}\n {assign \"realPrice\" $PRICE}\n {assign \"realTax\" $PRICE_TAX}\n {assign \"realTaxedPrice\" $TAXED_PRICE}\n{/if}\n \\r\\n\n Article : {$TITLE}\n{ifloop rel=\"combinations\"}\n {loop type=\"order_product_attribute_combination\" name=\"combinations\" order_product=$ID}\n {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}\\r\\n\n{/loop}\n{/ifloop}\\r\\n\n Quantité : {$QUANTITY}\\r\\n\n Prix unitaire TTC : {$realTaxedPrice} {$orderCurrency}\\r\\n\n{/loop}\n\\r\\n-----------------------------------------\\r\\n\nMontant total TTC : {$TOTAL_TAXED_AMOUNT - $POSTAGE} {$orderCurrency} \\r\\n\nFrais de port TTC : {$POSTAGE} {$orderCurrency} \\r\\n\nSomme totale: {$TOTAL_TAXED_AMOUNT} {$orderCurrency} \\r\\n\n==================================\\r\\n\\r\\n\nVotre facture est disponible dans la rubrique mon compte sur {config key=\"url_site\"}\n{loop name=\"tracking\" type=\"dpdpickup.urltracking\" ref=$REF}\nVous pouvez suivre votre colis à l\'adresse suivante: {$URL}\n{/loop}\n{/loop}","{loop name=\"order.invoice\" type=\"order\" id=$order_id customer=\"*\"}\n {loop name=\"currency.order\" type=\"currency\" id=$CURRENCY}\n {assign \"orderCurrency\" $SYMBOL}\n {/loop}\n{loop type=\"customer\" name=\"customer.invoice\" id=$CUSTOMER current=\"0\"}\n {assign var=\"customer_ref\" value=$REF}\n{/loop}\n\n\n\n \n courriel de confirmation de commande de {config key=\"url_site\"} \n {literal}\n \n {/literal}\n\n\n
\n

{config key=\"store_name\"}

\n

Confirmation de commande

\n

N° {$REF} du {format_date date=$INVOICE_DATE output=\"date\"}

\n
\n \n \n \n \n \n \n \n \n {loop type=\"order_product\" name=\"order-products\" order=$ID}\n {if $WAS_IN_PROMO == 1}\n {assign \"realPrice\" $PROMO_PRICE}\n {assign \"realTax\" $PROMO_PRICE_TAX}\n {assign \"realTaxedPrice\" $TAXED_PROMO_PRICE}\n {else}\n {assign \"realPrice\" $PRICE}\n {assign \"realTax\" $PRICE_TAX}\n {assign \"realTaxedPrice\" $TAXED_PRICE}\n {/if}\n \n \n \n \n \n \n {/loop}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
RéférenceDésignationP.U. €Qté
{$REF}{$TITLE}\n {ifloop rel=\"combinations\"}\n {loop type=\"order_product_attribute_combination\" name=\"combinations\" order_product=$ID}\n {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}
\n {/loop}\n {/ifloop}\n
{$orderCurrency} {$realTaxedPrice}{$QUANTITY}
 
Montant total avant remise €{$orderCurrency} {$TOTAL_TAXED_AMOUNT - $POSTAGE}
Port €{$orderCurrency} {$POSTAGE}
Montant total de la commande €{$orderCurrency} {$TOTAL_TAXED_AMOUNT}
\n
\n

LIVRAISON : {loop name=\"delivery-module\" type=\"module\" id=$DELIVERY_MODULE}{$TITLE}{/loop}

\n {loop type=\"order_address\" name=\"delivery_address\" id=$DELIVERY_ADDRESS}\n

N° de client : {$customer_ref}

\n

Nom :\n {loop type=\"title\" name=\"order-invoice-address-title\" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}

\n

N° et rue :\n {$ADDRESS1}

\n

Complément : {$ADDRESS2}\n {$ADDRESS3}

\n

Code postal : {$ZIPCODE}

\n

Ville : {$CITY}

\n

Pays : {loop type=\"country\" name=\"country_delivery\" id=$COUNTRY}{$TITLE}{/loop}

\n
\n {/loop}\n
\n

FACTURATION : paiement par {loop name=\"payment-module\" type=\"module\" id=$PAYMENT_MODULE}{$TITLE}{/loop}

\n {loop type=\"order_address\" name=\"delivery_address\" id=$INVOICE_ADDRESS}\n

N° de client : {$customer_ref}

\n

Nom :\n {loop type=\"title\" name=\"order-invoice-address-title\" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}

\n

N° et rue :\n {$ADDRESS1}

\n

Complément : {$ADDRESS2}\n {$ADDRESS3}

\n

Code postal : {$ZIPCODE}

\n

Ville : {$CITY}

\n

Pays : {loop type=\"country\" name=\"country_delivery\" id=$COUNTRY}{$TITLE}{/loop}

\n
\n {/loop}\n

Le suivi de votre commande est disponible dans la rubrique mon compte sur {config key=\"url_site\"}

\n

Vous pouvez suivre votre colis {$DELIVERY_REF}\">ici

\n
\n\n\n{/loop}"); -INSERT INTO `message_i18n` VALUES("13","en_US","Paypal payment confirmation","Payment of order {$order_ref}","",""); -INSERT INTO `message_i18n` VALUES("13","fr_FR","Confirmation de paiement par Paypal","Confirmation du paiement de votre commande {$order_ref}","",""); -INSERT INTO `message_i18n` VALUES("14","en_US","Paypal payment confirmation","Payment of order {$order_ref}","",""); -INSERT INTO `message_i18n` VALUES("14","fr_FR","Confirmation de paiement par Paypal","Confirmation du paiement de votre commande {$order_ref}","",""); -INSERT INTO `message_i18n` VALUES("15","en_US","Atos payment confirmation","Payment of order {$order_ref}","",""); -INSERT INTO `message_i18n` VALUES("15","fr_FR","Confirmation de paiement par Atos","Confirmation du paiement de votre commande {$order_ref}","",""); -INSERT INTO `message_i18n` VALUES("16","en_US","Recall payment","Payment recall for order {$order_ref}","Cher Client,\nNous avons bien reçu votre commande sur notre site {config key=\"store_name\"} et vous en remercions.\nCependant, cette commande est non réglée car votre règlement par carte n\'a pas abouti.\nNous ne pouvons donc la traiter.\nSi vous souhaitez maintenir cette commande, nous vous conseillons de cliquer sur le lien ci-dessous afin de valider votre règlement par carte bancaire.\nVotre commande: {$recall_url}?customer_id={$customer_id}&order_id={$order_id}\"\nDès réception de votre paiement, nous traitons votre commande pour expédition au plus vite.\nCordialement\nL\'équipe de {config key=\"store_name\"}","\n\n\n\n \n Payment recall for your order : {config key=\"url_site\"} \n\n\n
\n
\n

{config key=\"store_name\"}

\n\n

Payment recall for your order

\n\n

N° {$order_ref}

\n
\n

\n Dear Customer,
\n Nous avons bien reçu votre commande sur notre site {config key=\"store_name\"} et vous en remercions.
\n Cependant, cette commande est non réglée car votre règlement par carte n\'a pas abouti.
\n Nous ne pouvons donc la traiter.\n

\n

Si vous souhaitez maintenir cette commande, nous vous conseillons de cliquer sur le lien ci-dessous afin de valider votre règlement par carte bancaire.

\n Votre commande\n

Dès réception de votre paiement, nous traitons votre commande pour expédition au plus vite.

\n Cordialement
\n

L\'équipe {config key=\"store_name\"}

\n\n"); -INSERT INTO `message_i18n` VALUES("16","fr_FR","Rappel de paiement","Rappel de paiement pour votre commande {$order_ref}","Cher Client,\nNous avons bien reçu votre commande sur notre site {config key=\"store_name\"} et vous en remercions.\nCependant, cette commande est non réglée car votre règlement par carte n\'a pas abouti.\nNous ne pouvons donc la traiter.\nSi vous souhaitez maintenir cette commande, nous vous conseillons de cliquer sur le lien ci-dessous afin de valider votre règlement par carte bancaire.\nVotre commande: {$recall_url}?customer_id={$customer_id}&order_id={$order_id}\"\nDès réception de votre paiement, nous traitons votre commande pour expédition au plus vite.\nCordialement\nL\'équipe de {config key=\"store_name\"}","\n\n\n\n \n Rappel de paiement pour votre commande sur {config key=\"url_site\"} \n\n\n
\n
\n

{config key=\"store_name\"}

\n\n

Rappel de paiement de votre commande

\n\n

N° {$order_ref}

\n
\n

\n Cher Client,
\n Nous avons bien reçu votre commande sur notre site {config key=\"store_name\"} et vous en remercions.
\n Cependant, cette commande est non réglée car votre règlement par carte n\'a pas abouti.
\n Nous ne pouvons donc la traiter.\n

\n

Si vous souhaitez maintenir cette commande, nous vous conseillons de cliquer sur le lien ci-dessous afin de valider votre règlement par carte bancaire.

\n Votre commande\n

Dès réception de votre paiement, nous traitons votre commande pour expédition au plus vite.

\n Cordialement
\n

L\'équipe {config key=\"store_name\"}

\n
\n\n"); - - - -DROP TABLE `message_version`; - -CREATE TABLE `message_version` ( - `id` int(11) NOT NULL, - `name` varchar(255) NOT NULL, - `secured` tinyint(4) DEFAULT NULL, - `text_layout_file_name` varchar(255) DEFAULT NULL, - `text_template_file_name` varchar(255) DEFAULT NULL, - `html_layout_file_name` varchar(255) DEFAULT NULL, - `html_template_file_name` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`,`version`), - CONSTRAINT `message_version_FK_1` FOREIGN KEY (`id`) REFERENCES `message` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `message_version` VALUES("11","send_comfirmation_freeshipping","","","send_comfirmation_freeshipping.txt","","send_comfirmation_freeshipping.html","2017-03-02 15:49:57","2017-03-02 15:49:57","1","2017-03-02 15:49:57",""); -INSERT INTO `message_version` VALUES("13","paypal_payment_confirmation","","","paypal-payment-confirmation.txt","","paypal-payment-confirmation.html","2017-03-02 15:59:00","2017-03-02 15:59:00","1","2017-03-02 15:59:00",""); -INSERT INTO `message_version` VALUES("14","paypal_recursive_payment_confirmation","","","paypal-recursive-payment-confirmation.txt","","paypal-recursive-payment-confirmation.html","2017-03-02 15:59:00","2017-03-02 15:59:00","1","2017-03-02 15:59:00",""); -INSERT INTO `message_version` VALUES("15","atos_payment_confirmation","","","atos-payment-confirmation.txt","","atos-payment-confirmation.html","2017-03-02 16:01:40","2017-03-02 16:01:40","1","2017-03-02 16:01:40",""); -INSERT INTO `message_version` VALUES("16","recall_payment_not_paid","","","","","","2017-03-02 16:02:39","2017-03-02 16:02:39","1","2017-03-02 16:02:39",""); - - - -DROP TABLE `meta_data`; - -CREATE TABLE `meta_data` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `meta_key` varchar(100) NOT NULL, - `element_key` varchar(100) NOT NULL, - `element_id` int(11) NOT NULL, - `is_serialized` tinyint(1) NOT NULL, - `value` longtext NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `meta_data_key_element_idx` (`meta_key`,`element_key`,`element_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `module`; - -CREATE TABLE `module` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(55) NOT NULL, - `version` varchar(25) NOT NULL DEFAULT '', - `type` tinyint(4) NOT NULL, - `category` varchar(50) NOT NULL DEFAULT 'classic', - `activate` tinyint(4) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `full_namespace` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `code_UNIQUE` (`code`), - KEY `idx_module_activate` (`activate`) -) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8; - -INSERT INTO `module` VALUES("1","Carousel","2.3.3","1","classic","1","1","Carousel\\Carousel","2017-02-28 18:20:10","2017-02-28 18:26:58"); -INSERT INTO `module` VALUES("2","Colissimo","2.3.3","2","delivery","1","1","Colissimo\\Colissimo","2017-02-28 18:20:10","2017-02-28 18:26:25"); -INSERT INTO `module` VALUES("3","Cheque","2.3.3","3","payment","1","2","Cheque\\Cheque","2017-02-28 18:20:10","2017-03-02 16:01:54"); -INSERT INTO `module` VALUES("4","Front","2.3.3","1","classic","1","2","Front\\Front","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("5","Tinymce","2.3.3","1","classic","0","16","Tinymce\\Tinymce","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("6","HookNavigation","2.3.3","1","classic","1","11","HookNavigation\\HookNavigation","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("7","HookCurrency","2.3.3","1","classic","0","3","HookCurrency\\HookCurrency","2017-02-28 18:20:10","2017-02-28 18:27:04"); -INSERT INTO `module` VALUES("8","HookLang","2.3.3","1","classic","0","4","HookLang\\HookLang","2017-02-28 18:20:10","2017-02-28 18:27:06"); -INSERT INTO `module` VALUES("9","HookSearch","2.3.3","1","classic","1","5","HookSearch\\HookSearch","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("10","HookCustomer","2.3.3","1","classic","1","6","HookCustomer\\HookCustomer","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("11","HookCart","2.3.3","1","classic","1","7","HookCart\\HookCart","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("12","HookAnalytics","2.3.3","1","classic","0","8","HookAnalytics\\HookAnalytics","2017-02-28 18:20:10","2017-02-28 18:27:13"); -INSERT INTO `module` VALUES("13","HookContact","2.3.3","1","classic","1","9","HookContact\\HookContact","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("14","HookLinks","2.3.3","1","classic","1","10","HookLinks\\HookLinks","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("15","HookNewsletter","2.3.3","1","classic","0","12","HookNewsletter\\HookNewsletter","2017-02-28 18:20:10","2017-03-02 15:59:26"); -INSERT INTO `module` VALUES("16","HookSocial","2.3.3","1","classic","1","13","HookSocial\\HookSocial","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("17","HookProductsNew","2.3.3","1","classic","0","14","HookProductsNew\\HookProductsNew","2017-02-28 18:20:10","2017-03-26 14:20:26"); -INSERT INTO `module` VALUES("18","HookProductsOffer","2.3.3","1","classic","1","15","HookProductsOffer\\HookProductsOffer","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("19","TheliaSmarty","2.3.3","1","classic","1","16","TheliaSmarty\\TheliaSmarty","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("20","VirtualProductControl","2.3.3","1","classic","0","17","VirtualProductControl\\VirtualProductControl","2017-02-28 18:20:10","2017-03-02 15:59:35"); -INSERT INTO `module` VALUES("21","HookAdminHome","2.3.3","1","classic","1","18","HookAdminHome\\HookAdminHome","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("22","FreeOrder","2.3.3","3","payment","1","4","FreeOrder\\FreeOrder","2017-02-28 18:26:12","2017-06-15 16:31:39"); -INSERT INTO `module` VALUES("23","TheliaMigrateCountry","2.3.3","1","classic","0","19","TheliaMigrateCountry\\TheliaMigrateCountry","2017-02-28 18:26:12","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("24","VirtualProductDelivery","2.3.3","2","delivery","0","5","VirtualProductDelivery\\VirtualProductDelivery","2017-02-28 18:26:12","2017-03-02 15:50:23"); -INSERT INTO `module` VALUES("25","PayPal","3.0.2","3","classic","0","3","PayPal\\PayPal","2017-03-02 11:34:24","2017-06-15 13:39:20"); -INSERT INTO `module` VALUES("26","FreeShipping","1.1.3","2","delivery","1","2","FreeShipping\\FreeShipping","2017-03-02 15:21:41","2017-03-02 15:50:12"); -INSERT INTO `module` VALUES("27","LocalPickup","1.1","2","delivery","1","3","LocalPickup\\LocalPickup","2017-03-02 15:21:54","2017-03-02 15:50:18"); -INSERT INTO `module` VALUES("28","DpdPickup","1.4.8","2","delivery","1","4","DpdPickup\\DpdPickup","2017-03-02 15:22:05","2017-03-02 15:50:23"); -INSERT INTO `module` VALUES("29","Atos","1.1.2","3","payment","1","1","Atos\\Atos","2017-03-02 16:00:12","2017-03-02 16:01:54"); -INSERT INTO `module` VALUES("30","PaymentRecall","1.1.1","1","classic","1","20","PaymentRecall\\PaymentRecall","2017-03-02 16:02:15","2017-03-02 16:02:37"); -INSERT INTO `module` VALUES("31","ImportT1","0.8.0","1","classic","0","21","ImportT1\\ImportT1","2017-05-04 16:39:20","2017-05-04 16:39:20"); -INSERT INTO `module` VALUES("32","TheCoreDev","","1","classic","1","22","TheCoreDev\\TheCoreDev","2017-06-04 13:35:05","2017-06-15 15:31:14"); - - - -DROP TABLE `module_config`; - -CREATE TABLE `module_config` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `module_id` int(11) NOT NULL, - `name` varchar(255) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_module_id_name` (`module_id`,`name`), - CONSTRAINT `fk_module_config_module_id` FOREIGN KEY (`module_id`) REFERENCES `module` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; - -INSERT INTO `module_config` VALUES("1","2","prices","2017-02-28 18:26:12","2017-02-28 18:26:12"); -INSERT INTO `module_config` VALUES("2","2","enabled","2017-02-28 18:26:25","2017-02-28 18:26:25"); -INSERT INTO `module_config` VALUES("3","1","is_initialized","2017-02-28 18:26:58","2017-02-28 18:26:58"); -INSERT INTO `module_config` VALUES("4","25","minimum_amount","2017-03-02 15:59:00","2017-03-02 15:59:00"); -INSERT INTO `module_config` VALUES("5","25","maximum_amount","2017-03-02 15:59:00","2017-03-02 15:59:00"); -INSERT INTO `module_config` VALUES("6","25","send_payment_confirmation_message","2017-03-02 15:59:00","2017-03-02 15:59:00"); -INSERT INTO `module_config` VALUES("7","29","atos_transactionId","2017-03-02 16:01:40","2017-03-02 16:01:40"); -INSERT INTO `module_config` VALUES("8","29","minimum_amount","2017-03-02 16:01:40","2017-03-02 16:01:40"); -INSERT INTO `module_config` VALUES("9","29","maximum_amount","2017-03-02 16:01:40","2017-03-02 16:01:40"); -INSERT INTO `module_config` VALUES("10","29","send_payment_confirmation_message","2017-03-02 16:01:40","2017-03-02 16:01:40"); -INSERT INTO `module_config` VALUES("11","30","time_before_mail","2017-03-02 16:02:39","2017-03-02 16:02:39"); -INSERT INTO `module_config` VALUES("12","30","is_initialized","2017-03-02 16:02:39","2017-03-02 16:02:39"); - - - -DROP TABLE `module_config_i18n`; - -CREATE TABLE `module_config_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `value` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `module_config_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `module_config` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `module_config_i18n` VALUES("1","en_US","{\"1\": {\n \"_info\": \"area 1 : France\",\n \"slices\": {\n \"0.25\": 5.23,\n \"0.5\": 6.13,\n \"0.75\": 6.89,\n \"1\": 7.51,\n \"2\": 8.50,\n \"5\": 10.93,\n \"10\": 15.68,\n \"30\": 23.28\n }\n}, \"2\": {\n \"_info\": \"area 2 : A Zone - Union Europ\\u00e9enne et Suisse\",\n \"slices\": {\n \"0.5\": 11.54,\n \"1\": 14.11,\n \"2\": 15.68,\n \"5\": 20.14,\n \"10\": 33.25,\n \"20\": 55.10,\n \"30\": 55.10\n }\n}, \"3\": {\n \"_info\": \"area 3 : B Zone - Pays de l\\u2019Europe de l\\u2019Est (hors Union Europ\\u00e9enne et Russie), Norv\\u00e8ge, Maghreb\",\n \"slices\": {\n \"0.5\": 15.39,\n \"1\": 18.38,\n \"2\": 20.00,\n \"5\": 25.65,\n \"10\": 42.75,\n \"20\": 66.50\n }\n}, \"4\": {\n \"_info\": \"area 4 : C Zone - Autres destinations\",\n \"slices\": {\n \"0.5\": 22.52,\n \"1\": 24.99,\n \"2\": 34.30,\n \"5\": 50.35,\n \"10\": 95.00,\n \"20\": 152.00\n }\n}, \"5\": {\n \"_info\": \"area 5 : France OM1\",\n \"slices\": {\n \"0.5\": 8.69,\n \"1\": 13.16,\n \"2\": 17.96,\n \"5\": 26.60,\n \"10\": 42.75,\n \"30\": 95.95\n }\n}, \"6\": {\n \"_info\": \"area 6 : France OM2\",\n \"slices\": {\n \"0.5\": 10.40,\n \"1\": 15.72,\n \"2\": 27.74,\n \"5\": 46.08,\n \"10\": 90.25,\n \"30\": 237.50\n }\n}}\n"); -INSERT INTO `module_config_i18n` VALUES("2","en_US","1"); -INSERT INTO `module_config_i18n` VALUES("3","en_US","1"); -INSERT INTO `module_config_i18n` VALUES("4","en_US","0"); -INSERT INTO `module_config_i18n` VALUES("5","en_US","0"); -INSERT INTO `module_config_i18n` VALUES("6","en_US","1"); -INSERT INTO `module_config_i18n` VALUES("7","en_US","1"); -INSERT INTO `module_config_i18n` VALUES("8","en_US","0"); -INSERT INTO `module_config_i18n` VALUES("9","en_US","0"); -INSERT INTO `module_config_i18n` VALUES("10","en_US","1"); -INSERT INTO `module_config_i18n` VALUES("11","en_US","20"); -INSERT INTO `module_config_i18n` VALUES("12","en_US","1"); - - - -DROP TABLE `module_hook`; - -CREATE TABLE `module_hook` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `module_id` int(11) NOT NULL, - `hook_id` int(11) NOT NULL, - `classname` varchar(255) DEFAULT NULL, - `method` varchar(255) DEFAULT NULL, - `active` tinyint(1) NOT NULL, - `hook_active` tinyint(1) NOT NULL, - `module_active` tinyint(1) NOT NULL, - `position` int(11) NOT NULL, - `templates` text, - PRIMARY KEY (`id`), - KEY `idx_module_hook_active` (`active`), - KEY `fk_module_hook_module_id_idx` (`module_id`), - KEY `fk_module_hook_hook_id_idx` (`hook_id`), - CONSTRAINT `fk_module_hook_hook_id` FOREIGN KEY (`hook_id`) REFERENCES `hook` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_module_hook_module_id` FOREIGN KEY (`module_id`) REFERENCES `module` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=58 DEFAULT CHARSET=utf8; - -INSERT INTO `module_hook` VALUES("1","7","94","hookcurrency.hook.front","insertTemplate","1","1","0","1","render:main-navbar-secondary.html"); -INSERT INTO `module_hook` VALUES("2","8","94","hooklang.hook.front","insertTemplate","1","1","0","2","render:main-navbar-secondary.html"); -INSERT INTO `module_hook` VALUES("3","9","91","hooksearch.hook.front","insertTemplate","1","1","1","1","css:assets/css/styles.css"); -INSERT INTO `module_hook` VALUES("4","9","94","hooksearch.hook.front","insertTemplate","1","1","1","3","render:main-navbar-secondary.html"); -INSERT INTO `module_hook` VALUES("5","9","95","hooksearch.hook.front","insertTemplate","0","1","1","1","render:main-navbar-primary.html"); -INSERT INTO `module_hook` VALUES("6","10","91","hookcustomer.hook.front","insertTemplate","1","1","1","2","css:assets/css/styles.css"); -INSERT INTO `module_hook` VALUES("7","10","94","hookcustomer.hook.front","insertTemplate","1","1","1","5","render:main-navbar-secondary.html"); -INSERT INTO `module_hook` VALUES("8","11","91","hookcart.hook.front","insertTemplate","1","1","1","3","css:assets/css/styles.css"); -INSERT INTO `module_hook` VALUES("9","11","94","hookcart.hook.front","insertTemplate","1","1","1","4","main-navbar-secondary.html"); -INSERT INTO `module_hook` VALUES("10","11","223","hookcart.hook.front","insertTemplate","1","1","1","1","render:mini-cart.html"); -INSERT INTO `module_hook` VALUES("11","12","91","hookanalytics.hook.front","onMainHeadBottom","1","1","0","4",""); -INSERT INTO `module_hook` VALUES("12","12","1235","hookanalytics.hook.back","insertTemplate","1","1","0","1","render:module_configuration.html"); -INSERT INTO `module_hook` VALUES("13","12","1236","hookanalytics.hook.back","insertTemplate","1","1","0","1","js:assets/js/module-configuration.js"); -INSERT INTO `module_hook` VALUES("14","13","100","hookcontact.hook.front","onMainFooterBody","1","1","1","1",""); -INSERT INTO `module_hook` VALUES("15","14","100","hooklinks.hook.front","onMainFooterBody","0","1","1","2",""); -INSERT INTO `module_hook` VALUES("16","6","95","hooknavigation.hook.front","insertTemplate","1","1","1","2","render:main-navbar-primary.html"); -INSERT INTO `module_hook` VALUES("17","6","101","hooknavigation.hook.front","onMainFooterBottom","1","1","1","1",""); -INSERT INTO `module_hook` VALUES("18","6","100","hooknavigation.hook.front","onMainFooterBody","1","1","1","3",""); -INSERT INTO `module_hook` VALUES("19","15","100","hooknewsletter.hook.front","onMainFooterBody","1","1","0","4",""); -INSERT INTO `module_hook` VALUES("20","16","100","hooksocial.hook.front","onMainFooterBody","1","1","1","5",""); -INSERT INTO `module_hook` VALUES("21","16","1235","hooksocial.hook.back","insertTemplate","1","1","1","2","render:module_configuration.html"); -INSERT INTO `module_hook` VALUES("22","16","1236","hooksocial.hook.back","insertTemplate","1","1","1","2","js:assets/js/module-configuration.js"); -INSERT INTO `module_hook` VALUES("23","17","149","hookproductsnew.hook.front","insertTemplate","1","1","0","1","render:home-body.html"); -INSERT INTO `module_hook` VALUES("24","18","149","hookproductsoffer.hook.front","insertTemplate","1","1","1","2","render:home-body.html"); -INSERT INTO `module_hook` VALUES("25","20","1304","virtualproductcontrol.hook","onMainBeforeContent","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("26","21","1259","hookadminhome.hook.css","insertTemplate","1","1","1","1","css:assets/css/home.css"); -INSERT INTO `module_hook` VALUES("27","21","1105","hookadminhome.hook.block_information","insertTemplate","1","1","1","1","render:block-information.html"); -INSERT INTO `module_hook` VALUES("28","21","1105","hookadminhome.hook.block_statistics","blockStatistics","1","1","1","2",""); -INSERT INTO `module_hook` VALUES("29","21","1107","hookadminhome.hook.block_statistics","blockStatisticsJs","1","1","1","1",""); -INSERT INTO `module_hook` VALUES("30","21","1280","hookadminhome.hook.block_sales_statistics","blockSalesStatistics","1","1","1","1",""); -INSERT INTO `module_hook` VALUES("31","21","1280","hookadminhome.hook.block_news","blockNews","1","1","1","2",""); -INSERT INTO `module_hook` VALUES("32","21","1107","hookadminhome.hook.block_news","insertTemplate","1","1","1","2","render:block-news-js.html"); -INSERT INTO `module_hook` VALUES("33","21","1280","hookadminhome.hook.block_thelia_informations","blockTheliaInformation","1","1","1","3",""); -INSERT INTO `module_hook` VALUES("34","2","1235","colissimo.hook","onModuleConfiguration","1","1","1","3",""); -INSERT INTO `module_hook` VALUES("35","2","1236","colissimo.hook","insertTemplate","1","1","1","3","render:assets/js/module-configuration-js.html"); -INSERT INTO `module_hook` VALUES("36","1","149","carousel.hook","insertTemplate","1","1","1","3","render:carousel.html"); -INSERT INTO `module_hook` VALUES("37","1","1235","carousel.hook","insertTemplate","1","1","1","4","render:module_configuration.html"); -INSERT INTO `module_hook` VALUES("38","1","1236","carousel.hook","insertTemplate","1","1","1","4","js:assets/js/module-configuration.js"); -INSERT INTO `module_hook` VALUES("39","1","1276","carousel.hook.back","onMainTopMenuTools","1","1","1","1",""); -INSERT INTO `module_hook` VALUES("40","3","1235","cheque.hook","insertTemplate","1","1","1","5","render:module_configuration.html"); -INSERT INTO `module_hook` VALUES("41","3","2022","cheque.hook","onAdditionalPaymentInfo","1","1","1","1",""); -INSERT INTO `module_hook` VALUES("42","27","1235","local.pickup.hook","onModuleConfiguration","1","1","1","6",""); -INSERT INTO `module_hook` VALUES("43","28","185","dpdpickup.delivery.show","renderDpdPickupChoice","1","1","1","1",""); -INSERT INTO `module_hook` VALUES("44","28","2","dpdpickup.delivery.show","renderDeliveryAddress","1","1","1","1",""); -INSERT INTO `module_hook` VALUES("45","25","1235","paypal.back.hook","onModuleConfigure","1","1","0","7",""); -INSERT INTO `module_hook` VALUES("46","25","1387","paypal.back.hook","onOrderEditPaymentModuleBottom","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("47","25","1177","paypal.back.hook","onOrderEditJs","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("48","25","23","paypal.front.hook","onLoginMainBottom","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("49","25","3","paypal.front.hook","onOrderInvoicePaymentExtra","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("50","25","4","paypal.front.hook","onOrderInvoiceBottom","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("51","25","5","paypal.front.hook","onOrderInvoiceJavascriptInitialization","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("52","25","2022","paypal.front.hook","onOrderPlacedAdditionalPaymentInfo","1","1","0","2",""); -INSERT INTO `module_hook` VALUES("53","25","36","paypal.front.hook","onCartBottom","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("54","25","111","paypal.front.hook","onOrderDeliveryFormBottom","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("55","25","115","paypal.front.hook","onOrderAfterJavascriptInclude","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("56","25","2032","paypal.pdf.hook","onAfterPaymentModule","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("57","29","1235","atos.configuration.hook","onModuleConfigure","1","1","1","8",""); - - - -DROP TABLE `module_i18n`; - -CREATE TABLE `module_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `module_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `module` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `module_i18n` VALUES("1","de_DE","Ein Bilder-Karussel auf Ihre Startseite","","",""); -INSERT INTO `module_i18n` VALUES("1","en_US","An image carousel on your home page","","",""); -INSERT INTO `module_i18n` VALUES("1","es_ES","Un carrusel de imágenes en la página de inicio","","",""); -INSERT INTO `module_i18n` VALUES("1","fr_FR","Un carrousel d\'images sur votre page d\'accueil","","",""); -INSERT INTO `module_i18n` VALUES("2","de_DE","72Std Lieferung ","","",""); -INSERT INTO `module_i18n` VALUES("2","en_US","72h delivery","","",""); -INSERT INTO `module_i18n` VALUES("2","es_ES","entrega 72h","","",""); -INSERT INTO `module_i18n` VALUES("2","fr_FR","Livraison par colissimo en 72h","","",""); -INSERT INTO `module_i18n` VALUES("3","de_DE","Per Cheque bezahlen","","",""); -INSERT INTO `module_i18n` VALUES("3","en_US","Pay by cheque","","",""); -INSERT INTO `module_i18n` VALUES("3","es_ES","Pagar con Cheque","","",""); -INSERT INTO `module_i18n` VALUES("3","fr_FR","Payer par chèque","","",""); -INSERT INTO `module_i18n` VALUES("4","de_DE","Front office Modul ","","",""); -INSERT INTO `module_i18n` VALUES("4","en_US","Front office integration","","",""); -INSERT INTO `module_i18n` VALUES("4","es_ES","Front office integración","","",""); -INSERT INTO `module_i18n` VALUES("4","fr_FR","Module Front office","","",""); -INSERT INTO `module_i18n` VALUES("5","de_DE","TinyMCE WYSIWYG Editor","","",""); -INSERT INTO `module_i18n` VALUES("5","en_US","TinyMCE WYSIWYG editor","","",""); -INSERT INTO `module_i18n` VALUES("5","es_ES","Editor TinyMCE WYSIWYG","","",""); -INSERT INTO `module_i18n` VALUES("5","fr_FR","Editeur visuel TinyMCE","","",""); -INSERT INTO `module_i18n` VALUES("6","de_DE","Menü Block","","",""); -INSERT INTO `module_i18n` VALUES("6","en_US","Navigation block","","",""); -INSERT INTO `module_i18n` VALUES("6","es_ES","Bloque de navegación","","",""); -INSERT INTO `module_i18n` VALUES("6","fr_FR","Bloc menu","","",""); -INSERT INTO `module_i18n` VALUES("7","de_DE","Währungensblock","","",""); -INSERT INTO `module_i18n` VALUES("7","en_US","Currency block","","",""); -INSERT INTO `module_i18n` VALUES("7","es_ES","Bloque de monedas","","",""); -INSERT INTO `module_i18n` VALUES("7","fr_FR","Bloc des devises","","",""); -INSERT INTO `module_i18n` VALUES("8","de_DE","Sprachen Block","","",""); -INSERT INTO `module_i18n` VALUES("8","en_US","Languages block","","",""); -INSERT INTO `module_i18n` VALUES("8","es_ES","Bloque de idiomas","","",""); -INSERT INTO `module_i18n` VALUES("8","fr_FR","Bloc des langues","","",""); -INSERT INTO `module_i18n` VALUES("9","de_DE","Suche-Block","","",""); -INSERT INTO `module_i18n` VALUES("9","en_US","Search block","","",""); -INSERT INTO `module_i18n` VALUES("9","es_ES","Bloque de búsqueda","","",""); -INSERT INTO `module_i18n` VALUES("9","fr_FR","Bloc de recherche","","",""); -INSERT INTO `module_i18n` VALUES("10","de_DE","Kundenkonto-Block","","",""); -INSERT INTO `module_i18n` VALUES("10","en_US","Customer account block","","",""); -INSERT INTO `module_i18n` VALUES("10","es_ES","Bloque de cuenta de cliente","","",""); -INSERT INTO `module_i18n` VALUES("10","fr_FR","Bloc compte client","","",""); -INSERT INTO `module_i18n` VALUES("11","de_DE","Warenkorb Block","","",""); -INSERT INTO `module_i18n` VALUES("11","en_US","Cart block","","",""); -INSERT INTO `module_i18n` VALUES("11","es_ES","Bloque de carrito","","",""); -INSERT INTO `module_i18n` VALUES("11","fr_FR","Bloc panier","","",""); -INSERT INTO `module_i18n` VALUES("12","de_DE","Google Analytics Block","","",""); -INSERT INTO `module_i18n` VALUES("12","en_US","Google Analytics block","","",""); -INSERT INTO `module_i18n` VALUES("12","es_ES","Bloque Google Analytics","","",""); -INSERT INTO `module_i18n` VALUES("12","fr_FR","Bloc Google Analytics","","",""); -INSERT INTO `module_i18n` VALUES("13","de_DE","Kontakt-Block","","",""); -INSERT INTO `module_i18n` VALUES("13","en_US","Contact block","","",""); -INSERT INTO `module_i18n` VALUES("13","es_ES","Bloque de contacto","","",""); -INSERT INTO `module_i18n` VALUES("13","fr_FR","Bloc contact","","",""); -INSERT INTO `module_i18n` VALUES("14","de_DE","Links Block","","",""); -INSERT INTO `module_i18n` VALUES("14","en_US","Links block","","",""); -INSERT INTO `module_i18n` VALUES("14","es_ES","Bloque de enlaces","","",""); -INSERT INTO `module_i18n` VALUES("14","fr_FR","Bloc liens","","",""); -INSERT INTO `module_i18n` VALUES("15","de_DE","Newsletter Block","","",""); -INSERT INTO `module_i18n` VALUES("15","en_US","Newsletter block","","",""); -INSERT INTO `module_i18n` VALUES("15","es_ES","Bloque del boletín de noticias","","",""); -INSERT INTO `module_i18n` VALUES("15","fr_FR","Bloc newsletter","","",""); -INSERT INTO `module_i18n` VALUES("16","de_DE","Social Networks Block","","",""); -INSERT INTO `module_i18n` VALUES("16","en_US","Social Networks block","","",""); -INSERT INTO `module_i18n` VALUES("16","es_ES","Bloque de Redes Sociales","","",""); -INSERT INTO `module_i18n` VALUES("16","fr_FR","Bloc réseaux sociaux","","",""); -INSERT INTO `module_i18n` VALUES("17","de_DE","Neue Produkte Block","","",""); -INSERT INTO `module_i18n` VALUES("17","en_US","New Products block","","",""); -INSERT INTO `module_i18n` VALUES("17","es_ES","Bloque de nuevos productos","","",""); -INSERT INTO `module_i18n` VALUES("17","fr_FR","Bloc nouveaux produits","","",""); -INSERT INTO `module_i18n` VALUES("18","de_DE","Sonderangebot-Block","","",""); -INSERT INTO `module_i18n` VALUES("18","en_US","Products offer block","","",""); -INSERT INTO `module_i18n` VALUES("18","es_ES","Bloque de oferta de productos","","",""); -INSERT INTO `module_i18n` VALUES("18","fr_FR","Bloc promotions","","",""); -INSERT INTO `module_i18n` VALUES("19","de_DE","Smarty Template Engine Integration","","",""); -INSERT INTO `module_i18n` VALUES("19","en_US","Smarty template engine integration","","",""); -INSERT INTO `module_i18n` VALUES("19","es_ES","Integración del motor de plantillas Smarty","","",""); -INSERT INTO `module_i18n` VALUES("19","fr_FR","Intégration du moteur de template Smarty","","",""); -INSERT INTO `module_i18n` VALUES("20","de_DE","Steuerung für virtuelle Produkte","","",""); -INSERT INTO `module_i18n` VALUES("20","en_US","Virtual Product Controller","","",""); -INSERT INTO `module_i18n` VALUES("20","es_ES","Controlador de producto virtual","","",""); -INSERT INTO `module_i18n` VALUES("20","fr_FR","Contôle de produit virtuel","","",""); -INSERT INTO `module_i18n` VALUES("22","en_US","There\'s nothing to pay for this order","","This is a pseudo-payment module for free orders.",""); -INSERT INTO `module_i18n` VALUES("22","fr_FR","Vous n\'avez rien à payer pour cette commande","","Un pseudo-module de paiement pour les commandes de montant nul",""); -INSERT INTO `module_i18n` VALUES("23","en_US","Countries/states migration tool","","",""); -INSERT INTO `module_i18n` VALUES("23","fr_FR","Utilitaire de migration des pays/états","","",""); -INSERT INTO `module_i18n` VALUES("24","en_US","Virtual Products Delivery","","",""); -INSERT INTO `module_i18n` VALUES("24","fr_FR","Livraison Produits Virtuels","","",""); -INSERT INTO `module_i18n` VALUES("25","en_US","PayPal","","",""); -INSERT INTO `module_i18n` VALUES("25","fr_FR","PayPal","","",""); -INSERT INTO `module_i18n` VALUES("26","en_US","Free Shipping","","",""); -INSERT INTO `module_i18n` VALUES("26","fr_FR","Franco de port","","",""); -INSERT INTO `module_i18n` VALUES("27","en_US","Local Pickup","","",""); -INSERT INTO `module_i18n` VALUES("27","fr_FR","Retrait sur place","","",""); -INSERT INTO `module_i18n` VALUES("28","en_US","DpdPickup\\DpdPickup","","",""); -INSERT INTO `module_i18n` VALUES("28","fr_FR","Livraison en relais Pickup","[[\n

Choisissez la livraison sans contrainte avec les relais Pickup !

\n

Faites-vous livrer dans l’un de nos 5 000 commerces de proximité disponibles sur toute la France. Vous avez la liberté de choisir le commerce qui vous convient le mieux : près de chez vous ou encore près de votre travail, et d’aller y retirer votre colis 7/7 jours (*).

\n

Dès que votre colis est livré dans le relais Pickup préalablement choisi, vous êtes automatiquement prévenus par email ou SMS de sa disponibilité.
\n Si vous ne pouvez pas le récupérer le jour même, pas de souci, votre colis reste disponible jusqu’à 9 jours !

\n

Les relais Pickup par DPD, c’est l’assurance d’une livraison de qualité avec :\n

    \n
  • Une livraison toute France en 24/48 H
  • \n
  • Un choix parmi plus de 5 000 commerces répartis sur toute la France et rigoureusement sélectionnés (situation géographique, capacité de stockage, horaires d’ouverture…)
  • \n
  • Un suivi détaillé (tracing) de votre colis disponible 24/24H sur www.icirelais.com
  • \n
  • Une alerte (email / SMS) dès l’arrivée de votre colis dans le relais Pickup
  • \n
  • Des outils innovants en phase avec la tendance de mobilité : site web adapté aux smartphones
  • \n

\n \n ","Livraison 24/48H parmi 5 000 relais Pickup",""); -INSERT INTO `module_i18n` VALUES("29","en_US","Atos-SIPS payment module","","",""); -INSERT INTO `module_i18n` VALUES("29","fr_FR","Module de paiement Atos-SIPS","","",""); -INSERT INTO `module_i18n` VALUES("30","en_US","Payment recall","Modules for send recall mail if payment failed","",""); -INSERT INTO `module_i18n` VALUES("30","fr_FR","Rappel paiement","Modules pour envoyer un mail de rappel si le paiement as échoué","",""); -INSERT INTO `module_i18n` VALUES("31","en_US","Thelia 1.5.4.x database importation","","",""); -INSERT INTO `module_i18n` VALUES("31","fr_FR","Importation d\'une base de données Thelia 1.5.4.x","","",""); -INSERT INTO `module_i18n` VALUES("32","en_US","Automatically generated module - please update module.xml file","","",""); -INSERT INTO `module_i18n` VALUES("32","fr_FR","Fonctionnalités spécifiques Céline","","",""); - - - -DROP TABLE `module_image`; - -CREATE TABLE `module_image` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `module_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_module_image_module_id` (`module_id`), - KEY `idx_module_image_module_id_position` (`module_id`,`position`), - CONSTRAINT `fk_module_image_module_id` FOREIGN KEY (`module_id`) REFERENCES `module` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `module_image` VALUES("1","25","PayPal-1-logo.png","1","1","2017-03-02 15:59:00","2017-03-02 15:59:00"); - - - -DROP TABLE `module_image_i18n`; - -CREATE TABLE `module_image_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `module_image_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `module_image` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `newsletter`; - -CREATE TABLE `newsletter` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `email` varchar(255) NOT NULL, - `firstname` varchar(255) DEFAULT NULL, - `lastname` varchar(255) DEFAULT NULL, - `locale` varchar(5) DEFAULT NULL, - `unsubscribed` tinyint(1) NOT NULL DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `email_UNIQUE` (`email`), - KEY `idx_unsubscribed` (`unsubscribed`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `order`; - -CREATE TABLE `order` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(45) DEFAULT NULL, - `customer_id` int(11) NOT NULL, - `invoice_order_address_id` int(11) NOT NULL, - `delivery_order_address_id` int(11) NOT NULL, - `invoice_date` datetime DEFAULT NULL, - `currency_id` int(11) NOT NULL, - `currency_rate` float NOT NULL, - `transaction_ref` varchar(100) DEFAULT NULL COMMENT 'transaction reference - usually use to identify a transaction with banking modules', - `delivery_ref` varchar(100) DEFAULT NULL COMMENT 'delivery reference - usually use to identify a delivery progress on a distant delivery tracker website', - `invoice_ref` varchar(100) DEFAULT NULL COMMENT 'the invoice reference', - `discount` decimal(16,6) DEFAULT '0.000000', - `postage` decimal(16,6) NOT NULL DEFAULT '0.000000', - `postage_tax` decimal(16,6) NOT NULL DEFAULT '0.000000', - `postage_tax_rule_title` varchar(255) DEFAULT NULL, - `payment_module_id` int(11) NOT NULL, - `delivery_module_id` int(11) NOT NULL, - `status_id` int(11) NOT NULL, - `lang_id` int(11) NOT NULL, - `cart_id` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `ref_UNIQUE` (`ref`), - KEY `idx_order_currency_id` (`currency_id`), - KEY `idx_order_customer_id` (`customer_id`), - KEY `idx_order_invoice_order_address_id` (`invoice_order_address_id`), - KEY `idx_order_delivery_order_address_id` (`delivery_order_address_id`), - KEY `idx_order_status_id` (`status_id`), - KEY `fk_order_payment_module_id_idx` (`payment_module_id`), - KEY `fk_order_delivery_module_id_idx` (`delivery_module_id`), - KEY `fk_order_lang_id_idx` (`lang_id`), - KEY `idx_order_cart_fk` (`cart_id`), - CONSTRAINT `fk_order_currency_id` FOREIGN KEY (`currency_id`) REFERENCES `currency` (`id`), - CONSTRAINT `fk_order_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`), - CONSTRAINT `fk_order_delivery_module_id` FOREIGN KEY (`delivery_module_id`) REFERENCES `module` (`id`), - CONSTRAINT `fk_order_delivery_order_address_id` FOREIGN KEY (`delivery_order_address_id`) REFERENCES `order_address` (`id`), - CONSTRAINT `fk_order_invoice_order_address_id` FOREIGN KEY (`invoice_order_address_id`) REFERENCES `order_address` (`id`), - CONSTRAINT `fk_order_lang_id` FOREIGN KEY (`lang_id`) REFERENCES `lang` (`id`), - CONSTRAINT `fk_order_payment_module_id` FOREIGN KEY (`payment_module_id`) REFERENCES `module` (`id`), - CONSTRAINT `fk_order_status_id` FOREIGN KEY (`status_id`) REFERENCES `order_status` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8; - -INSERT INTO `order` VALUES("1","ORD000000000001","33","2","1","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 16:40:18","2017-06-15 16:40:18","1","2017-06-15 16:40:18",""); -INSERT INTO `order` VALUES("2","ORD000000000002","33","4","3","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 16:49:25","2017-06-15 16:49:25","1","2017-06-15 16:49:25",""); -INSERT INTO `order` VALUES("3","ORD000000000003","33","6","5","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 16:50:19","2017-06-15 16:50:19","1","2017-06-15 16:50:19",""); -INSERT INTO `order` VALUES("4","ORD000000000004","33","8","7","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 16:51:00","2017-06-15 16:51:00","1","2017-06-15 16:51:00",""); -INSERT INTO `order` VALUES("5","ORD000000000005","33","10","9","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 17:28:59","2017-06-15 17:28:59","1","2017-06-15 17:28:59",""); -INSERT INTO `order` VALUES("6","ORD000000000006","33","12","11","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 17:30:35","2017-06-15 17:30:35","1","2017-06-15 17:30:35",""); -INSERT INTO `order` VALUES("7","ORD000000000007","33","14","13","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 17:30:57","2017-06-15 17:30:57","1","2017-06-15 17:30:57",""); -INSERT INTO `order` VALUES("8","ORD000000000008","33","16","15","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 17:31:29","2017-06-15 17:31:29","1","2017-06-15 17:31:29",""); -INSERT INTO `order` VALUES("9","ORD000000000009","33","18","17","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 20:48:27","2017-06-22 20:48:27","1","2017-06-22 20:48:27",""); -INSERT INTO `order` VALUES("10","ORD000000000010","33","20","19","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 21:08:47","2017-06-22 21:08:47","1","2017-06-22 21:08:47",""); -INSERT INTO `order` VALUES("11","ORD000000000011","33","22","21","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 21:55:27","2017-06-22 21:55:27","1","2017-06-22 21:55:27",""); -INSERT INTO `order` VALUES("12","ORD000000000012","33","24","23","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 21:55:59","2017-06-22 21:56:00","1","2017-06-22 21:55:59",""); -INSERT INTO `order` VALUES("13","ORD000000000013","33","26","25","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 22:10:59","2017-06-22 22:10:59","1","2017-06-22 22:10:59",""); -INSERT INTO `order` VALUES("14","ORD000000000014","33","28","27","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 22:12:59","2017-06-22 22:12:59","1","2017-06-22 22:12:59",""); -INSERT INTO `order` VALUES("15","ORD000000000015","33","30","29","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","24","2017-06-22 22:54:37","2017-06-22 22:54:37","1","2017-06-22 22:54:37",""); -INSERT INTO `order` VALUES("16","ORD000000000016","33","32","31","2017-06-22 22:58:38","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","24","2017-06-22 22:58:36","2017-06-22 22:58:38","1","2017-06-22 22:58:36",""); -INSERT INTO `order` VALUES("17","ORD000000000017","33","34","33","2017-06-22 23:00:20","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","24","2017-06-22 23:00:19","2017-06-22 23:00:20","1","2017-06-22 23:00:19",""); -INSERT INTO `order` VALUES("18","ORD000000000018","33","36","35","2017-06-22 23:01:05","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","24","2017-06-22 23:01:04","2017-06-22 23:01:05","1","2017-06-22 23:01:04",""); -INSERT INTO `order` VALUES("19","ORD000000000019","33","38","37","2017-06-24 10:31:25","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","26","2017-06-24 10:31:24","2017-06-24 10:31:25","1","2017-06-24 10:31:24",""); -INSERT INTO `order` VALUES("20","ORD000000000020","33","40","39","2017-06-24 10:36:16","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","26","2017-06-24 10:34:40","2017-06-24 10:36:16","1","2017-06-24 10:34:40",""); -INSERT INTO `order` VALUES("21","ORD000000000021","33","42","41","2017-06-24 10:45:49","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","26","2017-06-24 10:45:43","2017-06-24 10:45:49","1","2017-06-24 10:45:43",""); -INSERT INTO `order` VALUES("22","ORD000000000022","33","44","43","2017-06-25 17:58:30","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 17:58:17","2017-06-25 17:58:30","1","2017-06-25 17:58:17",""); -INSERT INTO `order` VALUES("23","ORD000000000023","33","46","45","2017-06-25 17:59:08","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 17:58:53","2017-06-25 17:59:08","1","2017-06-25 17:58:53",""); -INSERT INTO `order` VALUES("24","ORD000000000024","33","48","47","2017-06-25 20:15:10","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 20:10:25","2017-06-25 20:15:10","1","2017-06-25 20:10:25",""); -INSERT INTO `order` VALUES("25","ORD000000000025","33","50","49","2017-06-25 20:19:22","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 20:18:31","2017-06-25 20:19:22","1","2017-06-25 20:18:31",""); -INSERT INTO `order` VALUES("26","ORD000000000026","33","52","51","2017-06-25 21:59:41","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 21:59:37","2017-06-25 21:59:41","1","2017-06-25 21:59:37",""); -INSERT INTO `order` VALUES("27","ORD000000000027","33","54","53","2017-06-25 22:04:58","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 22:04:24","2017-06-25 22:04:58","1","2017-06-25 22:04:24",""); -INSERT INTO `order` VALUES("28","ORD000000000028","33","56","55","2017-06-25 22:07:55","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 22:07:34","2017-06-25 22:07:55","1","2017-06-25 22:07:34",""); -INSERT INTO `order` VALUES("29","ORD000000000029","33","58","57","2017-06-25 22:10:36","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 22:09:39","2017-06-25 22:10:36","1","2017-06-25 22:09:39",""); -INSERT INTO `order` VALUES("30","ORD000000000030","33","60","59","2017-06-25 22:16:28","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 22:16:23","2017-06-25 22:16:28","1","2017-06-25 22:16:23",""); -INSERT INTO `order` VALUES("31","ORD000000000031","33","62","61","2017-06-25 22:20:28","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 22:20:23","2017-06-25 22:20:28","1","2017-06-25 22:20:23",""); -INSERT INTO `order` VALUES("32","ORD000000000032","33","64","63","2017-06-25 22:22:24","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 22:22:21","2017-06-25 22:22:24","1","2017-06-25 22:22:21",""); -INSERT INTO `order` VALUES("33","ORD000000000033","33","66","65","2017-06-26 18:02:09","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","30","2017-06-26 18:02:03","2017-06-26 18:02:09","1","2017-06-26 18:02:03",""); -INSERT INTO `order` VALUES("34","ORD000000000034","33","68","67","2017-06-26 18:02:19","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","30","2017-06-26 18:02:18","2017-06-26 18:02:19","1","2017-06-26 18:02:18",""); -INSERT INTO `order` VALUES("35","ORD000000000035","33","70","69","2017-06-26 18:02:40","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","30","2017-06-26 18:02:39","2017-06-26 18:02:40","1","2017-06-26 18:02:39",""); -INSERT INTO `order` VALUES("36","ORD000000000036","33","72","71","2017-06-26 20:04:00","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","30","2017-06-26 18:12:45","2017-06-26 20:04:00","1","2017-06-26 18:12:45",""); -INSERT INTO `order` VALUES("37","ORD000000000037","33","74","73","2017-06-26 20:05:37","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","30","2017-06-26 20:05:29","2017-06-26 20:05:37","1","2017-06-26 20:05:29",""); -INSERT INTO `order` VALUES("38","ORD000000000038","33","76","75","2017-06-26 20:06:52","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","30","2017-06-26 20:06:45","2017-06-26 20:06:52","1","2017-06-26 20:06:45",""); -INSERT INTO `order` VALUES("39","ORD000000000039","33","78","77","2017-06-27 04:26:17","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","32","2017-06-27 04:26:16","2017-06-27 04:26:17","1","2017-06-27 04:26:16",""); -INSERT INTO `order` VALUES("40","ORD000000000040","33","80","79","2017-06-27 04:27:22","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","32","2017-06-27 04:27:21","2017-06-27 04:27:22","1","2017-06-27 04:27:21",""); -INSERT INTO `order` VALUES("41","ORD000000000041","33","82","81","2017-06-27 04:28:36","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","32","2017-06-27 04:28:34","2017-06-27 04:28:36","1","2017-06-27 04:28:34",""); -INSERT INTO `order` VALUES("42","ORD000000000042","33","84","83","2017-06-27 04:33:11","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","32","2017-06-27 04:32:41","2017-06-27 04:33:11","1","2017-06-27 04:32:41",""); -INSERT INTO `order` VALUES("43","ORD000000000043","33","86","85","","1","1","","","","0.000000","0.000000","0.000000","","3","27","1","1","34","2017-06-27 20:01:26","2017-06-27 20:01:26","1","2017-06-27 20:01:26",""); - - - -DROP TABLE `order_address`; - -CREATE TABLE `order_address` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `customer_title_id` int(11) DEFAULT NULL, - `company` varchar(255) DEFAULT NULL, - `firstname` varchar(255) NOT NULL, - `lastname` varchar(255) NOT NULL, - `address1` varchar(255) NOT NULL, - `address2` varchar(255) DEFAULT NULL, - `address3` varchar(255) DEFAULT NULL, - `zipcode` varchar(10) NOT NULL, - `city` varchar(255) NOT NULL, - `phone` varchar(20) DEFAULT NULL, - `cellphone` varchar(20) DEFAULT NULL, - `country_id` int(11) NOT NULL, - `state_id` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `fk_order_address_customer_title_id_idx` (`customer_title_id`), - KEY `fk_order_address_country_id_idx` (`country_id`), - KEY `fk_order_address_state_id_idx` (`state_id`), - CONSTRAINT `fk_order_address_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`), - CONSTRAINT `fk_order_address_customer_title_id` FOREIGN KEY (`customer_title_id`) REFERENCES `customer_title` (`id`), - CONSTRAINT `fk_order_address_state_id` FOREIGN KEY (`state_id`) REFERENCES `state` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=87 DEFAULT CHARSET=utf8; - -INSERT INTO `order_address` VALUES("1","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-15 16:40:18","2017-06-15 16:40:27"); -INSERT INTO `order_address` VALUES("2","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-15 16:40:18","2017-06-15 16:40:18"); -INSERT INTO `order_address` VALUES("3","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-15 16:49:24","2017-06-15 16:49:27"); -INSERT INTO `order_address` VALUES("4","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-15 16:49:24","2017-06-15 16:49:24"); -INSERT INTO `order_address` VALUES("5","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-15 16:50:19","2017-06-15 16:50:23"); -INSERT INTO `order_address` VALUES("6","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-15 16:50:19","2017-06-15 16:50:19"); -INSERT INTO `order_address` VALUES("7","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-15 16:51:00","2017-06-15 16:51:01"); -INSERT INTO `order_address` VALUES("8","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-15 16:51:00","2017-06-15 16:51:00"); -INSERT INTO `order_address` VALUES("9","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-15 17:28:59","2017-06-15 17:28:59"); -INSERT INTO `order_address` VALUES("10","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-15 17:28:59","2017-06-15 17:28:59"); -INSERT INTO `order_address` VALUES("11","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-15 17:30:35","2017-06-15 17:30:36"); -INSERT INTO `order_address` VALUES("12","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-15 17:30:35","2017-06-15 17:30:35"); -INSERT INTO `order_address` VALUES("13","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-15 17:30:57","2017-06-15 17:30:57"); -INSERT INTO `order_address` VALUES("14","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-15 17:30:57","2017-06-15 17:30:57"); -INSERT INTO `order_address` VALUES("15","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-15 17:31:29","2017-06-15 17:31:30"); -INSERT INTO `order_address` VALUES("16","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-15 17:31:29","2017-06-15 17:31:29"); -INSERT INTO `order_address` VALUES("17","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 20:48:27","2017-06-22 20:48:28"); -INSERT INTO `order_address` VALUES("18","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 20:48:27","2017-06-22 20:48:27"); -INSERT INTO `order_address` VALUES("19","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 21:08:47","2017-06-22 21:08:56"); -INSERT INTO `order_address` VALUES("20","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 21:08:47","2017-06-22 21:08:47"); -INSERT INTO `order_address` VALUES("21","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 21:55:27","2017-06-22 21:55:27"); -INSERT INTO `order_address` VALUES("22","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 21:55:27","2017-06-22 21:55:27"); -INSERT INTO `order_address` VALUES("23","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 21:55:59","2017-06-22 21:56:00"); -INSERT INTO `order_address` VALUES("24","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 21:55:59","2017-06-22 21:55:59"); -INSERT INTO `order_address` VALUES("25","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 22:10:59","2017-06-22 22:10:59"); -INSERT INTO `order_address` VALUES("26","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 22:10:59","2017-06-22 22:10:59"); -INSERT INTO `order_address` VALUES("27","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 22:12:59","2017-06-22 22:12:59"); -INSERT INTO `order_address` VALUES("28","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 22:12:59","2017-06-22 22:12:59"); -INSERT INTO `order_address` VALUES("29","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 22:54:37","2017-06-22 22:54:38"); -INSERT INTO `order_address` VALUES("30","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 22:54:37","2017-06-22 22:54:37"); -INSERT INTO `order_address` VALUES("31","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 22:58:36","2017-06-22 22:58:37"); -INSERT INTO `order_address` VALUES("32","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 22:58:36","2017-06-22 22:58:36"); -INSERT INTO `order_address` VALUES("33","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 23:00:19","2017-06-22 23:00:20"); -INSERT INTO `order_address` VALUES("34","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 23:00:19","2017-06-22 23:00:19"); -INSERT INTO `order_address` VALUES("35","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 23:01:04","2017-06-22 23:01:04"); -INSERT INTO `order_address` VALUES("36","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 23:01:04","2017-06-22 23:01:04"); -INSERT INTO `order_address` VALUES("37","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-24 10:31:24","2017-06-24 10:31:24"); -INSERT INTO `order_address` VALUES("38","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-24 10:31:24","2017-06-24 10:31:24"); -INSERT INTO `order_address` VALUES("39","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-24 10:34:40","2017-06-24 10:34:41"); -INSERT INTO `order_address` VALUES("40","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-24 10:34:40","2017-06-24 10:34:40"); -INSERT INTO `order_address` VALUES("41","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-24 10:45:43","2017-06-24 10:45:43"); -INSERT INTO `order_address` VALUES("42","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-24 10:45:43","2017-06-24 10:45:43"); -INSERT INTO `order_address` VALUES("43","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 17:58:17","2017-06-25 17:58:18"); -INSERT INTO `order_address` VALUES("44","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 17:58:17","2017-06-25 17:58:17"); -INSERT INTO `order_address` VALUES("45","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 17:58:53","2017-06-25 17:58:54"); -INSERT INTO `order_address` VALUES("46","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 17:58:53","2017-06-25 17:58:53"); -INSERT INTO `order_address` VALUES("47","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 20:10:25","2017-06-25 20:10:26"); -INSERT INTO `order_address` VALUES("48","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 20:10:25","2017-06-25 20:10:25"); -INSERT INTO `order_address` VALUES("49","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 20:18:31","2017-06-25 20:18:31"); -INSERT INTO `order_address` VALUES("50","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 20:18:31","2017-06-25 20:18:31"); -INSERT INTO `order_address` VALUES("51","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 21:59:37","2017-06-25 21:59:37"); -INSERT INTO `order_address` VALUES("52","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 21:59:37","2017-06-25 21:59:37"); -INSERT INTO `order_address` VALUES("53","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 22:04:24","2017-06-25 22:04:25"); -INSERT INTO `order_address` VALUES("54","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 22:04:24","2017-06-25 22:04:24"); -INSERT INTO `order_address` VALUES("55","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 22:07:34","2017-06-25 22:07:34"); -INSERT INTO `order_address` VALUES("56","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 22:07:34","2017-06-25 22:07:34"); -INSERT INTO `order_address` VALUES("57","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 22:09:39","2017-06-25 22:09:40"); -INSERT INTO `order_address` VALUES("58","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 22:09:39","2017-06-25 22:09:39"); -INSERT INTO `order_address` VALUES("59","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 22:16:23","2017-06-25 22:16:23"); -INSERT INTO `order_address` VALUES("60","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 22:16:23","2017-06-25 22:16:23"); -INSERT INTO `order_address` VALUES("61","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 22:20:23","2017-06-25 22:20:24"); -INSERT INTO `order_address` VALUES("62","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 22:20:23","2017-06-25 22:20:23"); -INSERT INTO `order_address` VALUES("63","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 22:22:21","2017-06-25 22:22:21"); -INSERT INTO `order_address` VALUES("64","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 22:22:21","2017-06-25 22:22:21"); -INSERT INTO `order_address` VALUES("65","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-26 18:02:03","2017-06-26 18:02:06"); -INSERT INTO `order_address` VALUES("66","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-26 18:02:03","2017-06-26 18:02:03"); -INSERT INTO `order_address` VALUES("67","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-26 18:02:18","2017-06-26 18:02:19"); -INSERT INTO `order_address` VALUES("68","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-26 18:02:18","2017-06-26 18:02:18"); -INSERT INTO `order_address` VALUES("69","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-26 18:02:39","2017-06-26 18:02:39"); -INSERT INTO `order_address` VALUES("70","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-26 18:02:39","2017-06-26 18:02:39"); -INSERT INTO `order_address` VALUES("71","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-26 18:12:45","2017-06-26 18:12:45"); -INSERT INTO `order_address` VALUES("72","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-26 18:12:45","2017-06-26 18:12:45"); -INSERT INTO `order_address` VALUES("73","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-26 20:05:29","2017-06-26 20:05:30"); -INSERT INTO `order_address` VALUES("74","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-26 20:05:29","2017-06-26 20:05:29"); -INSERT INTO `order_address` VALUES("75","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-26 20:06:45","2017-06-26 20:06:46"); -INSERT INTO `order_address` VALUES("76","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-26 20:06:45","2017-06-26 20:06:45"); -INSERT INTO `order_address` VALUES("77","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-27 04:26:16","2017-06-27 04:26:16"); -INSERT INTO `order_address` VALUES("78","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-27 04:26:16","2017-06-27 04:26:16"); -INSERT INTO `order_address` VALUES("79","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-27 04:27:21","2017-06-27 04:27:22"); -INSERT INTO `order_address` VALUES("80","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-27 04:27:21","2017-06-27 04:27:21"); -INSERT INTO `order_address` VALUES("81","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-27 04:28:34","2017-06-27 04:28:35"); -INSERT INTO `order_address` VALUES("82","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-27 04:28:34","2017-06-27 04:28:34"); -INSERT INTO `order_address` VALUES("83","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-27 04:32:41","2017-06-27 04:32:45"); -INSERT INTO `order_address` VALUES("84","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-27 04:32:41","2017-06-27 04:32:41"); -INSERT INTO `order_address` VALUES("85","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-27 20:01:26","2017-06-27 20:01:26"); -INSERT INTO `order_address` VALUES("86","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-27 20:01:26","2017-06-27 20:01:26"); - - - -DROP TABLE `order_address_icirelais`; - -CREATE TABLE `order_address_icirelais` ( - `id` int(11) NOT NULL, - `code` varchar(10) NOT NULL, - PRIMARY KEY (`id`), - CONSTRAINT `fk_order_address_icirelais_order_address_id` FOREIGN KEY (`id`) REFERENCES `order_address` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `order_coupon`; - -CREATE TABLE `order_coupon` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `order_id` int(11) NOT NULL, - `code` varchar(45) NOT NULL, - `type` varchar(255) NOT NULL, - `amount` decimal(16,6) NOT NULL DEFAULT '0.000000', - `title` varchar(255) NOT NULL, - `short_description` text NOT NULL, - `description` longtext NOT NULL, - `start_date` datetime DEFAULT NULL, - `expiration_date` datetime NOT NULL, - `is_cumulative` tinyint(1) NOT NULL, - `is_removing_postage` tinyint(1) NOT NULL, - `is_available_on_special_offers` tinyint(1) NOT NULL, - `serialized_conditions` text NOT NULL, - `per_customer_usage_count` tinyint(1) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_order_coupon_order_id` (`order_id`), - CONSTRAINT `fk_order_coupon_order_id` FOREIGN KEY (`order_id`) REFERENCES `order` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `order_coupon_country`; - -CREATE TABLE `order_coupon_country` ( - `coupon_id` int(11) NOT NULL, - `country_id` int(11) NOT NULL, - PRIMARY KEY (`coupon_id`,`country_id`), - KEY `fk_country_id_idx` (`country_id`), - CONSTRAINT `fk_order_coupon_country_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_order_coupon_country_coupon_id` FOREIGN KEY (`coupon_id`) REFERENCES `order_coupon` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `order_coupon_module`; - -CREATE TABLE `order_coupon_module` ( - `coupon_id` int(11) NOT NULL, - `module_id` int(11) NOT NULL, - PRIMARY KEY (`coupon_id`,`module_id`), - KEY `fk_module_id_idx` (`module_id`), - CONSTRAINT `fk_coupon_module_coupon_id0` FOREIGN KEY (`coupon_id`) REFERENCES `order_coupon` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_coupon_module_module_id0` FOREIGN KEY (`module_id`) REFERENCES `module` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `order_product`; - -CREATE TABLE `order_product` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `order_id` int(11) NOT NULL, - `product_ref` varchar(255) NOT NULL, - `product_sale_elements_ref` varchar(255) NOT NULL, - `product_sale_elements_id` int(11) DEFAULT NULL, - `title` varchar(255) DEFAULT NULL, - `chapo` text, - `description` longtext, - `postscriptum` text, - `quantity` float NOT NULL, - `price` decimal(16,6) NOT NULL DEFAULT '0.000000', - `promo_price` decimal(16,6) DEFAULT '0.000000', - `was_new` tinyint(4) NOT NULL, - `was_in_promo` tinyint(4) NOT NULL, - `weight` varchar(45) DEFAULT NULL, - `ean_code` varchar(255) DEFAULT NULL, - `tax_rule_title` varchar(255) DEFAULT NULL, - `tax_rule_description` longtext, - `parent` int(11) DEFAULT NULL COMMENT 'not managed yet', - `virtual` tinyint(4) NOT NULL DEFAULT '0', - `virtual_document` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_order_product_order_id` (`order_id`), - CONSTRAINT `fk_order_product_order_id` FOREIGN KEY (`order_id`) REFERENCES `order` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=87 DEFAULT CHARSET=utf8; - -INSERT INTO `order_product` VALUES("1","1","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-15 16:40:19","2017-06-15 16:40:19"); -INSERT INTO `order_product` VALUES("2","1","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-15 16:40:19","2017-06-15 16:40:19"); -INSERT INTO `order_product` VALUES("3","2","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-15 16:49:25","2017-06-15 16:49:25"); -INSERT INTO `order_product` VALUES("4","2","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-15 16:49:25","2017-06-15 16:49:25"); -INSERT INTO `order_product` VALUES("5","3","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-15 16:50:19","2017-06-15 16:50:19"); -INSERT INTO `order_product` VALUES("6","3","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-15 16:50:19","2017-06-15 16:50:19"); -INSERT INTO `order_product` VALUES("7","4","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-15 16:51:01","2017-06-15 16:51:01"); -INSERT INTO `order_product` VALUES("8","4","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-15 16:51:01","2017-06-15 16:51:01"); -INSERT INTO `order_product` VALUES("9","5","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-15 17:28:59","2017-06-15 17:28:59"); -INSERT INTO `order_product` VALUES("10","5","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-15 17:28:59","2017-06-15 17:28:59"); -INSERT INTO `order_product` VALUES("11","6","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-15 17:30:36","2017-06-15 17:30:36"); -INSERT INTO `order_product` VALUES("12","6","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-15 17:30:36","2017-06-15 17:30:36"); -INSERT INTO `order_product` VALUES("13","7","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-15 17:30:57","2017-06-15 17:30:57"); -INSERT INTO `order_product` VALUES("14","7","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-15 17:30:57","2017-06-15 17:30:57"); -INSERT INTO `order_product` VALUES("15","8","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-15 17:31:30","2017-06-15 17:31:30"); -INSERT INTO `order_product` VALUES("16","8","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-15 17:31:30","2017-06-15 17:31:30"); -INSERT INTO `order_product` VALUES("17","9","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 20:48:27","2017-06-22 20:48:27"); -INSERT INTO `order_product` VALUES("18","9","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 20:48:28","2017-06-22 20:48:28"); -INSERT INTO `order_product` VALUES("19","10","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 21:08:47","2017-06-22 21:08:47"); -INSERT INTO `order_product` VALUES("20","10","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 21:08:48","2017-06-22 21:08:48"); -INSERT INTO `order_product` VALUES("21","11","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 21:55:27","2017-06-22 21:55:27"); -INSERT INTO `order_product` VALUES("22","11","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 21:55:27","2017-06-22 21:55:27"); -INSERT INTO `order_product` VALUES("23","12","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 21:56:00","2017-06-22 21:56:00"); -INSERT INTO `order_product` VALUES("24","12","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 21:56:00","2017-06-22 21:56:00"); -INSERT INTO `order_product` VALUES("25","13","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 22:10:59","2017-06-22 22:10:59"); -INSERT INTO `order_product` VALUES("26","13","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 22:10:59","2017-06-22 22:10:59"); -INSERT INTO `order_product` VALUES("27","14","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 22:12:59","2017-06-22 22:12:59"); -INSERT INTO `order_product` VALUES("28","14","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 22:12:59","2017-06-22 22:12:59"); -INSERT INTO `order_product` VALUES("29","15","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 22:54:37","2017-06-22 22:54:37"); -INSERT INTO `order_product` VALUES("30","15","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 22:54:38","2017-06-22 22:54:38"); -INSERT INTO `order_product` VALUES("31","16","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 22:58:37","2017-06-22 22:58:37"); -INSERT INTO `order_product` VALUES("32","16","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 22:58:37","2017-06-22 22:58:37"); -INSERT INTO `order_product` VALUES("33","17","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 23:00:19","2017-06-22 23:00:19"); -INSERT INTO `order_product` VALUES("34","17","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 23:00:19","2017-06-22 23:00:19"); -INSERT INTO `order_product` VALUES("35","18","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 23:01:04","2017-06-22 23:01:04"); -INSERT INTO `order_product` VALUES("36","18","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 23:01:04","2017-06-22 23:01:04"); -INSERT INTO `order_product` VALUES("37","19","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-24 10:31:24","2017-06-24 10:31:24"); -INSERT INTO `order_product` VALUES("38","19","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-24 10:31:24","2017-06-24 10:31:24"); -INSERT INTO `order_product` VALUES("39","20","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-24 10:34:41","2017-06-24 10:34:41"); -INSERT INTO `order_product` VALUES("40","20","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-24 10:34:41","2017-06-24 10:34:41"); -INSERT INTO `order_product` VALUES("41","21","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-24 10:45:43","2017-06-24 10:45:43"); -INSERT INTO `order_product` VALUES("42","21","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-24 10:45:43","2017-06-24 10:45:43"); -INSERT INTO `order_product` VALUES("43","22","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 17:58:18","2017-06-25 17:58:18"); -INSERT INTO `order_product` VALUES("44","22","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 17:58:18","2017-06-25 17:58:18"); -INSERT INTO `order_product` VALUES("45","23","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 17:58:53","2017-06-25 17:58:53"); -INSERT INTO `order_product` VALUES("46","23","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 17:58:54","2017-06-25 17:58:54"); -INSERT INTO `order_product` VALUES("47","24","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 20:10:26","2017-06-25 20:10:26"); -INSERT INTO `order_product` VALUES("48","24","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 20:10:26","2017-06-25 20:10:26"); -INSERT INTO `order_product` VALUES("49","25","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 20:18:31","2017-06-25 20:18:31"); -INSERT INTO `order_product` VALUES("50","25","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 20:18:31","2017-06-25 20:18:31"); -INSERT INTO `order_product` VALUES("51","26","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 21:59:37","2017-06-25 21:59:37"); -INSERT INTO `order_product` VALUES("52","26","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 21:59:37","2017-06-25 21:59:37"); -INSERT INTO `order_product` VALUES("53","27","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 22:04:24","2017-06-25 22:04:24"); -INSERT INTO `order_product` VALUES("54","27","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 22:04:24","2017-06-25 22:04:24"); -INSERT INTO `order_product` VALUES("55","28","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 22:07:34","2017-06-25 22:07:34"); -INSERT INTO `order_product` VALUES("56","28","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 22:07:34","2017-06-25 22:07:34"); -INSERT INTO `order_product` VALUES("57","29","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 22:09:40","2017-06-25 22:09:40"); -INSERT INTO `order_product` VALUES("58","29","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 22:09:40","2017-06-25 22:09:40"); -INSERT INTO `order_product` VALUES("59","30","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 22:16:23","2017-06-25 22:16:23"); -INSERT INTO `order_product` VALUES("60","30","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 22:16:23","2017-06-25 22:16:23"); -INSERT INTO `order_product` VALUES("61","31","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 22:20:23","2017-06-25 22:20:23"); -INSERT INTO `order_product` VALUES("62","31","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 22:20:23","2017-06-25 22:20:23"); -INSERT INTO `order_product` VALUES("63","32","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 22:22:21","2017-06-25 22:22:21"); -INSERT INTO `order_product` VALUES("64","32","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 22:22:21","2017-06-25 22:22:21"); -INSERT INTO `order_product` VALUES("65","33","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-26 18:02:05","2017-06-26 18:02:05"); -INSERT INTO `order_product` VALUES("66","33","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-26 18:02:06","2017-06-26 18:02:06"); -INSERT INTO `order_product` VALUES("67","34","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-26 18:02:18","2017-06-26 18:02:18"); -INSERT INTO `order_product` VALUES("68","34","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-26 18:02:19","2017-06-26 18:02:19"); -INSERT INTO `order_product` VALUES("69","35","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-26 18:02:39","2017-06-26 18:02:39"); -INSERT INTO `order_product` VALUES("70","35","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-26 18:02:39","2017-06-26 18:02:39"); -INSERT INTO `order_product` VALUES("71","36","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-26 18:12:45","2017-06-26 18:12:45"); -INSERT INTO `order_product` VALUES("72","36","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-26 18:12:45","2017-06-26 18:12:45"); -INSERT INTO `order_product` VALUES("73","37","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-26 20:05:30","2017-06-26 20:05:30"); -INSERT INTO `order_product` VALUES("74","37","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-26 20:05:30","2017-06-26 20:05:30"); -INSERT INTO `order_product` VALUES("75","38","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-26 20:06:46","2017-06-26 20:06:46"); -INSERT INTO `order_product` VALUES("76","38","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-26 20:06:46","2017-06-26 20:06:46"); -INSERT INTO `order_product` VALUES("77","39","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-27 04:26:16","2017-06-27 04:26:16"); -INSERT INTO `order_product` VALUES("78","39","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-27 04:26:16","2017-06-27 04:26:16"); -INSERT INTO `order_product` VALUES("79","40","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-27 04:27:22","2017-06-27 04:27:22"); -INSERT INTO `order_product` VALUES("80","40","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-27 04:27:22","2017-06-27 04:27:22"); -INSERT INTO `order_product` VALUES("81","41","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-27 04:28:35","2017-06-27 04:28:35"); -INSERT INTO `order_product` VALUES("82","41","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-27 04:28:35","2017-06-27 04:28:35"); -INSERT INTO `order_product` VALUES("83","42","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-27 04:32:42","2017-06-27 04:32:42"); -INSERT INTO `order_product` VALUES("84","42","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-27 04:32:43","2017-06-27 04:32:43"); -INSERT INTO `order_product` VALUES("85","43","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-27 20:01:26","2017-06-27 20:01:26"); -INSERT INTO `order_product` VALUES("86","43","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-27 20:01:26","2017-06-27 20:01:26"); - - - -DROP TABLE `order_product_attribute_combination`; - -CREATE TABLE `order_product_attribute_combination` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `order_product_id` int(11) NOT NULL, - `attribute_title` varchar(255) NOT NULL, - `attribute_chapo` text, - `attribute_description` longtext, - `attribute_postscriptum` text, - `attribute_av_title` varchar(255) NOT NULL, - `attribute_av_chapo` text, - `attribute_av_description` longtext, - `attribute_av_postscriptum` text, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_order_product_attribute_combination_order_product_id` (`order_product_id`), - CONSTRAINT `fk_order_product_attribute_combination_order_product_id` FOREIGN KEY (`order_product_id`) REFERENCES `order_product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=87 DEFAULT CHARSET=utf8; - -INSERT INTO `order_product_attribute_combination` VALUES("1","1","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-15 16:40:19","2017-06-15 16:40:19"); -INSERT INTO `order_product_attribute_combination` VALUES("2","2","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-15 16:40:19","2017-06-15 16:40:19"); -INSERT INTO `order_product_attribute_combination` VALUES("3","3","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-15 16:49:25","2017-06-15 16:49:25"); -INSERT INTO `order_product_attribute_combination` VALUES("4","4","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-15 16:49:25","2017-06-15 16:49:25"); -INSERT INTO `order_product_attribute_combination` VALUES("5","5","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-15 16:50:19","2017-06-15 16:50:19"); -INSERT INTO `order_product_attribute_combination` VALUES("6","6","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-15 16:50:19","2017-06-15 16:50:19"); -INSERT INTO `order_product_attribute_combination` VALUES("7","7","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-15 16:51:01","2017-06-15 16:51:01"); -INSERT INTO `order_product_attribute_combination` VALUES("8","8","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-15 16:51:01","2017-06-15 16:51:01"); -INSERT INTO `order_product_attribute_combination` VALUES("9","9","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-15 17:28:59","2017-06-15 17:28:59"); -INSERT INTO `order_product_attribute_combination` VALUES("10","10","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-15 17:28:59","2017-06-15 17:28:59"); -INSERT INTO `order_product_attribute_combination` VALUES("11","11","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-15 17:30:36","2017-06-15 17:30:36"); -INSERT INTO `order_product_attribute_combination` VALUES("12","12","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-15 17:30:36","2017-06-15 17:30:36"); -INSERT INTO `order_product_attribute_combination` VALUES("13","13","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-15 17:30:57","2017-06-15 17:30:57"); -INSERT INTO `order_product_attribute_combination` VALUES("14","14","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-15 17:30:57","2017-06-15 17:30:57"); -INSERT INTO `order_product_attribute_combination` VALUES("15","15","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-15 17:31:30","2017-06-15 17:31:30"); -INSERT INTO `order_product_attribute_combination` VALUES("16","16","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-15 17:31:30","2017-06-15 17:31:30"); -INSERT INTO `order_product_attribute_combination` VALUES("17","17","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 20:48:28","2017-06-22 20:48:28"); -INSERT INTO `order_product_attribute_combination` VALUES("18","18","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 20:48:28","2017-06-22 20:48:28"); -INSERT INTO `order_product_attribute_combination` VALUES("19","19","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 21:08:47","2017-06-22 21:08:47"); -INSERT INTO `order_product_attribute_combination` VALUES("20","20","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 21:08:48","2017-06-22 21:08:48"); -INSERT INTO `order_product_attribute_combination` VALUES("21","21","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 21:55:27","2017-06-22 21:55:27"); -INSERT INTO `order_product_attribute_combination` VALUES("22","22","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 21:55:27","2017-06-22 21:55:27"); -INSERT INTO `order_product_attribute_combination` VALUES("23","23","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 21:56:00","2017-06-22 21:56:00"); -INSERT INTO `order_product_attribute_combination` VALUES("24","24","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 21:56:00","2017-06-22 21:56:00"); -INSERT INTO `order_product_attribute_combination` VALUES("25","25","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 22:10:59","2017-06-22 22:10:59"); -INSERT INTO `order_product_attribute_combination` VALUES("26","26","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 22:10:59","2017-06-22 22:10:59"); -INSERT INTO `order_product_attribute_combination` VALUES("27","27","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 22:12:59","2017-06-22 22:12:59"); -INSERT INTO `order_product_attribute_combination` VALUES("28","28","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 22:12:59","2017-06-22 22:12:59"); -INSERT INTO `order_product_attribute_combination` VALUES("29","29","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 22:54:38","2017-06-22 22:54:38"); -INSERT INTO `order_product_attribute_combination` VALUES("30","30","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 22:54:38","2017-06-22 22:54:38"); -INSERT INTO `order_product_attribute_combination` VALUES("31","31","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 22:58:37","2017-06-22 22:58:37"); -INSERT INTO `order_product_attribute_combination` VALUES("32","32","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 22:58:37","2017-06-22 22:58:37"); -INSERT INTO `order_product_attribute_combination` VALUES("33","33","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 23:00:19","2017-06-22 23:00:19"); -INSERT INTO `order_product_attribute_combination` VALUES("34","34","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 23:00:19","2017-06-22 23:00:19"); -INSERT INTO `order_product_attribute_combination` VALUES("35","35","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 23:01:04","2017-06-22 23:01:04"); -INSERT INTO `order_product_attribute_combination` VALUES("36","36","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 23:01:04","2017-06-22 23:01:04"); -INSERT INTO `order_product_attribute_combination` VALUES("37","37","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-24 10:31:24","2017-06-24 10:31:24"); -INSERT INTO `order_product_attribute_combination` VALUES("38","38","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-24 10:31:24","2017-06-24 10:31:24"); -INSERT INTO `order_product_attribute_combination` VALUES("39","39","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-24 10:34:41","2017-06-24 10:34:41"); -INSERT INTO `order_product_attribute_combination` VALUES("40","40","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-24 10:34:41","2017-06-24 10:34:41"); -INSERT INTO `order_product_attribute_combination` VALUES("41","41","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-24 10:45:43","2017-06-24 10:45:43"); -INSERT INTO `order_product_attribute_combination` VALUES("42","42","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-24 10:45:43","2017-06-24 10:45:43"); -INSERT INTO `order_product_attribute_combination` VALUES("43","43","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 17:58:18","2017-06-25 17:58:18"); -INSERT INTO `order_product_attribute_combination` VALUES("44","44","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 17:58:18","2017-06-25 17:58:18"); -INSERT INTO `order_product_attribute_combination` VALUES("45","45","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 17:58:54","2017-06-25 17:58:54"); -INSERT INTO `order_product_attribute_combination` VALUES("46","46","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 17:58:54","2017-06-25 17:58:54"); -INSERT INTO `order_product_attribute_combination` VALUES("47","47","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 20:10:26","2017-06-25 20:10:26"); -INSERT INTO `order_product_attribute_combination` VALUES("48","48","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 20:10:26","2017-06-25 20:10:26"); -INSERT INTO `order_product_attribute_combination` VALUES("49","49","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 20:18:31","2017-06-25 20:18:31"); -INSERT INTO `order_product_attribute_combination` VALUES("50","50","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 20:18:31","2017-06-25 20:18:31"); -INSERT INTO `order_product_attribute_combination` VALUES("51","51","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 21:59:37","2017-06-25 21:59:37"); -INSERT INTO `order_product_attribute_combination` VALUES("52","52","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 21:59:37","2017-06-25 21:59:37"); -INSERT INTO `order_product_attribute_combination` VALUES("53","53","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 22:04:24","2017-06-25 22:04:24"); -INSERT INTO `order_product_attribute_combination` VALUES("54","54","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 22:04:24","2017-06-25 22:04:24"); -INSERT INTO `order_product_attribute_combination` VALUES("55","55","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 22:07:34","2017-06-25 22:07:34"); -INSERT INTO `order_product_attribute_combination` VALUES("56","56","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 22:07:34","2017-06-25 22:07:34"); -INSERT INTO `order_product_attribute_combination` VALUES("57","57","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 22:09:40","2017-06-25 22:09:40"); -INSERT INTO `order_product_attribute_combination` VALUES("58","58","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 22:09:40","2017-06-25 22:09:40"); -INSERT INTO `order_product_attribute_combination` VALUES("59","59","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 22:16:23","2017-06-25 22:16:23"); -INSERT INTO `order_product_attribute_combination` VALUES("60","60","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 22:16:23","2017-06-25 22:16:23"); -INSERT INTO `order_product_attribute_combination` VALUES("61","61","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 22:20:23","2017-06-25 22:20:23"); -INSERT INTO `order_product_attribute_combination` VALUES("62","62","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 22:20:23","2017-06-25 22:20:23"); -INSERT INTO `order_product_attribute_combination` VALUES("63","63","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 22:22:21","2017-06-25 22:22:21"); -INSERT INTO `order_product_attribute_combination` VALUES("64","64","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 22:22:21","2017-06-25 22:22:21"); -INSERT INTO `order_product_attribute_combination` VALUES("65","65","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-26 18:02:06","2017-06-26 18:02:06"); -INSERT INTO `order_product_attribute_combination` VALUES("66","66","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-26 18:02:06","2017-06-26 18:02:06"); -INSERT INTO `order_product_attribute_combination` VALUES("67","67","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-26 18:02:19","2017-06-26 18:02:19"); -INSERT INTO `order_product_attribute_combination` VALUES("68","68","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-26 18:02:19","2017-06-26 18:02:19"); -INSERT INTO `order_product_attribute_combination` VALUES("69","69","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-26 18:02:39","2017-06-26 18:02:39"); -INSERT INTO `order_product_attribute_combination` VALUES("70","70","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-26 18:02:39","2017-06-26 18:02:39"); -INSERT INTO `order_product_attribute_combination` VALUES("71","71","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-26 18:12:45","2017-06-26 18:12:45"); -INSERT INTO `order_product_attribute_combination` VALUES("72","72","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-26 18:12:45","2017-06-26 18:12:45"); -INSERT INTO `order_product_attribute_combination` VALUES("73","73","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-26 20:05:30","2017-06-26 20:05:30"); -INSERT INTO `order_product_attribute_combination` VALUES("74","74","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-26 20:05:30","2017-06-26 20:05:30"); -INSERT INTO `order_product_attribute_combination` VALUES("75","75","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-26 20:06:46","2017-06-26 20:06:46"); -INSERT INTO `order_product_attribute_combination` VALUES("76","76","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-26 20:06:46","2017-06-26 20:06:46"); -INSERT INTO `order_product_attribute_combination` VALUES("77","77","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-27 04:26:16","2017-06-27 04:26:16"); -INSERT INTO `order_product_attribute_combination` VALUES("78","78","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-27 04:26:16","2017-06-27 04:26:16"); -INSERT INTO `order_product_attribute_combination` VALUES("79","79","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-27 04:27:22","2017-06-27 04:27:22"); -INSERT INTO `order_product_attribute_combination` VALUES("80","80","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-27 04:27:22","2017-06-27 04:27:22"); -INSERT INTO `order_product_attribute_combination` VALUES("81","81","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-27 04:28:35","2017-06-27 04:28:35"); -INSERT INTO `order_product_attribute_combination` VALUES("82","82","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-27 04:28:35","2017-06-27 04:28:35"); -INSERT INTO `order_product_attribute_combination` VALUES("83","83","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-27 04:32:43","2017-06-27 04:32:43"); -INSERT INTO `order_product_attribute_combination` VALUES("84","84","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-27 04:32:43","2017-06-27 04:32:43"); -INSERT INTO `order_product_attribute_combination` VALUES("85","85","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-27 20:01:26","2017-06-27 20:01:26"); -INSERT INTO `order_product_attribute_combination` VALUES("86","86","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-27 20:01:26","2017-06-27 20:01:26"); - - - -DROP TABLE `order_product_tax`; - -CREATE TABLE `order_product_tax` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `order_product_id` int(11) NOT NULL, - `title` varchar(255) NOT NULL, - `description` longtext, - `amount` decimal(16,6) NOT NULL DEFAULT '0.000000', - `promo_amount` decimal(16,6) DEFAULT '0.000000', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_ order_product_tax_order_product_id` (`order_product_id`), - CONSTRAINT `fk_ order_product_tax_order_product_id0` FOREIGN KEY (`order_product_id`) REFERENCES `order_product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=87 DEFAULT CHARSET=utf8; - -INSERT INTO `order_product_tax` VALUES("1","1","TVA française à 20%","","0.002000","0.000000","2017-06-15 16:40:19","2017-06-15 16:40:19"); -INSERT INTO `order_product_tax` VALUES("2","2","TVA française à 20%","","0.016667","0.000000","2017-06-15 16:40:19","2017-06-15 16:40:19"); -INSERT INTO `order_product_tax` VALUES("3","3","TVA française à 20%","","0.002000","0.000000","2017-06-15 16:49:25","2017-06-15 16:49:25"); -INSERT INTO `order_product_tax` VALUES("4","4","TVA française à 20%","","0.016667","0.000000","2017-06-15 16:49:25","2017-06-15 16:49:25"); -INSERT INTO `order_product_tax` VALUES("5","5","TVA française à 20%","","0.002000","0.000000","2017-06-15 16:50:19","2017-06-15 16:50:19"); -INSERT INTO `order_product_tax` VALUES("6","6","TVA française à 20%","","0.016667","0.000000","2017-06-15 16:50:19","2017-06-15 16:50:19"); -INSERT INTO `order_product_tax` VALUES("7","7","TVA française à 20%","","0.002000","0.000000","2017-06-15 16:51:01","2017-06-15 16:51:01"); -INSERT INTO `order_product_tax` VALUES("8","8","TVA française à 20%","","0.016667","0.000000","2017-06-15 16:51:01","2017-06-15 16:51:01"); -INSERT INTO `order_product_tax` VALUES("9","9","TVA française à 20%","","0.002000","0.000000","2017-06-15 17:28:59","2017-06-15 17:28:59"); -INSERT INTO `order_product_tax` VALUES("10","10","TVA française à 20%","","0.016667","0.000000","2017-06-15 17:28:59","2017-06-15 17:28:59"); -INSERT INTO `order_product_tax` VALUES("11","11","TVA française à 20%","","0.002000","0.000000","2017-06-15 17:30:36","2017-06-15 17:30:36"); -INSERT INTO `order_product_tax` VALUES("12","12","TVA française à 20%","","0.016667","0.000000","2017-06-15 17:30:36","2017-06-15 17:30:36"); -INSERT INTO `order_product_tax` VALUES("13","13","TVA française à 20%","","0.002000","0.000000","2017-06-15 17:30:57","2017-06-15 17:30:57"); -INSERT INTO `order_product_tax` VALUES("14","14","TVA française à 20%","","0.016667","0.000000","2017-06-15 17:30:57","2017-06-15 17:30:57"); -INSERT INTO `order_product_tax` VALUES("15","15","TVA française à 20%","","0.002000","0.000000","2017-06-15 17:31:30","2017-06-15 17:31:30"); -INSERT INTO `order_product_tax` VALUES("16","16","TVA française à 20%","","0.016667","0.000000","2017-06-15 17:31:30","2017-06-15 17:31:30"); -INSERT INTO `order_product_tax` VALUES("17","17","TVA française à 20%","","0.002000","0.000000","2017-06-22 20:48:28","2017-06-22 20:48:28"); -INSERT INTO `order_product_tax` VALUES("18","18","TVA française à 20%","","0.016667","0.000000","2017-06-22 20:48:28","2017-06-22 20:48:28"); -INSERT INTO `order_product_tax` VALUES("19","19","TVA française à 20%","","0.002000","0.000000","2017-06-22 21:08:47","2017-06-22 21:08:47"); -INSERT INTO `order_product_tax` VALUES("20","20","TVA française à 20%","","0.016667","0.000000","2017-06-22 21:08:48","2017-06-22 21:08:48"); -INSERT INTO `order_product_tax` VALUES("21","21","TVA française à 20%","","0.002000","0.000000","2017-06-22 21:55:27","2017-06-22 21:55:27"); -INSERT INTO `order_product_tax` VALUES("22","22","TVA française à 20%","","0.016667","0.000000","2017-06-22 21:55:27","2017-06-22 21:55:27"); -INSERT INTO `order_product_tax` VALUES("23","23","TVA française à 20%","","0.002000","0.000000","2017-06-22 21:56:00","2017-06-22 21:56:00"); -INSERT INTO `order_product_tax` VALUES("24","24","TVA française à 20%","","0.016667","0.000000","2017-06-22 21:56:00","2017-06-22 21:56:00"); -INSERT INTO `order_product_tax` VALUES("25","25","TVA française à 20%","","0.002000","0.000000","2017-06-22 22:10:59","2017-06-22 22:10:59"); -INSERT INTO `order_product_tax` VALUES("26","26","TVA française à 20%","","0.016667","0.000000","2017-06-22 22:10:59","2017-06-22 22:10:59"); -INSERT INTO `order_product_tax` VALUES("27","27","TVA française à 20%","","0.002000","0.000000","2017-06-22 22:12:59","2017-06-22 22:12:59"); -INSERT INTO `order_product_tax` VALUES("28","28","TVA française à 20%","","0.016667","0.000000","2017-06-22 22:12:59","2017-06-22 22:12:59"); -INSERT INTO `order_product_tax` VALUES("29","29","TVA française à 20%","","0.002000","0.000000","2017-06-22 22:54:37","2017-06-22 22:54:37"); -INSERT INTO `order_product_tax` VALUES("30","30","TVA française à 20%","","0.016667","0.000000","2017-06-22 22:54:38","2017-06-22 22:54:38"); -INSERT INTO `order_product_tax` VALUES("31","31","TVA française à 20%","","0.002000","0.000000","2017-06-22 22:58:37","2017-06-22 22:58:37"); -INSERT INTO `order_product_tax` VALUES("32","32","TVA française à 20%","","0.016667","0.000000","2017-06-22 22:58:37","2017-06-22 22:58:37"); -INSERT INTO `order_product_tax` VALUES("33","33","TVA française à 20%","","0.002000","0.000000","2017-06-22 23:00:19","2017-06-22 23:00:19"); -INSERT INTO `order_product_tax` VALUES("34","34","TVA française à 20%","","0.016667","0.000000","2017-06-22 23:00:19","2017-06-22 23:00:19"); -INSERT INTO `order_product_tax` VALUES("35","35","TVA française à 20%","","0.002000","0.000000","2017-06-22 23:01:04","2017-06-22 23:01:04"); -INSERT INTO `order_product_tax` VALUES("36","36","TVA française à 20%","","0.016667","0.000000","2017-06-22 23:01:04","2017-06-22 23:01:04"); -INSERT INTO `order_product_tax` VALUES("37","37","TVA française à 20%","","0.002000","0.000000","2017-06-24 10:31:24","2017-06-24 10:31:24"); -INSERT INTO `order_product_tax` VALUES("38","38","TVA française à 20%","","0.016667","0.000000","2017-06-24 10:31:24","2017-06-24 10:31:24"); -INSERT INTO `order_product_tax` VALUES("39","39","TVA française à 20%","","0.002000","0.000000","2017-06-24 10:34:41","2017-06-24 10:34:41"); -INSERT INTO `order_product_tax` VALUES("40","40","TVA française à 20%","","0.016667","0.000000","2017-06-24 10:34:41","2017-06-24 10:34:41"); -INSERT INTO `order_product_tax` VALUES("41","41","TVA française à 20%","","0.002000","0.000000","2017-06-24 10:45:43","2017-06-24 10:45:43"); -INSERT INTO `order_product_tax` VALUES("42","42","TVA française à 20%","","0.016667","0.000000","2017-06-24 10:45:43","2017-06-24 10:45:43"); -INSERT INTO `order_product_tax` VALUES("43","43","TVA française à 20%","","0.002000","0.000000","2017-06-25 17:58:18","2017-06-25 17:58:18"); -INSERT INTO `order_product_tax` VALUES("44","44","TVA française à 20%","","0.016667","0.000000","2017-06-25 17:58:18","2017-06-25 17:58:18"); -INSERT INTO `order_product_tax` VALUES("45","45","TVA française à 20%","","0.002000","0.000000","2017-06-25 17:58:54","2017-06-25 17:58:54"); -INSERT INTO `order_product_tax` VALUES("46","46","TVA française à 20%","","0.016667","0.000000","2017-06-25 17:58:54","2017-06-25 17:58:54"); -INSERT INTO `order_product_tax` VALUES("47","47","TVA française à 20%","","0.002000","0.000000","2017-06-25 20:10:26","2017-06-25 20:10:26"); -INSERT INTO `order_product_tax` VALUES("48","48","TVA française à 20%","","0.016667","0.000000","2017-06-25 20:10:26","2017-06-25 20:10:26"); -INSERT INTO `order_product_tax` VALUES("49","49","TVA française à 20%","","0.002000","0.000000","2017-06-25 20:18:31","2017-06-25 20:18:31"); -INSERT INTO `order_product_tax` VALUES("50","50","TVA française à 20%","","0.016667","0.000000","2017-06-25 20:18:31","2017-06-25 20:18:31"); -INSERT INTO `order_product_tax` VALUES("51","51","TVA française à 20%","","0.002000","0.000000","2017-06-25 21:59:37","2017-06-25 21:59:37"); -INSERT INTO `order_product_tax` VALUES("52","52","TVA française à 20%","","0.016667","0.000000","2017-06-25 21:59:37","2017-06-25 21:59:37"); -INSERT INTO `order_product_tax` VALUES("53","53","TVA française à 20%","","0.002000","0.000000","2017-06-25 22:04:24","2017-06-25 22:04:24"); -INSERT INTO `order_product_tax` VALUES("54","54","TVA française à 20%","","0.016667","0.000000","2017-06-25 22:04:24","2017-06-25 22:04:24"); -INSERT INTO `order_product_tax` VALUES("55","55","TVA française à 20%","","0.002000","0.000000","2017-06-25 22:07:34","2017-06-25 22:07:34"); -INSERT INTO `order_product_tax` VALUES("56","56","TVA française à 20%","","0.016667","0.000000","2017-06-25 22:07:34","2017-06-25 22:07:34"); -INSERT INTO `order_product_tax` VALUES("57","57","TVA française à 20%","","0.002000","0.000000","2017-06-25 22:09:40","2017-06-25 22:09:40"); -INSERT INTO `order_product_tax` VALUES("58","58","TVA française à 20%","","0.016667","0.000000","2017-06-25 22:09:40","2017-06-25 22:09:40"); -INSERT INTO `order_product_tax` VALUES("59","59","TVA française à 20%","","0.002000","0.000000","2017-06-25 22:16:23","2017-06-25 22:16:23"); -INSERT INTO `order_product_tax` VALUES("60","60","TVA française à 20%","","0.016667","0.000000","2017-06-25 22:16:23","2017-06-25 22:16:23"); -INSERT INTO `order_product_tax` VALUES("61","61","TVA française à 20%","","0.002000","0.000000","2017-06-25 22:20:23","2017-06-25 22:20:23"); -INSERT INTO `order_product_tax` VALUES("62","62","TVA française à 20%","","0.016667","0.000000","2017-06-25 22:20:23","2017-06-25 22:20:23"); -INSERT INTO `order_product_tax` VALUES("63","63","TVA française à 20%","","0.002000","0.000000","2017-06-25 22:22:21","2017-06-25 22:22:21"); -INSERT INTO `order_product_tax` VALUES("64","64","TVA française à 20%","","0.016667","0.000000","2017-06-25 22:22:21","2017-06-25 22:22:21"); -INSERT INTO `order_product_tax` VALUES("65","65","TVA française à 20%","","0.002000","0.000000","2017-06-26 18:02:05","2017-06-26 18:02:05"); -INSERT INTO `order_product_tax` VALUES("66","66","TVA française à 20%","","0.016667","0.000000","2017-06-26 18:02:06","2017-06-26 18:02:06"); -INSERT INTO `order_product_tax` VALUES("67","67","TVA française à 20%","","0.002000","0.000000","2017-06-26 18:02:18","2017-06-26 18:02:18"); -INSERT INTO `order_product_tax` VALUES("68","68","TVA française à 20%","","0.016667","0.000000","2017-06-26 18:02:19","2017-06-26 18:02:19"); -INSERT INTO `order_product_tax` VALUES("69","69","TVA française à 20%","","0.002000","0.000000","2017-06-26 18:02:39","2017-06-26 18:02:39"); -INSERT INTO `order_product_tax` VALUES("70","70","TVA française à 20%","","0.016667","0.000000","2017-06-26 18:02:39","2017-06-26 18:02:39"); -INSERT INTO `order_product_tax` VALUES("71","71","TVA française à 20%","","0.002000","0.000000","2017-06-26 18:12:45","2017-06-26 18:12:45"); -INSERT INTO `order_product_tax` VALUES("72","72","TVA française à 20%","","0.016667","0.000000","2017-06-26 18:12:45","2017-06-26 18:12:45"); -INSERT INTO `order_product_tax` VALUES("73","73","TVA française à 20%","","0.002000","0.000000","2017-06-26 20:05:30","2017-06-26 20:05:30"); -INSERT INTO `order_product_tax` VALUES("74","74","TVA française à 20%","","0.016667","0.000000","2017-06-26 20:05:30","2017-06-26 20:05:30"); -INSERT INTO `order_product_tax` VALUES("75","75","TVA française à 20%","","0.002000","0.000000","2017-06-26 20:06:46","2017-06-26 20:06:46"); -INSERT INTO `order_product_tax` VALUES("76","76","TVA française à 20%","","0.016667","0.000000","2017-06-26 20:06:46","2017-06-26 20:06:46"); -INSERT INTO `order_product_tax` VALUES("77","77","TVA française à 20%","","0.002000","0.000000","2017-06-27 04:26:16","2017-06-27 04:26:16"); -INSERT INTO `order_product_tax` VALUES("78","78","TVA française à 20%","","0.016667","0.000000","2017-06-27 04:26:16","2017-06-27 04:26:16"); -INSERT INTO `order_product_tax` VALUES("79","79","TVA française à 20%","","0.002000","0.000000","2017-06-27 04:27:22","2017-06-27 04:27:22"); -INSERT INTO `order_product_tax` VALUES("80","80","TVA française à 20%","","0.016667","0.000000","2017-06-27 04:27:22","2017-06-27 04:27:22"); -INSERT INTO `order_product_tax` VALUES("81","81","TVA française à 20%","","0.002000","0.000000","2017-06-27 04:28:35","2017-06-27 04:28:35"); -INSERT INTO `order_product_tax` VALUES("82","82","TVA française à 20%","","0.016667","0.000000","2017-06-27 04:28:35","2017-06-27 04:28:35"); -INSERT INTO `order_product_tax` VALUES("83","83","TVA française à 20%","","0.002000","0.000000","2017-06-27 04:32:42","2017-06-27 04:32:42"); -INSERT INTO `order_product_tax` VALUES("84","84","TVA française à 20%","","0.016667","0.000000","2017-06-27 04:32:43","2017-06-27 04:32:43"); -INSERT INTO `order_product_tax` VALUES("85","85","TVA française à 20%","","0.002000","0.000000","2017-06-27 20:01:26","2017-06-27 20:01:26"); -INSERT INTO `order_product_tax` VALUES("86","86","TVA française à 20%","","0.016667","0.000000","2017-06-27 20:01:26","2017-06-27 20:01:26"); - - - -DROP TABLE `order_status`; - -CREATE TABLE `order_status` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(45) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `code_UNIQUE` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; - -INSERT INTO `order_status` VALUES("1","not_paid","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `order_status` VALUES("2","paid","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `order_status` VALUES("3","processing","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `order_status` VALUES("4","sent","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `order_status` VALUES("5","canceled","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `order_status` VALUES("6","refunded","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `order_status_i18n`; - -CREATE TABLE `order_status_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `order_status_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `order_status` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `order_status_i18n` VALUES("1","de_DE","Nicht bezahlt","","",""); -INSERT INTO `order_status_i18n` VALUES("1","en_US","Not paid","","",""); -INSERT INTO `order_status_i18n` VALUES("1","es_ES","No pagados","","",""); -INSERT INTO `order_status_i18n` VALUES("1","fr_FR","Non payée","","",""); -INSERT INTO `order_status_i18n` VALUES("2","de_DE","Bezahlt","","",""); -INSERT INTO `order_status_i18n` VALUES("2","en_US","Paid","","",""); -INSERT INTO `order_status_i18n` VALUES("2","es_ES","Pagado","","",""); -INSERT INTO `order_status_i18n` VALUES("2","fr_FR","Payée","","",""); -INSERT INTO `order_status_i18n` VALUES("3","de_DE","Bearbeitung","","",""); -INSERT INTO `order_status_i18n` VALUES("3","en_US","Processing","","",""); -INSERT INTO `order_status_i18n` VALUES("3","es_ES","Procesando","","",""); -INSERT INTO `order_status_i18n` VALUES("3","fr_FR","Traitement","","",""); -INSERT INTO `order_status_i18n` VALUES("4","de_DE","Gesendet","","",""); -INSERT INTO `order_status_i18n` VALUES("4","en_US","Sent","","",""); -INSERT INTO `order_status_i18n` VALUES("4","es_ES","Enviado","","",""); -INSERT INTO `order_status_i18n` VALUES("4","fr_FR","Envoyée","","",""); -INSERT INTO `order_status_i18n` VALUES("5","de_DE","Storniert","","",""); -INSERT INTO `order_status_i18n` VALUES("5","en_US","Canceled","","",""); -INSERT INTO `order_status_i18n` VALUES("5","es_ES","Cancelado","","",""); -INSERT INTO `order_status_i18n` VALUES("5","fr_FR","Annulée","","",""); -INSERT INTO `order_status_i18n` VALUES("6","de_DE","Zrückerstattet","","",""); -INSERT INTO `order_status_i18n` VALUES("6","en_US","Refunded","","",""); -INSERT INTO `order_status_i18n` VALUES("6","es_ES","Reembolsado","","",""); -INSERT INTO `order_status_i18n` VALUES("6","fr_FR","Remboursé","","",""); - - - -DROP TABLE `order_version`; - -CREATE TABLE `order_version` ( - `id` int(11) NOT NULL, - `ref` varchar(45) DEFAULT NULL, - `customer_id` int(11) NOT NULL, - `invoice_order_address_id` int(11) NOT NULL, - `delivery_order_address_id` int(11) NOT NULL, - `invoice_date` datetime DEFAULT NULL, - `currency_id` int(11) NOT NULL, - `currency_rate` float NOT NULL, - `transaction_ref` varchar(100) DEFAULT NULL COMMENT 'transaction reference - usually use to identify a transaction with banking modules', - `delivery_ref` varchar(100) DEFAULT NULL COMMENT 'delivery reference - usually use to identify a delivery progress on a distant delivery tracker website', - `invoice_ref` varchar(100) DEFAULT NULL COMMENT 'the invoice reference', - `discount` decimal(16,6) DEFAULT '0.000000', - `postage` decimal(16,6) NOT NULL DEFAULT '0.000000', - `postage_tax` decimal(16,6) NOT NULL DEFAULT '0.000000', - `postage_tax_rule_title` varchar(255) DEFAULT NULL, - `payment_module_id` int(11) NOT NULL, - `delivery_module_id` int(11) NOT NULL, - `status_id` int(11) NOT NULL, - `lang_id` int(11) NOT NULL, - `cart_id` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - `customer_id_version` int(11) DEFAULT '0', - PRIMARY KEY (`id`,`version`), - CONSTRAINT `order_version_FK_1` FOREIGN KEY (`id`) REFERENCES `order` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `order_version` VALUES("1","ORD000000000001","33","2","1","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 16:40:18","2017-06-15 16:40:18","1","2017-06-15 16:40:18","","1"); -INSERT INTO `order_version` VALUES("2","ORD000000000002","33","4","3","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 16:49:25","2017-06-15 16:49:25","1","2017-06-15 16:49:25","","1"); -INSERT INTO `order_version` VALUES("3","ORD000000000003","33","6","5","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 16:50:19","2017-06-15 16:50:19","1","2017-06-15 16:50:19","","1"); -INSERT INTO `order_version` VALUES("4","ORD000000000004","33","8","7","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 16:51:00","2017-06-15 16:51:00","1","2017-06-15 16:51:00","","1"); -INSERT INTO `order_version` VALUES("5","ORD000000000005","33","10","9","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 17:28:59","2017-06-15 17:28:59","1","2017-06-15 17:28:59","","1"); -INSERT INTO `order_version` VALUES("6","ORD000000000006","33","12","11","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 17:30:35","2017-06-15 17:30:35","1","2017-06-15 17:30:35","","1"); -INSERT INTO `order_version` VALUES("7","ORD000000000007","33","14","13","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 17:30:57","2017-06-15 17:30:57","1","2017-06-15 17:30:57","","1"); -INSERT INTO `order_version` VALUES("8","ORD000000000008","33","16","15","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 17:31:29","2017-06-15 17:31:29","1","2017-06-15 17:31:29","","1"); -INSERT INTO `order_version` VALUES("9","ORD000000000009","33","18","17","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 20:48:27","2017-06-22 20:48:27","1","2017-06-22 20:48:27","","1"); -INSERT INTO `order_version` VALUES("10","ORD000000000010","33","20","19","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 21:08:47","2017-06-22 21:08:47","1","2017-06-22 21:08:47","","1"); -INSERT INTO `order_version` VALUES("11","ORD000000000011","33","22","21","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 21:55:27","2017-06-22 21:55:27","1","2017-06-22 21:55:27","","1"); -INSERT INTO `order_version` VALUES("12","ORD000000000012","33","24","23","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 21:55:59","2017-06-22 21:56:00","1","2017-06-22 21:55:59","","1"); -INSERT INTO `order_version` VALUES("13","ORD000000000013","33","26","25","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 22:10:59","2017-06-22 22:10:59","1","2017-06-22 22:10:59","","1"); -INSERT INTO `order_version` VALUES("14","ORD000000000014","33","28","27","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 22:12:59","2017-06-22 22:12:59","1","2017-06-22 22:12:59","","1"); -INSERT INTO `order_version` VALUES("15","ORD000000000015","33","30","29","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","24","2017-06-22 22:54:37","2017-06-22 22:54:37","1","2017-06-22 22:54:37","","1"); -INSERT INTO `order_version` VALUES("16","ORD000000000016","33","32","31","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","24","2017-06-22 22:58:36","2017-06-22 22:58:36","1","2017-06-22 22:58:36","","1"); -INSERT INTO `order_version` VALUES("17","ORD000000000017","33","34","33","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","24","2017-06-22 23:00:19","2017-06-22 23:00:19","1","2017-06-22 23:00:19","","1"); -INSERT INTO `order_version` VALUES("18","ORD000000000018","33","36","35","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","24","2017-06-22 23:01:04","2017-06-22 23:01:04","1","2017-06-22 23:01:04","","1"); -INSERT INTO `order_version` VALUES("19","ORD000000000019","33","38","37","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","26","2017-06-24 10:31:24","2017-06-24 10:31:24","1","2017-06-24 10:31:24","","1"); -INSERT INTO `order_version` VALUES("20","ORD000000000020","33","40","39","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","26","2017-06-24 10:34:40","2017-06-24 10:34:40","1","2017-06-24 10:34:40","","1"); -INSERT INTO `order_version` VALUES("21","ORD000000000021","33","42","41","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","26","2017-06-24 10:45:43","2017-06-24 10:45:43","1","2017-06-24 10:45:43","","1"); -INSERT INTO `order_version` VALUES("22","ORD000000000022","33","44","43","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 17:58:17","2017-06-25 17:58:17","1","2017-06-25 17:58:17","","1"); -INSERT INTO `order_version` VALUES("23","ORD000000000023","33","46","45","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 17:58:53","2017-06-25 17:58:53","1","2017-06-25 17:58:53","","1"); -INSERT INTO `order_version` VALUES("24","ORD000000000024","33","48","47","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 20:10:25","2017-06-25 20:10:25","1","2017-06-25 20:10:25","","1"); -INSERT INTO `order_version` VALUES("25","ORD000000000025","33","50","49","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 20:18:31","2017-06-25 20:18:31","1","2017-06-25 20:18:31","","1"); -INSERT INTO `order_version` VALUES("26","ORD000000000026","33","52","51","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 21:59:37","2017-06-25 21:59:37","1","2017-06-25 21:59:37","","1"); -INSERT INTO `order_version` VALUES("27","ORD000000000027","33","54","53","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 22:04:24","2017-06-25 22:04:24","1","2017-06-25 22:04:24","","1"); -INSERT INTO `order_version` VALUES("28","ORD000000000028","33","56","55","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 22:07:34","2017-06-25 22:07:34","1","2017-06-25 22:07:34","","1"); -INSERT INTO `order_version` VALUES("29","ORD000000000029","33","58","57","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 22:09:39","2017-06-25 22:09:39","1","2017-06-25 22:09:39","","1"); -INSERT INTO `order_version` VALUES("30","ORD000000000030","33","60","59","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 22:16:23","2017-06-25 22:16:23","1","2017-06-25 22:16:23","","1"); -INSERT INTO `order_version` VALUES("31","ORD000000000031","33","62","61","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 22:20:23","2017-06-25 22:20:23","1","2017-06-25 22:20:23","","1"); -INSERT INTO `order_version` VALUES("32","ORD000000000032","33","64","63","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 22:22:21","2017-06-25 22:22:21","1","2017-06-25 22:22:21","","1"); -INSERT INTO `order_version` VALUES("33","ORD000000000033","33","66","65","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","30","2017-06-26 18:02:03","2017-06-26 18:02:03","1","2017-06-26 18:02:03","","1"); -INSERT INTO `order_version` VALUES("34","ORD000000000034","33","68","67","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","30","2017-06-26 18:02:18","2017-06-26 18:02:18","1","2017-06-26 18:02:18","","1"); -INSERT INTO `order_version` VALUES("35","ORD000000000035","33","70","69","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","30","2017-06-26 18:02:39","2017-06-26 18:02:39","1","2017-06-26 18:02:39","","1"); -INSERT INTO `order_version` VALUES("36","ORD000000000036","33","72","71","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","30","2017-06-26 18:12:45","2017-06-26 18:12:45","1","2017-06-26 18:12:45","","1"); -INSERT INTO `order_version` VALUES("37","ORD000000000037","33","74","73","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","30","2017-06-26 20:05:29","2017-06-26 20:05:29","1","2017-06-26 20:05:29","","1"); -INSERT INTO `order_version` VALUES("38","ORD000000000038","33","76","75","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","30","2017-06-26 20:06:45","2017-06-26 20:06:45","1","2017-06-26 20:06:45","","1"); -INSERT INTO `order_version` VALUES("39","ORD000000000039","33","78","77","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","32","2017-06-27 04:26:16","2017-06-27 04:26:16","1","2017-06-27 04:26:16","","1"); -INSERT INTO `order_version` VALUES("40","ORD000000000040","33","80","79","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","32","2017-06-27 04:27:21","2017-06-27 04:27:21","1","2017-06-27 04:27:21","","1"); -INSERT INTO `order_version` VALUES("41","ORD000000000041","33","82","81","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","32","2017-06-27 04:28:34","2017-06-27 04:28:34","1","2017-06-27 04:28:34","","1"); -INSERT INTO `order_version` VALUES("42","ORD000000000042","33","84","83","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","32","2017-06-27 04:32:41","2017-06-27 04:32:41","1","2017-06-27 04:32:41","","1"); -INSERT INTO `order_version` VALUES("43","ORD000000000043","33","86","85","","1","1","","","","0.000000","0.000000","0.000000","","3","27","1","1","34","2017-06-27 20:01:26","2017-06-27 20:01:26","1","2017-06-27 20:01:26","","1"); - - - -DROP TABLE `payment_recall_module`; - -CREATE TABLE `payment_recall_module` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `module_id` int(11) NOT NULL, - `enable` tinyint(1) NOT NULL, - PRIMARY KEY (`id`), - KEY `FI_paymentrecall_module_module` (`module_id`), - CONSTRAINT `fk_paymentrecall_module_module` FOREIGN KEY (`module_id`) REFERENCES `module` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `payment_recall_order`; - -CREATE TABLE `payment_recall_order` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `order_id` int(11) NOT NULL, - `customer_id` int(11) NOT NULL, - `recall_send` tinyint(1) NOT NULL, - PRIMARY KEY (`id`), - KEY `FI_paymentrecall_order_order` (`order_id`), - KEY `FI_paymentrecall_order_customer` (`customer_id`), - CONSTRAINT `fk_paymentrecall_order_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`), - CONSTRAINT `fk_paymentrecall_order_order` FOREIGN KEY (`order_id`) REFERENCES `order` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `paypal_cart`; - -CREATE TABLE `paypal_cart` ( - `id` int(11) NOT NULL, - `credit_card_id` varchar(40) DEFAULT NULL, - `planified_payment_id` int(11) DEFAULT NULL, - `express_payment_id` varchar(255) DEFAULT NULL, - `express_payer_id` varchar(255) DEFAULT NULL, - `express_token` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `FI_paypal_cart_planified_payment_id` (`planified_payment_id`), - CONSTRAINT `fk_paypal_cart_cart_id` FOREIGN KEY (`id`) REFERENCES `cart` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_paypal_cart_planified_payment_id` FOREIGN KEY (`planified_payment_id`) REFERENCES `paypal_planified_payment` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `paypal_customer`; - -CREATE TABLE `paypal_customer` ( - `id` int(11) NOT NULL, - `paypal_user_id` int(11) NOT NULL, - `credit_card_id` varchar(40) DEFAULT NULL, - `name` varchar(255) DEFAULT NULL, - `given_name` varchar(255) DEFAULT NULL, - `family_name` varchar(255) DEFAULT NULL, - `middle_name` varchar(255) DEFAULT NULL, - `picture` varchar(255) DEFAULT NULL, - `email_verified` tinyint(4) DEFAULT NULL, - `gender` varchar(255) DEFAULT NULL, - `birthday` varchar(255) DEFAULT NULL, - `zoneinfo` varchar(255) DEFAULT NULL, - `locale` varchar(255) DEFAULT NULL, - `language` varchar(255) DEFAULT NULL, - `verified` tinyint(4) DEFAULT NULL, - `phone_number` varchar(255) DEFAULT NULL, - `verified_account` varchar(255) DEFAULT NULL, - `account_type` varchar(255) DEFAULT NULL, - `age_range` varchar(255) DEFAULT NULL, - `payer_id` varchar(255) DEFAULT NULL, - `postal_code` varchar(255) DEFAULT NULL, - `locality` varchar(255) DEFAULT NULL, - `region` varchar(255) DEFAULT NULL, - `country` varchar(255) DEFAULT NULL, - `street_address` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`,`paypal_user_id`), - CONSTRAINT `fk_paypal_payer_customer_id` FOREIGN KEY (`id`) REFERENCES `customer` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `paypal_log`; - -CREATE TABLE `paypal_log` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `customer_id` int(11) DEFAULT NULL, - `order_id` int(11) DEFAULT NULL, - `hook` varchar(255) DEFAULT NULL, - `channel` varchar(255) DEFAULT NULL, - `level` int(11) DEFAULT NULL, - `message` longtext, - `time` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `FI_paypal_log_customer_id` (`customer_id`), - KEY `FI_paypal_log_order_id` (`order_id`), - CONSTRAINT `fk_paypal_log_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_paypal_log_order_id` FOREIGN KEY (`order_id`) REFERENCES `order` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `paypal_order`; - -CREATE TABLE `paypal_order` ( - `id` int(11) NOT NULL, - `payment_id` varchar(50) DEFAULT NULL, - `agreement_id` varchar(255) DEFAULT NULL, - `credit_card_id` varchar(40) DEFAULT NULL, - `state` varchar(20) DEFAULT NULL, - `amount` decimal(16,6) DEFAULT '0.000000', - `description` longtext, - `payer_id` varchar(255) DEFAULT NULL, - `token` varchar(255) DEFAULT NULL, - `planified_title` varchar(255) NOT NULL, - `planified_description` longtext, - `planified_frequency` varchar(255) NOT NULL, - `planified_frequency_interval` int(11) NOT NULL, - `planified_cycle` int(11) NOT NULL, - `planified_actual_cycle` int(11) NOT NULL DEFAULT '0', - `planified_min_amount` decimal(16,6) DEFAULT '0.000000', - `planified_max_amount` decimal(16,6) DEFAULT '0.000000', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`), - CONSTRAINT `fk_paypal_order_order_id` FOREIGN KEY (`id`) REFERENCES `order` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `paypal_order_version`; - -CREATE TABLE `paypal_order_version` ( - `id` int(11) NOT NULL, - `payment_id` varchar(50) DEFAULT NULL, - `agreement_id` varchar(255) DEFAULT NULL, - `credit_card_id` varchar(40) DEFAULT NULL, - `state` varchar(20) DEFAULT NULL, - `amount` decimal(16,6) DEFAULT '0.000000', - `description` longtext, - `payer_id` varchar(255) DEFAULT NULL, - `token` varchar(255) DEFAULT NULL, - `planified_title` varchar(255) NOT NULL, - `planified_description` longtext, - `planified_frequency` varchar(255) NOT NULL, - `planified_frequency_interval` int(11) NOT NULL, - `planified_cycle` int(11) NOT NULL, - `planified_actual_cycle` int(11) NOT NULL DEFAULT '0', - `planified_min_amount` decimal(16,6) DEFAULT '0.000000', - `planified_max_amount` decimal(16,6) DEFAULT '0.000000', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - `id_version` int(11) DEFAULT '0', - PRIMARY KEY (`id`,`version`), - CONSTRAINT `paypal_order_version_FK_1` FOREIGN KEY (`id`) REFERENCES `paypal_order` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `paypal_plan`; - -CREATE TABLE `paypal_plan` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `paypal_order_id` int(11) NOT NULL, - `plan_id` varchar(255) DEFAULT NULL, - `state` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `FI_paypal_plan_paypal_order_id` (`paypal_order_id`), - CONSTRAINT `fk_paypal_plan_paypal_order_id` FOREIGN KEY (`paypal_order_id`) REFERENCES `paypal_order` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `paypal_planified_payment`; - -CREATE TABLE `paypal_planified_payment` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `frequency` varchar(255) NOT NULL, - `frequency_interval` int(11) NOT NULL, - `cycle` int(11) NOT NULL, - `min_amount` decimal(16,6) DEFAULT '0.000000', - `max_amount` decimal(16,6) DEFAULT '0.000000', - `position` int(11) NOT NULL DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `paypal_planified_payment_i18n`; - -CREATE TABLE `paypal_planified_payment_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) NOT NULL, - `description` longtext, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `paypal_planified_payment_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `paypal_planified_payment` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `product`; - -CREATE TABLE `product` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `tax_rule_id` int(11) DEFAULT NULL, - `ref` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '0', - `position` int(11) NOT NULL DEFAULT '0', - `template_id` int(11) DEFAULT NULL, - `brand_id` int(11) DEFAULT NULL, - `virtual` tinyint(4) NOT NULL DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `ref_UNIQUE` (`ref`), - KEY `idx_product_tax_rule_id` (`tax_rule_id`), - KEY `fk_product_template_id` (`template_id`), - KEY `fk_product_brand1_idx` (`brand_id`), - CONSTRAINT `fk_product_brand` FOREIGN KEY (`brand_id`) REFERENCES `brand` (`id`) ON DELETE SET NULL, - CONSTRAINT `fk_product_tax_rule_id` FOREIGN KEY (`tax_rule_id`) REFERENCES `tax_rule` (`id`), - CONSTRAINT `fk_product_template` FOREIGN KEY (`template_id`) REFERENCES `template` (`id`) ON DELETE SET NULL -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; - -INSERT INTO `product` VALUES("1","1","Citron","1","1","1","","0","2017-05-11 19:42:45","2017-05-11 20:46:35","3","2017-05-11 20:46:35",""); -INSERT INTO `product` VALUES("2","1","Blettes","1","1","3","","0","2017-05-23 12:46:29","2017-05-23 12:46:29","2","2017-05-23 12:46:29",""); - - - -DROP TABLE `product_associated_content`; - -CREATE TABLE `product_associated_content` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `product_id` int(11) NOT NULL, - `content_id` int(11) NOT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_product_associated_content_product_id` (`product_id`), - KEY `idx_product_associated_content_content_id` (`content_id`), - CONSTRAINT `fk_product_associated_content_content_id` FOREIGN KEY (`content_id`) REFERENCES `content` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_product_associated_content_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `product_category`; - -CREATE TABLE `product_category` ( - `product_id` int(11) NOT NULL, - `category_id` int(11) NOT NULL, - `default_category` tinyint(1) DEFAULT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`product_id`,`category_id`), - KEY `idx_product_has_category_category1` (`category_id`), - KEY `idx_product_has_category_product1` (`product_id`), - KEY `idx_product_has_category_default` (`default_category`), - CONSTRAINT `fk_product_has_category_category1` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_product_has_category_product1` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `product_category` VALUES("1","3","1","1","2017-05-11 19:42:45","2017-05-11 19:42:45"); -INSERT INTO `product_category` VALUES("2","11","1","1","2017-05-23 12:46:29","2017-05-23 12:46:29"); - - - -DROP TABLE `product_document`; - -CREATE TABLE `product_document` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `product_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_product_document_product_id` (`product_id`), - CONSTRAINT `fk_product_document_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `product_document_i18n`; - -CREATE TABLE `product_document_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `product_document_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `product_document` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `product_i18n`; - -CREATE TABLE `product_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - `meta_title` varchar(255) DEFAULT NULL, - `meta_description` text, - `meta_keywords` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `product_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `product_i18n` VALUES("1","fr_FR","Crème de citron","","","","","",""); -INSERT INTO `product_i18n` VALUES("2","fr_FR","Blettes","","","","","",""); - - - -DROP TABLE `product_image`; - -CREATE TABLE `product_image` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `product_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_product_image_product_id` (`product_id`), - KEY `idx_product_image_product_id_position` (`product_id`,`position`), - CONSTRAINT `fk_product_image_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `product_image` VALUES("1","1","cremecitron_1-1.jpg","1","1","2017-05-11 20:42:19","2017-05-11 20:42:19"); - - - -DROP TABLE `product_image_i18n`; - -CREATE TABLE `product_image_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `product_image_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `product_image` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `product_image_i18n` VALUES("1","fr_FR","","","",""); - - - -DROP TABLE `product_price`; - -CREATE TABLE `product_price` ( - `product_sale_elements_id` int(11) NOT NULL, - `currency_id` int(11) NOT NULL, - `price` decimal(16,6) NOT NULL DEFAULT '0.000000', - `promo_price` decimal(16,6) NOT NULL DEFAULT '0.000000', - `from_default_currency` tinyint(1) NOT NULL DEFAULT '1', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`product_sale_elements_id`,`currency_id`), - KEY `idx_product_price_product_sale_elements_id` (`product_sale_elements_id`), - KEY `idx_product_price_currency_id` (`currency_id`), - CONSTRAINT `fk_product_price_currency_id` FOREIGN KEY (`currency_id`) REFERENCES `currency` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_product_price_product_sale_elements_id` FOREIGN KEY (`product_sale_elements_id`) REFERENCES `product_sale_elements` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `product_price` VALUES("1","1","4.166667","4.166667","0","2017-05-11 19:42:45","2017-05-11 19:42:45"); -INSERT INTO `product_price` VALUES("6","1","0.083333","0.000000","0","2017-05-28 09:59:01","2017-06-04 10:43:12"); -INSERT INTO `product_price` VALUES("7","1","0.010000","0.000000","0","2017-05-28 09:59:40","2017-06-04 10:43:12"); - - - -DROP TABLE `product_sale_elements`; - -CREATE TABLE `product_sale_elements` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `product_id` int(11) NOT NULL, - `ref` varchar(255) NOT NULL, - `quantity` float NOT NULL, - `promo` tinyint(4) DEFAULT '0', - `newness` tinyint(4) DEFAULT '0', - `weight` float DEFAULT '0', - `is_default` tinyint(1) DEFAULT '0', - `ean_code` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_product_sale_element_product_id` (`product_id`), - KEY `ref` (`ref`), - KEY `idx_product_elements_product_id_promo_is_default` (`product_id`,`promo`,`is_default`), - CONSTRAINT `fk_product_sale_element_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; - -INSERT INTO `product_sale_elements` VALUES("1","1","Citron","5","0","0","0.25","1","","2017-05-11 19:42:45","2017-05-11 20:46:35"); -INSERT INTO `product_sale_elements` VALUES("6","2","Blettes","73","0","0","0.08","1","","2017-05-28 09:59:01","2017-06-27 04:33:11"); -INSERT INTO `product_sale_elements` VALUES("7","2","Blettes","1900","0","0","100","0","","2017-05-28 09:59:40","2017-06-27 04:33:11"); - - - -DROP TABLE `product_sale_elements_product_document`; - -CREATE TABLE `product_sale_elements_product_document` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `product_sale_elements_id` int(11) NOT NULL, - `product_document_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `fk_pse_product_document_product_document__idx` (`product_document_id`), - KEY `fk_pse_product_document_product_sale_elem_idx` (`product_sale_elements_id`), - CONSTRAINT `fk_pse_product_document_product_document_id` FOREIGN KEY (`product_document_id`) REFERENCES `product_document` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_pse_product_document_product_sale_elements_id` FOREIGN KEY (`product_sale_elements_id`) REFERENCES `product_sale_elements` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `product_sale_elements_product_image`; - -CREATE TABLE `product_sale_elements_product_image` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `product_sale_elements_id` int(11) NOT NULL, - `product_image_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `fk_pse_product_image_product_image_id_idx` (`product_image_id`), - KEY `fk_pse_product_image_product_sale_element_idx` (`product_sale_elements_id`), - CONSTRAINT `fk_pse_product_image_product_image_id` FOREIGN KEY (`product_image_id`) REFERENCES `product_image` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_pse_product_image_product_sale_elements_id` FOREIGN KEY (`product_sale_elements_id`) REFERENCES `product_sale_elements` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `product_version`; - -CREATE TABLE `product_version` ( - `id` int(11) NOT NULL, - `tax_rule_id` int(11) DEFAULT NULL, - `ref` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '0', - `position` int(11) NOT NULL DEFAULT '0', - `template_id` int(11) DEFAULT NULL, - `brand_id` int(11) DEFAULT NULL, - `virtual` tinyint(4) NOT NULL DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`,`version`), - CONSTRAINT `product_version_FK_1` FOREIGN KEY (`id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `product_version` VALUES("1","1","Crème de citron","1","0","1","","0","2017-05-11 19:42:45","2017-05-11 19:42:45","1","2017-05-11 19:42:45",""); -INSERT INTO `product_version` VALUES("1","1","Crème de citron","1","1","1","","0","2017-05-11 19:42:45","2017-05-11 19:42:45","2","2017-05-11 19:42:45",""); -INSERT INTO `product_version` VALUES("1","1","Citron","1","1","1","","0","2017-05-11 19:42:45","2017-05-11 20:46:35","3","2017-05-11 20:46:35",""); -INSERT INTO `product_version` VALUES("2","1","Blettes","1","0","3","","0","2017-05-23 12:46:29","2017-05-23 12:46:29","1","2017-05-23 12:46:29",""); -INSERT INTO `product_version` VALUES("2","1","Blettes","1","1","3","","0","2017-05-23 12:46:29","2017-05-23 12:46:29","2","2017-05-23 12:46:29",""); - - - -DROP TABLE `profile`; - -CREATE TABLE `profile` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(30) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `code_UNIQUE` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `profile` VALUES("1","Gestion stock","2017-05-11 17:06:16","2017-05-11 17:06:16"); - - - -DROP TABLE `profile_i18n`; - -CREATE TABLE `profile_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `profile_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `profile` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `profile_i18n` VALUES("1","fr_FR","Gestion stock","","",""); - - - -DROP TABLE `profile_module`; - -CREATE TABLE `profile_module` ( - `profile_id` int(11) NOT NULL, - `module_id` int(11) NOT NULL, - `access` tinyint(4) DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`profile_id`,`module_id`), - KEY `idx_profile_module_profile_id` (`profile_id`), - KEY `idx_profile_module_module_id` (`module_id`), - CONSTRAINT `fk_profile_module_module_id` FOREIGN KEY (`module_id`) REFERENCES `module` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_profile_module_profile_id` FOREIGN KEY (`profile_id`) REFERENCES `profile` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `profile_resource`; - -CREATE TABLE `profile_resource` ( - `profile_id` int(11) NOT NULL, - `resource_id` int(11) NOT NULL, - `access` int(11) NOT NULL DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`profile_id`,`resource_id`), - KEY `idx_profile_resource_profile_id` (`profile_id`), - KEY `idx_profile_resource_resource_id` (`resource_id`), - CONSTRAINT `fk_profile_resource_profile_id` FOREIGN KEY (`profile_id`) REFERENCES `profile` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_profile_resource_resource_id` FOREIGN KEY (`resource_id`) REFERENCES `resource` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `resource`; - -CREATE TABLE `resource` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(255) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `code_UNIQUE` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8; - -INSERT INTO `resource` VALUES("1","admin.address","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("2","admin.configuration.administrator","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("3","admin.configuration.area","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("4","admin.configuration.attribute","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("5","admin.category","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("6","admin.configuration","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("7","admin.content","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("8","admin.configuration.country","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("9","admin.coupon","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("10","admin.configuration.currency","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("11","admin.customer","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("12","admin.configuration.feature","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("13","admin.folder","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("14","admin.configuration.language","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("15","admin.configuration.mailing-system","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("16","admin.configuration.message","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("17","admin.module","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("18","admin.order","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("19","admin.product","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("20","admin.configuration.profile","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("21","admin.configuration.shipping-zone","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("22","admin.configuration.tax","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("23","admin.configuration.template","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("24","admin.configuration.system-log","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("25","admin.cache","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("26","admin.home","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("27","admin.configuration.store","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("28","admin.configuration.variable","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("29","admin.configuration.admin-logs","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("30","admin.configuration.system-logs","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("31","admin.configuration.advanced","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("32","admin.configuration.translations","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("33","admin.export","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("34","admin.tools","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("35","admin.brand","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("36","admin.hook","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("37","admin.module-hook","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("38","admin.sales","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("39","admin.administrator","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("40","admin.configuration.category","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("41","admin.configuration.shipping-configuration","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("42","admin.configuration.tax-rule","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("43","admin.hooks","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("44","admin.import","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("45","admin.modules","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("46","admin.profile","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("47","admin.search","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("48","admin.configuration.api","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("49","admin.customer.title","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `resource_i18n`; - -CREATE TABLE `resource_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `resource_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `resource` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `resource_i18n` VALUES("1","de_DE","Adresse","","",""); -INSERT INTO `resource_i18n` VALUES("1","en_US","Address","","",""); -INSERT INTO `resource_i18n` VALUES("1","es_ES","Dirección","","",""); -INSERT INTO `resource_i18n` VALUES("1","fr_FR","Adresse","","",""); -INSERT INTO `resource_i18n` VALUES("2","de_DE","Konfiguration / Administrator","","",""); -INSERT INTO `resource_i18n` VALUES("2","en_US","Configuration / Administrator","","",""); -INSERT INTO `resource_i18n` VALUES("2","es_ES","Configuración / administrador","","",""); -INSERT INTO `resource_i18n` VALUES("2","fr_FR","Configuration / Administrateur","","",""); -INSERT INTO `resource_i18n` VALUES("3","de_DE","Konfiguration / Zone","","",""); -INSERT INTO `resource_i18n` VALUES("3","en_US","Configuration / Area","","",""); -INSERT INTO `resource_i18n` VALUES("3","es_ES","Configuración / área","","",""); -INSERT INTO `resource_i18n` VALUES("3","fr_FR","Configuration / Zone","","",""); -INSERT INTO `resource_i18n` VALUES("4","de_DE","Konfiguration / Deklination","","",""); -INSERT INTO `resource_i18n` VALUES("4","en_US","Configuration / Attribute","","",""); -INSERT INTO `resource_i18n` VALUES("4","es_ES","Configuración / atributo","","",""); -INSERT INTO `resource_i18n` VALUES("4","fr_FR","Configuration / Attribut","","",""); -INSERT INTO `resource_i18n` VALUES("5","de_DE","Kategorie","","",""); -INSERT INTO `resource_i18n` VALUES("5","en_US","Category","","",""); -INSERT INTO `resource_i18n` VALUES("5","es_ES","Categoria","","",""); -INSERT INTO `resource_i18n` VALUES("5","fr_FR","Catégorie","","",""); -INSERT INTO `resource_i18n` VALUES("6","de_DE","Einstellungen","","",""); -INSERT INTO `resource_i18n` VALUES("6","en_US","Configuration","","",""); -INSERT INTO `resource_i18n` VALUES("6","es_ES","Configuración","","",""); -INSERT INTO `resource_i18n` VALUES("6","fr_FR","Configuration","","",""); -INSERT INTO `resource_i18n` VALUES("7","de_DE","Inhalt","","",""); -INSERT INTO `resource_i18n` VALUES("7","en_US","Content","","",""); -INSERT INTO `resource_i18n` VALUES("7","es_ES","Contenido","","",""); -INSERT INTO `resource_i18n` VALUES("7","fr_FR","Contenu","","",""); -INSERT INTO `resource_i18n` VALUES("8","de_DE","Konfiguration / Land","","",""); -INSERT INTO `resource_i18n` VALUES("8","en_US","Configuration / Country","","",""); -INSERT INTO `resource_i18n` VALUES("8","es_ES","Configuración / país","","",""); -INSERT INTO `resource_i18n` VALUES("8","fr_FR","Configuration / Pays","","",""); -INSERT INTO `resource_i18n` VALUES("9","de_DE","Gutschein","","",""); -INSERT INTO `resource_i18n` VALUES("9","en_US","Coupon","","",""); -INSERT INTO `resource_i18n` VALUES("9","es_ES","Cupón","","",""); -INSERT INTO `resource_i18n` VALUES("9","fr_FR","Code promo","","",""); -INSERT INTO `resource_i18n` VALUES("10","de_DE","Konfiguration / Währung","","",""); -INSERT INTO `resource_i18n` VALUES("10","en_US","Configuration / Currency","","",""); -INSERT INTO `resource_i18n` VALUES("10","es_ES","Configuración / Moneda","","",""); -INSERT INTO `resource_i18n` VALUES("10","fr_FR","Configuration / Devise","","",""); -INSERT INTO `resource_i18n` VALUES("11","de_DE","Kunde","","",""); -INSERT INTO `resource_i18n` VALUES("11","en_US","Customer","","",""); -INSERT INTO `resource_i18n` VALUES("11","es_ES","Cliente","","",""); -INSERT INTO `resource_i18n` VALUES("11","fr_FR","Client","","",""); -INSERT INTO `resource_i18n` VALUES("12","de_DE","Konfiguration / Charakteristik","","",""); -INSERT INTO `resource_i18n` VALUES("12","en_US","Configuration / Feature","","",""); -INSERT INTO `resource_i18n` VALUES("12","es_ES","Configuración / Característica","","",""); -INSERT INTO `resource_i18n` VALUES("12","fr_FR","Configuration / Caractéristique","","",""); -INSERT INTO `resource_i18n` VALUES("13","de_DE","Ordner","","",""); -INSERT INTO `resource_i18n` VALUES("13","en_US","Folder","","",""); -INSERT INTO `resource_i18n` VALUES("13","es_ES","Carpeta","","",""); -INSERT INTO `resource_i18n` VALUES("13","fr_FR","Dossier","","",""); -INSERT INTO `resource_i18n` VALUES("14","de_DE","Konfiguration / Sprache","","",""); -INSERT INTO `resource_i18n` VALUES("14","en_US","Configuration / Language","","",""); -INSERT INTO `resource_i18n` VALUES("14","es_ES","Configuración / Idioma","","",""); -INSERT INTO `resource_i18n` VALUES("14","fr_FR","Configuration / Langue","","",""); -INSERT INTO `resource_i18n` VALUES("15","de_DE","Konfiguration / Mailing-System","","",""); -INSERT INTO `resource_i18n` VALUES("15","en_US","Configuration / Mailing-system","","",""); -INSERT INTO `resource_i18n` VALUES("15","es_ES","Configuración / Sistema de correo","","",""); -INSERT INTO `resource_i18n` VALUES("15","fr_FR","Configuration / Système de mails","","",""); -INSERT INTO `resource_i18n` VALUES("16","de_DE","Konfiguration / Nachricht","","",""); -INSERT INTO `resource_i18n` VALUES("16","en_US","Configuration / Message","","",""); -INSERT INTO `resource_i18n` VALUES("16","es_ES","Configuración / Mensaje","","",""); -INSERT INTO `resource_i18n` VALUES("16","fr_FR","Configuration / Message","","",""); -INSERT INTO `resource_i18n` VALUES("17","de_DE","Konfiguration / Modul","","",""); -INSERT INTO `resource_i18n` VALUES("17","en_US","Configuration / Module","","",""); -INSERT INTO `resource_i18n` VALUES("17","es_ES","Configuración / Módulo","","",""); -INSERT INTO `resource_i18n` VALUES("17","fr_FR","Configuration / Module","","",""); -INSERT INTO `resource_i18n` VALUES("18","de_DE","Bestellung","","",""); -INSERT INTO `resource_i18n` VALUES("18","en_US","Order","","",""); -INSERT INTO `resource_i18n` VALUES("18","es_ES","Pedido","","",""); -INSERT INTO `resource_i18n` VALUES("18","fr_FR","Commande","","",""); -INSERT INTO `resource_i18n` VALUES("19","de_DE","Produkt","","",""); -INSERT INTO `resource_i18n` VALUES("19","en_US","Product","","",""); -INSERT INTO `resource_i18n` VALUES("19","es_ES","Producto","","",""); -INSERT INTO `resource_i18n` VALUES("19","fr_FR","Produit","","",""); -INSERT INTO `resource_i18n` VALUES("20","de_DE","Konfiguration / Profil","","",""); -INSERT INTO `resource_i18n` VALUES("20","en_US","Configuration / Profile","","",""); -INSERT INTO `resource_i18n` VALUES("20","es_ES","Configuración / Perfil","","",""); -INSERT INTO `resource_i18n` VALUES("20","fr_FR","Configuration / Profil","","",""); -INSERT INTO `resource_i18n` VALUES("21","de_DE","Konfiguration / Lieferzone","","",""); -INSERT INTO `resource_i18n` VALUES("21","en_US","Configuration / Shipping-zone","","",""); -INSERT INTO `resource_i18n` VALUES("21","es_ES","Configuración / Zona de envío","","",""); -INSERT INTO `resource_i18n` VALUES("21","fr_FR","Configuration / Zone de livraison","","",""); -INSERT INTO `resource_i18n` VALUES("22","de_DE","Konfiguration / Tax","","",""); -INSERT INTO `resource_i18n` VALUES("22","en_US","Configuration / Tax","","",""); -INSERT INTO `resource_i18n` VALUES("22","es_ES","Configuración / Impuestos","","",""); -INSERT INTO `resource_i18n` VALUES("22","fr_FR","Configuration / Taxe","","",""); -INSERT INTO `resource_i18n` VALUES("23","de_DE","Konfiguration / Template","","",""); -INSERT INTO `resource_i18n` VALUES("23","en_US","Configuration / Template","","",""); -INSERT INTO `resource_i18n` VALUES("23","es_ES","Configuración / Plantilla","","",""); -INSERT INTO `resource_i18n` VALUES("23","fr_FR","Configuration / Modèle","","",""); -INSERT INTO `resource_i18n` VALUES("24","de_DE","Konfiguration / Logs System","","",""); -INSERT INTO `resource_i18n` VALUES("24","en_US","Configuration / System Log","","",""); -INSERT INTO `resource_i18n` VALUES("24","es_ES","Configuración / Sistema de log","","",""); -INSERT INTO `resource_i18n` VALUES("24","fr_FR","Configuration / Logs système","","",""); -INSERT INTO `resource_i18n` VALUES("25","de_DE","Konfiguration / Cache","","",""); -INSERT INTO `resource_i18n` VALUES("25","en_US","Configuration / Cache","","",""); -INSERT INTO `resource_i18n` VALUES("25","es_ES","Configuración / caché","","",""); -INSERT INTO `resource_i18n` VALUES("25","fr_FR","Configuration / Cache","","",""); -INSERT INTO `resource_i18n` VALUES("26","de_DE","Back-Office Startseite","","",""); -INSERT INTO `resource_i18n` VALUES("26","en_US","Back-office home page","","",""); -INSERT INTO `resource_i18n` VALUES("26","es_ES","Página de inicio de back office","","",""); -INSERT INTO `resource_i18n` VALUES("26","fr_FR","Page d\'acceuil de l\'administration","","",""); -INSERT INTO `resource_i18n` VALUES("27","de_DE","Shop Informationen","","",""); -INSERT INTO `resource_i18n` VALUES("27","en_US","Store information configuration","","",""); -INSERT INTO `resource_i18n` VALUES("27","es_ES","Configuración de la información de tienda","","",""); -INSERT INTO `resource_i18n` VALUES("27","fr_FR","Configuration des informations sur la boutique","","",""); -INSERT INTO `resource_i18n` VALUES("28","de_DE","Konfigurations Variablen","","",""); -INSERT INTO `resource_i18n` VALUES("28","en_US","Configuration variables","","",""); -INSERT INTO `resource_i18n` VALUES("28","es_ES","Variables de configuración","","",""); -INSERT INTO `resource_i18n` VALUES("28","fr_FR","Variables de configuration","","",""); -INSERT INTO `resource_i18n` VALUES("29","de_DE","Administration Logs ansehen","","",""); -INSERT INTO `resource_i18n` VALUES("29","en_US","View administration logs","","",""); -INSERT INTO `resource_i18n` VALUES("29","es_ES","Ver logs de administración","","",""); -INSERT INTO `resource_i18n` VALUES("29","fr_FR","Consulter les logs d\'administration","","",""); -INSERT INTO `resource_i18n` VALUES("30","de_DE","Logs System Konfiguration","","",""); -INSERT INTO `resource_i18n` VALUES("30","en_US","Logging system configuration","","",""); -INSERT INTO `resource_i18n` VALUES("30","es_ES","Configuración de sistema de registro","","",""); -INSERT INTO `resource_i18n` VALUES("30","fr_FR","Configuration du système de log","","",""); -INSERT INTO `resource_i18n` VALUES("31","de_DE","Erweiterte Konfiguration","","",""); -INSERT INTO `resource_i18n` VALUES("31","en_US","Advanced configuration","","",""); -INSERT INTO `resource_i18n` VALUES("31","es_ES","Configuración avanzada","","",""); -INSERT INTO `resource_i18n` VALUES("31","fr_FR","Configuration avancée","","",""); -INSERT INTO `resource_i18n` VALUES("32","de_DE","Übersetzungen","","",""); -INSERT INTO `resource_i18n` VALUES("32","en_US","Translations","","",""); -INSERT INTO `resource_i18n` VALUES("32","es_ES","Traducciones","","",""); -INSERT INTO `resource_i18n` VALUES("32","fr_FR","Traductions","","",""); -INSERT INTO `resource_i18n` VALUES("33","de_DE","Exporten-Verwaltung","","",""); -INSERT INTO `resource_i18n` VALUES("33","en_US","Back-office export management","","",""); -INSERT INTO `resource_i18n` VALUES("33","es_ES","Gestor de exportación de Back Office","","",""); -INSERT INTO `resource_i18n` VALUES("33","fr_FR","gestion des exports","","",""); -INSERT INTO `resource_i18n` VALUES("34","de_DE","Tools","","",""); -INSERT INTO `resource_i18n` VALUES("34","en_US","Tools panel","","",""); -INSERT INTO `resource_i18n` VALUES("34","es_ES","Panel de herramientas","","",""); -INSERT INTO `resource_i18n` VALUES("34","fr_FR","Outils","","",""); -INSERT INTO `resource_i18n` VALUES("35","de_DE","Marken-Verwaltung","","",""); -INSERT INTO `resource_i18n` VALUES("35","en_US","Brands management","","",""); -INSERT INTO `resource_i18n` VALUES("35","es_ES","Gestión de marcas","","",""); -INSERT INTO `resource_i18n` VALUES("35","fr_FR","Gestion des marques","","",""); -INSERT INTO `resource_i18n` VALUES("36","de_DE","Andockpunkte","","",""); -INSERT INTO `resource_i18n` VALUES("36","en_US","Hooks","","",""); -INSERT INTO `resource_i18n` VALUES("36","es_ES","Hooks","","",""); -INSERT INTO `resource_i18n` VALUES("36","fr_FR","Points d\'accroche","","",""); -INSERT INTO `resource_i18n` VALUES("37","de_DE","Hook Positionen","","",""); -INSERT INTO `resource_i18n` VALUES("37","en_US","Hook positions","","",""); -INSERT INTO `resource_i18n` VALUES("37","es_ES","Posiciones de hook","","",""); -INSERT INTO `resource_i18n` VALUES("37","fr_FR","Positions des points d\'accroche","","",""); -INSERT INTO `resource_i18n` VALUES("38","de_DE","Sonderangebotsmanagement","","",""); -INSERT INTO `resource_i18n` VALUES("38","en_US","Sales management","","",""); -INSERT INTO `resource_i18n` VALUES("38","es_ES","Administración de ventas","","",""); -INSERT INTO `resource_i18n` VALUES("38","fr_FR","Gestion des promotions","","",""); -INSERT INTO `resource_i18n` VALUES("39","de_DE","Administratorenliste","","",""); -INSERT INTO `resource_i18n` VALUES("39","en_US","Administatros list","","",""); -INSERT INTO `resource_i18n` VALUES("39","es_ES","Lista de Administradores","","",""); -INSERT INTO `resource_i18n` VALUES("39","fr_FR","Liste des administrateurs","","",""); -INSERT INTO `resource_i18n` VALUES("40","de_DE","Kategorie-Konfiguration","","",""); -INSERT INTO `resource_i18n` VALUES("40","en_US","Category configuration","","",""); -INSERT INTO `resource_i18n` VALUES("40","es_ES","Configuración de la categoría","","",""); -INSERT INTO `resource_i18n` VALUES("40","fr_FR","Configuration d\'une catégorie","","",""); -INSERT INTO `resource_i18n` VALUES("41","de_DE","Lieferungskonfiguration","","",""); -INSERT INTO `resource_i18n` VALUES("41","en_US","Shipping configuration","","",""); -INSERT INTO `resource_i18n` VALUES("41","es_ES","Configuración de envío","","",""); -INSERT INTO `resource_i18n` VALUES("41","fr_FR","Configuration du transport","","",""); -INSERT INTO `resource_i18n` VALUES("42","de_DE","Taxeregelung-Konfiguration","","",""); -INSERT INTO `resource_i18n` VALUES("42","en_US","Tax rules configuration","","",""); -INSERT INTO `resource_i18n` VALUES("42","es_ES","Configuración de las reglas de impuestos","","",""); -INSERT INTO `resource_i18n` VALUES("42","fr_FR","Configuration des règles de taxes","","",""); -INSERT INTO `resource_i18n` VALUES("43","de_DE","Hooks Verwendung","","",""); -INSERT INTO `resource_i18n` VALUES("43","en_US","Hooks management","","",""); -INSERT INTO `resource_i18n` VALUES("43","es_ES","Gestión de Hooks","","",""); -INSERT INTO `resource_i18n` VALUES("43","fr_FR","Gestion des hooks","","",""); -INSERT INTO `resource_i18n` VALUES("44","de_DE","Importation / Exportation von Daten","","",""); -INSERT INTO `resource_i18n` VALUES("44","en_US","Data import / export","","",""); -INSERT INTO `resource_i18n` VALUES("44","es_ES","Importación/ exportación de datos","","",""); -INSERT INTO `resource_i18n` VALUES("44","fr_FR","Importation / exportation de données","","",""); -INSERT INTO `resource_i18n` VALUES("45","de_DE","Modul Verwendung","","",""); -INSERT INTO `resource_i18n` VALUES("45","en_US","Modules maagement","","",""); -INSERT INTO `resource_i18n` VALUES("45","es_ES","Administración de módulos","","",""); -INSERT INTO `resource_i18n` VALUES("45","fr_FR","Gestion des modules","","",""); -INSERT INTO `resource_i18n` VALUES("46","de_DE","Administration-Profilverwaltung","","",""); -INSERT INTO `resource_i18n` VALUES("46","en_US","Administration profiles management","","",""); -INSERT INTO `resource_i18n` VALUES("46","es_ES","Gestión de perfiles de administración","","",""); -INSERT INTO `resource_i18n` VALUES("46","fr_FR","Gestion des profils d\'administration","","",""); -INSERT INTO `resource_i18n` VALUES("47","de_DE","Back-Office Suchfunktion","","",""); -INSERT INTO `resource_i18n` VALUES("47","en_US","Back-office search function","","",""); -INSERT INTO `resource_i18n` VALUES("47","es_ES","Función de búsqueda de back office","","",""); -INSERT INTO `resource_i18n` VALUES("47","fr_FR","Fonction de recherche dans l\'administration","","",""); -INSERT INTO `resource_i18n` VALUES("48","de_DE","API-Konfiguration","","",""); -INSERT INTO `resource_i18n` VALUES("48","en_US","API Configuration","","",""); -INSERT INTO `resource_i18n` VALUES("48","es_ES","Configuración de API","","",""); -INSERT INTO `resource_i18n` VALUES("48","fr_FR","Configuration de l\'API","","",""); -INSERT INTO `resource_i18n` VALUES("49","de_DE","Kunde-Andere","","",""); -INSERT INTO `resource_i18n` VALUES("49","en_US","Customer title","","",""); -INSERT INTO `resource_i18n` VALUES("49","es_ES","Estado civil cliente","","",""); -INSERT INTO `resource_i18n` VALUES("49","fr_FR","civilité client","","",""); - - - -DROP TABLE `rewriting_argument`; - -CREATE TABLE `rewriting_argument` ( - `rewriting_url_id` int(11) NOT NULL, - `parameter` varchar(255) NOT NULL, - `value` varchar(255) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`rewriting_url_id`,`parameter`,`value`), - KEY `idx_rewriting_argument_rewirting_url_id` (`rewriting_url_id`), - CONSTRAINT `fk_rewriting_argument_rewirting_url_id` FOREIGN KEY (`rewriting_url_id`) REFERENCES `rewriting_url` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `rewriting_url`; - -CREATE TABLE `rewriting_url` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `url` varbinary(255) NOT NULL, - `view` varchar(255) DEFAULT NULL, - `view_id` varchar(255) DEFAULT NULL, - `view_locale` varchar(255) DEFAULT NULL, - `redirected` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `url_UNIQUE` (`url`), - KEY `idx_rewriting_url_redirected` (`redirected`), - KEY `idx_rewriting_url` (`view_locale`,`view`,`view_id`,`redirected`), - CONSTRAINT `fk_rewriting_url_redirected` FOREIGN KEY (`redirected`) REFERENCES `rewriting_url` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; - -INSERT INTO `rewriting_url` VALUES("1","confitures.html","category","1","fr_FR","","2017-02-28 18:48:43","2017-02-28 18:48:43"); -INSERT INTO `rewriting_url` VALUES("2","nos-salés.html","category","2","fr_FR","","2017-03-01 12:46:30","2017-03-01 12:46:30"); -INSERT INTO `rewriting_url` VALUES("3","nos-crèmes-et-gelées.html","category","3","fr_FR","","2017-03-01 12:46:47","2017-03-01 12:46:47"); -INSERT INTO `rewriting_url` VALUES("4","nos-coffrets.html","category","4","fr_FR","","2017-03-01 12:46:56","2017-03-01 12:46:56"); -INSERT INTO `rewriting_url` VALUES("5","nos-préparations-toutes-prêtes.html","category","5","fr_FR","6","2017-03-01 12:47:12","2017-03-01 16:00:13"); -INSERT INTO `rewriting_url` VALUES("6","nos-preparations.html","category","5","fr_FR","","2017-03-01 16:00:13","2017-03-01 16:00:13"); -INSERT INTO `rewriting_url` VALUES("7","fruits-exotiques.html","category","6","fr_FR","","2017-03-01 16:03:45","2017-03-01 16:03:45"); -INSERT INTO `rewriting_url` VALUES("8","fruits-rouges.html","category","7","fr_FR","","2017-03-01 16:07:52","2017-03-01 16:07:52"); -INSERT INTO `rewriting_url` VALUES("9","agrumes.html","category","8","fr_FR","","2017-03-01 16:08:15","2017-03-01 16:08:15"); -INSERT INTO `rewriting_url` VALUES("10","fruits-à-noyaux.html","category","9","fr_FR","","2017-03-01 16:08:27","2017-03-01 16:08:27"); -INSERT INTO `rewriting_url` VALUES("11","fruits-à-pépins.html","category","10","fr_FR","","2017-03-01 16:08:40","2017-03-01 16:08:40"); -INSERT INTO `rewriting_url` VALUES("12","test.html","obsolete-rewritten-url","11","fr_FR","","2017-05-10 20:24:28","2017-05-10 20:24:28"); -INSERT INTO `rewriting_url` VALUES("13","toto.html","obsolete-rewritten-url","1","fr_FR","","2017-05-10 20:26:26","2017-05-10 20:26:26"); -INSERT INTO `rewriting_url` VALUES("14","crème-de-citron.html","product","1","fr_FR","15","2017-05-11 19:42:45","2017-05-11 20:47:08"); -INSERT INTO `rewriting_url` VALUES("15","creme-de-citron.html","product","1","fr_FR","","2017-05-11 20:47:08","2017-05-11 20:47:08"); -INSERT INTO `rewriting_url` VALUES("16","test1.html","folder","1","fr_FR","","2017-05-11 23:48:10","2017-05-11 23:48:10"); -INSERT INTO `rewriting_url` VALUES("17","test-2.html","content","1","fr_FR","18","2017-05-11 23:49:17","2017-05-11 23:52:14"); -INSERT INTO `rewriting_url` VALUES("18","nos-pots.html","content","1","fr_FR","","2017-05-11 23:52:14","2017-05-11 23:52:14"); -INSERT INTO `rewriting_url` VALUES("19","légumes.html","category","11","fr_FR","21","2017-05-23 12:44:55","2017-05-23 13:22:01"); -INSERT INTO `rewriting_url` VALUES("20","blettes.html","product","2","fr_FR","","2017-05-23 12:46:29","2017-05-23 12:46:29"); -INSERT INTO `rewriting_url` VALUES("21","legumes.html","category","11","fr_FR","","2017-05-23 13:22:01","2017-05-23 13:22:01"); - - - -DROP TABLE `sale`; - -CREATE TABLE `sale` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `active` tinyint(1) NOT NULL DEFAULT '0', - `display_initial_price` tinyint(1) NOT NULL DEFAULT '1', - `start_date` datetime DEFAULT NULL, - `end_date` datetime DEFAULT NULL, - `price_offset_type` tinyint(4) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_sales_active_start_end_date` (`active`,`start_date`,`end_date`), - KEY `idx_sales_active` (`active`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `sale_i18n`; - -CREATE TABLE `sale_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - `sale_label` varchar(255) DEFAULT NULL, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `sale_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `sale` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `sale_offset_currency`; - -CREATE TABLE `sale_offset_currency` ( - `sale_id` int(11) NOT NULL, - `currency_id` int(11) NOT NULL, - `price_offset_value` float DEFAULT '0', - PRIMARY KEY (`sale_id`,`currency_id`), - KEY `fk_sale_offset_currency_currency1_idx` (`currency_id`), - CONSTRAINT `fk_sale_offset_currency_currency_id` FOREIGN KEY (`currency_id`) REFERENCES `currency` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_sale_offset_currency_sales_id` FOREIGN KEY (`sale_id`) REFERENCES `sale` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `sale_product`; - -CREATE TABLE `sale_product` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `sale_id` int(11) NOT NULL, - `product_id` int(11) NOT NULL, - `attribute_av_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `fk_sale_product_product_idx` (`product_id`), - KEY `fk_sale_product_attribute_av_idx` (`attribute_av_id`), - KEY `idx_sale_product_sales_id_product_id` (`sale_id`,`product_id`), - CONSTRAINT `fk_sale_product_attribute_av_id` FOREIGN KEY (`attribute_av_id`) REFERENCES `attribute_av` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_sale_product_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_sale_product_sales_id` FOREIGN KEY (`sale_id`) REFERENCES `sale` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `state`; - -CREATE TABLE `state` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `visible` tinyint(4) NOT NULL DEFAULT '0', - `isocode` varchar(4) DEFAULT NULL, - `country_id` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `fk_state_country_id_idx` (`country_id`), - CONSTRAINT `fk_state_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=313 DEFAULT CHARSET=utf8; - -INSERT INTO `state` VALUES("1","0","AL","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("2","0","AK","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("3","0","AZ","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("4","0","AR","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("5","0","CA","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("6","0","CO","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("7","0","CT","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("8","0","DE","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("9","0","FL","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("10","0","GA","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("11","0","HI","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("12","0","ID","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("13","0","IL","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("14","0","IN","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("15","0","IA","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("16","0","KS","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("17","0","KY","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("18","0","LA","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("19","0","ME","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("20","0","MD","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("21","0","MA","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("22","0","MI","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("23","0","MN","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("24","0","MS","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("25","0","MO","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("26","0","MT","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("27","0","NE","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("28","0","NV","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("29","0","NH","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("30","0","NJ","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("31","0","NM","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("32","0","NY","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("33","0","NC","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("34","0","ND","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("35","0","OH","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("36","0","OK","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("37","0","OR","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("38","0","PA","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("39","0","RI","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("40","0","SC","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("41","0","SD","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("42","0","TN","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("43","0","TX","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("44","0","UT","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("45","0","VT","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("46","0","VA","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("47","0","WA","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("48","0","WV","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("49","0","WI","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("50","0","WY","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("51","0","PR","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("52","0","VI","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("53","0","DC","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("54","0","AGS","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("55","0","BCN","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("56","0","BCS","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("57","0","CAM","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("58","0","CHP","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("59","0","CHH","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("60","0","COA","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("61","0","COL","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("62","0","DIF","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("63","0","DUR","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("64","0","GUA","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("65","0","GRO","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("66","0","HID","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("67","0","JAL","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("68","0","MEX","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("69","0","MIC","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("70","0","MOR","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("71","0","NAY","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("72","0","NLE","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("73","0","OAX","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("74","0","PUE","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("75","0","QUE","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("76","0","ROO","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("77","0","SLP","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("78","0","SIN","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("79","0","SON","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("80","0","TAB","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("81","0","TAM","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("82","0","TLA","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("83","0","VER","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("84","0","YUC","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("85","0","ZAC","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("86","0","ON","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("87","0","QC","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("88","0","BC","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("89","0","AB","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("90","0","MB","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("91","0","SK","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("92","0","NS","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("93","0","NB","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("94","0","NL","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("95","0","PE","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("96","0","NT","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("97","0","YT","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("98","0","NU","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("99","0","B","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("100","0","K","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("101","0","H","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("102","0","U","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("103","0","C","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("104","0","X","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("105","0","W","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("106","0","E","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("107","0","P","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("108","0","Y","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("109","0","L","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("110","0","F","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("111","0","M","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("112","0","N","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("113","0","Q","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("114","0","R","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("115","0","A","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("116","0","J","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("117","0","D","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("118","0","Z","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("119","0","S","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("120","0","G","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("121","0","V","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("122","0","T","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("123","0","AG","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("124","0","AL","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("125","0","AN","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("126","0","AO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("127","0","AR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("128","0","AP","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("129","0","AT","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("130","0","AV","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("131","0","BA","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("132","0","BT","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("133","0","BL","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("134","0","BN","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("135","0","BG","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("136","0","BI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("137","0","BO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("138","0","BZ","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("139","0","BS","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("140","0","BR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("141","0","CA","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("142","0","CL","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("143","0","CB","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("144","0","CI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("145","0","CE","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("146","0","CT","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("147","0","CZ","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("148","0","CH","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("149","0","CO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("150","0","CS","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("151","0","CR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("152","0","KR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("153","0","CN","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("154","0","EN","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("155","0","FM","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("156","0","FE","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("157","0","FI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("158","0","FG","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("159","0","FC","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("160","0","FR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("161","0","GE","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("162","0","GO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("163","0","GR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("164","0","IM","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("165","0","IS","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("166","0","AQ","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("167","0","SP","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("168","0","LT","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("169","0","LE","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("170","0","LC","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("171","0","LI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("172","0","LO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("173","0","LU","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("174","0","MC","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("175","0","MN","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("176","0","MS","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("177","0","MT","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("178","0","VS","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("179","0","ME","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("180","0","MI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("181","0","MO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("182","0","MB","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("183","0","NA","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("184","0","NO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("185","0","NU","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("186","0","OG","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("187","0","OT","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("188","0","OR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("189","0","PD","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("190","0","PA","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("191","0","PR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("192","0","PV","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("193","0","PG","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("194","0","PU","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("195","0","PE","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("196","0","PC","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("197","0","PI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("198","0","PT","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("199","0","PN","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("200","0","PZ","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("201","0","PO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("202","0","RG","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("203","0","RA","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("204","0","RC","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("205","0","RE","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("206","0","RI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("207","0","RN","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("208","0","RM","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("209","0","RO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("210","0","SA","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("211","0","SS","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("212","0","SV","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("213","0","SI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("214","0","SR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("215","0","SO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("216","0","TA","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("217","0","TE","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("218","0","TR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("219","0","TO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("220","0","TP","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("221","0","TN","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("222","0","TV","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("223","0","TS","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("224","0","UD","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("225","0","VA","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("226","0","VE","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("227","0","VB","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("228","0","VC","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("229","0","VR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("230","0","VV","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("231","0","VI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("232","0","VT","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("233","0","AC","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("234","0","BA","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("235","0","BB","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("236","0","BT","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("237","0","BE","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("238","0","JT","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("239","0","KT","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("240","0","ST","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("241","0","JI","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("242","0","KI","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("243","0","NT","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("244","0","GO","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("245","0","JK","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("246","0","JA","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("247","0","LA","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("248","0","MA","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("249","0","MU","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("250","0","SA","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("251","0","SU","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("252","0","PA","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("253","0","RI","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("254","0","KR","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("255","0","SG","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("256","0","KS","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("257","0","SN","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("258","0","SS","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("259","0","JB","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("260","0","KB","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("261","0","NB","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("262","0","PB","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("263","0","SR","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("264","0","SB","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("265","0","YO","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("266","0","23","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("267","0","05","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("268","0","02","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("269","0","12","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("270","0","38","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("271","0","18","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("272","0","40","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("273","0","07","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("274","0","21","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("275","0","10","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("276","0","34","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("277","0","01","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("278","0","28","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("279","0","08","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("280","0","17","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("281","0","03","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("282","0","37","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("283","0","46","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("284","0","14","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("285","0","39","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("286","0","43","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("287","0","26","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("288","0","24","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("289","0","04","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("290","0","45","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("291","0","20","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("292","0","42","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("293","0","29","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("294","0","15","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("295","0","44","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("296","0","33","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("297","0","47","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("298","0","27","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("299","0","41","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("300","0","11","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("301","0","25","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("302","0","32","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("303","0","22","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("304","0","09","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("305","0","36","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("306","0","13","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("307","0","31","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("308","0","16","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("309","0","30","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("310","0","06","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("311","0","35","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("312","0","19","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `state_i18n`; - -CREATE TABLE `state_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `state_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `state` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `state_i18n` VALUES("1","de_DE",""); -INSERT INTO `state_i18n` VALUES("1","en_US","Alabama"); -INSERT INTO `state_i18n` VALUES("1","es_ES",""); -INSERT INTO `state_i18n` VALUES("1","fr_FR","Alabama"); -INSERT INTO `state_i18n` VALUES("2","de_DE",""); -INSERT INTO `state_i18n` VALUES("2","en_US","Alaska"); -INSERT INTO `state_i18n` VALUES("2","es_ES",""); -INSERT INTO `state_i18n` VALUES("2","fr_FR","Alaska"); -INSERT INTO `state_i18n` VALUES("3","de_DE",""); -INSERT INTO `state_i18n` VALUES("3","en_US","Arizona"); -INSERT INTO `state_i18n` VALUES("3","es_ES",""); -INSERT INTO `state_i18n` VALUES("3","fr_FR","Arizona"); -INSERT INTO `state_i18n` VALUES("4","de_DE",""); -INSERT INTO `state_i18n` VALUES("4","en_US","Arkansas"); -INSERT INTO `state_i18n` VALUES("4","es_ES",""); -INSERT INTO `state_i18n` VALUES("4","fr_FR","Arkansas"); -INSERT INTO `state_i18n` VALUES("5","de_DE",""); -INSERT INTO `state_i18n` VALUES("5","en_US","California"); -INSERT INTO `state_i18n` VALUES("5","es_ES",""); -INSERT INTO `state_i18n` VALUES("5","fr_FR","Californie"); -INSERT INTO `state_i18n` VALUES("6","de_DE",""); -INSERT INTO `state_i18n` VALUES("6","en_US","Colorado"); -INSERT INTO `state_i18n` VALUES("6","es_ES",""); -INSERT INTO `state_i18n` VALUES("6","fr_FR","Colorado"); -INSERT INTO `state_i18n` VALUES("7","de_DE",""); -INSERT INTO `state_i18n` VALUES("7","en_US","Connecticut"); -INSERT INTO `state_i18n` VALUES("7","es_ES",""); -INSERT INTO `state_i18n` VALUES("7","fr_FR","Connecticut"); -INSERT INTO `state_i18n` VALUES("8","de_DE",""); -INSERT INTO `state_i18n` VALUES("8","en_US","Delaware"); -INSERT INTO `state_i18n` VALUES("8","es_ES",""); -INSERT INTO `state_i18n` VALUES("8","fr_FR","Delaware"); -INSERT INTO `state_i18n` VALUES("9","de_DE",""); -INSERT INTO `state_i18n` VALUES("9","en_US","Florida"); -INSERT INTO `state_i18n` VALUES("9","es_ES",""); -INSERT INTO `state_i18n` VALUES("9","fr_FR","Floride"); -INSERT INTO `state_i18n` VALUES("10","de_DE","Georgien"); -INSERT INTO `state_i18n` VALUES("10","en_US","Georgia"); -INSERT INTO `state_i18n` VALUES("10","es_ES","Georgia"); -INSERT INTO `state_i18n` VALUES("10","fr_FR","Géorgie"); -INSERT INTO `state_i18n` VALUES("11","de_DE",""); -INSERT INTO `state_i18n` VALUES("11","en_US","Hawaii"); -INSERT INTO `state_i18n` VALUES("11","es_ES",""); -INSERT INTO `state_i18n` VALUES("11","fr_FR","Hawaii"); -INSERT INTO `state_i18n` VALUES("12","de_DE",""); -INSERT INTO `state_i18n` VALUES("12","en_US","Idaho"); -INSERT INTO `state_i18n` VALUES("12","es_ES",""); -INSERT INTO `state_i18n` VALUES("12","fr_FR","Idaho"); -INSERT INTO `state_i18n` VALUES("13","de_DE",""); -INSERT INTO `state_i18n` VALUES("13","en_US","Illinois"); -INSERT INTO `state_i18n` VALUES("13","es_ES",""); -INSERT INTO `state_i18n` VALUES("13","fr_FR","Illinois"); -INSERT INTO `state_i18n` VALUES("14","de_DE",""); -INSERT INTO `state_i18n` VALUES("14","en_US","Indiana"); -INSERT INTO `state_i18n` VALUES("14","es_ES",""); -INSERT INTO `state_i18n` VALUES("14","fr_FR","Indiana"); -INSERT INTO `state_i18n` VALUES("15","de_DE",""); -INSERT INTO `state_i18n` VALUES("15","en_US","Iowa"); -INSERT INTO `state_i18n` VALUES("15","es_ES",""); -INSERT INTO `state_i18n` VALUES("15","fr_FR","Iowa"); -INSERT INTO `state_i18n` VALUES("16","de_DE",""); -INSERT INTO `state_i18n` VALUES("16","en_US","Kansas"); -INSERT INTO `state_i18n` VALUES("16","es_ES",""); -INSERT INTO `state_i18n` VALUES("16","fr_FR","Kansas"); -INSERT INTO `state_i18n` VALUES("17","de_DE",""); -INSERT INTO `state_i18n` VALUES("17","en_US","Kentucky"); -INSERT INTO `state_i18n` VALUES("17","es_ES",""); -INSERT INTO `state_i18n` VALUES("17","fr_FR","Kentucky"); -INSERT INTO `state_i18n` VALUES("18","de_DE",""); -INSERT INTO `state_i18n` VALUES("18","en_US","Louisiana"); -INSERT INTO `state_i18n` VALUES("18","es_ES",""); -INSERT INTO `state_i18n` VALUES("18","fr_FR","Louisiane"); -INSERT INTO `state_i18n` VALUES("19","de_DE",""); -INSERT INTO `state_i18n` VALUES("19","en_US","Maine"); -INSERT INTO `state_i18n` VALUES("19","es_ES",""); -INSERT INTO `state_i18n` VALUES("19","fr_FR","Maine"); -INSERT INTO `state_i18n` VALUES("20","de_DE",""); -INSERT INTO `state_i18n` VALUES("20","en_US","Maryland"); -INSERT INTO `state_i18n` VALUES("20","es_ES",""); -INSERT INTO `state_i18n` VALUES("20","fr_FR","Maryland"); -INSERT INTO `state_i18n` VALUES("21","de_DE",""); -INSERT INTO `state_i18n` VALUES("21","en_US","Massachusetts"); -INSERT INTO `state_i18n` VALUES("21","es_ES",""); -INSERT INTO `state_i18n` VALUES("21","fr_FR","Massachusetts"); -INSERT INTO `state_i18n` VALUES("22","de_DE",""); -INSERT INTO `state_i18n` VALUES("22","en_US","Michigan"); -INSERT INTO `state_i18n` VALUES("22","es_ES",""); -INSERT INTO `state_i18n` VALUES("22","fr_FR","Michigan"); -INSERT INTO `state_i18n` VALUES("23","de_DE",""); -INSERT INTO `state_i18n` VALUES("23","en_US","Minnesota"); -INSERT INTO `state_i18n` VALUES("23","es_ES",""); -INSERT INTO `state_i18n` VALUES("23","fr_FR","Minnesota"); -INSERT INTO `state_i18n` VALUES("24","de_DE",""); -INSERT INTO `state_i18n` VALUES("24","en_US","Mississippi"); -INSERT INTO `state_i18n` VALUES("24","es_ES",""); -INSERT INTO `state_i18n` VALUES("24","fr_FR","Mississippi"); -INSERT INTO `state_i18n` VALUES("25","de_DE",""); -INSERT INTO `state_i18n` VALUES("25","en_US","Missouri"); -INSERT INTO `state_i18n` VALUES("25","es_ES",""); -INSERT INTO `state_i18n` VALUES("25","fr_FR","Missouri"); -INSERT INTO `state_i18n` VALUES("26","de_DE",""); -INSERT INTO `state_i18n` VALUES("26","en_US","Montana"); -INSERT INTO `state_i18n` VALUES("26","es_ES",""); -INSERT INTO `state_i18n` VALUES("26","fr_FR","Montana"); -INSERT INTO `state_i18n` VALUES("27","de_DE",""); -INSERT INTO `state_i18n` VALUES("27","en_US","Nebraska"); -INSERT INTO `state_i18n` VALUES("27","es_ES",""); -INSERT INTO `state_i18n` VALUES("27","fr_FR","Nebraska"); -INSERT INTO `state_i18n` VALUES("28","de_DE",""); -INSERT INTO `state_i18n` VALUES("28","en_US","Nevada"); -INSERT INTO `state_i18n` VALUES("28","es_ES",""); -INSERT INTO `state_i18n` VALUES("28","fr_FR","Nevada"); -INSERT INTO `state_i18n` VALUES("29","de_DE",""); -INSERT INTO `state_i18n` VALUES("29","en_US","New Hampshire"); -INSERT INTO `state_i18n` VALUES("29","es_ES",""); -INSERT INTO `state_i18n` VALUES("29","fr_FR","New Hampshire"); -INSERT INTO `state_i18n` VALUES("30","de_DE",""); -INSERT INTO `state_i18n` VALUES("30","en_US","New Jersey"); -INSERT INTO `state_i18n` VALUES("30","es_ES",""); -INSERT INTO `state_i18n` VALUES("30","fr_FR","New Jersey"); -INSERT INTO `state_i18n` VALUES("31","de_DE",""); -INSERT INTO `state_i18n` VALUES("31","en_US","New Mexico"); -INSERT INTO `state_i18n` VALUES("31","es_ES",""); -INSERT INTO `state_i18n` VALUES("31","fr_FR","Nouveau-Mexique"); -INSERT INTO `state_i18n` VALUES("32","de_DE","New York"); -INSERT INTO `state_i18n` VALUES("32","en_US","New York"); -INSERT INTO `state_i18n` VALUES("32","es_ES","Nueva York"); -INSERT INTO `state_i18n` VALUES("32","fr_FR","New York"); -INSERT INTO `state_i18n` VALUES("33","de_DE",""); -INSERT INTO `state_i18n` VALUES("33","en_US","North Carolina"); -INSERT INTO `state_i18n` VALUES("33","es_ES",""); -INSERT INTO `state_i18n` VALUES("33","fr_FR","Caroline du Nord"); -INSERT INTO `state_i18n` VALUES("34","de_DE",""); -INSERT INTO `state_i18n` VALUES("34","en_US","North Dakota"); -INSERT INTO `state_i18n` VALUES("34","es_ES",""); -INSERT INTO `state_i18n` VALUES("34","fr_FR","Dakota du Nord"); -INSERT INTO `state_i18n` VALUES("35","de_DE",""); -INSERT INTO `state_i18n` VALUES("35","en_US","Ohio"); -INSERT INTO `state_i18n` VALUES("35","es_ES",""); -INSERT INTO `state_i18n` VALUES("35","fr_FR","Ohio"); -INSERT INTO `state_i18n` VALUES("36","de_DE",""); -INSERT INTO `state_i18n` VALUES("36","en_US","Oklahoma"); -INSERT INTO `state_i18n` VALUES("36","es_ES",""); -INSERT INTO `state_i18n` VALUES("36","fr_FR","Oklahoma"); -INSERT INTO `state_i18n` VALUES("37","de_DE",""); -INSERT INTO `state_i18n` VALUES("37","en_US","Oregon"); -INSERT INTO `state_i18n` VALUES("37","es_ES",""); -INSERT INTO `state_i18n` VALUES("37","fr_FR","Oregon"); -INSERT INTO `state_i18n` VALUES("38","de_DE",""); -INSERT INTO `state_i18n` VALUES("38","en_US","Pennsylvania"); -INSERT INTO `state_i18n` VALUES("38","es_ES",""); -INSERT INTO `state_i18n` VALUES("38","fr_FR","Pennsylvanie"); -INSERT INTO `state_i18n` VALUES("39","de_DE",""); -INSERT INTO `state_i18n` VALUES("39","en_US","Rhode Island"); -INSERT INTO `state_i18n` VALUES("39","es_ES",""); -INSERT INTO `state_i18n` VALUES("39","fr_FR","Rhode Island"); -INSERT INTO `state_i18n` VALUES("40","de_DE",""); -INSERT INTO `state_i18n` VALUES("40","en_US","South Carolina"); -INSERT INTO `state_i18n` VALUES("40","es_ES",""); -INSERT INTO `state_i18n` VALUES("40","fr_FR","Caroline du Sud"); -INSERT INTO `state_i18n` VALUES("41","de_DE",""); -INSERT INTO `state_i18n` VALUES("41","en_US","South Dakota"); -INSERT INTO `state_i18n` VALUES("41","es_ES",""); -INSERT INTO `state_i18n` VALUES("41","fr_FR","Dakota du Sud"); -INSERT INTO `state_i18n` VALUES("42","de_DE",""); -INSERT INTO `state_i18n` VALUES("42","en_US","Tennessee"); -INSERT INTO `state_i18n` VALUES("42","es_ES",""); -INSERT INTO `state_i18n` VALUES("42","fr_FR","Tennessee"); -INSERT INTO `state_i18n` VALUES("43","de_DE",""); -INSERT INTO `state_i18n` VALUES("43","en_US","Texas"); -INSERT INTO `state_i18n` VALUES("43","es_ES",""); -INSERT INTO `state_i18n` VALUES("43","fr_FR","Texas"); -INSERT INTO `state_i18n` VALUES("44","de_DE",""); -INSERT INTO `state_i18n` VALUES("44","en_US","Utah"); -INSERT INTO `state_i18n` VALUES("44","es_ES",""); -INSERT INTO `state_i18n` VALUES("44","fr_FR","Utah"); -INSERT INTO `state_i18n` VALUES("45","de_DE",""); -INSERT INTO `state_i18n` VALUES("45","en_US","Vermont"); -INSERT INTO `state_i18n` VALUES("45","es_ES",""); -INSERT INTO `state_i18n` VALUES("45","fr_FR","Vermont"); -INSERT INTO `state_i18n` VALUES("46","de_DE",""); -INSERT INTO `state_i18n` VALUES("46","en_US","Virginia"); -INSERT INTO `state_i18n` VALUES("46","es_ES",""); -INSERT INTO `state_i18n` VALUES("46","fr_FR","Virginie"); -INSERT INTO `state_i18n` VALUES("47","de_DE",""); -INSERT INTO `state_i18n` VALUES("47","en_US","Washington"); -INSERT INTO `state_i18n` VALUES("47","es_ES",""); -INSERT INTO `state_i18n` VALUES("47","fr_FR","Washington"); -INSERT INTO `state_i18n` VALUES("48","de_DE",""); -INSERT INTO `state_i18n` VALUES("48","en_US","West Virginia"); -INSERT INTO `state_i18n` VALUES("48","es_ES",""); -INSERT INTO `state_i18n` VALUES("48","fr_FR","Virginie-occidentale"); -INSERT INTO `state_i18n` VALUES("49","de_DE",""); -INSERT INTO `state_i18n` VALUES("49","en_US","Wisconsin"); -INSERT INTO `state_i18n` VALUES("49","es_ES",""); -INSERT INTO `state_i18n` VALUES("49","fr_FR","Wisconsin"); -INSERT INTO `state_i18n` VALUES("50","de_DE",""); -INSERT INTO `state_i18n` VALUES("50","en_US","Wyoming"); -INSERT INTO `state_i18n` VALUES("50","es_ES",""); -INSERT INTO `state_i18n` VALUES("50","fr_FR","Wyoming"); -INSERT INTO `state_i18n` VALUES("51","de_DE",""); -INSERT INTO `state_i18n` VALUES("51","en_US","Puerto Rico"); -INSERT INTO `state_i18n` VALUES("51","es_ES",""); -INSERT INTO `state_i18n` VALUES("51","fr_FR","Porto Rico"); -INSERT INTO `state_i18n` VALUES("52","de_DE",""); -INSERT INTO `state_i18n` VALUES("52","en_US","US Virgin Islands"); -INSERT INTO `state_i18n` VALUES("52","es_ES",""); -INSERT INTO `state_i18n` VALUES("52","fr_FR","Îles Vierges américaines"); -INSERT INTO `state_i18n` VALUES("53","de_DE",""); -INSERT INTO `state_i18n` VALUES("53","en_US","District of Columbia"); -INSERT INTO `state_i18n` VALUES("53","es_ES",""); -INSERT INTO `state_i18n` VALUES("53","fr_FR","District de Columbia"); -INSERT INTO `state_i18n` VALUES("54","de_DE",""); -INSERT INTO `state_i18n` VALUES("54","en_US","Aguascalientes"); -INSERT INTO `state_i18n` VALUES("54","es_ES",""); -INSERT INTO `state_i18n` VALUES("54","fr_FR","Aguascalientes"); -INSERT INTO `state_i18n` VALUES("55","de_DE",""); -INSERT INTO `state_i18n` VALUES("55","en_US","Baja California"); -INSERT INTO `state_i18n` VALUES("55","es_ES",""); -INSERT INTO `state_i18n` VALUES("55","fr_FR","Baja California"); -INSERT INTO `state_i18n` VALUES("56","de_DE",""); -INSERT INTO `state_i18n` VALUES("56","en_US","Baja California Sur"); -INSERT INTO `state_i18n` VALUES("56","es_ES",""); -INSERT INTO `state_i18n` VALUES("56","fr_FR","Baja California Sur"); -INSERT INTO `state_i18n` VALUES("57","de_DE",""); -INSERT INTO `state_i18n` VALUES("57","en_US","Campeche"); -INSERT INTO `state_i18n` VALUES("57","es_ES",""); -INSERT INTO `state_i18n` VALUES("57","fr_FR","Campeche"); -INSERT INTO `state_i18n` VALUES("58","de_DE",""); -INSERT INTO `state_i18n` VALUES("58","en_US","Chiapas"); -INSERT INTO `state_i18n` VALUES("58","es_ES",""); -INSERT INTO `state_i18n` VALUES("58","fr_FR","Chiapas"); -INSERT INTO `state_i18n` VALUES("59","de_DE",""); -INSERT INTO `state_i18n` VALUES("59","en_US","Chihuahua"); -INSERT INTO `state_i18n` VALUES("59","es_ES",""); -INSERT INTO `state_i18n` VALUES("59","fr_FR","Chihuahua"); -INSERT INTO `state_i18n` VALUES("60","de_DE",""); -INSERT INTO `state_i18n` VALUES("60","en_US","Coahuila"); -INSERT INTO `state_i18n` VALUES("60","es_ES",""); -INSERT INTO `state_i18n` VALUES("60","fr_FR","Coahuila"); -INSERT INTO `state_i18n` VALUES("61","de_DE",""); -INSERT INTO `state_i18n` VALUES("61","en_US","Colima"); -INSERT INTO `state_i18n` VALUES("61","es_ES",""); -INSERT INTO `state_i18n` VALUES("61","fr_FR","Colima"); -INSERT INTO `state_i18n` VALUES("62","de_DE",""); -INSERT INTO `state_i18n` VALUES("62","en_US","Distrito Federal"); -INSERT INTO `state_i18n` VALUES("62","es_ES","Ciudad de México"); -INSERT INTO `state_i18n` VALUES("62","fr_FR","Distrito Federal"); -INSERT INTO `state_i18n` VALUES("63","de_DE",""); -INSERT INTO `state_i18n` VALUES("63","en_US","Durango"); -INSERT INTO `state_i18n` VALUES("63","es_ES",""); -INSERT INTO `state_i18n` VALUES("63","fr_FR","Durango"); -INSERT INTO `state_i18n` VALUES("64","de_DE",""); -INSERT INTO `state_i18n` VALUES("64","en_US","Guanajuato"); -INSERT INTO `state_i18n` VALUES("64","es_ES",""); -INSERT INTO `state_i18n` VALUES("64","fr_FR","Guanajuato"); -INSERT INTO `state_i18n` VALUES("65","de_DE",""); -INSERT INTO `state_i18n` VALUES("65","en_US","Guerrero"); -INSERT INTO `state_i18n` VALUES("65","es_ES",""); -INSERT INTO `state_i18n` VALUES("65","fr_FR","Guerrero"); -INSERT INTO `state_i18n` VALUES("66","de_DE",""); -INSERT INTO `state_i18n` VALUES("66","en_US","Hidalgo"); -INSERT INTO `state_i18n` VALUES("66","es_ES",""); -INSERT INTO `state_i18n` VALUES("66","fr_FR","Hidalgo"); -INSERT INTO `state_i18n` VALUES("67","de_DE",""); -INSERT INTO `state_i18n` VALUES("67","en_US","Jalisco"); -INSERT INTO `state_i18n` VALUES("67","es_ES",""); -INSERT INTO `state_i18n` VALUES("67","fr_FR","Jalisco"); -INSERT INTO `state_i18n` VALUES("68","de_DE",""); -INSERT INTO `state_i18n` VALUES("68","en_US","Estado de México"); -INSERT INTO `state_i18n` VALUES("68","es_ES",""); -INSERT INTO `state_i18n` VALUES("68","fr_FR","Estado de México"); -INSERT INTO `state_i18n` VALUES("69","de_DE",""); -INSERT INTO `state_i18n` VALUES("69","en_US","Michoacán"); -INSERT INTO `state_i18n` VALUES("69","es_ES",""); -INSERT INTO `state_i18n` VALUES("69","fr_FR","Michoacán"); -INSERT INTO `state_i18n` VALUES("70","de_DE",""); -INSERT INTO `state_i18n` VALUES("70","en_US","Morelos"); -INSERT INTO `state_i18n` VALUES("70","es_ES",""); -INSERT INTO `state_i18n` VALUES("70","fr_FR","Morelos"); -INSERT INTO `state_i18n` VALUES("71","de_DE",""); -INSERT INTO `state_i18n` VALUES("71","en_US","Nayarit"); -INSERT INTO `state_i18n` VALUES("71","es_ES",""); -INSERT INTO `state_i18n` VALUES("71","fr_FR","Nayarit"); -INSERT INTO `state_i18n` VALUES("72","de_DE",""); -INSERT INTO `state_i18n` VALUES("72","en_US","Nuevo León"); -INSERT INTO `state_i18n` VALUES("72","es_ES",""); -INSERT INTO `state_i18n` VALUES("72","fr_FR","Nuevo León"); -INSERT INTO `state_i18n` VALUES("73","de_DE",""); -INSERT INTO `state_i18n` VALUES("73","en_US","Oaxaca"); -INSERT INTO `state_i18n` VALUES("73","es_ES",""); -INSERT INTO `state_i18n` VALUES("73","fr_FR","Oaxaca"); -INSERT INTO `state_i18n` VALUES("74","de_DE",""); -INSERT INTO `state_i18n` VALUES("74","en_US","Puebla"); -INSERT INTO `state_i18n` VALUES("74","es_ES",""); -INSERT INTO `state_i18n` VALUES("74","fr_FR","Puebla"); -INSERT INTO `state_i18n` VALUES("75","de_DE",""); -INSERT INTO `state_i18n` VALUES("75","en_US","Querétaro"); -INSERT INTO `state_i18n` VALUES("75","es_ES",""); -INSERT INTO `state_i18n` VALUES("75","fr_FR","Querétaro"); -INSERT INTO `state_i18n` VALUES("76","de_DE",""); -INSERT INTO `state_i18n` VALUES("76","en_US","Quintana Roo"); -INSERT INTO `state_i18n` VALUES("76","es_ES",""); -INSERT INTO `state_i18n` VALUES("76","fr_FR","Quintana Roo"); -INSERT INTO `state_i18n` VALUES("77","de_DE",""); -INSERT INTO `state_i18n` VALUES("77","en_US","San Luis Potosí"); -INSERT INTO `state_i18n` VALUES("77","es_ES",""); -INSERT INTO `state_i18n` VALUES("77","fr_FR","San Luis Potosí"); -INSERT INTO `state_i18n` VALUES("78","de_DE",""); -INSERT INTO `state_i18n` VALUES("78","en_US","Sinaloa"); -INSERT INTO `state_i18n` VALUES("78","es_ES",""); -INSERT INTO `state_i18n` VALUES("78","fr_FR","Sinaloa"); -INSERT INTO `state_i18n` VALUES("79","de_DE",""); -INSERT INTO `state_i18n` VALUES("79","en_US","Sonora"); -INSERT INTO `state_i18n` VALUES("79","es_ES",""); -INSERT INTO `state_i18n` VALUES("79","fr_FR","Sonora"); -INSERT INTO `state_i18n` VALUES("80","de_DE",""); -INSERT INTO `state_i18n` VALUES("80","en_US","Tabasco"); -INSERT INTO `state_i18n` VALUES("80","es_ES",""); -INSERT INTO `state_i18n` VALUES("80","fr_FR","Tabasco"); -INSERT INTO `state_i18n` VALUES("81","de_DE",""); -INSERT INTO `state_i18n` VALUES("81","en_US","Tamaulipas"); -INSERT INTO `state_i18n` VALUES("81","es_ES",""); -INSERT INTO `state_i18n` VALUES("81","fr_FR","Tamaulipas"); -INSERT INTO `state_i18n` VALUES("82","de_DE",""); -INSERT INTO `state_i18n` VALUES("82","en_US","Tlaxcala"); -INSERT INTO `state_i18n` VALUES("82","es_ES",""); -INSERT INTO `state_i18n` VALUES("82","fr_FR","Tlaxcala"); -INSERT INTO `state_i18n` VALUES("83","de_DE",""); -INSERT INTO `state_i18n` VALUES("83","en_US","Veracruz"); -INSERT INTO `state_i18n` VALUES("83","es_ES",""); -INSERT INTO `state_i18n` VALUES("83","fr_FR","Veracruz"); -INSERT INTO `state_i18n` VALUES("84","de_DE",""); -INSERT INTO `state_i18n` VALUES("84","en_US","Yucatán"); -INSERT INTO `state_i18n` VALUES("84","es_ES",""); -INSERT INTO `state_i18n` VALUES("84","fr_FR","Yucatán"); -INSERT INTO `state_i18n` VALUES("85","de_DE",""); -INSERT INTO `state_i18n` VALUES("85","en_US","Zacatecas"); -INSERT INTO `state_i18n` VALUES("85","es_ES",""); -INSERT INTO `state_i18n` VALUES("85","fr_FR","Zacatecas"); -INSERT INTO `state_i18n` VALUES("86","de_DE",""); -INSERT INTO `state_i18n` VALUES("86","en_US","Ontario"); -INSERT INTO `state_i18n` VALUES("86","es_ES",""); -INSERT INTO `state_i18n` VALUES("86","fr_FR","Ontario"); -INSERT INTO `state_i18n` VALUES("87","de_DE",""); -INSERT INTO `state_i18n` VALUES("87","en_US","Quebec"); -INSERT INTO `state_i18n` VALUES("87","es_ES",""); -INSERT INTO `state_i18n` VALUES("87","fr_FR","Québec"); -INSERT INTO `state_i18n` VALUES("88","de_DE",""); -INSERT INTO `state_i18n` VALUES("88","en_US","British Columbia"); -INSERT INTO `state_i18n` VALUES("88","es_ES",""); -INSERT INTO `state_i18n` VALUES("88","fr_FR","Colombie-Britannique"); -INSERT INTO `state_i18n` VALUES("89","de_DE",""); -INSERT INTO `state_i18n` VALUES("89","en_US","Alberta"); -INSERT INTO `state_i18n` VALUES("89","es_ES",""); -INSERT INTO `state_i18n` VALUES("89","fr_FR","Alberta"); -INSERT INTO `state_i18n` VALUES("90","de_DE",""); -INSERT INTO `state_i18n` VALUES("90","en_US","Manitoba"); -INSERT INTO `state_i18n` VALUES("90","es_ES",""); -INSERT INTO `state_i18n` VALUES("90","fr_FR","Manitoba"); -INSERT INTO `state_i18n` VALUES("91","de_DE",""); -INSERT INTO `state_i18n` VALUES("91","en_US","Saskatchewan"); -INSERT INTO `state_i18n` VALUES("91","es_ES",""); -INSERT INTO `state_i18n` VALUES("91","fr_FR","Saskatchewan"); -INSERT INTO `state_i18n` VALUES("92","de_DE",""); -INSERT INTO `state_i18n` VALUES("92","en_US","Nova Scotia"); -INSERT INTO `state_i18n` VALUES("92","es_ES",""); -INSERT INTO `state_i18n` VALUES("92","fr_FR","Nouvelle-Écosse"); -INSERT INTO `state_i18n` VALUES("93","de_DE",""); -INSERT INTO `state_i18n` VALUES("93","en_US","New Brunswick"); -INSERT INTO `state_i18n` VALUES("93","es_ES",""); -INSERT INTO `state_i18n` VALUES("93","fr_FR","Nouveau-Brunswick"); -INSERT INTO `state_i18n` VALUES("94","de_DE",""); -INSERT INTO `state_i18n` VALUES("94","en_US","Newfoundland and Labrador"); -INSERT INTO `state_i18n` VALUES("94","es_ES",""); -INSERT INTO `state_i18n` VALUES("94","fr_FR","Terre Neuve et Labrador"); -INSERT INTO `state_i18n` VALUES("95","de_DE",""); -INSERT INTO `state_i18n` VALUES("95","en_US","Prince Edward Island"); -INSERT INTO `state_i18n` VALUES("95","es_ES",""); -INSERT INTO `state_i18n` VALUES("95","fr_FR","Île-du-Prince-Édouard"); -INSERT INTO `state_i18n` VALUES("96","de_DE",""); -INSERT INTO `state_i18n` VALUES("96","en_US","Northwest Territories"); -INSERT INTO `state_i18n` VALUES("96","es_ES",""); -INSERT INTO `state_i18n` VALUES("96","fr_FR","Territoires du Nord-Ouest"); -INSERT INTO `state_i18n` VALUES("97","de_DE",""); -INSERT INTO `state_i18n` VALUES("97","en_US","Yukon"); -INSERT INTO `state_i18n` VALUES("97","es_ES",""); -INSERT INTO `state_i18n` VALUES("97","fr_FR","Yukon"); -INSERT INTO `state_i18n` VALUES("98","de_DE",""); -INSERT INTO `state_i18n` VALUES("98","en_US","Nunavut"); -INSERT INTO `state_i18n` VALUES("98","es_ES",""); -INSERT INTO `state_i18n` VALUES("98","fr_FR","Nunavut"); -INSERT INTO `state_i18n` VALUES("99","de_DE",""); -INSERT INTO `state_i18n` VALUES("99","en_US","Buenos Aires"); -INSERT INTO `state_i18n` VALUES("99","es_ES",""); -INSERT INTO `state_i18n` VALUES("99","fr_FR","Buenos Aires"); -INSERT INTO `state_i18n` VALUES("100","de_DE",""); -INSERT INTO `state_i18n` VALUES("100","en_US","Catamarca"); -INSERT INTO `state_i18n` VALUES("100","es_ES",""); -INSERT INTO `state_i18n` VALUES("100","fr_FR","Catamarca"); -INSERT INTO `state_i18n` VALUES("101","de_DE",""); -INSERT INTO `state_i18n` VALUES("101","en_US","Chaco"); -INSERT INTO `state_i18n` VALUES("101","es_ES",""); -INSERT INTO `state_i18n` VALUES("101","fr_FR","Chaco"); -INSERT INTO `state_i18n` VALUES("102","de_DE",""); -INSERT INTO `state_i18n` VALUES("102","en_US","Chubut"); -INSERT INTO `state_i18n` VALUES("102","es_ES",""); -INSERT INTO `state_i18n` VALUES("102","fr_FR","Chubut"); -INSERT INTO `state_i18n` VALUES("103","de_DE",""); -INSERT INTO `state_i18n` VALUES("103","en_US","Ciudad de Buenos Aires"); -INSERT INTO `state_i18n` VALUES("103","es_ES",""); -INSERT INTO `state_i18n` VALUES("103","fr_FR","Ciudad de Buenos Aires"); -INSERT INTO `state_i18n` VALUES("104","de_DE",""); -INSERT INTO `state_i18n` VALUES("104","en_US","Córdoba"); -INSERT INTO `state_i18n` VALUES("104","es_ES",""); -INSERT INTO `state_i18n` VALUES("104","fr_FR","Cordoba"); -INSERT INTO `state_i18n` VALUES("105","de_DE",""); -INSERT INTO `state_i18n` VALUES("105","en_US","Corrientes"); -INSERT INTO `state_i18n` VALUES("105","es_ES",""); -INSERT INTO `state_i18n` VALUES("105","fr_FR","Corrientes"); -INSERT INTO `state_i18n` VALUES("106","de_DE",""); -INSERT INTO `state_i18n` VALUES("106","en_US","Entre Ríos"); -INSERT INTO `state_i18n` VALUES("106","es_ES",""); -INSERT INTO `state_i18n` VALUES("106","fr_FR","Entre Ríos"); -INSERT INTO `state_i18n` VALUES("107","de_DE",""); -INSERT INTO `state_i18n` VALUES("107","en_US","Formosa"); -INSERT INTO `state_i18n` VALUES("107","es_ES",""); -INSERT INTO `state_i18n` VALUES("107","fr_FR","Formosa"); -INSERT INTO `state_i18n` VALUES("108","de_DE",""); -INSERT INTO `state_i18n` VALUES("108","en_US","Jujuy"); -INSERT INTO `state_i18n` VALUES("108","es_ES",""); -INSERT INTO `state_i18n` VALUES("108","fr_FR","Jujuy"); -INSERT INTO `state_i18n` VALUES("109","de_DE",""); -INSERT INTO `state_i18n` VALUES("109","en_US","La Pampa"); -INSERT INTO `state_i18n` VALUES("109","es_ES",""); -INSERT INTO `state_i18n` VALUES("109","fr_FR","La Pampa"); -INSERT INTO `state_i18n` VALUES("110","de_DE",""); -INSERT INTO `state_i18n` VALUES("110","en_US","La Rioja"); -INSERT INTO `state_i18n` VALUES("110","es_ES",""); -INSERT INTO `state_i18n` VALUES("110","fr_FR","La Rioja"); -INSERT INTO `state_i18n` VALUES("111","de_DE",""); -INSERT INTO `state_i18n` VALUES("111","en_US","Mendoza"); -INSERT INTO `state_i18n` VALUES("111","es_ES",""); -INSERT INTO `state_i18n` VALUES("111","fr_FR","Mendoza"); -INSERT INTO `state_i18n` VALUES("112","de_DE",""); -INSERT INTO `state_i18n` VALUES("112","en_US","Misiones"); -INSERT INTO `state_i18n` VALUES("112","es_ES",""); -INSERT INTO `state_i18n` VALUES("112","fr_FR","Misiones"); -INSERT INTO `state_i18n` VALUES("113","de_DE",""); -INSERT INTO `state_i18n` VALUES("113","en_US","Neuquén"); -INSERT INTO `state_i18n` VALUES("113","es_ES",""); -INSERT INTO `state_i18n` VALUES("113","fr_FR","Neuquén"); -INSERT INTO `state_i18n` VALUES("114","de_DE",""); -INSERT INTO `state_i18n` VALUES("114","en_US","Río Negro"); -INSERT INTO `state_i18n` VALUES("114","es_ES",""); -INSERT INTO `state_i18n` VALUES("114","fr_FR","Rio Negro"); -INSERT INTO `state_i18n` VALUES("115","de_DE",""); -INSERT INTO `state_i18n` VALUES("115","en_US","Salta"); -INSERT INTO `state_i18n` VALUES("115","es_ES",""); -INSERT INTO `state_i18n` VALUES("115","fr_FR","Salta"); -INSERT INTO `state_i18n` VALUES("116","de_DE",""); -INSERT INTO `state_i18n` VALUES("116","en_US","San Juan"); -INSERT INTO `state_i18n` VALUES("116","es_ES",""); -INSERT INTO `state_i18n` VALUES("116","fr_FR","San Juan"); -INSERT INTO `state_i18n` VALUES("117","de_DE",""); -INSERT INTO `state_i18n` VALUES("117","en_US","San Luis"); -INSERT INTO `state_i18n` VALUES("117","es_ES",""); -INSERT INTO `state_i18n` VALUES("117","fr_FR","San Luis"); -INSERT INTO `state_i18n` VALUES("118","de_DE",""); -INSERT INTO `state_i18n` VALUES("118","en_US","Santa Cruz"); -INSERT INTO `state_i18n` VALUES("118","es_ES",""); -INSERT INTO `state_i18n` VALUES("118","fr_FR","Santa Cruz"); -INSERT INTO `state_i18n` VALUES("119","de_DE",""); -INSERT INTO `state_i18n` VALUES("119","en_US","Santa Fe"); -INSERT INTO `state_i18n` VALUES("119","es_ES",""); -INSERT INTO `state_i18n` VALUES("119","fr_FR","Santa Fe"); -INSERT INTO `state_i18n` VALUES("120","de_DE",""); -INSERT INTO `state_i18n` VALUES("120","en_US","Santiago del Estero"); -INSERT INTO `state_i18n` VALUES("120","es_ES",""); -INSERT INTO `state_i18n` VALUES("120","fr_FR","Santiago del Estero"); -INSERT INTO `state_i18n` VALUES("121","de_DE",""); -INSERT INTO `state_i18n` VALUES("121","en_US","Tierra del Fuego"); -INSERT INTO `state_i18n` VALUES("121","es_ES",""); -INSERT INTO `state_i18n` VALUES("121","fr_FR","Tierra del Fuego"); -INSERT INTO `state_i18n` VALUES("122","de_DE",""); -INSERT INTO `state_i18n` VALUES("122","en_US","Tucumán"); -INSERT INTO `state_i18n` VALUES("122","es_ES",""); -INSERT INTO `state_i18n` VALUES("122","fr_FR","Tucuman"); -INSERT INTO `state_i18n` VALUES("123","de_DE",""); -INSERT INTO `state_i18n` VALUES("123","en_US","Agrigento"); -INSERT INTO `state_i18n` VALUES("123","es_ES",""); -INSERT INTO `state_i18n` VALUES("123","fr_FR","Agrigento"); -INSERT INTO `state_i18n` VALUES("124","de_DE",""); -INSERT INTO `state_i18n` VALUES("124","en_US","Alessandria"); -INSERT INTO `state_i18n` VALUES("124","es_ES",""); -INSERT INTO `state_i18n` VALUES("124","fr_FR","Alessandria"); -INSERT INTO `state_i18n` VALUES("125","de_DE",""); -INSERT INTO `state_i18n` VALUES("125","en_US","Ancona"); -INSERT INTO `state_i18n` VALUES("125","es_ES",""); -INSERT INTO `state_i18n` VALUES("125","fr_FR","Ancona"); -INSERT INTO `state_i18n` VALUES("126","de_DE",""); -INSERT INTO `state_i18n` VALUES("126","en_US","Aosta"); -INSERT INTO `state_i18n` VALUES("126","es_ES",""); -INSERT INTO `state_i18n` VALUES("126","fr_FR","Aosta"); -INSERT INTO `state_i18n` VALUES("127","de_DE",""); -INSERT INTO `state_i18n` VALUES("127","en_US","Arezzo"); -INSERT INTO `state_i18n` VALUES("127","es_ES",""); -INSERT INTO `state_i18n` VALUES("127","fr_FR","Arezzo"); -INSERT INTO `state_i18n` VALUES("128","de_DE",""); -INSERT INTO `state_i18n` VALUES("128","en_US","Ascoli Piceno"); -INSERT INTO `state_i18n` VALUES("128","es_ES",""); -INSERT INTO `state_i18n` VALUES("128","fr_FR","Ascoli Piceno"); -INSERT INTO `state_i18n` VALUES("129","de_DE",""); -INSERT INTO `state_i18n` VALUES("129","en_US","Asti"); -INSERT INTO `state_i18n` VALUES("129","es_ES",""); -INSERT INTO `state_i18n` VALUES("129","fr_FR","Asti"); -INSERT INTO `state_i18n` VALUES("130","de_DE",""); -INSERT INTO `state_i18n` VALUES("130","en_US","Avellino"); -INSERT INTO `state_i18n` VALUES("130","es_ES",""); -INSERT INTO `state_i18n` VALUES("130","fr_FR","Avellino"); -INSERT INTO `state_i18n` VALUES("131","de_DE",""); -INSERT INTO `state_i18n` VALUES("131","en_US","Bari"); -INSERT INTO `state_i18n` VALUES("131","es_ES",""); -INSERT INTO `state_i18n` VALUES("131","fr_FR","Bari"); -INSERT INTO `state_i18n` VALUES("132","de_DE",""); -INSERT INTO `state_i18n` VALUES("132","en_US","Barletta-Andria-Trani"); -INSERT INTO `state_i18n` VALUES("132","es_ES",""); -INSERT INTO `state_i18n` VALUES("132","fr_FR","Barletta-Andria-Trani"); -INSERT INTO `state_i18n` VALUES("133","de_DE",""); -INSERT INTO `state_i18n` VALUES("133","en_US","Belluno"); -INSERT INTO `state_i18n` VALUES("133","es_ES",""); -INSERT INTO `state_i18n` VALUES("133","fr_FR","Belluno"); -INSERT INTO `state_i18n` VALUES("134","de_DE",""); -INSERT INTO `state_i18n` VALUES("134","en_US","Benevento"); -INSERT INTO `state_i18n` VALUES("134","es_ES",""); -INSERT INTO `state_i18n` VALUES("134","fr_FR","Benevento"); -INSERT INTO `state_i18n` VALUES("135","de_DE",""); -INSERT INTO `state_i18n` VALUES("135","en_US","Bergamo"); -INSERT INTO `state_i18n` VALUES("135","es_ES",""); -INSERT INTO `state_i18n` VALUES("135","fr_FR","Bergamo"); -INSERT INTO `state_i18n` VALUES("136","de_DE",""); -INSERT INTO `state_i18n` VALUES("136","en_US","Biella"); -INSERT INTO `state_i18n` VALUES("136","es_ES",""); -INSERT INTO `state_i18n` VALUES("136","fr_FR","Biella"); -INSERT INTO `state_i18n` VALUES("137","de_DE",""); -INSERT INTO `state_i18n` VALUES("137","en_US","Bologna"); -INSERT INTO `state_i18n` VALUES("137","es_ES",""); -INSERT INTO `state_i18n` VALUES("137","fr_FR","Bologne"); -INSERT INTO `state_i18n` VALUES("138","de_DE",""); -INSERT INTO `state_i18n` VALUES("138","en_US","Bolzano"); -INSERT INTO `state_i18n` VALUES("138","es_ES",""); -INSERT INTO `state_i18n` VALUES("138","fr_FR","Bolzano"); -INSERT INTO `state_i18n` VALUES("139","de_DE",""); -INSERT INTO `state_i18n` VALUES("139","en_US","Brescia"); -INSERT INTO `state_i18n` VALUES("139","es_ES",""); -INSERT INTO `state_i18n` VALUES("139","fr_FR","Brescia"); -INSERT INTO `state_i18n` VALUES("140","de_DE",""); -INSERT INTO `state_i18n` VALUES("140","en_US","Brindisi"); -INSERT INTO `state_i18n` VALUES("140","es_ES",""); -INSERT INTO `state_i18n` VALUES("140","fr_FR","Brindisi"); -INSERT INTO `state_i18n` VALUES("141","de_DE",""); -INSERT INTO `state_i18n` VALUES("141","en_US","Cagliari"); -INSERT INTO `state_i18n` VALUES("141","es_ES",""); -INSERT INTO `state_i18n` VALUES("141","fr_FR","Cagliari"); -INSERT INTO `state_i18n` VALUES("142","de_DE",""); -INSERT INTO `state_i18n` VALUES("142","en_US","Caltanissetta"); -INSERT INTO `state_i18n` VALUES("142","es_ES",""); -INSERT INTO `state_i18n` VALUES("142","fr_FR","Caltanissetta"); -INSERT INTO `state_i18n` VALUES("143","de_DE",""); -INSERT INTO `state_i18n` VALUES("143","en_US","Campobasso"); -INSERT INTO `state_i18n` VALUES("143","es_ES",""); -INSERT INTO `state_i18n` VALUES("143","fr_FR","Campobasso"); -INSERT INTO `state_i18n` VALUES("144","de_DE",""); -INSERT INTO `state_i18n` VALUES("144","en_US","Carbonia-Iglesias"); -INSERT INTO `state_i18n` VALUES("144","es_ES",""); -INSERT INTO `state_i18n` VALUES("144","fr_FR","Carbonia-Iglesias"); -INSERT INTO `state_i18n` VALUES("145","de_DE",""); -INSERT INTO `state_i18n` VALUES("145","en_US","Caserta"); -INSERT INTO `state_i18n` VALUES("145","es_ES",""); -INSERT INTO `state_i18n` VALUES("145","fr_FR","Caserta"); -INSERT INTO `state_i18n` VALUES("146","de_DE",""); -INSERT INTO `state_i18n` VALUES("146","en_US","Catania"); -INSERT INTO `state_i18n` VALUES("146","es_ES",""); -INSERT INTO `state_i18n` VALUES("146","fr_FR","Catane"); -INSERT INTO `state_i18n` VALUES("147","de_DE",""); -INSERT INTO `state_i18n` VALUES("147","en_US","Catanzaro"); -INSERT INTO `state_i18n` VALUES("147","es_ES",""); -INSERT INTO `state_i18n` VALUES("147","fr_FR","Catanzaro"); -INSERT INTO `state_i18n` VALUES("148","de_DE",""); -INSERT INTO `state_i18n` VALUES("148","en_US","Chieti"); -INSERT INTO `state_i18n` VALUES("148","es_ES",""); -INSERT INTO `state_i18n` VALUES("148","fr_FR","Chieti"); -INSERT INTO `state_i18n` VALUES("149","de_DE",""); -INSERT INTO `state_i18n` VALUES("149","en_US","Como"); -INSERT INTO `state_i18n` VALUES("149","es_ES",""); -INSERT INTO `state_i18n` VALUES("149","fr_FR","Como"); -INSERT INTO `state_i18n` VALUES("150","de_DE",""); -INSERT INTO `state_i18n` VALUES("150","en_US","Cosenza"); -INSERT INTO `state_i18n` VALUES("150","es_ES",""); -INSERT INTO `state_i18n` VALUES("150","fr_FR","Cosenza"); -INSERT INTO `state_i18n` VALUES("151","de_DE",""); -INSERT INTO `state_i18n` VALUES("151","en_US","Cremona"); -INSERT INTO `state_i18n` VALUES("151","es_ES",""); -INSERT INTO `state_i18n` VALUES("151","fr_FR","Cremona"); -INSERT INTO `state_i18n` VALUES("152","de_DE",""); -INSERT INTO `state_i18n` VALUES("152","en_US","Crotone"); -INSERT INTO `state_i18n` VALUES("152","es_ES",""); -INSERT INTO `state_i18n` VALUES("152","fr_FR","Crotone"); -INSERT INTO `state_i18n` VALUES("153","de_DE",""); -INSERT INTO `state_i18n` VALUES("153","en_US","Cuneo"); -INSERT INTO `state_i18n` VALUES("153","es_ES",""); -INSERT INTO `state_i18n` VALUES("153","fr_FR","Cuneo"); -INSERT INTO `state_i18n` VALUES("154","de_DE",""); -INSERT INTO `state_i18n` VALUES("154","en_US","Enna"); -INSERT INTO `state_i18n` VALUES("154","es_ES",""); -INSERT INTO `state_i18n` VALUES("154","fr_FR","Enna"); -INSERT INTO `state_i18n` VALUES("155","de_DE",""); -INSERT INTO `state_i18n` VALUES("155","en_US","Fermo"); -INSERT INTO `state_i18n` VALUES("155","es_ES",""); -INSERT INTO `state_i18n` VALUES("155","fr_FR","Fermo"); -INSERT INTO `state_i18n` VALUES("156","de_DE",""); -INSERT INTO `state_i18n` VALUES("156","en_US","Ferrara"); -INSERT INTO `state_i18n` VALUES("156","es_ES",""); -INSERT INTO `state_i18n` VALUES("156","fr_FR","Ferrara"); -INSERT INTO `state_i18n` VALUES("157","de_DE",""); -INSERT INTO `state_i18n` VALUES("157","en_US","Firenze"); -INSERT INTO `state_i18n` VALUES("157","es_ES",""); -INSERT INTO `state_i18n` VALUES("157","fr_FR","Firenze"); -INSERT INTO `state_i18n` VALUES("158","de_DE",""); -INSERT INTO `state_i18n` VALUES("158","en_US","Foggia"); -INSERT INTO `state_i18n` VALUES("158","es_ES",""); -INSERT INTO `state_i18n` VALUES("158","fr_FR","Foggia"); -INSERT INTO `state_i18n` VALUES("159","de_DE",""); -INSERT INTO `state_i18n` VALUES("159","en_US","Forlì-Cesena"); -INSERT INTO `state_i18n` VALUES("159","es_ES",""); -INSERT INTO `state_i18n` VALUES("159","fr_FR","Forlì-Cesena"); -INSERT INTO `state_i18n` VALUES("160","de_DE",""); -INSERT INTO `state_i18n` VALUES("160","en_US","Frosinone"); -INSERT INTO `state_i18n` VALUES("160","es_ES",""); -INSERT INTO `state_i18n` VALUES("160","fr_FR","Frosinone"); -INSERT INTO `state_i18n` VALUES("161","de_DE",""); -INSERT INTO `state_i18n` VALUES("161","en_US","Genova"); -INSERT INTO `state_i18n` VALUES("161","es_ES",""); -INSERT INTO `state_i18n` VALUES("161","fr_FR","Genova"); -INSERT INTO `state_i18n` VALUES("162","de_DE",""); -INSERT INTO `state_i18n` VALUES("162","en_US","Gorizia"); -INSERT INTO `state_i18n` VALUES("162","es_ES",""); -INSERT INTO `state_i18n` VALUES("162","fr_FR","Gorizia"); -INSERT INTO `state_i18n` VALUES("163","de_DE",""); -INSERT INTO `state_i18n` VALUES("163","en_US","Grosseto"); -INSERT INTO `state_i18n` VALUES("163","es_ES",""); -INSERT INTO `state_i18n` VALUES("163","fr_FR","Grosseto"); -INSERT INTO `state_i18n` VALUES("164","de_DE",""); -INSERT INTO `state_i18n` VALUES("164","en_US","Imperia"); -INSERT INTO `state_i18n` VALUES("164","es_ES",""); -INSERT INTO `state_i18n` VALUES("164","fr_FR","Imperia"); -INSERT INTO `state_i18n` VALUES("165","de_DE",""); -INSERT INTO `state_i18n` VALUES("165","en_US","Isernia"); -INSERT INTO `state_i18n` VALUES("165","es_ES",""); -INSERT INTO `state_i18n` VALUES("165","fr_FR","Isernia"); -INSERT INTO `state_i18n` VALUES("166","de_DE",""); -INSERT INTO `state_i18n` VALUES("166","en_US","L\'Aquila"); -INSERT INTO `state_i18n` VALUES("166","es_ES",""); -INSERT INTO `state_i18n` VALUES("166","fr_FR","L\'Aquila"); -INSERT INTO `state_i18n` VALUES("167","de_DE",""); -INSERT INTO `state_i18n` VALUES("167","en_US","La Spezia"); -INSERT INTO `state_i18n` VALUES("167","es_ES",""); -INSERT INTO `state_i18n` VALUES("167","fr_FR","La Spezia"); -INSERT INTO `state_i18n` VALUES("168","de_DE",""); -INSERT INTO `state_i18n` VALUES("168","en_US","Latina"); -INSERT INTO `state_i18n` VALUES("168","es_ES",""); -INSERT INTO `state_i18n` VALUES("168","fr_FR","Latina"); -INSERT INTO `state_i18n` VALUES("169","de_DE",""); -INSERT INTO `state_i18n` VALUES("169","en_US","Lecce"); -INSERT INTO `state_i18n` VALUES("169","es_ES",""); -INSERT INTO `state_i18n` VALUES("169","fr_FR","Lecce"); -INSERT INTO `state_i18n` VALUES("170","de_DE",""); -INSERT INTO `state_i18n` VALUES("170","en_US","Lecco"); -INSERT INTO `state_i18n` VALUES("170","es_ES",""); -INSERT INTO `state_i18n` VALUES("170","fr_FR","Lecco"); -INSERT INTO `state_i18n` VALUES("171","de_DE",""); -INSERT INTO `state_i18n` VALUES("171","en_US","Livorno"); -INSERT INTO `state_i18n` VALUES("171","es_ES",""); -INSERT INTO `state_i18n` VALUES("171","fr_FR","Livourne"); -INSERT INTO `state_i18n` VALUES("172","de_DE",""); -INSERT INTO `state_i18n` VALUES("172","en_US","Lodi"); -INSERT INTO `state_i18n` VALUES("172","es_ES",""); -INSERT INTO `state_i18n` VALUES("172","fr_FR","Lodi"); -INSERT INTO `state_i18n` VALUES("173","de_DE",""); -INSERT INTO `state_i18n` VALUES("173","en_US","Lucca"); -INSERT INTO `state_i18n` VALUES("173","es_ES",""); -INSERT INTO `state_i18n` VALUES("173","fr_FR","Lucca"); -INSERT INTO `state_i18n` VALUES("174","de_DE",""); -INSERT INTO `state_i18n` VALUES("174","en_US","Macerata"); -INSERT INTO `state_i18n` VALUES("174","es_ES",""); -INSERT INTO `state_i18n` VALUES("174","fr_FR","Macerata"); -INSERT INTO `state_i18n` VALUES("175","de_DE",""); -INSERT INTO `state_i18n` VALUES("175","en_US","Mantova"); -INSERT INTO `state_i18n` VALUES("175","es_ES",""); -INSERT INTO `state_i18n` VALUES("175","fr_FR","Mantova"); -INSERT INTO `state_i18n` VALUES("176","de_DE",""); -INSERT INTO `state_i18n` VALUES("176","en_US","Massa"); -INSERT INTO `state_i18n` VALUES("176","es_ES",""); -INSERT INTO `state_i18n` VALUES("176","fr_FR","Massa"); -INSERT INTO `state_i18n` VALUES("177","de_DE",""); -INSERT INTO `state_i18n` VALUES("177","en_US","Matera"); -INSERT INTO `state_i18n` VALUES("177","es_ES",""); -INSERT INTO `state_i18n` VALUES("177","fr_FR","Matera"); -INSERT INTO `state_i18n` VALUES("178","de_DE",""); -INSERT INTO `state_i18n` VALUES("178","en_US","Medio Campidano"); -INSERT INTO `state_i18n` VALUES("178","es_ES",""); -INSERT INTO `state_i18n` VALUES("178","fr_FR","Medio Campidano"); -INSERT INTO `state_i18n` VALUES("179","de_DE",""); -INSERT INTO `state_i18n` VALUES("179","en_US","Messina"); -INSERT INTO `state_i18n` VALUES("179","es_ES",""); -INSERT INTO `state_i18n` VALUES("179","fr_FR","Messina"); -INSERT INTO `state_i18n` VALUES("180","de_DE",""); -INSERT INTO `state_i18n` VALUES("180","en_US","Milano"); -INSERT INTO `state_i18n` VALUES("180","es_ES",""); -INSERT INTO `state_i18n` VALUES("180","fr_FR","Milano"); -INSERT INTO `state_i18n` VALUES("181","de_DE",""); -INSERT INTO `state_i18n` VALUES("181","en_US","Modena"); -INSERT INTO `state_i18n` VALUES("181","es_ES",""); -INSERT INTO `state_i18n` VALUES("181","fr_FR","Modena"); -INSERT INTO `state_i18n` VALUES("182","de_DE",""); -INSERT INTO `state_i18n` VALUES("182","en_US","Monza e della Brianza"); -INSERT INTO `state_i18n` VALUES("182","es_ES",""); -INSERT INTO `state_i18n` VALUES("182","fr_FR","Monza e della Brianza"); -INSERT INTO `state_i18n` VALUES("183","de_DE",""); -INSERT INTO `state_i18n` VALUES("183","en_US","Napoli"); -INSERT INTO `state_i18n` VALUES("183","es_ES",""); -INSERT INTO `state_i18n` VALUES("183","fr_FR","Napoli"); -INSERT INTO `state_i18n` VALUES("184","de_DE",""); -INSERT INTO `state_i18n` VALUES("184","en_US","Novara"); -INSERT INTO `state_i18n` VALUES("184","es_ES",""); -INSERT INTO `state_i18n` VALUES("184","fr_FR","Novara"); -INSERT INTO `state_i18n` VALUES("185","de_DE",""); -INSERT INTO `state_i18n` VALUES("185","en_US","Nuoro"); -INSERT INTO `state_i18n` VALUES("185","es_ES",""); -INSERT INTO `state_i18n` VALUES("185","fr_FR","Nuoro"); -INSERT INTO `state_i18n` VALUES("186","de_DE",""); -INSERT INTO `state_i18n` VALUES("186","en_US","Ogliastra"); -INSERT INTO `state_i18n` VALUES("186","es_ES",""); -INSERT INTO `state_i18n` VALUES("186","fr_FR","Ogliastra"); -INSERT INTO `state_i18n` VALUES("187","de_DE",""); -INSERT INTO `state_i18n` VALUES("187","en_US","Olbia-Tempio"); -INSERT INTO `state_i18n` VALUES("187","es_ES",""); -INSERT INTO `state_i18n` VALUES("187","fr_FR","Olbia-Tempio"); -INSERT INTO `state_i18n` VALUES("188","de_DE",""); -INSERT INTO `state_i18n` VALUES("188","en_US","Oristano"); -INSERT INTO `state_i18n` VALUES("188","es_ES",""); -INSERT INTO `state_i18n` VALUES("188","fr_FR","Oristano"); -INSERT INTO `state_i18n` VALUES("189","de_DE",""); -INSERT INTO `state_i18n` VALUES("189","en_US","Padova"); -INSERT INTO `state_i18n` VALUES("189","es_ES",""); -INSERT INTO `state_i18n` VALUES("189","fr_FR","Padova"); -INSERT INTO `state_i18n` VALUES("190","de_DE",""); -INSERT INTO `state_i18n` VALUES("190","en_US","Palermo"); -INSERT INTO `state_i18n` VALUES("190","es_ES",""); -INSERT INTO `state_i18n` VALUES("190","fr_FR","Palerme"); -INSERT INTO `state_i18n` VALUES("191","de_DE",""); -INSERT INTO `state_i18n` VALUES("191","en_US","Parma"); -INSERT INTO `state_i18n` VALUES("191","es_ES",""); -INSERT INTO `state_i18n` VALUES("191","fr_FR","Parma"); -INSERT INTO `state_i18n` VALUES("192","de_DE",""); -INSERT INTO `state_i18n` VALUES("192","en_US","Pavia"); -INSERT INTO `state_i18n` VALUES("192","es_ES",""); -INSERT INTO `state_i18n` VALUES("192","fr_FR","Pavie"); -INSERT INTO `state_i18n` VALUES("193","de_DE",""); -INSERT INTO `state_i18n` VALUES("193","en_US","Perugia"); -INSERT INTO `state_i18n` VALUES("193","es_ES",""); -INSERT INTO `state_i18n` VALUES("193","fr_FR","Pérouse"); -INSERT INTO `state_i18n` VALUES("194","de_DE",""); -INSERT INTO `state_i18n` VALUES("194","en_US","Pesaro-Urbino"); -INSERT INTO `state_i18n` VALUES("194","es_ES",""); -INSERT INTO `state_i18n` VALUES("194","fr_FR","Pesaro-Urbino"); -INSERT INTO `state_i18n` VALUES("195","de_DE",""); -INSERT INTO `state_i18n` VALUES("195","en_US","Pescara"); -INSERT INTO `state_i18n` VALUES("195","es_ES",""); -INSERT INTO `state_i18n` VALUES("195","fr_FR","Pescara"); -INSERT INTO `state_i18n` VALUES("196","de_DE",""); -INSERT INTO `state_i18n` VALUES("196","en_US","Piacenza"); -INSERT INTO `state_i18n` VALUES("196","es_ES",""); -INSERT INTO `state_i18n` VALUES("196","fr_FR","Piacenza"); -INSERT INTO `state_i18n` VALUES("197","de_DE",""); -INSERT INTO `state_i18n` VALUES("197","en_US","Pisa"); -INSERT INTO `state_i18n` VALUES("197","es_ES",""); -INSERT INTO `state_i18n` VALUES("197","fr_FR","Pise"); -INSERT INTO `state_i18n` VALUES("198","de_DE",""); -INSERT INTO `state_i18n` VALUES("198","en_US","Pistoia"); -INSERT INTO `state_i18n` VALUES("198","es_ES",""); -INSERT INTO `state_i18n` VALUES("198","fr_FR","Pistoia"); -INSERT INTO `state_i18n` VALUES("199","de_DE",""); -INSERT INTO `state_i18n` VALUES("199","en_US","Pordenone"); -INSERT INTO `state_i18n` VALUES("199","es_ES",""); -INSERT INTO `state_i18n` VALUES("199","fr_FR","Pordenone"); -INSERT INTO `state_i18n` VALUES("200","de_DE",""); -INSERT INTO `state_i18n` VALUES("200","en_US","Potenza"); -INSERT INTO `state_i18n` VALUES("200","es_ES",""); -INSERT INTO `state_i18n` VALUES("200","fr_FR","Potenza"); -INSERT INTO `state_i18n` VALUES("201","de_DE",""); -INSERT INTO `state_i18n` VALUES("201","en_US","Prato"); -INSERT INTO `state_i18n` VALUES("201","es_ES",""); -INSERT INTO `state_i18n` VALUES("201","fr_FR","Prato"); -INSERT INTO `state_i18n` VALUES("202","de_DE",""); -INSERT INTO `state_i18n` VALUES("202","en_US","Ragusa"); -INSERT INTO `state_i18n` VALUES("202","es_ES",""); -INSERT INTO `state_i18n` VALUES("202","fr_FR","Ragusa"); -INSERT INTO `state_i18n` VALUES("203","de_DE",""); -INSERT INTO `state_i18n` VALUES("203","en_US","Ravenna"); -INSERT INTO `state_i18n` VALUES("203","es_ES",""); -INSERT INTO `state_i18n` VALUES("203","fr_FR","Ravenne"); -INSERT INTO `state_i18n` VALUES("204","de_DE",""); -INSERT INTO `state_i18n` VALUES("204","en_US","Reggio Calabria"); -INSERT INTO `state_i18n` VALUES("204","es_ES",""); -INSERT INTO `state_i18n` VALUES("204","fr_FR","Reggio de Calabre"); -INSERT INTO `state_i18n` VALUES("205","de_DE",""); -INSERT INTO `state_i18n` VALUES("205","en_US","Reggio Emilia"); -INSERT INTO `state_i18n` VALUES("205","es_ES",""); -INSERT INTO `state_i18n` VALUES("205","fr_FR","Reggio d\'Émilie"); -INSERT INTO `state_i18n` VALUES("206","de_DE",""); -INSERT INTO `state_i18n` VALUES("206","en_US","Rieti"); -INSERT INTO `state_i18n` VALUES("206","es_ES",""); -INSERT INTO `state_i18n` VALUES("206","fr_FR","Rieti"); -INSERT INTO `state_i18n` VALUES("207","de_DE",""); -INSERT INTO `state_i18n` VALUES("207","en_US","Rimini"); -INSERT INTO `state_i18n` VALUES("207","es_ES",""); -INSERT INTO `state_i18n` VALUES("207","fr_FR","Rimini"); -INSERT INTO `state_i18n` VALUES("208","de_DE",""); -INSERT INTO `state_i18n` VALUES("208","en_US","Roma"); -INSERT INTO `state_i18n` VALUES("208","es_ES",""); -INSERT INTO `state_i18n` VALUES("208","fr_FR","Rome"); -INSERT INTO `state_i18n` VALUES("209","de_DE",""); -INSERT INTO `state_i18n` VALUES("209","en_US","Rovigo"); -INSERT INTO `state_i18n` VALUES("209","es_ES",""); -INSERT INTO `state_i18n` VALUES("209","fr_FR","Rovigo"); -INSERT INTO `state_i18n` VALUES("210","de_DE",""); -INSERT INTO `state_i18n` VALUES("210","en_US","Salerno"); -INSERT INTO `state_i18n` VALUES("210","es_ES",""); -INSERT INTO `state_i18n` VALUES("210","fr_FR","Salerno"); -INSERT INTO `state_i18n` VALUES("211","de_DE",""); -INSERT INTO `state_i18n` VALUES("211","en_US","Sassari"); -INSERT INTO `state_i18n` VALUES("211","es_ES",""); -INSERT INTO `state_i18n` VALUES("211","fr_FR","Sassari"); -INSERT INTO `state_i18n` VALUES("212","de_DE",""); -INSERT INTO `state_i18n` VALUES("212","en_US","Savona"); -INSERT INTO `state_i18n` VALUES("212","es_ES",""); -INSERT INTO `state_i18n` VALUES("212","fr_FR","Savona"); -INSERT INTO `state_i18n` VALUES("213","de_DE",""); -INSERT INTO `state_i18n` VALUES("213","en_US","Siena"); -INSERT INTO `state_i18n` VALUES("213","es_ES",""); -INSERT INTO `state_i18n` VALUES("213","fr_FR","Siena"); -INSERT INTO `state_i18n` VALUES("214","de_DE",""); -INSERT INTO `state_i18n` VALUES("214","en_US","Siracusa"); -INSERT INTO `state_i18n` VALUES("214","es_ES",""); -INSERT INTO `state_i18n` VALUES("214","fr_FR","Siracusa"); -INSERT INTO `state_i18n` VALUES("215","de_DE",""); -INSERT INTO `state_i18n` VALUES("215","en_US","Sondrio"); -INSERT INTO `state_i18n` VALUES("215","es_ES",""); -INSERT INTO `state_i18n` VALUES("215","fr_FR","Sondrio"); -INSERT INTO `state_i18n` VALUES("216","de_DE",""); -INSERT INTO `state_i18n` VALUES("216","en_US","Taranto"); -INSERT INTO `state_i18n` VALUES("216","es_ES",""); -INSERT INTO `state_i18n` VALUES("216","fr_FR","Taranto"); -INSERT INTO `state_i18n` VALUES("217","de_DE",""); -INSERT INTO `state_i18n` VALUES("217","en_US","Teramo"); -INSERT INTO `state_i18n` VALUES("217","es_ES",""); -INSERT INTO `state_i18n` VALUES("217","fr_FR","Teramo"); -INSERT INTO `state_i18n` VALUES("218","de_DE",""); -INSERT INTO `state_i18n` VALUES("218","en_US","Terni"); -INSERT INTO `state_i18n` VALUES("218","es_ES",""); -INSERT INTO `state_i18n` VALUES("218","fr_FR","Terni"); -INSERT INTO `state_i18n` VALUES("219","de_DE",""); -INSERT INTO `state_i18n` VALUES("219","en_US","Torino"); -INSERT INTO `state_i18n` VALUES("219","es_ES",""); -INSERT INTO `state_i18n` VALUES("219","fr_FR","Torino"); -INSERT INTO `state_i18n` VALUES("220","de_DE",""); -INSERT INTO `state_i18n` VALUES("220","en_US","Trapani"); -INSERT INTO `state_i18n` VALUES("220","es_ES",""); -INSERT INTO `state_i18n` VALUES("220","fr_FR","Trapani"); -INSERT INTO `state_i18n` VALUES("221","de_DE",""); -INSERT INTO `state_i18n` VALUES("221","en_US","Trento"); -INSERT INTO `state_i18n` VALUES("221","es_ES",""); -INSERT INTO `state_i18n` VALUES("221","fr_FR","Trento"); -INSERT INTO `state_i18n` VALUES("222","de_DE",""); -INSERT INTO `state_i18n` VALUES("222","en_US","Treviso"); -INSERT INTO `state_i18n` VALUES("222","es_ES",""); -INSERT INTO `state_i18n` VALUES("222","fr_FR","Treviso"); -INSERT INTO `state_i18n` VALUES("223","de_DE",""); -INSERT INTO `state_i18n` VALUES("223","en_US","Trieste"); -INSERT INTO `state_i18n` VALUES("223","es_ES",""); -INSERT INTO `state_i18n` VALUES("223","fr_FR","Trieste"); -INSERT INTO `state_i18n` VALUES("224","de_DE",""); -INSERT INTO `state_i18n` VALUES("224","en_US","Udine"); -INSERT INTO `state_i18n` VALUES("224","es_ES",""); -INSERT INTO `state_i18n` VALUES("224","fr_FR","Udine"); -INSERT INTO `state_i18n` VALUES("225","de_DE",""); -INSERT INTO `state_i18n` VALUES("225","en_US","Varese"); -INSERT INTO `state_i18n` VALUES("225","es_ES",""); -INSERT INTO `state_i18n` VALUES("225","fr_FR","Varese"); -INSERT INTO `state_i18n` VALUES("226","de_DE",""); -INSERT INTO `state_i18n` VALUES("226","en_US","Venezia"); -INSERT INTO `state_i18n` VALUES("226","es_ES",""); -INSERT INTO `state_i18n` VALUES("226","fr_FR","Venezia"); -INSERT INTO `state_i18n` VALUES("227","de_DE",""); -INSERT INTO `state_i18n` VALUES("227","en_US","Verbano-Cusio-Ossola"); -INSERT INTO `state_i18n` VALUES("227","es_ES",""); -INSERT INTO `state_i18n` VALUES("227","fr_FR","Verbano-Cusio-Ossola"); -INSERT INTO `state_i18n` VALUES("228","de_DE",""); -INSERT INTO `state_i18n` VALUES("228","en_US","Vercelli"); -INSERT INTO `state_i18n` VALUES("228","es_ES",""); -INSERT INTO `state_i18n` VALUES("228","fr_FR","Vercelli"); -INSERT INTO `state_i18n` VALUES("229","de_DE",""); -INSERT INTO `state_i18n` VALUES("229","en_US","Verona"); -INSERT INTO `state_i18n` VALUES("229","es_ES",""); -INSERT INTO `state_i18n` VALUES("229","fr_FR","Vérone"); -INSERT INTO `state_i18n` VALUES("230","de_DE",""); -INSERT INTO `state_i18n` VALUES("230","en_US","Vibo Valentia"); -INSERT INTO `state_i18n` VALUES("230","es_ES",""); -INSERT INTO `state_i18n` VALUES("230","fr_FR","Vibo Valentia"); -INSERT INTO `state_i18n` VALUES("231","de_DE",""); -INSERT INTO `state_i18n` VALUES("231","en_US","Vicenza"); -INSERT INTO `state_i18n` VALUES("231","es_ES",""); -INSERT INTO `state_i18n` VALUES("231","fr_FR","Vicenza"); -INSERT INTO `state_i18n` VALUES("232","de_DE",""); -INSERT INTO `state_i18n` VALUES("232","en_US","Viterbo"); -INSERT INTO `state_i18n` VALUES("232","es_ES",""); -INSERT INTO `state_i18n` VALUES("232","fr_FR","Viterbo"); -INSERT INTO `state_i18n` VALUES("233","de_DE",""); -INSERT INTO `state_i18n` VALUES("233","en_US","Aceh"); -INSERT INTO `state_i18n` VALUES("233","es_ES",""); -INSERT INTO `state_i18n` VALUES("233","fr_FR","Aceh"); -INSERT INTO `state_i18n` VALUES("234","de_DE",""); -INSERT INTO `state_i18n` VALUES("234","en_US","Bali"); -INSERT INTO `state_i18n` VALUES("234","es_ES",""); -INSERT INTO `state_i18n` VALUES("234","fr_FR","Bali"); -INSERT INTO `state_i18n` VALUES("235","de_DE",""); -INSERT INTO `state_i18n` VALUES("235","en_US","Bangka"); -INSERT INTO `state_i18n` VALUES("235","es_ES",""); -INSERT INTO `state_i18n` VALUES("235","fr_FR","Bangka"); -INSERT INTO `state_i18n` VALUES("236","de_DE",""); -INSERT INTO `state_i18n` VALUES("236","en_US","Banten"); -INSERT INTO `state_i18n` VALUES("236","es_ES",""); -INSERT INTO `state_i18n` VALUES("236","fr_FR","Banten"); -INSERT INTO `state_i18n` VALUES("237","de_DE",""); -INSERT INTO `state_i18n` VALUES("237","en_US","Bengkulu"); -INSERT INTO `state_i18n` VALUES("237","es_ES",""); -INSERT INTO `state_i18n` VALUES("237","fr_FR","Bengkulu"); -INSERT INTO `state_i18n` VALUES("238","de_DE",""); -INSERT INTO `state_i18n` VALUES("238","en_US","Central Java"); -INSERT INTO `state_i18n` VALUES("238","es_ES",""); -INSERT INTO `state_i18n` VALUES("238","fr_FR","Central Java"); -INSERT INTO `state_i18n` VALUES("239","de_DE",""); -INSERT INTO `state_i18n` VALUES("239","en_US","Central Kalimantan"); -INSERT INTO `state_i18n` VALUES("239","es_ES",""); -INSERT INTO `state_i18n` VALUES("239","fr_FR","Kalimantan occidental"); -INSERT INTO `state_i18n` VALUES("240","de_DE",""); -INSERT INTO `state_i18n` VALUES("240","en_US","Central Sulawesi"); -INSERT INTO `state_i18n` VALUES("240","es_ES",""); -INSERT INTO `state_i18n` VALUES("240","fr_FR","Sulawesi central"); -INSERT INTO `state_i18n` VALUES("241","de_DE",""); -INSERT INTO `state_i18n` VALUES("241","en_US","Coat of arms of East Java"); -INSERT INTO `state_i18n` VALUES("241","es_ES",""); -INSERT INTO `state_i18n` VALUES("241","fr_FR","Coat of arms of East Java"); -INSERT INTO `state_i18n` VALUES("242","de_DE",""); -INSERT INTO `state_i18n` VALUES("242","en_US","East kalimantan"); -INSERT INTO `state_i18n` VALUES("242","es_ES",""); -INSERT INTO `state_i18n` VALUES("242","fr_FR","Kalimantan oriental"); -INSERT INTO `state_i18n` VALUES("243","de_DE",""); -INSERT INTO `state_i18n` VALUES("243","en_US","East Nusa Tenggara"); -INSERT INTO `state_i18n` VALUES("243","es_ES",""); -INSERT INTO `state_i18n` VALUES("243","fr_FR","Nusa Tenggara oriental"); -INSERT INTO `state_i18n` VALUES("244","de_DE",""); -INSERT INTO `state_i18n` VALUES("244","en_US","Lambang propinsi"); -INSERT INTO `state_i18n` VALUES("244","es_ES",""); -INSERT INTO `state_i18n` VALUES("244","fr_FR","Lambang propinsi"); -INSERT INTO `state_i18n` VALUES("245","de_DE",""); -INSERT INTO `state_i18n` VALUES("245","en_US","Jakarta"); -INSERT INTO `state_i18n` VALUES("245","es_ES",""); -INSERT INTO `state_i18n` VALUES("245","fr_FR","Jakarta"); -INSERT INTO `state_i18n` VALUES("246","de_DE",""); -INSERT INTO `state_i18n` VALUES("246","en_US","Jambi"); -INSERT INTO `state_i18n` VALUES("246","es_ES",""); -INSERT INTO `state_i18n` VALUES("246","fr_FR","Jambi"); -INSERT INTO `state_i18n` VALUES("247","de_DE",""); -INSERT INTO `state_i18n` VALUES("247","en_US","Lampung"); -INSERT INTO `state_i18n` VALUES("247","es_ES",""); -INSERT INTO `state_i18n` VALUES("247","fr_FR","Lampung"); -INSERT INTO `state_i18n` VALUES("248","de_DE",""); -INSERT INTO `state_i18n` VALUES("248","en_US","Maluku"); -INSERT INTO `state_i18n` VALUES("248","es_ES",""); -INSERT INTO `state_i18n` VALUES("248","fr_FR","Maluku"); -INSERT INTO `state_i18n` VALUES("249","de_DE",""); -INSERT INTO `state_i18n` VALUES("249","en_US","North Maluku"); -INSERT INTO `state_i18n` VALUES("249","es_ES",""); -INSERT INTO `state_i18n` VALUES("249","fr_FR","Maluku du Nord"); -INSERT INTO `state_i18n` VALUES("250","de_DE",""); -INSERT INTO `state_i18n` VALUES("250","en_US","North Sulawesi"); -INSERT INTO `state_i18n` VALUES("250","es_ES",""); -INSERT INTO `state_i18n` VALUES("250","fr_FR","Sulawesi du Nord"); -INSERT INTO `state_i18n` VALUES("251","de_DE",""); -INSERT INTO `state_i18n` VALUES("251","en_US","North Sumatra"); -INSERT INTO `state_i18n` VALUES("251","es_ES",""); -INSERT INTO `state_i18n` VALUES("251","fr_FR","Sumatra-Nord"); -INSERT INTO `state_i18n` VALUES("252","de_DE",""); -INSERT INTO `state_i18n` VALUES("252","en_US","Papua"); -INSERT INTO `state_i18n` VALUES("252","es_ES",""); -INSERT INTO `state_i18n` VALUES("252","fr_FR","Papouasie"); -INSERT INTO `state_i18n` VALUES("253","de_DE",""); -INSERT INTO `state_i18n` VALUES("253","en_US","Riau"); -INSERT INTO `state_i18n` VALUES("253","es_ES",""); -INSERT INTO `state_i18n` VALUES("253","fr_FR","Riau"); -INSERT INTO `state_i18n` VALUES("254","de_DE",""); -INSERT INTO `state_i18n` VALUES("254","en_US","Lambang Riau"); -INSERT INTO `state_i18n` VALUES("254","es_ES",""); -INSERT INTO `state_i18n` VALUES("254","fr_FR","Lambang Riau"); -INSERT INTO `state_i18n` VALUES("255","de_DE",""); -INSERT INTO `state_i18n` VALUES("255","en_US","Southeast Sulawesi"); -INSERT INTO `state_i18n` VALUES("255","es_ES",""); -INSERT INTO `state_i18n` VALUES("255","fr_FR","Sulawesi du sud-est"); -INSERT INTO `state_i18n` VALUES("256","de_DE",""); -INSERT INTO `state_i18n` VALUES("256","en_US","South Kalimantan"); -INSERT INTO `state_i18n` VALUES("256","es_ES",""); -INSERT INTO `state_i18n` VALUES("256","fr_FR","Kalimantan du Sud"); -INSERT INTO `state_i18n` VALUES("257","de_DE",""); -INSERT INTO `state_i18n` VALUES("257","en_US","South Sulawesi"); -INSERT INTO `state_i18n` VALUES("257","es_ES",""); -INSERT INTO `state_i18n` VALUES("257","fr_FR","Sulawesi du Sud"); -INSERT INTO `state_i18n` VALUES("258","de_DE",""); -INSERT INTO `state_i18n` VALUES("258","en_US","South Sumatra"); -INSERT INTO `state_i18n` VALUES("258","es_ES",""); -INSERT INTO `state_i18n` VALUES("258","fr_FR","Sumatra du Sud"); -INSERT INTO `state_i18n` VALUES("259","de_DE",""); -INSERT INTO `state_i18n` VALUES("259","en_US","West Java"); -INSERT INTO `state_i18n` VALUES("259","es_ES",""); -INSERT INTO `state_i18n` VALUES("259","fr_FR","Java-Ouest"); -INSERT INTO `state_i18n` VALUES("260","de_DE",""); -INSERT INTO `state_i18n` VALUES("260","en_US","West Kalimantan"); -INSERT INTO `state_i18n` VALUES("260","es_ES",""); -INSERT INTO `state_i18n` VALUES("260","fr_FR","Kalimantan occidental"); -INSERT INTO `state_i18n` VALUES("261","de_DE",""); -INSERT INTO `state_i18n` VALUES("261","en_US","West Nusa Tenggara"); -INSERT INTO `state_i18n` VALUES("261","es_ES",""); -INSERT INTO `state_i18n` VALUES("261","fr_FR","Nusa Tenggara occidental"); -INSERT INTO `state_i18n` VALUES("262","de_DE",""); -INSERT INTO `state_i18n` VALUES("262","en_US","Lambang Provinsi Papua Barat"); -INSERT INTO `state_i18n` VALUES("262","es_ES",""); -INSERT INTO `state_i18n` VALUES("262","fr_FR","Lambang Provinsi Papua Barat"); -INSERT INTO `state_i18n` VALUES("263","de_DE",""); -INSERT INTO `state_i18n` VALUES("263","en_US","West Sulawesi"); -INSERT INTO `state_i18n` VALUES("263","es_ES",""); -INSERT INTO `state_i18n` VALUES("263","fr_FR","Sulawesi occidental"); -INSERT INTO `state_i18n` VALUES("264","de_DE",""); -INSERT INTO `state_i18n` VALUES("264","en_US","West Sumatra"); -INSERT INTO `state_i18n` VALUES("264","es_ES",""); -INSERT INTO `state_i18n` VALUES("264","fr_FR","Sumatra occidental"); -INSERT INTO `state_i18n` VALUES("265","de_DE",""); -INSERT INTO `state_i18n` VALUES("265","en_US","Yogyakarta"); -INSERT INTO `state_i18n` VALUES("265","es_ES",""); -INSERT INTO `state_i18n` VALUES("265","fr_FR","Yogyakarta"); -INSERT INTO `state_i18n` VALUES("266","de_DE",""); -INSERT INTO `state_i18n` VALUES("266","en_US","Aichi"); -INSERT INTO `state_i18n` VALUES("266","es_ES",""); -INSERT INTO `state_i18n` VALUES("266","fr_FR","Aichi"); -INSERT INTO `state_i18n` VALUES("267","de_DE",""); -INSERT INTO `state_i18n` VALUES("267","en_US","Akita"); -INSERT INTO `state_i18n` VALUES("267","es_ES",""); -INSERT INTO `state_i18n` VALUES("267","fr_FR","Akita"); -INSERT INTO `state_i18n` VALUES("268","de_DE",""); -INSERT INTO `state_i18n` VALUES("268","en_US","Aomori"); -INSERT INTO `state_i18n` VALUES("268","es_ES",""); -INSERT INTO `state_i18n` VALUES("268","fr_FR","Aomori"); -INSERT INTO `state_i18n` VALUES("269","de_DE",""); -INSERT INTO `state_i18n` VALUES("269","en_US","Chiba"); -INSERT INTO `state_i18n` VALUES("269","es_ES",""); -INSERT INTO `state_i18n` VALUES("269","fr_FR","Chiba"); -INSERT INTO `state_i18n` VALUES("270","de_DE",""); -INSERT INTO `state_i18n` VALUES("270","en_US","Ehime"); -INSERT INTO `state_i18n` VALUES("270","es_ES",""); -INSERT INTO `state_i18n` VALUES("270","fr_FR","Ehime"); -INSERT INTO `state_i18n` VALUES("271","de_DE",""); -INSERT INTO `state_i18n` VALUES("271","en_US","Fukui"); -INSERT INTO `state_i18n` VALUES("271","es_ES",""); -INSERT INTO `state_i18n` VALUES("271","fr_FR","Fukui"); -INSERT INTO `state_i18n` VALUES("272","de_DE",""); -INSERT INTO `state_i18n` VALUES("272","en_US","Fukuoka"); -INSERT INTO `state_i18n` VALUES("272","es_ES",""); -INSERT INTO `state_i18n` VALUES("272","fr_FR","Fukuoka"); -INSERT INTO `state_i18n` VALUES("273","de_DE",""); -INSERT INTO `state_i18n` VALUES("273","en_US","Fukushima"); -INSERT INTO `state_i18n` VALUES("273","es_ES",""); -INSERT INTO `state_i18n` VALUES("273","fr_FR","Fukushima"); -INSERT INTO `state_i18n` VALUES("274","de_DE",""); -INSERT INTO `state_i18n` VALUES("274","en_US","Gifu"); -INSERT INTO `state_i18n` VALUES("274","es_ES",""); -INSERT INTO `state_i18n` VALUES("274","fr_FR","Gifu"); -INSERT INTO `state_i18n` VALUES("275","de_DE",""); -INSERT INTO `state_i18n` VALUES("275","en_US","Gunma"); -INSERT INTO `state_i18n` VALUES("275","es_ES",""); -INSERT INTO `state_i18n` VALUES("275","fr_FR","Gunma"); -INSERT INTO `state_i18n` VALUES("276","de_DE",""); -INSERT INTO `state_i18n` VALUES("276","en_US","Hiroshima"); -INSERT INTO `state_i18n` VALUES("276","es_ES",""); -INSERT INTO `state_i18n` VALUES("276","fr_FR","Hiroshima"); -INSERT INTO `state_i18n` VALUES("277","de_DE",""); -INSERT INTO `state_i18n` VALUES("277","en_US","Hokkaido"); -INSERT INTO `state_i18n` VALUES("277","es_ES",""); -INSERT INTO `state_i18n` VALUES("277","fr_FR","Hokkaido"); -INSERT INTO `state_i18n` VALUES("278","de_DE",""); -INSERT INTO `state_i18n` VALUES("278","en_US","Hyogo"); -INSERT INTO `state_i18n` VALUES("278","es_ES",""); -INSERT INTO `state_i18n` VALUES("278","fr_FR","Hyogo"); -INSERT INTO `state_i18n` VALUES("279","de_DE",""); -INSERT INTO `state_i18n` VALUES("279","en_US","Ibaraki"); -INSERT INTO `state_i18n` VALUES("279","es_ES",""); -INSERT INTO `state_i18n` VALUES("279","fr_FR","Ibaraki"); -INSERT INTO `state_i18n` VALUES("280","de_DE",""); -INSERT INTO `state_i18n` VALUES("280","en_US","Ishikawa"); -INSERT INTO `state_i18n` VALUES("280","es_ES",""); -INSERT INTO `state_i18n` VALUES("280","fr_FR","Ishikawa"); -INSERT INTO `state_i18n` VALUES("281","de_DE",""); -INSERT INTO `state_i18n` VALUES("281","en_US","Iwate"); -INSERT INTO `state_i18n` VALUES("281","es_ES",""); -INSERT INTO `state_i18n` VALUES("281","fr_FR","Iwate"); -INSERT INTO `state_i18n` VALUES("282","de_DE",""); -INSERT INTO `state_i18n` VALUES("282","en_US","Kagawa"); -INSERT INTO `state_i18n` VALUES("282","es_ES",""); -INSERT INTO `state_i18n` VALUES("282","fr_FR","Kagawa"); -INSERT INTO `state_i18n` VALUES("283","de_DE",""); -INSERT INTO `state_i18n` VALUES("283","en_US","Kagoshima"); -INSERT INTO `state_i18n` VALUES("283","es_ES",""); -INSERT INTO `state_i18n` VALUES("283","fr_FR","Kagoshima"); -INSERT INTO `state_i18n` VALUES("284","de_DE",""); -INSERT INTO `state_i18n` VALUES("284","en_US","Kanagawa"); -INSERT INTO `state_i18n` VALUES("284","es_ES",""); -INSERT INTO `state_i18n` VALUES("284","fr_FR","Kanagawa"); -INSERT INTO `state_i18n` VALUES("285","de_DE",""); -INSERT INTO `state_i18n` VALUES("285","en_US","Kochi"); -INSERT INTO `state_i18n` VALUES("285","es_ES",""); -INSERT INTO `state_i18n` VALUES("285","fr_FR","Kochi"); -INSERT INTO `state_i18n` VALUES("286","de_DE",""); -INSERT INTO `state_i18n` VALUES("286","en_US","Kumamoto"); -INSERT INTO `state_i18n` VALUES("286","es_ES",""); -INSERT INTO `state_i18n` VALUES("286","fr_FR","Kumamoto"); -INSERT INTO `state_i18n` VALUES("287","de_DE",""); -INSERT INTO `state_i18n` VALUES("287","en_US","Kyoto"); -INSERT INTO `state_i18n` VALUES("287","es_ES",""); -INSERT INTO `state_i18n` VALUES("287","fr_FR","Kyoto"); -INSERT INTO `state_i18n` VALUES("288","de_DE",""); -INSERT INTO `state_i18n` VALUES("288","en_US","Mie"); -INSERT INTO `state_i18n` VALUES("288","es_ES",""); -INSERT INTO `state_i18n` VALUES("288","fr_FR","Mie"); -INSERT INTO `state_i18n` VALUES("289","de_DE",""); -INSERT INTO `state_i18n` VALUES("289","en_US","Miyagi"); -INSERT INTO `state_i18n` VALUES("289","es_ES",""); -INSERT INTO `state_i18n` VALUES("289","fr_FR","Miyagi"); -INSERT INTO `state_i18n` VALUES("290","de_DE",""); -INSERT INTO `state_i18n` VALUES("290","en_US","Miyazaki"); -INSERT INTO `state_i18n` VALUES("290","es_ES",""); -INSERT INTO `state_i18n` VALUES("290","fr_FR","Miyazaki"); -INSERT INTO `state_i18n` VALUES("291","de_DE",""); -INSERT INTO `state_i18n` VALUES("291","en_US","Nagano"); -INSERT INTO `state_i18n` VALUES("291","es_ES",""); -INSERT INTO `state_i18n` VALUES("291","fr_FR","Nagano"); -INSERT INTO `state_i18n` VALUES("292","de_DE",""); -INSERT INTO `state_i18n` VALUES("292","en_US","Nagasaki"); -INSERT INTO `state_i18n` VALUES("292","es_ES",""); -INSERT INTO `state_i18n` VALUES("292","fr_FR","Nagasaki"); -INSERT INTO `state_i18n` VALUES("293","de_DE",""); -INSERT INTO `state_i18n` VALUES("293","en_US","Nara"); -INSERT INTO `state_i18n` VALUES("293","es_ES",""); -INSERT INTO `state_i18n` VALUES("293","fr_FR","Nara"); -INSERT INTO `state_i18n` VALUES("294","de_DE",""); -INSERT INTO `state_i18n` VALUES("294","en_US","Niigata"); -INSERT INTO `state_i18n` VALUES("294","es_ES",""); -INSERT INTO `state_i18n` VALUES("294","fr_FR","Niigata"); -INSERT INTO `state_i18n` VALUES("295","de_DE",""); -INSERT INTO `state_i18n` VALUES("295","en_US","Oita"); -INSERT INTO `state_i18n` VALUES("295","es_ES",""); -INSERT INTO `state_i18n` VALUES("295","fr_FR","Oita"); -INSERT INTO `state_i18n` VALUES("296","de_DE",""); -INSERT INTO `state_i18n` VALUES("296","en_US","Okayama"); -INSERT INTO `state_i18n` VALUES("296","es_ES",""); -INSERT INTO `state_i18n` VALUES("296","fr_FR","Okayama"); -INSERT INTO `state_i18n` VALUES("297","de_DE",""); -INSERT INTO `state_i18n` VALUES("297","en_US","Okinawa"); -INSERT INTO `state_i18n` VALUES("297","es_ES",""); -INSERT INTO `state_i18n` VALUES("297","fr_FR","Okinawa"); -INSERT INTO `state_i18n` VALUES("298","de_DE",""); -INSERT INTO `state_i18n` VALUES("298","en_US","Osaka"); -INSERT INTO `state_i18n` VALUES("298","es_ES",""); -INSERT INTO `state_i18n` VALUES("298","fr_FR","Osaka"); -INSERT INTO `state_i18n` VALUES("299","de_DE",""); -INSERT INTO `state_i18n` VALUES("299","en_US","Saga"); -INSERT INTO `state_i18n` VALUES("299","es_ES",""); -INSERT INTO `state_i18n` VALUES("299","fr_FR","Saga"); -INSERT INTO `state_i18n` VALUES("300","de_DE",""); -INSERT INTO `state_i18n` VALUES("300","en_US","Saitama"); -INSERT INTO `state_i18n` VALUES("300","es_ES",""); -INSERT INTO `state_i18n` VALUES("300","fr_FR","Saitama"); -INSERT INTO `state_i18n` VALUES("301","de_DE",""); -INSERT INTO `state_i18n` VALUES("301","en_US","Shiga"); -INSERT INTO `state_i18n` VALUES("301","es_ES",""); -INSERT INTO `state_i18n` VALUES("301","fr_FR","Shiga"); -INSERT INTO `state_i18n` VALUES("302","de_DE",""); -INSERT INTO `state_i18n` VALUES("302","en_US","Shimane"); -INSERT INTO `state_i18n` VALUES("302","es_ES",""); -INSERT INTO `state_i18n` VALUES("302","fr_FR","Shimane"); -INSERT INTO `state_i18n` VALUES("303","de_DE",""); -INSERT INTO `state_i18n` VALUES("303","en_US","Shizuoka"); -INSERT INTO `state_i18n` VALUES("303","es_ES",""); -INSERT INTO `state_i18n` VALUES("303","fr_FR","Shizuoka"); -INSERT INTO `state_i18n` VALUES("304","de_DE",""); -INSERT INTO `state_i18n` VALUES("304","en_US","Tochigi"); -INSERT INTO `state_i18n` VALUES("304","es_ES",""); -INSERT INTO `state_i18n` VALUES("304","fr_FR","Tochigi"); -INSERT INTO `state_i18n` VALUES("305","de_DE",""); -INSERT INTO `state_i18n` VALUES("305","en_US","Tokushima"); -INSERT INTO `state_i18n` VALUES("305","es_ES",""); -INSERT INTO `state_i18n` VALUES("305","fr_FR","Tokushima"); -INSERT INTO `state_i18n` VALUES("306","de_DE",""); -INSERT INTO `state_i18n` VALUES("306","en_US","Tokyo"); -INSERT INTO `state_i18n` VALUES("306","es_ES",""); -INSERT INTO `state_i18n` VALUES("306","fr_FR","Tokyo"); -INSERT INTO `state_i18n` VALUES("307","de_DE",""); -INSERT INTO `state_i18n` VALUES("307","en_US","Tottori"); -INSERT INTO `state_i18n` VALUES("307","es_ES",""); -INSERT INTO `state_i18n` VALUES("307","fr_FR","Tottori"); -INSERT INTO `state_i18n` VALUES("308","de_DE",""); -INSERT INTO `state_i18n` VALUES("308","en_US","Toyama"); -INSERT INTO `state_i18n` VALUES("308","es_ES",""); -INSERT INTO `state_i18n` VALUES("308","fr_FR","Toyama"); -INSERT INTO `state_i18n` VALUES("309","de_DE",""); -INSERT INTO `state_i18n` VALUES("309","en_US","Wakayama"); -INSERT INTO `state_i18n` VALUES("309","es_ES",""); -INSERT INTO `state_i18n` VALUES("309","fr_FR","Wakayama"); -INSERT INTO `state_i18n` VALUES("310","de_DE",""); -INSERT INTO `state_i18n` VALUES("310","en_US","Yamagata"); -INSERT INTO `state_i18n` VALUES("310","es_ES",""); -INSERT INTO `state_i18n` VALUES("310","fr_FR","Yamagata"); -INSERT INTO `state_i18n` VALUES("311","de_DE",""); -INSERT INTO `state_i18n` VALUES("311","en_US","Yamaguchi"); -INSERT INTO `state_i18n` VALUES("311","es_ES",""); -INSERT INTO `state_i18n` VALUES("311","fr_FR","Yamaguchi"); -INSERT INTO `state_i18n` VALUES("312","de_DE",""); -INSERT INTO `state_i18n` VALUES("312","en_US","Yamanashi"); -INSERT INTO `state_i18n` VALUES("312","es_ES",""); -INSERT INTO `state_i18n` VALUES("312","fr_FR","Yamanashi"); - - - -DROP TABLE `tax`; - -CREATE TABLE `tax` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `type` varchar(255) NOT NULL, - `serialized_requirements` text NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `tax` VALUES("1","Thelia\\TaxEngine\\TaxType\\PricePercentTaxType","eyJwZXJjZW50IjoiMjAifQ==","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `tax_i18n`; - -CREATE TABLE `tax_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `tax_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `tax` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `tax_i18n` VALUES("1","de_DE","20% Französische MwSt.",""); -INSERT INTO `tax_i18n` VALUES("1","en_US","French 20% VAT",""); -INSERT INTO `tax_i18n` VALUES("1","es_ES","Francés 20% de IVA",""); -INSERT INTO `tax_i18n` VALUES("1","fr_FR","TVA française à 20%",""); - - - -DROP TABLE `tax_rule`; - -CREATE TABLE `tax_rule` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `is_default` tinyint(1) NOT NULL DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `tax_rule` VALUES("1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `tax_rule_country`; - -CREATE TABLE `tax_rule_country` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `tax_rule_id` int(11) NOT NULL, - `country_id` int(11) NOT NULL, - `state_id` int(11) DEFAULT NULL, - `tax_id` int(11) NOT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_tax_rule_country_tax_id` (`tax_id`), - KEY `idx_tax_rule_country_tax_rule_id` (`tax_rule_id`), - KEY `idx_tax_rule_country_country_id` (`country_id`), - KEY `idx_tax_rule_country_tax_rule_id_country_id_position` (`tax_rule_id`,`country_id`,`position`), - KEY `idx_tax_rule_country_state_id` (`state_id`), - CONSTRAINT `fk_tax_rule_country_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_tax_rule_country_state_id` FOREIGN KEY (`state_id`) REFERENCES `state` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_tax_rule_country_tax_id` FOREIGN KEY (`tax_id`) REFERENCES `tax` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_tax_rule_country_tax_rule_id` FOREIGN KEY (`tax_rule_id`) REFERENCES `tax_rule` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `tax_rule_country` VALUES("1","1","64","","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `tax_rule_i18n`; - -CREATE TABLE `tax_rule_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `tax_rule_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `tax_rule` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `tax_rule_i18n` VALUES("1","de_DE","20% Französische MwSt.",""); -INSERT INTO `tax_rule_i18n` VALUES("1","en_US","French 20% VAT",""); -INSERT INTO `tax_rule_i18n` VALUES("1","es_ES","Francés 20% de IVA",""); -INSERT INTO `tax_rule_i18n` VALUES("1","fr_FR","TVA française à 20%",""); - - - -DROP TABLE `template`; - -CREATE TABLE `template` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; - -INSERT INTO `template` VALUES("1","2017-03-01 16:05:24","2017-03-01 16:05:24"); -INSERT INTO `template` VALUES("2","2017-03-01 16:07:04","2017-03-01 16:07:04"); -INSERT INTO `template` VALUES("3","2017-05-23 12:43:05","2017-05-23 12:43:05"); - - - -DROP TABLE `template_i18n`; - -CREATE TABLE `template_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `name` varchar(255) DEFAULT NULL, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `template_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `template` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `template_i18n` VALUES("1","fr_FR","Pot"); -INSERT INTO `template_i18n` VALUES("2","fr_FR","Panière"); -INSERT INTO `template_i18n` VALUES("3","fr_FR","Au détail"); - - - -SET foreign_key_checks=1; \ No newline at end of file diff --git a/local/local/config/.gitkeep b/local/local/config/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/config/.htaccess b/local/local/config/.htaccess deleted file mode 100644 index f239fe83..00000000 --- a/local/local/config/.htaccess +++ /dev/null @@ -1,2 +0,0 @@ -order deny,allow -deny from all \ No newline at end of file diff --git a/local/local/config/Readme.md b/local/local/config/Readme.md deleted file mode 100644 index d3a2dca4..00000000 --- a/local/local/config/Readme.md +++ /dev/null @@ -1,38 +0,0 @@ -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 ------- -[![Build Status](https://travis-ci.org/thelia/thelia.png?branch=master)](https://travis-ci.org/thelia/thelia) [![License](https://poser.pugx.org/thelia/thelia/license.png)](https://packagist.org/packages/thelia/thelia) [![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/thelia/thelia/badges/quality-score.png?s=61e3e04a69bffd71c29b08e5392080317a546716)](https://scrutinizer-ci.com/g/thelia/thelia/) - -[Thelia](https://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.5 - * Required extensions : - * PDO_Mysql - * openssl - * intl - * gd - * curl - * calendar - * dom - * fileinfo - * safe_mode off - * memory_limit at least 128M, preferably 256. - * post_max_size 20M - * upload_max_filesize 2M -* apache 2 -* mysql diff --git a/local/local/config/build.properties.sample b/local/local/config/build.properties.sample deleted file mode 100644 index 4f9c7788..00000000 --- a/local/local/config/build.properties.sample +++ /dev/null @@ -1,31 +0,0 @@ -# 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 \ No newline at end of file diff --git a/local/local/config/composer.json b/local/local/config/composer.json deleted file mode 100644 index dc793a55..00000000 --- a/local/local/config/composer.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "thelia/config", - "type": "thelia-local", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "config" - } -} diff --git a/local/local/config/database.yml b/local/local/config/database.yml deleted file mode 100644 index 03a7d678..00000000 --- a/local/local/config/database.yml +++ /dev/null @@ -1,6 +0,0 @@ -database: - connection: - driver: mysql - user: boutiquejkthelia - password: ZQS4bPb3Zbyn - dsn: mysql:host=HackLaurent.local;dbname=boutiquejkthelia;port=3306 \ No newline at end of file diff --git a/local/local/config/database.yml.sample b/local/local/config/database.yml.sample deleted file mode 100644 index e1afbf00..00000000 --- a/local/local/config/database.yml.sample +++ /dev/null @@ -1,6 +0,0 @@ -database: - connection: - driver: %DRIVER% - user: %USERNAME% - password: %PASSWORD% - dsn: %DSN% \ No newline at end of file diff --git a/local/local/config/schema.xml b/local/local/config/schema.xml deleted file mode 100644 index 2da36500..00000000 --- a/local/local/config/schema.xml +++ /dev/null @@ -1,1938 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - -
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
- - - - - -
- - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - -
- - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - -
-
diff --git a/local/local/media/.gitkeep b/local/local/media/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/media/images/carousel/banniere_5x106-2.jpg b/local/local/media/images/carousel/banniere_5x106-2.jpg deleted file mode 100644 index 823a758a89910d1fbe4ffdbb5f9605b178b18a84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96051 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 G0RP#xtZa_} diff --git a/local/local/media/images/carousel/banniere_chutney_figue-1.jpg b/local/local/media/images/carousel/banniere_chutney_figue-1.jpg deleted file mode 100644 index 818f2c791890e6cb065d66a7cbd17b1fa9319d10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138215 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

{xm6ZWJ`RUYdhMBLQfc*0uby@5EW` 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

RFos(8kSzcP_~=ZRv>m^@U-{bHR(@FzKm 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 F|Jmf?^8f$< diff --git a/local/local/media/images/module/PayPal-1-logo.png b/local/local/media/images/module/PayPal-1-logo.png deleted file mode 100644 index 1fe1879f418eef9825666c9eaacd02c6945c7356..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4196 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 diff --git a/local/local/media/images/store/banner.jpg b/local/local/media/images/store/banner.jpg deleted file mode 100644 index c80e165299382568fdd04c22bd649e2923dae227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74372 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 L^>bP0l+XkKiU|DW diff --git a/local/local/media/images/store/logo.png b/local/local/media/images/store/logo.png deleted file mode 100644 index 6cb56aea7e004046f8eeff8cbfa7fbcf50286ab9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2593 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 B@K*o; diff --git a/local/local/modules/.gitkeep b/local/local/modules/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/modules/Carousel/CHANGELOG.md b/local/local/modules/Carousel/CHANGELOG.md deleted file mode 100644 index b4525a3b..00000000 --- a/local/local/modules/Carousel/CHANGELOG.md +++ /dev/null @@ -1,6 +0,0 @@ -# 2.3.0-alpha1 - -- Moved the images from the directory 'media' in the module to thelia/local/media/images/carousel. -- The current images will be automatically copied in the new directory during the update of the module -- Removed AdminIncludes directory -- All html,js and css files are now in 'templates' \ No newline at end of file diff --git a/local/local/modules/Carousel/Carousel.php b/local/local/modules/Carousel/Carousel.php deleted file mode 100644 index b0caadf0..00000000 --- a/local/local/modules/Carousel/Carousel.php +++ /dev/null @@ -1,89 +0,0 @@ - - */ -class Carousel extends BaseModule -{ - const DOMAIN_NAME = 'carousel'; - - public function preActivation(ConnectionInterface $con = null) - { - if (! $this->getConfigValue('is_initialized', false)) { - $database = new Database($con); - - $database->insertSql(null, array(__DIR__ . '/Config/thelia.sql')); - - $this->setConfigValue('is_initialized', true); - } - - return true; - } - - public function destroy(ConnectionInterface $con = null, $deleteModuleData = false) - { - $database = new Database($con); - - $database->insertSql(null, array(__DIR__ . '/Config/sql/destroy.sql')); - } - - public function getUploadDir() - { - $uploadDir = ConfigQuery::read('images_library_path'); - - if ($uploadDir === null) { - $uploadDir = THELIA_LOCAL_DIR . 'media' . DS . 'images'; - } else { - $uploadDir = THELIA_ROOT . $uploadDir; - } - - return $uploadDir . DS . Carousel::DOMAIN_NAME; - } - - /** - * @param string $currentVersion - * @param string $newVersion - * @param ConnectionInterface $con - * @author Thomas Arnaud - */ - public function update($currentVersion, $newVersion, ConnectionInterface $con = null) - { - $uploadDir = $this->getUploadDir(); - $fileSystem = new Filesystem(); - - if (!$fileSystem->exists($uploadDir) && $fileSystem->exists(__DIR__ . DS . 'media' . DS . 'carousel')) { - $finder = new Finder(); - $finder->files()->in(__DIR__ . DS . 'media' . DS . 'carousel'); - - $fileSystem->mkdir($uploadDir); - - /** @var SplFileInfo $file */ - foreach ($finder as $file) { - copy($file, $uploadDir . DS . $file->getRelativePathname()); - } - $fileSystem->remove(__DIR__ . DS . 'media'); - } - } -} diff --git a/local/local/modules/Carousel/Config/config.xml b/local/local/modules/Carousel/Config/config.xml deleted file mode 100644 index 54642a77..00000000 --- a/local/local/modules/Carousel/Config/config.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - -

- - - - - - - - - - - - - - diff --git a/local/local/modules/Carousel/Config/module.xml b/local/local/modules/Carousel/Config/module.xml deleted file mode 100644 index 6608a359..00000000 --- a/local/local/modules/Carousel/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - Carousel\Carousel - - An image carousel - - - Un carrousel d'images - - - en_US - fr_FR - - 2.3.4 - - Manuel Raynaud, Franck Allimant - manu@raynaud.io, franck@cqfdev.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/Carousel/Config/routing.xml b/local/local/modules/Carousel/Config/routing.xml deleted file mode 100644 index 44e95906..00000000 --- a/local/local/modules/Carousel/Config/routing.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - Carousel\Controller\ConfigurationController::uploadImage - - - - Carousel\Controller\ConfigurationController::updateAction - - - - Carousel\Controller\ConfigurationController::deleteAction - - - diff --git a/local/local/modules/Carousel/Config/schema.xml b/local/local/modules/Carousel/Config/schema.xml deleted file mode 100644 index 20ae4d3a..00000000 --- a/local/local/modules/Carousel/Config/schema.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- - -
diff --git a/local/local/modules/Carousel/Config/sql/destroy.sql b/local/local/modules/Carousel/Config/sql/destroy.sql deleted file mode 100644 index e6116063..00000000 --- a/local/local/modules/Carousel/Config/sql/destroy.sql +++ /dev/null @@ -1,6 +0,0 @@ -SET FOREIGN_KEY_CHECKS = 0; - -DROP TABLE IF EXISTS `carousel`; -DROP TABLE IF EXISTS `carousel_i18n`; - -SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file diff --git a/local/local/modules/Carousel/Config/thelia.sql b/local/local/modules/Carousel/Config/thelia.sql deleted file mode 100644 index 71aa0d49..00000000 --- a/local/local/modules/Carousel/Config/thelia.sql +++ /dev/null @@ -1,43 +0,0 @@ -# This is a fix for InnoDB in MySQL >= 4.1.x -# It "suspends judgement" for fkey relationships until are tables are set. -SET FOREIGN_KEY_CHECKS = 0; - --- --------------------------------------------------------------------- --- carousel --- --------------------------------------------------------------------- - -CREATE TABLE IF NOT EXISTS `carousel` -( - `id` INTEGER NOT NULL AUTO_INCREMENT, - `file` VARCHAR(255), - `position` INTEGER, - `url` VARCHAR(255), - `created_at` DATETIME, - `updated_at` DATETIME, - PRIMARY KEY (`id`) -) ENGINE=InnoDB; - --- --------------------------------------------------------------------- --- carousel_i18n --- --------------------------------------------------------------------- - - - -CREATE TABLE IF NOT EXISTS `carousel_i18n` -( - `id` INTEGER NOT NULL, - `locale` VARCHAR(5) DEFAULT 'en_US' NOT NULL, - `alt` VARCHAR(255), - `title` VARCHAR(255), - `description` LONGTEXT, - `chapo` TEXT, - `postscriptum` TEXT, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `carousel_i18n_FK_1` - FOREIGN KEY (`id`) - REFERENCES `carousel` (`id`) - ON DELETE CASCADE -) ENGINE=InnoDB; - -# This restores the fkey checks, after having unset them earlier -SET FOREIGN_KEY_CHECKS = 1; diff --git a/local/local/modules/Carousel/Controller/ConfigurationController.php b/local/local/modules/Carousel/Controller/ConfigurationController.php deleted file mode 100644 index f602762e..00000000 --- a/local/local/modules/Carousel/Controller/ConfigurationController.php +++ /dev/null @@ -1,184 +0,0 @@ - - */ -class ConfigurationController extends BaseAdminController -{ - - public function uploadImage() - { - if (null !== $response = $this->checkAuth(AdminResources::MODULE, ['carousel'], AccessManager::CREATE)) { - return $response; - } - - $request = $this->getRequest(); - $form = $this->createForm('carousel.image'); - $error_message = null; - try { - $this->validateForm($form); - - /** @var \Symfony\Component\HttpFoundation\File\UploadedFile $fileBeingUploaded */ - $fileBeingUploaded = $request->files->get(sprintf('%s[file]', $form->getName()), null, true); - - $fileModel = new Carousel(); - - $fileCreateOrUpdateEvent = new FileCreateOrUpdateEvent(1); - $fileCreateOrUpdateEvent->setModel($fileModel); - $fileCreateOrUpdateEvent->setUploadedFile($fileBeingUploaded); - - $this->dispatch( - TheliaEvents::IMAGE_SAVE, - $fileCreateOrUpdateEvent - ); - - // Compensate issue #1005 - $langs = LangQuery::create()->find(); - - /** @var Lang $lang */ - foreach ($langs as $lang) { - $fileCreateOrUpdateEvent->getModel()->setLocale($lang->getLocale())->setTitle('')->save(); - } - - $response = $this->redirectToConfigurationPage(); - - } catch (FormValidationException $e) { - $error_message = $this->createStandardFormValidationErrorMessage($e); - } - - if (null !== $error_message) { - $this->setupFormErrorContext( - 'carousel upload', - $error_message, - $form - ); - - $response = $this->render( - "module-configure", - [ - 'module_code' => 'Carousel' - ] - ); - } - - return $response; - } - - /** - * @param Form $form - * @param string $fieldName - * @param int $id - * @return string - */ - protected function getFormFieldValue($form, $fieldName, $id) - { - $value = $form->get(sprintf('%s%d', $fieldName, $id))->getData(); - - return $value; - } - - public function updateAction() - { - if (null !== $response = $this->checkAuth(AdminResources::MODULE, ['carousel'], AccessManager::UPDATE)) { - return $response; - } - - $form = $this->createForm('carousel.update'); - - $error_message = null; - - try { - $updateForm = $this->validateForm($form); - - $carousels = CarouselQuery::create()->findAllByPosition(); - - $locale = $this->getCurrentEditionLocale(); - - /** @var Carousel $carousel */ - foreach ($carousels as $carousel) { - $id = $carousel->getId(); - - $carousel - ->setPosition($this->getFormFieldValue($updateForm, 'position', $id)) - ->setUrl($this->getFormFieldValue($updateForm, 'url', $id)) - ->setLocale($locale) - ->setTitle($this->getFormFieldValue($updateForm, 'title', $id)) - ->setAlt($this->getFormFieldValue($updateForm, 'alt', $id)) - ->setChapo($this->getFormFieldValue($updateForm, 'chapo', $id)) - ->setDescription($this->getFormFieldValue($updateForm, 'description', $id)) - ->setPostscriptum($this->getFormFieldValue($updateForm, 'postscriptum', $id)) - ->save(); - } - - $response = $this->redirectToConfigurationPage(); - - } catch (FormValidationException $e) { - $error_message = $this->createStandardFormValidationErrorMessage($e); - } - - if (null !== $error_message) { - $this->setupFormErrorContext( - 'carousel upload', - $error_message, - $form - ); - - $response = $this->render("module-configure", [ 'module_code' => 'Carousel' ]); - } - - return $response; - - } - - public function deleteAction() - { - if (null !== $response = $this->checkAuth(AdminResources::MODULE, ['carousel'], AccessManager::DELETE)) { - return $response; - } - - $imageId = $this->getRequest()->request->get('image_id'); - - if ($imageId != "") { - $carousel = CarouselQuery::create()->findPk($imageId); - - if (null !== $carousel) { - $carousel->delete(); - } - } - - return $this->redirectToConfigurationPage(); - } - - protected function redirectToConfigurationPage() - { - return RedirectResponse::create(URL::getInstance()->absoluteUrl('/admin/module/Carousel')); - } -} \ No newline at end of file diff --git a/local/local/modules/Carousel/Form/CarouselImageForm.php b/local/local/modules/Carousel/Form/CarouselImageForm.php deleted file mode 100644 index 5ad985e3..00000000 --- a/local/local/modules/Carousel/Form/CarouselImageForm.php +++ /dev/null @@ -1,56 +0,0 @@ - - */ -class CarouselImageForm extends BaseForm -{ - /** - * @inheritdoc - */ - protected function buildForm() - { - $translator = Translator::getInstance(); - $this->formBuilder - ->add( - 'file', - 'file', - [ - 'constraints' => [ - new Image() - ], - 'label' => $translator->trans('Carousel image', [], Carousel::DOMAIN_NAME), - 'label_attr' => [ - 'for' => 'file' - ] - ] - ); - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return 'carousel_image'; - } -} \ No newline at end of file diff --git a/local/local/modules/Carousel/Form/CarouselUpdateForm.php b/local/local/modules/Carousel/Form/CarouselUpdateForm.php deleted file mode 100644 index 3bf3a14d..00000000 --- a/local/local/modules/Carousel/Form/CarouselUpdateForm.php +++ /dev/null @@ -1,166 +0,0 @@ - - */ -class CarouselUpdateForm extends BaseForm -{ - /** - * @inheritdoc - */ - protected function buildForm() - { - $formBuilder = $this->formBuilder; - - $carousels = CarouselQuery::create()->orderByPosition()->find(); - - /** @var \Carousel\Model\Carousel $carousel */ - foreach ($carousels as $carousel) { - $id = $carousel->getId(); - - $formBuilder->add( - 'position' . $id, - 'text', - [ - 'label' => $this->translator->trans('Image position in carousel', [], Carousel::DOMAIN_NAME), - 'label_attr' => [ - 'for' => 'position' . $id - ], - 'required' => false, - 'attr' => [ - 'placeholder' => $this->translator->trans( - 'Image position in carousel', - [], - Carousel::DOMAIN_NAME - ) - ] - ] - )->add( - 'alt' . $id, - 'text', - [ - 'label' => $this->translator->trans('Alternative image text', [], Carousel::DOMAIN_NAME), - 'label_attr' => [ - 'for' => 'alt' . $id - ], - 'required' => false, - 'attr' => [ - 'placeholder' => $this->translator->trans( - 'Displayed when image is not visible', - [], - Carousel::DOMAIN_NAME - ) - ] - ] - )->add( - 'url' . $id, - 'url', - [ - 'label' => $this->translator->trans('Image URL', [], Carousel::DOMAIN_NAME), - 'label_attr' => [ - 'for' => 'url' . $id - ], - 'required' => false, - 'attr' => [ - 'placeholder' => $this->translator->trans( - 'Please enter a valid URL', - [], - Carousel::DOMAIN_NAME - ) - ] - ] - )->add( - 'title' . $id, - 'text', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->translator->trans('Title'), - 'label_attr' => [ - 'for' => 'title_field' . $id - ], - 'attr' => [ - 'placeholder' => $this->translator->trans('A descriptive title') - ] - ] - )->add( - 'chapo' . $id, - 'textarea', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->translator->trans('Summary'), - 'label_attr' => [ - 'for' => 'summary_field' . $id, - 'help' => $this->translator->trans( - 'A short description, used when a summary or an introduction is required' - ) - ], - 'attr' => [ - 'rows' => 3, - 'placeholder' => $this->translator->trans('Short description text') - ] - ] - )->add( - 'description' . $id, - 'textarea', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->translator->trans('Detailed description'), - 'label_attr' => [ - 'for' => 'detailed_description_field' . $id, - 'help' => $this->translator->trans('The detailed description.') - ], - 'attr' => [ - 'rows' => 5 - ] - ] - )->add( - 'postscriptum' . $id, - 'textarea', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->translator->trans('Conclusion'), - 'label_attr' => [ - 'for' => 'conclusion_field' . $id, - 'help' => $this->translator->trans( - 'A short text, used when an additional or supplemental information is required.' - ) - ], - 'attr' => [ - 'placeholder' => $this->translator->trans('Short additional text'), - 'rows' => 3, - ] - ] - ); - } - } - - /** - * @inheritdoc - */ - public function getName() - { - return "carousel_update"; - } -} \ No newline at end of file diff --git a/local/local/modules/Carousel/Hook/BackHook.php b/local/local/modules/Carousel/Hook/BackHook.php deleted file mode 100644 index b033670d..00000000 --- a/local/local/modules/Carousel/Hook/BackHook.php +++ /dev/null @@ -1,48 +0,0 @@ - - */ -class BackHook extends BaseHook -{ - - /** - * Add a new entry in the admin tools menu - * - * should add to event a fragment with fields : id,class,url,title - * - * @param HookRenderBlockEvent $event - */ - public function onMainTopMenuTools(HookRenderBlockEvent $event) - { - $event->add( - [ - 'id' => 'tools_menu_carousel', - 'class' => '', - 'url' => URL::getInstance()->absoluteUrl('/admin/module/Carousel'), - 'title' => $this->trans('Edit your carousel', [], Carousel::DOMAIN_NAME) - ] - ); - } -} diff --git a/local/local/modules/Carousel/I18n/backOffice/default/de_DE.php b/local/local/modules/Carousel/I18n/backOffice/default/de_DE.php deleted file mode 100644 index 3efa0e2d..00000000 --- a/local/local/modules/Carousel/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Ein Bild zu Karussell hinzufügen', - 'Add this image to the carousel' => 'Dieses Bild zu Karussell hinzufügen', - 'Carousel image' => 'Karussell-Bild', - 'Carousel images' => 'Karussell-Bilder', - 'Delete a carousel image' => 'Ein Karussell-Bild löschen', - 'Do you really want to remove this image from the carousel ?' => 'Wollen Sie dieses Bild wirklich aus dem Karussell entfernen?', - 'Edit your carousel.' => 'Karussell bearbeiten.', - 'Remove this image' => 'Dieses Bild entfernen', - 'Your carousel contains no image. Please add one using the form above.' => 'Das Karussell enthält kein Bild. Bitte fügen Sie mit dem Formular oben eines hinzu.', - 'Position' => 'Position', -]; diff --git a/local/local/modules/Carousel/I18n/backOffice/default/en_US.php b/local/local/modules/Carousel/I18n/backOffice/default/en_US.php deleted file mode 100644 index 4807e54b..00000000 --- a/local/local/modules/Carousel/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Add an image to the carousel', - 'Add this image to the carousel' => 'Add this image to the carousel', - 'Carousel image' => 'Carousel image', - 'Carousel images' => 'Carousel images', - 'Delete a carousel image' => 'Delete a carousel image', - 'Do you really want to remove this image from the carousel ?' => 'Do you really want to remove this image from the carousel ?', - 'Edit your carousel.' => 'Edit your carousel.', - 'Remove this image' => 'Remove this image', - 'Your carousel contains no image. Please add one using the form above.' => 'Your carousel contains no image. Please add one using the form above.', - 'Position' => 'Position', -); diff --git a/local/local/modules/Carousel/I18n/backOffice/default/fr_FR.php b/local/local/modules/Carousel/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index bb28a5bd..00000000 --- a/local/local/modules/Carousel/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Ajouter une image au carrousel', - 'Add this image to the carousel' => 'Ajouter l\'image au carrousel', - 'Carousel image' => 'Image du carrousel', - 'Carousel images' => 'Images du carrousel', - 'Delete a carousel image' => 'Supprimer une image du carrousel', - 'Do you really want to remove this image from the carousel ?' => 'Voulez-vous vraiment retirer cette image du carrousel ?', - 'Edit your carousel.' => 'Modifier votre carrousel', - 'Remove this image' => 'Supprimer cette image', - 'Your carousel contains no image. Please add one using the form above.' => 'Votre carrousel ne contient aucune image. Ajoutez votre première image avec le formulaire ci-dessus', - 'Position' => 'Position', -]; diff --git a/local/local/modules/Carousel/I18n/backOffice/default/ru_RU.php b/local/local/modules/Carousel/I18n/backOffice/default/ru_RU.php deleted file mode 100644 index fdc531d4..00000000 --- a/local/local/modules/Carousel/I18n/backOffice/default/ru_RU.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Добавить изображение в карусель', - 'Add this image to the carousel' => 'Добавить это изображение в карусель', - 'Carousel image' => 'Изображение карусели', - 'Carousel images' => 'Изображения карусели', - 'Delete a carousel image' => 'Удалить изображение карусели', - 'Do you really want to remove this image from the carousel ?' => 'Вы действительно хотите удалить это изображение из карусели ?', - 'Edit your carousel.' => 'Редактировать вашу карусель.', - 'Remove this image' => 'Удалить это изображение', - 'Your carousel contains no image. Please add one using the form above.' => 'Ваша карусель не содержит изображений. Пожалуйста, добавьте одно используя форму ниже.', - 'Position' => 'Позиция', -); diff --git a/local/local/modules/Carousel/I18n/backOffice/default/tr_TR.php b/local/local/modules/Carousel/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index c9f9f587..00000000 --- a/local/local/modules/Carousel/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Slayt için bir resim ekle', - 'Add this image to the carousel' => 'slayt için bu resim ekleme', - 'Carousel image' => 'slayt görüntü', - 'Carousel images' => 'slayt görüntüleri', - 'Delete a carousel image' => 'Bir slayt resmi silme', - 'Do you really want to remove this image from the carousel ?' => 'Bu görüntüyü slayttan kaldırmak istiyor musunuz?', - 'Edit your carousel.' => 'slayt düzenleyin.', - 'Remove this image' => 'Bu resmi kaldırma', - 'Your carousel contains no image. Please add one using the form above.' => 'Senin slayt hiçbir görüntü içermiyor . Lütfen yukarıdaki formu kullanarak ekleyin.', - 'Position' => 'Pozisyon', -]; diff --git a/local/local/modules/Carousel/I18n/de_DE.php b/local/local/modules/Carousel/I18n/de_DE.php deleted file mode 100644 index 35b35e10..00000000 --- a/local/local/modules/Carousel/I18n/de_DE.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Beschreibungstitel', - 'A short description, used when a summary or an introduction is required' => 'Eine kurze beschreibung, benutzt wenn eine Zusammenfassung order eine Einleitung ist nötig', - 'A short text, used when an additional or supplemental information is required.' => 'Ein kurzer Text, der verwendet wird, wenn eine zusätzliche oder ergänzende Information erforderlich ist.', - 'Alternative image text' => 'Alternativer Bildtext', - 'Carousel image' => 'Karussell-Bild', - 'Conclusion' => 'Abschluss', - 'Detailed description' => 'Detaillierte Beschreibung', - 'Displayed when image is not visible' => 'Angezeigt, wenn das Bild nicht sichtbar ist', - 'Image URL' => 'Bild-URL', - 'Image position in carousel' => 'Position des Bildes im Karussell', - 'Please enter a valid URL' => 'Bitte geben Sie eine gültige URL ein', - 'Short additional text' => 'Kurzer zusätzlicher Text', - 'Short description text' => 'Kurzes Beschreibungstext', - 'Summary' => 'Zusammenfassung', - 'The detailed description.' => 'Die detaillierte Beschreibung.', - 'Title' => 'Titel', -]; diff --git a/local/local/modules/Carousel/I18n/en_US.php b/local/local/modules/Carousel/I18n/en_US.php deleted file mode 100644 index dcc5d1c4..00000000 --- a/local/local/modules/Carousel/I18n/en_US.php +++ /dev/null @@ -1,20 +0,0 @@ - 'A descriptive title', - 'A short description, used when a summary or an introduction is required' => 'A short description, used when a summary or an introduction is required', - 'A short text, used when an additional or supplemental information is required.' => 'A short text, used when an additional or supplemental information is required.', - 'Alternative image text' => 'Alternative image text', - 'Carousel image' => 'Carousel image', - 'Conclusion' => 'Conclusion', - 'Detailed description' => 'Detailed description', - 'Displayed when image is not visible' => 'Displayed when image is not visible', - 'Image URL' => 'Image URL', - 'Image position in carousel' => 'Image position in carousel', - 'Please enter a valid URL' => 'Please enter a valid URL', - 'Short additional text' => 'Short additional text', - 'Short description text' => 'Short description text', - 'Summary' => 'Summary', - 'The detailed description.' => 'The detailed description.', - 'Title' => 'Title', -); diff --git a/local/local/modules/Carousel/I18n/fr_FR.php b/local/local/modules/Carousel/I18n/fr_FR.php deleted file mode 100644 index f5318231..00000000 --- a/local/local/modules/Carousel/I18n/fr_FR.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Un titre descriptif', - 'A short description, used when a summary or an introduction is required' => 'Une courte description, utilisée lorsqu\'un résumé ou une introduction est requise', - 'A short text, used when an additional or supplemental information is required.' => 'Un texte court, utilisé quand une conclusion ou une information complémentaire est nécessaire.', - 'Alternative image text' => 'Texte alternatif de l\'image', - 'Carousel image' => 'Image du carrousel', - 'Conclusion' => 'Conclusion', - 'Detailed description' => 'Description détaillée', - 'Displayed when image is not visible' => 'Affiché lorsque l\'image n\'est pas visible', - 'Image URL' => 'URL de l\'image', - 'Image position in carousel' => 'Position de l\'image dans le carrousel', - 'Please enter a valid URL' => 'Merci d\'ndiquer une URL valide', - 'Short additional text' => 'Un court texte supplémentaire', - 'Short description text' => 'Un court texte de description', - 'Summary' => 'Résumé', - 'The detailed description.' => 'La description détaillée.', - 'Title' => 'Titre', -]; diff --git a/local/local/modules/Carousel/I18n/it_IT.php b/local/local/modules/Carousel/I18n/it_IT.php deleted file mode 100644 index 3919d98b..00000000 --- a/local/local/modules/Carousel/I18n/it_IT.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Un titolo descrittivo', - 'A short description, used when a summary or an introduction is required' => 'Una breve descrizione, utilizzata quando è necessario un sommario o un\'introduzione', - 'Conclusion' => 'Conclusione', - 'Detailed description' => 'Descrizione dettagliata', - 'Summary' => 'Riassunto', - 'The detailed description.' => 'La descrizione dettagliata.', - 'Title' => 'Titolo', -]; diff --git a/local/local/modules/Carousel/I18n/tr_TR.php b/local/local/modules/Carousel/I18n/tr_TR.php deleted file mode 100644 index e8505474..00000000 --- a/local/local/modules/Carousel/I18n/tr_TR.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Açıklayıcı bir başlık', - 'A short description, used when a summary or an introduction is required' => 'Bir Özeti veya giriş gerekli olduğunda kullanılan kısa bir açıklama', - 'A short text, used when an additional or supplemental information is required.' => 'Bir ek ya da tamamlayıcı bilgi gerekli olduğunda kullanılan kısa bir metin.', - 'Alternative image text' => 'Alternatif resim metini', - 'Carousel image' => 'slayt görüntü', - 'Conclusion' => 'Sonuç', - 'Detailed description' => 'Detaylı açıklama', - 'Displayed when image is not visible' => 'resim görünür olmadığında görüntülenen', - 'Image URL' => 'Resim Bağlantı [Link]', - 'Image position in carousel' => 'slayt bulunduğu resim', - 'Please enter a valid URL' => 'Lütfen geçerli bir URL girin', - 'Short additional text' => 'Kısa ek metin', - 'Short description text' => 'Kısa açıklama metni', - 'Summary' => 'Özet', - 'The detailed description.' => 'Ayrıntılı açıklama.', - 'Title' => 'Başlık', -]; diff --git a/local/local/modules/Carousel/Loop/CarouselLoop.php b/local/local/modules/Carousel/Loop/CarouselLoop.php deleted file mode 100644 index 5813a551..00000000 --- a/local/local/modules/Carousel/Loop/CarouselLoop.php +++ /dev/null @@ -1,190 +0,0 @@ - - */ -class CarouselLoop extends Image -{ - - - /** - * @inheritdoc - */ - protected function getArgDefinitions() - { - return new ArgumentCollection( - Argument::createIntTypeArgument('width'), - Argument::createIntTypeArgument('height'), - Argument::createIntTypeArgument('rotation', 0), - Argument::createAnyTypeArgument('background_color'), - Argument::createIntTypeArgument('quality'), - new Argument( - 'resize_mode', - new TypeCollection( - new EnumType(array('crop', 'borders', 'none')) - ), - 'none' - ), - new Argument( - 'order', - new TypeCollection( - new EnumListType(array('alpha', 'alpha-reverse', 'manual', 'manual-reverse', 'random')) - ), - 'manual' - ), - Argument::createAnyTypeArgument('effects'), - Argument::createBooleanTypeArgument('allow_zoom', false) - ); - } - - /** - * @param LoopResult $loopResult - * - * @return LoopResult - */ - public function parseResults(LoopResult $loopResult) - { - /** @var \Carousel\Model\Carousel $carousel */ - foreach ($loopResult->getResultDataCollection() as $carousel) { - $loopResultRow = new LoopResultRow($carousel); - - $event = new ImageEvent(); - $event->setSourceFilepath($carousel->getUploadDir() . DS . $carousel->getFile()) - ->setCacheSubdirectory('carousel'); - - switch ($this->getResizeMode()) { - case 'crop': - $resize_mode = \Thelia\Action\Image::EXACT_RATIO_WITH_CROP; - break; - - case 'borders': - $resize_mode = \Thelia\Action\Image::EXACT_RATIO_WITH_BORDERS; - break; - - case 'none': - default: - $resize_mode = \Thelia\Action\Image::KEEP_IMAGE_RATIO; - - } - - // Prepare tranformations - $width = $this->getWidth(); - $height = $this->getHeight(); - $rotation = $this->getRotation(); - $background_color = $this->getBackgroundColor(); - $quality = $this->getQuality(); - $effects = $this->getEffects(); - - if (!is_null($width)) { - $event->setWidth($width); - } - if (!is_null($height)) { - $event->setHeight($height); - } - $event->setResizeMode($resize_mode); - if (!is_null($rotation)) { - $event->setRotation($rotation); - } - if (!is_null($background_color)) { - $event->setBackgroundColor($background_color); - } - if (!is_null($quality)) { - $event->setQuality($quality); - } - if (!is_null($effects)) { - $event->setEffects($effects); - } - - $event->setAllowZoom($this->getAllowZoom()); - - // Dispatch image processing event - $this->dispatcher->dispatch(TheliaEvents::IMAGE_PROCESS, $event); - - $loopResultRow - ->set('ID', $carousel->getId()) - ->set("LOCALE", $this->locale) - ->set("IMAGE_URL", $event->getFileUrl()) - ->set("ORIGINAL_IMAGE_URL", $event->getOriginalFileUrl()) - ->set("IMAGE_PATH", $event->getCacheFilepath()) - ->set("ORIGINAL_IMAGE_PATH", $event->getSourceFilepath()) - ->set("TITLE", $carousel->getVirtualColumn('i18n_TITLE')) - ->set("CHAPO", $carousel->getVirtualColumn('i18n_CHAPO')) - ->set("DESCRIPTION", $carousel->getVirtualColumn('i18n_DESCRIPTION')) - ->set("POSTSCRIPTUM", $carousel->getVirtualColumn('i18n_POSTSCRIPTUM')) - ->set("ALT", $carousel->getVirtualColumn('i18n_ALT')) - ->set("URL", $carousel->getUrl()) - ->set('POSITION', $carousel->getPosition()) - ; - - $loopResult->addRow($loopResultRow); - } - - return $loopResult; - } - - /** - * this method returns a Propel ModelCriteria - * - * @return \Propel\Runtime\ActiveQuery\ModelCriteria - */ - public function buildModelCriteria() - { - $search = CarouselQuery::create(); - - $this->configureI18nProcessing($search, [ 'ALT', 'TITLE', 'CHAPO', 'DESCRIPTION', 'POSTSCRIPTUM' ]); - - $orders = $this->getOrder(); - - // Results ordering - foreach ($orders as $order) { - switch ($order) { - case "alpha": - $search->addAscendingOrderByColumn('i18n_TITLE'); - break; - case "alpha-reverse": - $search->addDescendingOrderByColumn('i18n_TITLE'); - break; - case "manual-reverse": - $search->orderByPosition(Criteria::DESC); - break; - case "manual": - $search->orderByPosition(Criteria::ASC); - break; - case "random": - $search->clearOrderByColumns(); - $search->addAscendingOrderByColumn('RAND()'); - break(2); - break; - } - } - - return $search; - } -} diff --git a/local/local/modules/Carousel/Model/Base/Carousel.php b/local/local/modules/Carousel/Model/Base/Carousel.php deleted file mode 100644 index 591337fb..00000000 --- a/local/local/modules/Carousel/Model/Base/Carousel.php +++ /dev/null @@ -1,1932 +0,0 @@ -modifiedColumns; - } - - /** - * Has specified column been modified? - * - * @param string $col column fully qualified name (TableMap::TYPE_COLNAME), e.g. Book::AUTHOR_ID - * @return boolean True if $col has been modified. - */ - public function isColumnModified($col) - { - return $this->modifiedColumns && isset($this->modifiedColumns[$col]); - } - - /** - * Get the columns that have been modified in this object. - * @return array A unique list of the modified column names for this object. - */ - public function getModifiedColumns() - { - return $this->modifiedColumns ? array_keys($this->modifiedColumns) : []; - } - - /** - * Returns whether the object has ever been saved. This will - * be false, if the object was retrieved from storage or was created - * and then saved. - * - * @return boolean true, if the object has never been persisted. - */ - public function isNew() - { - return $this->new; - } - - /** - * Setter for the isNew attribute. This method will be called - * by Propel-generated children and objects. - * - * @param boolean $b the state of the object. - */ - public function setNew($b) - { - $this->new = (Boolean) $b; - } - - /** - * Whether this object has been deleted. - * @return boolean The deleted state of this object. - */ - public function isDeleted() - { - return $this->deleted; - } - - /** - * Specify whether this object has been deleted. - * @param boolean $b The deleted state of this object. - * @return void - */ - public function setDeleted($b) - { - $this->deleted = (Boolean) $b; - } - - /** - * Sets the modified state for the object to be false. - * @param string $col If supplied, only the specified column is reset. - * @return void - */ - public function resetModified($col = null) - { - if (null !== $col) { - if (isset($this->modifiedColumns[$col])) { - unset($this->modifiedColumns[$col]); - } - } else { - $this->modifiedColumns = array(); - } - } - - /** - * Compares this with another Carousel instance. If - * obj is an instance of Carousel, delegates to - * equals(Carousel). Otherwise, returns false. - * - * @param mixed $obj The object to compare to. - * @return boolean Whether equal to the object specified. - */ - public function equals($obj) - { - $thisclazz = get_class($this); - if (!is_object($obj) || !($obj instanceof $thisclazz)) { - return false; - } - - if ($this === $obj) { - return true; - } - - if (null === $this->getPrimaryKey() - || null === $obj->getPrimaryKey()) { - return false; - } - - return $this->getPrimaryKey() === $obj->getPrimaryKey(); - } - - /** - * If the primary key is not null, return the hashcode of the - * primary key. Otherwise, return the hash code of the object. - * - * @return int Hashcode - */ - public function hashCode() - { - if (null !== $this->getPrimaryKey()) { - return crc32(serialize($this->getPrimaryKey())); - } - - return crc32(serialize(clone $this)); - } - - /** - * Get the associative array of the virtual columns in this object - * - * @return array - */ - public function getVirtualColumns() - { - return $this->virtualColumns; - } - - /** - * Checks the existence of a virtual column in this object - * - * @param string $name The virtual column name - * @return boolean - */ - public function hasVirtualColumn($name) - { - return array_key_exists($name, $this->virtualColumns); - } - - /** - * Get the value of a virtual column in this object - * - * @param string $name The virtual column name - * @return mixed - * - * @throws PropelException - */ - public function getVirtualColumn($name) - { - if (!$this->hasVirtualColumn($name)) { - throw new PropelException(sprintf('Cannot get value of inexistent virtual column %s.', $name)); - } - - return $this->virtualColumns[$name]; - } - - /** - * Set the value of a virtual column in this object - * - * @param string $name The virtual column name - * @param mixed $value The value to give to the virtual column - * - * @return Carousel The current object, for fluid interface - */ - public function setVirtualColumn($name, $value) - { - $this->virtualColumns[$name] = $value; - - return $this; - } - - /** - * Logs a message using Propel::log(). - * - * @param string $msg - * @param int $priority One of the Propel::LOG_* logging levels - * @return boolean - */ - protected function log($msg, $priority = Propel::LOG_INFO) - { - return Propel::log(get_class($this) . ': ' . $msg, $priority); - } - - /** - * Populate the current object from a string, using a given parser format - * - * $book = new Book(); - * $book->importFrom('JSON', '{"Id":9012,"Title":"Don Juan","ISBN":"0140422161","Price":12.99,"PublisherId":1234,"AuthorId":5678}'); - * - * - * @param mixed $parser A AbstractParser instance, - * or a format name ('XML', 'YAML', 'JSON', 'CSV') - * @param string $data The source data to import from - * - * @return Carousel The current object, for fluid interface - */ - public function importFrom($parser, $data) - { - if (!$parser instanceof AbstractParser) { - $parser = AbstractParser::getParser($parser); - } - - $this->fromArray($parser->toArray($data), TableMap::TYPE_PHPNAME); - - return $this; - } - - /** - * Export the current object properties to a string, using a given parser format - * - * $book = BookQuery::create()->findPk(9012); - * echo $book->exportTo('JSON'); - * => {"Id":9012,"Title":"Don Juan","ISBN":"0140422161","Price":12.99,"PublisherId":1234,"AuthorId":5678}'); - * - * - * @param mixed $parser A AbstractParser instance, or a format name ('XML', 'YAML', 'JSON', 'CSV') - * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy load(ed) columns. Defaults to TRUE. - * @return string The exported data - */ - public function exportTo($parser, $includeLazyLoadColumns = true) - { - if (!$parser instanceof AbstractParser) { - $parser = AbstractParser::getParser($parser); - } - - return $parser->fromArray($this->toArray(TableMap::TYPE_PHPNAME, $includeLazyLoadColumns, array(), true)); - } - - /** - * Clean up internal collections prior to serializing - * Avoids recursive loops that turn into segmentation faults when serializing - */ - public function __sleep() - { - $this->clearAllReferences(); - - return array_keys(get_object_vars($this)); - } - - /** - * Get the [id] column value. - * - * @return int - */ - public function getId() - { - - return $this->id; - } - - /** - * Get the [file] column value. - * - * @return string - */ - public function getFile() - { - - return $this->file; - } - - /** - * Get the [position] column value. - * - * @return int - */ - public function getPosition() - { - - return $this->position; - } - - /** - * Get the [url] column value. - * - * @return string - */ - public function getUrl() - { - - return $this->url; - } - - /** - * Get the [optionally formatted] temporal [created_at] column value. - * - * - * @param string $format The date/time format string (either date()-style or strftime()-style). - * If format is NULL, then the raw \DateTime object will be returned. - * - * @return mixed Formatted date/time value as string or \DateTime object (if format is NULL), NULL if column is NULL, and 0 if column value is 0000-00-00 00:00:00 - * - * @throws PropelException - if unable to parse/validate the date/time value. - */ - public function getCreatedAt($format = NULL) - { - if ($format === null) { - return $this->created_at; - } else { - return $this->created_at instanceof \DateTime ? $this->created_at->format($format) : null; - } - } - - /** - * Get the [optionally formatted] temporal [updated_at] column value. - * - * - * @param string $format The date/time format string (either date()-style or strftime()-style). - * If format is NULL, then the raw \DateTime object will be returned. - * - * @return mixed Formatted date/time value as string or \DateTime object (if format is NULL), NULL if column is NULL, and 0 if column value is 0000-00-00 00:00:00 - * - * @throws PropelException - if unable to parse/validate the date/time value. - */ - public function getUpdatedAt($format = NULL) - { - if ($format === null) { - return $this->updated_at; - } else { - return $this->updated_at instanceof \DateTime ? $this->updated_at->format($format) : null; - } - } - - /** - * Set the value of [id] column. - * - * @param int $v new value - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setId($v) - { - if ($v !== null) { - $v = (int) $v; - } - - if ($this->id !== $v) { - $this->id = $v; - $this->modifiedColumns[CarouselTableMap::ID] = true; - } - - - return $this; - } // setId() - - /** - * Set the value of [file] column. - * - * @param string $v new value - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setFile($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->file !== $v) { - $this->file = $v; - $this->modifiedColumns[CarouselTableMap::FILE] = true; - } - - - return $this; - } // setFile() - - /** - * Set the value of [position] column. - * - * @param int $v new value - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setPosition($v) - { - if ($v !== null) { - $v = (int) $v; - } - - if ($this->position !== $v) { - $this->position = $v; - $this->modifiedColumns[CarouselTableMap::POSITION] = true; - } - - - return $this; - } // setPosition() - - /** - * Set the value of [url] column. - * - * @param string $v new value - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setUrl($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->url !== $v) { - $this->url = $v; - $this->modifiedColumns[CarouselTableMap::URL] = true; - } - - - return $this; - } // setUrl() - - /** - * Sets the value of [created_at] column to a normalized version of the date/time value specified. - * - * @param mixed $v string, integer (timestamp), or \DateTime value. - * Empty strings are treated as NULL. - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setCreatedAt($v) - { - $dt = PropelDateTime::newInstance($v, null, '\DateTime'); - if ($this->created_at !== null || $dt !== null) { - if ($dt !== $this->created_at) { - $this->created_at = $dt; - $this->modifiedColumns[CarouselTableMap::CREATED_AT] = true; - } - } // if either are not null - - - return $this; - } // setCreatedAt() - - /** - * Sets the value of [updated_at] column to a normalized version of the date/time value specified. - * - * @param mixed $v string, integer (timestamp), or \DateTime value. - * Empty strings are treated as NULL. - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setUpdatedAt($v) - { - $dt = PropelDateTime::newInstance($v, null, '\DateTime'); - if ($this->updated_at !== null || $dt !== null) { - if ($dt !== $this->updated_at) { - $this->updated_at = $dt; - $this->modifiedColumns[CarouselTableMap::UPDATED_AT] = true; - } - } // if either are not null - - - return $this; - } // setUpdatedAt() - - /** - * Indicates whether the columns in this object are only set to default values. - * - * This method can be used in conjunction with isModified() to indicate whether an object is both - * modified _and_ has some values set which are non-default. - * - * @return boolean Whether the columns in this object are only been set with default values. - */ - public function hasOnlyDefaultValues() - { - // otherwise, everything was equal, so return TRUE - return true; - } // hasOnlyDefaultValues() - - /** - * Hydrates (populates) the object variables with values from the database resultset. - * - * An offset (0-based "start column") is specified so that objects can be hydrated - * with a subset of the columns in the resultset rows. This is needed, for example, - * for results of JOIN queries where the resultset row includes columns from two or - * more tables. - * - * @param array $row The row returned by DataFetcher->fetch(). - * @param int $startcol 0-based offset column which indicates which restultset column to start with. - * @param boolean $rehydrate Whether this object is being re-hydrated from the database. - * @param string $indexType The index type of $row. Mostly DataFetcher->getIndexType(). - One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * - * @return int next starting column - * @throws PropelException - Any caught Exception will be rewrapped as a PropelException. - */ - public function hydrate($row, $startcol = 0, $rehydrate = false, $indexType = TableMap::TYPE_NUM) - { - try { - - - $col = $row[TableMap::TYPE_NUM == $indexType ? 0 + $startcol : CarouselTableMap::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)]; - $this->id = (null !== $col) ? (int) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 1 + $startcol : CarouselTableMap::translateFieldName('File', TableMap::TYPE_PHPNAME, $indexType)]; - $this->file = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 2 + $startcol : CarouselTableMap::translateFieldName('Position', TableMap::TYPE_PHPNAME, $indexType)]; - $this->position = (null !== $col) ? (int) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : CarouselTableMap::translateFieldName('Url', TableMap::TYPE_PHPNAME, $indexType)]; - $this->url = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : CarouselTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)]; - if ($col === '0000-00-00 00:00:00') { - $col = null; - } - $this->created_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : CarouselTableMap::translateFieldName('UpdatedAt', TableMap::TYPE_PHPNAME, $indexType)]; - if ($col === '0000-00-00 00:00:00') { - $col = null; - } - $this->updated_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null; - $this->resetModified(); - - $this->setNew(false); - - if ($rehydrate) { - $this->ensureConsistency(); - } - - return $startcol + 6; // 6 = CarouselTableMap::NUM_HYDRATE_COLUMNS. - - } catch (Exception $e) { - throw new PropelException("Error populating \Carousel\Model\Carousel object", 0, $e); - } - } - - /** - * Checks and repairs the internal consistency of the object. - * - * This method is executed after an already-instantiated object is re-hydrated - * from the database. It exists to check any foreign keys to make sure that - * the objects related to the current object are correct based on foreign key. - * - * You can override this method in the stub class, but you should always invoke - * the base method from the overridden method (i.e. parent::ensureConsistency()), - * in case your model changes. - * - * @throws PropelException - */ - public function ensureConsistency() - { - } // ensureConsistency - - /** - * Reloads this object from datastore based on primary key and (optionally) resets all associated objects. - * - * This will only work if the object has been saved and has a valid primary key set. - * - * @param boolean $deep (optional) Whether to also de-associated any related objects. - * @param ConnectionInterface $con (optional) The ConnectionInterface connection to use. - * @return void - * @throws PropelException - if this object is deleted, unsaved or doesn't have pk match in db - */ - public function reload($deep = false, ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("Cannot reload a deleted object."); - } - - if ($this->isNew()) { - throw new PropelException("Cannot reload an unsaved object."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getReadConnection(CarouselTableMap::DATABASE_NAME); - } - - // We don't need to alter the object instance pool; we're just modifying this instance - // already in the pool. - - $dataFetcher = ChildCarouselQuery::create(null, $this->buildPkeyCriteria())->setFormatter(ModelCriteria::FORMAT_STATEMENT)->find($con); - $row = $dataFetcher->fetch(); - $dataFetcher->close(); - if (!$row) { - throw new PropelException('Cannot find matching row in the database to reload object values.'); - } - $this->hydrate($row, 0, true, $dataFetcher->getIndexType()); // rehydrate - - if ($deep) { // also de-associate any related objects? - - $this->collCarouselI18ns = null; - - } // if (deep) - } - - /** - * Removes this object from datastore and sets delete attribute. - * - * @param ConnectionInterface $con - * @return void - * @throws PropelException - * @see Carousel::setDeleted() - * @see Carousel::isDeleted() - */ - public function delete(ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("This object has already been deleted."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - - $con->beginTransaction(); - try { - $deleteQuery = ChildCarouselQuery::create() - ->filterByPrimaryKey($this->getPrimaryKey()); - $ret = $this->preDelete($con); - if ($ret) { - $deleteQuery->delete($con); - $this->postDelete($con); - $con->commit(); - $this->setDeleted(true); - } else { - $con->commit(); - } - } catch (Exception $e) { - $con->rollBack(); - throw $e; - } - } - - /** - * Persists this object to the database. - * - * If the object is new, it inserts it; otherwise an update is performed. - * All modified related objects will also be persisted in the doSave() - * method. This method wraps all precipitate database operations in a - * single transaction. - * - * @param ConnectionInterface $con - * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. - * @throws PropelException - * @see doSave() - */ - public function save(ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("You cannot save an object that has been deleted."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - - $con->beginTransaction(); - $isInsert = $this->isNew(); - try { - $ret = $this->preSave($con); - if ($isInsert) { - $ret = $ret && $this->preInsert($con); - // timestampable behavior - if (!$this->isColumnModified(CarouselTableMap::CREATED_AT)) { - $this->setCreatedAt(time()); - } - if (!$this->isColumnModified(CarouselTableMap::UPDATED_AT)) { - $this->setUpdatedAt(time()); - } - } else { - $ret = $ret && $this->preUpdate($con); - // timestampable behavior - if ($this->isModified() && !$this->isColumnModified(CarouselTableMap::UPDATED_AT)) { - $this->setUpdatedAt(time()); - } - } - if ($ret) { - $affectedRows = $this->doSave($con); - if ($isInsert) { - $this->postInsert($con); - } else { - $this->postUpdate($con); - } - $this->postSave($con); - CarouselTableMap::addInstanceToPool($this); - } else { - $affectedRows = 0; - } - $con->commit(); - - return $affectedRows; - } catch (Exception $e) { - $con->rollBack(); - throw $e; - } - } - - /** - * Performs the work of inserting or updating the row in the database. - * - * If the object is new, it inserts it; otherwise an update is performed. - * All related objects are also updated in this method. - * - * @param ConnectionInterface $con - * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. - * @throws PropelException - * @see save() - */ - protected function doSave(ConnectionInterface $con) - { - $affectedRows = 0; // initialize var to track total num of affected rows - if (!$this->alreadyInSave) { - $this->alreadyInSave = true; - - if ($this->isNew() || $this->isModified()) { - // persist changes - if ($this->isNew()) { - $this->doInsert($con); - } else { - $this->doUpdate($con); - } - $affectedRows += 1; - $this->resetModified(); - } - - if ($this->carouselI18nsScheduledForDeletion !== null) { - if (!$this->carouselI18nsScheduledForDeletion->isEmpty()) { - \Carousel\Model\CarouselI18nQuery::create() - ->filterByPrimaryKeys($this->carouselI18nsScheduledForDeletion->getPrimaryKeys(false)) - ->delete($con); - $this->carouselI18nsScheduledForDeletion = null; - } - } - - if ($this->collCarouselI18ns !== null) { - foreach ($this->collCarouselI18ns as $referrerFK) { - if (!$referrerFK->isDeleted() && ($referrerFK->isNew() || $referrerFK->isModified())) { - $affectedRows += $referrerFK->save($con); - } - } - } - - $this->alreadyInSave = false; - - } - - return $affectedRows; - } // doSave() - - /** - * Insert the row in the database. - * - * @param ConnectionInterface $con - * - * @throws PropelException - * @see doSave() - */ - protected function doInsert(ConnectionInterface $con) - { - $modifiedColumns = array(); - $index = 0; - - $this->modifiedColumns[CarouselTableMap::ID] = true; - if (null !== $this->id) { - throw new PropelException('Cannot insert a value for auto-increment primary key (' . CarouselTableMap::ID . ')'); - } - - // check the columns in natural order for more readable SQL queries - if ($this->isColumnModified(CarouselTableMap::ID)) { - $modifiedColumns[':p' . $index++] = 'ID'; - } - if ($this->isColumnModified(CarouselTableMap::FILE)) { - $modifiedColumns[':p' . $index++] = 'FILE'; - } - if ($this->isColumnModified(CarouselTableMap::POSITION)) { - $modifiedColumns[':p' . $index++] = 'POSITION'; - } - if ($this->isColumnModified(CarouselTableMap::URL)) { - $modifiedColumns[':p' . $index++] = 'URL'; - } - if ($this->isColumnModified(CarouselTableMap::CREATED_AT)) { - $modifiedColumns[':p' . $index++] = 'CREATED_AT'; - } - if ($this->isColumnModified(CarouselTableMap::UPDATED_AT)) { - $modifiedColumns[':p' . $index++] = 'UPDATED_AT'; - } - - $sql = sprintf( - 'INSERT INTO carousel (%s) VALUES (%s)', - implode(', ', $modifiedColumns), - implode(', ', array_keys($modifiedColumns)) - ); - - try { - $stmt = $con->prepare($sql); - foreach ($modifiedColumns as $identifier => $columnName) { - switch ($columnName) { - case 'ID': - $stmt->bindValue($identifier, $this->id, PDO::PARAM_INT); - break; - case 'FILE': - $stmt->bindValue($identifier, $this->file, PDO::PARAM_STR); - break; - case 'POSITION': - $stmt->bindValue($identifier, $this->position, PDO::PARAM_INT); - break; - case 'URL': - $stmt->bindValue($identifier, $this->url, PDO::PARAM_STR); - break; - case 'CREATED_AT': - $stmt->bindValue($identifier, $this->created_at ? $this->created_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR); - break; - case 'UPDATED_AT': - $stmt->bindValue($identifier, $this->updated_at ? $this->updated_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR); - break; - } - } - $stmt->execute(); - } catch (Exception $e) { - Propel::log($e->getMessage(), Propel::LOG_ERR); - throw new PropelException(sprintf('Unable to execute INSERT statement [%s]', $sql), 0, $e); - } - - try { - $pk = $con->lastInsertId(); - } catch (Exception $e) { - throw new PropelException('Unable to get autoincrement id.', 0, $e); - } - $this->setId($pk); - - $this->setNew(false); - } - - /** - * Update the row in the database. - * - * @param ConnectionInterface $con - * - * @return Integer Number of updated rows - * @see doSave() - */ - protected function doUpdate(ConnectionInterface $con) - { - $selectCriteria = $this->buildPkeyCriteria(); - $valuesCriteria = $this->buildCriteria(); - - return $selectCriteria->doUpdate($valuesCriteria, $con); - } - - /** - * Retrieves a field from the object by name passed in as a string. - * - * @param string $name name - * @param string $type The type of fieldname the $name is of: - * one of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @return mixed Value of field. - */ - public function getByName($name, $type = TableMap::TYPE_PHPNAME) - { - $pos = CarouselTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); - $field = $this->getByPosition($pos); - - return $field; - } - - /** - * Retrieves a field from the object by Position as specified in the xml schema. - * Zero-based. - * - * @param int $pos position in xml schema - * @return mixed Value of field at $pos - */ - public function getByPosition($pos) - { - switch ($pos) { - case 0: - return $this->getId(); - break; - case 1: - return $this->getFile(); - break; - case 2: - return $this->getPosition(); - break; - case 3: - return $this->getUrl(); - break; - case 4: - return $this->getCreatedAt(); - break; - case 5: - return $this->getUpdatedAt(); - break; - default: - return null; - break; - } // switch() - } - - /** - * Exports the object as an array. - * - * You can specify the key type of the array by passing one of the class - * type constants. - * - * @param string $keyType (optional) One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME, - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy loaded columns. Defaults to TRUE. - * @param array $alreadyDumpedObjects List of objects to skip to avoid recursion - * @param boolean $includeForeignObjects (optional) Whether to include hydrated related objects. Default to FALSE. - * - * @return array an associative array containing the field names (as keys) and field values - */ - public function toArray($keyType = TableMap::TYPE_PHPNAME, $includeLazyLoadColumns = true, $alreadyDumpedObjects = array(), $includeForeignObjects = false) - { - if (isset($alreadyDumpedObjects['Carousel'][$this->getPrimaryKey()])) { - return '*RECURSION*'; - } - $alreadyDumpedObjects['Carousel'][$this->getPrimaryKey()] = true; - $keys = CarouselTableMap::getFieldNames($keyType); - $result = array( - $keys[0] => $this->getId(), - $keys[1] => $this->getFile(), - $keys[2] => $this->getPosition(), - $keys[3] => $this->getUrl(), - $keys[4] => $this->getCreatedAt(), - $keys[5] => $this->getUpdatedAt(), - ); - $virtualColumns = $this->virtualColumns; - foreach ($virtualColumns as $key => $virtualColumn) { - $result[$key] = $virtualColumn; - } - - if ($includeForeignObjects) { - if (null !== $this->collCarouselI18ns) { - $result['CarouselI18ns'] = $this->collCarouselI18ns->toArray(null, true, $keyType, $includeLazyLoadColumns, $alreadyDumpedObjects); - } - } - - return $result; - } - - /** - * Sets a field from the object by name passed in as a string. - * - * @param string $name - * @param mixed $value field value - * @param string $type The type of fieldname the $name is of: - * one of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @return void - */ - public function setByName($name, $value, $type = TableMap::TYPE_PHPNAME) - { - $pos = CarouselTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); - - return $this->setByPosition($pos, $value); - } - - /** - * Sets a field from the object by Position as specified in the xml schema. - * Zero-based. - * - * @param int $pos position in xml schema - * @param mixed $value field value - * @return void - */ - public function setByPosition($pos, $value) - { - switch ($pos) { - case 0: - $this->setId($value); - break; - case 1: - $this->setFile($value); - break; - case 2: - $this->setPosition($value); - break; - case 3: - $this->setUrl($value); - break; - case 4: - $this->setCreatedAt($value); - break; - case 5: - $this->setUpdatedAt($value); - break; - } // switch() - } - - /** - * Populates the object using an array. - * - * This is particularly useful when populating an object from one of the - * request arrays (e.g. $_POST). This method goes through the column - * names, checking to see whether a matching key exists in populated - * array. If so the setByName() method is called for that column. - * - * You can specify the key type of the array by additionally passing one - * of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME, - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * The default key type is the column's TableMap::TYPE_PHPNAME. - * - * @param array $arr An array to populate the object from. - * @param string $keyType The type of keys the array uses. - * @return void - */ - public function fromArray($arr, $keyType = TableMap::TYPE_PHPNAME) - { - $keys = CarouselTableMap::getFieldNames($keyType); - - if (array_key_exists($keys[0], $arr)) $this->setId($arr[$keys[0]]); - if (array_key_exists($keys[1], $arr)) $this->setFile($arr[$keys[1]]); - if (array_key_exists($keys[2], $arr)) $this->setPosition($arr[$keys[2]]); - if (array_key_exists($keys[3], $arr)) $this->setUrl($arr[$keys[3]]); - if (array_key_exists($keys[4], $arr)) $this->setCreatedAt($arr[$keys[4]]); - if (array_key_exists($keys[5], $arr)) $this->setUpdatedAt($arr[$keys[5]]); - } - - /** - * Build a Criteria object containing the values of all modified columns in this object. - * - * @return Criteria The Criteria object containing all modified values. - */ - public function buildCriteria() - { - $criteria = new Criteria(CarouselTableMap::DATABASE_NAME); - - if ($this->isColumnModified(CarouselTableMap::ID)) $criteria->add(CarouselTableMap::ID, $this->id); - if ($this->isColumnModified(CarouselTableMap::FILE)) $criteria->add(CarouselTableMap::FILE, $this->file); - if ($this->isColumnModified(CarouselTableMap::POSITION)) $criteria->add(CarouselTableMap::POSITION, $this->position); - if ($this->isColumnModified(CarouselTableMap::URL)) $criteria->add(CarouselTableMap::URL, $this->url); - if ($this->isColumnModified(CarouselTableMap::CREATED_AT)) $criteria->add(CarouselTableMap::CREATED_AT, $this->created_at); - if ($this->isColumnModified(CarouselTableMap::UPDATED_AT)) $criteria->add(CarouselTableMap::UPDATED_AT, $this->updated_at); - - return $criteria; - } - - /** - * Builds a Criteria object containing the primary key for this object. - * - * Unlike buildCriteria() this method includes the primary key values regardless - * of whether or not they have been modified. - * - * @return Criteria The Criteria object containing value(s) for primary key(s). - */ - public function buildPkeyCriteria() - { - $criteria = new Criteria(CarouselTableMap::DATABASE_NAME); - $criteria->add(CarouselTableMap::ID, $this->id); - - return $criteria; - } - - /** - * Returns the primary key for this object (row). - * @return int - */ - public function getPrimaryKey() - { - return $this->getId(); - } - - /** - * Generic method to set the primary key (id column). - * - * @param int $key Primary key. - * @return void - */ - public function setPrimaryKey($key) - { - $this->setId($key); - } - - /** - * Returns true if the primary key for this object is null. - * @return boolean - */ - public function isPrimaryKeyNull() - { - - return null === $this->getId(); - } - - /** - * Sets contents of passed object to values from current object. - * - * If desired, this method can also make copies of all associated (fkey referrers) - * objects. - * - * @param object $copyObj An object of \Carousel\Model\Carousel (or compatible) type. - * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. - * @param boolean $makeNew Whether to reset autoincrement PKs and make the object new. - * @throws PropelException - */ - public function copyInto($copyObj, $deepCopy = false, $makeNew = true) - { - $copyObj->setFile($this->getFile()); - $copyObj->setPosition($this->getPosition()); - $copyObj->setUrl($this->getUrl()); - $copyObj->setCreatedAt($this->getCreatedAt()); - $copyObj->setUpdatedAt($this->getUpdatedAt()); - - if ($deepCopy) { - // important: temporarily setNew(false) because this affects the behavior of - // the getter/setter methods for fkey referrer objects. - $copyObj->setNew(false); - - foreach ($this->getCarouselI18ns() as $relObj) { - if ($relObj !== $this) { // ensure that we don't try to copy a reference to ourselves - $copyObj->addCarouselI18n($relObj->copy($deepCopy)); - } - } - - } // if ($deepCopy) - - if ($makeNew) { - $copyObj->setNew(true); - $copyObj->setId(NULL); // this is a auto-increment column, so set to default value - } - } - - /** - * Makes a copy of this object that will be inserted as a new row in table when saved. - * It creates a new object filling in the simple attributes, but skipping any primary - * keys that are defined for the table. - * - * If desired, this method can also make copies of all associated (fkey referrers) - * objects. - * - * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. - * @return \Carousel\Model\Carousel Clone of current object. - * @throws PropelException - */ - public function copy($deepCopy = false) - { - // we use get_class(), because this might be a subclass - $clazz = get_class($this); - $copyObj = new $clazz(); - $this->copyInto($copyObj, $deepCopy); - - return $copyObj; - } - - - /** - * Initializes a collection based on the name of a relation. - * Avoids crafting an 'init[$relationName]s' method name - * that wouldn't work when StandardEnglishPluralizer is used. - * - * @param string $relationName The name of the relation to initialize - * @return void - */ - public function initRelation($relationName) - { - if ('CarouselI18n' == $relationName) { - return $this->initCarouselI18ns(); - } - } - - /** - * Clears out the collCarouselI18ns collection - * - * This does not modify the database; however, it will remove any associated objects, causing - * them to be refetched by subsequent calls to accessor method. - * - * @return void - * @see addCarouselI18ns() - */ - public function clearCarouselI18ns() - { - $this->collCarouselI18ns = null; // important to set this to NULL since that means it is uninitialized - } - - /** - * Reset is the collCarouselI18ns collection loaded partially. - */ - public function resetPartialCarouselI18ns($v = true) - { - $this->collCarouselI18nsPartial = $v; - } - - /** - * Initializes the collCarouselI18ns collection. - * - * By default this just sets the collCarouselI18ns collection to an empty array (like clearcollCarouselI18ns()); - * however, you may wish to override this method in your stub class to provide setting appropriate - * to your application -- for example, setting the initial array to the values stored in database. - * - * @param boolean $overrideExisting If set to true, the method call initializes - * the collection even if it is not empty - * - * @return void - */ - public function initCarouselI18ns($overrideExisting = true) - { - if (null !== $this->collCarouselI18ns && !$overrideExisting) { - return; - } - $this->collCarouselI18ns = new ObjectCollection(); - $this->collCarouselI18ns->setModel('\Carousel\Model\CarouselI18n'); - } - - /** - * Gets an array of ChildCarouselI18n objects which contain a foreign key that references this object. - * - * If the $criteria is not null, it is used to always fetch the results from the database. - * Otherwise the results are fetched from the database the first time, then cached. - * Next time the same method is called without $criteria, the cached collection is returned. - * If this ChildCarousel is new, it will return - * an empty collection or the current collection; the criteria is ignored on a new object. - * - * @param Criteria $criteria optional Criteria object to narrow the query - * @param ConnectionInterface $con optional connection object - * @return Collection|ChildCarouselI18n[] List of ChildCarouselI18n objects - * @throws PropelException - */ - public function getCarouselI18ns($criteria = null, ConnectionInterface $con = null) - { - $partial = $this->collCarouselI18nsPartial && !$this->isNew(); - if (null === $this->collCarouselI18ns || null !== $criteria || $partial) { - if ($this->isNew() && null === $this->collCarouselI18ns) { - // return empty collection - $this->initCarouselI18ns(); - } else { - $collCarouselI18ns = ChildCarouselI18nQuery::create(null, $criteria) - ->filterByCarousel($this) - ->find($con); - - if (null !== $criteria) { - if (false !== $this->collCarouselI18nsPartial && count($collCarouselI18ns)) { - $this->initCarouselI18ns(false); - - foreach ($collCarouselI18ns as $obj) { - if (false == $this->collCarouselI18ns->contains($obj)) { - $this->collCarouselI18ns->append($obj); - } - } - - $this->collCarouselI18nsPartial = true; - } - - reset($collCarouselI18ns); - - return $collCarouselI18ns; - } - - if ($partial && $this->collCarouselI18ns) { - foreach ($this->collCarouselI18ns as $obj) { - if ($obj->isNew()) { - $collCarouselI18ns[] = $obj; - } - } - } - - $this->collCarouselI18ns = $collCarouselI18ns; - $this->collCarouselI18nsPartial = false; - } - } - - return $this->collCarouselI18ns; - } - - /** - * Sets a collection of CarouselI18n objects related by a one-to-many relationship - * to the current object. - * It will also schedule objects for deletion based on a diff between old objects (aka persisted) - * and new objects from the given Propel collection. - * - * @param Collection $carouselI18ns A Propel collection. - * @param ConnectionInterface $con Optional connection object - * @return ChildCarousel The current object (for fluent API support) - */ - public function setCarouselI18ns(Collection $carouselI18ns, ConnectionInterface $con = null) - { - $carouselI18nsToDelete = $this->getCarouselI18ns(new Criteria(), $con)->diff($carouselI18ns); - - - //since at least one column in the foreign key is at the same time a PK - //we can not just set a PK to NULL in the lines below. We have to store - //a backup of all values, so we are able to manipulate these items based on the onDelete value later. - $this->carouselI18nsScheduledForDeletion = clone $carouselI18nsToDelete; - - foreach ($carouselI18nsToDelete as $carouselI18nRemoved) { - $carouselI18nRemoved->setCarousel(null); - } - - $this->collCarouselI18ns = null; - foreach ($carouselI18ns as $carouselI18n) { - $this->addCarouselI18n($carouselI18n); - } - - $this->collCarouselI18ns = $carouselI18ns; - $this->collCarouselI18nsPartial = false; - - return $this; - } - - /** - * Returns the number of related CarouselI18n objects. - * - * @param Criteria $criteria - * @param boolean $distinct - * @param ConnectionInterface $con - * @return int Count of related CarouselI18n objects. - * @throws PropelException - */ - public function countCarouselI18ns(Criteria $criteria = null, $distinct = false, ConnectionInterface $con = null) - { - $partial = $this->collCarouselI18nsPartial && !$this->isNew(); - if (null === $this->collCarouselI18ns || null !== $criteria || $partial) { - if ($this->isNew() && null === $this->collCarouselI18ns) { - return 0; - } - - if ($partial && !$criteria) { - return count($this->getCarouselI18ns()); - } - - $query = ChildCarouselI18nQuery::create(null, $criteria); - if ($distinct) { - $query->distinct(); - } - - return $query - ->filterByCarousel($this) - ->count($con); - } - - return count($this->collCarouselI18ns); - } - - /** - * Method called to associate a ChildCarouselI18n object to this object - * through the ChildCarouselI18n foreign key attribute. - * - * @param ChildCarouselI18n $l ChildCarouselI18n - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function addCarouselI18n(ChildCarouselI18n $l) - { - if ($l && $locale = $l->getLocale()) { - $this->setLocale($locale); - $this->currentTranslations[$locale] = $l; - } - if ($this->collCarouselI18ns === null) { - $this->initCarouselI18ns(); - $this->collCarouselI18nsPartial = true; - } - - if (!in_array($l, $this->collCarouselI18ns->getArrayCopy(), true)) { // only add it if the **same** object is not already associated - $this->doAddCarouselI18n($l); - } - - return $this; - } - - /** - * @param CarouselI18n $carouselI18n The carouselI18n object to add. - */ - protected function doAddCarouselI18n($carouselI18n) - { - $this->collCarouselI18ns[]= $carouselI18n; - $carouselI18n->setCarousel($this); - } - - /** - * @param CarouselI18n $carouselI18n The carouselI18n object to remove. - * @return ChildCarousel The current object (for fluent API support) - */ - public function removeCarouselI18n($carouselI18n) - { - if ($this->getCarouselI18ns()->contains($carouselI18n)) { - $this->collCarouselI18ns->remove($this->collCarouselI18ns->search($carouselI18n)); - if (null === $this->carouselI18nsScheduledForDeletion) { - $this->carouselI18nsScheduledForDeletion = clone $this->collCarouselI18ns; - $this->carouselI18nsScheduledForDeletion->clear(); - } - $this->carouselI18nsScheduledForDeletion[]= clone $carouselI18n; - $carouselI18n->setCarousel(null); - } - - return $this; - } - - /** - * Clears the current object and sets all attributes to their default values - */ - public function clear() - { - $this->id = null; - $this->file = null; - $this->position = null; - $this->url = null; - $this->created_at = null; - $this->updated_at = null; - $this->alreadyInSave = false; - $this->clearAllReferences(); - $this->resetModified(); - $this->setNew(true); - $this->setDeleted(false); - } - - /** - * Resets all references to other model objects or collections of model objects. - * - * This method is a user-space workaround for PHP's inability to garbage collect - * objects with circular references (even in PHP 5.3). This is currently necessary - * when using Propel in certain daemon or large-volume/high-memory operations. - * - * @param boolean $deep Whether to also clear the references on all referrer objects. - */ - public function clearAllReferences($deep = false) - { - if ($deep) { - if ($this->collCarouselI18ns) { - foreach ($this->collCarouselI18ns as $o) { - $o->clearAllReferences($deep); - } - } - } // if ($deep) - - // i18n behavior - $this->currentLocale = 'en_US'; - $this->currentTranslations = null; - - $this->collCarouselI18ns = null; - } - - /** - * Return the string representation of this object - * - * @return string - */ - public function __toString() - { - return (string) $this->exportTo(CarouselTableMap::DEFAULT_STRING_FORMAT); - } - - // timestampable behavior - - /** - * Mark the current object so that the update date doesn't get updated during next save - * - * @return ChildCarousel The current object (for fluent API support) - */ - public function keepUpdateDateUnchanged() - { - $this->modifiedColumns[CarouselTableMap::UPDATED_AT] = true; - - return $this; - } - - // i18n behavior - - /** - * Sets the locale for translations - * - * @param string $locale Locale to use for the translation, e.g. 'fr_FR' - * - * @return ChildCarousel The current object (for fluent API support) - */ - public function setLocale($locale = 'en_US') - { - $this->currentLocale = $locale; - - return $this; - } - - /** - * Gets the locale for translations - * - * @return string $locale Locale to use for the translation, e.g. 'fr_FR' - */ - public function getLocale() - { - return $this->currentLocale; - } - - /** - * Returns the current translation for a given locale - * - * @param string $locale Locale to use for the translation, e.g. 'fr_FR' - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarouselI18n */ - public function getTranslation($locale = 'en_US', ConnectionInterface $con = null) - { - if (!isset($this->currentTranslations[$locale])) { - if (null !== $this->collCarouselI18ns) { - foreach ($this->collCarouselI18ns as $translation) { - if ($translation->getLocale() == $locale) { - $this->currentTranslations[$locale] = $translation; - - return $translation; - } - } - } - if ($this->isNew()) { - $translation = new ChildCarouselI18n(); - $translation->setLocale($locale); - } else { - $translation = ChildCarouselI18nQuery::create() - ->filterByPrimaryKey(array($this->getPrimaryKey(), $locale)) - ->findOneOrCreate($con); - $this->currentTranslations[$locale] = $translation; - } - $this->addCarouselI18n($translation); - } - - return $this->currentTranslations[$locale]; - } - - /** - * Remove the translation for a given locale - * - * @param string $locale Locale to use for the translation, e.g. 'fr_FR' - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarousel The current object (for fluent API support) - */ - public function removeTranslation($locale = 'en_US', ConnectionInterface $con = null) - { - if (!$this->isNew()) { - ChildCarouselI18nQuery::create() - ->filterByPrimaryKey(array($this->getPrimaryKey(), $locale)) - ->delete($con); - } - if (isset($this->currentTranslations[$locale])) { - unset($this->currentTranslations[$locale]); - } - foreach ($this->collCarouselI18ns as $key => $translation) { - if ($translation->getLocale() == $locale) { - unset($this->collCarouselI18ns[$key]); - break; - } - } - - return $this; - } - - /** - * Returns the current translation - * - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarouselI18n */ - public function getCurrentTranslation(ConnectionInterface $con = null) - { - return $this->getTranslation($this->getLocale(), $con); - } - - - /** - * Get the [alt] column value. - * - * @return string - */ - public function getAlt() - { - return $this->getCurrentTranslation()->getAlt(); - } - - - /** - * Set the value of [alt] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setAlt($v) - { $this->getCurrentTranslation()->setAlt($v); - - return $this; - } - - - /** - * Get the [title] column value. - * - * @return string - */ - public function getTitle() - { - return $this->getCurrentTranslation()->getTitle(); - } - - - /** - * Set the value of [title] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setTitle($v) - { $this->getCurrentTranslation()->setTitle($v); - - return $this; - } - - - /** - * Get the [description] column value. - * - * @return string - */ - public function getDescription() - { - return $this->getCurrentTranslation()->getDescription(); - } - - - /** - * Set the value of [description] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setDescription($v) - { $this->getCurrentTranslation()->setDescription($v); - - return $this; - } - - - /** - * Get the [chapo] column value. - * - * @return string - */ - public function getChapo() - { - return $this->getCurrentTranslation()->getChapo(); - } - - - /** - * Set the value of [chapo] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setChapo($v) - { $this->getCurrentTranslation()->setChapo($v); - - return $this; - } - - - /** - * Get the [postscriptum] column value. - * - * @return string - */ - public function getPostscriptum() - { - return $this->getCurrentTranslation()->getPostscriptum(); - } - - - /** - * Set the value of [postscriptum] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setPostscriptum($v) - { $this->getCurrentTranslation()->setPostscriptum($v); - - return $this; - } - - /** - * Code to be run before persisting the object - * @param ConnectionInterface $con - * @return boolean - */ - public function preSave(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after persisting the object - * @param ConnectionInterface $con - */ - public function postSave(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before inserting to database - * @param ConnectionInterface $con - * @return boolean - */ - public function preInsert(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after inserting to database - * @param ConnectionInterface $con - */ - public function postInsert(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before updating the object in database - * @param ConnectionInterface $con - * @return boolean - */ - public function preUpdate(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after updating the object in database - * @param ConnectionInterface $con - */ - public function postUpdate(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before deleting the object in database - * @param ConnectionInterface $con - * @return boolean - */ - public function preDelete(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after deleting the object in database - * @param ConnectionInterface $con - */ - public function postDelete(ConnectionInterface $con = null) - { - - } - - - /** - * Derived method to catches calls to undefined methods. - * - * Provides magic import/export method support (fromXML()/toXML(), fromYAML()/toYAML(), etc.). - * Allows to define default __call() behavior if you overwrite __call() - * - * @param string $name - * @param mixed $params - * - * @return array|string - */ - public function __call($name, $params) - { - if (0 === strpos($name, 'get')) { - $virtualColumn = substr($name, 3); - if ($this->hasVirtualColumn($virtualColumn)) { - return $this->getVirtualColumn($virtualColumn); - } - - $virtualColumn = lcfirst($virtualColumn); - if ($this->hasVirtualColumn($virtualColumn)) { - return $this->getVirtualColumn($virtualColumn); - } - } - - if (0 === strpos($name, 'from')) { - $format = substr($name, 4); - - return $this->importFrom($format, reset($params)); - } - - if (0 === strpos($name, 'to')) { - $format = substr($name, 2); - $includeLazyLoadColumns = isset($params[0]) ? $params[0] : true; - - return $this->exportTo($format, $includeLazyLoadColumns); - } - - throw new BadMethodCallException(sprintf('Call to undefined method: %s.', $name)); - } - -} diff --git a/local/local/modules/Carousel/Model/Base/CarouselI18n.php b/local/local/modules/Carousel/Model/Base/CarouselI18n.php deleted file mode 100644 index 0f993bf8..00000000 --- a/local/local/modules/Carousel/Model/Base/CarouselI18n.php +++ /dev/null @@ -1,1500 +0,0 @@ -locale = 'en_US'; - } - - /** - * Initializes internal state of Carousel\Model\Base\CarouselI18n object. - * @see applyDefaults() - */ - public function __construct() - { - $this->applyDefaultValues(); - } - - /** - * Returns whether the object has been modified. - * - * @return boolean True if the object has been modified. - */ - public function isModified() - { - return !!$this->modifiedColumns; - } - - /** - * Has specified column been modified? - * - * @param string $col column fully qualified name (TableMap::TYPE_COLNAME), e.g. Book::AUTHOR_ID - * @return boolean True if $col has been modified. - */ - public function isColumnModified($col) - { - return $this->modifiedColumns && isset($this->modifiedColumns[$col]); - } - - /** - * Get the columns that have been modified in this object. - * @return array A unique list of the modified column names for this object. - */ - public function getModifiedColumns() - { - return $this->modifiedColumns ? array_keys($this->modifiedColumns) : []; - } - - /** - * Returns whether the object has ever been saved. This will - * be false, if the object was retrieved from storage or was created - * and then saved. - * - * @return boolean true, if the object has never been persisted. - */ - public function isNew() - { - return $this->new; - } - - /** - * Setter for the isNew attribute. This method will be called - * by Propel-generated children and objects. - * - * @param boolean $b the state of the object. - */ - public function setNew($b) - { - $this->new = (Boolean) $b; - } - - /** - * Whether this object has been deleted. - * @return boolean The deleted state of this object. - */ - public function isDeleted() - { - return $this->deleted; - } - - /** - * Specify whether this object has been deleted. - * @param boolean $b The deleted state of this object. - * @return void - */ - public function setDeleted($b) - { - $this->deleted = (Boolean) $b; - } - - /** - * Sets the modified state for the object to be false. - * @param string $col If supplied, only the specified column is reset. - * @return void - */ - public function resetModified($col = null) - { - if (null !== $col) { - if (isset($this->modifiedColumns[$col])) { - unset($this->modifiedColumns[$col]); - } - } else { - $this->modifiedColumns = array(); - } - } - - /** - * Compares this with another CarouselI18n instance. If - * obj is an instance of CarouselI18n, delegates to - * equals(CarouselI18n). Otherwise, returns false. - * - * @param mixed $obj The object to compare to. - * @return boolean Whether equal to the object specified. - */ - public function equals($obj) - { - $thisclazz = get_class($this); - if (!is_object($obj) || !($obj instanceof $thisclazz)) { - return false; - } - - if ($this === $obj) { - return true; - } - - if (null === $this->getPrimaryKey() - || null === $obj->getPrimaryKey()) { - return false; - } - - return $this->getPrimaryKey() === $obj->getPrimaryKey(); - } - - /** - * If the primary key is not null, return the hashcode of the - * primary key. Otherwise, return the hash code of the object. - * - * @return int Hashcode - */ - public function hashCode() - { - if (null !== $this->getPrimaryKey()) { - return crc32(serialize($this->getPrimaryKey())); - } - - return crc32(serialize(clone $this)); - } - - /** - * Get the associative array of the virtual columns in this object - * - * @return array - */ - public function getVirtualColumns() - { - return $this->virtualColumns; - } - - /** - * Checks the existence of a virtual column in this object - * - * @param string $name The virtual column name - * @return boolean - */ - public function hasVirtualColumn($name) - { - return array_key_exists($name, $this->virtualColumns); - } - - /** - * Get the value of a virtual column in this object - * - * @param string $name The virtual column name - * @return mixed - * - * @throws PropelException - */ - public function getVirtualColumn($name) - { - if (!$this->hasVirtualColumn($name)) { - throw new PropelException(sprintf('Cannot get value of inexistent virtual column %s.', $name)); - } - - return $this->virtualColumns[$name]; - } - - /** - * Set the value of a virtual column in this object - * - * @param string $name The virtual column name - * @param mixed $value The value to give to the virtual column - * - * @return CarouselI18n The current object, for fluid interface - */ - public function setVirtualColumn($name, $value) - { - $this->virtualColumns[$name] = $value; - - return $this; - } - - /** - * Logs a message using Propel::log(). - * - * @param string $msg - * @param int $priority One of the Propel::LOG_* logging levels - * @return boolean - */ - protected function log($msg, $priority = Propel::LOG_INFO) - { - return Propel::log(get_class($this) . ': ' . $msg, $priority); - } - - /** - * Populate the current object from a string, using a given parser format - * - * $book = new Book(); - * $book->importFrom('JSON', '{"Id":9012,"Title":"Don Juan","ISBN":"0140422161","Price":12.99,"PublisherId":1234,"AuthorId":5678}'); - * - * - * @param mixed $parser A AbstractParser instance, - * or a format name ('XML', 'YAML', 'JSON', 'CSV') - * @param string $data The source data to import from - * - * @return CarouselI18n The current object, for fluid interface - */ - public function importFrom($parser, $data) - { - if (!$parser instanceof AbstractParser) { - $parser = AbstractParser::getParser($parser); - } - - $this->fromArray($parser->toArray($data), TableMap::TYPE_PHPNAME); - - return $this; - } - - /** - * Export the current object properties to a string, using a given parser format - * - * $book = BookQuery::create()->findPk(9012); - * echo $book->exportTo('JSON'); - * => {"Id":9012,"Title":"Don Juan","ISBN":"0140422161","Price":12.99,"PublisherId":1234,"AuthorId":5678}'); - * - * - * @param mixed $parser A AbstractParser instance, or a format name ('XML', 'YAML', 'JSON', 'CSV') - * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy load(ed) columns. Defaults to TRUE. - * @return string The exported data - */ - public function exportTo($parser, $includeLazyLoadColumns = true) - { - if (!$parser instanceof AbstractParser) { - $parser = AbstractParser::getParser($parser); - } - - return $parser->fromArray($this->toArray(TableMap::TYPE_PHPNAME, $includeLazyLoadColumns, array(), true)); - } - - /** - * Clean up internal collections prior to serializing - * Avoids recursive loops that turn into segmentation faults when serializing - */ - public function __sleep() - { - $this->clearAllReferences(); - - return array_keys(get_object_vars($this)); - } - - /** - * Get the [id] column value. - * - * @return int - */ - public function getId() - { - - return $this->id; - } - - /** - * Get the [locale] column value. - * - * @return string - */ - public function getLocale() - { - - return $this->locale; - } - - /** - * Get the [alt] column value. - * - * @return string - */ - public function getAlt() - { - - return $this->alt; - } - - /** - * Get the [title] column value. - * - * @return string - */ - public function getTitle() - { - - return $this->title; - } - - /** - * Get the [description] column value. - * - * @return string - */ - public function getDescription() - { - - return $this->description; - } - - /** - * Get the [chapo] column value. - * - * @return string - */ - public function getChapo() - { - - return $this->chapo; - } - - /** - * Get the [postscriptum] column value. - * - * @return string - */ - public function getPostscriptum() - { - - return $this->postscriptum; - } - - /** - * Set the value of [id] column. - * - * @param int $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setId($v) - { - if ($v !== null) { - $v = (int) $v; - } - - if ($this->id !== $v) { - $this->id = $v; - $this->modifiedColumns[CarouselI18nTableMap::ID] = true; - } - - if ($this->aCarousel !== null && $this->aCarousel->getId() !== $v) { - $this->aCarousel = null; - } - - - return $this; - } // setId() - - /** - * Set the value of [locale] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setLocale($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->locale !== $v) { - $this->locale = $v; - $this->modifiedColumns[CarouselI18nTableMap::LOCALE] = true; - } - - - return $this; - } // setLocale() - - /** - * Set the value of [alt] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setAlt($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->alt !== $v) { - $this->alt = $v; - $this->modifiedColumns[CarouselI18nTableMap::ALT] = true; - } - - - return $this; - } // setAlt() - - /** - * Set the value of [title] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setTitle($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->title !== $v) { - $this->title = $v; - $this->modifiedColumns[CarouselI18nTableMap::TITLE] = true; - } - - - return $this; - } // setTitle() - - /** - * Set the value of [description] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setDescription($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->description !== $v) { - $this->description = $v; - $this->modifiedColumns[CarouselI18nTableMap::DESCRIPTION] = true; - } - - - return $this; - } // setDescription() - - /** - * Set the value of [chapo] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setChapo($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->chapo !== $v) { - $this->chapo = $v; - $this->modifiedColumns[CarouselI18nTableMap::CHAPO] = true; - } - - - return $this; - } // setChapo() - - /** - * Set the value of [postscriptum] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setPostscriptum($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->postscriptum !== $v) { - $this->postscriptum = $v; - $this->modifiedColumns[CarouselI18nTableMap::POSTSCRIPTUM] = true; - } - - - return $this; - } // setPostscriptum() - - /** - * Indicates whether the columns in this object are only set to default values. - * - * This method can be used in conjunction with isModified() to indicate whether an object is both - * modified _and_ has some values set which are non-default. - * - * @return boolean Whether the columns in this object are only been set with default values. - */ - public function hasOnlyDefaultValues() - { - if ($this->locale !== 'en_US') { - return false; - } - - // otherwise, everything was equal, so return TRUE - return true; - } // hasOnlyDefaultValues() - - /** - * Hydrates (populates) the object variables with values from the database resultset. - * - * An offset (0-based "start column") is specified so that objects can be hydrated - * with a subset of the columns in the resultset rows. This is needed, for example, - * for results of JOIN queries where the resultset row includes columns from two or - * more tables. - * - * @param array $row The row returned by DataFetcher->fetch(). - * @param int $startcol 0-based offset column which indicates which restultset column to start with. - * @param boolean $rehydrate Whether this object is being re-hydrated from the database. - * @param string $indexType The index type of $row. Mostly DataFetcher->getIndexType(). - One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * - * @return int next starting column - * @throws PropelException - Any caught Exception will be rewrapped as a PropelException. - */ - public function hydrate($row, $startcol = 0, $rehydrate = false, $indexType = TableMap::TYPE_NUM) - { - try { - - - $col = $row[TableMap::TYPE_NUM == $indexType ? 0 + $startcol : CarouselI18nTableMap::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)]; - $this->id = (null !== $col) ? (int) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 1 + $startcol : CarouselI18nTableMap::translateFieldName('Locale', TableMap::TYPE_PHPNAME, $indexType)]; - $this->locale = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 2 + $startcol : CarouselI18nTableMap::translateFieldName('Alt', TableMap::TYPE_PHPNAME, $indexType)]; - $this->alt = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : CarouselI18nTableMap::translateFieldName('Title', TableMap::TYPE_PHPNAME, $indexType)]; - $this->title = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : CarouselI18nTableMap::translateFieldName('Description', TableMap::TYPE_PHPNAME, $indexType)]; - $this->description = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : CarouselI18nTableMap::translateFieldName('Chapo', TableMap::TYPE_PHPNAME, $indexType)]; - $this->chapo = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : CarouselI18nTableMap::translateFieldName('Postscriptum', TableMap::TYPE_PHPNAME, $indexType)]; - $this->postscriptum = (null !== $col) ? (string) $col : null; - $this->resetModified(); - - $this->setNew(false); - - if ($rehydrate) { - $this->ensureConsistency(); - } - - return $startcol + 7; // 7 = CarouselI18nTableMap::NUM_HYDRATE_COLUMNS. - - } catch (Exception $e) { - throw new PropelException("Error populating \Carousel\Model\CarouselI18n object", 0, $e); - } - } - - /** - * Checks and repairs the internal consistency of the object. - * - * This method is executed after an already-instantiated object is re-hydrated - * from the database. It exists to check any foreign keys to make sure that - * the objects related to the current object are correct based on foreign key. - * - * You can override this method in the stub class, but you should always invoke - * the base method from the overridden method (i.e. parent::ensureConsistency()), - * in case your model changes. - * - * @throws PropelException - */ - public function ensureConsistency() - { - if ($this->aCarousel !== null && $this->id !== $this->aCarousel->getId()) { - $this->aCarousel = null; - } - } // ensureConsistency - - /** - * Reloads this object from datastore based on primary key and (optionally) resets all associated objects. - * - * This will only work if the object has been saved and has a valid primary key set. - * - * @param boolean $deep (optional) Whether to also de-associated any related objects. - * @param ConnectionInterface $con (optional) The ConnectionInterface connection to use. - * @return void - * @throws PropelException - if this object is deleted, unsaved or doesn't have pk match in db - */ - public function reload($deep = false, ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("Cannot reload a deleted object."); - } - - if ($this->isNew()) { - throw new PropelException("Cannot reload an unsaved object."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getReadConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - // We don't need to alter the object instance pool; we're just modifying this instance - // already in the pool. - - $dataFetcher = ChildCarouselI18nQuery::create(null, $this->buildPkeyCriteria())->setFormatter(ModelCriteria::FORMAT_STATEMENT)->find($con); - $row = $dataFetcher->fetch(); - $dataFetcher->close(); - if (!$row) { - throw new PropelException('Cannot find matching row in the database to reload object values.'); - } - $this->hydrate($row, 0, true, $dataFetcher->getIndexType()); // rehydrate - - if ($deep) { // also de-associate any related objects? - - $this->aCarousel = null; - } // if (deep) - } - - /** - * Removes this object from datastore and sets delete attribute. - * - * @param ConnectionInterface $con - * @return void - * @throws PropelException - * @see CarouselI18n::setDeleted() - * @see CarouselI18n::isDeleted() - */ - public function delete(ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("This object has already been deleted."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - $con->beginTransaction(); - try { - $deleteQuery = ChildCarouselI18nQuery::create() - ->filterByPrimaryKey($this->getPrimaryKey()); - $ret = $this->preDelete($con); - if ($ret) { - $deleteQuery->delete($con); - $this->postDelete($con); - $con->commit(); - $this->setDeleted(true); - } else { - $con->commit(); - } - } catch (Exception $e) { - $con->rollBack(); - throw $e; - } - } - - /** - * Persists this object to the database. - * - * If the object is new, it inserts it; otherwise an update is performed. - * All modified related objects will also be persisted in the doSave() - * method. This method wraps all precipitate database operations in a - * single transaction. - * - * @param ConnectionInterface $con - * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. - * @throws PropelException - * @see doSave() - */ - public function save(ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("You cannot save an object that has been deleted."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - $con->beginTransaction(); - $isInsert = $this->isNew(); - try { - $ret = $this->preSave($con); - if ($isInsert) { - $ret = $ret && $this->preInsert($con); - } else { - $ret = $ret && $this->preUpdate($con); - } - if ($ret) { - $affectedRows = $this->doSave($con); - if ($isInsert) { - $this->postInsert($con); - } else { - $this->postUpdate($con); - } - $this->postSave($con); - CarouselI18nTableMap::addInstanceToPool($this); - } else { - $affectedRows = 0; - } - $con->commit(); - - return $affectedRows; - } catch (Exception $e) { - $con->rollBack(); - throw $e; - } - } - - /** - * Performs the work of inserting or updating the row in the database. - * - * If the object is new, it inserts it; otherwise an update is performed. - * All related objects are also updated in this method. - * - * @param ConnectionInterface $con - * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. - * @throws PropelException - * @see save() - */ - protected function doSave(ConnectionInterface $con) - { - $affectedRows = 0; // initialize var to track total num of affected rows - if (!$this->alreadyInSave) { - $this->alreadyInSave = true; - - // We call the save method on the following object(s) if they - // were passed to this object by their corresponding set - // method. This object relates to these object(s) by a - // foreign key reference. - - if ($this->aCarousel !== null) { - if ($this->aCarousel->isModified() || $this->aCarousel->isNew()) { - $affectedRows += $this->aCarousel->save($con); - } - $this->setCarousel($this->aCarousel); - } - - if ($this->isNew() || $this->isModified()) { - // persist changes - if ($this->isNew()) { - $this->doInsert($con); - } else { - $this->doUpdate($con); - } - $affectedRows += 1; - $this->resetModified(); - } - - $this->alreadyInSave = false; - - } - - return $affectedRows; - } // doSave() - - /** - * Insert the row in the database. - * - * @param ConnectionInterface $con - * - * @throws PropelException - * @see doSave() - */ - protected function doInsert(ConnectionInterface $con) - { - $modifiedColumns = array(); - $index = 0; - - - // check the columns in natural order for more readable SQL queries - if ($this->isColumnModified(CarouselI18nTableMap::ID)) { - $modifiedColumns[':p' . $index++] = 'ID'; - } - if ($this->isColumnModified(CarouselI18nTableMap::LOCALE)) { - $modifiedColumns[':p' . $index++] = 'LOCALE'; - } - if ($this->isColumnModified(CarouselI18nTableMap::ALT)) { - $modifiedColumns[':p' . $index++] = 'ALT'; - } - if ($this->isColumnModified(CarouselI18nTableMap::TITLE)) { - $modifiedColumns[':p' . $index++] = 'TITLE'; - } - if ($this->isColumnModified(CarouselI18nTableMap::DESCRIPTION)) { - $modifiedColumns[':p' . $index++] = 'DESCRIPTION'; - } - if ($this->isColumnModified(CarouselI18nTableMap::CHAPO)) { - $modifiedColumns[':p' . $index++] = 'CHAPO'; - } - if ($this->isColumnModified(CarouselI18nTableMap::POSTSCRIPTUM)) { - $modifiedColumns[':p' . $index++] = 'POSTSCRIPTUM'; - } - - $sql = sprintf( - 'INSERT INTO carousel_i18n (%s) VALUES (%s)', - implode(', ', $modifiedColumns), - implode(', ', array_keys($modifiedColumns)) - ); - - try { - $stmt = $con->prepare($sql); - foreach ($modifiedColumns as $identifier => $columnName) { - switch ($columnName) { - case 'ID': - $stmt->bindValue($identifier, $this->id, PDO::PARAM_INT); - break; - case 'LOCALE': - $stmt->bindValue($identifier, $this->locale, PDO::PARAM_STR); - break; - case 'ALT': - $stmt->bindValue($identifier, $this->alt, PDO::PARAM_STR); - break; - case 'TITLE': - $stmt->bindValue($identifier, $this->title, PDO::PARAM_STR); - break; - case 'DESCRIPTION': - $stmt->bindValue($identifier, $this->description, PDO::PARAM_STR); - break; - case 'CHAPO': - $stmt->bindValue($identifier, $this->chapo, PDO::PARAM_STR); - break; - case 'POSTSCRIPTUM': - $stmt->bindValue($identifier, $this->postscriptum, PDO::PARAM_STR); - break; - } - } - $stmt->execute(); - } catch (Exception $e) { - Propel::log($e->getMessage(), Propel::LOG_ERR); - throw new PropelException(sprintf('Unable to execute INSERT statement [%s]', $sql), 0, $e); - } - - $this->setNew(false); - } - - /** - * Update the row in the database. - * - * @param ConnectionInterface $con - * - * @return Integer Number of updated rows - * @see doSave() - */ - protected function doUpdate(ConnectionInterface $con) - { - $selectCriteria = $this->buildPkeyCriteria(); - $valuesCriteria = $this->buildCriteria(); - - return $selectCriteria->doUpdate($valuesCriteria, $con); - } - - /** - * Retrieves a field from the object by name passed in as a string. - * - * @param string $name name - * @param string $type The type of fieldname the $name is of: - * one of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @return mixed Value of field. - */ - public function getByName($name, $type = TableMap::TYPE_PHPNAME) - { - $pos = CarouselI18nTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); - $field = $this->getByPosition($pos); - - return $field; - } - - /** - * Retrieves a field from the object by Position as specified in the xml schema. - * Zero-based. - * - * @param int $pos position in xml schema - * @return mixed Value of field at $pos - */ - public function getByPosition($pos) - { - switch ($pos) { - case 0: - return $this->getId(); - break; - case 1: - return $this->getLocale(); - break; - case 2: - return $this->getAlt(); - break; - case 3: - return $this->getTitle(); - break; - case 4: - return $this->getDescription(); - break; - case 5: - return $this->getChapo(); - break; - case 6: - return $this->getPostscriptum(); - break; - default: - return null; - break; - } // switch() - } - - /** - * Exports the object as an array. - * - * You can specify the key type of the array by passing one of the class - * type constants. - * - * @param string $keyType (optional) One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME, - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy loaded columns. Defaults to TRUE. - * @param array $alreadyDumpedObjects List of objects to skip to avoid recursion - * @param boolean $includeForeignObjects (optional) Whether to include hydrated related objects. Default to FALSE. - * - * @return array an associative array containing the field names (as keys) and field values - */ - public function toArray($keyType = TableMap::TYPE_PHPNAME, $includeLazyLoadColumns = true, $alreadyDumpedObjects = array(), $includeForeignObjects = false) - { - if (isset($alreadyDumpedObjects['CarouselI18n'][serialize($this->getPrimaryKey())])) { - return '*RECURSION*'; - } - $alreadyDumpedObjects['CarouselI18n'][serialize($this->getPrimaryKey())] = true; - $keys = CarouselI18nTableMap::getFieldNames($keyType); - $result = array( - $keys[0] => $this->getId(), - $keys[1] => $this->getLocale(), - $keys[2] => $this->getAlt(), - $keys[3] => $this->getTitle(), - $keys[4] => $this->getDescription(), - $keys[5] => $this->getChapo(), - $keys[6] => $this->getPostscriptum(), - ); - $virtualColumns = $this->virtualColumns; - foreach ($virtualColumns as $key => $virtualColumn) { - $result[$key] = $virtualColumn; - } - - if ($includeForeignObjects) { - if (null !== $this->aCarousel) { - $result['Carousel'] = $this->aCarousel->toArray($keyType, $includeLazyLoadColumns, $alreadyDumpedObjects, true); - } - } - - return $result; - } - - /** - * Sets a field from the object by name passed in as a string. - * - * @param string $name - * @param mixed $value field value - * @param string $type The type of fieldname the $name is of: - * one of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @return void - */ - public function setByName($name, $value, $type = TableMap::TYPE_PHPNAME) - { - $pos = CarouselI18nTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); - - return $this->setByPosition($pos, $value); - } - - /** - * Sets a field from the object by Position as specified in the xml schema. - * Zero-based. - * - * @param int $pos position in xml schema - * @param mixed $value field value - * @return void - */ - public function setByPosition($pos, $value) - { - switch ($pos) { - case 0: - $this->setId($value); - break; - case 1: - $this->setLocale($value); - break; - case 2: - $this->setAlt($value); - break; - case 3: - $this->setTitle($value); - break; - case 4: - $this->setDescription($value); - break; - case 5: - $this->setChapo($value); - break; - case 6: - $this->setPostscriptum($value); - break; - } // switch() - } - - /** - * Populates the object using an array. - * - * This is particularly useful when populating an object from one of the - * request arrays (e.g. $_POST). This method goes through the column - * names, checking to see whether a matching key exists in populated - * array. If so the setByName() method is called for that column. - * - * You can specify the key type of the array by additionally passing one - * of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME, - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * The default key type is the column's TableMap::TYPE_PHPNAME. - * - * @param array $arr An array to populate the object from. - * @param string $keyType The type of keys the array uses. - * @return void - */ - public function fromArray($arr, $keyType = TableMap::TYPE_PHPNAME) - { - $keys = CarouselI18nTableMap::getFieldNames($keyType); - - if (array_key_exists($keys[0], $arr)) $this->setId($arr[$keys[0]]); - if (array_key_exists($keys[1], $arr)) $this->setLocale($arr[$keys[1]]); - if (array_key_exists($keys[2], $arr)) $this->setAlt($arr[$keys[2]]); - if (array_key_exists($keys[3], $arr)) $this->setTitle($arr[$keys[3]]); - if (array_key_exists($keys[4], $arr)) $this->setDescription($arr[$keys[4]]); - if (array_key_exists($keys[5], $arr)) $this->setChapo($arr[$keys[5]]); - if (array_key_exists($keys[6], $arr)) $this->setPostscriptum($arr[$keys[6]]); - } - - /** - * Build a Criteria object containing the values of all modified columns in this object. - * - * @return Criteria The Criteria object containing all modified values. - */ - public function buildCriteria() - { - $criteria = new Criteria(CarouselI18nTableMap::DATABASE_NAME); - - if ($this->isColumnModified(CarouselI18nTableMap::ID)) $criteria->add(CarouselI18nTableMap::ID, $this->id); - if ($this->isColumnModified(CarouselI18nTableMap::LOCALE)) $criteria->add(CarouselI18nTableMap::LOCALE, $this->locale); - if ($this->isColumnModified(CarouselI18nTableMap::ALT)) $criteria->add(CarouselI18nTableMap::ALT, $this->alt); - if ($this->isColumnModified(CarouselI18nTableMap::TITLE)) $criteria->add(CarouselI18nTableMap::TITLE, $this->title); - if ($this->isColumnModified(CarouselI18nTableMap::DESCRIPTION)) $criteria->add(CarouselI18nTableMap::DESCRIPTION, $this->description); - if ($this->isColumnModified(CarouselI18nTableMap::CHAPO)) $criteria->add(CarouselI18nTableMap::CHAPO, $this->chapo); - if ($this->isColumnModified(CarouselI18nTableMap::POSTSCRIPTUM)) $criteria->add(CarouselI18nTableMap::POSTSCRIPTUM, $this->postscriptum); - - return $criteria; - } - - /** - * Builds a Criteria object containing the primary key for this object. - * - * Unlike buildCriteria() this method includes the primary key values regardless - * of whether or not they have been modified. - * - * @return Criteria The Criteria object containing value(s) for primary key(s). - */ - public function buildPkeyCriteria() - { - $criteria = new Criteria(CarouselI18nTableMap::DATABASE_NAME); - $criteria->add(CarouselI18nTableMap::ID, $this->id); - $criteria->add(CarouselI18nTableMap::LOCALE, $this->locale); - - return $criteria; - } - - /** - * Returns the composite primary key for this object. - * The array elements will be in same order as specified in XML. - * @return array - */ - public function getPrimaryKey() - { - $pks = array(); - $pks[0] = $this->getId(); - $pks[1] = $this->getLocale(); - - return $pks; - } - - /** - * Set the [composite] primary key. - * - * @param array $keys The elements of the composite key (order must match the order in XML file). - * @return void - */ - public function setPrimaryKey($keys) - { - $this->setId($keys[0]); - $this->setLocale($keys[1]); - } - - /** - * Returns true if the primary key for this object is null. - * @return boolean - */ - public function isPrimaryKeyNull() - { - - return (null === $this->getId()) && (null === $this->getLocale()); - } - - /** - * Sets contents of passed object to values from current object. - * - * If desired, this method can also make copies of all associated (fkey referrers) - * objects. - * - * @param object $copyObj An object of \Carousel\Model\CarouselI18n (or compatible) type. - * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. - * @param boolean $makeNew Whether to reset autoincrement PKs and make the object new. - * @throws PropelException - */ - public function copyInto($copyObj, $deepCopy = false, $makeNew = true) - { - $copyObj->setId($this->getId()); - $copyObj->setLocale($this->getLocale()); - $copyObj->setAlt($this->getAlt()); - $copyObj->setTitle($this->getTitle()); - $copyObj->setDescription($this->getDescription()); - $copyObj->setChapo($this->getChapo()); - $copyObj->setPostscriptum($this->getPostscriptum()); - if ($makeNew) { - $copyObj->setNew(true); - } - } - - /** - * Makes a copy of this object that will be inserted as a new row in table when saved. - * It creates a new object filling in the simple attributes, but skipping any primary - * keys that are defined for the table. - * - * If desired, this method can also make copies of all associated (fkey referrers) - * objects. - * - * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. - * @return \Carousel\Model\CarouselI18n Clone of current object. - * @throws PropelException - */ - public function copy($deepCopy = false) - { - // we use get_class(), because this might be a subclass - $clazz = get_class($this); - $copyObj = new $clazz(); - $this->copyInto($copyObj, $deepCopy); - - return $copyObj; - } - - /** - * Declares an association between this object and a ChildCarousel object. - * - * @param ChildCarousel $v - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - * @throws PropelException - */ - public function setCarousel(ChildCarousel $v = null) - { - if ($v === null) { - $this->setId(NULL); - } else { - $this->setId($v->getId()); - } - - $this->aCarousel = $v; - - // Add binding for other direction of this n:n relationship. - // If this object has already been added to the ChildCarousel object, it will not be re-added. - if ($v !== null) { - $v->addCarouselI18n($this); - } - - - return $this; - } - - - /** - * Get the associated ChildCarousel object - * - * @param ConnectionInterface $con Optional Connection object. - * @return ChildCarousel The associated ChildCarousel object. - * @throws PropelException - */ - public function getCarousel(ConnectionInterface $con = null) - { - if ($this->aCarousel === null && ($this->id !== null)) { - $this->aCarousel = ChildCarouselQuery::create()->findPk($this->id, $con); - /* The following can be used additionally to - guarantee the related object contains a reference - to this object. This level of coupling may, however, be - undesirable since it could result in an only partially populated collection - in the referenced object. - $this->aCarousel->addCarouselI18ns($this); - */ - } - - return $this->aCarousel; - } - - /** - * Clears the current object and sets all attributes to their default values - */ - public function clear() - { - $this->id = null; - $this->locale = null; - $this->alt = null; - $this->title = null; - $this->description = null; - $this->chapo = null; - $this->postscriptum = null; - $this->alreadyInSave = false; - $this->clearAllReferences(); - $this->applyDefaultValues(); - $this->resetModified(); - $this->setNew(true); - $this->setDeleted(false); - } - - /** - * Resets all references to other model objects or collections of model objects. - * - * This method is a user-space workaround for PHP's inability to garbage collect - * objects with circular references (even in PHP 5.3). This is currently necessary - * when using Propel in certain daemon or large-volume/high-memory operations. - * - * @param boolean $deep Whether to also clear the references on all referrer objects. - */ - public function clearAllReferences($deep = false) - { - if ($deep) { - } // if ($deep) - - $this->aCarousel = null; - } - - /** - * Return the string representation of this object - * - * @return string - */ - public function __toString() - { - return (string) $this->exportTo(CarouselI18nTableMap::DEFAULT_STRING_FORMAT); - } - - /** - * Code to be run before persisting the object - * @param ConnectionInterface $con - * @return boolean - */ - public function preSave(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after persisting the object - * @param ConnectionInterface $con - */ - public function postSave(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before inserting to database - * @param ConnectionInterface $con - * @return boolean - */ - public function preInsert(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after inserting to database - * @param ConnectionInterface $con - */ - public function postInsert(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before updating the object in database - * @param ConnectionInterface $con - * @return boolean - */ - public function preUpdate(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after updating the object in database - * @param ConnectionInterface $con - */ - public function postUpdate(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before deleting the object in database - * @param ConnectionInterface $con - * @return boolean - */ - public function preDelete(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after deleting the object in database - * @param ConnectionInterface $con - */ - public function postDelete(ConnectionInterface $con = null) - { - - } - - - /** - * Derived method to catches calls to undefined methods. - * - * Provides magic import/export method support (fromXML()/toXML(), fromYAML()/toYAML(), etc.). - * Allows to define default __call() behavior if you overwrite __call() - * - * @param string $name - * @param mixed $params - * - * @return array|string - */ - public function __call($name, $params) - { - if (0 === strpos($name, 'get')) { - $virtualColumn = substr($name, 3); - if ($this->hasVirtualColumn($virtualColumn)) { - return $this->getVirtualColumn($virtualColumn); - } - - $virtualColumn = lcfirst($virtualColumn); - if ($this->hasVirtualColumn($virtualColumn)) { - return $this->getVirtualColumn($virtualColumn); - } - } - - if (0 === strpos($name, 'from')) { - $format = substr($name, 4); - - return $this->importFrom($format, reset($params)); - } - - if (0 === strpos($name, 'to')) { - $format = substr($name, 2); - $includeLazyLoadColumns = isset($params[0]) ? $params[0] : true; - - return $this->exportTo($format, $includeLazyLoadColumns); - } - - throw new BadMethodCallException(sprintf('Call to undefined method: %s.', $name)); - } - -} diff --git a/local/local/modules/Carousel/Model/Base/CarouselI18nQuery.php b/local/local/modules/Carousel/Model/Base/CarouselI18nQuery.php deleted file mode 100644 index 51711281..00000000 --- a/local/local/modules/Carousel/Model/Base/CarouselI18nQuery.php +++ /dev/null @@ -1,640 +0,0 @@ -setModelAlias($modelAlias); - } - if ($criteria instanceof Criteria) { - $query->mergeWith($criteria); - } - - return $query; - } - - /** - * Find object by primary key. - * Propel uses the instance pool to skip the database if the object exists. - * Go fast if the query is untouched. - * - * - * $obj = $c->findPk(array(12, 34), $con); - * - * - * @param array[$id, $locale] $key Primary key to use for the query - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarouselI18n|array|mixed the result, formatted by the current formatter - */ - public function findPk($key, $con = null) - { - if ($key === null) { - return null; - } - if ((null !== ($obj = CarouselI18nTableMap::getInstanceFromPool(serialize(array((string) $key[0], (string) $key[1]))))) && !$this->formatter) { - // the object is already in the instance pool - return $obj; - } - if ($con === null) { - $con = Propel::getServiceContainer()->getReadConnection(CarouselI18nTableMap::DATABASE_NAME); - } - $this->basePreSelect($con); - if ($this->formatter || $this->modelAlias || $this->with || $this->select - || $this->selectColumns || $this->asColumns || $this->selectModifiers - || $this->map || $this->having || $this->joins) { - return $this->findPkComplex($key, $con); - } else { - return $this->findPkSimple($key, $con); - } - } - - /** - * Find object by primary key using raw SQL to go fast. - * Bypass doSelect() and the object formatter by using generated code. - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con A connection object - * - * @return ChildCarouselI18n A model object, or null if the key is not found - */ - protected function findPkSimple($key, $con) - { - $sql = 'SELECT ID, LOCALE, ALT, TITLE, DESCRIPTION, CHAPO, POSTSCRIPTUM FROM carousel_i18n WHERE ID = :p0 AND LOCALE = :p1'; - try { - $stmt = $con->prepare($sql); - $stmt->bindValue(':p0', $key[0], PDO::PARAM_INT); - $stmt->bindValue(':p1', $key[1], PDO::PARAM_STR); - $stmt->execute(); - } catch (Exception $e) { - Propel::log($e->getMessage(), Propel::LOG_ERR); - throw new PropelException(sprintf('Unable to execute SELECT statement [%s]', $sql), 0, $e); - } - $obj = null; - if ($row = $stmt->fetch(\PDO::FETCH_NUM)) { - $obj = new ChildCarouselI18n(); - $obj->hydrate($row); - CarouselI18nTableMap::addInstanceToPool($obj, serialize(array((string) $key[0], (string) $key[1]))); - } - $stmt->closeCursor(); - - return $obj; - } - - /** - * Find object by primary key. - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con A connection object - * - * @return ChildCarouselI18n|array|mixed the result, formatted by the current formatter - */ - protected function findPkComplex($key, $con) - { - // As the query uses a PK condition, no limit(1) is necessary. - $criteria = $this->isKeepQuery() ? clone $this : $this; - $dataFetcher = $criteria - ->filterByPrimaryKey($key) - ->doSelect($con); - - return $criteria->getFormatter()->init($criteria)->formatOne($dataFetcher); - } - - /** - * Find objects by primary key - * - * $objs = $c->findPks(array(array(12, 56), array(832, 123), array(123, 456)), $con); - * - * @param array $keys Primary keys to use for the query - * @param ConnectionInterface $con an optional connection object - * - * @return ObjectCollection|array|mixed the list of results, formatted by the current formatter - */ - public function findPks($keys, $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getReadConnection($this->getDbName()); - } - $this->basePreSelect($con); - $criteria = $this->isKeepQuery() ? clone $this : $this; - $dataFetcher = $criteria - ->filterByPrimaryKeys($keys) - ->doSelect($con); - - return $criteria->getFormatter()->init($criteria)->format($dataFetcher); - } - - /** - * Filter the query by primary key - * - * @param mixed $key Primary key to use for the query - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByPrimaryKey($key) - { - $this->addUsingAlias(CarouselI18nTableMap::ID, $key[0], Criteria::EQUAL); - $this->addUsingAlias(CarouselI18nTableMap::LOCALE, $key[1], Criteria::EQUAL); - - return $this; - } - - /** - * Filter the query by a list of primary keys - * - * @param array $keys The list of primary key to use for the query - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByPrimaryKeys($keys) - { - if (empty($keys)) { - return $this->add(null, '1<>1', Criteria::CUSTOM); - } - foreach ($keys as $key) { - $cton0 = $this->getNewCriterion(CarouselI18nTableMap::ID, $key[0], Criteria::EQUAL); - $cton1 = $this->getNewCriterion(CarouselI18nTableMap::LOCALE, $key[1], Criteria::EQUAL); - $cton0->addAnd($cton1); - $this->addOr($cton0); - } - - return $this; - } - - /** - * Filter the query on the id column - * - * Example usage: - * - * $query->filterById(1234); // WHERE id = 1234 - * $query->filterById(array(12, 34)); // WHERE id IN (12, 34) - * $query->filterById(array('min' => 12)); // WHERE id > 12 - * - * - * @see filterByCarousel() - * - * @param mixed $id The value to use as filter. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterById($id = null, $comparison = null) - { - if (is_array($id)) { - $useMinMax = false; - if (isset($id['min'])) { - $this->addUsingAlias(CarouselI18nTableMap::ID, $id['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($id['max'])) { - $this->addUsingAlias(CarouselI18nTableMap::ID, $id['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::ID, $id, $comparison); - } - - /** - * Filter the query on the locale column - * - * Example usage: - * - * $query->filterByLocale('fooValue'); // WHERE locale = 'fooValue' - * $query->filterByLocale('%fooValue%'); // WHERE locale LIKE '%fooValue%' - * - * - * @param string $locale The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByLocale($locale = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($locale)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $locale)) { - $locale = str_replace('*', '%', $locale); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::LOCALE, $locale, $comparison); - } - - /** - * Filter the query on the alt column - * - * Example usage: - * - * $query->filterByAlt('fooValue'); // WHERE alt = 'fooValue' - * $query->filterByAlt('%fooValue%'); // WHERE alt LIKE '%fooValue%' - * - * - * @param string $alt The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByAlt($alt = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($alt)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $alt)) { - $alt = str_replace('*', '%', $alt); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::ALT, $alt, $comparison); - } - - /** - * Filter the query on the title column - * - * Example usage: - * - * $query->filterByTitle('fooValue'); // WHERE title = 'fooValue' - * $query->filterByTitle('%fooValue%'); // WHERE title LIKE '%fooValue%' - * - * - * @param string $title The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByTitle($title = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($title)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $title)) { - $title = str_replace('*', '%', $title); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::TITLE, $title, $comparison); - } - - /** - * Filter the query on the description column - * - * Example usage: - * - * $query->filterByDescription('fooValue'); // WHERE description = 'fooValue' - * $query->filterByDescription('%fooValue%'); // WHERE description LIKE '%fooValue%' - * - * - * @param string $description The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByDescription($description = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($description)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $description)) { - $description = str_replace('*', '%', $description); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::DESCRIPTION, $description, $comparison); - } - - /** - * Filter the query on the chapo column - * - * Example usage: - * - * $query->filterByChapo('fooValue'); // WHERE chapo = 'fooValue' - * $query->filterByChapo('%fooValue%'); // WHERE chapo LIKE '%fooValue%' - * - * - * @param string $chapo The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByChapo($chapo = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($chapo)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $chapo)) { - $chapo = str_replace('*', '%', $chapo); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::CHAPO, $chapo, $comparison); - } - - /** - * Filter the query on the postscriptum column - * - * Example usage: - * - * $query->filterByPostscriptum('fooValue'); // WHERE postscriptum = 'fooValue' - * $query->filterByPostscriptum('%fooValue%'); // WHERE postscriptum LIKE '%fooValue%' - * - * - * @param string $postscriptum The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByPostscriptum($postscriptum = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($postscriptum)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $postscriptum)) { - $postscriptum = str_replace('*', '%', $postscriptum); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::POSTSCRIPTUM, $postscriptum, $comparison); - } - - /** - * Filter the query by a related \Carousel\Model\Carousel object - * - * @param \Carousel\Model\Carousel|ObjectCollection $carousel The related object(s) to use as filter - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByCarousel($carousel, $comparison = null) - { - if ($carousel instanceof \Carousel\Model\Carousel) { - return $this - ->addUsingAlias(CarouselI18nTableMap::ID, $carousel->getId(), $comparison); - } elseif ($carousel instanceof ObjectCollection) { - if (null === $comparison) { - $comparison = Criteria::IN; - } - - return $this - ->addUsingAlias(CarouselI18nTableMap::ID, $carousel->toKeyValue('PrimaryKey', 'Id'), $comparison); - } else { - throw new PropelException('filterByCarousel() only accepts arguments of type \Carousel\Model\Carousel or Collection'); - } - } - - /** - * Adds a JOIN clause to the query using the Carousel relation - * - * @param string $relationAlias optional alias for the relation - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function joinCarousel($relationAlias = null, $joinType = 'LEFT JOIN') - { - $tableMap = $this->getTableMap(); - $relationMap = $tableMap->getRelation('Carousel'); - - // create a ModelJoin object for this join - $join = new ModelJoin(); - $join->setJoinType($joinType); - $join->setRelationMap($relationMap, $this->useAliasInSQL ? $this->getModelAlias() : null, $relationAlias); - if ($previousJoin = $this->getPreviousJoin()) { - $join->setPreviousJoin($previousJoin); - } - - // add the ModelJoin to the current object - if ($relationAlias) { - $this->addAlias($relationAlias, $relationMap->getRightTable()->getName()); - $this->addJoinObject($join, $relationAlias); - } else { - $this->addJoinObject($join, 'Carousel'); - } - - return $this; - } - - /** - * Use the Carousel relation Carousel object - * - * @see useQuery() - * - * @param string $relationAlias optional alias for the relation, - * to be used as main alias in the secondary query - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' - * - * @return \Carousel\Model\CarouselQuery A secondary query class using the current class as primary query - */ - public function useCarouselQuery($relationAlias = null, $joinType = 'LEFT JOIN') - { - return $this - ->joinCarousel($relationAlias, $joinType) - ->useQuery($relationAlias ? $relationAlias : 'Carousel', '\Carousel\Model\CarouselQuery'); - } - - /** - * Exclude object from result - * - * @param ChildCarouselI18n $carouselI18n Object to remove from the list of results - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function prune($carouselI18n = null) - { - if ($carouselI18n) { - $this->addCond('pruneCond0', $this->getAliasedColName(CarouselI18nTableMap::ID), $carouselI18n->getId(), Criteria::NOT_EQUAL); - $this->addCond('pruneCond1', $this->getAliasedColName(CarouselI18nTableMap::LOCALE), $carouselI18n->getLocale(), Criteria::NOT_EQUAL); - $this->combine(array('pruneCond0', 'pruneCond1'), Criteria::LOGICAL_OR); - } - - return $this; - } - - /** - * Deletes all rows from the carousel_i18n table. - * - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). - */ - public function doDeleteAll(ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - $affectedRows = 0; // initialize var to track total num of affected rows - try { - // use transaction because $criteria could contain info - // for more than one table or we could emulating ON DELETE CASCADE, etc. - $con->beginTransaction(); - $affectedRows += parent::doDeleteAll($con); - // Because this db requires some delete cascade/set null emulation, we have to - // clear the cached instance *after* the emulation has happened (since - // instances get re-added by the select statement contained therein). - CarouselI18nTableMap::clearInstancePool(); - CarouselI18nTableMap::clearRelatedInstancePool(); - - $con->commit(); - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - - return $affectedRows; - } - - /** - * Performs a DELETE on the database, given a ChildCarouselI18n or Criteria object OR a primary key value. - * - * @param mixed $values Criteria or ChildCarouselI18n object or primary key or array of primary keys - * which is used to create the DELETE statement - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows - * if supported by native driver or if emulated using Propel. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public function delete(ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - $criteria = $this; - - // Set the correct dbName - $criteria->setDbName(CarouselI18nTableMap::DATABASE_NAME); - - $affectedRows = 0; // initialize var to track total num of affected rows - - try { - // use transaction because $criteria could contain info - // for more than one table or we could emulating ON DELETE CASCADE, etc. - $con->beginTransaction(); - - - CarouselI18nTableMap::removeInstanceFromPool($criteria); - - $affectedRows += ModelCriteria::delete($con); - CarouselI18nTableMap::clearRelatedInstancePool(); - $con->commit(); - - return $affectedRows; - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - } - -} // CarouselI18nQuery diff --git a/local/local/modules/Carousel/Model/Base/CarouselQuery.php b/local/local/modules/Carousel/Model/Base/CarouselQuery.php deleted file mode 100644 index b9387e00..00000000 --- a/local/local/modules/Carousel/Model/Base/CarouselQuery.php +++ /dev/null @@ -1,753 +0,0 @@ -setModelAlias($modelAlias); - } - if ($criteria instanceof Criteria) { - $query->mergeWith($criteria); - } - - return $query; - } - - /** - * Find object by primary key. - * Propel uses the instance pool to skip the database if the object exists. - * Go fast if the query is untouched. - * - * - * $obj = $c->findPk(12, $con); - * - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarousel|array|mixed the result, formatted by the current formatter - */ - public function findPk($key, $con = null) - { - if ($key === null) { - return null; - } - if ((null !== ($obj = CarouselTableMap::getInstanceFromPool((string) $key))) && !$this->formatter) { - // the object is already in the instance pool - return $obj; - } - if ($con === null) { - $con = Propel::getServiceContainer()->getReadConnection(CarouselTableMap::DATABASE_NAME); - } - $this->basePreSelect($con); - if ($this->formatter || $this->modelAlias || $this->with || $this->select - || $this->selectColumns || $this->asColumns || $this->selectModifiers - || $this->map || $this->having || $this->joins) { - return $this->findPkComplex($key, $con); - } else { - return $this->findPkSimple($key, $con); - } - } - - /** - * Find object by primary key using raw SQL to go fast. - * Bypass doSelect() and the object formatter by using generated code. - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con A connection object - * - * @return ChildCarousel A model object, or null if the key is not found - */ - protected function findPkSimple($key, $con) - { - $sql = 'SELECT ID, FILE, POSITION, URL, CREATED_AT, UPDATED_AT FROM carousel WHERE ID = :p0'; - try { - $stmt = $con->prepare($sql); - $stmt->bindValue(':p0', $key, PDO::PARAM_INT); - $stmt->execute(); - } catch (Exception $e) { - Propel::log($e->getMessage(), Propel::LOG_ERR); - throw new PropelException(sprintf('Unable to execute SELECT statement [%s]', $sql), 0, $e); - } - $obj = null; - if ($row = $stmt->fetch(\PDO::FETCH_NUM)) { - $obj = new ChildCarousel(); - $obj->hydrate($row); - CarouselTableMap::addInstanceToPool($obj, (string) $key); - } - $stmt->closeCursor(); - - return $obj; - } - - /** - * Find object by primary key. - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con A connection object - * - * @return ChildCarousel|array|mixed the result, formatted by the current formatter - */ - protected function findPkComplex($key, $con) - { - // As the query uses a PK condition, no limit(1) is necessary. - $criteria = $this->isKeepQuery() ? clone $this : $this; - $dataFetcher = $criteria - ->filterByPrimaryKey($key) - ->doSelect($con); - - return $criteria->getFormatter()->init($criteria)->formatOne($dataFetcher); - } - - /** - * Find objects by primary key - * - * $objs = $c->findPks(array(12, 56, 832), $con); - * - * @param array $keys Primary keys to use for the query - * @param ConnectionInterface $con an optional connection object - * - * @return ObjectCollection|array|mixed the list of results, formatted by the current formatter - */ - public function findPks($keys, $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getReadConnection($this->getDbName()); - } - $this->basePreSelect($con); - $criteria = $this->isKeepQuery() ? clone $this : $this; - $dataFetcher = $criteria - ->filterByPrimaryKeys($keys) - ->doSelect($con); - - return $criteria->getFormatter()->init($criteria)->format($dataFetcher); - } - - /** - * Filter the query by primary key - * - * @param mixed $key Primary key to use for the query - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByPrimaryKey($key) - { - - return $this->addUsingAlias(CarouselTableMap::ID, $key, Criteria::EQUAL); - } - - /** - * Filter the query by a list of primary keys - * - * @param array $keys The list of primary key to use for the query - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByPrimaryKeys($keys) - { - - return $this->addUsingAlias(CarouselTableMap::ID, $keys, Criteria::IN); - } - - /** - * Filter the query on the id column - * - * Example usage: - * - * $query->filterById(1234); // WHERE id = 1234 - * $query->filterById(array(12, 34)); // WHERE id IN (12, 34) - * $query->filterById(array('min' => 12)); // WHERE id > 12 - * - * - * @param mixed $id The value to use as filter. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterById($id = null, $comparison = null) - { - if (is_array($id)) { - $useMinMax = false; - if (isset($id['min'])) { - $this->addUsingAlias(CarouselTableMap::ID, $id['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($id['max'])) { - $this->addUsingAlias(CarouselTableMap::ID, $id['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselTableMap::ID, $id, $comparison); - } - - /** - * Filter the query on the file column - * - * Example usage: - * - * $query->filterByFile('fooValue'); // WHERE file = 'fooValue' - * $query->filterByFile('%fooValue%'); // WHERE file LIKE '%fooValue%' - * - * - * @param string $file The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByFile($file = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($file)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $file)) { - $file = str_replace('*', '%', $file); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselTableMap::FILE, $file, $comparison); - } - - /** - * Filter the query on the position column - * - * Example usage: - * - * $query->filterByPosition(1234); // WHERE position = 1234 - * $query->filterByPosition(array(12, 34)); // WHERE position IN (12, 34) - * $query->filterByPosition(array('min' => 12)); // WHERE position > 12 - * - * - * @param mixed $position The value to use as filter. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByPosition($position = null, $comparison = null) - { - if (is_array($position)) { - $useMinMax = false; - if (isset($position['min'])) { - $this->addUsingAlias(CarouselTableMap::POSITION, $position['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($position['max'])) { - $this->addUsingAlias(CarouselTableMap::POSITION, $position['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselTableMap::POSITION, $position, $comparison); - } - - /** - * Filter the query on the url column - * - * Example usage: - * - * $query->filterByUrl('fooValue'); // WHERE url = 'fooValue' - * $query->filterByUrl('%fooValue%'); // WHERE url LIKE '%fooValue%' - * - * - * @param string $url The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByUrl($url = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($url)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $url)) { - $url = str_replace('*', '%', $url); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselTableMap::URL, $url, $comparison); - } - - /** - * Filter the query on the created_at column - * - * Example usage: - * - * $query->filterByCreatedAt('2011-03-14'); // WHERE created_at = '2011-03-14' - * $query->filterByCreatedAt('now'); // WHERE created_at = '2011-03-14' - * $query->filterByCreatedAt(array('max' => 'yesterday')); // WHERE created_at > '2011-03-13' - * - * - * @param mixed $createdAt The value to use as filter. - * Values can be integers (unix timestamps), DateTime objects, or strings. - * Empty strings are treated as NULL. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByCreatedAt($createdAt = null, $comparison = null) - { - if (is_array($createdAt)) { - $useMinMax = false; - if (isset($createdAt['min'])) { - $this->addUsingAlias(CarouselTableMap::CREATED_AT, $createdAt['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($createdAt['max'])) { - $this->addUsingAlias(CarouselTableMap::CREATED_AT, $createdAt['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselTableMap::CREATED_AT, $createdAt, $comparison); - } - - /** - * Filter the query on the updated_at column - * - * Example usage: - * - * $query->filterByUpdatedAt('2011-03-14'); // WHERE updated_at = '2011-03-14' - * $query->filterByUpdatedAt('now'); // WHERE updated_at = '2011-03-14' - * $query->filterByUpdatedAt(array('max' => 'yesterday')); // WHERE updated_at > '2011-03-13' - * - * - * @param mixed $updatedAt The value to use as filter. - * Values can be integers (unix timestamps), DateTime objects, or strings. - * Empty strings are treated as NULL. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByUpdatedAt($updatedAt = null, $comparison = null) - { - if (is_array($updatedAt)) { - $useMinMax = false; - if (isset($updatedAt['min'])) { - $this->addUsingAlias(CarouselTableMap::UPDATED_AT, $updatedAt['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($updatedAt['max'])) { - $this->addUsingAlias(CarouselTableMap::UPDATED_AT, $updatedAt['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselTableMap::UPDATED_AT, $updatedAt, $comparison); - } - - /** - * Filter the query by a related \Carousel\Model\CarouselI18n object - * - * @param \Carousel\Model\CarouselI18n|ObjectCollection $carouselI18n the related object to use as filter - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByCarouselI18n($carouselI18n, $comparison = null) - { - if ($carouselI18n instanceof \Carousel\Model\CarouselI18n) { - return $this - ->addUsingAlias(CarouselTableMap::ID, $carouselI18n->getId(), $comparison); - } elseif ($carouselI18n instanceof ObjectCollection) { - return $this - ->useCarouselI18nQuery() - ->filterByPrimaryKeys($carouselI18n->getPrimaryKeys()) - ->endUse(); - } else { - throw new PropelException('filterByCarouselI18n() only accepts arguments of type \Carousel\Model\CarouselI18n or Collection'); - } - } - - /** - * Adds a JOIN clause to the query using the CarouselI18n relation - * - * @param string $relationAlias optional alias for the relation - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function joinCarouselI18n($relationAlias = null, $joinType = 'LEFT JOIN') - { - $tableMap = $this->getTableMap(); - $relationMap = $tableMap->getRelation('CarouselI18n'); - - // create a ModelJoin object for this join - $join = new ModelJoin(); - $join->setJoinType($joinType); - $join->setRelationMap($relationMap, $this->useAliasInSQL ? $this->getModelAlias() : null, $relationAlias); - if ($previousJoin = $this->getPreviousJoin()) { - $join->setPreviousJoin($previousJoin); - } - - // add the ModelJoin to the current object - if ($relationAlias) { - $this->addAlias($relationAlias, $relationMap->getRightTable()->getName()); - $this->addJoinObject($join, $relationAlias); - } else { - $this->addJoinObject($join, 'CarouselI18n'); - } - - return $this; - } - - /** - * Use the CarouselI18n relation CarouselI18n object - * - * @see useQuery() - * - * @param string $relationAlias optional alias for the relation, - * to be used as main alias in the secondary query - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' - * - * @return \Carousel\Model\CarouselI18nQuery A secondary query class using the current class as primary query - */ - public function useCarouselI18nQuery($relationAlias = null, $joinType = 'LEFT JOIN') - { - return $this - ->joinCarouselI18n($relationAlias, $joinType) - ->useQuery($relationAlias ? $relationAlias : 'CarouselI18n', '\Carousel\Model\CarouselI18nQuery'); - } - - /** - * Exclude object from result - * - * @param ChildCarousel $carousel Object to remove from the list of results - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function prune($carousel = null) - { - if ($carousel) { - $this->addUsingAlias(CarouselTableMap::ID, $carousel->getId(), Criteria::NOT_EQUAL); - } - - return $this; - } - - /** - * Deletes all rows from the carousel table. - * - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). - */ - public function doDeleteAll(ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - $affectedRows = 0; // initialize var to track total num of affected rows - try { - // use transaction because $criteria could contain info - // for more than one table or we could emulating ON DELETE CASCADE, etc. - $con->beginTransaction(); - $affectedRows += parent::doDeleteAll($con); - // Because this db requires some delete cascade/set null emulation, we have to - // clear the cached instance *after* the emulation has happened (since - // instances get re-added by the select statement contained therein). - CarouselTableMap::clearInstancePool(); - CarouselTableMap::clearRelatedInstancePool(); - - $con->commit(); - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - - return $affectedRows; - } - - /** - * Performs a DELETE on the database, given a ChildCarousel or Criteria object OR a primary key value. - * - * @param mixed $values Criteria or ChildCarousel object or primary key or array of primary keys - * which is used to create the DELETE statement - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows - * if supported by native driver or if emulated using Propel. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public function delete(ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - - $criteria = $this; - - // Set the correct dbName - $criteria->setDbName(CarouselTableMap::DATABASE_NAME); - - $affectedRows = 0; // initialize var to track total num of affected rows - - try { - // use transaction because $criteria could contain info - // for more than one table or we could emulating ON DELETE CASCADE, etc. - $con->beginTransaction(); - - - CarouselTableMap::removeInstanceFromPool($criteria); - - $affectedRows += ModelCriteria::delete($con); - CarouselTableMap::clearRelatedInstancePool(); - $con->commit(); - - return $affectedRows; - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - } - - // timestampable behavior - - /** - * Filter by the latest updated - * - * @param int $nbDays Maximum age of the latest update in days - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function recentlyUpdated($nbDays = 7) - { - return $this->addUsingAlias(CarouselTableMap::UPDATED_AT, time() - $nbDays * 24 * 60 * 60, Criteria::GREATER_EQUAL); - } - - /** - * Filter by the latest created - * - * @param int $nbDays Maximum age of in days - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function recentlyCreated($nbDays = 7) - { - return $this->addUsingAlias(CarouselTableMap::CREATED_AT, time() - $nbDays * 24 * 60 * 60, Criteria::GREATER_EQUAL); - } - - /** - * Order by update date desc - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function lastUpdatedFirst() - { - return $this->addDescendingOrderByColumn(CarouselTableMap::UPDATED_AT); - } - - /** - * Order by update date asc - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function firstUpdatedFirst() - { - return $this->addAscendingOrderByColumn(CarouselTableMap::UPDATED_AT); - } - - /** - * Order by create date desc - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function lastCreatedFirst() - { - return $this->addDescendingOrderByColumn(CarouselTableMap::CREATED_AT); - } - - /** - * Order by create date asc - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function firstCreatedFirst() - { - return $this->addAscendingOrderByColumn(CarouselTableMap::CREATED_AT); - } - - // i18n behavior - - /** - * Adds a JOIN clause to the query using the i18n relation - * - * @param string $locale Locale to use for the join condition, e.g. 'fr_FR' - * @param string $relationAlias optional alias for the relation - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'. Defaults to left join. - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function joinI18n($locale = 'en_US', $relationAlias = null, $joinType = Criteria::LEFT_JOIN) - { - $relationName = $relationAlias ? $relationAlias : 'CarouselI18n'; - - return $this - ->joinCarouselI18n($relationAlias, $joinType) - ->addJoinCondition($relationName, $relationName . '.Locale = ?', $locale); - } - - /** - * Adds a JOIN clause to the query and hydrates the related I18n object. - * Shortcut for $c->joinI18n($locale)->with() - * - * @param string $locale Locale to use for the join condition, e.g. 'fr_FR' - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'. Defaults to left join. - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function joinWithI18n($locale = 'en_US', $joinType = Criteria::LEFT_JOIN) - { - $this - ->joinI18n($locale, null, $joinType) - ->with('CarouselI18n'); - $this->with['CarouselI18n']->setIsWithOneToMany(false); - - return $this; - } - - /** - * Use the I18n relation query object - * - * @see useQuery() - * - * @param string $locale Locale to use for the join condition, e.g. 'fr_FR' - * @param string $relationAlias optional alias for the relation - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'. Defaults to left join. - * - * @return ChildCarouselI18nQuery A secondary query class using the current class as primary query - */ - public function useI18nQuery($locale = 'en_US', $relationAlias = null, $joinType = Criteria::LEFT_JOIN) - { - return $this - ->joinI18n($locale, $relationAlias, $joinType) - ->useQuery($relationAlias ? $relationAlias : 'CarouselI18n', '\Carousel\Model\CarouselI18nQuery'); - } - -} // CarouselQuery diff --git a/local/local/modules/Carousel/Model/Carousel.php b/local/local/modules/Carousel/Model/Carousel.php deleted file mode 100644 index 50971104..00000000 --- a/local/local/modules/Carousel/Model/Carousel.php +++ /dev/null @@ -1,113 +0,0 @@ -remove($carousel->getUploadDir() . DS . $this->getFile()); - - return true; - } catch (IOException $e) { - return false; - } - } - - /** - * Set file parent id - * - * @param int $parentId parent id - * - * @return $this - */ - public function setParentId($parentId) - { - return $this; - } - - /** - * Get file parent id - * - * @return int parent id - */ - public function getParentId() - { - return $this->getId(); - } - - /** - * @return FileModelParentInterface the parent file model - */ - public function getParentFileModel() - { - return new static; - } - - /** - * Get the ID of the form used to change this object information - * - * @return BaseForm the form - */ - public function getUpdateFormId() - { - return 'carousel.image'; - } - - /** - * @return string the path to the upload directory where files are stored, without final slash - */ - public function getUploadDir() - { - $carousel = new \Carousel\Carousel(); - return $carousel->getUploadDir(); - } - - /** - * @param int $objectId the object ID - * - * @return string the URL to redirect to after update from the back-office - */ - public function getRedirectionUrl() - { - return '/admin/module/Carousel'; - } - - /** - * Get the Query instance for this object - * - * @return ModelCriteria - */ - public function getQueryInstance() - { - return CarouselQuery::create(); - } - - /** - * @param bool $visible true if the file is visible, false otherwise - * @return FileModelInterface - */ - public function setVisible($visible) - { - // Not implemented - - return $this; - } -} diff --git a/local/local/modules/Carousel/Model/CarouselI18n.php b/local/local/modules/Carousel/Model/CarouselI18n.php deleted file mode 100644 index d03081e3..00000000 --- a/local/local/modules/Carousel/Model/CarouselI18n.php +++ /dev/null @@ -1,10 +0,0 @@ -orderByPosition() - ->find(); - } -} // CarouselQuery diff --git a/local/local/modules/Carousel/Model/Map/CarouselI18nTableMap.php b/local/local/modules/Carousel/Model/Map/CarouselI18nTableMap.php deleted file mode 100644 index e63326c5..00000000 --- a/local/local/modules/Carousel/Model/Map/CarouselI18nTableMap.php +++ /dev/null @@ -1,506 +0,0 @@ - array('Id', 'Locale', 'Alt', 'Title', 'Description', 'Chapo', 'Postscriptum', ), - self::TYPE_STUDLYPHPNAME => array('id', 'locale', 'alt', 'title', 'description', 'chapo', 'postscriptum', ), - self::TYPE_COLNAME => array(CarouselI18nTableMap::ID, CarouselI18nTableMap::LOCALE, CarouselI18nTableMap::ALT, CarouselI18nTableMap::TITLE, CarouselI18nTableMap::DESCRIPTION, CarouselI18nTableMap::CHAPO, CarouselI18nTableMap::POSTSCRIPTUM, ), - self::TYPE_RAW_COLNAME => array('ID', 'LOCALE', 'ALT', 'TITLE', 'DESCRIPTION', 'CHAPO', 'POSTSCRIPTUM', ), - self::TYPE_FIELDNAME => array('id', 'locale', 'alt', 'title', 'description', 'chapo', 'postscriptum', ), - self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, ) - ); - - /** - * holds an array of keys for quick access to the fieldnames array - * - * first dimension keys are the type constants - * e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0 - */ - protected static $fieldKeys = array ( - self::TYPE_PHPNAME => array('Id' => 0, 'Locale' => 1, 'Alt' => 2, 'Title' => 3, 'Description' => 4, 'Chapo' => 5, 'Postscriptum' => 6, ), - self::TYPE_STUDLYPHPNAME => array('id' => 0, 'locale' => 1, 'alt' => 2, 'title' => 3, 'description' => 4, 'chapo' => 5, 'postscriptum' => 6, ), - self::TYPE_COLNAME => array(CarouselI18nTableMap::ID => 0, CarouselI18nTableMap::LOCALE => 1, CarouselI18nTableMap::ALT => 2, CarouselI18nTableMap::TITLE => 3, CarouselI18nTableMap::DESCRIPTION => 4, CarouselI18nTableMap::CHAPO => 5, CarouselI18nTableMap::POSTSCRIPTUM => 6, ), - self::TYPE_RAW_COLNAME => array('ID' => 0, 'LOCALE' => 1, 'ALT' => 2, 'TITLE' => 3, 'DESCRIPTION' => 4, 'CHAPO' => 5, 'POSTSCRIPTUM' => 6, ), - self::TYPE_FIELDNAME => array('id' => 0, 'locale' => 1, 'alt' => 2, 'title' => 3, 'description' => 4, 'chapo' => 5, 'postscriptum' => 6, ), - self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, ) - ); - - /** - * Initialize the table attributes and columns - * Relations are not initialized by this method since they are lazy loaded - * - * @return void - * @throws PropelException - */ - public function initialize() - { - // attributes - $this->setName('carousel_i18n'); - $this->setPhpName('CarouselI18n'); - $this->setClassName('\\Carousel\\Model\\CarouselI18n'); - $this->setPackage('Carousel.Model'); - $this->setUseIdGenerator(false); - // columns - $this->addForeignPrimaryKey('ID', 'Id', 'INTEGER' , 'carousel', 'ID', true, null, null); - $this->addPrimaryKey('LOCALE', 'Locale', 'VARCHAR', true, 5, 'en_US'); - $this->addColumn('ALT', 'Alt', 'VARCHAR', false, 255, null); - $this->addColumn('TITLE', 'Title', 'VARCHAR', false, 255, null); - $this->addColumn('DESCRIPTION', 'Description', 'CLOB', false, null, null); - $this->addColumn('CHAPO', 'Chapo', 'LONGVARCHAR', false, null, null); - $this->addColumn('POSTSCRIPTUM', 'Postscriptum', 'LONGVARCHAR', false, null, null); - } // initialize() - - /** - * Build the RelationMap objects for this table relationships - */ - public function buildRelations() - { - $this->addRelation('Carousel', '\\Carousel\\Model\\Carousel', RelationMap::MANY_TO_ONE, array('id' => 'id', ), 'CASCADE', null); - } // buildRelations() - - /** - * Adds an object to the instance pool. - * - * Propel keeps cached copies of objects in an instance pool when they are retrieved - * from the database. In some cases you may need to explicitly add objects - * to the cache in order to ensure that the same objects are always returned by find*() - * and findPk*() calls. - * - * @param \Carousel\Model\CarouselI18n $obj A \Carousel\Model\CarouselI18n object. - * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). - */ - public static function addInstanceToPool($obj, $key = null) - { - if (Propel::isInstancePoolingEnabled()) { - if (null === $key) { - $key = serialize(array((string) $obj->getId(), (string) $obj->getLocale())); - } // if key === null - self::$instances[$key] = $obj; - } - } - - /** - * Removes an object from the instance pool. - * - * Propel keeps cached copies of objects in an instance pool when they are retrieved - * from the database. In some cases -- especially when you override doDelete - * methods in your stub classes -- you may need to explicitly remove objects - * from the cache in order to prevent returning objects that no longer exist. - * - * @param mixed $value A \Carousel\Model\CarouselI18n object or a primary key value. - */ - public static function removeInstanceFromPool($value) - { - if (Propel::isInstancePoolingEnabled() && null !== $value) { - if (is_object($value) && $value instanceof \Carousel\Model\CarouselI18n) { - $key = serialize(array((string) $value->getId(), (string) $value->getLocale())); - - } elseif (is_array($value) && count($value) === 2) { - // assume we've been passed a primary key"; - $key = serialize(array((string) $value[0], (string) $value[1])); - } elseif ($value instanceof Criteria) { - self::$instances = []; - - return; - } else { - $e = new PropelException("Invalid value passed to removeInstanceFromPool(). Expected primary key or \Carousel\Model\CarouselI18n object; got " . (is_object($value) ? get_class($value) . ' object.' : var_export($value, true))); - throw $e; - } - - unset(self::$instances[$key]); - } - } - - /** - * Retrieves a string version of the primary key from the DB resultset row that can be used to uniquely identify a row in this table. - * - * For tables with a single-column primary key, that simple pkey value will be returned. For tables with - * a multi-column primary key, a serialize()d version of the primary key will be returned. - * - * @param array $row resultset row. - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM - */ - public static function getPrimaryKeyHashFromRow($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - // If the PK cannot be derived from the row, return NULL. - if ($row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)] === null && $row[TableMap::TYPE_NUM == $indexType ? 1 + $offset : static::translateFieldName('Locale', TableMap::TYPE_PHPNAME, $indexType)] === null) { - return null; - } - - return serialize(array((string) $row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)], (string) $row[TableMap::TYPE_NUM == $indexType ? 1 + $offset : static::translateFieldName('Locale', TableMap::TYPE_PHPNAME, $indexType)])); - } - - /** - * Retrieves the primary key from the DB resultset row - * For tables with a single-column primary key, that simple pkey value will be returned. For tables with - * a multi-column primary key, an array of the primary key columns will be returned. - * - * @param array $row resultset row. - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM - * - * @return mixed The primary key of the row - */ - public static function getPrimaryKeyFromRow($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - - return $pks; - } - - /** - * The class that the tableMap will make instances of. - * - * If $withPrefix is true, the returned path - * uses a dot-path notation which is translated into a path - * relative to a location on the PHP include_path. - * (e.g. path.to.MyClass -> 'path/to/MyClass.php') - * - * @param boolean $withPrefix Whether or not to return the path with the class name - * @return string path.to.ClassName - */ - public static function getOMClass($withPrefix = true) - { - return $withPrefix ? CarouselI18nTableMap::CLASS_DEFAULT : CarouselI18nTableMap::OM_CLASS; - } - - /** - * Populates an object of the default type or an object that inherit from the default. - * - * @param array $row row returned by DataFetcher->fetch(). - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType The index type of $row. Mostly DataFetcher->getIndexType(). - One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - * @return array (CarouselI18n object, last column rank) - */ - public static function populateObject($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - $key = CarouselI18nTableMap::getPrimaryKeyHashFromRow($row, $offset, $indexType); - if (null !== ($obj = CarouselI18nTableMap::getInstanceFromPool($key))) { - // We no longer rehydrate the object, since this can cause data loss. - // See http://www.propelorm.org/ticket/509 - // $obj->hydrate($row, $offset, true); // rehydrate - $col = $offset + CarouselI18nTableMap::NUM_HYDRATE_COLUMNS; - } else { - $cls = CarouselI18nTableMap::OM_CLASS; - $obj = new $cls(); - $col = $obj->hydrate($row, $offset, false, $indexType); - CarouselI18nTableMap::addInstanceToPool($obj, $key); - } - - return array($obj, $col); - } - - /** - * The returned array will contain objects of the default type or - * objects that inherit from the default. - * - * @param DataFetcherInterface $dataFetcher - * @return array - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function populateObjects(DataFetcherInterface $dataFetcher) - { - $results = array(); - - // set the class once to avoid overhead in the loop - $cls = static::getOMClass(false); - // populate the object(s) - while ($row = $dataFetcher->fetch()) { - $key = CarouselI18nTableMap::getPrimaryKeyHashFromRow($row, 0, $dataFetcher->getIndexType()); - if (null !== ($obj = CarouselI18nTableMap::getInstanceFromPool($key))) { - // We no longer rehydrate the object, since this can cause data loss. - // See http://www.propelorm.org/ticket/509 - // $obj->hydrate($row, 0, true); // rehydrate - $results[] = $obj; - } else { - $obj = new $cls(); - $obj->hydrate($row); - $results[] = $obj; - CarouselI18nTableMap::addInstanceToPool($obj, $key); - } // if key exists - } - - return $results; - } - /** - * Add all the columns needed to create a new object. - * - * Note: any columns that were marked with lazyLoad="true" in the - * XML schema will not be added to the select list and only loaded - * on demand. - * - * @param Criteria $criteria object containing the columns to add. - * @param string $alias optional table alias - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function addSelectColumns(Criteria $criteria, $alias = null) - { - if (null === $alias) { - $criteria->addSelectColumn(CarouselI18nTableMap::ID); - $criteria->addSelectColumn(CarouselI18nTableMap::LOCALE); - $criteria->addSelectColumn(CarouselI18nTableMap::ALT); - $criteria->addSelectColumn(CarouselI18nTableMap::TITLE); - $criteria->addSelectColumn(CarouselI18nTableMap::DESCRIPTION); - $criteria->addSelectColumn(CarouselI18nTableMap::CHAPO); - $criteria->addSelectColumn(CarouselI18nTableMap::POSTSCRIPTUM); - } else { - $criteria->addSelectColumn($alias . '.ID'); - $criteria->addSelectColumn($alias . '.LOCALE'); - $criteria->addSelectColumn($alias . '.ALT'); - $criteria->addSelectColumn($alias . '.TITLE'); - $criteria->addSelectColumn($alias . '.DESCRIPTION'); - $criteria->addSelectColumn($alias . '.CHAPO'); - $criteria->addSelectColumn($alias . '.POSTSCRIPTUM'); - } - } - - /** - * Returns the TableMap related to this object. - * This method is not needed for general use but a specific application could have a need. - * @return TableMap - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function getTableMap() - { - return Propel::getServiceContainer()->getDatabaseMap(CarouselI18nTableMap::DATABASE_NAME)->getTable(CarouselI18nTableMap::TABLE_NAME); - } - - /** - * Add a TableMap instance to the database for this tableMap class. - */ - public static function buildTableMap() - { - $dbMap = Propel::getServiceContainer()->getDatabaseMap(CarouselI18nTableMap::DATABASE_NAME); - if (!$dbMap->hasTable(CarouselI18nTableMap::TABLE_NAME)) { - $dbMap->addTableObject(new CarouselI18nTableMap()); - } - } - - /** - * Performs a DELETE on the database, given a CarouselI18n or Criteria object OR a primary key value. - * - * @param mixed $values Criteria or CarouselI18n object or primary key or array of primary keys - * which is used to create the DELETE statement - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows - * if supported by native driver or if emulated using Propel. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function doDelete($values, ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - if ($values instanceof Criteria) { - // rename for clarity - $criteria = $values; - } elseif ($values instanceof \Carousel\Model\CarouselI18n) { // it's a model object - // create criteria based on pk values - $criteria = $values->buildPkeyCriteria(); - } else { // it's a primary key, or an array of pks - $criteria = new Criteria(CarouselI18nTableMap::DATABASE_NAME); - // primary key is composite; we therefore, expect - // the primary key passed to be an array of pkey values - if (count($values) == count($values, COUNT_RECURSIVE)) { - // array is not multi-dimensional - $values = array($values); - } - foreach ($values as $value) { - $criterion = $criteria->getNewCriterion(CarouselI18nTableMap::ID, $value[0]); - $criterion->addAnd($criteria->getNewCriterion(CarouselI18nTableMap::LOCALE, $value[1])); - $criteria->addOr($criterion); - } - } - - $query = CarouselI18nQuery::create()->mergeWith($criteria); - - if ($values instanceof Criteria) { CarouselI18nTableMap::clearInstancePool(); - } elseif (!is_object($values)) { // it's a primary key, or an array of pks - foreach ((array) $values as $singleval) { CarouselI18nTableMap::removeInstanceFromPool($singleval); - } - } - - return $query->delete($con); - } - - /** - * Deletes all rows from the carousel_i18n table. - * - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). - */ - public static function doDeleteAll(ConnectionInterface $con = null) - { - return CarouselI18nQuery::create()->doDeleteAll($con); - } - - /** - * Performs an INSERT on the database, given a CarouselI18n or Criteria object. - * - * @param mixed $criteria Criteria or CarouselI18n object containing data that is used to create the INSERT statement. - * @param ConnectionInterface $con the ConnectionInterface connection to use - * @return mixed The new primary key. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function doInsert($criteria, ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - if ($criteria instanceof Criteria) { - $criteria = clone $criteria; // rename for clarity - } else { - $criteria = $criteria->buildCriteria(); // build Criteria from CarouselI18n object - } - - - // Set the correct dbName - $query = CarouselI18nQuery::create()->mergeWith($criteria); - - try { - // use transaction because $criteria could contain info - // for more than one table (I guess, conceivably) - $con->beginTransaction(); - $pk = $query->doInsert($con); - $con->commit(); - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - - return $pk; - } - -} // CarouselI18nTableMap -// This is the static code needed to register the TableMap for this table with the main Propel class. -// -CarouselI18nTableMap::buildTableMap(); diff --git a/local/local/modules/Carousel/Model/Map/CarouselTableMap.php b/local/local/modules/Carousel/Model/Map/CarouselTableMap.php deleted file mode 100644 index ca7b8883..00000000 --- a/local/local/modules/Carousel/Model/Map/CarouselTableMap.php +++ /dev/null @@ -1,475 +0,0 @@ - array('Id', 'File', 'Position', 'Url', 'CreatedAt', 'UpdatedAt', ), - self::TYPE_STUDLYPHPNAME => array('id', 'file', 'position', 'url', 'createdAt', 'updatedAt', ), - self::TYPE_COLNAME => array(CarouselTableMap::ID, CarouselTableMap::FILE, CarouselTableMap::POSITION, CarouselTableMap::URL, CarouselTableMap::CREATED_AT, CarouselTableMap::UPDATED_AT, ), - self::TYPE_RAW_COLNAME => array('ID', 'FILE', 'POSITION', 'URL', 'CREATED_AT', 'UPDATED_AT', ), - self::TYPE_FIELDNAME => array('id', 'file', 'position', 'url', 'created_at', 'updated_at', ), - self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, ) - ); - - /** - * holds an array of keys for quick access to the fieldnames array - * - * first dimension keys are the type constants - * e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0 - */ - protected static $fieldKeys = array ( - self::TYPE_PHPNAME => array('Id' => 0, 'File' => 1, 'Position' => 2, 'Url' => 3, 'CreatedAt' => 4, 'UpdatedAt' => 5, ), - self::TYPE_STUDLYPHPNAME => array('id' => 0, 'file' => 1, 'position' => 2, 'url' => 3, 'createdAt' => 4, 'updatedAt' => 5, ), - self::TYPE_COLNAME => array(CarouselTableMap::ID => 0, CarouselTableMap::FILE => 1, CarouselTableMap::POSITION => 2, CarouselTableMap::URL => 3, CarouselTableMap::CREATED_AT => 4, CarouselTableMap::UPDATED_AT => 5, ), - self::TYPE_RAW_COLNAME => array('ID' => 0, 'FILE' => 1, 'POSITION' => 2, 'URL' => 3, 'CREATED_AT' => 4, 'UPDATED_AT' => 5, ), - self::TYPE_FIELDNAME => array('id' => 0, 'file' => 1, 'position' => 2, 'url' => 3, 'created_at' => 4, 'updated_at' => 5, ), - self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, ) - ); - - /** - * Initialize the table attributes and columns - * Relations are not initialized by this method since they are lazy loaded - * - * @return void - * @throws PropelException - */ - public function initialize() - { - // attributes - $this->setName('carousel'); - $this->setPhpName('Carousel'); - $this->setClassName('\\Carousel\\Model\\Carousel'); - $this->setPackage('Carousel.Model'); - $this->setUseIdGenerator(true); - // columns - $this->addPrimaryKey('ID', 'Id', 'INTEGER', true, null, null); - $this->addColumn('FILE', 'File', 'VARCHAR', false, 255, null); - $this->addColumn('POSITION', 'Position', 'INTEGER', false, null, null); - $this->addColumn('URL', 'Url', 'VARCHAR', false, 255, null); - $this->addColumn('CREATED_AT', 'CreatedAt', 'TIMESTAMP', false, null, null); - $this->addColumn('UPDATED_AT', 'UpdatedAt', 'TIMESTAMP', false, null, null); - } // initialize() - - /** - * Build the RelationMap objects for this table relationships - */ - public function buildRelations() - { - $this->addRelation('CarouselI18n', '\\Carousel\\Model\\CarouselI18n', RelationMap::ONE_TO_MANY, array('id' => 'id', ), 'CASCADE', null, 'CarouselI18ns'); - } // buildRelations() - - /** - * - * Gets the list of behaviors registered for this table - * - * @return array Associative array (name => parameters) of behaviors - */ - public function getBehaviors() - { - return array( - 'timestampable' => array('create_column' => 'created_at', 'update_column' => 'updated_at', ), - 'i18n' => array('i18n_table' => '%TABLE%_i18n', 'i18n_phpname' => '%PHPNAME%I18n', 'i18n_columns' => 'alt, title, description, chapo, postscriptum', 'locale_column' => 'locale', 'locale_length' => '5', 'default_locale' => '', 'locale_alias' => '', ), - ); - } // getBehaviors() - /** - * Method to invalidate the instance pool of all tables related to carousel * by a foreign key with ON DELETE CASCADE - */ - public static function clearRelatedInstancePool() - { - // Invalidate objects in ".$this->getClassNameFromBuilder($joinedTableTableMapBuilder)." instance pool, - // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. - CarouselI18nTableMap::clearInstancePool(); - } - - /** - * Retrieves a string version of the primary key from the DB resultset row that can be used to uniquely identify a row in this table. - * - * For tables with a single-column primary key, that simple pkey value will be returned. For tables with - * a multi-column primary key, a serialize()d version of the primary key will be returned. - * - * @param array $row resultset row. - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM - */ - public static function getPrimaryKeyHashFromRow($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - // If the PK cannot be derived from the row, return NULL. - if ($row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)] === null) { - return null; - } - - return (string) $row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)]; - } - - /** - * Retrieves the primary key from the DB resultset row - * For tables with a single-column primary key, that simple pkey value will be returned. For tables with - * a multi-column primary key, an array of the primary key columns will be returned. - * - * @param array $row resultset row. - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM - * - * @return mixed The primary key of the row - */ - public static function getPrimaryKeyFromRow($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - - return (int) $row[ - $indexType == TableMap::TYPE_NUM - ? 0 + $offset - : self::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType) - ]; - } - - /** - * The class that the tableMap will make instances of. - * - * If $withPrefix is true, the returned path - * uses a dot-path notation which is translated into a path - * relative to a location on the PHP include_path. - * (e.g. path.to.MyClass -> 'path/to/MyClass.php') - * - * @param boolean $withPrefix Whether or not to return the path with the class name - * @return string path.to.ClassName - */ - public static function getOMClass($withPrefix = true) - { - return $withPrefix ? CarouselTableMap::CLASS_DEFAULT : CarouselTableMap::OM_CLASS; - } - - /** - * Populates an object of the default type or an object that inherit from the default. - * - * @param array $row row returned by DataFetcher->fetch(). - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType The index type of $row. Mostly DataFetcher->getIndexType(). - One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - * @return array (Carousel object, last column rank) - */ - public static function populateObject($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - $key = CarouselTableMap::getPrimaryKeyHashFromRow($row, $offset, $indexType); - if (null !== ($obj = CarouselTableMap::getInstanceFromPool($key))) { - // We no longer rehydrate the object, since this can cause data loss. - // See http://www.propelorm.org/ticket/509 - // $obj->hydrate($row, $offset, true); // rehydrate - $col = $offset + CarouselTableMap::NUM_HYDRATE_COLUMNS; - } else { - $cls = CarouselTableMap::OM_CLASS; - $obj = new $cls(); - $col = $obj->hydrate($row, $offset, false, $indexType); - CarouselTableMap::addInstanceToPool($obj, $key); - } - - return array($obj, $col); - } - - /** - * The returned array will contain objects of the default type or - * objects that inherit from the default. - * - * @param DataFetcherInterface $dataFetcher - * @return array - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function populateObjects(DataFetcherInterface $dataFetcher) - { - $results = array(); - - // set the class once to avoid overhead in the loop - $cls = static::getOMClass(false); - // populate the object(s) - while ($row = $dataFetcher->fetch()) { - $key = CarouselTableMap::getPrimaryKeyHashFromRow($row, 0, $dataFetcher->getIndexType()); - if (null !== ($obj = CarouselTableMap::getInstanceFromPool($key))) { - // We no longer rehydrate the object, since this can cause data loss. - // See http://www.propelorm.org/ticket/509 - // $obj->hydrate($row, 0, true); // rehydrate - $results[] = $obj; - } else { - $obj = new $cls(); - $obj->hydrate($row); - $results[] = $obj; - CarouselTableMap::addInstanceToPool($obj, $key); - } // if key exists - } - - return $results; - } - /** - * Add all the columns needed to create a new object. - * - * Note: any columns that were marked with lazyLoad="true" in the - * XML schema will not be added to the select list and only loaded - * on demand. - * - * @param Criteria $criteria object containing the columns to add. - * @param string $alias optional table alias - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function addSelectColumns(Criteria $criteria, $alias = null) - { - if (null === $alias) { - $criteria->addSelectColumn(CarouselTableMap::ID); - $criteria->addSelectColumn(CarouselTableMap::FILE); - $criteria->addSelectColumn(CarouselTableMap::POSITION); - $criteria->addSelectColumn(CarouselTableMap::URL); - $criteria->addSelectColumn(CarouselTableMap::CREATED_AT); - $criteria->addSelectColumn(CarouselTableMap::UPDATED_AT); - } else { - $criteria->addSelectColumn($alias . '.ID'); - $criteria->addSelectColumn($alias . '.FILE'); - $criteria->addSelectColumn($alias . '.POSITION'); - $criteria->addSelectColumn($alias . '.URL'); - $criteria->addSelectColumn($alias . '.CREATED_AT'); - $criteria->addSelectColumn($alias . '.UPDATED_AT'); - } - } - - /** - * Returns the TableMap related to this object. - * This method is not needed for general use but a specific application could have a need. - * @return TableMap - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function getTableMap() - { - return Propel::getServiceContainer()->getDatabaseMap(CarouselTableMap::DATABASE_NAME)->getTable(CarouselTableMap::TABLE_NAME); - } - - /** - * Add a TableMap instance to the database for this tableMap class. - */ - public static function buildTableMap() - { - $dbMap = Propel::getServiceContainer()->getDatabaseMap(CarouselTableMap::DATABASE_NAME); - if (!$dbMap->hasTable(CarouselTableMap::TABLE_NAME)) { - $dbMap->addTableObject(new CarouselTableMap()); - } - } - - /** - * Performs a DELETE on the database, given a Carousel or Criteria object OR a primary key value. - * - * @param mixed $values Criteria or Carousel object or primary key or array of primary keys - * which is used to create the DELETE statement - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows - * if supported by native driver or if emulated using Propel. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function doDelete($values, ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - - if ($values instanceof Criteria) { - // rename for clarity - $criteria = $values; - } elseif ($values instanceof \Carousel\Model\Carousel) { // it's a model object - // create criteria based on pk values - $criteria = $values->buildPkeyCriteria(); - } else { // it's a primary key, or an array of pks - $criteria = new Criteria(CarouselTableMap::DATABASE_NAME); - $criteria->add(CarouselTableMap::ID, (array) $values, Criteria::IN); - } - - $query = CarouselQuery::create()->mergeWith($criteria); - - if ($values instanceof Criteria) { CarouselTableMap::clearInstancePool(); - } elseif (!is_object($values)) { // it's a primary key, or an array of pks - foreach ((array) $values as $singleval) { CarouselTableMap::removeInstanceFromPool($singleval); - } - } - - return $query->delete($con); - } - - /** - * Deletes all rows from the carousel table. - * - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). - */ - public static function doDeleteAll(ConnectionInterface $con = null) - { - return CarouselQuery::create()->doDeleteAll($con); - } - - /** - * Performs an INSERT on the database, given a Carousel or Criteria object. - * - * @param mixed $criteria Criteria or Carousel object containing data that is used to create the INSERT statement. - * @param ConnectionInterface $con the ConnectionInterface connection to use - * @return mixed The new primary key. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function doInsert($criteria, ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - - if ($criteria instanceof Criteria) { - $criteria = clone $criteria; // rename for clarity - } else { - $criteria = $criteria->buildCriteria(); // build Criteria from Carousel object - } - - if ($criteria->containsKey(CarouselTableMap::ID) && $criteria->keyContainsValue(CarouselTableMap::ID) ) { - throw new PropelException('Cannot insert a value for auto-increment primary key ('.CarouselTableMap::ID.')'); - } - - - // Set the correct dbName - $query = CarouselQuery::create()->mergeWith($criteria); - - try { - // use transaction because $criteria could contain info - // for more than one table (I guess, conceivably) - $con->beginTransaction(); - $pk = $query->doInsert($con); - $con->commit(); - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - - return $pk; - } - -} // CarouselTableMap -// This is the static code needed to register the TableMap for this table with the main Propel class. -// -CarouselTableMap::buildTableMap(); diff --git a/local/local/modules/Carousel/Readme.md b/local/local/modules/Carousel/Readme.md deleted file mode 100644 index 6b372438..00000000 --- a/local/local/modules/Carousel/Readme.md +++ /dev/null @@ -1,62 +0,0 @@ -# Carousel - -This module for Thelia add a customizable carousel on your home page. You can upload you own image and overload the default template in your template for using the carousel. - -## Installation - -* Copy the module into ```/local/modules/``` directory and be sure that the name of the module is Carousel. -* Activate it in your thelia administration panel - -## Usage - -In the configuration panel of this module, you can upload as many images as you want. - -## Hook - -The carousel is installed in the "Home page - main area" (home.body) hook. - -## Loop - -Customize images with the `carousel` loop, which has the same arguments as the `image` loop. You can define a width, a height, and many other parameters - -### Input arguments - -|Argument |Description | -|--- |--- | -|**width** | A width in pixels, for resizing image. If only the width is provided, the image ratio is preserved. Example : width="200" | -|**height** | A height in pixels, for resizing image. If only the height is provided, the image ratio is preserved. example : height="200" | -|**rotation** |The rotation angle in degrees (positive or negative) applied to the image. The background color of the empty areas is the one specified by 'background_color'. example : rotation="90" | -|**background_color** |The color applied to empty image parts during processing. Use $rgb or $rrggbb color format. example : background_color="$cc8000"| -|**quality** |The generated image quality, from 0(!) to 100%. The default value is 75% (you can hange this in the Administration panel). example : quality="70"| -|**resize_mode** | If 'crop', the image will have the exact specified width and height, and will be cropped if required. If 'borders', the image will have the exact specified width and height, and some borders may be added. The border color is the one specified by 'background_color'. If 'none' or missing, the image ratio is preserved, and depending od this ratio, may not have the exact width and height required. resize_mode="crop"| -|**effects** |One or more comma separated effects definitions, that will be applied to the image in the specified order. Please see below a detailed description of available effects. Expected values :
  • gamma:value : change the image Gamma to the specified value. Example: gamma:0.7.
  • grayscale or greyscale : switch image to grayscale.
  • colorize:color : apply a color mask to the image. The color format is $rgb or $rrggbb. Example: colorize:$ff2244.
  • negative : transform the image in its negative equivalent.
  • vflip or vertical_flip : flip the image vertically.
  • hflip or horizontal_flip : flip the image horizontally.
example : effects="greyscale,gamma:0.7,vflip" | - -### Ouput arguments - -|Variable |Description | -|--- |--- | -|$ID |the image ID | -|$IMAGE_URL |The absolute URL to the generated image | -|$ORIGINAL_IMAGE_URL |The absolute URL to the original image | -|$IMAGE_PATH |The absolute path to the generated image file | -|$ORIGINAL_IMAGE_PATH |The absolute path to the original image file | -|$ALT |alt text | -|$TITLE |the image title | -|$CHAPO |the image summary | -|$DESCRIPTION |the image description | -|$POSTSCRIPTUM |the image conclusion | -|$LOCALE |the textual elements locale | -|$POSITION |the image position in the carousel | -|$URL |the related URL | - -### Exemple - -``` -{loop type="carousel" name="carousel.front" width="1200" height="390" resize_mode="borders"} - {$ALT} -{/loop} -``` - -## How to override ? - -If you want your own carousel in your tempalte, create the directory ```modules/Carousel``` then create the template ```carousel.html``` in this directory. Here you can create your own carousel and the replace the default template provided in the module. diff --git a/local/local/modules/Carousel/composer.json b/local/local/modules/Carousel/composer.json deleted file mode 100644 index 5cfd6d37..00000000 --- a/local/local/modules/Carousel/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/carousel-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "Carousel" - } -} diff --git a/local/local/modules/Carousel/templates/backOffice/default/assets/js/module-configuration.js b/local/local/modules/Carousel/templates/backOffice/default/assets/js/module-configuration.js deleted file mode 100644 index 54b03e5f..00000000 --- a/local/local/modules/Carousel/templates/backOffice/default/assets/js/module-configuration.js +++ /dev/null @@ -1,6 +0,0 @@ -$(function() { - // Set proper image ID in delete from - $('a.image-delete').click(function(ev) { - $('#image_delete_id').val($(this).data('id')); - }); -}); diff --git a/local/local/modules/Carousel/templates/backOffice/default/module_configuration.html b/local/local/modules/Carousel/templates/backOffice/default/module_configuration.html deleted file mode 100644 index 3904630f..00000000 --- a/local/local/modules/Carousel/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,136 +0,0 @@ -
-
-
- {intl l='Edit your carousel.' d='carousel.bo.default'} -
-
- -
-
-
- {form name="carousel.image"} - - - {form_hidden_fields} - - {form_field field='file'} -
- -
- - - - -
-
- {/form_field} - - {/form} -
-
-
- -
-
- {intl l='Carousel images' d='carousel.bo.default'} -
-
- -
-
-
- {ifloop rel="carousel.image"} - {form name="carousel.update"} -
- - {include - file = "includes/inner-form-toolbar.html" - page_url = "{url path='/admin/module/Carousel'}" - close_url = "{url path='/admin/modules'}" - } - - {form_hidden_fields} - - {loop name="carousel.image" type="carousel" width="550" height="200" resize_mode="borders" backend_context="1" lang="$edit_language_id"} - -
-
-
-

- - {$ALT} - -

- -
- -
-
- -
-
- {form_field field="position{$ID}"} - - {/form_field} -
-
-
- -
- {* Not yet implemented - {render_form_field field="chapo{$ID} value=$CHAPO"} - *} - {render_form_field field="title{$ID}" value=$TITLE} - {render_form_field field="alt{$ID}" value=$ALT} - {render_form_field field="url{$ID}" value=$URL} - {render_form_field field="description{$ID}" extra_class="wysiwyg" value=$DESCRIPTION} - {* Not yet implemented - {render_form_field field="postscriptum{$ID}" value=$POSTSCRIPTUM} - *} -
-
-
- {/loop} - - {include - file = "includes/inner-form-toolbar.html" - page_url = "{url path='/admin/module/Carousel'}" - close_url = "{url path='/admin/modules'}" - page_bottom = true - } -
- {/form} - {/ifloop} - - {elseloop rel="carousel.image"} -
- {intl d='carousel.bo.default' l="Your carousel contains no image. Please add one using the form above."} -
- {/elseloop} -
-
-
-
- -{capture "delete_dialog"} - -{/capture} - -{include -file = "includes/generic-confirm-dialog.html" - -dialog_id = "delete_carousel_dialog" -dialog_title = {intl l="Delete a carousel image" d="carousel.bo.default"} -dialog_message = {intl l="Do you really want to remove this image from the carousel ?" d="carousel.bo.default"} - -form_action = {url path='/admin/module/carousel/delete'} -form_content = {$smarty.capture.delete_dialog nofilter} -} - - - - diff --git a/local/local/modules/Carousel/templates/frontOffice/default/carousel.html b/local/local/modules/Carousel/templates/frontOffice/default/carousel.html deleted file mode 100644 index 6a714a5e..00000000 --- a/local/local/modules/Carousel/templates/frontOffice/default/carousel.html +++ /dev/null @@ -1,24 +0,0 @@ -{ifloop rel="carousel.front"} - -{/ifloop} \ No newline at end of file diff --git a/local/local/modules/Cheque/Cheque.php b/local/local/modules/Cheque/Cheque.php deleted file mode 100644 index 8d1e94c9..00000000 --- a/local/local/modules/Cheque/Cheque.php +++ /dev/null @@ -1,73 +0,0 @@ -getCurrentOrderTotalAmount() > 0; - } - - public function postActivation(ConnectionInterface $con = null) - { - $database = new Database($con); - - // Insert email message - $database->insertSql(null, array(__DIR__ . "/Config/setup.sql")); - } - - public function destroy(ConnectionInterface $con = null, $deleteModuleData = false) - { - // Delete our message - if (null !== $message = MessageQuery::create()->findOneByName('order_confirmation_cheque')) { - $message->delete($con); - } - - parent::destroy($con, $deleteModuleData); - } - - /** - * if you want, you can manage stock in your module instead of order process. - * Return false if you want to manage yourself the stock - * - * @return bool - */ - public function manageStockOnCreation() - { - return false; - } -} diff --git a/local/local/modules/Cheque/Config/config.xml b/local/local/modules/Cheque/Config/config.xml deleted file mode 100644 index b09cf496..00000000 --- a/local/local/modules/Cheque/Config/config.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - -
- - - - - - - - - - - - - - - - - diff --git a/local/local/modules/Cheque/Config/module.xml b/local/local/modules/Cheque/Config/module.xml deleted file mode 100644 index 14f8675a..00000000 --- a/local/local/modules/Cheque/Config/module.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - Cheque\Cheque - - Cheque - - - Cheque - - images - - en_US - fr_FR - - 2.3.4 - - Manuel Raynaud - manu@raynaud.io - - payment - 2.2.0 - alpha - diff --git a/local/local/modules/Cheque/Config/routing.xml b/local/local/modules/Cheque/Config/routing.xml deleted file mode 100644 index 8c741c05..00000000 --- a/local/local/modules/Cheque/Config/routing.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - Cheque\Controller\ConfigureController::configure - - diff --git a/local/local/modules/Cheque/Config/setup.sql b/local/local/modules/Cheque/Config/setup.sql deleted file mode 100644 index 2f91a0e7..00000000 --- a/local/local/modules/Cheque/Config/setup.sql +++ /dev/null @@ -1,32 +0,0 @@ --- --------------------------------------------------------------------- --- Mail template for cheque --- --------------------------------------------------------------------- - --- First, delete existing entries -SET @var := 0; -SELECT @var := `id` FROM `message` WHERE name="order_confirmation_cheque"; -DELETE FROM `message` WHERE `id`=@var; - --- Then add new entries -SELECT @max := MAX(`id`) FROM `message`; -SET @max := @max+1; - --- insert message -INSERT INTO `message` (`id`, `name`, `secured`) VALUES - (@max, - 'order_confirmation_cheque', - '0' - ); --- and mail templates -INSERT INTO `message_i18n` (`id`, `locale`, `title`, `subject`, `text_message`, `html_message`) VALUES - (@max, - 'en_US', - 'Confirmation of payment by cheque', - 'Payment of order {$order_ref}', 'Dear customer,\r\nThis is a confirmation of the payment by cheque of your order {$order_ref} on our shop.\r\nYour invoice is now available in your customer account at {config key="url_site"}\r\nThank you again for your purchase.\r\nThe {config key="store_name"} team.', '\r\n\r\n\r\n \r\n courriel de confirmation de commande de {config key="url_site"} \r\n \r\n\r\n\r\n
\r\n
\r\n

{config key="store_name"}

\r\n

The payment of your order is confirmed

\r\n

Reference {$order_ref}

\r\n
\r\n

\r\n Your invoice is now available in your customer account on\r\n {config key="store_name"}.\r\n

\r\n

Thank you for your order !

\r\n

The {config key="store_name"} team.

\r\n
\r\n\r\n' - ), - (@max, - 'fr_FR', - 'Confirmation de paiement par chèque', - 'Paiement de la commande : {$order_ref}', - 'Cher client,\r\nCe message confirme le paiement par chèque de votre commande numero {$order_ref} sur notre boutique.\r\nVotre facture est maintenant disponible dans votre compte client à l''adresse {config key="url_site"}\r\nMerci encore pour votre achat !\r\nL''équipe {config key="store_name"}', '\r\n\r\n\r\n \r\n Confirmation du paiement de votre commande sur {config key="url_site"} \r\n \r\n\r\n\r\n
\r\n
\r\n

{config key="store_name"}

\r\n

Confirmation du paiement de votre commande

\r\n

N° {$order_ref}

\r\n
\r\n

\r\n Le suivi de votre commande est disponible dans la rubrique mon compte sur\r\n {config key="url_site"}\r\n

\r\n

Merci pour votre achat !

\r\n

L''équipe {config key="store_name"}

\r\n
\r\n\r\n' - ); diff --git a/local/local/modules/Cheque/Controller/ConfigureController.php b/local/local/modules/Cheque/Controller/ConfigureController.php deleted file mode 100644 index 5aea04ed..00000000 --- a/local/local/modules/Cheque/Controller/ConfigureController.php +++ /dev/null @@ -1,98 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Cheque\Controller; - -use Cheque\Cheque; -use Cheque\Form\ConfigurationForm; -use Symfony\Component\HttpFoundation\RedirectResponse; -use Thelia\Controller\Admin\BaseAdminController; -use Thelia\Core\Security\AccessManager; -use Thelia\Core\Security\Resource\AdminResources; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Tools\URL; - -/** - * Class SetTransferConfig - * @package WireTransfer\Controller - * @author Thelia - */ -class ConfigureController extends BaseAdminController -{ - public function configure() - { - if (null !== $response = $this->checkAuth(AdminResources::MODULE, 'Cheque', AccessManager::UPDATE)) { - return $response; - } - - // Initialize the potential exception - $ex = null; - - // Create the Form from the request - $configurationForm = $this->createForm('cheque.instructions.configure'); - - try { - // Check the form against constraints violations - $form = $this->validateForm($configurationForm, "POST"); - - // Get the form field values - $data = $form->getData(); - - Cheque::setConfigValue('instructions', $data['instructions'], $this->getCurrentEditionLocale()); - Cheque::setConfigValue('payable_to', $data['payable_to']); - - // Log configuration modification - $this->adminLogAppend( - "cheque.configuration.message", - AccessManager::UPDATE, - sprintf("Cheque instructions configuration updated") - ); - - // Everything is OK. - return new RedirectResponse(URL::getInstance()->absoluteUrl('/admin/module/Cheque')); - - } catch (FormValidationException $ex) { - // Form cannot be validated. Create the error message using - // the BaseAdminController helper method. - $error_msg = $this->createStandardFormValidationErrorMessage($ex); - } - catch (\Exception $ex) { - // Any other error - $error_msg = $ex->getMessage(); - } - - // At this point, the form has errors, and should be redisplayed. We don not redirect, - // just redisplay the same template. - // Setup the Form error context, to make error information available in the template. - $this->setupFormErrorContext( - $this->getTranslator()->trans("Cheque instructions configuration", [], Cheque::MESSAGE_DOMAIN), - $error_msg, - $configurationForm, - $ex - ); - - // Do not redirect at this point, or the error context will be lost. - // Just redisplay the current template. - return $this->render('module-configure', array('module_code' => 'Cheque')); - } -} \ No newline at end of file diff --git a/local/local/modules/Cheque/Form/ConfigurationForm.php b/local/local/modules/Cheque/Form/ConfigurationForm.php deleted file mode 100644 index 6ab4d5a0..00000000 --- a/local/local/modules/Cheque/Form/ConfigurationForm.php +++ /dev/null @@ -1,90 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Cheque\Form; - -use Cheque\Cheque; -use Symfony\Component\Validator\Constraints\NotBlank; -use Thelia\Core\Translation\Translator; -use Thelia\Form\BaseForm; - -/** - * Class ConfigurationForm - * @package Cheque\Form - * @author Thelia - */ -class ConfigurationForm extends BaseForm -{ - protected function trans($str, $params = []) - { - return Translator::getInstance()->trans($str, $params, Cheque::MESSAGE_DOMAIN); - } - - protected function buildForm() - { - $this->formBuilder - ->add( - 'payable_to', - 'text', - [ - 'constraints' => [ new NotBlank() ], - 'label' => $this->trans('Cheque is payable to: '), - 'label_attr' => [ - 'for' => 'payable_to', - 'help' => $this->trans('The name to which the cheque shoud be payable to.') - ], - 'attr' => [ - 'rows' => 10, - 'placeholder' => $this->trans('Pay cheque to') - ] - ] - ) - ->add( - 'instructions', - 'textarea', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->trans('Cheque instructions'), - 'label_attr' => [ - 'for' => 'namefield', - 'help' => $this->trans('Please enter here the payment by cheque instructions') - ], - 'attr' => [ - 'rows' => 10, - 'placeholder' => $this->trans('Payment instruction') - ] - ] - ) - ; - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return 'cheque_configuration_instructions'; - } -} \ No newline at end of file diff --git a/local/local/modules/Cheque/Hook/HookManager.php b/local/local/modules/Cheque/Hook/HookManager.php deleted file mode 100644 index c0798886..00000000 --- a/local/local/modules/Cheque/Hook/HookManager.php +++ /dev/null @@ -1,34 +0,0 @@ - - */ -class HookManager extends BaseHook { - - public function onAdditionalPaymentInfo(HookRenderEvent $event) - { - $content = $this->render("order-placed.additional-payment-info.html", [ - 'placed_order_id' => $event->getArgument('placed_order_id') - ]); - - $event->add($content); - } -} \ No newline at end of file diff --git a/local/local/modules/Cheque/I18n/backOffice/default/de_DE.php b/local/local/modules/Cheque/I18n/backOffice/default/de_DE.php deleted file mode 100644 index 6e6d3a79..00000000 --- a/local/local/modules/Cheque/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Scheck-Anleitungen-Konfiguration', -]; diff --git a/local/local/modules/Cheque/I18n/backOffice/default/en_US.php b/local/local/modules/Cheque/I18n/backOffice/default/en_US.php deleted file mode 100644 index 2219a2f7..00000000 --- a/local/local/modules/Cheque/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Cheque instructions configuration', -); diff --git a/local/local/modules/Cheque/I18n/backOffice/default/fr_FR.php b/local/local/modules/Cheque/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 71ae3192..00000000 --- a/local/local/modules/Cheque/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Instructions de paiement par chèque', -]; diff --git a/local/local/modules/Cheque/I18n/backOffice/default/tr_TR.php b/local/local/modules/Cheque/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index 9490b898..00000000 --- a/local/local/modules/Cheque/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Çek yönergeleri yapılandırma', -]; diff --git a/local/local/modules/Cheque/I18n/de_DE.php b/local/local/modules/Cheque/I18n/de_DE.php deleted file mode 100644 index ffd4ad36..00000000 --- a/local/local/modules/Cheque/I18n/de_DE.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Scheck-Anweisungen', - 'Cheque instructions configuration' => 'Scheck-Anleitungen-Konfiguration', - 'Cheque is payable to: ' => 'Scheck ist zahlbar an: ', - 'Pay cheque to' => 'Scheck bezahlen an', - 'Payment instruction' => 'Zahlungsanweisungen', - 'Please enter here the payment by cheque instructions' => 'Bitte geben Sie hier die Zahlung durch Scheck Anweisungen ein', - 'The name to which the cheque shoud be payable to.' => 'Der Name, an den der Scheck bezahlbar sein soll.', -]; diff --git a/local/local/modules/Cheque/I18n/en_US.php b/local/local/modules/Cheque/I18n/en_US.php deleted file mode 100644 index 9a0ebf14..00000000 --- a/local/local/modules/Cheque/I18n/en_US.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Cheque instructions', - 'Cheque instructions configuration' => 'Cheque instructions configuration', - 'Cheque is payable to: ' => 'Cheque is payable to: ', - 'Pay cheque to' => 'Pay cheque to', - 'Payment instruction' => 'Payment instruction', - 'Please enter here the payment by cheque instructions' => 'Please enter here the payment by cheque instructions', - 'The name to which the cheque shoud be payable to.' => 'The name to which the cheque shoud be payable to.', -); diff --git a/local/local/modules/Cheque/I18n/fr_FR.php b/local/local/modules/Cheque/I18n/fr_FR.php deleted file mode 100644 index b286ccaf..00000000 --- a/local/local/modules/Cheque/I18n/fr_FR.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Instructions de paiement', - 'Cheque instructions configuration' => 'Instructions de paiement par chèque', - 'Cheque is payable to: ' => 'Ordre du chèque', - 'Pay cheque to' => 'Ordre du chèque', - 'Payment instruction' => 'Instructions de paiement', - 'Please enter here the payment by cheque instructions' => 'Indiquez ici les instructions particulières de paiement par chèque', - 'The name to which the cheque shoud be payable to.' => 'Le nom à fare figurer sur le chèque', -]; diff --git a/local/local/modules/Cheque/I18n/frontOffice/default/de_DE.php b/local/local/modules/Cheque/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index b87c46ae..00000000 --- a/local/local/modules/Cheque/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Vergessen Sie nicht, Ihren Scheck zu unterschreiben !', - 'Please make your cheque payable to %name, and send it to the following address :' => 'Bitte stellen Sie den Scheck auf %name, und senden Sie es an die folgende Adresse : ', -]; diff --git a/local/local/modules/Cheque/I18n/frontOffice/default/en_US.php b/local/local/modules/Cheque/I18n/frontOffice/default/en_US.php deleted file mode 100644 index ac9f8aaa..00000000 --- a/local/local/modules/Cheque/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Be sure to sign your cheque !', - 'Please make your cheque payable to %name, and send it to the following address :' => 'Please make your cheque payable to %name, and send it to the following address :', -); diff --git a/local/local/modules/Cheque/I18n/frontOffice/default/fr_FR.php b/local/local/modules/Cheque/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index b2ac1579..00000000 --- a/local/local/modules/Cheque/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,6 +0,0 @@ - 'N\'oubliez par de signer votre chèque !', - 'Please make your cheque payable to %name, and send it to the following address :' => 'Merci de libeller votre chèque à l\'ordre de %name, et de l\'expédier à l\'adresse suivante :', -]; diff --git a/local/local/modules/Cheque/I18n/frontOffice/default/tr_TR.php b/local/local/modules/Cheque/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 1337c364..00000000 --- a/local/local/modules/Cheque/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Çekini imzalamak emin olun!', - 'Please make your cheque payable to %name, and send it to the following address :' => 'Lütfen, Çek %name için ödenecek olun ve aşağıdaki adrese gönderin:', -]; diff --git a/local/local/modules/Cheque/I18n/tr_TR.php b/local/local/modules/Cheque/I18n/tr_TR.php deleted file mode 100644 index 80a9c5e3..00000000 --- a/local/local/modules/Cheque/I18n/tr_TR.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Çek yönergeleri', - 'Cheque instructions configuration' => 'Çek yönergeleri yapılandırma', - 'Cheque is payable to: ' => 'Çek için ödenir: ', - 'Pay cheque to' => 'Çek için ödeme', - 'Payment instruction' => 'Ödeme talimatı', - 'Please enter here the payment by cheque instructions' => 'Lütfen burada ödeme çek yönergeleri tarafından girin', - 'The name to which the cheque shoud be payable to.' => 'Adı için çek shoud için ödenecek.', -]; diff --git a/local/local/modules/Cheque/Listener/SendPaymentConfirmationEmail.php b/local/local/modules/Cheque/Listener/SendPaymentConfirmationEmail.php deleted file mode 100644 index bad9482a..00000000 --- a/local/local/modules/Cheque/Listener/SendPaymentConfirmationEmail.php +++ /dev/null @@ -1,85 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Cheque\Listener; - -use Cheque\Cheque; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; -use Thelia\Action\BaseAction; -use Thelia\Core\Event\Order\OrderEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Mailer\MailerFactory; - -/** - * Class SendEMail - * @package IciRelais\Listener - * @author Thelia - */ -class SendPaymentConfirmationEmail extends BaseAction implements EventSubscriberInterface -{ - /** - * @var MailerFactory - */ - protected $mailer; - - public function __construct(MailerFactory $mailer) - { - $this->mailer = $mailer; - } - - /** - * @param OrderEvent $event - * - * Check if we're the payment module, and send the payment confirmation email to the customer if it's the case. - */ - public function sendConfirmationEmail(OrderEvent $event) - { - if ($event->getOrder()->getPaymentModuleId() === Cheque::getModuleId()) { - - if ($event->getOrder()->isPaid()) { - - $order = $event->getOrder(); - - $this->mailer->sendEmailToCustomer( - 'order_confirmation_cheque', - $order->getCustomer(), - [ - 'order_id' => $order->getId(), - 'order_ref' => $order->getRef() - ] - ); - } - } - } - - /** - * @inheritdoc - */ - public static function getSubscribedEvents() - { - return array( - TheliaEvents::ORDER_UPDATE_STATUS => array("sendConfirmationEmail", 128) - ); - } - -} diff --git a/local/local/modules/Cheque/composer.json b/local/local/modules/Cheque/composer.json deleted file mode 100644 index 8dca2321..00000000 --- a/local/local/modules/Cheque/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/cheque-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "Cheque" - } -} diff --git a/local/local/modules/Cheque/images/cheque.png b/local/local/modules/Cheque/images/cheque.png deleted file mode 100644 index 0aad099e715aa796a29e77934cf421e7fe7b54e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24812 zcmeHwbySpH*ZvTqq#_6?NDSTGB`|bIcQXS+cM1Z6G)PEGD@u17ln7FSfP{pIba%sd zk3Qkc`@F1ot?&D--#@Szm~-!Y?{m(z_rCT%w~mG?D@kKx+`#~WK-jV}5LMu}74VX} zh6enkx{ovp{6cq-(QyWWF!2yCBv8sTA`pmw%Tit2MO#rpz|7v3#RO_^3S;rGbpY-L zfrLao98AotVJ_sRFbhjNVes1P1~9oLR2Zzqt;nY6AOVA0%6K`!)V!3`&AhD5_@Q7? z5ey*@0l>;M#5Jxm-}*;&|F|49jI z_Lq)>tCP*or9sVDVKy*Zn4OC=pvV4?dJb@V7kg*8{ePJ9FY$kz81RXr;$L(B<9cmv z|8Z((7fCk&f}|t@}G9^Vrl-jbNKi4)d`5 z4{8X>FSVbc@XJF&z+MF;oM0v{_D<^d_BJBFqD=Wu2+1WRenu5JouY}Er5yrSdLh>H zN`HI&Z+kF^i3>~wh)8Z`Hg;xqZgqAp0XA*{E>1=^b^$iF-;Dga^PCMud#I(k=Res1 z0-No38^7Io-Ug6CP!kuE|H{hm_x@%FY9?TA?__J@B4TN4VgX}yu(J?i{rlo?cm5Su z0uuH%_D;aEU?QACtp9ZRH?5zsCLn9)>|$bP29t$|02f#+EujMDFmrAgmnlCpA0IzA zGZzP!8M7&rAI1#hFoT(LnwguJnDPAtQBm=C^?x%Bu{U!?7qvj`%>eU%FN@t2 z%FD*f#l{SUa=@6`*?D=HP1#^jV93MIY0k~T!NF$!=S065`?rbiJ6QtEXJYf)J&3(P zfysEx`1tuupxn%SraU~%Tu@*`CMJ9w%-oz@{QTzTP$fs^55P0-$C%p{%`94c@B3t%p<<Rhb)yZF57-}MMO zx(f7uK-8TuEM{a?QMdq@A5R?peGoa7uJ7Y{Gtx)`5x(o49`0dn#160VE! zIVZh@>l`2#4=>@m7@u>}OSsMfa`EsIu8Z+GC%uI093U4DFX6fvpL5bnxXuA`@$eF^ zi}5)py@cx=AQulW;kp=~bJ9z=&H-}q@Di?z@i`~GgzFq27Y{Gtx)`5x(o49`0dn#1 z60VE!IVZh@>l`2#4=>@m7@u>}OSsMfa`EsIu8Z+GC%uI093U4DFX6fvpL5bnxXuA` z@$eF^i}5)py@cx=AQulW;kp=~bJ9z=&H-}q@Di?z@i`~GgzFq27Y{Gtx)`5x(o49` z0dn#160VE!IVZh@>l`2#4=>@m7@u>}OSsMfa`Es&xG?_yBqz)c`1qzf@HtJQb_Fo- z8BcOE8C69P$kr7Ea?S*Sj>kcu04NCLFb@JP!$BZ65fJD`^pEA_MG%O_Sr#Iu?lHQY z=B}-7ad=ABp=>H&0Ue^EvF3t}FE1ANC3y#gP8Js1eWALU&8}yF7!|IAo_UGSQd$N^2ZGtSNaAMftVX!7yhP{=1^l){~ zbJ95oq+Jd}@_T3?dRQLKau{V45s7_*v1oBc>N>JKx%md;s|;Fb7r6MXozEFRioDp1ZF8?6`Td#Sjc}*`l zU~7H7bQ^d*r7AEI6UL|Okr4)!$NH5~fc3!Tl;8(oulF`16)+1lWz@O(dH4+Qx`l^F z$x_h>1=hR6$W^sv$w4I%uaWEK6C)K}V|JGCJZETuFWIATXk@^m0 zk)pC`&FZKEn=j7pj4qR0&wAlp@|#;*ZAIE;rt_I%0i=}Kv>|XdTx^PLlUVMjK5MeO z7Nl{0OBT62BejmxP*PG-9(Hzi9(sEEY8@RNH-`8QsTZmvGEL|S2Wr8IMkKF#Sb8^- zhziPgzv5k|S?PH;D>7co?}6(S|FUn`F&w40)lomru;f!-LBW=Y`|8-_vuDo?%PT5~ z#UQgwI$*DqkRZH1HLQs^$ad}RO6ibxyC3Z_)i^jfZaqCc)rjd4QzLUBjqL^Q_9h%w z_^Z$4U8((*);XqLotKIwWoRcjorSBIu<&RrC71t zD`6fWj@-ehJ7J&C}e&QvWW~Fw_llb^5|b>4n8Y$b~CghzERr7Lqqd{hBNM}IgTR8O%%R&8~4OX%++<{BszxE zr9cq^%_=S-)wV4h=IQqF>h#mdVQ=z9%UyA7t`t@xs`6$6mY1E;Z)}5Oh&r!6Z^QEV z*Z3iho??D#oW#&VRs;Kxh{^Eo=c#2nCeNU{P?RLE)Lw@8}o7_8C$y}b~RvEh-cteTmvV^;b4=TN-18N1E|W=F5t7tAECZ9*;=~a>S}3esppM9nM7_SAGc&6b6D_lTHaU0$wfcqWZRo}TIM738)j_7eK5o4 z_Uw8i*WSXl1`pIKgZOW?48Z&xtT=TY{k=8#>(LP}_Cyvtnk>WmM)Wa?cNpVTw5)r* z4K$5ZoOVpDtQ5X&!Z6Raj<-H3mQ`1$!_gG2o_r?XeD9Mvk|KfE$gcgR5Zi;!Sd^cx zj73&T0znD+k+)I_g9Mg>>mu96ayr?86X0xg2v-l*=$e-wO;ww}`P-E7_87_s$h64LE-sae zn57w4pF$x&W>@WWV06B|fZKvLQc2jFe1qT*CPD=ft7HnD@OzxqgP1+aTHL~!J~I#U zKnu}WMMHHA1 zdVLMrefqtN)cT`+YZl$U>~syZ=N#=G+8i!VW_WKNJ5x@S)zoCPXP)>|x2p(0Z!;-; zvZQFct6CLF%&Syw+=QGA3P(EX(fM&dSNmp?s@r6-uG9Dk8{3Gv>afU#;n(`SzUIDY*D|bmMJ<>BkgN`jO97&C&L1)n z6G$*a68p!xFRpzYh<&2u%Cc>B1^5=Y<5XKcY9rC2m6+OLXP&p|q!z0dmyNP_WmTsF z-q-wO!h5URJ>BDbXoE~<^2@eK4!8uB)q??jTS}>j(l~Kv2Zz#C>?HirCm3PVtIU>* zcuXY{dpq{wE(b(7P9)mB>UB_`8UxASSf?{=m=q zMUKn@VN3%bnxRb%D+?dX{OaO;1)srgs+ppK4f@2Mw!piQLbYzKVK2y{h|DA3YQmL`UJIV}% z$WH$*U#LR@#D2cInUz$Gan)}+#n`3*S>aC7_RhCj8kfq1teh$=YDoTBTg0HilB%bv4Wqnt($g7uVb0+p0&Mzi}PF=@q4<%=S}K-b(12 zT+H-`$haN04PQ26QG7Zv#iG&IzF}{j-l+Of4P;UG5tr@`5CFjqT6>?S%wve8aK}L( z&)5bx?wM?7Fe(LC<}{C$+-Ibso7B9qjt*;5xSC2<*NV*_=e*tE7+qxX>;EC4mWmCJ zhZieI$V@xw%-I^xL;_#iThhT>l z2H;ygFIMG+oRnJkl^@T8$XS{(L;D1yljpC_t0R^!;aCp$LEG`HRDXU?EiEc4hy-|- z`G$?OHB17|a6h=122XKj0nQLAA+Lj+B7fG&ok-<6I4-wXs7!OG0|QUDvzYoRfxetv zXgJQ~M(g3s*~96b4K*|zlJyjbEo<35QyklQAGEg5mcI6lhsCef9;xf=8V{M~qi-vX zS>9N-TghYoe)F^8a{P2JaVn$}uNf%?BTH**L9s*=q)QECAVe96ZeU9R)A{e84yijM z0bD2(wj&WE9<|x*q2G-mZ56?LCoC?j9v?|9{E?RW_!W45zvG-H_=gEg$hJ`g%DXK` zZblO9){n0=q_V2OxE~I=;Bsav1rg#!92iy_R9Zf^4SD(Nugc^+-&DysKBwYcSzm}# zK{_=|eMWe^CV0lV!h0V(6#`KWCmEF3=GD^m&Fk<2eYyK3peNT0`Mo1~+(!rm+Bc?g z@&w3Xy(_QdkaZteg(vMljnvww)iVGosYS#Rf84CdbOr5^K0g zW22Y(x?M@FF-pX=xa2c z7I#?395T#oyw>3T&Jb4o{-NhoR~F?a<!;y?n=@!O?*^-KXn{*2|#c zdqf57E*gL4aV4J-;6Wgh&=g$-24-G5a0(J>RWwsv*G2Q}<)G^i=u^Mh)?%6&_({^Q zwQOvBQ!V$khDAimqVwJE_}ksLIv|5Z%@y>0(h|H4d|p2UAzX&pTv@r1Y$&@)?{BVn z`Abf^_ji6@DrtCloN6y{llQKBuvzFQ#-7=vE$!{dcWd~mV46OnvyfvN$pLu0SE&N19drEwtp zp1dT6E`zGEmCC*NjKEChiWq`9#!*xAY_diBjKD=xzB`>t(>+BHu7orxc}tFbOt6Z< zjnLU_)QzphM=}EpIlcN%{SrPyA8I^zV7^8Ftc*RfU!5j3LQyNSJDzY5cj_x;x{vw( zWavCI*efmMR2sJ=6;8iq6;;@(KJ7|3(qL`! zij(KAdt0-zg~EDo^FjQ=Xv(ijDtt{{EW#*erA5 zG!Gfgs0Q5rO+-qp3lOV0d9#m(Sshcn9a6ki#E^*s4!vuh4rxBXDbld$1$O z-r?poMevSf7}@9V-j0p#A{?e~ZdAf})CpS<{4x?BK=<0|h9b2ioJqj{@GI?spUSgd z#iB^qOKPhgY5hP#As!}fNlmjb zt=LjnzP@{A)gIln6avS^Jqbp_!`~%PO9U-hng={7gTOx-Z{#m7$!6QH@~EbRwKQRL zXEw6iK|fngAoS1*??eJ==N^ElZbrvn4^*C%?FfkOtk(LJ7?~2#4yR_)NN`^NINTAN zrb+*h`PHkURpdLJ9bAkYPi`W3L zGjd={JyNfy9KH#)2P9+(u_6O33uh9H1PULJfdoso52j%x>uJ{$CDqCv9_XX)*Vjbc z;kF{gEuzhihg3#~oXSF?AY5r7G-D-88zjH><9P z=}AU{JJ*kUYN?T5@;Q|gGsL?iwV%#OW&$|^gc^b=(RL2(s%h`#H~8F)l%##1o>w-H z3OG{5ZH64+4uBbHgRTKA32n1)WvSt>O=)dA1)TMrE3p3uC1>AtmhjwWpFylbBN4(> z11-z8NFVOlkZRmMbFdRdHcY`l2`d2w^A0OspL5}y*CT2%LCpfDBR7^$aB_zaa|(xt z{Zh8cVr?4V6$}Uv79{2Uk2$ul&wfz2}02C7x!h45AG3M>MbJ*G(OId^-(s+vqK z!c2f8_#WTLT+qXSJa*;!vFk#$I;8@750Dpi80X~GBti*Zy&`)cr$&!SR zIsxpb?8$#)(X{T`OCeTqEIe@!<>&iZS$xUZz6WifqMI7|(Ats|B*0lyl-i&Bzg>~~GbALz{eALR$?!bVBzY zk5R=#mVoIUi{0(T(<#xeX7N-3EtEl5fmG>-%{SN72_e})PTdJt3W*N({v?1xXyUyr5Qv!y*RwgZDF~%X5v}2JR~@TE-Azf zw~xU5v3xRi4;0BvNNw;M0TXH5aE8VtP6;UCn@di8{kzeOxI5YC8wQbGG9q6VtvE~u z5;ho2IR%wkKCQXjm5g23b#;s-|KOO05j6XtG?2`2Ul;E6m|Vq>h&3uA5S0!!bfP)% zMvVqxiz85Jfoyk_$L->+7^l7QiXKbatPh@O@SCAZOTMk?20xWNZ|;Urf-(3ozEWl%PBo9PhCn2yp<+{tsR<96R}x-T$Z3oEJR+(gM+(d@K8`BfZQ#`3X0H0oRr2De`CsI*0F3y3fT#Zi91tm>ev983?WKgI`ojb2T6BwN?x zUAd*S&U4!9jFjd+XNSHi+#NTNAdxcH~YlDWwg;*{EnsH*l}u#$3nsX<8iA z2d9WZ&Lkkdrsxi}&y_afcHjAN+-XHQO+c4*e4@|Tbs#UkT=w?#p&o;Tx0XBU*lXOY zdv=fkF*2&w!zsBQbf5@@FMi|N`%E&_^CU2^ThvnK23px8pNX$;HC(LiTwQNxn+7Hs z#E>zgp}RUFR}SW}eR&z$zX9y8jP>Rth@uH!M==S+(-74vUd2>_uvu1bg&%P$0f^%+ zHb3GJFTrVKKMj8K9z@~iWbm2@*pAt1o065a^%4_Ujw0Iw90ty2GxuL*LO)F%nS{Ct z8FLk=-Iqg_oV+K?!i87dSbESutaWvDoOoTc*RJH%I(fz+%8^@Am;cQ3piH@Vrd-Mm zE?i7}FK)7iER8U^*oVyHrfceRVNGK70)utEgU~Pr#!un*%DzWmyC>tNDl;qpO1^oL zQIn*(d)b&Pkt!tr^MJWTiKbsazJw?HomFe|7FeIUjnNUy*iaXNSdq?Dq3`a91!gE+ zYRKmhy3i1%8+~Hn(UwQ8R^Y>k5E1h18Xdf2u(jXSirE_b%&y{VmC%EUpj&U+XcSYn zmwVC#Ev}%UzCSoxu@WI#4hN2;Ap-LO0S|b?%u)(;rs!BBq@7`R?48ZAi;R6I4d0w> z>`Z;_ziObETdP~plldaT-n;-4EE%q5fFFCE@XdnW}*R-Gj&)&CdcZ{btDfeWjgqwhX00Ufq53&GxssLe! zxFm(_-i+bJEuzl$#2OG}%5B(wE9N*>bF1~9a7X>3h4d5Blf~VYuUf&&U)?!9+8A1Z zJYiYYzHu|h{T}HoIA38nt4NhPJb#MoV4PAgb#7r0gJ{XQ70iN-1)Na(PJ#631sWHi zDVtnO2BL)SQ}~U5_f=TF_?!+vK>@l=ayxsv{%VScXR7V)pB{PdF##hn1E%0SNeY_o zX9G8E+|oTi?NTMwxJ)&CU0GSd44HSjo{5920+RQAls&<#_H^LT<_Jq}_zN4#&b7|t z03BR!F`Bp&$I*d2-^tg!#`YfV>5qE-Y;CXZu6&DC+B{Nn#5F`Xp$j7F$fo-|+Py{^ zP2rURGF9HVt6*)jIyK0OUjCl*$G0g|+X~_a46mJ(19O2B4{+2$9OQr!u{mCGW9r0W zW4icO4g@~3p%>#YEU6xSlz)48agj<~x4~RvE(Dj-4!2JO+(Dhab#qBj334^0-AFa( zR1$J#O!=a$F!9dmTUDd$+;ShxRZ)gTkMWmK3~91O_4M=vBW`nk_}B_d`$XDcn}~cO zG&m(Dk_J5SYPEF%YHfRqKKXTLG1aGpPO1`__4rK^1xj;AEJdn9g<$WeQjP`&QZ?)` z(d*A6i#&z%HKalni$IFW)rx_Xg$9gLCPQH=+6N0ng~u*fK)0o({u!v-!!tb6s8yB$ z;S09G9|s{%+Xh@>Lf%njb3(R_zyeZ`EXa>e)k#(GVW1-2gz+4^RJq6LzQm3S$R7WGV! z-PhO!(Nt)4GYJa5_5~j9*_|98WJr6LIZnra`*y>%^0@ZYY4#xtySatCu}zx>X(bka z9)+@Dgp}EcB~c1%_>TO%^Yds_7*I_C7P$ei__VnjTiD31Bv7h=c#tem%e6fsAUC=4 zko}67o_V+hlUrRkZqB}@7OhA9WS zGS~dR@3FS-R;}$`qlI_c08J zYgRy)cE#qaM3P)Yi~==j;sEUu8S+zg4L9LNuY{3rYa@)at^^WiAHWMF;KM?rhKD_B zxo>7(A7CbSo%ri5Ss%Q^EQ)|OqbA*s8g|XQ}g$y-{z2_rz{ zx~@&4JBu}&5N=H3spdK8%3^f%yRv^N(k(n&vCmLtm%-rdlqU!C<36rcc%qr;Bct6$4^uZi`-F3oSi{Me^`(NmorqD%+S7_``UyywD3v4;wQ;V{_(LhUr zr}lh*%1V9g{WgRVYZ>1lfQ9Z#06LPbfTGQzjUTv^32hD3E!EC)O6bR2;YkZ zfeq-}c*r^X?vI(>RLv-j1Rl(MAp2a{JsaGyY!!_t2(GTpKpeZN#eS{7k}HcxqnP#B;o-jPqt z3Y{5T1&UwBaZE(sM}m%!70k_pQM7%@uk12eZyK5!3P**|lt0~Xm~~w)Ya`X$Z8|y| zURZedefd?Hn&2! z=K7?`()i)MnKdJy4!}nT!E%Q*U+tIo;qNXqSDfJOYJA$3gs}WY%@%EKKH`<2 z2%=L|Thncv=dA}}YIr8YcPe4kaL;0EE%(#agE{-u!522NX2kLkTu9~p^0gldkhAjg za<54s>M$yfw7Qt={eG;!7`*QF`~b<=hmb8RNVrG5O^u0Kr0veER@dV2*TS`=k8V<; zRaI36eCAz5Lyx!4Zm(AOEVT*?>gS{QXj(ry`QqdJJ^I01UJhw4=ceLVBJJClyA8K) zvmg7*BWWL>zCf%Ka6kBY>PS;`a9xNiJ-}d1o3*}O`_=)EAGc~$)IX&daTcJlv>6YD z-y(j~6Z`y)sEpEG;gL=qk^fRwOw?6V+U$8vhf1s(Ao!Kji8KVnJTr`jt0@&hSUz1N z9`pUGXHq!aQ%rCF<9^tSaKXd9H7#;~sv>!De9^|;)ap|9nBHL}i`TVg$<|3P-=s6G zy+qmpVZ`M^9>^B@Mhol;6qv1*7cJ`)`k#Jk^hZfle8$)3JhKUF^Y*T$-(A^#HL_e^ z&J3(V0=i#aJWQDm5cDdV6cHzSKcZ1VBr4EcH~>|9Nt0#XYpEN321^-7O_gRTQK?L^ zNkSO1aeoBUsvO!N>*e=i?&)6Xkn{;^#d4GV*Djr*#9udr*=gEy`*Q(x<&?hdo?)HToK z0$n9glmfenc^#t2x(Z`;I(y30-Gh+iOxgAMOz^vUR?%H8(|?RjP-$8lu?b=ywfmHW z9#Z=)O01WzWJO`GW<|ZV(QG5>IxORdY?H~$cS=4HIh4(AsHK@$ z0;T%4DR|G#Kn6Vs_)}z{F)ZtLMoC~wnuJgX+NB7W| z+vh4BX2pYSy<>$&ARUFTJefFTch)qxlK$3RR>tVMt!G~&_}+`a5QGN%{X-tystc|Y)XRP>pcnXkyK zRZtz)k9clQpcN-vcTtPZ$i|Vqr?WRGx90rSc1dK{OjVC7!%IekCpgarN$_KRn9e8~ zc(k1cyV!=Qa`f}(&m$cjRw8P13TT$GP=?cG6v&2AuR+RMQ!G-cNpGPq$k?Zjrdp4=*jHZpkytW&;_wA^RYN{%KnGU-Kqp=f+BkUPf5sCF&GA^xbM zYxQ}wSH$vk zp2_r3MtO1?r`-pg?6dCfbJS4>^Cy(r%5{ci0m^R^0XwiopQiPi2GycVxItqccFhOcXnw*4}hkhUp7_mPMiW0NW;V@~kb z26lz-=?E!so`M)&Po~xhjkYYh-G2uZ{jU{A8y~&yREyBjp$E4i9WR_=gGi(~_!bsJ Sni2mWfvltwq*&be(f - {$smarty.get.errmes} -
-{/if} - -
-
- -
-
- {intl d='cheque.bo.default' l="Cheque instructions configuration"} -
-
- -
-
-
- - {form name="cheque.instructions.configure"} - - - - {include - file = "includes/inner-form-toolbar.html" - hide_submit_buttons = false - - page_url = {url path="/admin/module/Cheque"} - close_url = {url path="/admin/modules"} - } - - {form_hidden_fields} - - {if $form_error} -
-
-
{$form_error_message}
-
-
- {/if} - - {loop type="module-config" name="get-payable-to" module="Cheque" variable="payable_to"} - {render_form_field field="payable_to" value=$VALUE} - {/loop} - - {loop type="module-config" name="get-instruction" module="Cheque" variable="instructions" locale=$edit_language_locale} - {render_form_field field="instructions" extra_class="wysiwyg" value=$VALUE} - {/loop} - - {/form} -
-
-
-
-
\ No newline at end of file diff --git a/local/local/modules/Cheque/templates/frontOffice/default/order-placed.additional-payment-info.html b/local/local/modules/Cheque/templates/frontOffice/default/order-placed.additional-payment-info.html deleted file mode 100644 index ddc89478..00000000 --- a/local/local/modules/Cheque/templates/frontOffice/default/order-placed.additional-payment-info.html +++ /dev/null @@ -1,21 +0,0 @@ -{loop type="module-config" name="cheque-instructions" module="cheque" variable="payable_to"} -

{intl d='cheque.fo.default' l="Please make your cheque payable to %name, and send it to the following address :" name={$VALUE}}

-{/loop} - -
- {config key="store_name"}
- {config key="store_address1"}
- {if ! empty({config key="store_address2"})}{config key="store_address2"}
{/if} - {if ! empty({config key="store_address3"})}{config key="store_address3"}
{/if} - {config key="store_zipcode"}, {config key="store_city"}
- {if {config key="store_country"}} - {loop type="country" name="store_country" id={config key="store_country"}} - {$TITLE}
- {/loop} - {/if} -
-

{intl d='cheque.fo.default' l="Be sure to sign your cheque !"}

- -{loop type="module-config" name="cheque-instructions" module="cheque" variable="instructions" locale={lang attr='locale'}} -

{$VALUE nofilter}

-{/loop} diff --git a/local/local/modules/Colissimo/Colissimo.php b/local/local/modules/Colissimo/Colissimo.php deleted file mode 100644 index c1023908..00000000 --- a/local/local/modules/Colissimo/Colissimo.php +++ /dev/null @@ -1,177 +0,0 @@ -insertSql(null, array(__DIR__ . '/Config/thelia.sql')); - } - - public function isValidDelivery(Country $country) - { - if (0 == self::getConfigValue(ColissimoConfigValue::ENABLED, 1)) { - return false; - } - - if (null !== $area = $this->getAreaForCountry($country)) { - $areaId = $area->getId(); - - $prices = self::getPrices(); - - /* Check if Colissimo delivers the area */ - if (isset($prices[$areaId]) && isset($prices[$areaId]["slices"])) { - // Yes ! Check if the cart weight is below slice limit - $areaPrices = $prices[$areaId]["slices"]; - ksort($areaPrices); - - /* Check cart weight is below the maximum weight */ - end($areaPrices); - $maxWeight = key($areaPrices); - - $cartWeight = $this->getRequest()->getSession()->getSessionCart($this->getDispatcher())->getWeight(); - - if ($cartWeight <= $maxWeight) { - return true; - } - } - } - - return false; - } - - /** - * @param $areaId - * @param $weight - * - * @return mixed - * @throws \Thelia\Exception\OrderException - */ - public static function getPostageAmount($areaId, $weight) - { - $freeshipping = Colissimo::getConfigValue(ColissimoConfigValue::FREE_SHIPPING); - $postage = 0; - if (!$freeshipping) { - $prices = self::getPrices(); - - /* check if Colissimo delivers the asked area */ - if (!isset($prices[$areaId]) || !isset($prices[$areaId]["slices"])) { - throw new DeliveryException( - Translator::getInstance()->trans( - "Colissimo delivery unavailable for the delivery country", - [], - self::DOMAIN_NAME - ) - ); - } - - $areaPrices = $prices[$areaId]["slices"]; - ksort($areaPrices); - - /* Check cart weight is below the maximum weight */ - end($areaPrices); - $maxWeight = key($areaPrices); - if ($weight > $maxWeight) { - throw new DeliveryException( - Translator::getInstance()->trans( - "Colissimo delivery unavailable for this cart weight (%weight kg)", - array("%weight" => $weight), - self::DOMAIN_NAME - ) - ); - } - - $postage = current($areaPrices); - - while (prev($areaPrices)) { - if ($weight > key($areaPrices)) { - break; - } - - $postage = current($areaPrices); - } - } - return $postage; - - } - - /** - * - * calculate and return delivery price - * - * @param Country $country - * @return mixed - * @throws \Thelia\Exception\OrderException - */ - public function getPostage(Country $country) - { - $cartWeight = $this->getRequest()->getSession()->getSessionCart($this->getDispatcher())->getWeight(); - - $postage = self::getPostageAmount( - $this->getAreaForCountry($country)->getId(), - $cartWeight - ); - - return $postage; - } - - public function update($currentVersion, $newVersion, ConnectionInterface $con = null) - { - $uploadDir = __DIR__ . '/Config/prices.json'; - - $database = new Database($con); - - $tableExists = $database->execute("SHOW TABLES LIKE 'colissimo_freeshipping'")->rowCount(); - - if (Colissimo::getConfigValue(ColissimoConfigValue::FREE_SHIPPING, null) == null && $tableExists) { - $result = $database->execute('SELECT active FROM colissimo_freeshipping WHERE id=1')->fetch()["active"]; - Colissimo::setConfigValue(ColissimoConfigValue::FREE_SHIPPING, $result); - $database->execute("DROP TABLE `colissimo_freeshipping`"); - } - - if (is_readable($uploadDir) && Colissimo::getConfigValue(ColissimoConfigValue::PRICES, null) == null) { - Colissimo::setConfigValue(ColissimoConfigValue::PRICES, file_get_contents($uploadDir)); - } - } -} diff --git a/local/local/modules/Colissimo/Config/config.xml b/local/local/modules/Colissimo/Config/config.xml deleted file mode 100644 index fb02632e..00000000 --- a/local/local/modules/Colissimo/Config/config.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/local/local/modules/Colissimo/Config/module.xml b/local/local/modules/Colissimo/Config/module.xml deleted file mode 100644 index b6d71aab..00000000 --- a/local/local/modules/Colissimo/Config/module.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - Colissimo\Colissimo - - Colissimo delivery - - - Livraison par Colissimo - - 2.3.4 - - Manuel Raynaud - manu@raynaud.io - - delivery - 2.2.0 - alpha - diff --git a/local/local/modules/Colissimo/Config/prices.json b/local/local/modules/Colissimo/Config/prices.json deleted file mode 100644 index 53eacc3b..00000000 --- a/local/local/modules/Colissimo/Config/prices.json +++ /dev/null @@ -1,64 +0,0 @@ -{"1": { - "_info": "area 1 : France", - "slices": { - "0.25": 5.23, - "0.5": 6.13, - "0.75": 6.89, - "1": 7.51, - "2": 8.50, - "5": 10.93, - "10": 15.68, - "30": 23.28 - } -}, "2": { - "_info": "area 2 : A Zone - Union Europ\u00e9enne et Suisse", - "slices": { - "0.5": 11.54, - "1": 14.11, - "2": 15.68, - "5": 20.14, - "10": 33.25, - "20": 55.10, - "30": 55.10 - } -}, "3": { - "_info": "area 3 : B Zone - Pays de l\u2019Europe de l\u2019Est (hors Union Europ\u00e9enne et Russie), Norv\u00e8ge, Maghreb", - "slices": { - "0.5": 15.39, - "1": 18.38, - "2": 20.00, - "5": 25.65, - "10": 42.75, - "20": 66.50 - } -}, "4": { - "_info": "area 4 : C Zone - Autres destinations", - "slices": { - "0.5": 22.52, - "1": 24.99, - "2": 34.30, - "5": 50.35, - "10": 95.00, - "20": 152.00 - } -}, "5": { - "_info": "area 5 : France OM1", - "slices": { - "0.5": 8.69, - "1": 13.16, - "2": 17.96, - "5": 26.60, - "10": 42.75, - "30": 95.95 - } -}, "6": { - "_info": "area 6 : France OM2", - "slices": { - "0.5": 10.40, - "1": 15.72, - "2": 27.74, - "5": 46.08, - "10": 90.25, - "30": 237.50 - } -}} diff --git a/local/local/modules/Colissimo/Config/routing.xml b/local/local/modules/Colissimo/Config/routing.xml deleted file mode 100644 index 4edcf64d..00000000 --- a/local/local/modules/Colissimo/Config/routing.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - Colissimo\Controller\EditPrices::editprices - - - - Colissimo\Controller\FreeShipping::set - - - - Colissimo\Controller\Export::exportAction - - - - Colissimo\Controller\Configuration::editConfiguration - - diff --git a/local/local/modules/Colissimo/Config/thelia.sql b/local/local/modules/Colissimo/Config/thelia.sql deleted file mode 100644 index d44ef9fa..00000000 --- a/local/local/modules/Colissimo/Config/thelia.sql +++ /dev/null @@ -1,32 +0,0 @@ -# This is a fix for InnoDB in MySQL >= 4.1.x -# It "suspends judgement" for fkey relationships until are tables are set. -SET FOREIGN_KEY_CHECKS = 0; - --- --------------------------------------------------------------------- --- Mail templates for colissimo --- --------------------------------------------------------------------- - --- First, delete existing entries -SET @var := 0; -SELECT @var := `id` FROM `message` WHERE name="mail_colissimo"; -DELETE FROM `message` WHERE `id`=@var; --- Try if ON DELETE constraint isn't set -DELETE FROM `message_i18n` WHERE `id`=@var; - --- Then add new entries -SELECT @max := MAX(`id`) FROM `message`; -SET @max := @max+1; --- insert message -INSERT INTO `message` (`id`, `name`, `secured`) VALUES -(@max, -'mail_colissimo', -'0' -); - --- and template fr_FR -INSERT INTO `message_i18n` (`id`, `locale`, `title`, `subject`, `text_message`, `html_message`) VALUES -(@max, 'en_US', 'Colissimo shipping message', 'Your order {$order_ref} has been shipped', '{loop type="customer" name="customer.order" current="false" id="$customer_id" backend_context="1"}\r\nDear {$FIRSTNAME} {$LASTNAME},\r\n{/loop}\r\nThank you for your order on our online store {config key="store_name"}.\r\nYour order {$order_ref} dated {format_date date=$order_date} has been shipped on {format_date date=$update_date}.\r\nThe tracking number for this delivery is {$package}. Please check the La Poste website for tracking your parcel: www.coliposte.net.\r\nYou can use this tracking number to get your parcel in your local La Poste office. If don''t get an advice in your mailbox after two working days, claim your parcel at your local La Poste office, using this tracking number.\r\nFeel free to contact us for any forther information\r\nBest Regards.', '{loop type="customer" name="customer.order" current="false" id="$customer_id" backend_context="1"}\r\n

Dear {$FIRSTNAME} {$LASTNAME},

\r\n{/loop}\r\n

Thank you for your order on our online store {config key="store_name"}.

\r\n

Your order {$order_ref} dated {format_date date=$order_date} has been shipped on {format_date date=$update_date}.\r\nThe tracking number for this delivery is {$package}. Please check the La Poste website for tracking your parcel: www.coliposte.net.

\r\n

You can use this tracking number to get your parcel in your local La Poste office. If don''t get an advice in your mailbox after two working days, claim your parcel at your local La Poste office, using this tracking number.

\r\n

Feel free to contact us for any forther information

\r\n

Best Regards.

'), -(@max, 'fr_FR', 'Message d''expédition de colissimo', 'Suivi colissimo commande : {$order_ref}', '{loop type="customer" name="customer.order" current="false" id="$customer_id" backend_context="1"}\r\n{$LASTNAME} {$FIRSTNAME},\r\n{/loop}\r\nNous vous remercions de votre commande sur notre site {config key="store_name"}\r\nUn colis concernant votre commande {$order_ref} du {format_date date=$order_date} a quitté nos entrepôts pour être pris en charge par La Poste le {format_date date=$update_date}.\r\nSon numéro de suivi est le suivant : {$package}\r\nIl vous permet de suivre votre colis en ligne sur le site de La Poste : www.coliposte.net\r\nIl vous sera, par ailleurs, très utile si vous étiez absent au moment de la livraison de votre colis : en fournissant ce numéro de Colissimo Suivi, vous pourrez retirer votre colis dans le bureau de Poste le plus proche.\r\nATTENTION ! Si vous ne trouvez pas l''avis de passage normalement déposé dans votre boîte aux lettres au bout de 48 Heures jours ouvrables, n''hésitez pas à aller le réclamer à votre bureau de Poste, muni de votre numéro de Colissimo Suivi.\r\nNous restons à votre disposition pour toute information complémentaire.\r\nCordialement', '{loop type="customer" name="customer.order" current="false" id="$customer_id" backend_context="1"}\r\n{$LASTNAME} {$FIRSTNAME},\r\n{/loop}\r\nNous vous remercions de votre commande sur notre site {config key="store_name"}\r\nUn colis concernant votre commande {$order_ref} du {format_date date=$order_date} a quitté nos entrepôts pour être pris en charge par La Poste le {format_date date=$update_date}.\r\nSon numéro de suivi est le suivant : {$package}\r\nIl vous permet de suivre votre colis en ligne sur le site de La Poste : www.coliposte.net\r\nIl vous sera, par ailleurs, très utile si vous étiez absent au moment de la livraison de votre colis : en fournissant ce numéro de Colissimo Suivi, vous pourrez retirer votre colis dans le bureau de Poste le plus proche.\r\nATTENTION ! Si vous ne trouvez pas l''avis de passage normalement déposé dans votre boîte aux lettres au bout de 48 Heures jours ouvrables, n''hésitez pas à aller le réclamer à votre bureau de Poste, muni de votre numéro de Colissimo Suivi.\r\nNous restons à votre disposition pour toute information complémentaire.\r\nCordialement'); - -# This restores the fkey checks, after having unset them earlier -SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file diff --git a/local/local/modules/Colissimo/Controller/Configuration.php b/local/local/modules/Colissimo/Controller/Configuration.php deleted file mode 100644 index 52f99df8..00000000 --- a/local/local/modules/Colissimo/Controller/Configuration.php +++ /dev/null @@ -1,77 +0,0 @@ - - */ -class Configuration extends BaseAdminController -{ - public function editConfiguration() - { - if (null !== $response = $this->checkAuth( - AdminResources::MODULE, - [Colissimo::DOMAIN_NAME], - AccessManager::UPDATE - )) { - return $response; - } - - $form = $this->createForm('colissimo.configuration'); - $error_message = null; - - try { - $validateForm = $this->validateForm($form); - $data = $validateForm->getData(); - - Colissimo::setConfigValue( - ColissimoConfigValue::ENABLED, - is_bool($data["enabled"]) ? (int) ($data["enabled"]) : $data["enabled"] - ); - - return $this->redirectToConfigurationPage(); - - } catch (FormValidationException $e) { - $error_message = $this->createStandardFormValidationErrorMessage($e); - } - - if (null !== $error_message) { - $this->setupFormErrorContext( - 'configuration', - $error_message, - $form - ); - $response = $this->render("module-configure", ['module_code' => 'Colissimo']); - } - return $response; - } - - /** - * Redirect to the configuration page - */ - protected function redirectToConfigurationPage() - { - return RedirectResponse::create(URL::getInstance()->absoluteUrl('/admin/module/Colissimo')); - } -} diff --git a/local/local/modules/Colissimo/Controller/EditPrices.php b/local/local/modules/Colissimo/Controller/EditPrices.php deleted file mode 100644 index a4ed5083..00000000 --- a/local/local/modules/Colissimo/Controller/EditPrices.php +++ /dev/null @@ -1,84 +0,0 @@ - - */ -class EditPrices extends BaseAdminController -{ - public function editprices() - { - // Get data & treat - $post = $this->getRequest(); - $operation = $post->get('operation'); - $area = $post->get('area'); - $weight = $post->get('weight'); - $price = $post->get('price'); - - if (preg_match("#^add|delete$#", $operation) && - preg_match("#^\d+$#", $area) && - preg_match("#^\d+\.?\d*$#", $weight) - ) { - // check if area exists in db - $exists = AreaQuery::create() - ->findPK($area); - if ($exists !== null) { - - if (null !== $data = Colissimo::getConfigValue(ColissimoConfigValue::PRICES, null)) { - $json_data = json_decode( - $data, - true - ); - } - if ((float) $weight > 0 && $operation == "add" - && preg_match("#\d+\.?\d*#", $price)) { - $json_data[$area]['slices'][$weight] = $price; - } elseif ($operation == "delete") { - if (isset($json_data[$area]['slices'][$weight])) { - unset($json_data[$area]['slices'][$weight]); - } - } else { - throw new \Exception("Weight must be superior to 0"); - } - ksort($json_data[$area]['slices']); - - Colissimo::setConfigValue(ColissimoConfigValue::PRICES, json_encode($json_data)); - - } else { - throw new \Exception("Area not found"); - } - } else { - throw new \ErrorException("Arguments are missing or invalid"); - } - - return $this->redirectToConfigurationPage(); - } - - /** - * Redirect to the configuration page - */ - protected function redirectToConfigurationPage() - { - return RedirectResponse::create(URL::getInstance()->absoluteUrl('/admin/module/Colissimo')); - } -} diff --git a/local/local/modules/Colissimo/Controller/Export.php b/local/local/modules/Colissimo/Controller/Export.php deleted file mode 100644 index ca82a68e..00000000 --- a/local/local/modules/Colissimo/Controller/Export.php +++ /dev/null @@ -1,166 +0,0 @@ - - */ -class Export extends BaseAdminController -{ - const DEFAULT_PHONE = "0100000000"; - const DEFAULT_CELLPHONE = "0600000000"; - - public function exportAction() - { - if (null !== $response = $this->checkAuth(array(AdminResources::MODULE), array('Colissimo'), AccessManager::UPDATE)) { - return $response; - } - - $form = new FormExport($this->getRequest()); - - try { - $exportForm = $this->validateForm($form); - - // Get new status - $status_id = $exportForm->get('status_id')->getData(); - $status = OrderStatusQuery::create() - ->filterByCode($status_id) - ->findOne(); - - // Get Colissimo orders - $orders = ColissimoQuery::getOrders()->find(); - - $export = ""; - $store_name = ConfigQuery::getStoreName(); - - /** @var $order \Thelia\Model\Order */ - foreach ($orders as $order) { - - $value = $exportForm->get('order_'.$order->getId())->getData(); - - if ($value) { - - // Get order information - $customer = $order->getCustomer(); - $locale = $order->getLang()->getLocale(); - $address = $order->getOrderAddressRelatedByDeliveryOrderAddressId(); - $country = CountryQuery::create()->findPk($address->getCountryId()); - $country->setLocale($locale); - $customerTitle = CustomerTitleQuery::create()->findPk($address->getCustomerTitleId()); - $customerTitle->setLocale($locale); - $weight = $exportForm->get('order_weight_'.$order->getId())->getData(); - - if ($weight == 0) { - /** @var \Thelia\Model\OrderProduct $product */ - foreach ($order->getOrderProducts() as $product) { - $weight += (double)$product->getWeight(); - } - } - - /** - * Get user's phone & cellphone - * First get invoice address phone, - * If empty, try to get default address' phone. - * If still empty, set default value - */ - $phone = $address->getPhone(); - if (empty($phone)) { - $phone = $customer->getDefaultAddress()->getPhone(); - - if (empty($phone)) { - $phone = self::DEFAULT_PHONE; - } - } - - // Cellphone - $cellphone = $customer->getDefaultAddress()->getCellphone(); - - if (empty($cellphone)) { - $cellphone = $customer->getDefaultAddress()->getCellphone(); - - if (empty($cellphone)) { - $cellphone = self::DEFAULT_CELLPHONE; - } - } - - - $export .= - "\"".$order->getRef() - ."\";\"".$address->getLastname() - ."\";\"".$address->getFirstname() - ."\";\"".$address->getAddress1() - ."\";\"".$address->getAddress2() - ."\";\"".$address->getAddress3() - ."\";\"".$address->getZipcode() - ."\";\"".$address->getCity() - ."\";\"".$country->getIsoalpha2() - ."\";\"".$phone - ."\";\"".$cellphone - ."\";\"".$weight - ."\";\"".$customer->getEmail() - ."\";\"\";\"".$store_name - ."\";\"DOM\";\r\n"; - - if ($status) { - $event = new OrderEvent($order); - $event->setStatus($status->getId()); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_UPDATE_STATUS, $event); - } - } - } - - return Response::create( - utf8_decode($export), - 200, - array( - "Content-Encoding"=>"ISO-8889-1", - "Content-Type"=>"application/csv-tab-delimited-table", - "Content-disposition"=>"filename=export.csv" - ) - ); - - } catch (FormValidationException $e) { - $this->setupFormErrorContext( - Translator::getInstance()->trans("colissimo expeditor export", [], Colissimo::DOMAIN_NAME), - $e->getMessage(), - $form, - $e - ); - - return $this->render( - "module-configure", - array( - "module_code" => "Colissimo", - ) - ); - } - } -} diff --git a/local/local/modules/Colissimo/Controller/FreeShipping.php b/local/local/modules/Colissimo/Controller/FreeShipping.php deleted file mode 100644 index 10d46e6f..00000000 --- a/local/local/modules/Colissimo/Controller/FreeShipping.php +++ /dev/null @@ -1,62 +0,0 @@ - - */ -class FreeShipping extends BaseAdminController -{ - public function set() - { - $response = $this->checkAuth(AdminResources::MODULE, [Colissimo::DOMAIN_NAME], AccessManager::UPDATE); - if (null !== $response) { - return $response; - } - - $form = $this->createForm('colissimo.freeshipping.form'); - - - try { - $validateForm = $this->validateForm($form); - $data = $validateForm->getData(); - - Colissimo::setConfigValue(ColissimoConfigValue::FREE_SHIPPING, (int) ($data["freeshipping"])); - return $this->redirectToConfigurationPage(); - - } catch (\Exception $e) { - $response = JsonResponse::create(array("error"=>$e->getMessage()), 500); - } - - return $response; - } - - /** - * Redirect to the configuration page - */ - protected function redirectToConfigurationPage() - { - return RedirectResponse::create(URL::getInstance()->absoluteUrl('/admin/module/Colissimo')); - } -} diff --git a/local/local/modules/Colissimo/EventListener/AreaDeletedListener.php b/local/local/modules/Colissimo/EventListener/AreaDeletedListener.php deleted file mode 100644 index c1eb3e41..00000000 --- a/local/local/modules/Colissimo/EventListener/AreaDeletedListener.php +++ /dev/null @@ -1,53 +0,0 @@ - - */ -class AreaDeletedListener implements EventSubscriberInterface -{ - /** - * @param AreaDeleteEvent $event - */ - public function updateConfig(AreaDeleteEvent $event) - { - if (null !== $data = Colissimo::getConfigValue(ColissimoConfigValue::PRICES, null)) { - $areaId = $event->getAreaId(); - $json_data = json_decode($data, true); - unset($json_data[$areaId]); - - Colissimo::setConfigValue(ColissimoConfigValue::PRICES, json_encode($json_data, true)); - } - } - - /** - * @return array - */ - public static function getSubscribedEvents() - { - return [ - TheliaEvents::AREA_DELETE => [ - 'updateConfig', 128 - ] - ]; - } -} diff --git a/local/local/modules/Colissimo/Form/Configuration.php b/local/local/modules/Colissimo/Form/Configuration.php deleted file mode 100644 index bc9c58b3..00000000 --- a/local/local/modules/Colissimo/Form/Configuration.php +++ /dev/null @@ -1,59 +0,0 @@ - - */ -class Configuration extends BaseForm -{ - - protected function buildForm() - { - $this->formBuilder - ->add( - "enabled", - "checkbox", - array( - "label" => "Enabled", - "label_attr" => [ - "for" => "enabled", - "help" => Translator::getInstance()->trans( - 'Check if you want to activate Colissimo', - [], - Colissimo::DOMAIN_NAME - ) - ], - "required" => false, - "constraints" => array( - ), - "value" => Colissimo::getConfigValue(ColissimoConfigValue::ENABLED, 1), - ) - ); - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "colissimo_enable"; - } -} diff --git a/local/local/modules/Colissimo/Form/Export.php b/local/local/modules/Colissimo/Form/Export.php deleted file mode 100644 index 47c8fddf..00000000 --- a/local/local/modules/Colissimo/Form/Export.php +++ /dev/null @@ -1,122 +0,0 @@ - - */ -class Export extends BaseForm -{ - - /** - * - * in this function you add all the fields you need for your Form. - * Form this you have to call add method on $this->formBuilder attribute : - * - * $this->formBuilder->add("name", "text") - * ->add("email", "email", array( - * "attr" => array( - * "class" => "field" - * ), - * "label" => "email", - * "constraints" => array( - * new \Symfony\Component\Validator\Constraints\NotBlank() - * ) - * ) - * ) - * ->add('age', 'integer'); - * - * @return null - */ - protected function buildForm() - { - $orders = ColissimoQuery::getOrders() - ->find(); - - $this->formBuilder - ->add( - 'status_id', - 'text', - [ - 'constraints' => [ - new NotBlank(), - new Callback( - array("methods" => array(array($this, "verifyValue"))) - ) - ], - 'label' => Translator::getInstance()->trans( - 'Modify status export after export', - [], - Colissimo::DOMAIN_NAME - ), - 'label_attr' => [ - 'for' => 'status_id' - ] - ] - ); - - /** @var \Thelia\Model\Order $order */ - foreach ($orders as $order) { - $this->formBuilder - ->add( - "order_".$order->getId(), - "checkbox", - array( - 'label'=>$order->getRef(), - 'label_attr'=>array( - 'for'=>'export_'.$order->getId() - ) - ) - ) - ->add( - "order_nb_pkg_".$order->getId(), - 'number' - ) - ->add( - "order_weight_".$order->getId(), - 'number' - ); - } - } - - public function verifyValue($value, ExecutionContextInterface $context) - { - if (!preg_match("#^nochange|processing|sent$#", $value)) { - $context->addViolation( - Translator::getInstance()->trans( - 'select a valid status', - [], - Colissimo::DOMAIN_NAME - ) - ); - } - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "colissimo_export"; - } -} diff --git a/local/local/modules/Colissimo/Form/FreeShipping.php b/local/local/modules/Colissimo/Form/FreeShipping.php deleted file mode 100644 index baea56e0..00000000 --- a/local/local/modules/Colissimo/Form/FreeShipping.php +++ /dev/null @@ -1,62 +0,0 @@ -formBuilder attribute : - * - * $this->formBuilder->add("name", "text") - * ->add("email", "email", array( - * "attr" => array( - * "class" => "field" - * ), - * "label" => "email", - * "constraints" => array( - * new \Symfony\Component\Validator\Constraints\NotBlank() - * ) - * ) - * ) - * ->add('age', 'integer'); - * - * @return null - */ - protected function buildForm() - { - $this->formBuilder - ->add( - "freeshipping", - "checkbox", - array( - "label" => Translator::getInstance()->trans("Activate free shipping: ", [], Colissimo::DOMAIN_NAME), - "value" => Colissimo::getConfigValue(ColissimoConfigValue::FREE_SHIPPING, false), - ) - ); - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "colissimofreeshipping"; - } -} diff --git a/local/local/modules/Colissimo/Hook/HookManager.php b/local/local/modules/Colissimo/Hook/HookManager.php deleted file mode 100644 index 7c8b15bb..00000000 --- a/local/local/modules/Colissimo/Hook/HookManager.php +++ /dev/null @@ -1,31 +0,0 @@ - - */ -class HookManager extends BaseHook -{ - public function onModuleConfiguration(HookRenderEvent $event) - { - $module_id = self::getModule()->getModuleId(); - - $event->add($this->render("module_configuration.html", ['module_id' => $module_id])); - } -} diff --git a/local/local/modules/Colissimo/I18n/backOffice/default/de_DE.php b/local/local/modules/Colissimo/I18n/backOffice/default/de_DE.php deleted file mode 100644 index 10ed342f..00000000 --- a/local/local/modules/Colissimo/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,25 +0,0 @@ - '*Wenn Sie diese Option auswählen, sind die exportierten Bestellungen auf dieser Seite nicht mehr verfügbar', - 'Actions' => 'Aktionen', - 'An error occured' => 'Ein Fehler ist aufgetreten', - 'Area : ' => 'Bereich : ', - 'Cancel' => 'Abbrechen', - 'Change orders status after export' => 'Status der Bestellung nach dem Export ändern', - 'Colissimo Module allows to send your products all around the world with La Poste.' => 'Colissimo Modul ermöglicht, Ihre Produkte mit La Poste weltweit zu versenden.', - 'Create' => 'Erstellen', - 'Date' => 'Datum', - 'Delete' => 'Löschen', - 'Do not change' => 'Nicht ändern', - 'Edit' => 'Ändern', - 'Export' => 'Export', - 'Please change the access rights' => 'Bitte ändern Sie die Zugriffsrechte', - 'Price (€)' => 'Preis (€)', - 'Processing' => 'Bearbeitung', - 'REF' => 'REF', - 'Sent' => 'Gesendet', - 'There is currently not orders to export' => 'Es gibt derzeit keine Bestellungen, die exportiert werden können', - 'Total taxed amount' => 'Gesamter besteuerter Betrag', - 'Weight up to ... (kg)' => 'Gewicht bis zu ... (kg)', -]; diff --git a/local/local/modules/Colissimo/I18n/backOffice/default/en_US.php b/local/local/modules/Colissimo/I18n/backOffice/default/en_US.php deleted file mode 100644 index 0d48057a..00000000 --- a/local/local/modules/Colissimo/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,36 +0,0 @@ - '*If you choose this option, the exported orders would not be available on this page anymore', - 'Actions' => 'Actions', - 'An error occured' => 'An error occured', - 'Area : ' => 'Area : ', - 'Cancel' => 'Cancel', - 'Change orders status after export' => 'Change orders status after export', - 'Colissimo Module allows to send your products all around the world with La Poste.' => 'Colissimo Module allows to send your products all around the world with La Poste.', - 'Create' => 'Create', - 'Create a new price slice' => 'Create a new price slice', - 'Create a price slice' => 'Create a price slice', - 'Date' => 'Date', - 'Delete' => 'Delete', - 'Delete a price slice' => 'Delete a price slice', - 'Delete this price slice' => 'Delete this price slice', - 'Do not change' => 'Do not change', - 'Do you really want to delete this slice ?' => 'Do you really want to delete this slice ?', - 'Edit' => 'Edit', - 'Edit a price slice' => 'Edit a price slice', - 'Edit this price slice' => 'Edit this price slice', - 'Export' => 'Export', - 'Export expeditor inet file' => 'Export expeditor inet file', - 'Please change the access rights' => 'Please change the access rights', - 'Price (€)' => 'Price (€)', - 'Price slices' => 'Price slices', - 'Processing' => 'Processing', - 'REF' => 'REF', - 'Sent' => 'Sent', - 'There is currently not orders to export' => 'There is currently no orders to export', - 'Total taxed amount' => 'Total taxed amount', - 'Weight up to ... (kg)' => 'Weight up to ... (kg)', - 'Number of packages' => 'Number of packages', - 'Packages weight' => 'Packages weight' -); diff --git a/local/local/modules/Colissimo/I18n/backOffice/default/fr_FR.php b/local/local/modules/Colissimo/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index d7237509..00000000 --- a/local/local/modules/Colissimo/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,37 +0,0 @@ - '* Si vous choisissez cette option, les commandes exportées ne seront plus affichée sur cette page.', - 'Actions' => 'Actions', - 'An error occured' => 'Une erreur est survenue', - 'Area : ' => 'Zone de livraison : ', - 'Cancel' => 'Annuler', - 'Change orders status after export' => 'Modification du statut des commande après l\'export', - 'Colissimo Module allows to send your products all around the world with La Poste.' => 'Colissimo vous permet d’expédier vos colis dans le monde entier avec La Poste', - 'Create' => 'Créer', - 'Create a new price slice' => 'Créer une nouvelle tranche de prix', - 'Create a price slice' => 'Créer une tranche de prix', - 'Customer' => 'Client', - 'Date' => 'Date', - 'Delete' => 'Supprimer', - 'Delete a price slice' => 'Supprimer une tranche de prix', - 'Delete this price slice' => 'Supprimer cette tranche de prix', - 'Do not change' => 'Ne pas modifier', - 'Do you really want to delete this slice ?' => 'Confirmez-vous la suppression de cette tranche de prix', - 'Edit' => 'Modifier', - 'Edit a price slice' => 'Modifier une tranche de prix', - 'Edit this price slice' => 'Modifier cette tranche de prix', - 'Export' => 'Export', - 'Export expeditor inet file' => 'Exporter le fichier Expeditor INET', - 'Number of packages' => 'Nombre de colis', - 'Packages weight' => 'Poids des colis', - 'Please change the access rights' => 'Merci de modifier les droits d\'accès', - 'Price (€)' => 'Prix (€)', - 'Price slices' => 'Prix et poids', - 'Processing' => 'Traitement', - 'REF' => 'REF', - 'Sent' => 'Envoyée', - 'There is currently not orders to export' => 'Il n\'y a pas de commande à exporter pour le moment', - 'Total taxed amount' => 'Total TTC', - 'Weight up to ... (kg)' => 'Jusqu\'au poids (Kg)', -]; diff --git a/local/local/modules/Colissimo/I18n/backOffice/default/it_IT.php b/local/local/modules/Colissimo/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 58e711dc..00000000 --- a/local/local/modules/Colissimo/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Azioni', - 'Cancel' => 'Annulla', - 'Create' => 'Creare', - 'Date' => 'Data', - 'Delete' => 'Cancellare', - 'Edit' => 'Modifica', - 'Export' => 'Esporta', - 'Number of packages' => 'Numero di pacchetti', - 'Packages weight' => 'Peso pacchi', -]; diff --git a/local/local/modules/Colissimo/I18n/backOffice/default/tr_TR.php b/local/local/modules/Colissimo/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index a777927b..00000000 --- a/local/local/modules/Colissimo/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,34 +0,0 @@ - '* Bu seçeneği seçerseniz, ihracat siparişleri artık bu sayfadaki müsait olmaz', - 'Actions' => 'Eylemler', - 'An error occured' => 'Bir hata meydana geldi', - 'Area : ' => 'Alanı: ', - 'Cancel' => 'Vazgeç', - 'Change orders status after export' => 'İhracat sonra sipariş durumunu değiştir', - 'Colissimo Module allows to send your products all around the world with La Poste.' => 'Colissimo modülü sağlar ürünlerinizi göndermek için La Poste ile dünyanın her yerinden.', - 'Create' => 'Oluştur', - 'Create a new price slice' => 'Yeni fiyat dilimi oluşturmak', - 'Create a price slice' => 'Bir fiyat dilim oluşturma', - 'Date' => 'Tarih', - 'Delete' => 'sil', - 'Delete a price slice' => 'Bir fiyat dilim silmek', - 'Delete this price slice' => 'Bu fiyat dilim silmek', - 'Do not change' => 'Değiştirme', - 'Do you really want to delete this slice ?' => 'Gerçekten bu dosyayı silmek istiyor musunuz ?', - 'Edit' => 'Düzenle', - 'Edit a price slice' => 'Bir fiyat dilim Düzenle', - 'Edit this price slice' => 'Bu fiyat dilim Düzenle', - 'Export' => 'Dışa aktarma', - 'Export expeditor inet file' => 'Expeditor inet dosyası dışa aktarma', - 'Please change the access rights' => 'Lütfen erişim haklarını Değiştir', - 'Price (€)' => 'Fiyat (TL)', - 'Price slices' => 'Fiyat dilimleri', - 'Processing' => 'İşlem devam ediyor', - 'REF' => 'ÜRÜN KODU', - 'Sent' => 'Gönder', - 'There is currently not orders to export' => 'Şu anda hiçbir emir vermek için', - 'Total taxed amount' => 'Toplam Kdvtutarı', - 'Weight up to ... (kg)' => 'Fazla kilo... (kg)', -]; diff --git a/local/local/modules/Colissimo/I18n/de_DE.php b/local/local/modules/Colissimo/I18n/de_DE.php deleted file mode 100644 index 5198cfbd..00000000 --- a/local/local/modules/Colissimo/I18n/de_DE.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Kostenlose Lieferung aktivieren: ', - 'Can\'t read Config directory' => 'Config-Verzeichnis kann nicht gelesen werden', - 'Can\'t read file' => 'Datei kann nicht gelesen werden', - 'Can\'t write Config directory' => 'Config-Verzeichnis kann nicht beschrieben werden', - 'Can\'t write file' => 'Datei kann nicht geschrieben werden', - 'Colissimo delivery unavailable for the delivery country' => 'Eine Lieferung mit Colissimo ist für das Land nicht verfügbar', - 'Colissimo delivery unavailable for this cart weight (%weight kg)' => 'Eine Lieferung mit Colissimo ist für Warenkörbe mit diesem Gewicht (%weight kg) nicht verfügbar', - 'Modify status export after export' => 'Status der Bestellung nach dem Export ändern', - 'colissimo expeditor export' => 'Colissimo expeditor export', - 'select a valid status' => 'Wählen Sie einen gültigen Bestellungsstatus aus', -]; diff --git a/local/local/modules/Colissimo/I18n/en_US.php b/local/local/modules/Colissimo/I18n/en_US.php deleted file mode 100644 index c060ae29..00000000 --- a/local/local/modules/Colissimo/I18n/en_US.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Activate free shipping: ', - 'Can\'t read Config directory' => 'Can\'t read Config directory', - 'Can\'t read file' => 'Can\'t read file', - 'Can\'t write Config directory' => 'Can\'t write Config directory', - 'Can\'t write file' => 'Can\'t write file', - 'Colissimo delivery unavailable for the delivery country' => 'Colissimo delivery unavailable for the delivery country', - 'Colissimo delivery unavailable for this cart weight (%weight kg)' => 'Colissimo delivery unavailable for this cart weight (%weight kg)', - 'Modify status export after export' => 'Change orders status after export', - 'colissimo expeditor export' => 'Colissimo Expeditor export', - 'select a valid status' => 'Select a valid order status', -); diff --git a/local/local/modules/Colissimo/I18n/fr_FR.php b/local/local/modules/Colissimo/I18n/fr_FR.php deleted file mode 100644 index 92634b2c..00000000 --- a/local/local/modules/Colissimo/I18n/fr_FR.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Activer la livraison offerte: ', - 'Can\'t read Config directory' => 'Le dossier Config ne peut être lu', - 'Can\'t read file' => 'Le fichier suivant ne peut être lu', - 'Can\'t write Config directory' => 'Le dossier Config ne peut être écrit', - 'Can\'t write file' => 'Le fichier suivant ne peut être écrit', - 'Colissimo delivery unavailable for the delivery country' => 'La livraison par Colissimo n\'est pas disponible dans ce pays', - 'Colissimo delivery unavailable for this cart weight (%weight kg)' => 'La livraison par Colissimo n\'est pas disponible pour un panier de %weight Kg', - 'Modify status export after export' => 'Modification du statut des commandes après l\'export', - 'colissimo expeditor export' => 'Export pour le logiciel Expeditor', - 'select a valid status' => 'Choisissez un statut de commande valide.', -]; diff --git a/local/local/modules/Colissimo/I18n/tr_TR.php b/local/local/modules/Colissimo/I18n/tr_TR.php deleted file mode 100644 index 4d4ef3c5..00000000 --- a/local/local/modules/Colissimo/I18n/tr_TR.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Ücretsiz nakliye etkinleştirmek için: ', - 'Can\'t read Config directory' => 'Yapılandırma dizini okunamıyor', - 'Can\'t read file' => 'Dosyayı okuyamıyor', - 'Can\'t write Config directory' => 'Dosyayı okuyamıyor', - 'Can\'t write file' => 'Dosyaya yazılamıyor', - 'Colissimo delivery unavailable for the delivery country' => 'Bu Teslimat Bu ülke için kullanılamaz Colissimo teslim', - 'Colissimo delivery unavailable for this cart weight (%weight kg)' => 'Colissimo teslimat için bu sepeti ağırlık (%weight kg) kullanılamaz', - 'Modify status export after export' => 'İhracat sonra sipariş durumunu değiştir', - 'colissimo expeditor export' => 'Colissimo Expeditor verme', - 'select a valid status' => 'Geçerli sipariş durumunu seçin', -]; diff --git a/local/local/modules/Colissimo/Listener/SendMail.php b/local/local/modules/Colissimo/Listener/SendMail.php deleted file mode 100644 index e9db80ae..00000000 --- a/local/local/modules/Colissimo/Listener/SendMail.php +++ /dev/null @@ -1,104 +0,0 @@ - - */ -class SendMail implements EventSubscriberInterface -{ - - protected $parser; - - protected $mailer; - - public function __construct(ParserInterface $parser, MailerFactory $mailer) - { - $this->parser = $parser; - $this->mailer = $mailer; - } - - public function updateStatus(OrderEvent $event) - { - $order = $event->getOrder(); - $colissimo = new Colissimo(); - - if ($order->isSent() && $order->getDeliveryModuleId() == $colissimo->getModuleModel()->getId()) { - $contact_email = ConfigQuery::getStoreEmail(); - - if ($contact_email) { - $order = $event->getOrder(); - $customer = $order->getCustomer(); - - $this->mailer->sendEmailToCustomer( - 'mail_colissimo', - $customer, - [ - 'customer_id' => $customer->getId(), - 'order_ref' => $order->getRef(), - 'order_date' => $order->getCreatedAt(), - 'update_date' => $order->getUpdatedAt(), - 'package' => $order->getDeliveryRef() - ] - ); - - Tlog::getInstance()->debug("Colissimo shipping message sent to customer ".$customer->getEmail()); - } else { - $customer = $order->getCustomer(); - Tlog::getInstance()->debug("Colissimo shipping message no contact email customer_id", $customer->getId()); - } - } - } - - /** - * Returns an array of event names this subscriber wants to listen to. - * - * The array keys are event names and the value can be: - * - * * The method name to call (priority defaults to 0) - * * An array composed of the method name to call and the priority - * * An array of arrays composed of the method names to call and respective - * priorities, or 0 if unset - * - * For instance: - * - * * array('eventName' => 'methodName') - * * array('eventName' => array('methodName', $priority)) - * * array('eventName' => array(array('methodName1', $priority), array('methodName2')) - * - * @return array The event names to listen to - * - * @api - */ - public static function getSubscribedEvents() - { - return array( - TheliaEvents::ORDER_UPDATE_STATUS => array("updateStatus", 128) - ); - } -} diff --git a/local/local/modules/Colissimo/Loop/CheckRightsLoop.php b/local/local/modules/Colissimo/Loop/CheckRightsLoop.php deleted file mode 100644 index d655f1ad..00000000 --- a/local/local/modules/Colissimo/Loop/CheckRightsLoop.php +++ /dev/null @@ -1,100 +0,0 @@ - - */ -class CheckRightsLoop extends BaseLoop implements ArraySearchLoopInterface -{ - protected function getArgDefinitions() - { - return new ArgumentCollection(); - } - - public function buildArray() - { - $ret = array(); - $dir = __DIR__."/../Config/"; - if (!is_readable($dir)) { - - $ret[] = array( - "ERRMES"=>Translator::getInstance()->trans( - "Can't read Config directory", - [], - Colissimo::DOMAIN_NAME - ), - "ERRFILE"=>"" - ); - } - if (!is_writable($dir)) { - $ret[] = array( - "ERRMES"=>Translator::getInstance()->trans( - "Can't write Config directory", - [], - Colissimo::DOMAIN_NAME - ), - "ERRFILE"=>"" - ); - - } - if ($handle = opendir($dir)) { - while (false !== ($file = readdir($handle))) { - if (strlen($file) > 5 && substr($file, -5) === ".json") { - if (!is_readable($dir.$file)) { - - $ret[] = array( - "ERRMES"=>Translator::getInstance()->trans( - "Can't read file", - [], - Colissimo::DOMAIN_NAME - ), - "ERRFILE"=>"Colissimo/Config/".$file - ); - } - if (!is_writable($dir.$file)) { - $ret[] = array( - "ERRMES"=>Translator::getInstance()->trans( - "Can't write file", - [], - Colissimo::DOMAIN_NAME - ), - "ERRFILE"=>"Colissimo/Config/".$file - ); - - } - } - } - } - return $ret; - } - public function parseResults(LoopResult $loopResult) - { - foreach ($loopResult->getResultDataCollection() as $arr) { - $loopResultRow = new LoopResultRow(); - $loopResultRow->set("ERRMES", $arr["ERRMES"]) - ->set("ERRFILE", $arr["ERRFILE"]); - $loopResult->addRow($loopResultRow); - } - return $loopResult; - } -} diff --git a/local/local/modules/Colissimo/Loop/NotSendLoop.php b/local/local/modules/Colissimo/Loop/NotSendLoop.php deleted file mode 100644 index b504924e..00000000 --- a/local/local/modules/Colissimo/Loop/NotSendLoop.php +++ /dev/null @@ -1,74 +0,0 @@ - - */ -class NotSendLoop extends Order -{ - /** - * - * define all args used in your loop - * - * - * example : - * - * public function getArgDefinitions() - * { - * return new ArgumentCollection( - * Argument::createIntListTypeArgument('id'), - * new Argument( - * 'ref', - * new TypeCollection( - * new Type\AlphaNumStringListType() - * ) - * ), - * Argument::createIntListTypeArgument('category'), - * Argument::createBooleanTypeArgument('new'), - * Argument::createBooleanTypeArgument('promo'), - * Argument::createFloatTypeArgument('min_price'), - * Argument::createFloatTypeArgument('max_price'), - * Argument::createIntTypeArgument('min_stock'), - * Argument::createFloatTypeArgument('min_weight'), - * Argument::createFloatTypeArgument('max_weight'), - * Argument::createBooleanTypeArgument('current'), - * - * ); - * } - * - * @return \Thelia\Core\Template\Loop\Argument\ArgumentCollection - */ - public function getArgDefinitions() - { - return new ArgumentCollection(Argument::createBooleanTypeArgument('with_prev_next_info', false)); - } - - /** - * this method returns a Propel ModelCriteria - * - * @return \Propel\Runtime\ActiveQuery\ModelCriteria - */ - public function buildModelCriteria() - { - return ColissimoQuery::getOrders(); - } -} diff --git a/local/local/modules/Colissimo/Loop/Price.php b/local/local/modules/Colissimo/Loop/Price.php deleted file mode 100644 index 014f5eef..00000000 --- a/local/local/modules/Colissimo/Loop/Price.php +++ /dev/null @@ -1,73 +0,0 @@ - - */ -class Price extends BaseLoop implements ArraySearchLoopInterface -{ - /* set countable to false since we need to preserve keys */ - protected $countable = false; - - /** - * @return ArgumentCollection - */ - protected function getArgDefinitions() - { - return new ArgumentCollection( - Argument::createIntTypeArgument('area', null, true) - ); - } - - public function buildArray() - { - $area = $this->getArea(); - $prices = Colissimo::getPrices(); - - if (!isset($prices[$area]) || !isset($prices[$area]["slices"])) { - return array(); - } - - $areaPrices = $prices[$area]["slices"]; - ksort($areaPrices); - - return $areaPrices; - } - - public function parseResults(LoopResult $loopResult) - { - foreach ($loopResult->getResultDataCollection() as $maxWeight => $price) { - $loopResultRow = new LoopResultRow(); - $loopResultRow->set("MAX_WEIGHT", $maxWeight) - ->set("PRICE", $price); - - $loopResult->addRow($loopResultRow); - } - return $loopResult; - } -} diff --git a/local/local/modules/Colissimo/Model/ColissimoQuery.php b/local/local/modules/Colissimo/Model/ColissimoQuery.php deleted file mode 100644 index 2fb634c7..00000000 --- a/local/local/modules/Colissimo/Model/ColissimoQuery.php +++ /dev/null @@ -1,66 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Colissimo\Model; - -use Colissimo\Colissimo; -use Propel\Runtime\ActiveQuery\Criteria; -use Thelia\Model\OrderQuery; -use Thelia\Model\OrderStatus; -use Thelia\Model\OrderStatusQuery; - -/** - * Class ColissimoQuery - * @package Colissimo\Model - * @author Manuel Raynaud - */ -class ColissimoQuery -{ - /** - * @return OrderQuery - */ - public static function getOrders() - { - $status = OrderStatusQuery::create() - ->filterByCode( - array( - OrderStatus::CODE_PAID, - OrderStatus::CODE_PROCESSING, - ), - Criteria::IN - ) - ->find() - ->toArray("code"); - - $query = OrderQuery::create() - ->filterByDeliveryModuleId((new Colissimo())->getModuleModel()->getId()) - ->filterByStatusId( - array( - $status[OrderStatus::CODE_PAID]['Id'], - $status[OrderStatus::CODE_PROCESSING]['Id']), - Criteria::IN - ); - - return $query; - } -} diff --git a/local/local/modules/Colissimo/Model/Config/Base/ColissimoConfigValue.php b/local/local/modules/Colissimo/Model/Config/Base/ColissimoConfigValue.php deleted file mode 100644 index c481a36a..00000000 --- a/local/local/modules/Colissimo/Model/Config/Base/ColissimoConfigValue.php +++ /dev/null @@ -1,25 +0,0 @@ - - */ -class ColissimoConfigValue -{ - const FREE_SHIPPING = "free_shipping"; - const PRICES = "prices"; - const ENABLED = "enabled"; -} diff --git a/local/local/modules/Colissimo/Model/Config/ColissimoConfigValue.php b/local/local/modules/Colissimo/Model/Config/ColissimoConfigValue.php deleted file mode 100644 index d0cb0be1..00000000 --- a/local/local/modules/Colissimo/Model/Config/ColissimoConfigValue.php +++ /dev/null @@ -1,24 +0,0 @@ - - */ -class ColissimoConfigValue extends BaseColissimoConfigValue -{ -} diff --git a/local/local/modules/Colissimo/THELIA_INET.FMT b/local/local/modules/Colissimo/THELIA_INET.FMT deleted file mode 100644 index 97266648..00000000 --- a/local/local/modules/Colissimo/THELIA_INET.FMT +++ /dev/null @@ -1,23 +0,0 @@ -[GENERAL] -DELIMITE=O -SEPARATEUR=59 -DELIMITEUR=34 -FINDELIGNE=CRLF -Unité poids=KG -[CHAMPS] -ReferenceExpedition=1 -NomDestinataire=2 -Prenom=3 -Adresse1=4 -Adresse2=5 -Adresse3=6 -CodePostal=7 -Commune=8 -CodePays=9 -Telephone=10 -Portable=11 -Poids=12 -Mail=13 -CodePointRetrait=14 -CodeProduit=15 -NomCommercialChargeur=16 diff --git a/local/local/modules/Colissimo/composer.json b/local/local/modules/Colissimo/composer.json deleted file mode 100644 index d84be8fd..00000000 --- a/local/local/modules/Colissimo/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/colissimo-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "Colissimo" - } -} diff --git a/local/local/modules/Colissimo/documentation/TarifsAvril2013.pdf b/local/local/modules/Colissimo/documentation/TarifsAvril2013.pdf deleted file mode 100644 index 886a9983c8e494c318b1942a6183152586bb6922..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184810 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 WodDM!FBboG{TKxYUa%kQ$Nvvb6JS*U diff --git a/local/local/modules/Colissimo/documentation/readme.txt b/local/local/modules/Colissimo/documentation/readme.txt deleted file mode 100644 index b673e196..00000000 --- a/local/local/modules/Colissimo/documentation/readme.txt +++ /dev/null @@ -1,3 +0,0 @@ -Colissimo prices based on April 2013 pdf. -TarifsAvril2013.pdf is available in this module documentation folder. -You may update prices in Config/prices.json file. \ No newline at end of file diff --git a/local/local/modules/Colissimo/templates/backOffice/default/assets/js/module-configuration-js.html b/local/local/modules/Colissimo/templates/backOffice/default/assets/js/module-configuration-js.html deleted file mode 100644 index a51dac94..00000000 --- a/local/local/modules/Colissimo/templates/backOffice/default/assets/js/module-configuration-js.html +++ /dev/null @@ -1,36 +0,0 @@ -{javascripts file="assets/js/bootstrap-switch/bootstrap-switch.js"} - -{/javascripts} - - \ No newline at end of file diff --git a/local/local/modules/Colissimo/templates/backOffice/default/module_configuration.html b/local/local/modules/Colissimo/templates/backOffice/default/module_configuration.html deleted file mode 100644 index 3c495353..00000000 --- a/local/local/modules/Colissimo/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,316 +0,0 @@ -
- - {loop name="checkrights.colissimo" type="colissimo.check.rights"} -
-

{$ERRMES} {$ERRFILE} | {intl d='colissimo.bo.default' l="Please change the access rights"}.

-
- {/loop} -
- -{elseloop rel="checkrights.colissimo"} - -
-

{intl d='colissimo.bo.default' l="Colissimo Module allows to send your products all around the world with La Poste."}

-
- - - -
-
-
- {form name="colissimo.configuration"} - - {form_hidden_fields form=$form} - - {form_field form=$form field="enabled"} -
- - {if ! empty($label_attr.help)} - {$label_attr.help} - {/if} -
- {/form_field} - - - - {/form} -
-
-
- -
-
-
- - - -
- - -
- {form name="colissimo.export.form"} - {if $form_error}
{$form_error_message}
{/if} -
- {form_hidden_fields} -
- -
- {intl d='colissimo.bo.default' l="Change orders status after export"} -
- -
- - {form_field field="status_id"} - - - - - - - - - - - - - {/form_field} -
-   - - -
-   - - -
-   - - -
- - {intl d='colissimo.ai' l="*If you choose this option, the exported orders would not be available on this page anymore"} -
-
- - - - - - - - - - - - - - - {loop name="colissimo.notsend.loop" type="colissimo.notsend.loop"} - - - - - - - - - - {/loop} - {elseloop rel="colissimo.notsend.loop"} - - - - {/elseloop} - -
- {intl d='colissimo.ai' l="REF"} - - {intl d='colissimo.ai' l="Customer"} - - {intl d='colissimo.ai' l="Date"} - - {intl d='colissimo.ai' l="Total taxed amount"} - - {intl d='colissimo.ai' l="Number of packages"} - - {intl d='colissimo.ai' l="Packages weight"} - - {intl d='colissimo.ai' l="Export"} -
- {$REF} - - {loop type='customer' name='colissimo.customer' id=$CUSTOMER current='false'} - {$LASTNAME} {$FIRSTNAME} - {/loop} - - {$CREATE_DATE|date_format} - - {$TOTAL_TAXED_AMOUNT} {loop name="list.socolissimo.getcurrency" type="currency" id=$CURRENCY}{$SYMBOL}{/loop} - - {form_field form=$form field="order_nb_pkg_"|cat:$ID} - - {/form_field} - - {form_field form=$form field="order_weight_"|cat:$ID} - - {/form_field} - - {form_field field="order_"|cat:$ID} - - {/form_field} -
-
-
{intl d='colissimo.ai' l="There is currently not orders to export"}
-
- - {ifloop rel="colissimo.notsend.loop"} - - {/ifloop} -
- {/form} -
- -
- - {assign var="isColissimoFreeShipping" value=0} - {form name="colissimo.freeshipping.form"} -
-
- {form_hidden_fields} - - {form_field field="freeshipping"} - - -
- -
- {/form_field} -
- {/form} - -
-
-
-
-
-{/elseloop} diff --git a/local/local/modules/FreeOrder/Config/config.xml b/local/local/modules/FreeOrder/Config/config.xml deleted file mode 100644 index 42d3733f..00000000 --- a/local/local/modules/FreeOrder/Config/config.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/local/local/modules/FreeOrder/Config/module.xml b/local/local/modules/FreeOrder/Config/module.xml deleted file mode 100644 index 362cb923..00000000 --- a/local/local/modules/FreeOrder/Config/module.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - FreeOrder\FreeOrder - - There's nothing to pay for this order - This is a pseudo-payment module for free orders. - - - Vous n'avez rien à payer pour cette commande - Un pseudo-module de paiement pour les commandes de montant nul - - - en_US - fr_FR - - 2.3.4 - - Franck Allimant - CQFDev - franck@cqfdev.fr - - payment - 2.2.0 - alpha - diff --git a/local/local/modules/FreeOrder/FreeOrder.php b/local/local/modules/FreeOrder/FreeOrder.php deleted file mode 100644 index b5d1df02..00000000 --- a/local/local/modules/FreeOrder/FreeOrder.php +++ /dev/null @@ -1,40 +0,0 @@ -getCurrentOrderTotalAmount() == 0; - } - - public function pay(Order $order) - { - $event = new OrderEvent($order); - $event->setStatus(OrderStatusQuery::getPaidStatus()->getId()); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_UPDATE_STATUS, $event); - } - - public function manageStockOnCreation() - { - return false; - } -} diff --git a/local/local/modules/FreeOrder/LICENSE.txt b/local/local/modules/FreeOrder/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/FreeOrder/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/FreeOrder/Readme.md b/local/local/modules/FreeOrder/Readme.md deleted file mode 100644 index 63333460..00000000 --- a/local/local/modules/FreeOrder/Readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Free Order - -This module is used to terminate the order process when the order amount is 0,00. In this case, none of the traditional -payment modules applies. - -## Installation - -This module is bundled with Thelia standard distribution. - -### Manually - -* Copy the module into ```/local/modules/``` directory and be sure that the name of the module is FreeOrder. -* Activate it in your thelia administration panel - -### Composer - -Add it in your main thelia composer.json file - -``` -composer require thelia/free-order-module:~1.0 -``` - -## Usage - -The module is displayed as needed in the payment modules list of the order-invoice page. \ No newline at end of file diff --git a/local/local/modules/FreeOrder/composer.json b/local/local/modules/FreeOrder/composer.json deleted file mode 100644 index f32437ec..00000000 --- a/local/local/modules/FreeOrder/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/free-order-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "FreeOrder" - } -} \ No newline at end of file diff --git a/local/local/modules/Front/Config/config.xml b/local/local/modules/Front/Config/config.xml deleted file mode 100644 index dc19adf1..00000000 --- a/local/local/modules/Front/Config/config.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - Front/Config/front.xml - - %kernel.cache_dir% - %kernel.debug% - - - - - - diff --git a/local/local/modules/Front/Config/front.xml b/local/local/modules/Front/Config/front.xml deleted file mode 100644 index bec4bdda..00000000 --- a/local/local/modules/Front/Config/front.xml +++ /dev/null @@ -1,273 +0,0 @@ - - - - - - Thelia\Controller\Front\DefaultController::noAction - includes/mini-cart - - - - Thelia\Controller\Front\DefaultController::noAction - includes/addedToCart - - - - - Front\Controller\CustomerController::viewRegisterAction - - - - Front\Controller\CustomerController::createAction - register - - - - - Front\Controller\CustomerController::viewLoginAction - - - - Front\Controller\CustomerController::loginAction - login - - - - - Front\Controller\CustomerController::newPasswordAction - password - - - - Front\Controller\CustomerController::newPasswordSentAction - password - - - - - Front\Controller\CustomerController::logoutAction - - - - - Front\Controller\CustomerController::confirmCustomerAction - - - - - - Thelia\Controller\Front\DefaultController::noAction - account - - - - Front\Controller\CustomerController::viewAction - account-update - - - - Front\Controller\CustomerController::updateAction - account-update - - - - - Front\Controller\CustomerController::updatePasswordAction - account-password - - - - Thelia\Controller\Front\DefaultController::noAction - account-password - - - - Front\Controller\OrderController::viewAction - \d+ - - - - Front\Controller\OrderController::generateDeliveryPdf - \d+ - - - - Front\Controller\OrderController::generateInvoicePdf - \d+ - - - - Front\Controller\OrderController::downloadVirtualProduct - \d+ - - - - - - Thelia\Controller\Front\DefaultController::noAction - address - - - - Front\Controller\AddressController::createAction - address - - - - Front\Controller\AddressController::updateViewAction - address-update - - - - Front\Controller\AddressController::processUpdateAction - address-update - - - - Front\Controller\AddressController::deleteAction - account - - - - Front\Controller\AddressController::generateModalAction - modal-address - \d+ - - - - Front:Address:makeAddressDefault - \d+ - - - - - - - Thelia\Controller\Front\DefaultController::noAction - cart - - - - Front\Controller\CartController::addItem - - - - Front\Controller\CartController::deleteItem - cart - - - - Front\Controller\CartController::changeItem - cart - - - - Front\Controller\CartController::changeCountry - cart - - - - - - Front\Controller\OrderController::deliver - order-delivery - - - - Front\Controller\OrderController::deliverView - order-delivery - - - - Front\Controller\OrderController::getDeliveryModuleListAjaxAction - - - - Front\Controller\OrderController::invoice - order-invoice - - - - Thelia\Controller\Front\DefaultController::noAction - order-invoice - - - - Front\Controller\CouponController::consumeAction - order-invoice - - - - Front\Controller\CouponController::clearAllCouponsAction - order-invoice - - - - Front\Controller\OrderController::pay - - - - Front\Controller\OrderController::orderPlaced - order-placed - - - - Front\Controller\OrderController::orderFailed - order-failed - - - - - - Front\Controller\ContactController::sendAction - contact - - - - Thelia\Controller\Front\DefaultController::noAction - contact-success - - - - - - Front\Controller\NewsletterController::subscribeAction - newsletter - - - - Front\Controller\NewsletterController::unsubscribeAction - newsletter-unsubscribe - - - - - - - Front\Controller\SitemapController::generateAction - - - - - - Front\Controller\FeedController::generateAction - catalog - - - - - - - - Thelia\Controller\Front\DefaultController::emptyRoute - - - - - Thelia\Controller\Front\DefaultController::noAction - index - ^(?!admin|api)[^/]+ - - diff --git a/local/local/modules/Front/Config/module.xml b/local/local/modules/Front/Config/module.xml deleted file mode 100644 index 8b61bb66..00000000 --- a/local/local/modules/Front/Config/module.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Front\Front - - Front integration - - - - Front office module - - - - en_US - fr_FR - - 2.3.0 - - - Thelia team - info@thelia.net - - - classic - 2.2.0 - alpha - 1 - diff --git a/local/local/modules/Front/Controller/AddressController.php b/local/local/modules/Front/Controller/AddressController.php deleted file mode 100644 index 5ef57311..00000000 --- a/local/local/modules/Front/Controller/AddressController.php +++ /dev/null @@ -1,273 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Front\Controller; - -use Front\Front; -use Symfony\Component\Form\Form; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Address\AddressCreateOrUpdateEvent; -use Thelia\Core\Event\Address\AddressEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\AddressQuery; -use Thelia\Model\Customer; - -/** - * Class AddressController - * @package Thelia\Controller\Front - * @author Manuel Raynaud - */ -class AddressController extends BaseFrontController -{ - - /** - * Controller for generate modal containing update form - * Check if request is a XmlHttpRequest and address owner is the current customer - * - * @param $address_id - */ - public function generateModalAction($address_id) - { - - $this->checkAuth(); - $this->checkXmlHttpRequest(); - - } - - /** - * Create controller. - * Check if customer is logged in - * - * Dispatch TheliaEvents::ADDRESS_CREATE event - */ - public function createAction() - { - $this->checkAuth(); - - $addressCreate = $this->createForm(FrontForm::ADDRESS_CREATE); - - try { - /** @var Customer $customer */ - $customer = $this->getSecurityContext()->getCustomerUser(); - - $form = $this->validateForm($addressCreate, "post"); - $event = $this->createAddressEvent($form); - $event->setCustomer($customer); - - $this->dispatch(TheliaEvents::ADDRESS_CREATE, $event); - - return $this->generateSuccessRedirect($addressCreate); - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans("Please check your input: %s", ['%s' => $e->getMessage()], Front::MESSAGE_DOMAIN); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans("Sorry, an error occured: %s", ['%s' => $e->getMessage()], Front::MESSAGE_DOMAIN); - } - - Tlog::getInstance()->error(sprintf("Error during address creation process : %s", $message)); - - $addressCreate->setErrorMessage($message); - - $this->getParserContext() - ->addForm($addressCreate) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($addressCreate->hasErrorUrl()) { - return $this->generateErrorRedirect($addressCreate); - } - } - - protected function createAddressEvent(Form $form) - { - return new AddressCreateOrUpdateEvent( - $form->get("label")->getData(), - $form->get("title")->getData(), - $form->get("firstname")->getData(), - $form->get("lastname")->getData(), - $form->get("address1")->getData(), - $form->get("address2")->getData(), - $form->get("address3")->getData(), - $form->get("zipcode")->getData(), - $form->get("city")->getData(), - $form->get("country")->getData(), - $form->get("cellphone")->getData(), - $form->get("phone")->getData(), - $form->get("company")->getData(), - $form->get("is_default")->getData(), - $form->get("state")->getData() - ); - } - - public function updateViewAction($address_id) - { - $this->checkAuth(); - - $customer = $this->getSecurityContext()->getCustomerUser(); - $address = AddressQuery::create()->findPk($address_id); - - if (!$address || $customer->getId() != $address->getCustomerId()) { - return $this->generateRedirectFromRoute('default'); - } - - $this->getParserContext()->set("address_id", $address_id); - } - - public function processUpdateAction($address_id) - { - $this->checkAuth(); - - $addressUpdate = $this->createForm(FrontForm::ADDRESS_UPDATE); - - try { - $customer = $this->getSecurityContext()->getCustomerUser(); - - $form = $this->validateForm($addressUpdate); - - $address = AddressQuery::create()->findPk($address_id); - - if (null === $address) { - return $this->generateRedirectFromRoute('default'); - } - - if ($address->getCustomer()->getId() != $customer->getId()) { - return $this->generateRedirectFromRoute('default'); - } - - $event = $this->createAddressEvent($form); - $event->setAddress($address); - - $this->dispatch(TheliaEvents::ADDRESS_UPDATE, $event); - - return $this->generateSuccessRedirect($addressUpdate); - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans("Please check your input: %s", ['%s' => $e->getMessage()], Front::MESSAGE_DOMAIN); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans("Sorry, an error occured: %s", ['%s' => $e->getMessage()], Front::MESSAGE_DOMAIN); - } - - $this->getParserContext()->set("address_id", $address_id); - - Tlog::getInstance()->error(sprintf("Error during address creation process : %s", $message)); - - $addressUpdate->setErrorMessage($message); - - $this->getParserContext() - ->addForm($addressUpdate) - ->setGeneralError($message) - ; - - if ($addressUpdate->hasErrorUrl()) { - return $this->generateErrorRedirect($addressUpdate); - } - } - - public function deleteAction($address_id) - { - $this->checkAuth(); - $error_message = false; - - $customer = $this->getSecurityContext()->getCustomerUser(); - $address = AddressQuery::create()->findPk($address_id); - - if (!$address || $customer->getId() != $address->getCustomerId()) { - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - return $this->jsonResponse( - json_encode( - array( - "success" => false, - "message" => $this->getTranslator()->trans( - "Error during address deletion process", - [], - Front::MESSAGE_DOMAIN - ) - ) - ) - ); - } else { - return $this->generateRedirectFromRoute('default'); - } - } - - try { - $this->dispatch(TheliaEvents::ADDRESS_DELETE, new AddressEvent($address)); - } catch (\Exception $e) { - $error_message = $e->getMessage(); - } - - Tlog::getInstance()->error(sprintf('Error during address deletion : %s', $error_message)); - - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - if ($error_message) { - $response = $this->jsonResponse(json_encode(array( - "success" => false, - "message" => $error_message - ))); - } else { - $response = $this->jsonResponse( - json_encode([ - "success" => true, - "message" => "" - ]) - ); - } - - return $response; - - } else { - return $this->generateRedirectFromRoute('default', array('view'=>'account')); - } - } - - public function makeAddressDefaultAction($addressId) - { - $this->checkAuth(); - - $address = AddressQuery::create() - ->filterByCustomerId($this->getSecurityContext()->getCustomerUser()->getId()) - ->findPk($addressId) - ; - - if (null === $address) { - $this->pageNotFound(); - } - - try { - $event = new AddressEvent($address); - $this->dispatch(TheliaEvents::ADDRESS_DEFAULT, $event); - } catch (\Exception $e) { - $this->getParserContext() - ->setGeneralError($e->getMessage()) - ; - - return $this->render("account"); - } - - return $this->generateRedirectFromRoute('default', array('view'=>'account')); - } -} diff --git a/local/local/modules/Front/Controller/CartController.php b/local/local/modules/Front/Controller/CartController.php deleted file mode 100644 index 8cb0efd9..00000000 --- a/local/local/modules/Front/Controller/CartController.php +++ /dev/null @@ -1,237 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ -namespace Front\Controller; - -use Front\Front; -use Propel\Runtime\Exception\PropelException; -use Symfony\Component\HttpFoundation\Cookie; -use Symfony\Component\HttpFoundation\Request; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Cart\CartEvent; -use Thelia\Core\Event\Order\OrderEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Form\CartAdd; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\AddressQuery; -use Thelia\Model\ConfigQuery; -use Thelia\Model\OrderPostage; -use Thelia\Module\Exception\DeliveryException; -use Thelia\Tools\URL; - -class CartController extends BaseFrontController -{ - public function addItem() - { - $request = $this->getRequest(); - - $cartAdd = $this->getAddCartForm($request); - $message = null; - - try { - $form = $this->validateForm($cartAdd); - - $cartEvent = $this->getCartEvent(); - - $cartEvent->bindForm($form); - - $this->getDispatcher()->dispatch(TheliaEvents::CART_ADDITEM, $cartEvent); - - $this->afterModifyCart(); - - - if ($this->getRequest()->isXmlHttpRequest()) { - $this->changeViewForAjax(); - } elseif (null !== $response = $this->generateSuccessRedirect($cartAdd)) { - return $response; - } - - } catch (PropelException $e) { - Tlog::getInstance()->error(sprintf("Failed to add item to cart with message : %s", $e->getMessage())); - $message = $this->getTranslator()->trans( - "Failed to add this article to your cart, please try again", - [], - Front::MESSAGE_DOMAIN - ); - } catch (FormValidationException $e) { - $message = $e->getMessage(); - } - - if ($message) { - $cartAdd->setErrorMessage($message); - $this->getParserContext()->addForm($cartAdd); - } - } - - public function changeItem() - { - $cartEvent = $this->getCartEvent(); - $cartEvent->setCartItemId($this->getRequest()->get("cart_item")); - $cartEvent->setQuantity($this->getRequest()->get("quantity")); - - try { - $this->getTokenProvider()->checkToken( - $this->getRequest()->query->get('_token') - ); - - $this->dispatch(TheliaEvents::CART_UPDATEITEM, $cartEvent); - - $this->afterModifyCart(); - - if ($this->getRequest()->isXmlHttpRequest()) { - $this->changeViewForAjax(); - } - } catch (\Exception $e) { - Tlog::getInstance()->error(sprintf("Failed to change cart item quantity: %s", $e->getMessage())); - - $this->getParserContext()->setGeneralError($e->getMessage()); - } - } - - public function deleteItem() - { - $cartEvent = $this->getCartEvent(); - $cartEvent->setCartItemId($this->getRequest()->get("cart_item")); - - try { - $this->getTokenProvider()->checkToken( - $this->getRequest()->query->get('_token') - ); - - $this->getDispatcher()->dispatch(TheliaEvents::CART_DELETEITEM, $cartEvent); - - $this->afterModifyCart(); - } catch (\Exception $e) { - Tlog::getInstance()->error(sprintf("error during deleting cartItem with message : %s", $e->getMessage())); - $this->getParserContext()->setGeneralError($e->getMessage()); - } - - $this->changeViewForAjax(); - - if (null != $successUrl = $this->getRequest()->query->get('success_url')) { - $response = $this->generateRedirect( - URL::getInstance()->absoluteUrl($successUrl) - ); - - return $response; - } - } - - protected function changeViewForAjax() - { - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - $request = $this->getRequest(); - - $view = $request->get('ajax-view', "includes/mini-cart"); - - $request->attributes->set('_view', $view); - } - } - - public function changeCountry() - { - $redirectUrl = URL::getInstance()->absoluteUrl("/cart"); - $deliveryId = $this->getRequest()->get("country"); - $cookieName = ConfigQuery::read('front_cart_country_cookie_name', 'fcccn'); - $cookieExpires = ConfigQuery::read('front_cart_country_cookie_expires', 2592000); - $cookieExpires = intval($cookieExpires) ?: 2592000; - - $cookie = new Cookie($cookieName, $deliveryId, time() + $cookieExpires, '/'); - - $response = $this->generateRedirect($redirectUrl); - $response->headers->setCookie($cookie); - - return $response; - } - - /** - * @return \Thelia\Core\Event\Cart\CartEvent - */ - protected function getCartEvent() - { - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - - return new CartEvent($cart); - } - - /** - * Find the good way to construct the cart form - * - * @param Request $request - * @return CartAdd - */ - private function getAddCartForm(Request $request) - { - if ($request->isMethod("post")) { - $cartAdd = $this->createForm(FrontForm::CART_ADD); - } else { - $cartAdd = $this->createForm( - FrontForm::CART_ADD, - "form", - array(), - array( - 'csrf_protection' => false, - ), - $this->container - ); - } - - return $cartAdd; - } - - protected function afterModifyCart() - { - /* recalculate postage amount */ - $order = $this->getSession()->getOrder(); - if (null !== $order) { - $deliveryModule = $order->getModuleRelatedByDeliveryModuleId(); - $deliveryAddress = AddressQuery::create()->findPk($order->getChoosenDeliveryAddress()); - - if (null !== $deliveryModule && null !== $deliveryAddress) { - $moduleInstance = $deliveryModule->getDeliveryModuleInstance($this->container); - - $orderEvent = new OrderEvent($order); - - try { - $postage = OrderPostage::loadFromPostage( - $moduleInstance->getPostage($deliveryAddress->getCountry()) - ); - - $orderEvent->setPostage($postage->getAmount()); - $orderEvent->setPostageTax($postage->getAmountTax()); - $orderEvent->setPostageTaxRuleTitle($postage->getTaxRuleTitle()); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_POSTAGE, $orderEvent); - } catch (DeliveryException $ex) { - // The postage has been chosen, but changes in the cart causes an exception. - // Reset the postage data in the order - $orderEvent->setDeliveryModule(0); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_MODULE, $orderEvent); - } - } - } - } -} diff --git a/local/local/modules/Front/Controller/ContactController.php b/local/local/modules/Front/Controller/ContactController.php deleted file mode 100644 index e476a015..00000000 --- a/local/local/modules/Front/Controller/ContactController.php +++ /dev/null @@ -1,84 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Front\Controller; - -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\ConfigQuery; - -/** - * Class ContactController - * @package Thelia\Controller\Front - * @author Manuel Raynaud - */ -class ContactController extends BaseFrontController -{ - /** - * send contact message - */ - public function sendAction() - { - $contactForm = $this->createForm(FrontForm::CONTACT); - - try { - $form = $this->validateForm($contactForm); - - $this->getMailer()->sendSimpleEmailMessage( - [ ConfigQuery::getStoreEmail() => $form->get('name')->getData() ], - [ ConfigQuery::getStoreEmail() => ConfigQuery::getStoreName() ], - $form->get('subject')->getData(), - '', - $form->get('message')->getData(), - [], - [], - [ $form->get('email')->getData() => $form->get('name')->getData() ] - ); - - if ($contactForm->hasSuccessUrl()) { - return $this->generateSuccessRedirect($contactForm); - } - - return $this->generateRedirectFromRoute('contact.success'); - - } catch (FormValidationException $e) { - $error_message = $e->getMessage(); - } - - Tlog::getInstance()->error(sprintf('Error during sending contact mail : %s', $error_message)); - - $contactForm->setErrorMessage($error_message); - - $this->getParserContext() - ->addForm($contactForm) - ->setGeneralError($error_message) - ; - - // Redirect to error URL if defined - if ($contactForm->hasErrorUrl()) { - return $this->generateErrorRedirect($contactForm); - } - } -} diff --git a/local/local/modules/Front/Controller/CouponController.php b/local/local/modules/Front/Controller/CouponController.php deleted file mode 100644 index c21288f9..00000000 --- a/local/local/modules/Front/Controller/CouponController.php +++ /dev/null @@ -1,159 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ -namespace Front\Controller; - -use Front\Front; -use Propel\Runtime\Exception\PropelException; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Coupon\CouponConsumeEvent; -use Thelia\Core\Event\Order\OrderEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Exception\UnmatchableConditionException; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\AddressQuery; -use Thelia\Model\OrderPostage; -use Thelia\Module\Exception\DeliveryException; - -/** - * Class CouponController - * @package Thelia\Controller\Front - * @author Guillaume MOREL - */ -class CouponController extends BaseFrontController -{ - /** - * Clear all coupons. - */ - public function clearAllCouponsAction() - { - // Dispatch Event to the Action - $this->getDispatcher()->dispatch(TheliaEvents::COUPON_CLEAR_ALL); - } - - /** - * Coupon consuming - */ - public function consumeAction() - { - $this->checkCartNotEmpty(); - - $message = false; - $couponCodeForm = $this->createForm(FrontForm::COUPON_CONSUME); - - try { - $form = $this->validateForm($couponCodeForm, 'post'); - - $couponCode = $form->get('coupon-code')->getData(); - - if (null === $couponCode || empty($couponCode)) { - $message = true; - throw new \Exception( - $this->getTranslator()->trans( - 'Coupon code can\'t be empty', - [], - Front::MESSAGE_DOMAIN - ) - ); - } - - $couponConsumeEvent = new CouponConsumeEvent($couponCode); - - // Dispatch Event to the Action - $this->getDispatcher()->dispatch(TheliaEvents::COUPON_CONSUME, $couponConsumeEvent); - - /* recalculate postage amount */ - $order = $this->getSession()->getOrder(); - - if (null !== $order) { - $deliveryModule = $order->getModuleRelatedByDeliveryModuleId(); - $deliveryAddress = AddressQuery::create()->findPk($order->getChoosenDeliveryAddress()); - - if (null !== $deliveryModule && null !== $deliveryAddress) { - $moduleInstance = $deliveryModule->getDeliveryModuleInstance($this->container); - - $orderEvent = new OrderEvent($order); - - try { - $postage = OrderPostage::loadFromPostage( - $moduleInstance->getPostage($deliveryAddress->getCountry()) - ); - - $orderEvent->setPostage($postage->getAmount()); - $orderEvent->setPostageTax($postage->getAmountTax()); - $orderEvent->setPostageTaxRuleTitle($postage->getTaxRuleTitle()); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_POSTAGE, $orderEvent); - } catch (DeliveryException $ex) { - // The postage has been chosen, but changes dues to coupon causes an exception. - // Reset the postage data in the order - $orderEvent->setDeliveryModule(0); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_MODULE, $orderEvent); - } - } - } - - return $this->generateSuccessRedirect($couponCodeForm); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - 'Please check your coupon code: %message', - ["%message" => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } catch (UnmatchableConditionException $e) { - $message = $this->getTranslator()->trans( - 'You should sign in or register to use this coupon', - [ - '%sign' => $this->retrieveUrlFromRouteId('customer.login.view'), - '%register' => $this->retrieveUrlFromRouteId('customer.create.view'), - ], - Front::MESSAGE_DOMAIN - ); - } catch (PropelException $e) { - $this->getParserContext()->setGeneralError($e->getMessage()); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - 'Sorry, an error occurred: %message', - ["%message" => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } - - if ($message !== false) { - Tlog::getInstance()->error( - sprintf("Error during order delivery process : %s. Exception was %s", $message, $e->getMessage()) - ); - - $couponCodeForm->setErrorMessage($message); - - $this->getParserContext() - ->addForm($couponCodeForm) - ->setGeneralError($message); - } - - return $this->generateErrorRedirect($couponCodeForm); - } -} diff --git a/local/local/modules/Front/Controller/CustomerController.php b/local/local/modules/Front/Controller/CustomerController.php deleted file mode 100644 index 9c36aa1a..00000000 --- a/local/local/modules/Front/Controller/CustomerController.php +++ /dev/null @@ -1,610 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ -namespace Front\Controller; - -use Front\Front; -use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Customer\CustomerCreateOrUpdateEvent; -use Thelia\Core\Event\Customer\CustomerEvent; -use Thelia\Core\Event\Customer\CustomerLoginEvent; -use Thelia\Core\Event\LostPasswordEvent; -use Thelia\Core\Event\Newsletter\NewsletterEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Core\Security\Authentication\CustomerUsernamePasswordFormAuthenticator; -use Thelia\Core\Security\Exception\AuthenticationException; -use Thelia\Core\Security\Exception\CustomerNotConfirmedException; -use Thelia\Core\Security\Exception\UsernameNotFoundException; -use Thelia\Core\Security\Exception\WrongPasswordException; -use Thelia\Form\CustomerLogin; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\ConfigQuery; -use Thelia\Model\Customer; -use Thelia\Model\CustomerQuery; -use Thelia\Model\NewsletterQuery; -use Thelia\Tools\RememberMeTrait; -use Thelia\Tools\URL; - -/** - * Class CustomerController - * @package Thelia\Controller\Front - * @author Manuel Raynaud - */ -class CustomerController extends BaseFrontController -{ - use RememberMeTrait; - - /** - * Display the register template if no customer logged - */ - public function viewLoginAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - // Redirect to home page - return $this->generateRedirect(URL::getInstance()->getIndexPage()); - } - - return $this->render("login"); - } - - /** - * Display the register template if no customer logged - */ - public function viewRegisterAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - // Redirect to home page - return $this->generateRedirect(URL::getInstance()->getIndexPage()); - } - - return $this->render("register"); - } - - public function newPasswordAction() - { - $passwordLost = $this->createForm(FrontForm::CUSTOMER_LOST_PASSWORD); - - if (! $this->getSecurityContext()->hasCustomerUser()) { - try { - $form = $this->validateForm($passwordLost); - - $event = new LostPasswordEvent($form->get("email")->getData()); - - $this->dispatch(TheliaEvents::LOST_PASSWORD, $event); - - return $this->generateSuccessRedirect($passwordLost); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occurred: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } - - if ($message !== false) { - Tlog::getInstance()->error( - sprintf( - "Error during customer creation process : %s. Exception was %s", - $message, - $e->getMessage() - ) - ); - } - } else { - $message = $this->getTranslator()->trans( - "You're currently logged in. Please log out before requesting a new password.", - [], - Front::MESSAGE_DOMAIN - ); - } - - $passwordLost->setErrorMessage($message); - - $this->getParserContext() - ->addForm($passwordLost) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($passwordLost->hasErrorUrl()) { - return $this->generateErrorRedirect($passwordLost); - } - } - - public function newPasswordSentAction() - { - $this->getParser()->assign('password_sent', true); - } - - /** - * Create a new customer. - * On success, redirect to success_url if exists, otherwise, display the same view again. - */ - public function createAction() - { - if (! $this->getSecurityContext()->hasCustomerUser()) { - $customerCreation = $this->createForm(FrontForm::CUSTOMER_CREATE); - - try { - $form = $this->validateForm($customerCreation, "post"); - - $customerCreateEvent = $this->createEventInstance($form->getData()); - - $this->dispatch(TheliaEvents::CUSTOMER_CREATEACCOUNT, $customerCreateEvent); - - $newCustomer = $customerCreateEvent->getCustomer(); - - // Newsletter - if (true === $form->get('newsletter')->getData()) { - $newsletterEmail = $newCustomer->getEmail(); - $nlEvent = new NewsletterEvent( - $newsletterEmail, - $this->getRequest()->getSession()->getLang()->getLocale() - ); - $nlEvent->setFirstname($newCustomer->getFirstname()); - $nlEvent->setLastname($newCustomer->getLastname()); - - // Security : Check if this new Email address already exist - if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($newsletterEmail)) { - $nlEvent->setId($newsletter->getId()); - $this->dispatch(TheliaEvents::NEWSLETTER_UPDATE, $nlEvent); - } else { - $this->dispatch(TheliaEvents::NEWSLETTER_SUBSCRIBE, $nlEvent); - } - } - - if (ConfigQuery::isCustomerEmailConfirmationEnable() && ! $newCustomer->getEnable()) { - $response = $this->generateRedirectFromRoute('customer.login.view'); - } else { - $this->processLogin($customerCreateEvent->getCustomer()); - - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - if ($cart->getCartItems()->count() > 0) { - $response = $this->generateRedirectFromRoute('cart.view'); - } else { - $response = $this->generateSuccessRedirect($customerCreation); - } - } - - return $response; - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } - - Tlog::getInstance()->error( - sprintf( - "Error during customer creation process : %s. Exception was %s", - $message, - $e->getMessage() - ) - ); - - $customerCreation->setErrorMessage($message); - - $this->getParserContext() - ->addForm($customerCreation) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($customerCreation->hasErrorUrl()) { - return $this->generateErrorRedirect($customerCreation); - } - } - } - - /** - * Prepare customer data update. - */ - public function viewAction() - { - $this->checkAuth(); - - /** @var Customer $customer */ - $customer = $this->getSecurityContext()->getCustomerUser(); - $data = array( - 'id' => $customer->getId(), - 'title' => $customer->getTitleId(), - 'firstname' => $customer->getFirstName(), - 'lastname' => $customer->getLastName(), - 'email' => $customer->getEmail(), - 'email_confirm' => $customer->getEmail(), - 'newsletter' => null !== NewsletterQuery::create()->findOneByEmail($customer->getEmail()), - ); - - $customerProfileUpdateForm = $this->createForm(FrontForm::CUSTOMER_PROFILE_UPDATE, 'form', $data); - - // Pass it to the parser - $this->getParserContext()->addForm($customerProfileUpdateForm); - } - - public function updatePasswordAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - $customerPasswordUpdateForm = $this->createForm(FrontForm::CUSTOMER_PASSWORD_UPDATE); - - try { - /** @var Customer $customer */ - $customer = $this->getSecurityContext()->getCustomerUser(); - - $form = $this->validateForm($customerPasswordUpdateForm, "post"); - - $customerChangeEvent = $this->createEventInstance($form->getData()); - $customerChangeEvent->setCustomer($customer); - $this->dispatch(TheliaEvents::CUSTOMER_UPDATEPROFILE, $customerChangeEvent); - - return $this->generateSuccessRedirect($customerPasswordUpdateForm); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } - - Tlog::getInstance()->error( - sprintf( - "Error during customer password modification process : %s.", - $message - ) - ); - - $customerPasswordUpdateForm->setErrorMessage($message); - - $this->getParserContext() - ->addForm($customerPasswordUpdateForm) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($customerPasswordUpdateForm->hasErrorUrl()) { - return $this->generateErrorRedirect($customerPasswordUpdateForm); - } - } - } - - public function updateAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - $customerProfileUpdateForm = $this->createForm(FrontForm::CUSTOMER_PROFILE_UPDATE); - - try { - /** @var Customer $customer */ - $customer = $this->getSecurityContext()->getCustomerUser(); - $newsletterOldEmail = $customer->getEmail(); - - $form = $this->validateForm($customerProfileUpdateForm, "post"); - - $customerChangeEvent = $this->createEventInstance($form->getData()); - $customerChangeEvent->setCustomer($customer); - - $customerChangeEvent->setEmailUpdateAllowed( - (intval(ConfigQuery::read('customer_change_email', 0))) ? true : false - ); - - $this->dispatch(TheliaEvents::CUSTOMER_UPDATEPROFILE, $customerChangeEvent); - - $updatedCustomer = $customerChangeEvent->getCustomer(); - - // Newsletter - if (true === $form->get('newsletter')->getData()) { - $nlEvent = new NewsletterEvent( - $updatedCustomer->getEmail(), - $this->getRequest()->getSession()->getLang()->getLocale() - ); - $nlEvent->setFirstname($updatedCustomer->getFirstname()); - $nlEvent->setLastname($updatedCustomer->getLastname()); - - if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($newsletterOldEmail)) { - $nlEvent->setId($newsletter->getId()); - $this->dispatch(TheliaEvents::NEWSLETTER_UPDATE, $nlEvent); - } else { - $this->dispatch(TheliaEvents::NEWSLETTER_SUBSCRIBE, $nlEvent); - } - } else { - if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($newsletterOldEmail)) { - $nlEvent = new NewsletterEvent( - $updatedCustomer->getEmail(), - $this->getRequest()->getSession()->getLang()->getLocale() - ); - $nlEvent->setId($newsletter->getId()); - $this->dispatch(TheliaEvents::NEWSLETTER_UNSUBSCRIBE, $nlEvent); - } - } - - $this->processLogin($updatedCustomer); - - return $this->generateSuccessRedirect($customerProfileUpdateForm); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } - - Tlog::getInstance()->error(sprintf("Error during customer modification process : %s.", $message)); - - $customerProfileUpdateForm->setErrorMessage($message); - - $this->getParserContext() - ->addForm($customerProfileUpdateForm) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($customerProfileUpdateForm->hasErrorUrl()) { - return $this->generateErrorRedirect($customerProfileUpdateForm); - } - } - } - - /** - * Perform user login. On a successful login, the user is redirected to the URL - * found in the success_url form parameter, or / if none was found. - * - * If login is not successfull, the same view is displayed again. - * - */ - public function loginAction() - { - if (!$this->getSecurityContext()->hasCustomerUser()) { - $request = $this->getRequest(); - $customerLoginForm = new CustomerLogin($request); - - try { - $form = $this->validateForm($customerLoginForm, "post"); - - // If User is a new customer - if ($form->get('account')->getData() == 0 && $form->get("email")->getErrors()->count() == 0) { - return $this->generateRedirectFromRoute( - "customer.create.process", - ["email" => $form->get("email")->getData()] - ); - } else { - try { - $authenticator = new CustomerUsernamePasswordFormAuthenticator($request, $customerLoginForm); - - /** @var Customer $customer */ - $customer = $authenticator->getAuthentifiedUser(); - - $this->processLogin($customer); - - if (intval($form->get('remember_me')->getData()) > 0) { - // If a remember me field if present and set in the form, create - // the cookie thant store "remember me" information - $this->createRememberMeCookie( - $customer, - $this->getRememberMeCookieName(), - $this->getRememberMeCookieExpiration() - ); - } - - return $this->generateSuccessRedirect($customerLoginForm); - - } catch (UsernameNotFoundException $e) { - $message = $this->getTranslator()->trans( - "Wrong email or password. Please try again", - [], - Front::MESSAGE_DOMAIN - ); - } catch (WrongPasswordException $e) { - $message = $this->getTranslator()->trans( - "Wrong email or password. Please try again", - [], - Front::MESSAGE_DOMAIN - ); - } catch (CustomerNotConfirmedException $e) { - if ($e->getUser() !== null) { - // Send the confirmation email again - $this->getDispatcher()->dispatch( - TheliaEvents::SEND_ACCOUNT_CONFIRMATION_EMAIL, - new CustomerEvent($e->getUser()) - ); - } - $message = $this->getTranslator()->trans( - "Your account is not yet confirmed. A confirmation email has been sent to your email address, please check your mailbox", - [], - Front::MESSAGE_DOMAIN - ); - } catch (AuthenticationException $e) { - $message = $this->getTranslator()->trans( - "Wrong email or password. Please try again", - [], - Front::MESSAGE_DOMAIN - ); - } - - } - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } - - Tlog::getInstance()->error( - sprintf( - "Error during customer login process : %s. Exception was %s", - $message, - $e->getMessage() - ) - ); - - $customerLoginForm->setErrorMessage($message); - - $this->getParserContext()->addForm($customerLoginForm); - - if ($customerLoginForm->hasErrorUrl()) { - return $this->generateErrorRedirect($customerLoginForm); - } - } - } - - /** - * Perform customer logout. - */ - public function logoutAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - $this->dispatch(TheliaEvents::CUSTOMER_LOGOUT); - } - - $this->clearRememberMeCookie($this->getRememberMeCookieName()); - - // Redirect to home page - return $this->generateRedirect(URL::getInstance()->getIndexPage()); - } - - /** - * @param $token - * @return \Symfony\Component\HttpFoundation\Response - * @throws \Exception - * @throws \Propel\Runtime\Exception\PropelException - */ - public function confirmCustomerAction($token) - { - /** @var Customer $customer */ - if (null === $customer = CustomerQuery::create()->findOneByConfirmationToken($token)) { - throw new NotFoundHttpException(); - } - - $customer - ->setEnable(true) - ->save() - ; - - // Clear form error context - - return $this->generateRedirectFromRoute('customer.login.view', [ 'validation_done' => 1 ]); - } - - /** - * Dispatch event for customer login action - * - * @param Customer $customer - */ - protected function processLogin(Customer $customer) - { - $this->dispatch(TheliaEvents::CUSTOMER_LOGIN, new CustomerLoginEvent($customer)); - } - - /** - * @param $data - * @return \Thelia\Core\Event\Customer\CustomerCreateOrUpdateEvent - */ - private function createEventInstance($data) - { - $customerCreateEvent = new CustomerCreateOrUpdateEvent( - isset($data["title"])?$data["title"]:null, - isset($data["firstname"])?$data["firstname"]:null, - isset($data["lastname"])?$data["lastname"]:null, - isset($data["address1"])?$data["address1"]:null, - isset($data["address2"])?$data["address2"]:null, - isset($data["address3"])?$data["address3"]:null, - isset($data["phone"])?$data["phone"]:null, - isset($data["cellphone"])?$data["cellphone"]:null, - isset($data["zipcode"])?$data["zipcode"]:null, - isset($data["city"])?$data["city"]:null, - isset($data["country"])?$data["country"]:null, - isset($data["email"])?$data["email"]:null, - isset($data["password"]) ? $data["password"]:null, - $this->getRequest()->getSession()->getLang()->getId(), - isset($data["reseller"])?$data["reseller"]:null, - isset($data["sponsor"])?$data["sponsor"]:null, - isset($data["discount"])?$data["discount"]:null, - isset($data["company"])?$data["company"]:null, - null, - isset($data["state"])?$data["state"]:null - ); - - return $customerCreateEvent; - } - - - protected function getRememberMeCookieName() - { - return ConfigQuery::read('customer_remember_me_cookie_name', 'crmcn'); - } - - protected function getRememberMeCookieExpiration() - { - return ConfigQuery::read('customer_remember_me_cookie_expiration', 2592000 /* 1 month */); - } -} diff --git a/local/local/modules/Front/Controller/FeedController.php b/local/local/modules/Front/Controller/FeedController.php deleted file mode 100644 index 5c3f03b6..00000000 --- a/local/local/modules/Front/Controller/FeedController.php +++ /dev/null @@ -1,202 +0,0 @@ - - */ -class FeedController extends BaseFrontController { - - - /** - * Folder name for feeds cache - */ - const FEED_CACHE_DIR = "feeds"; - - /** - * Key prefix for feed cache - */ - const FEED_CACHE_KEY = "feed"; - - - /** - * render the RSS feed - * - * @param $context string The context of the feed : catalog, content. default: catalog - * @param $lang string The lang of the feed : fr_FR, en_US, ... default: default language of the site - * @param $id string The id of the parent element. The id of the main parent category for catalog context. - * The id of the content folder for content context - * @return Response - * @throws \RuntimeException - */ - public function generateAction($context, $lang, $id) - { - - /** @var Request $request */ - $request = $this->getRequest(); - - // context - if ("" === $context){ - $context = "catalog"; - } else if (! in_array($context, array("catalog", "content", "brand")) ){ - $this->pageNotFound(); - } - - // the locale : fr_FR, en_US, - if ("" !== $lang) { - if (! $this->checkLang($lang)){ - $this->pageNotFound(); - } - } else { - try{ - $lang = Lang::getDefaultLanguage(); - $lang = $lang->getLocale(); - } catch (\RuntimeException $ex){ - // @todo generate error page - throw new \RuntimeException("No default language is defined. Please define one."); - } - } - if (null === $lang = LangQuery::create()->findOneByLocale($lang)){ - $this->pageNotFound(); - } - $lang = $lang->getId(); - - // check if element exists and is visible - if ("" !== $id){ - if (false === $this->checkId($context, $id)){ - $this->pageNotFound(); - } - } - - $flush = $request->query->get("flush", ""); - - // check if feed already in cache - $cacheContent = false; - - $cacheDir = $this->getCacheDir(); - $cacheKey = self::FEED_CACHE_KEY . $lang . $context . $id; - $cacheExpire = intval(ConfigQuery::read("feed_ttl", '7200')) ?: 7200; - - $cacheDriver = new FilesystemCache($cacheDir); - if (!($this->checkAdmin() && "" !== $flush)){ - $cacheContent = $cacheDriver->fetch($cacheKey); - } else { - $cacheDriver->delete($cacheKey); - } - - // if not in cache - if (false === $cacheContent){ - // render the view - $cacheContent = $this->renderRaw( - "feed", - array( - "_context_" => $context, - "_lang_" => $lang, - "_id_" => $id - ) - ); - // save cache - $cacheDriver->save($cacheKey, $cacheContent, $cacheExpire); - } - - $response = new Response(); - $response->setContent($cacheContent); - $response->headers->set('Content-Type', 'application/rss+xml'); - - return $response; - } - - - /** - * get the cache directory for feeds - * - * @return mixed|string - */ - protected function getCacheDir() - { - $cacheDir = $this->container->getParameter("kernel.cache_dir"); - $cacheDir = rtrim($cacheDir, '/'); - $cacheDir .= '/' . self::FEED_CACHE_DIR . '/'; - - return $cacheDir; - } - - /** - * Check if current user has ADMIN role - * - * @return bool - */ - protected function checkAdmin(){ - return $this->getSecurityContext()->hasAdminUser(); - } - - - /** - * Check if a lang is used - * - * @param $lang string The lang code. e.g.: fr - * @return bool true if the language is used, otherwise false - */ - private function checkLang($lang) - { - // load locals - $lang = LangQuery::create() - ->findOneByLocale($lang); - - return (null !== $lang); - } - - - /** - * Check if the element exists and is visible - * - * @param $context string catalog or content - * @param $id string id of the element - * @return bool - */ - private function checkId($context, $id) - { - $ret = false; - if (is_numeric($id)){ - if ("catalog" === $context){ - $cat = CategoryQuery::create()->findPk($id); - $ret = (null !== $cat && $cat->getVisible()); - } elseif ("brand" === $context) { - $brand = BrandQuery::create()->findPk($id); - $ret = (null !== $brand && $brand->getVisible()); - } else { - $folder = FolderQuery::create()->findPk($id); - $ret = (null !== $folder && $folder->getVisible()); - } - } - return $ret; - } -} \ No newline at end of file diff --git a/local/local/modules/Front/Controller/NewsletterController.php b/local/local/modules/Front/Controller/NewsletterController.php deleted file mode 100644 index 9e558141..00000000 --- a/local/local/modules/Front/Controller/NewsletterController.php +++ /dev/null @@ -1,164 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Front\Controller; - -use Front\Front; -use Symfony\Component\HttpFoundation\JsonResponse; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Newsletter\NewsletterEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Form\Definition\FrontForm; -use Thelia\Log\Tlog; -use Thelia\Model\Customer; -use Thelia\Model\NewsletterQuery; - -/** - * Class NewsletterController - * @package Thelia\Controller\Front - * @author Manuel Raynaud , Franck Allimant - */ -class NewsletterController extends BaseFrontController -{ - /** - * @since 2.3.0-alpha2 - */ - public function unsubscribeAction() - { - $errorMessage = false; - - $newsletterForm = $this->createForm(FrontForm::NEWSLETTER_UNSUBSCRIBE); - - try { - $form = $this->validateForm($newsletterForm); - - $email = $form->get('email')->getData(); - - if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($email)) { - $event = new NewsletterEvent( - $email, - $this->getRequest()->getSession()->getLang()->getLocale() - ); - - $event->setId($newsletter->getId()); - - $this->dispatch(TheliaEvents::NEWSLETTER_UNSUBSCRIBE, $event); - - // If a success URL is defined in the form, redirect to it, otherwise use the defaut view - if ($newsletterForm->hasSuccessUrl() && !$this->getRequest()->isXmlHttpRequest()) { - return $this->generateSuccessRedirect($newsletterForm); - } - } - } catch (\Exception $e) { - $errorMessage = $e->getMessage(); - - Tlog::getInstance()->error(sprintf('Error during newsletter unsubscription : %s', $errorMessage)); - - $newsletterForm->setErrorMessage($errorMessage); - } - - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - return new JsonResponse([ - "success" => ($errorMessage) ? false : true, - "message" => ($errorMessage) ? $errorMessage : $this->getTranslator()->trans( - "Your subscription to our newsletter has been canceled.", - [], - Front::MESSAGE_DOMAIN - ) - ], ($errorMessage) ? 500 : 200); - } - - $this->getParserContext() - ->setGeneralError($errorMessage) - ->addForm($newsletterForm); - - // If an error URL is defined in the form, redirect to it, otherwise use the defaut view - if ($errorMessage && $newsletterForm->hasErrorUrl()) { - return $this->generateErrorRedirect($newsletterForm); - } - } - - public function subscribeAction() - { - $errorMessage = false; - - $newsletterForm = $this->createForm(FrontForm::NEWSLETTER); - - try { - $form = $this->validateForm($newsletterForm); - - $event = new NewsletterEvent( - $form->get('email')->getData(), - $this->getRequest()->getSession()->getLang()->getLocale() - ); - - /** @var Customer $customer */ - if (null !== $customer = $this->getSecurityContext()->getCustomerUser()) { - $event - ->setFirstname($customer->getFirstname()) - ->setLastname($customer->getLastname()) - ; - } else { - $event - ->setFirstname($form->get('firstname')->getData()) - ->setLastname($form->get('lastname')->getData()) - ; - } - - $this->dispatch(TheliaEvents::NEWSLETTER_SUBSCRIBE, $event); - - // If a success URL is defined in the form, redirect to it, otherwise use the defaut view - if ($newsletterForm->hasSuccessUrl() && ! $this->getRequest()->isXmlHttpRequest()) { - return $this->generateSuccessRedirect($newsletterForm); - } - } catch (\Exception $e) { - $errorMessage = $e->getMessage(); - - Tlog::getInstance()->error(sprintf('Error during newsletter subscription : %s', $errorMessage)); - - $newsletterForm->setErrorMessage($errorMessage); - } - - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - return new JsonResponse([ - "success" => ($errorMessage) ? false : true, - "message" => ($errorMessage) ? $errorMessage : $this->getTranslator()->trans( - "Thanks for signing up! We'll keep you posted whenever we have any new updates.", - [], - Front::MESSAGE_DOMAIN - ) - ], ($errorMessage) ? 500 : 200); - } - - $this->getParserContext() - ->setGeneralError($errorMessage) - ->addForm($newsletterForm); - - // If an error URL is defined in the form, redirect to it, otherwise use the defaut view - if ($errorMessage && $newsletterForm->hasErrorUrl()) { - return $this->generateErrorRedirect($newsletterForm); - } - } -} diff --git a/local/local/modules/Front/Controller/OrderController.php b/local/local/modules/Front/Controller/OrderController.php deleted file mode 100644 index 34ad4139..00000000 --- a/local/local/modules/Front/Controller/OrderController.php +++ /dev/null @@ -1,604 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ -namespace Front\Controller; - -use Front\Front; -use Propel\Runtime\ActiveQuery\Criteria; -use Propel\Runtime\Exception\PropelException; -use Symfony\Component\HttpFoundation\Response as BaseResponse; -use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Delivery\DeliveryPostageEvent; -use Thelia\Core\Event\Order\OrderEvent; -use Thelia\Core\Event\Product\VirtualProductOrderDownloadResponseEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Core\HttpFoundation\Request; -use Thelia\Exception\TheliaProcessException; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\Address; -use Thelia\Model\AddressQuery; -use Thelia\Model\AreaDeliveryModuleQuery; -use Thelia\Model\ConfigQuery; -use Thelia\Model\ModuleQuery; -use Thelia\Model\Order; -use Thelia\Model\OrderProductQuery; -use Thelia\Model\OrderQuery; -use Thelia\Module\AbstractDeliveryModule; -use Thelia\Module\Exception\DeliveryException; - -/** - * Class OrderController - * @package Thelia\Controller\Front - * @author Etienne Roudeix - */ -class OrderController extends BaseFrontController -{ - /** - * Check if the cart contains only virtual products. - */ - public function deliverView() - { - $this->checkAuth(); - $this->checkCartNotEmpty(); - - // check if the cart contains only virtual products - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - - $deliveryAddress = $this->getCustomerAddress(); - - if ($cart->isVirtual()) { - if (null !== $deliveryAddress) { - $deliveryModule = ModuleQuery::create()->retrieveVirtualProductDelivery($this->container); - - if (false === $deliveryModule) { - Tlog::getInstance()->error( - $this->getTranslator()->trans( - "To enable the virtual product feature, the VirtualProductDelivery module should be activated", - [], - Front::MESSAGE_DOMAIN - ) - ); - } elseif (count($deliveryModule) == 1) { - return $this->registerVirtualProductDelivery($deliveryModule[0], $deliveryAddress); - } - } - } - - return $this->render( - 'order-delivery', - [ - 'delivery_address_id' => (null !== $deliveryAddress) ? $deliveryAddress->getId() : null - ] - ); - } - - /** - * @param AbstractDeliveryModule $moduleInstance - * @param Address $deliveryAddress - * @return \Symfony\Component\HttpFoundation\Response - */ - private function registerVirtualProductDelivery($moduleInstance, $deliveryAddress) - { - /* get postage amount */ - $deliveryModule = $moduleInstance->getModuleModel(); - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - $deliveryPostageEvent = new DeliveryPostageEvent($moduleInstance, $cart, $deliveryAddress); - - $this->getDispatcher()->dispatch( - TheliaEvents::MODULE_DELIVERY_GET_POSTAGE, - $deliveryPostageEvent - ); - - $postage = $deliveryPostageEvent->getPostage(); - - $orderEvent = $this->getOrderEvent(); - $orderEvent->setDeliveryAddress($deliveryAddress->getId()); - $orderEvent->setDeliveryModule($deliveryModule->getId()); - $orderEvent->setPostage($postage->getAmount()); - $orderEvent->setPostageTax($postage->getAmountTax()); - $orderEvent->setPostageTaxRuleTitle($postage->getTaxRuleTitle()); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_ADDRESS, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_MODULE, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_POSTAGE, $orderEvent); - - return $this->generateRedirectFromRoute("order.invoice"); - } - - /** - * set delivery address - * set delivery module - */ - public function deliver() - { - $this->checkAuth(); - $this->checkCartNotEmpty(); - - $message = false; - - $orderDelivery = $this->createForm(FrontForm::ORDER_DELIVER); - - try { - $form = $this->validateForm($orderDelivery, "post"); - - $deliveryAddressId = $form->get("delivery-address")->getData(); - $deliveryModuleId = $form->get("delivery-module")->getData(); - $deliveryAddress = AddressQuery::create()->findPk($deliveryAddressId); - $deliveryModule = ModuleQuery::create()->findPk($deliveryModuleId); - - /* check that the delivery address belongs to the current customer */ - if ($deliveryAddress->getCustomerId() !== $this->getSecurityContext()->getCustomerUser()->getId()) { - throw new \Exception( - $this->getTranslator()->trans( - "Delivery address does not belong to the current customer", - [], - Front::MESSAGE_DOMAIN - ) - ); - } - - /* check that the delivery module fetches the delivery address area */ - if (null === AreaDeliveryModuleQuery::create()->findByCountryAndModule( - $deliveryAddress->getCountry(), - $deliveryModule - )) { - throw new \Exception( - $this->getTranslator()->trans( - "Delivery module cannot be use with selected delivery address", - [], - Front::MESSAGE_DOMAIN - ) - ); - } - - /* get postage amount */ - $moduleInstance = $deliveryModule->getDeliveryModuleInstance($this->container); - - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - $deliveryPostageEvent = new DeliveryPostageEvent($moduleInstance, $cart, $deliveryAddress); - - $this->getDispatcher()->dispatch( - TheliaEvents::MODULE_DELIVERY_GET_POSTAGE, - $deliveryPostageEvent - ); - - if (!$deliveryPostageEvent->isValidModule() || null === $deliveryPostageEvent->getPostage()) { - throw new DeliveryException( - $this->getTranslator()->trans('The delivery module is not valid.', [], Front::MESSAGE_DOMAIN) - ); - } - - $postage = $deliveryPostageEvent->getPostage(); - - $orderEvent = $this->getOrderEvent(); - $orderEvent->setDeliveryAddress($deliveryAddressId); - $orderEvent->setDeliveryModule($deliveryModuleId); - $orderEvent->setPostage($postage->getAmount()); - $orderEvent->setPostageTax($postage->getAmountTax()); - $orderEvent->setPostageTaxRuleTitle($postage->getTaxRuleTitle()); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_ADDRESS, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_MODULE, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_POSTAGE, $orderEvent); - - return $this->generateRedirectFromRoute("order.invoice"); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } catch (PropelException $e) { - $this->getParserContext()->setGeneralError($e->getMessage()); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } - - if ($message !== false) { - Tlog::getInstance()->error( - sprintf("Error during order delivery process : %s. Exception was %s", $message, $e->getMessage()) - ); - - $orderDelivery->setErrorMessage($message); - - $this->getParserContext() - ->addForm($orderDelivery) - ->setGeneralError($message) - ; - } - } - - /** - * set invoice address - * set payment module - */ - public function invoice() - { - $this->checkAuth(); - $this->checkCartNotEmpty(); - $this->checkValidDelivery(); - - $message = false; - - $orderPayment = $this->createForm(FrontForm::ORDER_PAYMENT); - - try { - $form = $this->validateForm($orderPayment, "post"); - - $invoiceAddressId = $form->get("invoice-address")->getData(); - $paymentModuleId = $form->get("payment-module")->getData(); - - /* check that the invoice address belongs to the current customer */ - $invoiceAddress = AddressQuery::create()->findPk($invoiceAddressId); - if ($invoiceAddress->getCustomerId() !== $this->getSecurityContext()->getCustomerUser()->getId()) { - throw new \Exception( - $this->getTranslator()->trans( - "Invoice address does not belong to the current customer", - [], - Front::MESSAGE_DOMAIN - ) - ); - } - - $orderEvent = $this->getOrderEvent(); - $orderEvent->setInvoiceAddress($invoiceAddressId); - $orderEvent->setPaymentModule($paymentModuleId); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_INVOICE_ADDRESS, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_PAYMENT_MODULE, $orderEvent); - - return $this->generateRedirectFromRoute("order.payment.process"); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } catch (PropelException $e) { - $this->getParserContext()->setGeneralError($e->getMessage()); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } - - if ($message !== false) { - Tlog::getInstance()->error( - sprintf("Error during order payment process : %s. Exception was %s", $message, $e->getMessage()) - ); - - $orderPayment->setErrorMessage($message); - - $this->getParserContext() - ->addForm($orderPayment) - ->setGeneralError($message) - ; - } - - return $this->generateErrorRedirect($orderPayment); - } - - public function pay() - { - /* check customer */ - $this->checkAuth(); - - /* check cart count */ - $this->checkCartNotEmpty(); - - /* check stock not empty */ - if (true === ConfigQuery::checkAvailableStock()) { - if (null !== $response = $this->checkStockNotEmpty()) { - return $response; - } - } - - /* check delivery address and module */ - $this->checkValidDelivery(); - - /* check invoice address and payment module */ - $this->checkValidInvoice(); - - $orderEvent = $this->getOrderEvent(); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_PAY, $orderEvent); - - $placedOrder = $orderEvent->getPlacedOrder(); - - if (null !== $placedOrder && null !== $placedOrder->getId()) { - /* order has been placed */ - if ($orderEvent->hasResponse()) { - return $orderEvent->getResponse(); - } else { - return $this->generateRedirectFromRoute( - 'order.placed', - [], - ['order_id' => $orderEvent->getPlacedOrder()->getId()] - ); - } - } else { - /* order has not been placed */ - return $this->generateRedirectFromRoute('cart.view'); - } - } - - public function orderPlaced($order_id) - { - /* check if the placed order matched the customer */ - $placedOrder = OrderQuery::create()->findPk( - $this->getRequest()->attributes->get('order_id') - ); - - if (null === $placedOrder) { - throw new TheliaProcessException( - $this->getTranslator()->trans( - "No placed order", - [], - Front::MESSAGE_DOMAIN - ), - TheliaProcessException::NO_PLACED_ORDER, - $placedOrder - ); - } - - $customer = $this->getSecurityContext()->getCustomerUser(); - - if (null === $customer || $placedOrder->getCustomerId() !== $customer->getId()) { - throw new TheliaProcessException( - $this->getTranslator()->trans( - "Received placed order id does not belong to the current customer", - [], - Front::MESSAGE_DOMAIN - ), - TheliaProcessException::PLACED_ORDER_ID_BAD_CURRENT_CUSTOMER, - $placedOrder - ); - } - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_CART_CLEAR, $this->getOrderEvent()); - - $this->getParserContext()->set("placed_order_id", $placedOrder->getId()); - } - - - public function orderFailed($order_id, $message) - { - if (empty($order_id)) { - // Fallback to request parameter if the method parameter is empty. - $order_id = $this->getRequest()->get('order_id'); - } - - $failedOrder = OrderQuery::create()->findPk($order_id); - - if (null !== $failedOrder) { - $customer = $this->getSecurityContext()->getCustomerUser(); - - if (null === $customer || $failedOrder->getCustomerId() !== $customer->getId()) { - throw new TheliaProcessException( - $this->getTranslator()->trans( - "Received failed order id does not belong to the current customer", - [], - Front::MESSAGE_DOMAIN - ), - TheliaProcessException::PLACED_ORDER_ID_BAD_CURRENT_CUSTOMER, - $failedOrder - ); - } - } else { - Tlog::getInstance()->warning("Failed order ID '$order_id' not found."); - } - - $this->getParserContext() - ->set("failed_order_id", $order_id) - ->set("failed_order_message", $message) - ; - } - - protected function getOrderEvent() - { - $order = $this->getOrder($this->getRequest()); - - return new OrderEvent($order); - } - - public function getOrder(Request $request) - { - $session = $request->getSession(); - - if (null !== $order = $session->getOrder()) { - return $order; - } - - $order = new Order(); - - $session->setOrder($order); - - return $order; - } - - - public function viewAction($order_id) - { - $this->checkOrderCustomer($order_id); - - return $this->render('account-order', ['order_id' => $order_id]); - } - - public function generateInvoicePdf($order_id) - { - $this->checkOrderCustomer($order_id); - - - return $this->generateOrderPdf($order_id, ConfigQuery::read('pdf_invoice_file', 'invoice')); - } - - public function generateDeliveryPdf($order_id) - { - $this->checkOrderCustomer($order_id); - - return $this->generateOrderPdf($order_id, ConfigQuery::read('pdf_delivery_file', 'delivery')); - } - - public function downloadVirtualProduct($order_product_id) - { - if (null !== $orderProduct = OrderProductQuery::create()->findPk($order_product_id)) { - $order = $orderProduct->getOrder(); - - if ($order->isPaid(false)) { - // check customer - $this->checkOrderCustomer($order->getId()); - - $virtualProductEvent = new VirtualProductOrderDownloadResponseEvent($orderProduct); - $this->getDispatcher()->dispatch( - TheliaEvents::VIRTUAL_PRODUCT_ORDER_DOWNLOAD_RESPONSE, - $virtualProductEvent - ); - - $response = $virtualProductEvent->getResponse(); - - if (!$response instanceof BaseResponse) { - throw new \RuntimeException('A Response must be added in the event TheliaEvents::VIRTUAL_PRODUCT_ORDER_DOWNLOAD_RESPONSE'); - } - - return $response; - } - } - - throw new AccessDeniedHttpException(); - - } - - private function checkOrderCustomer($order_id) - { - $this->checkAuth(); - - $order = OrderQuery::create()->findPk($order_id); - $valid = true; - if ($order) { - $customerOrder = $order->getCustomer(); - $customer = $this->getSecurityContext()->getCustomerUser(); - - if ($customerOrder->getId() != $customer->getId()) { - $valid = false; - } - } else { - $valid = false; - } - - if (false === $valid) { - throw new AccessDeniedHttpException(); - } - } - - public function getDeliveryModuleListAjaxAction() - { - $this->checkXmlHttpRequest(); - - // Change the delivery address if customer has changed it - $address = null; - $session = $this->getSession(); - $addressId = $this->getRequest()->get('address_id', null); - if (null !== $addressId && $addressId !== $session->getOrder()->getChoosenDeliveryAddress()) { - $address = AddressQuery::create()->findPk($addressId); - if (null !== $address && $address->getCustomerId() === $session->getCustomerUser()->getId()) { - $session->getOrder()->setChoosenDeliveryAddress($addressId); - } - } - - $address = AddressQuery::create()->findPk($session->getOrder()->getChoosenDeliveryAddress()); - - $countryId = $address->getCountryId(); - $stateId = $address->getStateId(); - - $args = array( - 'country' => $countryId, - 'state' => $stateId, - 'address' => $session->getOrder()->getChoosenDeliveryAddress() - ); - - return $this->render('ajax/order-delivery-module-list', $args); - } - - /** - * Redirect to cart view if at least one non product is out of stock - * - * @return null|BaseResponse - */ - private function checkStockNotEmpty() - { - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - - $cartItems = $cart->getCartItems(); - - foreach ($cartItems as $cartItem) { - $pse = $cartItem->getProductSaleElements(); - - $product = $cartItem->getProduct(); - - if ($pse->getQuantity() <= 0 && $product->getVirtual() !== 1) { - return $this->generateRedirectFromRoute('cart.view'); - } - } - - return null; - } - - /** - * Retrieve the chosen delivery address for a cart or the default customer address if not exists - * - * @return null|Address - */ - protected function getCustomerAddress() - { - $deliveryAddress = null; - $addressId = $this->getSession()->getOrder()->getChoosenDeliveryAddress(); - if (null === $addressId) { - $customer = $this->getSecurityContext()->getCustomerUser(); - - $deliveryAddress = AddressQuery::create() - ->filterByCustomerId($customer->getId()) - ->orderByIsDefault(Criteria::DESC) - ->findOne(); - - if (null !== $deliveryAddress) { - $this->getSession()->getOrder()->setChoosenDeliveryAddress( - $deliveryAddress->getId() - ); - } - } else { - $deliveryAddress = AddressQuery::create()->findPk($addressId); - } - - return $deliveryAddress; - } -} diff --git a/local/local/modules/Front/Controller/SitemapController.php b/local/local/modules/Front/Controller/SitemapController.php deleted file mode 100644 index c9c10986..00000000 --- a/local/local/modules/Front/Controller/SitemapController.php +++ /dev/null @@ -1,150 +0,0 @@ - - */ -class SitemapController extends BaseFrontController { - - - /** - * Folder name for sitemap cache - */ - const SITEMAP_CACHE_DIR = "sitemap"; - - /** - * Key prefix for sitemap cache - */ - const SITEMAP_CACHE_KEY = "sitemap"; - - /** - * @return Response - */ - public function generateAction() - { - /** @var Request $request */ - $request = $this->getRequest(); - - // the locale : fr, en, - $lang = $request->query->get("lang", ""); - if ("" !== $lang) { - if (! $this->checkLang($lang)){ - $this->pageNotFound(); - } - } - // specific content : product, category, cms - $context = $request->query->get("context", ""); - if (! in_array($context, array("", "catalog", "content")) ){ - $this->pageNotFound(); - } - - $flush = $request->query->get("flush", ""); - - // check if sitemap already in cache - $cacheContent = false; - - $cacheDir = $this->getCacheDir(); - $cacheKey = self::SITEMAP_CACHE_KEY . $lang . $context; - $cacheExpire = intval(ConfigQuery::read("sitemap_ttl", '7200')) ?: 7200; - - $cacheDriver = new FilesystemCache($cacheDir); - if (!($this->checkAdmin() && "" !== $flush)){ - $cacheContent = $cacheDriver->fetch($cacheKey); - } else { - $cacheDriver->delete($cacheKey); - } - - // if not in cache - if (false === $cacheContent){ - // render the view - $cacheContent = $this->renderRaw( - "sitemap", - array( - "_lang_" => $lang, - "_context_" => $context - ) - ); - // save cache - $cacheDriver->save($cacheKey, $cacheContent, $cacheExpire); - } - - $response = new Response(); - $response->setContent($cacheContent); - $response->headers->set('Content-Type', 'application/xml'); - - return $response; - } - - - /** - * get the cache directory for sitemap - * - * @return mixed|string - */ - protected function getCacheDir() - { - $cacheDir = $this->container->getParameter("kernel.cache_dir"); - $cacheDir = rtrim($cacheDir, '/'); - $cacheDir .= '/' . self::SITEMAP_CACHE_DIR . '/'; - - return $cacheDir; - } - - /** - * Check if current user has ADMIN role - * - * @return bool - */ - protected function checkAdmin(){ - return $this->getSecurityContext()->hasAdminUser(); - } - - - /** - * Check if a lang is used - * - * @param $lang The lang code. e.g.: fr - * @return bool true if the language is used, otherwise false - */ - private function checkLang($lang) - { - // load locals - $lang = LangQuery::create() - ->findOneByCode($lang); - - return (null !== $lang); - } - -} \ No newline at end of file diff --git a/local/local/modules/Front/Front.php b/local/local/modules/Front/Front.php deleted file mode 100644 index c085f27f..00000000 --- a/local/local/modules/Front/Front.php +++ /dev/null @@ -1,31 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Front; - -use Thelia\Module\BaseModule; - -class Front extends BaseModule -{ - const MESSAGE_DOMAIN = 'front'; -} diff --git a/local/local/modules/Front/I18n/de_DE.php b/local/local/modules/Front/I18n/de_DE.php deleted file mode 100644 index bf641783..00000000 --- a/local/local/modules/Front/I18n/de_DE.php +++ /dev/null @@ -1,22 +0,0 @@ - 'Gutschein-Code darf nicht leer sein', - 'Delivery address does not belong to the current customer' => 'Lieferadresse gehört nicht zum aktuellen Kunden', - 'Delivery module cannot be use with selected delivery address' => 'Lieferung-Modul kann nicht mit ausgewählten Lieferadresse verwendet werden', - 'Error during address deletion process' => 'Fehler beim Löschen der Adresse', - 'Failed to add this article to your cart, please try again' => 'Der Artikel konnte nicht zum Warenkorb hinzugefügt werden, bitte versuchen Sie es erneut', - 'Invoice address does not belong to the current customer' => 'Rechnungsadresse gehört nicht zum aktuellen Kunden', - 'No placed order' => 'Keine Bestellungen', - 'Please check your coupon code: %message' => 'Bitte überprüfen Sie Ihren Gutschein-Code: %message', - 'Please check your input: %s' => 'Bitte überprüfen Sie Ihre Eingabe: %s', - 'Received failed order id does not belong to the current customer' => 'Empfangene Id einer fehlgeschlagenen Bestellung gehört nicht zum aktuellen Kunden', - 'Received placed order id does not belong to the current customer' => 'Empfangene Bestellungs-Id gehört nicht zum aktuellen Kunden', - 'Sorry, an error occured: %s' => 'Leider ist ein Fehler aufgetreten: %s', - 'Sorry, an error occurred: %message' => 'Leider ist ein Fehler aufgetreten: %message', - 'Sorry, an error occurred: %s' => 'Es tut uns Leid, aber ein Fehler ist aufgetreten: %s', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Vielen Dank für Ihre Anmeldung! Wir halten Ihnen auf dem Laufenden über neuen Updates.', - 'To enable the virtual product feature, the VirtualProductDelivery module should be activated' => 'Um das virtuelle Produkt-Feature zu aktivieren, sollte das VirtualProductDelivery-Modul aktiviert werden', - 'Wrong email or password. Please try again' => 'E-Mail oder Passwort falsch. Bitte erneut versuchen', - 'You\'re currently logged in. Please log out before requesting a new password.' => 'Sie sind derzeit angemeldet. Bitte melden Sie sich ab, bevor Sie ein neues Passwort anfordern.', -]; diff --git a/local/local/modules/Front/I18n/en_US.php b/local/local/modules/Front/I18n/en_US.php deleted file mode 100644 index 1db05104..00000000 --- a/local/local/modules/Front/I18n/en_US.php +++ /dev/null @@ -1,24 +0,0 @@ - 'Coupon code can\'t be empty', - 'Delivery address does not belong to the current customer' => 'Delivery address does not belong to the current customer', - 'Delivery module cannot be use with selected delivery address' => 'Delivery module cannot be use with selected delivery address', - 'Error during address deletion process' => 'Error during address deletion process', - 'Failed to add this article to your cart, please try again' => 'Failed to add this article to your cart, please try again', - 'Invoice address does not belong to the current customer' => 'Invoice address does not belong to the current customer', - 'No placed order' => 'No placed order', - 'Please check your coupon code: %message' => 'Please check your coupon code: %message', - 'Please check your input: %s' => 'Please check your input: %s', - 'Received failed order id does not belong to the current customer' => 'Received failed order id does not belong to the current customer', - 'Received placed order id does not belong to the current customer' => 'Received placed order id does not belong to the current customer', - 'Sorry, an error occured: %s' => 'Sorry, an error occured: %s', - 'Sorry, an error occurred: %message' => 'Sorry, an error occurred: %message', - 'Sorry, an error occurred: %s' => 'Sorry, an error occurred: %s', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.', - 'To enable the virtual product feature, the VirtualProductDelivery module should be activated' => 'To enable the virtual product feature, the VirtualProductDelivery module should be activated', - 'Wrong email or password. Please try again' => 'Wrong email or password. Please try again', - 'You should sign in or register to use this coupon' => 'You should sign in or register to use this coupon', - 'You\'re currently logged in. Please log out before requesting a new password.' => 'You\'re currently logged in. Please log out before requesting a new password.', - 'Your account is not yet confirmed check out your mailbox' => 'Your account is not yet confirmed check out your mailbox', -); diff --git a/local/local/modules/Front/I18n/fr_FR.php b/local/local/modules/Front/I18n/fr_FR.php deleted file mode 100644 index 35405e3e..00000000 --- a/local/local/modules/Front/I18n/fr_FR.php +++ /dev/null @@ -1,23 +0,0 @@ - 'Le code promo ne peut être vide', - 'Delivery address does not belong to the current customer' => 'L\'adresse de livraison n\'appartient pas au client en cours', - 'Delivery module cannot be use with selected delivery address' => 'Le module de livraison ne peut pas être utilisé avec cette adresse de livraison', - 'Error during address deletion process' => 'Désolé. Une erreur s\'est produite lors de la suppression de l\'adresse', - 'Failed to add this article to your cart, please try again' => 'Impossible d\'ajouter cet article à votre panier. Merci de ré-essayer.', - 'Invoice address does not belong to the current customer' => 'L\'adresse de facturation n\'appartient pas au client en cours', - 'No placed order' => 'Aucune commande passée', - 'Please check your coupon code: %message' => 'Merci de vérifier votre code promo : %message', - 'Please check your input: %s' => 'Merci de vérifier les informations indiquées : %s', - 'Received failed order id does not belong to the current customer' => 'L\'id de commande refusée n\'appartient pas au client en cours', - 'Received placed order id does not belong to the current customer' => 'L\'id de commande passée n\'appartient pas au client en cours', - 'Sorry, an error occured: %s' => 'Désolé. Une erreur s\'est produite : %s', - 'Sorry, an error occurred: %message' => 'Désolé. Une erreur s\'est produite : %message', - 'Sorry, an error occurred: %s' => 'Désolé, une erreur est survenue : %s', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Merci de votre inscription ! Nous vous tiendrons informé dès qu\'il y aura des nouveautés.', - 'To enable the virtual product feature, the VirtualProductDelivery module should be activated' => 'Pour activer les produits virtuels, le module VirtualProductDelivery doit être activé', - 'Wrong email or password. Please try again' => 'Adresse email ou mot de passe incorrect. Merci de ré-essayer.', - 'You should sign in or register to use this coupon' => 'Vous devez vous connecter ou vous inscrire pour utiliser ce coupon', - 'You\'re currently logged in. Please log out before requesting a new password.' => 'Vous être actuellement connecté au site. Vous devez vous déconnecter pour demander un nouveau mot de passe.', -]; diff --git a/local/local/modules/Front/I18n/it_IT.php b/local/local/modules/Front/I18n/it_IT.php deleted file mode 100644 index 041021bb..00000000 --- a/local/local/modules/Front/I18n/it_IT.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Il codice di sconto non può essere vuoto', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Grazie per l\'inscrizione! Ti terremo aggiornato ogni volta che abbiamo eventuali nuovi aggiornamenti.', - 'You should sign in or register to use this coupon' => 'Dovresti accedere o registrarti per utilizzare questo coupon', -]; diff --git a/local/local/modules/Front/I18n/tr_TR.php b/local/local/modules/Front/I18n/tr_TR.php deleted file mode 100644 index 47004a8b..00000000 --- a/local/local/modules/Front/I18n/tr_TR.php +++ /dev/null @@ -1,22 +0,0 @@ - 'Kupon şifre boş olamaz', - 'Delivery address does not belong to the current customer' => 'Teslimat adresi geçerli müşteriye ait değil', - 'Delivery module cannot be use with selected delivery address' => 'Teslim modülü seçili teslimat adresi kullanılamaz', - 'Error during address deletion process' => 'Adres silme işlemi sırasında bir hata oluştu', - 'Failed to add this article to your cart, please try again' => 'Sepetinize Bu ürün eklenemedi, lütfen tekrar deneyin', - 'Invoice address does not belong to the current customer' => 'Fatura adresi geçerli müşteriye ait değil', - 'No placed order' => 'Yerleştirilen hiçbir sipariş', - 'Please check your coupon code: %message' => 'Kupon kodunuzu gözden geçirin: %message', - 'Please check your input: %s' => 'Lütfen girişinizi denetleyin: %s', - 'Received failed order id does not belong to the current customer' => 'Alınan başarısız sipariş kimliği geçerli müşteriye ait değil', - 'Received placed order id does not belong to the current customer' => 'Alınmış yerleştirilmiş sipariş kimliği geçerli müşteriye ait değil', - 'Sorry, an error occured: %s' => 'Üzgünüz, bir hata oluştu: %s', - 'Sorry, an error occurred: %message' => 'Üzgünüz, bir hata oluştu: %message', - 'Sorry, an error occurred: %s' => 'Üzgünüz, bir hata oluştu: %s', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Teşekkürler. Yeni güncelleştirmeler olduğunda sizi haberdar edeceğiz.', - 'To enable the virtual product feature, the VirtualProductDelivery module should be activated' => 'Sanal ürün özelliği etkinleştirmek için VirtualProductDelivery modülü etkinleştirilmesi', - 'Wrong email or password. Please try again' => 'Email adresi veya şifre hatalı. Lütfen tekrar deneyiniz', - 'You\'re currently logged in. Please log out before requesting a new password.' => 'Şu anda logged içinde. Lütfen yeni bir parola istemeden önce çıkış.', -]; diff --git a/local/local/modules/Front/LICENSE.txt b/local/local/modules/Front/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/Front/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/Front/composer.json b/local/local/modules/Front/composer.json deleted file mode 100644 index b916b7bb..00000000 --- a/local/local/modules/Front/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/front-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "Front" - } -} diff --git a/local/local/modules/HookAdminHome/Config/config.xml b/local/local/modules/HookAdminHome/Config/config.xml deleted file mode 100644 index ad256c63..00000000 --- a/local/local/modules/HookAdminHome/Config/config.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/local/local/modules/HookAdminHome/Config/module.xml b/local/local/modules/HookAdminHome/Config/module.xml deleted file mode 100644 index 3dde8cee..00000000 --- a/local/local/modules/HookAdminHome/Config/module.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - HookAdminHome\HookAdminHome - - Displays the default blocks on the homepage of the administration - - - Affiche les blocs par défaut sur la page d'accueil de l'administration - - - en_US - fr_FR - - 2.3.4 - - - Gilles Bourgeat - gilles@thelia.net - - - Franck Allimant - CQFDev - franck@cqfdev.fr - www.cqfdev.fr - - - classic - 2.2.0 - prod - diff --git a/local/local/modules/HookAdminHome/Config/routing.xml b/local/local/modules/HookAdminHome/Config/routing.xml deleted file mode 100644 index a36010d7..00000000 --- a/local/local/modules/HookAdminHome/Config/routing.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - HookAdminHome\Controller\HomeController::loadStatsAjaxAction - - - - HookAdminHome\Controller\HomeController::blockMonthSalesStatistics - \d+ - \d+ - - - - HookAdminHome\Controller\HomeController::processTemplateAction - ajax/thelia_news_feed - 1 - - - diff --git a/local/local/modules/HookAdminHome/Controller/HomeController.php b/local/local/modules/HookAdminHome/Controller/HomeController.php deleted file mode 100644 index e3fdde8b..00000000 --- a/local/local/modules/HookAdminHome/Controller/HomeController.php +++ /dev/null @@ -1,154 +0,0 @@ - - */ -class HomeController extends BaseAdminController -{ - /** - * Key prefix for stats cache - */ - const STATS_CACHE_KEY = "stats"; - - const RESOURCE_CODE = "admin.home"; - - public function loadStatsAjaxAction() - { - if (null !== $response = $this->checkAuth(self::RESOURCE_CODE, array(), AccessManager::VIEW)) { - return $response; - } - - $cacheExpire = ConfigQuery::getAdminCacheHomeStatsTTL(); - - /** @var AdapterInterface $cacheAdapter */ - $cacheAdapter = $this->container->get('thelia.cache'); - - $month = (int) $this->getRequest()->query->get('month', date('m')); - $year = (int) $this->getRequest()->query->get('year', date('Y')); - - $cacheKey = self::STATS_CACHE_KEY . "_" . $month . "_" . $year; - - $cacheItem = $cacheAdapter->getItem($cacheKey); - - // force flush - if ($this->getRequest()->query->get('flush', "0")) { - $cacheAdapter->deleteItem($cacheItem); - } - - if (!$cacheItem->isHit()) { - $data = $this->getStatus($month, $year); - - $cacheItem->set(json_encode($data)); - $cacheItem->expiresAfter($cacheExpire); - - if ($cacheExpire) { - $cacheAdapter->save($cacheItem); - } - } - - return $this->jsonResponse($cacheItem->get()); - } - - public function blockMonthSalesStatistics($month, $year) - { - $baseDate = sprintf("%04d-%02d", $year, $month); - - $startDate = "$baseDate-01"; - $endDate = date("Y-m-t", strtotime($startDate)); - - $prevMonthStartDate = date('Y-m-01', strtotime("$baseDate -1 month")); - $prevMonthEndDate = date("Y-m-t", strtotime($prevMonthStartDate)); - - return $this->render('block-month-sales-statistics', [ - 'startDate' => $startDate, - 'endDate' => $endDate, - 'prevMonthStartDate' => $prevMonthStartDate, - 'prevMonthEndDate' => $prevMonthEndDate, - ]); - } - - /** - * @param int $month - * @param int $year - * @return \stdClass - */ - protected function getStatus($month, $year) - { - $data = new \stdClass(); - - $data->title = $this->getTranslator()->trans( - "Stats on %month/%year", - ['%month' => $month, '%year' => $year], - HookAdminHome::DOMAIN_NAME - ); - - $data->series = []; - - /* sales */ - $data->series[] = $saleSeries = new \stdClass(); - $saleSeries->color = self::testHexColor('sales_color', '#adadad'); - $saleSeries->data = OrderQuery::getMonthlySaleStats($month, $year); - $saleSeries->valueFormat = "%1.2f " . Currency::getDefaultCurrency()->getSymbol(); - - /* new customers */ - $data->series[] = $newCustomerSeries = new \stdClass(); - $newCustomerSeries->color = self::testHexColor('customers_color', '#f39922'); - $newCustomerSeries->data = CustomerQuery::getMonthlyNewCustomersStats($month, $year); - $newCustomerSeries->valueFormat = "%d"; - - /* orders */ - $data->series[] = $orderSeries = new \stdClass(); - $orderSeries->color = self::testHexColor('orders_color', '#5cb85c'); - $orderSeries->data = OrderQuery::getMonthlyOrdersStats($month, $year); - $orderSeries->valueFormat = "%d"; - - /* first order */ - $data->series[] = $firstOrderSeries = new \stdClass(); - $firstOrderSeries->color = self::testHexColor('first_orders_color', '#5bc0de'); - $firstOrderSeries->data = OrderQuery::getFirstOrdersStats($month, $year); - $firstOrderSeries->valueFormat = "%d"; - - /* cancelled orders */ - $data->series[] = $cancelledOrderSeries = new \stdClass(); - $cancelledOrderSeries->color = self::testHexColor('cancelled_orders_color', '#d9534f'); - $cancelledOrderSeries->data = OrderQuery::getMonthlyOrdersStats($month, $year, array(5)); - $cancelledOrderSeries->valueFormat = "%d"; - - return $data; - } - - /** - * @param string $key - * @param string $default - * @return string hexadecimal color or default argument - */ - protected function testHexColor($key, $default) - { - $hexColor = $this->getRequest()->query->get($key, $default); - - return preg_match('/^#[a-f0-9]{6}$/i', $hexColor) ? $hexColor : $default; - } -} diff --git a/local/local/modules/HookAdminHome/Hook/AdminHook.php b/local/local/modules/HookAdminHome/Hook/AdminHook.php deleted file mode 100644 index 309b6297..00000000 --- a/local/local/modules/HookAdminHome/Hook/AdminHook.php +++ /dev/null @@ -1,71 +0,0 @@ - - */ -class AdminHook extends BaseHook -{ - public function blockStatistics(HookRenderEvent $event) - { - $event->add($this->render('block-statistics.html')); - } - - public function blockStatisticsJs(HookRenderEvent $event) - { - $event->add($this->render('block-statistics-js.html')); - } - - public function blockSalesStatistics(HookRenderBlockEvent $event) - { - $content = trim($this->render("block-sales-statistics.html")); - if (!empty($content)) { - $event->add([ - "id" => "block-sales-statistics", - "title" => $this->trans("Sales statistics", [], HookAdminHome::DOMAIN_NAME), - "content" => $content - ]); - } - } - - public function blockNews(HookRenderBlockEvent $event) - { - $content = trim($this->render("block-news.html")); - if (!empty($content)) { - $event->add([ - "id" => "block-news", - "content" => $content - ]); - } - } - - public function blockTheliaInformation(HookRenderBlockEvent $event) - { - $content = trim($this->render("block-thelia-information.html")); - if (!empty($content)) { - $event->add([ - "id" => "block-thelia-information", - "title" => $this->trans("Thelia informations", [], HookAdminHome::DOMAIN_NAME), - "content" => $content - ]); - } - } -} diff --git a/local/local/modules/HookAdminHome/HookAdminHome.php b/local/local/modules/HookAdminHome/HookAdminHome.php deleted file mode 100644 index 1a403c0a..00000000 --- a/local/local/modules/HookAdminHome/HookAdminHome.php +++ /dev/null @@ -1,21 +0,0 @@ - 'إحصائيات عن الشهر و السنة %month/%year', -]; diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/ar_SA.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/ar_SA.php deleted file mode 100644 index dafa0a35..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/ar_SA.php +++ /dev/null @@ -1,11 +0,0 @@ - 'تم إحباط الطلبات', - 'Average cart' => 'متوسط العربة', - 'Categories' => 'الفئات', - 'Click here' => 'انقر هنا', - 'Current version' => 'النسخة الحالية', - 'Customers' => 'العملاء', - 'Dashboard' => 'لوحة المعلومات', -]; diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/cs_CZ.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/cs_CZ.php deleted file mode 100644 index b1fe273d..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/cs_CZ.php +++ /dev/null @@ -1,31 +0,0 @@ - 'Aborted orders', - 'Average cart' => 'Average cart', - 'Categories' => 'Categories', - 'Click here' => 'Click here', - 'Current version' => 'Current version', - 'Customers' => 'Customers', - 'Dashboard' => 'Dashboard', - 'First orders' => 'First orders', - 'Latest version available' => 'Latest version available', - 'Lire la suite' => 'Lire la suite', - 'Loading Thelia lastest news...' => 'Loading Thelia lastest news...', - 'Loading...' => 'Loading...', - 'New customers' => 'New customers', - 'News' => 'News', - 'Offline products' => 'Offline products', - 'Online products' => 'Online products', - 'Orders' => 'Orders', - 'Overall sales' => 'Overall sales', - 'Previous month sales' => 'Previous month sales', - 'Previous year sales' => 'Previous year sales', - 'Products' => 'Products', - 'Sales' => 'Sales', - 'Sales excluding shipping' => 'Sales excluding shipping', - 'This month' => 'This month', - 'This year' => 'This year', - 'Today' => 'Today', - 'Yesterday sales' => 'Yesterday sales', -]; diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/de_DE.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/de_DE.php deleted file mode 100644 index 07620ee9..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,30 +0,0 @@ - 'Abgebrochene Bestellungen', - 'Average cart' => 'Durchschnittlichen Warenkorb', - 'Categories' => 'Kategorien', - 'Click here' => 'Hier Klicken', - 'Current version' => 'Aktuelle Version', - 'Customers' => 'Kunden', - 'Dashboard' => 'Dashboard', - 'First orders' => 'Erste Bestellungen', - 'Latest version available' => 'Neueste Version verfügbar', - 'Lire la suite' => 'Weiterlesen', - 'Loading Thelia lastest news...' => 'THELIAs neuesten Nachrichten Laden ...', - 'Loading...' => 'Laden...', - 'New customers' => 'Neue Kunde', - 'Offline products' => 'Offline Produkte', - 'Online products' => 'Online Produkte', - 'Orders' => 'Bestellungen', - 'Overall sales' => 'Gesamtverkäufe', - 'Previous month sales' => 'Vorheriger Monat Verkäufe', - 'Previous year sales' => 'Vorheriges Jahr Verkäufe', - 'Products' => 'Produkte', - 'Sales' => 'Verkäufe', - 'Sales excluding shipping' => 'Verkäufe ohne Lieferung', - 'This month' => 'Diesen Monat', - 'This year' => 'Dieses Jahr', - 'Today' => 'Heute', - 'Yesterday sales' => 'Verkäufe von Gestern', -]; diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/en_US.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/en_US.php deleted file mode 100644 index 5f375765..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,33 +0,0 @@ - 'Aborted orders', - 'An error occurred while reading from JSON file' => 'An error occurred while reading from JSON file', - 'Average cart' => 'Average cart', - 'Categories' => 'Categories', - 'Click here' => 'Click here', - 'Current version' => 'Current version', - 'Customers' => 'Customers', - 'Dashboard' => 'Dashboard', - 'First orders' => 'First orders', - 'Latest version available' => 'Latest version available', - 'Loading Thelia lastest news...' => 'Loading Thelia lastest news...', - 'Loading...' => 'Loading...', - 'New customers' => 'New customers', - 'News' => 'News', - 'Offline products' => 'Offline products', - 'Online products' => 'Online products', - 'Orders' => 'Orders', - 'Overall sales' => 'Overall sales', - 'Previous month sales' => 'Previous month sales', - 'Previous year sales' => 'Previous year sales', - 'Products' => 'Products', - 'Read more' => 'Read more', - 'Sales' => 'Sales', - 'Sales excluding shipping' => 'Sales excluding shipping', - 'This month' => 'This month', - 'This year' => 'This year', - 'Today' => 'Today', - 'YYYY-MM' => 'YYYY-MM', - 'Yesterday sales' => 'Yesterday sales', -); diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/es_ES.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/es_ES.php deleted file mode 100644 index 6537481f..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/es_ES.php +++ /dev/null @@ -1,31 +0,0 @@ - 'Pedidos abandonados', - 'Average cart' => 'Carrito medio', - 'Categories' => 'Categorías', - 'Click here' => 'Haz clic aquí', - 'Current version' => 'Versión actual', - 'Customers' => 'Clientes', - 'Dashboard' => 'Panel de Control', - 'First orders' => 'Primeros pedidos', - 'Latest version available' => 'Última versión disponible', - 'Lire la suite' => 'Leer más', - 'Loading Thelia lastest news...' => 'Carregant Thelia últimes notícies ...', - 'Loading...' => 'Carregant ...', - 'New customers' => 'Nuevos clientes', - 'News' => 'Noticias', - 'Offline products' => 'Productos fuera de línea', - 'Online products' => 'Productos en línea', - 'Orders' => 'Pedidos', - 'Overall sales' => 'Ventas totales', - 'Previous month sales' => 'Ventas del mes anterior', - 'Previous year sales' => 'Ventas del año anterior', - 'Products' => 'Productos', - 'Sales' => 'Ventas', - 'Sales excluding shipping' => 'Ventas sin el envio', - 'This month' => 'Este mes', - 'This year' => 'Este año', - 'Today' => 'Hoy', - 'Yesterday sales' => 'Ventas de ayer', -]; diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/fr_FR.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 0d04da9d..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,33 +0,0 @@ - 'Paniers abandonnés', - 'An error occurred while reading from JSON file' => 'Désolé, une erreur s\'est produite pendant la récupération des données.', - 'Average cart' => 'Panier moyen', - 'Categories' => 'Rubriques', - 'Click here' => 'Cliquez ici', - 'Current version' => 'Version en cours', - 'Customers' => 'Clients', - 'Dashboard' => 'Tableau de bord', - 'First orders' => 'Premières commandes', - 'Latest version available' => 'Dernière version disponible', - 'Loading Thelia lastest news...' => 'Chargement des dernières information Thelia...', - 'Loading...' => 'Chargement...', - 'New customers' => 'Nouveaux clients', - 'News' => 'Actualités', - 'Offline products' => 'Produits hors ligne', - 'Online products' => 'Produits en ligne', - 'Orders' => 'Commandes', - 'Overall sales' => 'Total des ventes', - 'Previous month sales' => 'Ventes du mois précédent', - 'Previous year sales' => 'Ventes de l\'année précédente', - 'Products' => 'Produits', - 'Read more' => 'Lire la suite', - 'Sales' => 'Ventes', - 'Sales excluding shipping' => 'Ventes hors frais de port', - 'This month' => 'Ce mois', - 'This year' => 'Cette année', - 'Today' => 'Aujourd\'hui', - 'YYYY-MM' => 'MM/YYYY', - 'Yesterday sales' => 'Ventes de la veille', -); diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/it_IT.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/it_IT.php deleted file mode 100644 index de57bcf8..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,32 +0,0 @@ - 'Ordini annullati', - 'Average cart' => 'Carrello medio', - 'Categories' => 'Categorie', - 'Click here' => 'Clicca qui', - 'Current version' => 'Versione attuale', - 'Customers' => 'Clienti', - 'Dashboard' => 'Dashboard', - 'First orders' => 'Primi ordini', - 'Latest version available' => 'Ultima versione disponibile', - 'Lire la suite' => 'Per saperne di più', - 'Loading Thelia lastest news...' => 'Caricamento delle ultime notizie su Thelia...', - 'Loading...' => 'Caricamento...', - 'New customers' => 'Nuovi clienti', - 'News' => 'Notizie', - 'Offline products' => 'Prodotti non in linea', - 'Online products' => 'Prodotti online', - 'Orders' => 'Ordini', - 'Overall sales' => 'Vendite complessive', - 'Previous month sales' => 'Vendite del mese precedente', - 'Previous year sales' => 'Vendite dell\'anno precedente', - 'Products' => 'Prodotti', - 'Read more' => 'Per saperne di più', - 'Sales' => 'Vendite', - 'Sales excluding shipping' => 'Vendite escluse spese di spedizione', - 'This month' => 'Questo mese', - 'This year' => 'Quest\'anno', - 'Today' => 'Oggi', - 'Yesterday sales' => 'Vendite di ieri', -]; diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/pt_BR.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/pt_BR.php deleted file mode 100644 index 7daaaee4..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/pt_BR.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Ordens abortadas', - 'Click here' => 'Clique aqui', -]; diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/ru_RU.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/ru_RU.php deleted file mode 100644 index b1fe273d..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/ru_RU.php +++ /dev/null @@ -1,31 +0,0 @@ - 'Aborted orders', - 'Average cart' => 'Average cart', - 'Categories' => 'Categories', - 'Click here' => 'Click here', - 'Current version' => 'Current version', - 'Customers' => 'Customers', - 'Dashboard' => 'Dashboard', - 'First orders' => 'First orders', - 'Latest version available' => 'Latest version available', - 'Lire la suite' => 'Lire la suite', - 'Loading Thelia lastest news...' => 'Loading Thelia lastest news...', - 'Loading...' => 'Loading...', - 'New customers' => 'New customers', - 'News' => 'News', - 'Offline products' => 'Offline products', - 'Online products' => 'Online products', - 'Orders' => 'Orders', - 'Overall sales' => 'Overall sales', - 'Previous month sales' => 'Previous month sales', - 'Previous year sales' => 'Previous year sales', - 'Products' => 'Products', - 'Sales' => 'Sales', - 'Sales excluding shipping' => 'Sales excluding shipping', - 'This month' => 'This month', - 'This year' => 'This year', - 'Today' => 'Today', - 'Yesterday sales' => 'Yesterday sales', -]; diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/tr_TR.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index 6fcb84a3..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,31 +0,0 @@ - 'İptal edilen siparişler', - 'Average cart' => 'Sepet Ortalaması', - 'Categories' => 'Katogoriler', - 'Click here' => 'Buraya tıklayın', - 'Current version' => 'Güncel Sürüm', - 'Customers' => 'müşteriler', - 'Dashboard' => 'Kontrol paneli', - 'First orders' => 'İlk emir', - 'Latest version available' => 'En son yorum elde edilebilir', - 'Lire la suite' => 'Devamını okuyun', - 'Loading Thelia lastest news...' => 'Thelia yükleme son haberler...', - 'Loading...' => 'Yükleneniyor…...', - 'New customers' => 'Yeni Müşteriler', - 'News' => 'Yeni Haberler', - 'Offline products' => 'Çevrimdışı ürünler', - 'Online products' => 'Online Ürünler', - 'Orders' => 'siparişler', - 'Overall sales' => 'Genel satış', - 'Previous month sales' => 'Önceki ay satış', - 'Previous year sales' => 'Önceki yılın satış', - 'Products' => 'ürün', - 'Sales' => 'Satış', - 'Sales excluding shipping' => 'Nakliye hariç satış', - 'This month' => 'Bu Ay', - 'This year' => 'Bu yıl', - 'Today' => 'bugün', - 'Yesterday sales' => 'Dün satış', -]; diff --git a/local/local/modules/HookAdminHome/I18n/cs_CZ.php b/local/local/modules/HookAdminHome/I18n/cs_CZ.php deleted file mode 100644 index 2ff4e47b..00000000 --- a/local/local/modules/HookAdminHome/I18n/cs_CZ.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Sales statistics', - 'Stats on %month/%year' => 'Stats on %month/%year', - 'Thelia informations' => 'Thelia information', -]; diff --git a/local/local/modules/HookAdminHome/I18n/de_DE.php b/local/local/modules/HookAdminHome/I18n/de_DE.php deleted file mode 100644 index 4405c981..00000000 --- a/local/local/modules/HookAdminHome/I18n/de_DE.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Verkaufsstatistiken', - 'Stats on %month/%year' => 'Statistiken für %month/%year', - 'Thelia informations' => 'Thelias Informationen', -]; diff --git a/local/local/modules/HookAdminHome/I18n/en_US.php b/local/local/modules/HookAdminHome/I18n/en_US.php deleted file mode 100644 index a4d812ee..00000000 --- a/local/local/modules/HookAdminHome/I18n/en_US.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Stats on %month/%year', - 'Thelia informations' => 'Thelia information', - 'Sales statistics' => 'Sales statistics', -); diff --git a/local/local/modules/HookAdminHome/I18n/es_ES.php b/local/local/modules/HookAdminHome/I18n/es_ES.php deleted file mode 100644 index fabace8e..00000000 --- a/local/local/modules/HookAdminHome/I18n/es_ES.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Estadísticas de ventas', - 'Thelia informations' => 'información sobre Thelia', -]; diff --git a/local/local/modules/HookAdminHome/I18n/fr_FR.php b/local/local/modules/HookAdminHome/I18n/fr_FR.php deleted file mode 100644 index 1fe9d72d..00000000 --- a/local/local/modules/HookAdminHome/I18n/fr_FR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Statistiques de vente', - 'Stats on %month/%year' => 'Statistiques pour %month/%year', - 'Thelia informations' => 'Informations Thelia', -]; diff --git a/local/local/modules/HookAdminHome/I18n/id_ID.php b/local/local/modules/HookAdminHome/I18n/id_ID.php deleted file mode 100644 index 8cbc43ab..00000000 --- a/local/local/modules/HookAdminHome/I18n/id_ID.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Stats on %month/%year', -]; diff --git a/local/local/modules/HookAdminHome/I18n/it_IT.php b/local/local/modules/HookAdminHome/I18n/it_IT.php deleted file mode 100644 index dcab80d9..00000000 --- a/local/local/modules/HookAdminHome/I18n/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Statistiche di vendita', - 'Thelia informations' => 'Thelia informazioni', -]; diff --git a/local/local/modules/HookAdminHome/I18n/ru_RU.php b/local/local/modules/HookAdminHome/I18n/ru_RU.php deleted file mode 100644 index 2ff4e47b..00000000 --- a/local/local/modules/HookAdminHome/I18n/ru_RU.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Sales statistics', - 'Stats on %month/%year' => 'Stats on %month/%year', - 'Thelia informations' => 'Thelia information', -]; diff --git a/local/local/modules/HookAdminHome/I18n/tr_TR.php b/local/local/modules/HookAdminHome/I18n/tr_TR.php deleted file mode 100644 index b8d17e2e..00000000 --- a/local/local/modules/HookAdminHome/I18n/tr_TR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Satış istatistikleri', - 'Stats on %month/%year' => '%month/%year istatistikleri', - 'Thelia informations' => 'Thelia bilgi', -]; diff --git a/local/local/modules/HookAdminHome/LICENSE.txt b/local/local/modules/HookAdminHome/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookAdminHome/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/HookAdminHome/composer.json b/local/local/modules/HookAdminHome/composer.json deleted file mode 100644 index d5921a2c..00000000 --- a/local/local/modules/HookAdminHome/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-admin-home-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookAdminHome" - } -} \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/ajax/thelia_news_feed.html b/local/local/modules/HookAdminHome/templates/backOffice/default/ajax/thelia_news_feed.html deleted file mode 100644 index 59aa6ee5..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/ajax/thelia_news_feed.html +++ /dev/null @@ -1,29 +0,0 @@ -{* this template is loaded via Ajax in the login page, to prevent login page slowdown *} - -{* Set the default translation domain, that will be used by intl when the 'd' parameter is not set *} -{default_translation_domain domain='hookadminhome.bo.default'} - -
- {loop type="feed" name="thelia_feeds" url="http://thelia.net/feeds/?lang={$lang_code}" limit="3"} - -
- -
-
- {* we use unescape:"htmlall" to unescape var before truncate, to prevent a cut in the middel of an HTML entity, eg &ea... *} -

{$DESCRIPTION|strip_tags|unescape:"htmlall"|truncate:250:"...":true nofilter}

-
- -
-
- - {/loop} -
\ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/assets/css/home.css b/local/local/modules/HookAdminHome/templates/backOffice/default/assets/css/home.css deleted file mode 100644 index 611f6228..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/assets/css/home.css +++ /dev/null @@ -1 +0,0 @@ -#block-information a{color:#8A8A8A}.stats{border-right:1px solid #f0f0f0;text-align:center}.stats:last-child{border-right:none}.stats h2{margin-top:0;margin-bottom:5px;font-size:30px}.stats p{margin-top:0;text-transform:uppercase;font-size:12px}@media (max-width:991px){.stats{margin-bottom:10px}.stats:nth-child(3){border-right:none}}.homepage #date-picker{text-align:center;} \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/assets/less/home.less b/local/local/modules/HookAdminHome/templates/backOffice/default/assets/less/home.less deleted file mode 100644 index a87eaab0..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/assets/less/home.less +++ /dev/null @@ -1,45 +0,0 @@ -@import "../../../../../../../../templates/backOffice/default/assets/less/bootstrap/variables.less"; -@import "../../../../../../../../templates/backOffice/default/assets/less/thelia/variables.less"; - -#block-information { - a { - color: #8A8A8A; - } -} - -.stats { - border-right: 1px solid @table-border-color; - text-align: center; - - &:last-child { - border-right: none; - } - - h2 { - margin-top: 0; - margin-bottom: 5px; - font-size: 30px; - } - - p { - margin-top: 0; - text-transform: uppercase; - font-size: @font-size-base - 1; // 12px - } -} - -@media (max-width: @screen-sm-max) { - .stats { - margin-bottom: 10px; - - &:nth-child(3) { - border-right: none; - } - } -} - -.homepage { - #date-picker { - text-align: center; - } -} \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/block-information.html b/local/local/modules/HookAdminHome/templates/backOffice/default/block-information.html deleted file mode 100644 index 25f09269..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/block-information.html +++ /dev/null @@ -1,59 +0,0 @@ -{* Do not display shop information block if user none of the required authorizations *} - -{capture name="shop_information_block_content"} - {loop type="auth" name="can_view" role="ADMIN" resource="admin.customer" access="VIEW"} - - {/loop} - - {loop type="auth" name="can_view" role="ADMIN" resource="admin.category" access="VIEW"} - - {/loop} - - {loop type="auth" name="can_view" role="ADMIN" resource="admin.product" access="VIEW"} - - - - {/loop} - - {loop type="auth" name="can_view" role="ADMIN" resource="admin.order" access="VIEW"} - - {/loop} -{/capture} - -{if trim($smarty.capture.shop_information_block_content) ne ""} -
-
- {$smarty.capture.shop_information_block_content nofilter} -
-
-{/if} \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/block-month-sales-statistics.html b/local/local/modules/HookAdminHome/templates/backOffice/default/block-month-sales-statistics.html deleted file mode 100644 index 57f72a60..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/block-month-sales-statistics.html +++ /dev/null @@ -1,48 +0,0 @@ -{loop type="currency" name="default-currency" default_only="1"} -{$defaultCurrency = $SYMBOL} -{/loop} - -{if empty($startDate)}{$startDate = 'this_month'}{/if} -{if empty($startDate)}{$startDate = 'this_month'}{/if} - -{if empty($prevMonthStartDate)}{$prevMonthStartDate = 'last_month'}{/if} -{if empty($prevMonthEndDate)}{$prevMonthEndDate = 'last_month'}{/if} - -
- - - - - - - - - - - - - - - - - - - - - - - -
{intl l="Overall sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate=$startDate endDate=$endDate} symbol=$defaultCurrency}
{intl l="Sales excluding shipping" d='hookadminhome.bo.default'} - {$salesNoShipping = {stats key="sales" startDate=$startDate endDate=$endDate includeShipping="false"}} - {format_money number=$salesNoShipping symbol=$defaultCurrency} -
{intl l="Previous month sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate=$prevMonthStartDate endDate=$prevMonthEndDate} symbol=$defaultCurrency}
{intl l="Orders" d='hookadminhome.bo.default'} - {$orderCount = {stats key="orders" startDate=$startDate endDate=$endDate}} - {$orderCount} -
{intl l="Average cart" d='hookadminhome.bo.default'} - {if $orderCount == 0} - {format_money number=0 symbol=$defaultCurrency} - {else} - {format_money number={($salesNoShipping/$orderCount)|round:"2"} symbol=$defaultCurrency} - {/if} -
-
\ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/block-news-js.html b/local/local/modules/HookAdminHome/templates/backOffice/default/block-news-js.html deleted file mode 100644 index d18e1f92..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/block-news-js.html +++ /dev/null @@ -1,7 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" module="HookAdminHome" access="VIEW"} - -{/loop} \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/block-news.html b/local/local/modules/HookAdminHome/templates/backOffice/default/block-news.html deleted file mode 100644 index 97bd6f99..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/block-news.html +++ /dev/null @@ -1,5 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" module="HookAdminHome" access="VIEW"} -
-
{intl l="Loading Thelia lastest news..." d='hookadminhome.bo.default'}
-
-{/loop} \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/block-sales-statistics.html b/local/local/modules/HookAdminHome/templates/backOffice/default/block-sales-statistics.html deleted file mode 100644 index 753173f8..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/block-sales-statistics.html +++ /dev/null @@ -1,100 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" resource="admin.order" access="VIEW"} - -{loop type="currency" name="default-currency" default_only="1"} -{$defaultCurrency = $SYMBOL} -{/loop} -
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
{intl l="Overall sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate="today" endDate="today"} symbol=$defaultCurrency}
{intl l="Sales excluding shipping" d='hookadminhome.bo.default'} - {$salesNoShipping = {stats key="sales" startDate="today" endDate="today" includeShipping="false"}} - {format_money number=$salesNoShipping symbol=$defaultCurrency} -
{intl l="Yesterday sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate="yesterday" endDate="yesterday"} symbol=$defaultCurrency}
{intl l="Orders" d='hookadminhome.bo.default'} - {$orderCount = {stats key="orders" startDate="today" endDate="today"}} - {$orderCount} -
{intl l="Average cart" d='hookadminhome.bo.default'} - {if $orderCount == 0} - {format_money number=0 symbol=$defaultCurrency} - {else} - {format_money number={($salesNoShipping/$orderCount)|round:"2"} symbol=$defaultCurrency} - {/if} -
-
-
- -
- {include file="block-month-sales-statistics.html"} -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - -
{intl l="Overall sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate="this_year" endDate="this_year"} symbol=$defaultCurrency}
{intl l="Sales excluding shipping" d='hookadminhome.bo.default'} - {$salesNoShipping = {stats key="sales" startDate="this_year" endDate="this_year" includeShipping="false"}} - {format_money number=$salesNoShipping symbol=$defaultCurrency} -
{intl l="Previous year sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate="last_year" endDate="last_year"} symbol=$defaultCurrency}
{intl l="Orders" d='hookadminhome.bo.default'} - {$orderCount = {stats key="orders" startDate="this_year" endDate="this_year"}} - {$orderCount} -
{intl l="Average cart" d='hookadminhome.bo.default'} - {if $orderCount == 0} - {format_money number=0 symbol=$defaultCurrency} - {else} - {format_money number={($salesNoShipping/$orderCount)|round:"2"} symbol=$defaultCurrency} - {/if} -
-
-
-
-{/loop} \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/block-statistics-js.html b/local/local/modules/HookAdminHome/templates/backOffice/default/block-statistics-js.html deleted file mode 100644 index b346c47d..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/block-statistics-js.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/block-statistics.html b/local/local/modules/HookAdminHome/templates/backOffice/default/block-statistics.html deleted file mode 100644 index e29e7135..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/block-statistics.html +++ /dev/null @@ -1,34 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" resource="admin.order" access="VIEW"} -
- -
- {intl l='Dashboard' d='hookadminhome.bo.default'} -
- - - - - - - -
-
- -
-
- - - - - -
-
- -
- -
-
-
- -
-{/loop} \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/block-thelia-information.html b/local/local/modules/HookAdminHome/templates/backOffice/default/block-thelia-information.html deleted file mode 100644 index d31df8b4..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/block-thelia-information.html +++ /dev/null @@ -1,20 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" module="HookAdminHome" access="VIEW"} -
- - - - - - - - - - - - - - - -
{intl l="Current version" d='hookadminhome.bo.default'}{$THELIA_VERSION}
{intl l="Latest version available"}{intl l="Loading..." d='hookadminhome.bo.default'}
{intl l="News"}{intl l="Click here" d='hookadminhome.bo.default'}
-
-{/loop} \ No newline at end of file diff --git a/local/local/modules/HookAnalytics/Config/config.xml b/local/local/modules/HookAnalytics/Config/config.xml deleted file mode 100644 index 57a6cb0f..00000000 --- a/local/local/modules/HookAnalytics/Config/config.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -
- - - - - - - - - - - - - \ No newline at end of file diff --git a/local/local/modules/HookAnalytics/Config/module.xml b/local/local/modules/HookAnalytics/Config/module.xml deleted file mode 100644 index fddad541..00000000 --- a/local/local/modules/HookAnalytics/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookAnalytics\HookAnalytics - - Analytics (Google) - - - Statistiques (Google) - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookAnalytics/Config/routing.xml b/local/local/modules/HookAnalytics/Config/routing.xml deleted file mode 100644 index 269697d7..00000000 --- a/local/local/modules/HookAnalytics/Config/routing.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - HookAnalytics\Controller\Configuration::saveAction - - - diff --git a/local/local/modules/HookAnalytics/Controller/Configuration.php b/local/local/modules/HookAnalytics/Controller/Configuration.php deleted file mode 100644 index dc083f55..00000000 --- a/local/local/modules/HookAnalytics/Controller/Configuration.php +++ /dev/null @@ -1,57 +0,0 @@ - - */ -class Configuration extends BaseAdminController { - - public function saveAction() - { - - if (null !== $response = $this->checkAuth(array(AdminResources::MODULE), array('hookanalytics'), AccessManager::UPDATE)) { - return $response; - } - - $form = new \HookAnalytics\Form\Configuration($this->getRequest()); - $resp = array( - "error" => 0, - "message" => "" - ); - $response=null; - - try { - $vform = $this->validateForm($form); - $data = $vform->getData(); - - ConfigQuery::write("hookanalytics_trackingcode", $data["trackingcode"], false, true); - - } catch (\Exception $e) { - $resp["error"] = 1; - $resp["message"] = $e->getMessage(); - } - - return JsonResponse::create($resp); - } - -} \ No newline at end of file diff --git a/local/local/modules/HookAnalytics/Form/Configuration.php b/local/local/modules/HookAnalytics/Form/Configuration.php deleted file mode 100644 index 01db6191..00000000 --- a/local/local/modules/HookAnalytics/Form/Configuration.php +++ /dev/null @@ -1,54 +0,0 @@ - - */ -class Configuration extends BaseForm { - - protected function buildForm() - { - $form = $this->formBuilder; - - $value = ConfigQuery::read("hookanalytics_trackingcode", ""); - $form->add( - "trackingcode", - "text", - array( - 'data' => $value, - 'label' => Translator::getInstance()->trans("Tracking Code"), - 'label_attr' => array( - 'for' => "trackingcode" - ), - ) - ); - - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "hookanalytics"; - } - - -} \ No newline at end of file diff --git a/local/local/modules/HookAnalytics/Hook/FrontHook.php b/local/local/modules/HookAnalytics/Hook/FrontHook.php deleted file mode 100644 index 11bd3c6c..00000000 --- a/local/local/modules/HookAnalytics/Hook/FrontHook.php +++ /dev/null @@ -1,33 +0,0 @@ - - */ -class FrontHook extends BaseHook { - - public function onMainHeadBottom(HookRenderEvent $event) - { - $value = trim(ConfigQuery::read("hookanalytics_trackingcode", "")); - if ("" != $value){ - $event->add($value); - } - } -} \ No newline at end of file diff --git a/local/local/modules/HookAnalytics/HookAnalytics.php b/local/local/modules/HookAnalytics/HookAnalytics.php deleted file mode 100644 index 2636e381..00000000 --- a/local/local/modules/HookAnalytics/HookAnalytics.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Ein Fehler ist aufgetreten', - 'Edit your analytics configuration.' => 'Analytics-Konfiguration bearbeiten.', - 'Save' => 'Speichern', -]; diff --git a/local/local/modules/HookAnalytics/I18n/backOffice/default/en_US.php b/local/local/modules/HookAnalytics/I18n/backOffice/default/en_US.php deleted file mode 100644 index ef8b1f98..00000000 --- a/local/local/modules/HookAnalytics/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,7 +0,0 @@ - 'An error occured', - 'Edit your analytics configuration.' => 'Edit your analytics configuration.', - 'Save' => 'Save', -); diff --git a/local/local/modules/HookAnalytics/I18n/backOffice/default/fr_FR.php b/local/local/modules/HookAnalytics/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 56712bd3..00000000 --- a/local/local/modules/HookAnalytics/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Une erreur est survenue', - 'Edit your analytics configuration.' => 'Modifier la configuration des statistiques', - 'Save' => ' Enregistrer', -]; diff --git a/local/local/modules/HookAnalytics/I18n/backOffice/default/it_IT.php b/local/local/modules/HookAnalytics/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 0c59bda5..00000000 --- a/local/local/modules/HookAnalytics/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Salvare', -]; diff --git a/local/local/modules/HookAnalytics/I18n/backOffice/default/tr_TR.php b/local/local/modules/HookAnalytics/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index 8e913080..00000000 --- a/local/local/modules/HookAnalytics/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Bir hata meydana geldi', - 'Edit your analytics configuration.' => 'Analytics yapılandırmanızı düzenleyin.', - 'Save' => 'kaydet', -]; diff --git a/local/local/modules/HookAnalytics/I18n/de_DE.php b/local/local/modules/HookAnalytics/I18n/de_DE.php deleted file mode 100644 index e1b30511..00000000 --- a/local/local/modules/HookAnalytics/I18n/de_DE.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Tracking-Code', -]; diff --git a/local/local/modules/HookAnalytics/I18n/en_US.php b/local/local/modules/HookAnalytics/I18n/en_US.php deleted file mode 100644 index ba8939d7..00000000 --- a/local/local/modules/HookAnalytics/I18n/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Tracking Code', -); diff --git a/local/local/modules/HookAnalytics/I18n/fr_FR.php b/local/local/modules/HookAnalytics/I18n/fr_FR.php deleted file mode 100644 index ab7c10b8..00000000 --- a/local/local/modules/HookAnalytics/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Code de suivi', -]; diff --git a/local/local/modules/HookAnalytics/I18n/frontOffice/default/de_DE.php b/local/local/modules/HookAnalytics/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 938a9f4a..00000000 --- a/local/local/modules/HookAnalytics/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS-Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'YouTube', -]; diff --git a/local/local/modules/HookAnalytics/I18n/frontOffice/default/en_US.php b/local/local/modules/HookAnalytics/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 534a4d03..00000000 --- a/local/local/modules/HookAnalytics/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -); diff --git a/local/local/modules/HookAnalytics/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookAnalytics/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 7b64f075..00000000 --- a/local/local/modules/HookAnalytics/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'Flux RSS', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/local/modules/HookAnalytics/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookAnalytics/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 15298b70..00000000 --- a/local/local/modules/HookAnalytics/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google +', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/local/modules/HookAnalytics/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookAnalytics/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index b951272b..00000000 --- a/local/local/modules/HookAnalytics/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google +', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Beslemesi', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/local/modules/HookAnalytics/I18n/it_IT.php b/local/local/modules/HookAnalytics/I18n/it_IT.php deleted file mode 100644 index bcce8768..00000000 --- a/local/local/modules/HookAnalytics/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Codice di monitoraggio', -]; diff --git a/local/local/modules/HookAnalytics/I18n/tr_TR.php b/local/local/modules/HookAnalytics/I18n/tr_TR.php deleted file mode 100644 index 3e16a023..00000000 --- a/local/local/modules/HookAnalytics/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'İzleme Kodu', -]; diff --git a/local/local/modules/HookAnalytics/LICENSE.txt b/local/local/modules/HookAnalytics/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookAnalytics/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/HookAnalytics/composer.json b/local/local/modules/HookAnalytics/composer.json deleted file mode 100644 index efe5231d..00000000 --- a/local/local/modules/HookAnalytics/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-analytics-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookAnalytics" - } -} diff --git a/local/local/modules/HookAnalytics/templates/backOffice/default/assets/js/module-configuration.js b/local/local/modules/HookAnalytics/templates/backOffice/default/assets/js/module-configuration.js deleted file mode 100644 index fe180bb7..00000000 --- a/local/local/modules/HookAnalytics/templates/backOffice/default/assets/js/module-configuration.js +++ /dev/null @@ -1,29 +0,0 @@ -$(document).ready(function() { - $("#hookanalytics-form").on("submit", function(e, data){ - e.preventDefault(); - var form = $(this); - - $('body').append(''); - - $.ajax({ - url: form.attr('action'), - type: form.attr('method'), - data: form.serialize() - }).done(function(){ - $("#loading-event").remove(); - }) - .success(function(data) { - if (data.error != 0) { - $("#loading-event").remove(); - $('#hookanalytics-failed-body').html(data.message); - $("#hookanalytics-failed").modal("show"); - } - }) - .fail(function(jqXHR, textStatus, errorThrown){ - $("#loading-event").remove(); - $('#hookanalytics-failed-body').html(jqXHR.responseJSON.message); - $("#hookanalytics-failed").modal("show"); - }); - - }); -}); \ No newline at end of file diff --git a/local/local/modules/HookAnalytics/templates/backOffice/default/module_configuration.html b/local/local/modules/HookAnalytics/templates/backOffice/default/module_configuration.html deleted file mode 100644 index c80b88ab..00000000 --- a/local/local/modules/HookAnalytics/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -
-
- -
- {intl l='Edit your analytics configuration.'} -
- -
-
- - {form name="hookanalytics.configuration.form"} - - - {form_hidden_fields} - - {form_field field='trackingcode'} -
- - -
- {/form_field} - - - - {/form} - -
- -
- -
-
- - - - diff --git a/local/local/modules/HookCart/Config/config.xml b/local/local/modules/HookCart/Config/config.xml deleted file mode 100644 index f8c3dce8..00000000 --- a/local/local/modules/HookCart/Config/config.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/local/local/modules/HookCart/Config/module.xml b/local/local/modules/HookCart/Config/module.xml deleted file mode 100644 index d01aadf0..00000000 --- a/local/local/modules/HookCart/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookCart\HookCart - - Block Cart - - - Bloc Panier - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookCart/HookCart.php b/local/local/modules/HookCart/HookCart.php deleted file mode 100644 index da8d0e9a..00000000 --- a/local/local/modules/HookCart/HookCart.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Warenkorb', - 'Checkout' => 'Zur Kasse', - 'Remove' => 'Entfernen', - 'View Cart' => 'Warenkorb anzeigen', - 'You have no items in your shopping cart.' => 'Sie haben keine Produkte im Warenkorb', -]; diff --git a/local/local/modules/HookCart/I18n/frontOffice/default/en_US.php b/local/local/modules/HookCart/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 3f99d2c5..00000000 --- a/local/local/modules/HookCart/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Cart', - 'Checkout' => 'Checkout', - 'Remove' => 'Remove', - 'View Cart' => 'View Cart', - 'You have no items in your shopping cart.' => 'You have no items in your shopping cart.', -); diff --git a/local/local/modules/HookCart/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookCart/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 088f21ef..00000000 --- a/local/local/modules/HookCart/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Panier', - 'Checkout' => 'Commande', - 'Remove' => 'Supprimer', - 'View Cart' => 'Voir le panier', - 'You have no items in your shopping cart.' => 'Vous n\'avez pas de produit dans votre panier.', -]; diff --git a/local/local/modules/HookCart/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookCart/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index dac05d5d..00000000 --- a/local/local/modules/HookCart/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Carrello', - 'Checkout' => 'Procedi all\'acquisto', - 'Remove' => 'Rimuovi', - 'View Cart' => 'Visualizza il carrello', - 'You have no items in your shopping cart.' => 'Non hai nessun prodotto nel tuo carrello.', -]; diff --git a/local/local/modules/HookCart/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookCart/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 04f4cc85..00000000 --- a/local/local/modules/HookCart/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Sepet', - 'Checkout' => 'Ödeme yap', - 'Remove' => 'Kaldır', - 'View Cart' => 'Sepeti Görüntüle', - 'You have no items in your shopping cart.' => 'Sepetinizde hiç ürün yok.', -]; diff --git a/local/local/modules/HookCart/LICENSE.txt b/local/local/modules/HookCart/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookCart/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/HookCart/composer.json b/local/local/modules/HookCart/composer.json deleted file mode 100644 index f56a5cb6..00000000 --- a/local/local/modules/HookCart/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-cart-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookCart" - } -} diff --git a/local/local/modules/HookCart/templates/frontOffice/default/assets/css/styles.css b/local/local/modules/HookCart/templates/frontOffice/default/assets/css/styles.css deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/modules/HookCart/templates/frontOffice/default/main-navbar-secondary.html b/local/local/modules/HookCart/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index a5df3814..00000000 --- a/local/local/modules/HookCart/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,3 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/HookCart/templates/frontOffice/default/mini-cart.html b/local/local/modules/HookCart/templates/frontOffice/default/mini-cart.html deleted file mode 100644 index aa128a08..00000000 --- a/local/local/modules/HookCart/templates/frontOffice/default/mini-cart.html +++ /dev/null @@ -1,81 +0,0 @@ -{ifloop rel="cartloop"} - -{/ifloop} -{elseloop rel="cartloop"} - -{/elseloop} diff --git a/local/local/modules/HookContact/Config/config.xml b/local/local/modules/HookContact/Config/config.xml deleted file mode 100644 index 5c54bc9c..00000000 --- a/local/local/modules/HookContact/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/local/modules/HookContact/Config/module.xml b/local/local/modules/HookContact/Config/module.xml deleted file mode 100644 index e5e2b1da..00000000 --- a/local/local/modules/HookContact/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookContact\HookContact - - Block Contact - - - Bloc Contact - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookContact/Hook/FrontHook.php b/local/local/modules/HookContact/Hook/FrontHook.php deleted file mode 100644 index 8ed956f5..00000000 --- a/local/local/modules/HookContact/Hook/FrontHook.php +++ /dev/null @@ -1,39 +0,0 @@ - - */ -class FrontHook extends BaseHook -{ - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $content = trim($this->render("main-footer-body.html")); - if ("" != $content) { - $event->add( - array( - "id" => "contact-footer-body", - "class" => "contact", - "title" => $this->trans("Contact", array(), "hookcontact"), - "content" => $content - ) - ); - } - } -} diff --git a/local/local/modules/HookContact/HookContact.php b/local/local/modules/HookContact/HookContact.php deleted file mode 100644 index 2b8df283..00000000 --- a/local/local/modules/HookContact/HookContact.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Kontakt', -]; diff --git a/local/local/modules/HookContact/I18n/en_US.php b/local/local/modules/HookContact/I18n/en_US.php deleted file mode 100644 index 55aea96d..00000000 --- a/local/local/modules/HookContact/I18n/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Contact', -); diff --git a/local/local/modules/HookContact/I18n/fr_FR.php b/local/local/modules/HookContact/I18n/fr_FR.php deleted file mode 100644 index 896efb7c..00000000 --- a/local/local/modules/HookContact/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Contact', -]; diff --git a/local/local/modules/HookContact/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookContact/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index d8eb50ed..00000000 --- a/local/local/modules/HookContact/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Nous trouver, Nous contacter', -]; diff --git a/local/local/modules/HookContact/I18n/it_IT.php b/local/local/modules/HookContact/I18n/it_IT.php deleted file mode 100644 index 11ee0ec2..00000000 --- a/local/local/modules/HookContact/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Contatta', -]; diff --git a/local/local/modules/HookContact/I18n/tr_TR.php b/local/local/modules/HookContact/I18n/tr_TR.php deleted file mode 100644 index 31680df5..00000000 --- a/local/local/modules/HookContact/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'İletişim', -]; diff --git a/local/local/modules/HookContact/LICENSE.txt b/local/local/modules/HookContact/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookContact/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/HookContact/composer.json b/local/local/modules/HookContact/composer.json deleted file mode 100644 index 2ecdb22a..00000000 --- a/local/local/modules/HookContact/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-contact-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookContact" - } -} diff --git a/local/local/modules/HookContact/templates/frontOffice/default/main-footer-body.html b/local/local/modules/HookContact/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index 9eea38b6..00000000 --- a/local/local/modules/HookContact/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,25 +0,0 @@ -
- -
    -
  • -
    - {config key="store_address1"} {config key="store_address2"} {config key="store_address3"}
    - {config key="store_zipcode"} - - {config key="store_city"} - {if {config key="store_country"} } - {loop type="country" name="address.country.title" id={config key="store_country"}}, {$TITLE}{/loop} - {/if} - -
    -
  • - {if {config key="store_phone"} } -
  • - {config key="store_phone"} -
  • - {/if} -
  • - {intl l="Find us, Contact us" d="hookcontact.fo.default"} -
  • -
-
diff --git a/local/local/modules/HookCurrency/Config/config.xml b/local/local/modules/HookCurrency/Config/config.xml deleted file mode 100644 index 1b5deb78..00000000 --- a/local/local/modules/HookCurrency/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/local/modules/HookCurrency/Config/module.xml b/local/local/modules/HookCurrency/Config/module.xml deleted file mode 100644 index e71a5278..00000000 --- a/local/local/modules/HookCurrency/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookCurrency\HookCurrency - - Block Currency - - - Bloc Devise - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookCurrency/HookCurrency.php b/local/local/modules/HookCurrency/HookCurrency.php deleted file mode 100644 index 63d66296..00000000 --- a/local/local/modules/HookCurrency/HookCurrency.php +++ /dev/null @@ -1,20 +0,0 @@ - - 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. diff --git a/local/local/modules/HookCurrency/composer.json b/local/local/modules/HookCurrency/composer.json deleted file mode 100644 index 58767943..00000000 --- a/local/local/modules/HookCurrency/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-currency-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookCurrency" - } -} diff --git a/local/local/modules/HookCurrency/templates/frontOffice/default/main-navbar-secondary.html b/local/local/modules/HookCurrency/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index 0a8faad9..00000000 --- a/local/local/modules/HookCurrency/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/HookCustomer/Config/config.xml b/local/local/modules/HookCustomer/Config/config.xml deleted file mode 100644 index 63a29ce5..00000000 --- a/local/local/modules/HookCustomer/Config/config.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - diff --git a/local/local/modules/HookCustomer/Config/module.xml b/local/local/modules/HookCustomer/Config/module.xml deleted file mode 100644 index d4673f06..00000000 --- a/local/local/modules/HookCustomer/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookCustomer\HookCustomer - - Block Customer - - - Bloc Client - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookCustomer/HookCustomer.php b/local/local/modules/HookCustomer/HookCustomer.php deleted file mode 100644 index eab3f96a..00000000 --- a/local/local/modules/HookCustomer/HookCustomer.php +++ /dev/null @@ -1,20 +0,0 @@ - 'E-mail Adresse', - 'Forgot your Password?' => 'Haben sir Ihr Passwort vergessen ?', - 'Log In!' => 'Log In!', - 'Log out!' => 'Log out!', - 'My Account' => 'Mein Kundenkonto', - 'Password' => 'Passwort', - 'Register' => 'Registrieren', - 'Register!' => 'Registrieren!', - 'Sign In' => 'Registrieren', -]; diff --git a/local/local/modules/HookCustomer/I18n/frontOffice/default/en_US.php b/local/local/modules/HookCustomer/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 102c3129..00000000 --- a/local/local/modules/HookCustomer/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Email address', - 'Forgot your Password?' => 'Forgot your Password?', - 'Log In!' => 'Log In!', - 'Log out!' => 'Log out!', - 'My Account' => 'My Account', - 'Password' => 'Password', - 'Register' => 'Register', - 'Register!' => 'Register!', - 'Sign In' => 'Sign In', -); diff --git a/local/local/modules/HookCustomer/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookCustomer/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 8a899390..00000000 --- a/local/local/modules/HookCustomer/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Adresse e-mail', - 'Forgot your Password?' => 'Mot de passe oublié ?', - 'Log In!' => 'Se connecter', - 'Log out!' => 'Se déconnecter', - 'My Account' => 'Mon compte', - 'Password' => 'Mot de passe', - 'Register' => 'S\'inscrire', - 'Register!' => 'Enregistrez-vous !', - 'Sign In' => 'Se connecter', -]; diff --git a/local/local/modules/HookCustomer/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookCustomer/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index aba7ec5d..00000000 --- a/local/local/modules/HookCustomer/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Indirizzo email', - 'Forgot your Password?' => 'Hai dimenticato la password?', - 'Log In!' => 'Accedi!', - 'Log out!' => 'Esci!', - 'My Account' => 'Mio account', - 'Password' => 'Password', - 'Register' => 'Registrati', - 'Register!' => 'Registrati!', - 'Sign In' => 'Accedi', -]; diff --git a/local/local/modules/HookCustomer/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookCustomer/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 83c6b6fd..00000000 --- a/local/local/modules/HookCustomer/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Eposta adresi', - 'Forgot your Password?' => 'Parolanızı mı unuttunuz?', - 'Log In!' => 'Oturum aç!', - 'Log out!' => 'Çıkış Yap!', - 'My Account' => 'Hesabım', - 'Password' => 'Parola', - 'Register' => 'Kaydol', - 'Register!' => 'Kayıt ol!', - 'Sign In' => 'Oturum Aç', -]; diff --git a/local/local/modules/HookCustomer/LICENSE.txt b/local/local/modules/HookCustomer/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookCustomer/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/HookCustomer/composer.json b/local/local/modules/HookCustomer/composer.json deleted file mode 100644 index d081b403..00000000 --- a/local/local/modules/HookCustomer/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-customer-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookCustomer" - } -} diff --git a/local/local/modules/HookCustomer/templates/frontOffice/default/assets/css/styles.css b/local/local/modules/HookCustomer/templates/frontOffice/default/assets/css/styles.css deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/modules/HookCustomer/templates/frontOffice/default/main-navbar-secondary.html b/local/local/modules/HookCustomer/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index 13d84fd5..00000000 --- a/local/local/modules/HookCustomer/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,43 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/HookLang/Config/config.xml b/local/local/modules/HookLang/Config/config.xml deleted file mode 100644 index d30cb542..00000000 --- a/local/local/modules/HookLang/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/local/modules/HookLang/Config/module.xml b/local/local/modules/HookLang/Config/module.xml deleted file mode 100644 index a6be2dcc..00000000 --- a/local/local/modules/HookLang/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookLang\HookLang - - Block Languages - - - Bloc langages - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookLang/HookLang.php b/local/local/modules/HookLang/HookLang.php deleted file mode 100644 index 2ab93ac2..00000000 --- a/local/local/modules/HookLang/HookLang.php +++ /dev/null @@ -1,20 +0,0 @@ - - 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. diff --git a/local/local/modules/HookLang/composer.json b/local/local/modules/HookLang/composer.json deleted file mode 100644 index c5338646..00000000 --- a/local/local/modules/HookLang/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-lang-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookLang" - } -} diff --git a/local/local/modules/HookLang/templates/frontOffice/default/main-navbar-secondary.html b/local/local/modules/HookLang/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index a61a7a1e..00000000 --- a/local/local/modules/HookLang/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/HookLinks/Config/config.xml b/local/local/modules/HookLinks/Config/config.xml deleted file mode 100644 index 6036b5d0..00000000 --- a/local/local/modules/HookLinks/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/local/modules/HookLinks/Config/module.xml b/local/local/modules/HookLinks/Config/module.xml deleted file mode 100644 index 09605839..00000000 --- a/local/local/modules/HookLinks/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookLinks\HookLinks - - Block Useful links - - - Bloc Liens utiles - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookLinks/Hook/FrontHook.php b/local/local/modules/HookLinks/Hook/FrontHook.php deleted file mode 100644 index 3f0a4829..00000000 --- a/local/local/modules/HookLinks/Hook/FrontHook.php +++ /dev/null @@ -1,38 +0,0 @@ - - */ -class FrontHook extends BaseHook { - - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $content = trim($this->render("main-footer-body.html")); - if ("" != $content){ - $event->add(array( - "id" => "links-footer-body", - "class" => "default", - "title" => $this->trans("Useful links", array(), "hooklinks"), - "content" => $content - )); - } - } - -} \ No newline at end of file diff --git a/local/local/modules/HookLinks/HookLinks.php b/local/local/modules/HookLinks/HookLinks.php deleted file mode 100644 index 28e00f98..00000000 --- a/local/local/modules/HookLinks/HookLinks.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Nützliche Links', -]; diff --git a/local/local/modules/HookLinks/I18n/en_US.php b/local/local/modules/HookLinks/I18n/en_US.php deleted file mode 100644 index 531cd8a6..00000000 --- a/local/local/modules/HookLinks/I18n/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Useful links', -); diff --git a/local/local/modules/HookLinks/I18n/fr_FR.php b/local/local/modules/HookLinks/I18n/fr_FR.php deleted file mode 100644 index 95d22cf1..00000000 --- a/local/local/modules/HookLinks/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Liens utiles', -]; diff --git a/local/local/modules/HookLinks/I18n/frontOffice/default/de_DE.php b/local/local/modules/HookLinks/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 1dc47f8d..00000000 --- a/local/local/modules/HookLinks/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Warenkorb', - 'Checkout' => 'Zur Kasse', - 'Log out!' => 'Log out!', - 'Login' => 'Anmeldung', - 'My Account' => 'Mein Kundenkonto', - 'Register' => 'Registrieren', -]; diff --git a/local/local/modules/HookLinks/I18n/frontOffice/default/en_US.php b/local/local/modules/HookLinks/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 33a0bb71..00000000 --- a/local/local/modules/HookLinks/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Cart', - 'Checkout' => 'Checkout', - 'Log out!' => 'Log out!', - 'Login' => 'Login', - 'My Account' => 'My Account', - 'Register' => 'Register', -); diff --git a/local/local/modules/HookLinks/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookLinks/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 8b8c6bf4..00000000 --- a/local/local/modules/HookLinks/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Panier', - 'Checkout' => 'Commander', - 'Log out!' => 'Se déconnecter', - 'Login' => 'Connexion', - 'My Account' => 'Mon compte', - 'Register' => 'S\'inscrire', -]; diff --git a/local/local/modules/HookLinks/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookLinks/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index fca67d76..00000000 --- a/local/local/modules/HookLinks/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Carrello', - 'Checkout' => 'Procedi all\'acquisto', - 'Log out!' => 'Esci!', - 'Login' => 'Login', - 'My Account' => 'Mio account', - 'Register' => 'Registrati', -]; diff --git a/local/local/modules/HookLinks/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookLinks/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 88c01521..00000000 --- a/local/local/modules/HookLinks/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Sepet', - 'Checkout' => 'Ödeme yap', - 'Log out!' => 'Çıkış Yap!', - 'Login' => 'Giriş yap', - 'My Account' => 'Hesabım', - 'Register' => 'Kaydol', -]; diff --git a/local/local/modules/HookLinks/I18n/it_IT.php b/local/local/modules/HookLinks/I18n/it_IT.php deleted file mode 100644 index 6120aafa..00000000 --- a/local/local/modules/HookLinks/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Link utili', -]; diff --git a/local/local/modules/HookLinks/I18n/tr_TR.php b/local/local/modules/HookLinks/I18n/tr_TR.php deleted file mode 100644 index 3f99d1ee..00000000 --- a/local/local/modules/HookLinks/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Faydalı Linkler', -]; diff --git a/local/local/modules/HookLinks/LICENSE.txt b/local/local/modules/HookLinks/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookLinks/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/HookLinks/composer.json b/local/local/modules/HookLinks/composer.json deleted file mode 100644 index 23abd78e..00000000 --- a/local/local/modules/HookLinks/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-links-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookLinks" - } -} diff --git a/local/local/modules/HookLinks/templates/frontOffice/default/main-footer-body.html b/local/local/modules/HookLinks/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index 08607f06..00000000 --- a/local/local/modules/HookLinks/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,15 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/HookNavigation/Config/config.xml b/local/local/modules/HookNavigation/Config/config.xml deleted file mode 100644 index 1da4b2b4..00000000 --- a/local/local/modules/HookNavigation/Config/config.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - -
- - - - - - - - - - - diff --git a/local/local/modules/HookNavigation/Config/module.xml b/local/local/modules/HookNavigation/Config/module.xml deleted file mode 100644 index dc090ec9..00000000 --- a/local/local/modules/HookNavigation/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookNavigation\HookNavigation - - Block Navigation - - - Bloc Menu - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookNavigation/Config/routing.xml b/local/local/modules/HookNavigation/Config/routing.xml deleted file mode 100644 index 2182aa3c..00000000 --- a/local/local/modules/HookNavigation/Config/routing.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - HookNavigation:HookNavigationConfig:default - - - HookNavigation:HookNavigationConfig:save - - diff --git a/local/local/modules/HookNavigation/Controller/HookNavigationConfigController.php b/local/local/modules/HookNavigation/Controller/HookNavigationConfigController.php deleted file mode 100644 index 04b7ca5f..00000000 --- a/local/local/modules/HookNavigation/Controller/HookNavigationConfigController.php +++ /dev/null @@ -1,75 +0,0 @@ - - OpenStudio - */ -class HookNavigationConfigController extends BaseAdminController -{ - public function defaultAction() - { - $bodyConfig = HookNavigation::getConfigValue(HookNavigationConfigValue::FOOTER_BODY_FOLDER_ID); - $bottomConfig = HookNavigation::getConfigValue(HookNavigationConfigValue::FOOTER_BOTTOM_FOLDER_ID); - - $this->getSession()->getFlashBag()->set('bodyConfig', $bodyConfig); - $this->getSession()->getFlashBag()->set('bottomConfig', $bottomConfig); - - return $this->render('hooknavigation-configuration'); - } - - public function saveAction() - { - $baseForm = $this->createForm('hooknavigation.configuration'); - - $errorMessage = null; - - try { - $form = $this->validateForm($baseForm); - $data = $form->getData(); - - HookNavigation::setConfigValue(HookNavigationConfigValue::FOOTER_BODY_FOLDER_ID, is_bool($data['footer_body_folder_id']) ? (int) ($data['footer_body_folder_id']) : $data['footer_body_folder_id']); - HookNavigation::setConfigValue(HookNavigationConfigValue::FOOTER_BOTTOM_FOLDER_ID, is_bool($data['footer_bottom_folder_id']) ? (int) ($data['footer_bottom_folder_id']) : $data['footer_bottom_folder_id']); - } catch (FormValidationException $ex) { - // Invalid data entered - $errorMessage = $this->createStandardFormValidationErrorMessage($ex); - } catch (\Exception $ex) { - // Any other error - $errorMessage = $this->getTranslator()->trans('Sorry, an error occurred: %err', ['%err' => $ex->getMessage()], [], HookNavigation::MESSAGE_DOMAIN); - } - - if (null !== $errorMessage) { - // Mark the form as with error - $baseForm->setErrorMessage($errorMessage); - - // Send the form and the error to the parser - $this->getParserContext() - ->addForm($baseForm) - ->setGeneralError($errorMessage) - ; - } else { - $this->getParserContext() - ->set('success', true) - ; - } - - return $this->defaultAction(); - } -} diff --git a/local/local/modules/HookNavigation/Form/HookNavigationConfigForm.php b/local/local/modules/HookNavigation/Form/HookNavigationConfigForm.php deleted file mode 100644 index 84221749..00000000 --- a/local/local/modules/HookNavigation/Form/HookNavigationConfigForm.php +++ /dev/null @@ -1,55 +0,0 @@ - - OpenStudio - */ -class HookNavigationConfigForm extends BaseForm -{ - public function getName() - { - return 'hooknavigation_configuration'; - } - - protected function buildForm() - { - $this->formBuilder - ->add( - 'footer_body_folder_id', - 'number', - [ - 'constraints' => [ - new NotBlank(), - ], - 'label' => $this->translator->trans('Folder in footer body', [], HookNavigation::MESSAGE_DOMAIN), - ] - ) - ->add( - 'footer_bottom_folder_id', - 'number', - [ - 'constraints' => [ - new NotBlank(), - ], - 'label' => $this->translator->trans('Folder in footer bottom', [], HookNavigation::MESSAGE_DOMAIN), - ] - ); - } -} diff --git a/local/local/modules/HookNavigation/Hook/FrontHook.php b/local/local/modules/HookNavigation/Hook/FrontHook.php deleted file mode 100644 index a108f3a0..00000000 --- a/local/local/modules/HookNavigation/Hook/FrontHook.php +++ /dev/null @@ -1,51 +0,0 @@ -, Etienne PERRIERE - OpenStudio - */ -class FrontHook extends BaseHook -{ - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $bodyConfig = HookNavigation::getConfigValue(HookNavigationConfigValue::FOOTER_BODY_FOLDER_ID); - - $content = trim($this->render('main-footer-body.html', ['bodyFolderId' => $bodyConfig])); - if ('' != $content) { - $event->add(array( - 'id' => 'navigation-footer-body', - 'class' => 'links', - 'title' => $this->trans('Latest articles', array(), HookNavigation::MESSAGE_DOMAIN), - 'content' => $content, - )); - } - } - - public function onMainFooterBottom(HookRenderEvent $event) - { - $bottomConfig = HookNavigation::getConfigValue(HookNavigationConfigValue::FOOTER_BOTTOM_FOLDER_ID); - - $content = $this->render('main-footer-bottom.html', ['bottomFolderId' => $bottomConfig]); - $event->add($content); - } -} diff --git a/local/local/modules/HookNavigation/HookNavigation.php b/local/local/modules/HookNavigation/HookNavigation.php deleted file mode 100644 index a878b090..00000000 --- a/local/local/modules/HookNavigation/HookNavigation.php +++ /dev/null @@ -1,24 +0,0 @@ - 'Kategorien', - 'Folder in footer body' => 'Ordner in Fußzeile', - 'Folder in footer bottom' => 'Ordner in Fußzeile', - 'Home' => 'Startseite', - 'HookNavigation configuration' => 'HookNavigation Konfiguration', - 'No articles currently' => 'Zur Zeit keine Artikel', - 'Toggle navigation' => 'Navigation umschalten', -]; diff --git a/local/local/modules/HookNavigation/I18n/backOffice/default/en_US.php b/local/local/modules/HookNavigation/I18n/backOffice/default/en_US.php deleted file mode 100644 index 88e66b06..00000000 --- a/local/local/modules/HookNavigation/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Configuration correctly saved', - 'Configure hooknavigation' => 'Configure hooknavigation', - 'Home' => 'Home', - 'HookNavigation configuration' => 'HookNavigation configuration', - 'Modules' => 'Modules', - 'Select a folder' => 'Select a folder', -); diff --git a/local/local/modules/HookNavigation/I18n/backOffice/default/fr_FR.php b/local/local/modules/HookNavigation/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 04211f37..00000000 --- a/local/local/modules/HookNavigation/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Configuration sauvegardée correctement', - 'Configure hooknavigation' => 'Configurer Bloc Menu', - 'Home' => 'Accueil', - 'HookNavigation configuration' => 'Configuration de Block Menu', - 'Modules' => 'Modules', - 'Select a folder' => 'Sélectionner un dossier', -]; diff --git a/local/local/modules/HookNavigation/I18n/backOffice/default/it_IT.php b/local/local/modules/HookNavigation/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 7b04d958..00000000 --- a/local/local/modules/HookNavigation/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Home', - 'Modules' => 'Moduli', - 'Select a folder' => 'Seleziona una cartella', -]; diff --git a/local/local/modules/HookNavigation/I18n/backOffice/default/tr_TR.php b/local/local/modules/HookNavigation/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index 6816d794..00000000 --- a/local/local/modules/HookNavigation/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Katogoriler', - 'Folder in footer body' => 'Altbilgi vücut klasöründe', - 'Folder in footer bottom' => 'Altbilgi alt klasöründe', - 'Home' => 'Ana sayfa', - 'HookNavigation configuration' => 'HookNavigation yapılandırma', - 'No articles currently' => 'Hiç makale yok', - 'Toggle navigation' => 'Navigasyonu değiştir', -]; diff --git a/local/local/modules/HookNavigation/I18n/en_US.php b/local/local/modules/HookNavigation/I18n/en_US.php deleted file mode 100644 index cfcc1fe2..00000000 --- a/local/local/modules/HookNavigation/I18n/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Folder in footer body', - 'Folder in footer bottom' => 'Folder in footer bottom', - 'Latest articles' => 'Latest articles', - 'Sorry, an error occurred: %err' => 'Sorry, an error occurred: %err', -); diff --git a/local/local/modules/HookNavigation/I18n/fr_FR.php b/local/local/modules/HookNavigation/I18n/fr_FR.php deleted file mode 100644 index 28b686ad..00000000 --- a/local/local/modules/HookNavigation/I18n/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Dossier du pied de page', - 'Folder in footer bottom' => 'Dossier sous le pied de page', - 'Latest articles' => 'Derniers articles', - 'Sorry, an error occurred: %err' => 'Désolé, une erreur est survenue: %err', -]; diff --git a/local/local/modules/HookNavigation/I18n/frontOffice/default/de_DE.php b/local/local/modules/HookNavigation/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index c32bbb2a..00000000 --- a/local/local/modules/HookNavigation/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Neueste Artikel', - 'No articles currently' => 'Zur Zeit keine Artikel', -]; diff --git a/local/local/modules/HookNavigation/I18n/frontOffice/default/en_US.php b/local/local/modules/HookNavigation/I18n/frontOffice/default/en_US.php deleted file mode 100644 index d63a3877..00000000 --- a/local/local/modules/HookNavigation/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Categories', - 'Home' => 'Home', - 'No articles currently' => 'No articles currently', - 'Toggle navigation' => 'Toggle navigation', -); diff --git a/local/local/modules/HookNavigation/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookNavigation/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 6d26f6f9..00000000 --- a/local/local/modules/HookNavigation/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Rubriques', - 'Home' => 'Accueil', - 'No articles currently' => 'Aucun article pour le moment', - 'Toggle navigation' => 'Basculer la navigation', -]; diff --git a/local/local/modules/HookNavigation/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookNavigation/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index c7165516..00000000 --- a/local/local/modules/HookNavigation/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Categorie', - 'Home' => 'Home', - 'No articles currently' => 'Attualmente non sono presenti articoli', - 'Toggle navigation' => 'Toggle navigation', -]; diff --git a/local/local/modules/HookNavigation/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookNavigation/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index a76a2b01..00000000 --- a/local/local/modules/HookNavigation/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Son Makaleler', - 'No articles currently' => 'Hiç makale yok', -]; diff --git a/local/local/modules/HookNavigation/I18n/it_IT.php b/local/local/modules/HookNavigation/I18n/it_IT.php deleted file mode 100644 index 8ae2a7f1..00000000 --- a/local/local/modules/HookNavigation/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Ultimi articoli', -]; diff --git a/local/local/modules/HookNavigation/LICENSE.txt b/local/local/modules/HookNavigation/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookNavigation/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/HookNavigation/Model/Config/Base/HookNavigationConfigValue.php b/local/local/modules/HookNavigation/Model/Config/Base/HookNavigationConfigValue.php deleted file mode 100644 index 925f6c5e..00000000 --- a/local/local/modules/HookNavigation/Model/Config/Base/HookNavigationConfigValue.php +++ /dev/null @@ -1,23 +0,0 @@ - - - -
-
- {intl l="Configure hooknavigation" d="hooknavigation.bo.default"} -
- -
-
- {if $success} -
- {intl l="Configuration correctly saved" d="hooknavigation.bo.default"} -
- {/if} - - {form name="hooknavigation.configuration"} - - {include "includes/inner-form-toolbar.html" hide_flags = 1 close_url={url path='/admin/modules'}} -
- - {form_field form=$form field="success_url"} - - {/form_field} - - {form_hidden_fields form=$form} - - {flash type="bodyConfig"} - {assign var='bodyConfig' value=$MESSAGE} - {/flash} - {flash type="bottomConfig"} - {assign var='bottomConfig' value=$MESSAGE} - {/flash} - - {form_field form=$form field="footer_body_folder_id"} -
- - - - - {if ! empty($label_attr.help)} - {$label_attr.help} - {/if} -
- {/form_field} - - {form_field form=$form field="footer_bottom_folder_id"} -
- - - - - {if ! empty($label_attr.help)} - {$label_attr.help} - {/if} -
- {/form_field} - - {include "includes/inner-form-toolbar.html" hide_flags = 1 close_url={url path='/admin/modules'} page_bottom = 1} - - {/form} -
-
-
- -{/block} - -{block name="javascript-initialization"} -{/block} \ No newline at end of file diff --git a/local/local/modules/HookNavigation/templates/frontOffice/default/main-footer-body.html b/local/local/modules/HookNavigation/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index 4834c61d..00000000 --- a/local/local/modules/HookNavigation/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,17 +0,0 @@ -{ifloop rel="blog.articles"} - -{/ifloop} -{elseloop rel="blog.articles"} -
    -
  • {intl l="No articles currently" d="hooknavigation.fo.default"}
  • -
-{/elseloop} \ No newline at end of file diff --git a/local/local/modules/HookNavigation/templates/frontOffice/default/main-footer-bottom.html b/local/local/modules/HookNavigation/templates/frontOffice/default/main-footer-bottom.html deleted file mode 100644 index 80b298ef..00000000 --- a/local/local/modules/HookNavigation/templates/frontOffice/default/main-footer-bottom.html +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/HookNavigation/templates/frontOffice/default/main-navbar-primary.html b/local/local/modules/HookNavigation/templates/frontOffice/default/main-navbar-primary.html deleted file mode 100644 index 62514618..00000000 --- a/local/local/modules/HookNavigation/templates/frontOffice/default/main-navbar-primary.html +++ /dev/null @@ -1,56 +0,0 @@ - - -{* classic navbar without dropdown - -*} \ No newline at end of file diff --git a/local/local/modules/HookNewsletter/Config/config.xml b/local/local/modules/HookNewsletter/Config/config.xml deleted file mode 100644 index 9d66a2fe..00000000 --- a/local/local/modules/HookNewsletter/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/local/modules/HookNewsletter/Config/module.xml b/local/local/modules/HookNewsletter/Config/module.xml deleted file mode 100644 index 19c5c441..00000000 --- a/local/local/modules/HookNewsletter/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookNewsletter\HookNewsletter - - Block Newsletter - - - Bloc Newsletter - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookNewsletter/Hook/FrontHook.php b/local/local/modules/HookNewsletter/Hook/FrontHook.php deleted file mode 100644 index 0d1b9688..00000000 --- a/local/local/modules/HookNewsletter/Hook/FrontHook.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -class FrontHook extends BaseHook { - - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $content = trim($this->render("main-footer-body.html")); - if ("" != $content){ - $event->add(array( - "id" => "newsletter-footer-body", - "class" => "newsletter", - "title" => $this->trans("Newsletter", array(), "hooknewsletter"), - "content" => $content - )); - } - } -} \ No newline at end of file diff --git a/local/local/modules/HookNewsletter/HookNewsletter.php b/local/local/modules/HookNewsletter/HookNewsletter.php deleted file mode 100644 index 887b4a07..00000000 --- a/local/local/modules/HookNewsletter/HookNewsletter.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Newsletter', -]; diff --git a/local/local/modules/HookNewsletter/I18n/en_US.php b/local/local/modules/HookNewsletter/I18n/en_US.php deleted file mode 100644 index eeea5e3d..00000000 --- a/local/local/modules/HookNewsletter/I18n/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Newsletter', -); diff --git a/local/local/modules/HookNewsletter/I18n/fr_FR.php b/local/local/modules/HookNewsletter/I18n/fr_FR.php deleted file mode 100644 index 67c6b531..00000000 --- a/local/local/modules/HookNewsletter/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Lettre d\'information', -]; diff --git a/local/local/modules/HookNewsletter/I18n/frontOffice/default/de_DE.php b/local/local/modules/HookNewsletter/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 9de40b6a..00000000 --- a/local/local/modules/HookNewsletter/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,8 +0,0 @@ - 'E-mail Adresse', - 'Sign up to receive our latest news.' => 'Abonnieren Sie unseren Newsletter.', - 'Subscribe' => 'Abonnieren', - 'Your email address' => 'Ihre E-Mail-Adresse', -]; diff --git a/local/local/modules/HookNewsletter/I18n/frontOffice/default/en_US.php b/local/local/modules/HookNewsletter/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 68f5056a..00000000 --- a/local/local/modules/HookNewsletter/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Email address', - 'Sign up to receive our latest news.' => 'Sign up to receive our latest news.', - 'Subscribe' => 'Subscribe', - 'Your email address' => 'Your email address', -); diff --git a/local/local/modules/HookNewsletter/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookNewsletter/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 17819d1f..00000000 --- a/local/local/modules/HookNewsletter/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Adresse e-mail', - 'Sign up to receive our latest news.' => 'Enregistrez vous pour recevoir nos dernières nouvelles.', - 'Subscribe' => 'Inscription', - 'Your email address' => 'Votre adresse email', -]; diff --git a/local/local/modules/HookNewsletter/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookNewsletter/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 563e28bd..00000000 --- a/local/local/modules/HookNewsletter/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Indirizzo email', - 'Subscribe' => 'Abbonati', -]; diff --git a/local/local/modules/HookNewsletter/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookNewsletter/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index dcc2918f..00000000 --- a/local/local/modules/HookNewsletter/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Eposta adresi', - 'Sign up to receive our latest news.' => 'En yeni haberleri almak için kaydolun.', - 'Subscribe' => 'Abone Ol', - 'Your email address' => 'E-posta adresiniz', -]; diff --git a/local/local/modules/HookNewsletter/I18n/it_IT.php b/local/local/modules/HookNewsletter/I18n/it_IT.php deleted file mode 100644 index 8e9757db..00000000 --- a/local/local/modules/HookNewsletter/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Newsletter', -]; diff --git a/local/local/modules/HookNewsletter/I18n/tr_TR.php b/local/local/modules/HookNewsletter/I18n/tr_TR.php deleted file mode 100644 index 6d9159e5..00000000 --- a/local/local/modules/HookNewsletter/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'E-Bülten', -]; diff --git a/local/local/modules/HookNewsletter/LICENSE.txt b/local/local/modules/HookNewsletter/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookNewsletter/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/HookNewsletter/composer.json b/local/local/modules/HookNewsletter/composer.json deleted file mode 100644 index 230b69d6..00000000 --- a/local/local/modules/HookNewsletter/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-newsletter-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookNewsletter" - } -} diff --git a/local/local/modules/HookNewsletter/templates/frontOffice/default/main-footer-body.html b/local/local/modules/HookNewsletter/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index f60e082e..00000000 --- a/local/local/modules/HookNewsletter/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,13 +0,0 @@ -

{intl l="Sign up to receive our latest news." d="hooknewsletter.fo.default"}

-{form name="thelia.front.newsletter"} -
-{form_hidden_fields} -{form_field field="email"} -
- - -
-{/form_field} - -
-{/form} \ No newline at end of file diff --git a/local/local/modules/HookProductsNew/Config/config.xml b/local/local/modules/HookProductsNew/Config/config.xml deleted file mode 100644 index 42df6539..00000000 --- a/local/local/modules/HookProductsNew/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/local/modules/HookProductsNew/Config/module.xml b/local/local/modules/HookProductsNew/Config/module.xml deleted file mode 100644 index 0926cf41..00000000 --- a/local/local/modules/HookProductsNew/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookProductsNew\HookProductsNew - - Block New Products - - - Bloc Nouveaux Produits - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookProductsNew/HookProductsNew.php b/local/local/modules/HookProductsNew/HookProductsNew.php deleted file mode 100644 index 16a92d08..00000000 --- a/local/local/modules/HookProductsNew/HookProductsNew.php +++ /dev/null @@ -1,20 +0,0 @@ - '+ Alle anzeigen', - 'Latest' => 'Neuigkeiten', -]; diff --git a/local/local/modules/HookProductsNew/I18n/frontOffice/default/en_US.php b/local/local/modules/HookProductsNew/I18n/frontOffice/default/en_US.php deleted file mode 100644 index bd7cd7c7..00000000 --- a/local/local/modules/HookProductsNew/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ View All', - 'Latest' => 'Latest', -); diff --git a/local/local/modules/HookProductsNew/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookProductsNew/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 297a7334..00000000 --- a/local/local/modules/HookProductsNew/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Tout voir', - 'Latest' => 'Nouveautés', -]; diff --git a/local/local/modules/HookProductsNew/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookProductsNew/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index f8284b5d..00000000 --- a/local/local/modules/HookProductsNew/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Mostra tutto', - 'Latest' => 'Ultimi', -]; diff --git a/local/local/modules/HookProductsNew/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookProductsNew/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 035d01d9..00000000 --- a/local/local/modules/HookProductsNew/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Hepsini gör', - 'Latest' => 'En son', -]; diff --git a/local/local/modules/HookProductsNew/LICENSE.txt b/local/local/modules/HookProductsNew/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookProductsNew/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/HookProductsNew/composer.json b/local/local/modules/HookProductsNew/composer.json deleted file mode 100644 index 37573922..00000000 --- a/local/local/modules/HookProductsNew/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-products-new-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookProductsNew" - } -} diff --git a/local/local/modules/HookProductsNew/templates/frontOffice/default/home-body.html b/local/local/modules/HookProductsNew/templates/frontOffice/default/home-body.html deleted file mode 100644 index 11f6004a..00000000 --- a/local/local/modules/HookProductsNew/templates/frontOffice/default/home-body.html +++ /dev/null @@ -1,59 +0,0 @@ -{ifloop rel="product_new"} -
-
-

{intl l="Latest" d="hookproductsnew.fo.default"} {intl l="+ View All" d="hookproductsnew.fo.default"}

-
-
- -
-
-{/ifloop} diff --git a/local/local/modules/HookProductsOffer/Config/config.xml b/local/local/modules/HookProductsOffer/Config/config.xml deleted file mode 100644 index 00e4ebb5..00000000 --- a/local/local/modules/HookProductsOffer/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/local/modules/HookProductsOffer/Config/module.xml b/local/local/modules/HookProductsOffer/Config/module.xml deleted file mode 100644 index 4fe1d504..00000000 --- a/local/local/modules/HookProductsOffer/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookProductsOffer\HookProductsOffer - - Block Promo Products - - - Bloc Produits en promo - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookProductsOffer/HookProductsOffer.php b/local/local/modules/HookProductsOffer/HookProductsOffer.php deleted file mode 100644 index 2b04e7f8..00000000 --- a/local/local/modules/HookProductsOffer/HookProductsOffer.php +++ /dev/null @@ -1,20 +0,0 @@ - '+ Alle sehen', - 'Offers' => 'Angebote', -]; diff --git a/local/local/modules/HookProductsOffer/I18n/frontOffice/default/en_US.php b/local/local/modules/HookProductsOffer/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 9b4a1c61..00000000 --- a/local/local/modules/HookProductsOffer/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ View All', - 'Offers' => 'Offers', -); diff --git a/local/local/modules/HookProductsOffer/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookProductsOffer/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 3dbf4a11..00000000 --- a/local/local/modules/HookProductsOffer/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Tout voir', - 'Offers' => 'Promotions', -]; diff --git a/local/local/modules/HookProductsOffer/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookProductsOffer/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index ba350c21..00000000 --- a/local/local/modules/HookProductsOffer/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Mostra tutto', - 'Offers' => 'Offerte', -]; diff --git a/local/local/modules/HookProductsOffer/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookProductsOffer/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index bc9c3e6b..00000000 --- a/local/local/modules/HookProductsOffer/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Hepsini gör', - 'Offers' => 'Teklifler', -]; diff --git a/local/local/modules/HookProductsOffer/LICENSE.txt b/local/local/modules/HookProductsOffer/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookProductsOffer/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/HookProductsOffer/composer.json b/local/local/modules/HookProductsOffer/composer.json deleted file mode 100644 index 8329abdb..00000000 --- a/local/local/modules/HookProductsOffer/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-products-offer-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookProductsOffer" - } -} diff --git a/local/local/modules/HookProductsOffer/templates/frontOffice/default/home-body.html b/local/local/modules/HookProductsOffer/templates/frontOffice/default/home-body.html deleted file mode 100644 index 462e775a..00000000 --- a/local/local/modules/HookProductsOffer/templates/frontOffice/default/home-body.html +++ /dev/null @@ -1,39 +0,0 @@ -{ifloop rel="current-sales"} -
- {loop name="current-sales" type="sale" limit="2"} -
- - -
-
    - {loop name="products_in_sale" type="product" limit="4" sale=$ID} - {include file="includes/single-product.html" colClass="col-md-3 col-sm-4" product_id=$ID hasBtn=false hasDescription=false width="218" height="146"} - {/loop} -
-
-
- {/loop} -
-{/ifloop} -{* Display "regular" promos, if any, only if we don't have active sales *} - -{elseloop rel="current-sales"} -{ifloop rel="product_promo"} -
-
-

{intl l="Offers" d="hookproductsoffer.fo.default"} {intl l="+ View All" d="hookproductsoffer.fo.default"}

-
- -
-
    - {loop name="product_promo" type="product" limit="4" promo="yes"} - {include file="includes/single-product.html" colClass="col-md-3 col-sm-4" product_id=$ID hasBtn=false hasDescription=false width="218" height="146"} - {/loop} -
-
-
-{/ifloop} -{/elseloop} diff --git a/local/local/modules/HookSearch/Config/config.xml b/local/local/modules/HookSearch/Config/config.xml deleted file mode 100644 index b5d60c60..00000000 --- a/local/local/modules/HookSearch/Config/config.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/local/local/modules/HookSearch/Config/module.xml b/local/local/modules/HookSearch/Config/module.xml deleted file mode 100644 index 3ffe27ce..00000000 --- a/local/local/modules/HookSearch/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookSearch\HookSearch - - Block Search - - - Bloc Recherche - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookSearch/HookSearch.php b/local/local/modules/HookSearch/HookSearch.php deleted file mode 100644 index bbe6d752..00000000 --- a/local/local/modules/HookSearch/HookSearch.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Mindestens 2 Zeichen.', - 'Search' => 'Suchen', - 'Search a product' => 'Ein Produkt suchen', - 'Search...' => 'Suchen ...', -]; diff --git a/local/local/modules/HookSearch/I18n/frontOffice/default/en_US.php b/local/local/modules/HookSearch/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 5d94b36c..00000000 --- a/local/local/modules/HookSearch/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Minimum 2 characters.', - 'Search' => 'Search', - 'Search a product' => 'Search a product', - 'Search...' => 'Search...', -); diff --git a/local/local/modules/HookSearch/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookSearch/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index c115fb42..00000000 --- a/local/local/modules/HookSearch/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - '2 caractères minimum.', - 'Search' => 'Recherche', - 'Search a product' => 'Rechercher un produit', - 'Search...' => 'Rechercher...', -]; diff --git a/local/local/modules/HookSearch/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookSearch/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 65ad8706..00000000 --- a/local/local/modules/HookSearch/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Minimo 2 caratteri.', - 'Search' => 'Ricerca', - 'Search a product' => 'Ricerca un prodotto', - 'Search...' => 'Ricerca...', -]; diff --git a/local/local/modules/HookSearch/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookSearch/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index e9d75686..00000000 --- a/local/local/modules/HookSearch/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'En az 2 karakter.', - 'Search' => 'Arama', - 'Search a product' => 'Ürün ara', - 'Search...' => 'Arama...', -]; diff --git a/local/local/modules/HookSearch/LICENSE.txt b/local/local/modules/HookSearch/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookSearch/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/HookSearch/composer.json b/local/local/modules/HookSearch/composer.json deleted file mode 100644 index 9dfdcaf1..00000000 --- a/local/local/modules/HookSearch/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-search-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookSearch" - } -} diff --git a/local/local/modules/HookSearch/templates/frontOffice/default/assets/css/styles.css b/local/local/modules/HookSearch/templates/frontOffice/default/assets/css/styles.css deleted file mode 100644 index 74b18399..00000000 --- a/local/local/modules/HookSearch/templates/frontOffice/default/assets/css/styles.css +++ /dev/null @@ -1,11 +0,0 @@ -.header-container .search-container label, -.header-container .search-container .btn-search>span { - position:absolute; - width:1px; - height:1px; - margin:-1px; - padding:0; - overflow:hidden; - clip:rect(0 0 0 0); - border:0 -} \ No newline at end of file diff --git a/local/local/modules/HookSearch/templates/frontOffice/default/main-navbar-primary.html b/local/local/modules/HookSearch/templates/frontOffice/default/main-navbar-primary.html deleted file mode 100644 index 31c6afd2..00000000 --- a/local/local/modules/HookSearch/templates/frontOffice/default/main-navbar-primary.html +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/HookSearch/templates/frontOffice/default/main-navbar-secondary.html b/local/local/modules/HookSearch/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index 40ba03a6..00000000 --- a/local/local/modules/HookSearch/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/HookSocial/Config/config.xml b/local/local/modules/HookSocial/Config/config.xml deleted file mode 100644 index f151f07c..00000000 --- a/local/local/modules/HookSocial/Config/config.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -
- - - - - - - - - - - - - diff --git a/local/local/modules/HookSocial/Config/module.xml b/local/local/modules/HookSocial/Config/module.xml deleted file mode 100644 index e2a69379..00000000 --- a/local/local/modules/HookSocial/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookSocial\HookSocial - - Block Social - - - Bloc Social - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookSocial/Config/routing.xml b/local/local/modules/HookSocial/Config/routing.xml deleted file mode 100644 index 769a2c4a..00000000 --- a/local/local/modules/HookSocial/Config/routing.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - HookSocial\Controller\Configuration::saveAction - - - diff --git a/local/local/modules/HookSocial/Controller/Configuration.php b/local/local/modules/HookSocial/Controller/Configuration.php deleted file mode 100644 index 9fef4bfa..00000000 --- a/local/local/modules/HookSocial/Controller/Configuration.php +++ /dev/null @@ -1,61 +0,0 @@ - - */ -class Configuration extends BaseAdminController -{ - public function saveAction() - { - - if (null !== $response = $this->checkAuth(array(AdminResources::MODULE), array('hooksocial'), AccessManager::UPDATE)) { - return $response; - } - - $form = new \HookSocial\Form\Configuration($this->getRequest()); - $resp = array( - "error" => 0, - "message" => "" - ); - $response=null; - - try { - $vform = $this->validateForm($form); - $data = $vform->getData(); - - foreach ($data as $name => $value) { - if (! $form->isTemplateDefinedHiddenFieldName($name)) { - ConfigQuery::write("hooksocial_" . $name, $value, false, true); - } - - Tlog::getInstance()->debug(sprintf("%s => %s", $name, $value)); - } - } catch (\Exception $e) { - $resp["error"] = 1; - $resp["message"] = $e->getMessage(); - } - - return JsonResponse::create($resp); - } -} \ No newline at end of file diff --git a/local/local/modules/HookSocial/Form/Configuration.php b/local/local/modules/HookSocial/Form/Configuration.php deleted file mode 100644 index 82d7418b..00000000 --- a/local/local/modules/HookSocial/Form/Configuration.php +++ /dev/null @@ -1,86 +0,0 @@ - - */ -class Configuration extends BaseForm { - - protected function buildForm() - { - $form = $this->formBuilder; - - $definitions = array( - array( - "id" => "twitter", - "label" => Translator::getInstance()->trans("Twitter username", array(), 'hooksocial') - ), - array( - "id" => "facebook", - "label" => Translator::getInstance()->trans("Facebook username", array(), 'hooksocial') - ), - array( - "id" => "google", - "label" => Translator::getInstance()->trans("Google + username", array(), 'hooksocial') - ), - array( - "id" => "instagram", - "label" => Translator::getInstance()->trans("Instagram username", array(), 'hooksocial') - ), - array( - "id" => "pinterest", - "label" => Translator::getInstance()->trans("Pinterest username", array(), 'hooksocial') - ), - array( - "id" => "youtube", - "label" => Translator::getInstance()->trans("Youtube URL", array(), 'hooksocial') - ), - array( - "id" => "rss", - "label" => Translator::getInstance()->trans("RSS URL", array(), 'hooksocial') - ) - ); - - foreach ($definitions as $field){ - $value = ConfigQuery::read("hooksocial_" . $field["id"], ""); - $form->add( - $field["id"], - "text", - array( - 'data' => $value, - 'label' => $field["label"], - 'label_attr' => array( - 'for' => $field["id"] - ), - ) - ); - } - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "hooksocial"; - } - - -} \ No newline at end of file diff --git a/local/local/modules/HookSocial/Hook/FrontHook.php b/local/local/modules/HookSocial/Hook/FrontHook.php deleted file mode 100644 index 770c2178..00000000 --- a/local/local/modules/HookSocial/Hook/FrontHook.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -class FrontHook extends BaseHook { - - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $content = trim($this->render("main-footer-body.html")); - if ("" != $content){ - $event->add(array( - "id" => "social-footer-body", - "class" => "social", - "title" => $this->trans("Follow us", array(), "hooksocial"), - "content" => $content - )); - } - } -} \ No newline at end of file diff --git a/local/local/modules/HookSocial/HookSocial.php b/local/local/modules/HookSocial/HookSocial.php deleted file mode 100644 index 030e814d..00000000 --- a/local/local/modules/HookSocial/HookSocial.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Ein Fehler ist aufgetreten', - 'Save' => 'Speichern', -]; diff --git a/local/local/modules/HookSocial/I18n/backOffice/default/en_US.php b/local/local/modules/HookSocial/I18n/backOffice/default/en_US.php deleted file mode 100644 index 4ce9a282..00000000 --- a/local/local/modules/HookSocial/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,7 +0,0 @@ - 'An error occured', - 'Edit your social accounts.' => 'Edit your social accounts.', - 'Save' => 'Save', -); diff --git a/local/local/modules/HookSocial/I18n/backOffice/default/fr_FR.php b/local/local/modules/HookSocial/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index e08beb6c..00000000 --- a/local/local/modules/HookSocial/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Une erreur est survenue', - 'Edit your social accounts.' => 'Modifier vos paramètres de réseaux sociaux.', - 'Save' => ' Enregistrer', -]; diff --git a/local/local/modules/HookSocial/I18n/backOffice/default/it_IT.php b/local/local/modules/HookSocial/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 3099d7ba..00000000 --- a/local/local/modules/HookSocial/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Modifica i tuoi account social.', - 'Save' => 'Salvare', -]; diff --git a/local/local/modules/HookSocial/I18n/backOffice/default/tr_TR.php b/local/local/modules/HookSocial/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index f4d5e02c..00000000 --- a/local/local/modules/HookSocial/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Bir hata meydana geldi', - 'Edit your social accounts.' => 'Sosyal hesaplarınızı düzenleyin.', - 'Save' => 'kaydet', -]; diff --git a/local/local/modules/HookSocial/I18n/de_DE.php b/local/local/modules/HookSocial/I18n/de_DE.php deleted file mode 100644 index e6c7fb51..00000000 --- a/local/local/modules/HookSocial/I18n/de_DE.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Facebook Benutzername', - 'Follow us' => 'Folgen Sie uns', - 'Google + username' => 'Google+ Benutzername', - 'Instagram username' => 'Instagram Benutzername', - 'Pinterest username' => 'Pinterest Benutzername', - 'RSS URL' => 'RSS-URL', - 'Twitter username' => 'Twitter Benutzername', - 'Youtube URL' => 'YouTube-URL', -]; diff --git a/local/local/modules/HookSocial/I18n/en_US.php b/local/local/modules/HookSocial/I18n/en_US.php deleted file mode 100644 index dfb8eff8..00000000 --- a/local/local/modules/HookSocial/I18n/en_US.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Facebook username', - 'Follow us' => 'Follow us', - 'Google + username' => 'Google + username', - 'Instagram username' => 'Instagram username', - 'Pinterest username' => 'Pinterest username', - 'RSS URL' => 'RSS URL', - 'Twitter username' => 'Twitter username', - 'Youtube URL' => 'Youtube URL', -); diff --git a/local/local/modules/HookSocial/I18n/fr_FR.php b/local/local/modules/HookSocial/I18n/fr_FR.php deleted file mode 100644 index 6f08ba6f..00000000 --- a/local/local/modules/HookSocial/I18n/fr_FR.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Nom d\'utilisateur Facebook', - 'Follow us' => 'Suivez-nous', - 'Google + username' => 'Nom d\'utilisateur Google +', - 'Instagram username' => 'Nom d\'utilisateur Instagram', - 'Pinterest username' => 'Nom d\'utilisateur Pinterest', - 'RSS URL' => 'URL du flux RSS', - 'Twitter username' => 'Nom d\'utilisateur Twitter', - 'Youtube URL' => 'URL Youtube', -]; diff --git a/local/local/modules/HookSocial/I18n/frontOffice/default/de_DE.php b/local/local/modules/HookSocial/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 938a9f4a..00000000 --- a/local/local/modules/HookSocial/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS-Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'YouTube', -]; diff --git a/local/local/modules/HookSocial/I18n/frontOffice/default/en_US.php b/local/local/modules/HookSocial/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 534a4d03..00000000 --- a/local/local/modules/HookSocial/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -); diff --git a/local/local/modules/HookSocial/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookSocial/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 7b64f075..00000000 --- a/local/local/modules/HookSocial/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'Flux RSS', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/local/modules/HookSocial/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookSocial/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 15298b70..00000000 --- a/local/local/modules/HookSocial/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google +', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/local/modules/HookSocial/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookSocial/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index b951272b..00000000 --- a/local/local/modules/HookSocial/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google +', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Beslemesi', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/local/modules/HookSocial/I18n/it_IT.php b/local/local/modules/HookSocial/I18n/it_IT.php deleted file mode 100644 index e1fd072a..00000000 --- a/local/local/modules/HookSocial/I18n/it_IT.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Nome utente Facebook', - 'Follow us' => 'Seguici', - 'Google + username' => 'Nome utente Google +', - 'Instagram username' => 'Nome utente Instagram', - 'Pinterest username' => 'Nome utente Pinterest', - 'RSS URL' => 'RSS URL', - 'Twitter username' => 'Nome utente Twitter', - 'Youtube URL' => 'Youtube URL', -]; diff --git a/local/local/modules/HookSocial/I18n/tr_TR.php b/local/local/modules/HookSocial/I18n/tr_TR.php deleted file mode 100644 index c5ea54f4..00000000 --- a/local/local/modules/HookSocial/I18n/tr_TR.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Facebook kullanıcı adı', - 'Follow us' => 'Bizi takip edin', - 'Google + username' => 'Google + kullanıcı adı', - 'Instagram username' => 'Google + kullanıcı adı', - 'Pinterest username' => 'Pinterest kullanıcı adı', - 'RSS URL' => 'RSS URL', - 'Twitter username' => 'Twitter kullanıcı adı', - 'Youtube URL' => 'YouTube URL', -]; diff --git a/local/local/modules/HookSocial/LICENSE.txt b/local/local/modules/HookSocial/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookSocial/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/HookSocial/composer.json b/local/local/modules/HookSocial/composer.json deleted file mode 100644 index 4a18288a..00000000 --- a/local/local/modules/HookSocial/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-social-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookSocial" - } -} diff --git a/local/local/modules/HookSocial/templates/backOffice/default/assets/js/module-configuration.js b/local/local/modules/HookSocial/templates/backOffice/default/assets/js/module-configuration.js deleted file mode 100644 index 5bf3dfcc..00000000 --- a/local/local/modules/HookSocial/templates/backOffice/default/assets/js/module-configuration.js +++ /dev/null @@ -1,28 +0,0 @@ -$(document).ready(function() { - $("#hooksocial-form").on("submit", function(e, data){ - e.preventDefault(); - var form = $(this); - - $('body').append(''); - - $.ajax({ - url: form.attr('action'), - type: form.attr('method'), - data: form.serialize() - }).done(function(){ - $("#loading-event").remove(); - }) - .success(function(data) { - if (data.error != 0) { - $("#loading-event").remove(); - $('#hooksocial-failed-body').html(data.message); - $("#hooksocial-failed").modal("show"); - } - }) - .fail(function(jqXHR, textStatus, errorThrown){ - $("#loading-event").remove(); - $('#hooksocial-failed-body').html(jqXHR.responseJSON.message); - $("#hooksocial-failed").modal("show"); - }); - }); -}); \ No newline at end of file diff --git a/local/local/modules/HookSocial/templates/backOffice/default/module_configuration.html b/local/local/modules/HookSocial/templates/backOffice/default/module_configuration.html deleted file mode 100644 index 61a48c13..00000000 --- a/local/local/modules/HookSocial/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -
-
- -
- {intl d='hooksocial.bo.default' l='Edit your social accounts.'} -
- -
-
- - {form name="hooksocial.configuration.form"} - - - {form_hidden_fields} - - {form_field field='twitter'} -
- - -
- {/form_field} - - {form_field field='facebook'} -
- - -
- {/form_field} - - {form_field field='google'} -
- - -
- {/form_field} - - {form_field field='instagram'} -
- - -
- {/form_field} - - {form_field field='pinterest'} -
- - -
- {/form_field} - - {form_field field='youtube'} -
- - -
- {/form_field} - - {form_field field='rss'} -
- - -
- {/form_field} - - - - {/form} - -
- -
- -
-
- - - - diff --git a/local/local/modules/HookSocial/templates/frontOffice/default/assets/css/styles.css b/local/local/modules/HookSocial/templates/frontOffice/default/assets/css/styles.css deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/modules/HookSocial/templates/frontOffice/default/main-footer-body.html b/local/local/modules/HookSocial/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index 095d7832..00000000 --- a/local/local/modules/HookSocial/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,86 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/TheliaMigrateCountry/Config/config.xml b/local/local/modules/TheliaMigrateCountry/Config/config.xml deleted file mode 100644 index 9a63718e..00000000 --- a/local/local/modules/TheliaMigrateCountry/Config/config.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - -
- - - - - - - - - - - - - - - - - - - diff --git a/local/local/modules/TheliaMigrateCountry/Config/routing.xml b/local/local/modules/TheliaMigrateCountry/Config/routing.xml deleted file mode 100644 index 111b7cb7..00000000 --- a/local/local/modules/TheliaMigrateCountry/Config/routing.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - TheliaMigrateCountry\Controller\MigrateController::migrateSystemAction - - - - TheliaMigrateCountry\Controller\MigrateController::doMigrateSystemAction - - - diff --git a/local/local/modules/TheliaMigrateCountry/Controller/MigrateController.php b/local/local/modules/TheliaMigrateCountry/Controller/MigrateController.php deleted file mode 100644 index 9b582845..00000000 --- a/local/local/modules/TheliaMigrateCountry/Controller/MigrateController.php +++ /dev/null @@ -1,175 +0,0 @@ - - */ -class MigrateController extends BaseAdminController -{ - protected $useFallbackTemplate = true; - - public function migrateSystemAction() - { - $response = $this->checkAuth(AdminResources::COUNTRY, array(), AccessManager::UPDATE); - if (null !== $response) { - return $response; - } - - // load country not migrated - $dataForm = []; - - $migratedCountries = json_decode(ConfigQuery::read('thelia_country_state_migration', '[]'), true); - - $countries = CountryQuery::create() - ->filterByHasStates(1) - ; - - /** @var Country $country */ - foreach ($countries as $country) { - $oldCountries = CountryQuery::create() - ->filterByHasStates(0) - ->filterByIsocode($country->getIsoCode()) - ->find() - ; - /** @var Country $oldCountry */ - foreach ($oldCountries as $oldCountry) { - if (!isset($migratedCountries[$oldCountry->getId()])) { - $dataForm[] = [ - 'migrate' => false, - 'country' => $oldCountry->getId(), - 'new_country' => $country->getId(), - 'new_state' => null - ]; - } - } - } - - // prepare form - $form = $this->createForm('thelia.admin.country.state.migration', 'form', ['migrations' => $dataForm]); - $this->getParserContext()->addForm($form); - - return $this->render( - 'countries-migrate', - [ - 'countriesMigrated' => $migratedCountries, - 'showForm' => count($dataForm) != 0 - ] - ); - } - - public function doMigrateSystemAction() - { - $response = $this->checkAuth(AdminResources::COUNTRY, array(), AccessManager::UPDATE); - if (null !== $response) { - return $response; - } - - $changeForm = $this->createForm('thelia.admin.country.state.migration', 'form'); - - try { - // Check the form against constraints violations - $form = $this->validateForm($changeForm, "POST"); - - // Get the form field values - $data = $form->getData(); - - foreach ($data['migrations'] as $migration) { - - if (!$migration['migrate']) { - continue; - } - - $changeEvent = new MigrateCountryEvent( - $migration['country'], - $migration['new_country'], - $migration['new_state'] - ); - - $this->dispatch(MigrateCountryEvents::MIGRATE_COUNTRY, $changeEvent); - - // memorize the migration - $migratedCountries = json_decode(ConfigQuery::read('thelia_country_state_migration', '[]'), true); - $migratedCountries[$changeEvent->getCountry()] = [ - 'country' => $changeEvent->getNewCountry(), - 'state' => $changeEvent->getNewState(), - 'counter' => $changeEvent->getCounter() - ]; - ConfigQuery::write('thelia_country_state_migration', json_encode($migratedCountries)); - - // message - $message = $this->getTranslator()->trans( - 'Country %id migrated to country (ID %country) and state (ID %state) (address: %address, tax rules: %tax, shipping zones: %zone)', - [ - '%id' => $changeEvent->getCountry(), - '%country' => $changeEvent->getNewCountry(), - '%state' => $changeEvent->getNewState(), - '%address' => $changeEvent->getCounter()[AddressTableMap::TABLE_NAME], - '%tax' => $changeEvent->getCounter()[TaxRuleCountryTableMap::TABLE_NAME], - '%zone' => $changeEvent->getCounter()[CountryAreaTableMap::TABLE_NAME] - ] - ); - - // add flash message - $this->getSession()->getFlashBag()->add('migrate', $message); - - // Log migration - $this->adminLogAppend( - AdminResources::COUNTRY, - AccessManager::UPDATE, - $message, - $changeEvent->getCountry() - ); - - } - - return $this->generateSuccessRedirect($changeForm); - } catch (FormValidationException $ex) { - // Form cannot be validated - $error_msg = $this->createStandardFormValidationErrorMessage($ex); - } - - if (false !== $error_msg) { - $this->setupFormErrorContext( - $this->getTranslator()->trans("Country migration"), - $error_msg, - $changeForm, - $ex - ); - - return $this->render( - 'countries-migrate', - [ - 'countriesMigrated' => $migratedCountries, - 'showForm' => true - ] - ); - } - } -} diff --git a/local/local/modules/TheliaMigrateCountry/EventListeners/MigrateCountryListener.php b/local/local/modules/TheliaMigrateCountry/EventListeners/MigrateCountryListener.php deleted file mode 100644 index 9271e117..00000000 --- a/local/local/modules/TheliaMigrateCountry/EventListeners/MigrateCountryListener.php +++ /dev/null @@ -1,155 +0,0 @@ - - */ -class MigrateCountryListener implements EventSubscriberInterface -{ - - public function migrateCountry(MigrateCountryEvent $event) - { - $counter = []; - - // update address - $counter[AddressTableMap::TABLE_NAME] = $this->migrateAddress($event); - - // tax rules - $counter[TaxRuleCountryTableMap::TABLE_NAME] = $this->migrateAddress($event); - - // shipping zone - $counter[CountryAreaTableMap::TABLE_NAME] = $this->migrateAddress($event); - - // if it succeeds we toggle the visibility of old country and new - $this->setCountriesVisibility($event); - - $event->setCounter($counter); - - } - - protected function migrateAddress(MigrateCountryEvent $event) - { - $con = Propel::getWriteConnection(AddressTableMap::DATABASE_NAME); - $con->beginTransaction(); - try { - $updatedRows = AddressQuery::create() - ->filterByCountryId($event->getCountry()) - ->update( - [ - 'CountryId' => $event->getNewCountry(), - 'StateId' => $event->getNewState(), - ] - ); - - $con->commit(); - - return $updatedRows; - } catch (PropelException $e) { - $con->rollback(); - throw $e; - } - } - - protected function migrateTaxRules(MigrateCountryEvent $event) - { - $con = Propel::getWriteConnection(TaxRuleCountryTableMap::DATABASE_NAME); - $con->beginTransaction(); - try { - $updatedRows = TaxRuleCountryQuery::create() - ->filterByCountryId($event->getCountry()) - ->update( - [ - 'CountryId' => $event->getNewCountry(), - 'StateId' => $event->getNewState(), - ] - ); - - $con->commit(); - - return $updatedRows; - } catch (PropelException $e) { - $con->rollback(); - throw $e; - } - } - - protected function migrateShippingZones(MigrateCountryEvent $event) - { - $con = Propel::getWriteConnection(CountryAreaTableMap::DATABASE_NAME); - $con->beginTransaction(); - try { - $updatedRows = CountryAreaQuery::create() - ->filterByCountryId($event->getCountry()) - ->update( - [ - 'CountryId' => $event->getNewCountry(), - 'StateId' => $event->getNewState(), - ] - ); - - $con->commit(); - - return $updatedRows; - } catch (PropelException $e) { - $con->rollback(); - throw $e; - } - } - - private function setCountriesVisibility(MigrateCountryEvent $event) - { - $oldCountry = CountryQuery::create()->findPk($event->getCountry()); - - if (null !== $oldCountry) { - $oldCountry - ->setVisible(0) - ->save() - ; - } - - $newCountry = CountryQuery::create()->findPk($event->getNewCountry()); - if (null !== $newCountry) { - $newCountry - ->setVisible(1) - ->save() - ; - } - } - - /** - * @inheritdoc - */ - public static function getSubscribedEvents() - { - return [ - MigrateCountryEvents::MIGRATE_COUNTRY => 'migrateCountry' - ]; - } -} diff --git a/local/local/modules/TheliaMigrateCountry/Events/MigrateCountryEvent.php b/local/local/modules/TheliaMigrateCountry/Events/MigrateCountryEvent.php deleted file mode 100644 index 53613b09..00000000 --- a/local/local/modules/TheliaMigrateCountry/Events/MigrateCountryEvent.php +++ /dev/null @@ -1,117 +0,0 @@ - - */ -class MigrateCountryEvent extends ActionEvent -{ - /** @var int Old country Id */ - protected $country; - - /** @var int New country Id */ - protected $newCountry; - - /** @var int New state Id */ - protected $newState; - - /** @var array counter */ - protected $counter = []; - - /** - * MigrateCountryEvent constructor. - * @param $country - * @param int $newCountry - * @param int $newState - */ - public function __construct($country, $newCountry, $newState) - { - $this->country = $country; - $this->newCountry = $newCountry; - $this->newState = $newState; - } - - /** - * @return mixed - */ - public function getCountry() - { - return $this->country; - } - - /** - * @param mixed $country - */ - public function setCountry($country) - { - $this->country = $country; - return $this; - } - - /** - * @return int - */ - public function getNewCountry() - { - return $this->newCountry; - } - - /** - * @param int $newCountry - */ - public function setNewCountry($newCountry) - { - $this->newCountry = $newCountry; - return $this; - } - - /** - * @return int - */ - public function getNewState() - { - return $this->newState; - } - - /** - * @param int $newState - */ - public function setNewState($newState) - { - $this->newState = $newState; - return $this; - } - - /** - * @return array - */ - public function getCounter() - { - return $this->counter; - } - - /** - * @param array $counter - */ - public function setCounter($counter) - { - $this->counter = $counter; - return $this; - } -} diff --git a/local/local/modules/TheliaMigrateCountry/Events/MigrateCountryEvents.php b/local/local/modules/TheliaMigrateCountry/Events/MigrateCountryEvents.php deleted file mode 100644 index 3a1cdcb0..00000000 --- a/local/local/modules/TheliaMigrateCountry/Events/MigrateCountryEvents.php +++ /dev/null @@ -1,24 +0,0 @@ - - */ -class MigrateCountryEvents -{ - const MIGRATE_COUNTRY = 'action.migrate-country.migrate'; -} diff --git a/local/local/modules/TheliaMigrateCountry/Form/CountryStateMigrationForm.php b/local/local/modules/TheliaMigrateCountry/Form/CountryStateMigrationForm.php deleted file mode 100644 index 9a352af9..00000000 --- a/local/local/modules/TheliaMigrateCountry/Form/CountryStateMigrationForm.php +++ /dev/null @@ -1,54 +0,0 @@ - - */ -class CountryStateMigrationForm extends BaseForm -{ - - /** - * @inheritdocs - */ - protected function buildForm() - { - $this->formBuilder - ->add( - 'migrations', - 'collection', - [ - "type" => "country_state_migration", - "allow_add" => true, - "required" => true, - "cascade_validation" => true, - "constraints" => array( - new Count(["min" => 1]), - ), - ] - ) - ; - } - - public function getName() - { - return "thelia_country_state_migration"; - } -} diff --git a/local/local/modules/TheliaMigrateCountry/Form/Type/CountryStateMigrationType.php b/local/local/modules/TheliaMigrateCountry/Form/Type/CountryStateMigrationType.php deleted file mode 100644 index acbf43fa..00000000 --- a/local/local/modules/TheliaMigrateCountry/Form/Type/CountryStateMigrationType.php +++ /dev/null @@ -1,114 +0,0 @@ - - */ -class CountryStateMigrationType extends AbstractTheliaType -{ - public function configureOptions(OptionsResolver $resolver) - { - $resolver->setDefaults( - [ - "cascade_validation" => true, - "constraints" => array( - new Callback([ - "methods" => array( - [$this, "checkStateId"], - ), - ]), - ), - ] - ); - } - - public function buildForm(FormBuilderInterface $builder, array $options) - { - $builder - ->add("migrate", "checkbox") - ->add( - "country", - "country_id" - ) - ->add( - "new_country", - "country_id" - ) - ->add( - "new_state", - "state_id", - [ - "constraints" => [], - ] - ) - ; - } - - public function checkStateId($value, ExecutionContextInterface $context) - { - - if ($value['migrate']) { - if (null !== $state = StateQuery::create()->findPk($value['new_state'])) { - if ($state->getCountryId() !== $value['new_country']) { - $context->addViolation( - Translator::getInstance()->trans( - "The state id '%id' does not belong to country id '%id_country'", - [ - '%id' => $value['new_state'], - '%id_country' => $value['new_country'] - ] - ) - ); - } - } else { - $context->addViolation( - Translator::getInstance()->trans( - "The state id '%id' doesn't exist", - ['%id' => $value['new_state']] - ) - ); - } - } - - } - - private function getRowData(ExecutionContextInterface $context) - { - $propertyPath = $context->getPropertyPath(); - $data = $this->getRowData($context); - - - } - - /** - * Returns the name of this type. - * - * @return string The name of this type - */ - public function getName() - { - return 'country_state_migration'; - } -} diff --git a/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/en_US.php b/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/en_US.php deleted file mode 100644 index 35906899..00000000 --- a/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,31 +0,0 @@ - ' country ', - ' migrated to ' => ' migrated to ', - ' state ' => ' state ', - 'After the migration the old country will be hide and the new one shown' => 'After the migration the old country will be hide and the new one shown', - 'All States' => 'All States', - 'All countries have been migrated' => 'All countries have been migrated', - 'Configuration' => 'Configuration', - 'Countries' => 'Countries', - 'Countries migrated' => 'Countries migrated', - 'Countries to migrate' => 'Countries to migrate', - 'Country ' => 'Country ', - 'Country migration' => 'Country migration', - 'For USA and Canada the states already exists as countries, so you have to select the right state.' => 'For USA and Canada the states already exists as countries, so you have to select the right state.', - 'For other countries, you should decide to use state or not. ' => 'For other countries, you should decide to use state or not. ', - 'Home' => 'Home', - 'If you want to use the new country with its states, you have to check the migrate checkbox and select a state.' => 'If you want to use the new country with its states, you have to check the migrate checkbox and select a state.', - 'In version 2.3 of Thelia, the system of country has changed.' => 'In version 2.3 of Thelia, the system of country has changed.', - 'Migrate ?' => 'Migrate ?', - 'Migrate countries' => 'Migrate countries', - 'New country' => 'New country', - 'Now, countries has been splited in countries and states.' => 'Now, countries has been splited in countries and states.', - 'Old country' => 'Old country', - 'State' => 'State', - 'The migration proccess is tricky and couldn\'t be automated.' => 'The migration proccess is tricky and couldn\'t be automated.', - 'The migration will change the address, tax rules and shipping zones to match with the new system.' => 'The migration will change the address, tax rules and shipping zones to match with the new system.', - 'The update proccess has created new countries (even if it exists) and associated states.' => 'The update proccess has created new countries (even if it exists) and associated states.', - 'We added a \'default\' state with a blank name as a fallback. Customer will have the possibility to change it later.' => 'We added a \'default\' state with a blank name as a fallback. Customer will have the possibility to change it later.', -); diff --git a/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/fr_FR.php b/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 70b7092b..00000000 --- a/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,31 +0,0 @@ - ' le pays', - ' migrated to ' => 'migré vers', - ' state ' => ' état ', - 'After the migration the old country will be hide and the new one shown' => 'Après la migration l\'ancien pays sera caché et le nouveau sera activé.', - 'All States' => 'Tous les états', - 'All countries have been migrated' => 'Tous les pays ont été migré', - 'Configuration' => 'Configuration', - 'Countries' => 'Pays', - 'Countries migrated' => 'Pays migrés', - 'Countries to migrate' => 'Pays à migrer.', - 'Country ' => 'Le pays', - 'Country migration' => 'Migration pays', - 'For USA and Canada the states already exists as countries, so you have to select the right state.' => 'Pour les USA et le Canada les états étaient déjà présents mais en tant que pays. Vous devrez donc choisir l\'état correspondant.', - 'For other countries, you should decide to use state or not. ' => 'Pour les autres pays, vous devrez choisir d\'utiliser ou pas les états.', - 'Home' => 'Accueil', - 'If you want to use the new country with its states, you have to check the migrate checkbox and select a state.' => 'Si vous voulez utiliser les nouveaux pays avec les états, vous devrez cocher la boîte à cocher \'migrer\' et sélectionner un état.', - 'In version 2.3 of Thelia, the system of country has changed.' => 'En version 2.3 de Thelia, le sysème des pays a changé.', - 'Migrate ?' => 'Migrer ?', - 'Migrate countries' => 'Migrer les pays', - 'New country' => 'Nouveau pays', - 'Now, countries has been splited in countries and states.' => 'Les pays ont été séparé en pays et états.', - 'Old country' => 'Ancien pays', - 'State' => 'État/région', - 'The migration proccess is tricky and couldn\'t be automated.' => 'Le processus de migration est compliqué et ne peux pas être automatisé', - 'The migration will change the address, tax rules and shipping zones to match with the new system.' => 'La migration changera les adresses, les règles de taxe et les zones de livraisons pour fonctionner avec le nouveau système.', - 'The update proccess has created new countries (even if it exists) and associated states.' => 'Le processus de mise à jour a créé de nouveaux pays (même si il existait) et associé des états.', - 'We added a \'default\' state with a blank name as a fallback. Customer will have the possibility to change it later.' => 'Nous avons ajouté un état par \'défaut\' avec un nom vide. Par la suite, le client pourra le changer.', -]; diff --git a/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/it_IT.php b/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 8aaa7bfe..00000000 --- a/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,19 +0,0 @@ - 'paese', - ' migrated to ' => ' migrato a ', - ' state ' => ' stato ', - 'All States' => 'Tutti gli Stati', - 'Configuration' => 'Impostazione', - 'Countries' => 'Paesi', - 'Country ' => 'Paese', - 'Country migration' => 'Migrazione del paese', - 'Home' => 'Home', - 'Migrate countries' => 'Migrazione dei paesi', - 'New country' => 'Nuovo paese', - 'Now, countries has been splited in countries and states.' => 'Ora, i paesi sono stati divisi in paesi e stati.', - 'State' => 'Stato', - 'The update proccess has created new countries (even if it exists) and associated states.' => 'Il processo di aggiornamento ha creato nuovi paesi (anche esistenti) e stati associati.', - 'We added a \'default\' state with a blank name as a fallback. Customer will have the possibility to change it later.' => 'Abbiamo aggiunto uno stato di \'default\' con un nome vuoto come fallback. Il cliente avrà la possibilità di modificarlo in seguito.', -]; diff --git a/local/local/modules/TheliaMigrateCountry/I18n/en_US.php b/local/local/modules/TheliaMigrateCountry/I18n/en_US.php deleted file mode 100644 index 582bf0dc..00000000 --- a/local/local/modules/TheliaMigrateCountry/I18n/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Country %id migrated to country (ID %country) and state (ID %state) (address: %address, tax rules: %tax, shipping zones: %zone)', - 'Country migration' => 'Country migration', - 'The state id \'%id\' does not belong to country id \'%id_country\'' => 'The state id \'%id\' does not belong to country id \'%id_country\'', - 'The state id \'%id\' doesn\'t exist' => 'The state id \'%id\' doesn\'t exist', -); diff --git a/local/local/modules/TheliaMigrateCountry/I18n/fr_FR.php b/local/local/modules/TheliaMigrateCountry/I18n/fr_FR.php deleted file mode 100644 index e36af4c7..00000000 --- a/local/local/modules/TheliaMigrateCountry/I18n/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Le pays %id migré vers le pays (ID %country) et état (ID %state) (adresses: %address, règles de taxe: %tax, zones de livraison: %zone)', - 'Country migration' => 'Migration pays', - 'The state id \'%id\' does not belong to country id \'%id_country\'' => 'L\'état id \'%id\' n\'appartient pas au pays id \'%id_country\'', - 'The state id \'%id\' doesn\'t exist' => 'L\'état id \'%id\' n\'existe pas', -]; diff --git a/local/local/modules/TheliaMigrateCountry/I18n/it_IT.php b/local/local/modules/TheliaMigrateCountry/I18n/it_IT.php deleted file mode 100644 index ebcb746f..00000000 --- a/local/local/modules/TheliaMigrateCountry/I18n/it_IT.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Paese %id migrato a paese (ID %country) e stato (ID %state) (Indirizzo: %address, norme fiscali: %tax, zone di spedizione: %zone)', - 'Country migration' => 'Migrazione del paese', - 'The state id \'%id\' does not belong to country id \'%id_country\'' => 'L\'id dello stato \'%id\' non appartiene a id paese \'%id_country\'', - 'The state id \'%id\' doesn\'t exist' => 'L\'id dello stato \'%id\' non esiste', -]; diff --git a/local/local/modules/TheliaMigrateCountry/LICENSE.txt b/local/local/modules/TheliaMigrateCountry/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/TheliaMigrateCountry/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/TheliaMigrateCountry/Readme.md b/local/local/modules/TheliaMigrateCountry/Readme.md deleted file mode 100644 index ae6aee51..00000000 --- a/local/local/modules/TheliaMigrateCountry/Readme.md +++ /dev/null @@ -1,18 +0,0 @@ -# Thelia Migrate Country - -This module allow you to migrate the system of country from Thelia version <= 2.2.* to version >= 2.3.0-alpha1. - -## Installation - -### Manually - -* Copy the module into ```/local/modules/``` directory and be sure that the name of the module is TheliaMigrateCountry. -* Activate it in your thelia administration panel - -### Composer - -Add it in your main thelia composer.json file - -``` -composer require your-vendor/thelia-migrate-country-module:~1.0 -``` diff --git a/local/local/modules/TheliaMigrateCountry/TheliaMigrateCountry.php b/local/local/modules/TheliaMigrateCountry/TheliaMigrateCountry.php deleted file mode 100644 index b8772687..00000000 --- a/local/local/modules/TheliaMigrateCountry/TheliaMigrateCountry.php +++ /dev/null @@ -1,28 +0,0 @@ - - {intl l='Migrate countries'} - - -{/loop} \ No newline at end of file diff --git a/local/local/modules/TheliaMigrateCountry/templates/backOffice/default/countries-migrate.html b/local/local/modules/TheliaMigrateCountry/templates/backOffice/default/countries-migrate.html deleted file mode 100644 index 79b068a9..00000000 --- a/local/local/modules/TheliaMigrateCountry/templates/backOffice/default/countries-migrate.html +++ /dev/null @@ -1,299 +0,0 @@ -{extends file="admin-layout.tpl"} - -{block name="no-return-functions"} - {$admin_current_location = 'configuration'} -{/block} - -{block name="page-title"}{intl l='Country migration'}{/block} - -{block name="check-resource"}admin.configuration.country{/block} -{block name="check-access"}update{/block} - -{block name="main-content"} -
- -
- - - -
-
-
- -
- {intl l='Migrate countries'} -
- -
-
- {intl l='In version 2.3 of Thelia, the system of country has changed.'} - {intl l='Now, countries has been split in countries and states.'}
- {intl l="The migration process is tricky and couldn't be automated."}

- {intl l="The update process has created new countries (even if it exists) and associated states."}
- {intl l="The migration will change the address, tax rules and shipping zones to match with the new system."}
- {intl l="After the migration the old country will be hide and the new one shown"}

- {intl l="For USA and Canada the states already exists as countries, so you have to select the right state."}
- {intl l="For other countries, you should decide to use state or not. "} - {intl l="If you want to use the new country with its states, you have to check the migrate checkbox and select a state."} - {intl l="We added a 'default' state with a blank name as a fallback. Customer will have the possibility to change it later."} -
-
- - {if $showForm} -
-
- - {form name="thelia.admin.country.state.migration"} - - {include - file = "includes/inner-form-toolbar.html" - hide_submit_buttons = false - - page_url = {url path="/admin/configuration/countries/migrate"} - close_url = {url path="/admin/configuration/countries"} - } - - {form_hidden_fields exclude="locale"} - - {render_form_field field='success_url' value={url path="/admin/configuration/countries/migrate"}} - - {if $form_error}
{$form_error_message}
{/if} - - {if {hasflash type="migrate"}} -
- {flash type="migrate"} -
{$MESSAGE}
- {/flash} -
- {/if} - -
- - - - - - - - - - - - {form_collection form=$form collection="migrations"} - {$newCountryId=0} - {$countryId=0} - - - - - - - {/form_collection} - -
- {intl l='Countries to migrate'} -
{intl l="Migrate ?"}{intl l="Old country"}{intl l="New country"}{intl l="State"}
- {form_collection_field form=$form row=$row field="migrate"} - - {/form_collection_field} - - {form_collection_field form=$form row=$row field="country"} - {$countryId={$value}} - - - {/form_collection_field} - - {form_collection_field form=$form row=$row field="new_country"} - {$newCountryId={$value}} - - - {/form_collection_field} - - {form_collection_field form=$form row=$row field="new_state"} - {$ref[]={$label_attr.for}} - - - {/form_collection_field} -
-
- - - {/form} - -
-
- {else} -
- {intl l="All countries have been migrated"} -
- {/if} - -
-
- - {if count($countriesMigrated) > 0 } -
-
-
- {intl l='Countries migrated'} -
-
- - {foreach $countriesMigrated as $country => $new} -
-
- {intl l='Country '} - {intl l=' migrated to '} - {intl l=' country '} - - {intl l=' state '} - -
-
- {/foreach} -
- {/if} - -
- -
-
-{/block} - -{block name="javascript-initialization"} - {javascripts file='assets/js/bootstrap-select/bootstrap-select.js'} - - {/javascripts} - - {javascripts file='assets/js/libs/underscore-min.js'} - - {/javascripts} - - - - -{/block} - -{block name="javascript-last-call"} - {hook name="wysiwyg.js" location="wysiwyg-country-edit-js" } -{/block} \ No newline at end of file diff --git a/local/local/modules/TheliaSmarty/CREDITS.md b/local/local/modules/TheliaSmarty/CREDITS.md deleted file mode 100644 index 3e89e239..00000000 --- a/local/local/modules/TheliaSmarty/CREDITS.md +++ /dev/null @@ -1,40 +0,0 @@ -# Credits - -## Yii framework - -TheliaSmarty module uses a function that comes from [Yii framework](http://www.yiiframework.com/) - -License : - -The Yii framework is free software. It is released under the terms of -the following BSD License. - -Copyright © 2008 by Yii Software LLC (http://www.yiisoft.com) -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - * Neither the name of Yii Software LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/local/local/modules/TheliaSmarty/Compiler/RegisterParserPluginPass.php b/local/local/modules/TheliaSmarty/Compiler/RegisterParserPluginPass.php deleted file mode 100644 index 76514fff..00000000 --- a/local/local/modules/TheliaSmarty/Compiler/RegisterParserPluginPass.php +++ /dev/null @@ -1,48 +0,0 @@ - - */ -class RegisterParserPluginPass implements CompilerPassInterface -{ - /** - * You can modify the container here before it is dumped to PHP code. - * - * @param ContainerBuilder $container - * - * @api - */ - public function process(ContainerBuilder $container) - { - if (!$container->hasDefinition("thelia.parser")) { - return; - } - - $smarty = $container->getDefinition("thelia.parser"); - - foreach ($container->findTaggedServiceIds("thelia.parser.register_plugin") as $id => $plugin) { - $smarty->addMethodCall("addPlugins", array(new Reference($id))); - } - - $smarty->addMethodCall("registerPlugins"); - } -} diff --git a/local/local/modules/TheliaSmarty/Config/config.xml b/local/local/modules/TheliaSmarty/Config/config.xml deleted file mode 100644 index 11f008fb..00000000 --- a/local/local/modules/TheliaSmarty/Config/config.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - %kernel.environment% - %kernel.debug% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %thelia.parser.loops% - - - - - - - - - - - - - - - - - - - - - - - - - - - - %thelia.parser.forms% - - - - - - - - - - %kernel.debug% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %kernel.debug% - - - - - - - - %kernel.debug% - - - - - diff --git a/local/local/modules/TheliaSmarty/Config/module.xml b/local/local/modules/TheliaSmarty/Config/module.xml deleted file mode 100644 index b6708542..00000000 --- a/local/local/modules/TheliaSmarty/Config/module.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - TheliaSmarty\TheliaSmarty - - Smarty template engine integration - - - Intégration du moteur de template Smarty - - - en_US - fr_FR - - 2.3.4 - - - Manuel Raynaud - manu@raynaud.io - - - classic - 2.2.0 - alpha - 1 - 1 - diff --git a/local/local/modules/TheliaSmarty/I18n/en_US.php b/local/local/modules/TheliaSmarty/I18n/en_US.php deleted file mode 100644 index 173d397f..00000000 --- a/local/local/modules/TheliaSmarty/I18n/en_US.php +++ /dev/null @@ -1,21 +0,0 @@ - '\'%type\' loop class should extends Thelia\Core\Template\Element\BaseLoop', - 'A loop named \'%name\' already exists in the current scope.' => 'A loop named \'%name\' already exists in the current scope.', - 'Loop type \'%type\' is not defined.' => 'Loop type \'%type\' is not defined.', - 'Missing \'name\' parameter in loop arguments' => 'Missing \'name\' parameter in loop arguments', - 'Missing \'rel\' parameter in forHook arguments' => 'Missing \'rel\' parameter in forHook arguments', - 'Missing \'rel\' parameter in ifhook/elsehook arguments' => 'Missing \'rel\' parameter in ifhook/elsehook arguments', - 'Missing \'rel\' parameter in ifloop/elseloop arguments' => 'Missing \'rel\' parameter in ifloop/elseloop arguments', - 'Missing \'rel\' parameter in page loop' => 'Missing \'rel\' parameter in page loop', - 'Missing \'type\' parameter in loop arguments' => 'Missing \'type\' parameter in loop arguments', - 'Missing \'type\' parameter in {count} loop arguments' => 'Missing \'type\' parameter in {count} loop arguments', - 'Missing \'type\' parameter in {hasflash} function arguments' => 'Missing \'type\' parameter in {hasflash} function arguments', - 'No pagination currently defined for loop name \'%name\'' => 'No pagination currently defined for loop name \'%name\'', - 'Please specify either \'path\' or \'file\' parameter in {url} function.' => 'Please specify either \'path\' or \'file\' parameter in {url} function.', - 'Related hook name \'%name\' is not defined.' => 'Related hook name \'%name\' is not defined.', - 'Related loop name \'%name\'\' is not defined.' => 'Related loop name \'%name\'\' is not defined.', - 'Template file %file cannot be found.' => 'Template file %file cannot be found.', - 'The loop name \'%name\' is already defined in %className class' => 'The loop name \'%name\' is already defined in %className class', -); diff --git a/local/local/modules/TheliaSmarty/I18n/fr_FR.php b/local/local/modules/TheliaSmarty/I18n/fr_FR.php deleted file mode 100644 index 67b516db..00000000 --- a/local/local/modules/TheliaSmarty/I18n/fr_FR.php +++ /dev/null @@ -1,21 +0,0 @@ - 'La loop "%type" doit étendre la class Thelia\Core\Template\Element\BaseLoop', - 'A loop named \'%name\' already exists in the current scope.' => 'une loop avec comme nom \'%name\' existe déjà dans le scope courant', - 'Loop type \'%type\' is not defined.' => 'La loop de type "%type" n\'est pas défini', - 'Missing \'name\' parameter in loop arguments' => 'Le paramètre \'name\' est manquant dans la liste des arguments', - 'Missing \'rel\' parameter in forHook arguments' => 'Le paramètre \'rel\' est manquant dans les arguments de forHook', - 'Missing \'rel\' parameter in ifhook/elsehook arguments' => 'Le paramètre \'rel\' est manquant des arguments ifhook/elsehook', - 'Missing \'rel\' parameter in ifloop/elseloop arguments' => 'Paramètre \'rel\' manquant dans la liste des arguments d\'une loop ifloop/elseloop', - 'Missing \'rel\' parameter in page loop' => 'Paramètre \'rel\' manquant dans la loop page', - 'Missing \'type\' parameter in loop arguments' => 'Le paramètre \'type\' est manquant dans la liste des arguments', - 'Missing \'type\' parameter in {count} loop arguments' => 'Le paramètre \'type\' dans la loop {count} est manquant', - 'Missing \'type\' parameter in {hasflash} function arguments' => 'Le paramètre \'type\' est manquant dans', - 'No pagination currently defined for loop name \'%name\'' => 'Il n\'y a pas de pagination définie pour la loop \'%name\'', - 'Please specify either \'path\' or \'file\' parameter in {url} function.' => 'Merci de spécifier le \'path\' ou le \'file\'.parameter dans la fonction {url}', - 'Related hook name \'%name\' is not defined.' => 'le hook ayat pour nom "%name" n\'est pas défini', - 'Related loop name \'%name\'\' is not defined.' => 'La loop ayant pour nom "%name" n\'est pas défini', - 'Template file %file cannot be found.' => 'Le fichier %s ne semble pas présent', - 'The loop name \'%name\' is already defined in %className class' => 'La loop "%name" est déjà définie dans la class %className', -]; diff --git a/local/local/modules/TheliaSmarty/I18n/tr_TR.php b/local/local/modules/TheliaSmarty/I18n/tr_TR.php deleted file mode 100644 index 05f834a0..00000000 --- a/local/local/modules/TheliaSmarty/I18n/tr_TR.php +++ /dev/null @@ -1,21 +0,0 @@ - '\'%type\' döngü sınıfını genişleten Thelia\Core\Template\Element\BaseLoop', - 'A loop named \'%name\' already exists in the current scope.' => '\'%name\' adlı bir döngü geçerli etki alanında bulunmaktadır.', - 'Loop type \'%type\' is not defined.' => 'Döngü türü \'%type\' tanımlı değil.', - 'Missing \'name\' parameter in loop arguments' => 'Döngü değişkenlerde \'ad\' parametresi eksik', - 'Missing \'rel\' parameter in forHook arguments' => 'ForHook değişkenlerde \'rel\' parametresi eksik', - 'Missing \'rel\' parameter in ifhook/elsehook arguments' => 'İfhook/elsehook bağımsız değişkenleri \'rel\' parametresi eksik', - 'Missing \'rel\' parameter in ifloop/elseloop arguments' => 'İfloop/elseloop bağımsız değişkenleri \'rel\' parametresi eksik', - 'Missing \'rel\' parameter in page loop' => 'Sayfa döngü içinde \'rel\' parametresi eksik', - 'Missing \'type\' parameter in loop arguments' => '\'Tür\' parametresinde döngü bağımsız değişkenleri eksik', - 'Missing \'type\' parameter in {count} loop arguments' => '{count} döngü değişkenlerde \'type\' parametresi eksik', - 'Missing \'type\' parameter in {hasflash} function arguments' => '\'Tür\' parametresinde {hasflash} fonksiyon bağımsız değişkenleri eksik', - 'No pagination currently defined for loop name \'%name\'' => 'Şu anda döngü adı \'%name\' tanımlı hiçbir pagination', - 'Please specify either \'path\' or \'file\' parameter in {url} function.' => 'Lütfen \'yol\' ya da \'dosya\' parametre {url} işlevinde belirtin.', - 'Related hook name \'%name\' is not defined.' => 'İlgili kanca adı \'%name\' tanımlı değil.', - 'Related loop name \'%name\'\' is not defined.' => 'İlgili kanca adı \'%name\' tanımlı değil.', - 'Template file %file cannot be found.' => 'Şablon dosyası %file bulunamadı.', - 'The loop name \'%name\' is already defined in %className class' => 'Döngü adı \'%name\' zaten %className sınıfında tanımlanmış', -]; diff --git a/local/local/modules/TheliaSmarty/LICENSE.txt b/local/local/modules/TheliaSmarty/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/TheliaSmarty/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/TheliaSmarty/Readme.md b/local/local/modules/TheliaSmarty/Readme.md deleted file mode 100644 index 96b8b328..00000000 --- a/local/local/modules/TheliaSmarty/Readme.md +++ /dev/null @@ -1,2 +0,0 @@ -## Smarty for Thelia - diff --git a/local/local/modules/TheliaSmarty/Template/AbstractSmartyPlugin.php b/local/local/modules/TheliaSmarty/Template/AbstractSmartyPlugin.php deleted file mode 100644 index 92c54a5c..00000000 --- a/local/local/modules/TheliaSmarty/Template/AbstractSmartyPlugin.php +++ /dev/null @@ -1,97 +0,0 @@ -getParam($params, $name, $default); - - if (is_string($value)) { - $value = strtolower(trim($value)); - } - return $value; - } - - /** - * Get a function or block parameter value - * - * @param array $params the parameters array - * @param mixed $name as single parameter name, or an array of names. In this case, the first defined parameter is returned. Use this for aliases (context, ctx, c) - * @param mixed $default the defaut value if parameter is missing (default to null) - * @return mixed the parameter value, or the default value if it is not found. - */ - public function getParam($params, $name, $default = null) - { - if (is_array($name)) { - foreach ($name as $test) { - if (isset($params[$test])) { - return $params[$test]; - } - } - } elseif (isset($params[$name])) { - return $params[$name]; - } - - return $default; - } - - /** - * @return SmartyPluginDescriptor[] an array of SmartyPluginDescriptor - */ - abstract public function getPluginDescriptors(); -} diff --git a/local/local/modules/TheliaSmarty/Template/Assets/SmartyAssetsManager.php b/local/local/modules/TheliaSmarty/Template/Assets/SmartyAssetsManager.php deleted file mode 100644 index 64ec3db6..00000000 --- a/local/local/modules/TheliaSmarty/Template/Assets/SmartyAssetsManager.php +++ /dev/null @@ -1,268 +0,0 @@ -web_root = $web_root; - $this->path_relative_to_web_root = $path_relative_to_web_root; - - $this->assetsManager = $assetsManager; - $this->assetsResolver = $assetsResolver; - } - - - /** - * Prepare current template assets - * - * @param string $assets_directory the assets directory in the template - * @param \Smarty_Internal_Template $smarty the smarty parser - */ - public function prepareAssets($assets_directory, \Smarty_Internal_Template $smarty) - { - // Be sure to use the proper path separator - if (DS != '/') { - $assets_directory = str_replace('/', DS, $assets_directory); - } - - // Set the current template assets directory - self::$assetsDirectory = $assets_directory; - - /** @var SmartyParser $smartyParser */ - $smartyParser = $smarty->smarty; - - $this->prepareTemplateAssets($smartyParser->getTemplateDefinition(), $assets_directory, $smartyParser); - } - - /** - * Prepare template assets - * - * @param TemplateDefinition $templateDefinition the template to process - * @param string $assets_directory the assets directory in the template - * @param \TheliaSmarty\Template\SmartyParser $smartyParser the current parser. - */ - protected function prepareTemplateAssets( - TemplateDefinition $templateDefinition, - $assets_directory, - SmartyParser $smartyParser - ) { - // Get the registered template directories for the current template path - $templateDirectories = $smartyParser->getTemplateDirectories($templateDefinition->getType()); - - if (isset($templateDirectories[$templateDefinition->getName()])) { - /* create assets foreach registered directory : main @ modules */ - foreach ($templateDirectories[$templateDefinition->getName()] as $key => $directory) { - // This is the assets directory in the template's tree - $tpl_path = $directory . DS . $assets_directory; - - $asset_dir_absolute_path = realpath($tpl_path); - - if (false !== $asset_dir_absolute_path) { - // If we're processing template assets (not module assets), - // we will use the $assets_directory as the assets parent dir. - if (SmartyParser::TEMPLATE_ASSETS_KEY == $key && ! null !== $assets_directory) { - $assetsWebDir = SmartyParser::TEMPLATE_ASSETS_KEY . DS . $assets_directory; - } else { - $assetsWebDir = $key; - } - - Tlog::getInstance()->addDebug( - "Preparing assets: source assets directory $asset_dir_absolute_path, " - . "web assets dir base: " . $this->web_root . $this->path_relative_to_web_root . ", " - . "template: ".$templateDefinition->getPath().", " - . "web asset key: $assetsWebDir (key=$key)" - ); - - $this->assetsManager->prepareAssets( - $asset_dir_absolute_path, - $this->web_root . $this->path_relative_to_web_root, - $templateDefinition->getPath(), - $key . DS . $assets_directory - ); - } - } - } - } - - /** - * Retrieve asset URL - * - * @param string $assetType js|css|image - * @param array $params Parameters - * - file File path in the default template - * - source module asset - * - filters filter to apply - * - debug - * - template if you want to load asset from another template - * @param \Smarty_Internal_Template $template Smarty Template - * - * @param bool $allowFilters if false, the 'filters' parameter is ignored - * @return string - */ - public function computeAssetUrl($assetType, $params, \Smarty_Internal_Template $template, $allowFilters = true) - { - $assetUrl = ""; - - $file = $params['file']; - - // The 'file' parameter is mandatory - if (empty($file)) { - throw new \InvalidArgumentException( - "The 'file' parameter is missing in an asset directive (type is '$assetType')" - ); - } - - $assetOrigin = isset($params['source']) ? $params['source'] : SmartyParser::TEMPLATE_ASSETS_KEY; - $filters = $allowFilters && isset($params['filters']) ? $params['filters'] : ''; - $debug = isset($params['debug']) ? trim(strtolower($params['debug'])) == 'true' : false; - $templateName = isset($params['template']) ? $params['template'] : false; - $failsafe = isset($params['failsafe']) ? $params['failsafe'] : false; - - Tlog::getInstance()->debug("Searching asset $file in source $assetOrigin, with template $templateName"); - - /** @var \TheliaSmarty\Template\SmartyParser $smartyParser */ - $smartyParser = $template->smarty; - - if (false !== $templateName) { - // We have to be sure that this external template assets have been properly prepared. - // We will assume the following: - // 1) this template have the same type as the current template, - // 2) this template assets have the same structure as the current template - // (which is in self::$assetsDirectory) - $currentTemplate = $smartyParser->getTemplateDefinition(); - - $templateDefinition = new TemplateDefinition( - $templateName, - $currentTemplate->getType() - ); - - /* Add this templates directory to the current list */ - $smartyParser->addTemplateDirectory( - $templateDefinition->getType(), - $templateDefinition->getName(), - THELIA_TEMPLATE_DIR . $templateDefinition->getPath(), - SmartyParser::TEMPLATE_ASSETS_KEY - ); - - $this->prepareTemplateAssets($templateDefinition, self::$assetsDirectory, $smartyParser); - } - - $assetSource = $this->assetsResolver->resolveAssetSourcePath($assetOrigin, $templateName, $file, $smartyParser); - - if (null !== $assetSource) { - $assetUrl = $this->assetsResolver->resolveAssetURL( - $assetOrigin, - $file, - $assetType, - $smartyParser, - $filters, - $debug, - self::$assetsDirectory, - $templateName - ); - } else { - // Log the problem - if ($failsafe) { - // The asset URL will be '' - Tlog::getInstance()->addWarning("Failed to find asset source file " . $params['file']); - } else { - throw new TheliaProcessException("Failed to find asset source file " . $params['file']); - } - } - - return $assetUrl; - } - - public function processSmartyPluginCall( - $assetType, - $params, - $content, - \Smarty_Internal_Template $template, - &$repeat - ) { - // Opening tag (first call only) - if ($repeat) { - $isfailsafe = false; - - $url = ''; - try { - // Check if we're in failsafe mode - if (isset($params['failsafe'])) { - $isfailsafe = $params['failsafe']; - } - - $url = $this->computeAssetUrl($assetType, $params, $template); - - if (empty($url)) { - $message = sprintf("Failed to get real path of asset %s without exception", $params['file']); - - Tlog::getInstance()->addWarning($message); - - // In debug mode, throw exception - if ($this->assetsManager->isDebugMode() && ! $isfailsafe) { - throw new TheliaProcessException($message); - } - } - } catch (\Exception $ex) { - Tlog::getInstance()->addWarning( - sprintf( - "Failed to get real path of asset %s with exception: %s", - $params['file'], - $ex->getMessage() - ) - ); - - // If we're in development mode, just retrow the exception, so that it will be displayed - if ($this->assetsManager->isDebugMode() && ! $isfailsafe) { - throw $ex; - } - } - $template->assign('asset_url', $url); - } elseif (isset($content)) { - return $content; - } - - return null; - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Assets/SmartyAssetsResolver.php b/local/local/modules/TheliaSmarty/Template/Assets/SmartyAssetsResolver.php deleted file mode 100644 index 34c248c5..00000000 --- a/local/local/modules/TheliaSmarty/Template/Assets/SmartyAssetsResolver.php +++ /dev/null @@ -1,223 +0,0 @@ -path_relative_to_web_root = ConfigQuery::read('asset_dir_from_web_root', 'assets'); - - $this->assetsManager = $assetsManager; - } - - /** - * Generate an asset URL - * - * @param string $source a module code, or SmartyParser::TEMPLATE_ASSETS_KEY - * @param string $file the file path, relative to a template base directory (e.g. assets/css/style.css) - * @param string $type the asset type, either 'css' or ' - * @param ParserInterface $parserInterface the current template parser - * @param array $filters the filters to pass to the asset manager - * @param bool $debug the debug mode - * @param string $declaredAssetsDirectory if not null, this is the assets directory declared in the {declare_assets} function of a template. - * @param mixed $sourceTemplateName A template name, of false. If provided, the assets will be searched in this template directory instead of the current one. - * @return mixed - */ - public function resolveAssetURL($source, $file, $type, ParserInterface $parserInterface, $filters = [], $debug = false, $declaredAssetsDirectory = null, $sourceTemplateName = false) - { - $url = ""; - - // Normalize path separator - $file = $this->fixPathSeparator($file); - - $fileRoot = $this->resolveAssetSourcePath($source, $sourceTemplateName, $file, $parserInterface); - - if (null !== $fileRoot) { - $templateDefinition = $parserInterface->getTemplateDefinition($sourceTemplateName); - - $url = $this->assetsManager->processAsset( - $fileRoot . DS . $file, - $fileRoot, - THELIA_WEB_DIR . $this->path_relative_to_web_root, - $templateDefinition->getPath(), - $source, // $this->getBaseWebAssetDirectory($source, $declaredAssetsDirectory), - URL::getInstance()->absoluteUrl($this->path_relative_to_web_root, null, URL::PATH_TO_FILE /* path only */), - $type, - $filters, - $debug - ); - } else { - Tlog::getInstance()->addError("Asset $file (type $type) was not found."); - } - - return $url; - } - - - /** - * Return an asset source file path. - * - * A system of fallback enables file overriding. It will look for the template : - * - in the current template in directory /modules/{module code}/ - * - in the module in the current template if it exists - * - in the module in the default template - * - * @param string $source a module code, or or SmartyParser::TEMPLATE_ASSETS_KEY - * @param string $templateName a template name, or false to use the current template - * @param string $fileName the filename - * @param ParserInterface $parserInterface the current template parser - * - * @return mixed the path to directory containing the file, or null if the file doesn't exists. - */ - public function resolveAssetSourcePath($source, $templateName, $fileName, ParserInterface $parserInterface) - { - $filePath = null; - - $templateDefinition = $parserInterface->getTemplateDefinition(false); - - // Get all possible directories to search - $paths = $this->getPossibleAssetSources( - $parserInterface->getTemplateDirectories($templateDefinition->getType()), - $templateName ?: $templateDefinition->getName(), - $source - ); - - // Normalize path separator if required (e.g., / becomes \ on windows) - $fileName = $this->fixPathSeparator($fileName); - - /* Absolute paths are not allowed. This may be a mistake, such as '/assets/...' instead of 'assets/...'. Forgive it. */ - $fileName = ltrim($fileName, DS); - - /* Navigating in the server's directory tree is not allowed :) */ - if (preg_match('!\.\.\\'.DS.'!', $fileName)) { - // This time, we will not forgive. - throw new \InvalidArgumentException("Relative paths are not allowed in assets names."); - } - - // Find the first occurrence of the file in the directories lists - foreach ($paths as $path) { - if ($this->filesExist($path, $fileName)) { - // Got it ! - $filePath = $path; - break; - } - } - - return $filePath; - } - - - /** - * Be sure that the pat separator of a pathname is always the platform path separator. - * - * @param string $path the iput path - * @return string the fixed path - */ - protected function fixPathSeparator($path) - { - if (DS != '/') { - $path = str_replace('/', DS, $path); - } - - return $path; - } - - /** - * Check if a file(s) exists in a directory - * - * @param string $dir the directory path - * @param string $file the file path. It can contain wildcard. eg: /path/*.css - * @return bool true if file(s) - */ - protected function filesExist($dir, $file) - { - if (!file_exists($dir)) { - return false; - } - - $full_path = rtrim($dir, DS) . DS . ltrim($file, DS); - - try { - $files = glob($full_path); - - $files_found = ! empty($files); - } catch (\Exception $ex) { - Tlog::getInstance()->addError($ex->getMessage()); - - $files_found = false; - } - - return $files_found; - } - - /** - * Get all possible directories from which the asset can be found. - * It returns an array of directories ordered by priority. - * - * @param array $directories all directories source available for the template type - * @param string $template the name of the template - * @param string $source the module code or SmartyParser::TEMPLATE_ASSETS_KEY - * @return array possible directories - */ - protected function getPossibleAssetSources($directories, $template, $source) - { - $paths = []; - - if (SmartyParser::TEMPLATE_ASSETS_KEY !== $source) { - // We're in a module. - - // First look into the current template in the right scope : frontOffice, backOffice, ... - // template should be overridden in : {template_path}/modules/{module_code}/{template_name} - if (isset($directories[$template][SmartyParser::TEMPLATE_ASSETS_KEY])) { - $paths[] = - $directories[$template][SmartyParser::TEMPLATE_ASSETS_KEY] - . DS - . self::MODULE_OVERRIDE_DIRECTORY_NAME . DS - . $source; - } - - // then in the implementation for the current template used in the module directory - if (isset($directories[$template][$source])) { - $paths[] = $directories[$template][$source]; - } - - // then in the default theme in the module itself - if (isset($directories[self::DEFAULT_TEMPLATE_NAME][$source])) { - $paths[] = $directories[self::DEFAULT_TEMPLATE_NAME][$source]; - } - } else { - $paths[] = $directories[$template][SmartyParser::TEMPLATE_ASSETS_KEY]; - } - - return $paths; - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Exception/SmartyPluginException.php b/local/local/modules/TheliaSmarty/Template/Exception/SmartyPluginException.php deleted file mode 100644 index 41119ecf..00000000 --- a/local/local/modules/TheliaSmarty/Template/Exception/SmartyPluginException.php +++ /dev/null @@ -1,22 +0,0 @@ - - */ -class SmartyPluginException extends \SmartyException -{ -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/AdminUtilities.php b/local/local/modules/TheliaSmarty/Template/Plugins/AdminUtilities.php deleted file mode 100644 index ed7b5125..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/AdminUtilities.php +++ /dev/null @@ -1,172 +0,0 @@ - - */ -class AdminUtilities extends AbstractSmartyPlugin -{ - private $securityContext; - private $templateHelper; - - public function __construct(SecurityContext $securityContext, TemplateHelperInterface $templateHelper) - { - $this->securityContext = $securityContext; - $this->templateHelper = $templateHelper; - } - - protected function fetchSnippet($smarty, $templateName, $variablesArray) - { - $data = ''; - - $snippet_path = sprintf( - '%s/%s/%s.html', - THELIA_TEMPLATE_DIR, - $this->templateHelper->getActiveAdminTemplate()->getPath(), - $templateName - ); - - if (false !== $snippet_content = file_get_contents($snippet_path)) { - $smarty->assign($variablesArray); - - $data = $smarty->fetch(sprintf('string:%s', $snippet_content)); - } - - return $data; - } - - public function optionOffsetGenerator($params, &$smarty) - { - $label = $this->getParam($params, 'label', null); - - if (null !== $level = $this->getParam($params, [ 'l', 'level'], null)) { - $label = str_repeat(' ', 4 * $level) . $label; - } - - return $label; - } - - public function generatePositionChangeBlock($params, &$smarty) - { - // The required permissions - $resource = $this->getParam($params, 'resource'); - $module = $this->getParam($params, 'module'); - $access = $this->getParam($params, 'access'); - - // The base position change path - $path = $this->getParam($params, 'path'); - - // The URL parameter the object ID is assigned - $url_parameter = $this->getParam($params, 'url_parameter'); - - // The current object position - $position = $this->getParam($params, 'position'); - - // The object ID - $id = $this->getParam($params, 'id'); - - // The in place dition class - $in_place_edit_class = $this->getParam($params, 'in_place_edit_class'); - - /* - - {$POSITION} - - */ - - if ($this->securityContext->isGranted( - array("ADMIN"), - $resource === null ? array() : array($resource), - $module === null ? array() : array($module), - array($access) - ) - ) { - return $this->fetchSnippet($smarty, 'includes/admin-utilities-position-block', array( - 'admin_utilities_go_up_url' => URL::getInstance()->absoluteUrl($path, array('mode' => 'up', $url_parameter => $id)), - 'admin_utilities_in_place_edit_class' => $in_place_edit_class, - 'admin_utilities_object_id' => $id, - 'admin_utilities_current_position' => $position, - 'admin_utilities_go_down_url' => URL::getInstance()->absoluteUrl($path, array('mode' => 'down', $url_parameter => $id)) - )); - } else { - return $position; - } - } - - /** - * Generates the link of a sortable column header - * - * @param array $params - * @param unknown $smarty - * @return string no text is returned. - */ - public function generateSortableColumnHeader($params, &$smarty) - { - // The current order of the table - $current_order = $this->getParam($params, 'current_order'); - - // The column ascending order - $order = $this->getParam($params, 'order'); - - // The column descending order label - $reverse_order = $this->getParam($params, 'reverse_order'); - - // The order change path - $path = $this->getParam($params, 'path'); - - // The column label - $label = $this->getParam($params, 'label'); - - // The request parameter - $request_parameter_name = $this->getParam($params, 'request_parameter_name', 'order'); - - if ($current_order == $order) { - $sort_direction = 'up'; - $order_change = $reverse_order; - } elseif ($current_order == $reverse_order) { - $sort_direction = 'down'; - $order_change = $order; - } else { - $order_change = $order; - } - - return $this->fetchSnippet($smarty, 'includes/admin-utilities-sortable-column-header', array( - 'admin_utilities_sort_direction' => $sort_direction, - 'admin_utilities_sorting_url' => URL::getInstance()->absoluteUrl($path, array($request_parameter_name => $order_change)), - 'admin_utilities_header_text' => $label - )); - } - - /** - * Define the various smarty plugins handled by this class - * - * @return array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'admin_sortable_header', $this, 'generateSortableColumnHeader'), - new SmartyPluginDescriptor('function', 'admin_position_block', $this, 'generatePositionChangeBlock'), - new SmartyPluginDescriptor('function', 'option_offset', $this, 'optionOffsetGenerator'), - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Assets.php b/local/local/modules/TheliaSmarty/Template/Plugins/Assets.php deleted file mode 100644 index a64578dd..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Assets.php +++ /dev/null @@ -1,106 +0,0 @@ -assetManager = new SmartyAssetsManager( - $assetsManager, - $assetsResolver, - THELIA_WEB_DIR, - $asset_dir_from_web_root - ); - } - - public function declareAssets($params, \Smarty_Internal_Template $template) - { - if (false !== $asset_dir = $this->getParam($params, 'directory', false)) { - $this->assetManager->prepareAssets($asset_dir, $template); - - return ''; - } - - throw new \InvalidArgumentException('declare_assets: parameter "directory" is required'); - } - - public function blockJavascripts($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - return $this->assetManager->processSmartyPluginCall('js', $params, $content, $template, $repeat); - } - - public function blockImages($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - return $this - ->assetManager - ->processSmartyPluginCall(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $content, $template, $repeat); - } - - public function blockStylesheets($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - return $this->assetManager->processSmartyPluginCall('css', $params, $content, $template, $repeat); - } - - public function functionImage($params, \Smarty_Internal_Template $template) - { - return $this->assetManager->computeAssetUrl(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $template); - } - - public function functionAsset($params, \Smarty_Internal_Template $template) - { - return $this->assetManager->computeAssetUrl(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $template, false); - } - - public function functionJavascript($params, \Smarty_Internal_Template $template) - { - return $this->assetManager->computeAssetUrl(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $template); - } - - public function functionStylesheet($params, \Smarty_Internal_Template $template) - { - return $this->assetManager->computeAssetUrl('css', $params, $template); - } - - /** - * Define the various smarty plugins hendled by this class - * - * @return array an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('block', 'stylesheets', $this, 'blockStylesheets'), - new SmartyPluginDescriptor('block', 'javascripts', $this, 'blockJavascripts'), - new SmartyPluginDescriptor('block', 'images', $this, 'blockImages'), - - new SmartyPluginDescriptor('function', 'asset', $this, 'functionAsset'), - new SmartyPluginDescriptor('function', 'image', $this, 'functionImage'), - new SmartyPluginDescriptor('function', 'javascript', $this, 'functionJavascript'), - new SmartyPluginDescriptor('function', 'stylesheet', $this, 'functionStylesheet'), - - new SmartyPluginDescriptor('function', 'declare_assets', $this, 'declareAssets') - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Cache.php b/local/local/modules/TheliaSmarty/Template/Plugins/Cache.php deleted file mode 100644 index 9a01272b..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Cache.php +++ /dev/null @@ -1,124 +0,0 @@ - - */ -class Cache extends AbstractSmartyPlugin -{ - /** @var AdapterInterface */ - protected $adapter; - - /** @var RequestStack */ - protected $requestStack; - - /** @var bool */ - protected $debug; - - /** - * Cache constructor. - * @param AdapterInterface $esiFragmentRenderer - * @param RequestStack $requestStack - * @param bool $debug - */ - public function __construct(AdapterInterface $esiFragmentRenderer, RequestStack $requestStack, $debug) - { - $this->adapter = $esiFragmentRenderer; - $this->requestStack = $requestStack; - $this->debug = $debug; - } - - public function cache(array $params, $content, $template, &$repeat) - { - $key = $this->getParam($params, 'key'); - if (null === $key || empty($key)) { - throw new \InvalidArgumentException( - "Missing 'key' parameter in cache arguments" - ); - } - - $ttl = (int) $this->getParam($params, 'ttl'); - if (null === $ttl) { - throw new \InvalidArgumentException( - "Missing 'ttl' parameter in cache arguments" - ); - } - - if ($this->debug || $ttl < 1) { - if (null !== $content) { - $repeat = false; - return $content; - } - return null; - } - - /** @var CacheItemInterface $cacheItem */ - $cacheItem = $this->adapter->getItem( - $this->generateKey($params) - ); - - if ($cacheItem->isHit()) { - $repeat = false; - return $cacheItem->get(); - } - - if ($content !== null) { - $cacheItem - ->expiresAfter((int) $params['ttl']) - ->set($content); - - $this->adapter->save($cacheItem); - $repeat = false; - return $cacheItem->get(); - } - } - - /** - * @param array $params - * @return string - */ - protected function generateKey(array $params) - { - /** @var Session $session */ - if (null !== $session = $this->requestStack->getCurrentRequest()->getSession()) { - if (!isset($params['lang'])) { - $params['lang'] = $session->getLang(true)->getId(); - } - if (!isset($params['currency'])) { - $params['currency'] = $session->getCurrency(true)->getId(); - } - } - - return 'smarty_cache_' . md5(json_encode($params)); - } - - /** - * @return array an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('block', 'cache', $this, 'cache') - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/CartPostage.php b/local/local/modules/TheliaSmarty/Template/Plugins/CartPostage.php deleted file mode 100644 index b760060d..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/CartPostage.php +++ /dev/null @@ -1,251 +0,0 @@ -container = $container; - - $this->requestStack = $container->get('request_stack'); - - $this->request = $this->getCurrentRequest(); - - $this->dispatcher = $container->get('event_dispatcher'); - } - - /** - * Get postage amount for cart - * - * @param array $params Block parameters - * @param mixed $content Block content - * @param \Smarty_Internal_Template $template Template - * @param bool $repeat Control how many times - * the block is displayed - * - * @return mixed - */ - public function postage($params, $content, $template, &$repeat) - { - if (!$repeat) { - return (null !== $this->countryId) ? $content : ""; - } - - $customer = $this->getCurrentRequest()->getSession()->getCustomerUser(); - /** @var Address $address */ - /** @var Country $country */ - list($address, $country, $state) = $this->getDeliveryInformation($customer); - - if (null !== $country) { - $this->countryId = $country->getId(); - // try to get the cheapest delivery for this country - $this->getCheapestDelivery($address, $country); - } - - $template->assign('country_id', $this->countryId); - $template->assign('delivery_id', $this->deliveryId); - $template->assign('postage', $this->postage ?: 0.0); - $template->assign('postage_tax', $this->postageTax ?: 0.0); - $template->assign('postage_title', $this->postageTaxRuleTitle ?: 0.0); - $template->assign('is_customizable', $this->isCustomizable); - } - - /** - * Retrieve the delivery country for a customer - * - * The rules : - * - the country of the delivery address of the customer related to the - * cart if it exists - * - the country saved in cookie if customer have changed - * the default country - * - the default country for the shop if it exists - * - * - * @param \Thelia\Model\Customer $customer - * @return \Thelia\Model\Country - */ - protected function getDeliveryInformation(Customer $customer = null) - { - $address = null; - // get the selected delivery address - if (null !== $addressId = $this->getCurrentRequest()->getSession()->getOrder()->getChoosenDeliveryAddress()) { - if (null !== $address = AddressQuery::create()->findPk($addressId)) { - $this->isCustomizable = false; - return [$address, $address->getCountry(), null]; - } - } - - // get country from customer addresses - if (null !== $customer) { - $address = AddressQuery::create() - ->filterByCustomerId($customer->getId()) - ->filterByIsDefault(1) - ->findOne() - ; - - if (null !== $address) { - $this->isCustomizable = false; - - return [$address, $address->getCountry(), null]; - } - } - - // get country from cookie - $cookieName = ConfigQuery::read('front_cart_country_cookie_name', 'fcccn'); - if ($this->getCurrentRequest()->cookies->has($cookieName)) { - $cookieVal = $this->getCurrentRequest()->cookies->getInt($cookieName, 0); - if (0 !== $cookieVal) { - $country = CountryQuery::create()->findPk($cookieVal); - if (null !== $country) { - return [null, $country, null]; - } - } - } - - // get default country for store. - try { - $country = Country::getDefaultCountry(); - - return [null, $country, null]; - } catch (\LogicException $e) { - ; - } - - return [null, null, null]; - } - - /** - * Retrieve the cheapest delivery for country - * - * @param Address $address - * @param \Thelia\Model\Country $country - * @return DeliveryModuleInterface - */ - protected function getCheapestDelivery(Address $address = null, Country $country = null) - { - $cart = $this->getCurrentRequest()->getSession()->getSessionCart(); - - $deliveryModules = ModuleQuery::create() - ->filterByActivate(1) - ->filterByType(BaseModule::DELIVERY_MODULE_TYPE, Criteria::EQUAL) - ->find() - ; - - /** @var \Thelia\Model\Module $deliveryModule */ - foreach ($deliveryModules as $deliveryModule) { - $moduleInstance = $deliveryModule->getDeliveryModuleInstance($this->container); - - try { - $deliveryPostageEvent = new DeliveryPostageEvent($moduleInstance, $cart, $address, $country, $state); - $this->dispatcher->dispatch( - TheliaEvents::MODULE_DELIVERY_GET_POSTAGE, - $deliveryPostageEvent - ); - - if ($deliveryPostageEvent->isValidModule()) { - $postage = $deliveryPostageEvent->getPostage(); - - if (null === $this->postage || $this->postage > $postage->getAmount()) { - $this->postage = $postage->getAmount(); - $this->postageTax = $postage->getAmountTax(); - $this->postageTaxRuleTitle = $postage->getTaxRuleTitle(); - $this->deliveryId = $deliveryModule->getId(); - } - } - } catch (DeliveryException $ex) { - // Module is not available - } - } - } - - /** - * Defines the various smarty plugins handled by this class - * - * @return \TheliaSmarty\Template\SmartyPluginDescriptor[] smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('block', 'postage', $this, 'postage') - ); - } - - /** - * @return null|Request - */ - protected function getCurrentRequest() - { - return $this->requestStack->getCurrentRequest(); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/DataAccessFunctions.php b/local/local/modules/TheliaSmarty/Template/Plugins/DataAccessFunctions.php deleted file mode 100644 index 0dd8fc90..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/DataAccessFunctions.php +++ /dev/null @@ -1,961 +0,0 @@ - - * - */ -class DataAccessFunctions extends AbstractSmartyPlugin -{ - /** @var SecurityContext */ - private $securityContext; - - /** @var ParserContext */ - protected $parserContext; - - /** @var RequestStack */ - protected $requestStack; - - /** @var EventDispatcherInterface */ - protected $dispatcher; - - /** @var TaxEngine */ - protected $taxEngine; - - /** @var CouponManager */ - protected $couponManager; - - private static $dataAccessCache = array(); - - public function __construct( - RequestStack $requestStack, - SecurityContext $securityContext, - TaxEngine $taxEngine, - ParserContext $parserContext, - EventDispatcherInterface $dispatcher, - CouponManager $couponManager - ) { - $this->securityContext = $securityContext; - $this->parserContext = $parserContext; - $this->requestStack = $requestStack; - $this->dispatcher = $dispatcher; - $this->taxEngine = $taxEngine; - $this->couponManager = $couponManager; - } - - /** - * Provides access to the current logged administrator attributes using the accessors. - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function adminDataAccess($params, &$smarty) - { - return $this->dataAccess("Admin User", $params, $this->securityContext->getAdminUser()); - } - - /** - * Provides access to the current logged customer attributes thought the accessor - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function customerDataAccess($params, &$smarty) - { - return $this->dataAccess("Customer User", $params, $this->securityContext->getCustomerUser()); - } - - /** - * Provides access to an attribute of the current product - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function productDataAccess($params, &$smarty) - { - $productId = $this->getRequest()->get('product_id'); - - if ($productId !== null) { - return $this->dataAccessWithI18n( - "Product", - $params, - ProductQuery::create()->filterByPrimaryKey($productId) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the current category - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function categoryDataAccess($params, &$smarty) - { - $categoryId = $this->getRequest()->get('category_id'); - - if ($categoryId === null) { - $productId = $this->getRequest()->get('product_id'); - - if ($productId !== null) { - if (null !== $product = ProductQuery::create()->findPk($productId)) { - $categoryId = $product->getDefaultCategoryId(); - } - } - } - - if ($categoryId !== null) { - return $this->dataAccessWithI18n( - "Category", - $params, - CategoryQuery::create()->filterByPrimaryKey($categoryId) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the current content - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function contentDataAccess($params, &$smarty) - { - $contentId = $this->getRequest()->get('content_id'); - - if ($contentId !== null) { - return $this->dataAccessWithI18n( - "Content", - $params, - ContentQuery::create()->filterByPrimaryKey($contentId) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the current folder - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function folderDataAccess($params, &$smarty) - { - $folderId = $this->getRequest()->get('folder_id'); - - if ($folderId === null) { - $contentId = $this->getRequest()->get('content_id'); - - if ($contentId !== null) { - if (null !== $content = ContentQuery::create()->findPk($contentId)) { - $folderId = $content->getDefaultFolderId(); - } - } - } - - if ($folderId !== null) { - return $this->dataAccessWithI18n( - "Folder", - $params, - FolderQuery::create()->filterByPrimaryKey($folderId) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the current brand - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function brandDataAccess($params, &$smarty) - { - $brandId = $this->getRequest()->get('brand_id'); - - if ($brandId === null) { - $productId = $this->getRequest()->get('product_id'); - - if ($productId !== null) { - if (null !== $product = ProductQuery::create()->findPk($productId)) { - $brandId = $product->getBrandId(); - } - } - } - - if ($brandId !== null) { - return $this->dataAccessWithI18n( - "Brand", - $params, - BrandQuery::create()->filterByPrimaryKey($brandId) - ); - } - - return ''; - } - - - /** - * Provides access to an attribute of the current currency - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function currencyDataAccess($params, $smarty) - { - $currency = $this->getSession()->getCurrency(); - - if ($currency) { - return $this->dataAccessWithI18n( - "Currency", - $params, - CurrencyQuery::create()->filterByPrimaryKey($currency->getId()), - array("NAME") - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the default country - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function countryDataAccess($params, $smarty) - { - switch ($params["ask"]) { - case "default": - return $this->dataAccessWithI18n( - "defaultCountry", - $params, - CountryQuery::create()->filterByByDefault(1)->limit(1) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the cart - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function cartDataAccess($params, $smarty) - { - /** @var Country $taxCountry */ - if (array_key_exists('currentCountry', self::$dataAccessCache)) { - $taxCountry = self::$dataAccessCache['currentCountry']; - } else { - $taxCountry = $this->taxEngine->getDeliveryCountry(); - self::$dataAccessCache['currentCountry'] = $taxCountry; - } - - /** @var State $taxState */ - if (array_key_exists('currentState', self::$dataAccessCache)) { - $taxState = self::$dataAccessCache['currentState']; - } else { - $taxState = $this->taxEngine->getDeliveryState(); - self::$dataAccessCache['currentState'] = $taxState; - } - - /** @var Cart $cart */ - $cart = $this->getSession()->getSessionCart($this->dispatcher); - - $result = ""; - switch ($params["attr"]) { - case "count_product": - case "product_count": - $result = $cart->getCartItems()->count(); - break; - case "count_item": - case "item_count": - $count_allitem = 0; - foreach ($cart->getCartItems() as $cartItem) { - $count_allitem += $cartItem->getQuantity(); - } - $result = $count_allitem; - break; - case "total_price": - case "total_price_with_discount": - $result = $cart->getTotalAmount(true); - break; - case "total_price_without_discount": - $result = $cart->getTotalAmount(false); - break; - case "total_taxed_price": - case "total_taxed_price_with_discount": - $result = $cart->getTaxedAmount($taxCountry, true, $taxState); - break; - case "total_taxed_price_without_discount": - $result = $cart->getTaxedAmount($taxCountry, false, $taxState); - break; - case "is_virtual": - case "contains_virtual_product": - $result = $cart->isVirtual(); - break; - case "total_vat": - case 'total_tax_amount': - $result = $cart->getTotalVAT($taxCountry); - break; - case "weight": - $result = $cart->getWeight(); - break; - } - - return $result; - } - - public function couponDataAccess($params, &$smarty) - { - /** @var Order $order */ - $order = $this->getSession()->getOrder(); - $attribute = $this->getNormalizedParam($params, array('attribute', 'attrib', 'attr')); - - switch ($attribute) { - case 'has_coupons': - return count($this->couponManager->getCouponsKept()) > 0; - case 'coupon_count': - return count($this->couponManager->getCouponsKept()); - case 'coupon_list': - $orderCoupons = []; - /** @var CouponInterface $coupon */ - foreach($this->couponManager->getCouponsKept() as $coupon) { - $orderCoupons[] = $coupon->getCode(); - } - return $orderCoupons; - case 'is_delivery_free': - return $this->couponManager->isCouponRemovingPostage($order); - } - - throw new \InvalidArgumentException(sprintf("%s has no '%s' attribute", 'Order', $attribute)); - } - - /** - * Provides access to an attribute of the current order - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function orderDataAccess($params, &$smarty) - { - /** @var Order $order */ - $order = $this->getSession()->getOrder(); - $attribute = $this->getNormalizedParam($params, array('attribute', 'attrib', 'attr')); - switch ($attribute) { - case 'untaxed_postage': - return $order->getUntaxedPostage(); - case 'postage': - return $order->getPostage(); - case 'postage_tax': - return $order->getPostageTax(); - case 'discount': - return $order->getDiscount(); - case 'delivery_address': - return $order->getChoosenDeliveryAddress(); - case 'invoice_address': - return $order->getChoosenInvoiceAddress(); - case 'delivery_module': - return $order->getDeliveryModuleId(); - case 'payment_module': - return $order->getPaymentModuleId(); - case 'has_virtual_product': - return $order->hasVirtualProduct(); - - } - - throw new \InvalidArgumentException(sprintf("%s has no '%s' attribute", 'Order', $attribute)); - } - - /** - * Provides access to an attribute of the current language - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - - public function langDataAccess($params, $smarty) - { - return $this->dataAccess("Lang", $params, $this->getSession()->getLang()); - } - - public function configDataAccess($params, $smarty) - { - $key = $this->getParam($params, 'key', false); - - if ($key === false) { - return null; - } - - $default = $this->getParam($params, 'default', ''); - - return ConfigQuery::read($key, $default); - } - - /** - * Provides access to a module configuration value - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the configuration value - */ - - public function moduleConfigDataAccess($params, $smarty) - { - $key = $this->getParam($params, 'key', false); - $moduleCode = $this->getParam($params, 'module', false); - $locale = $this->getParam($params, 'locale'); - - if (null === $locale) { - $locale = $this->getSession()->getLang()->getLocale(); - } - - if ($key === false || $moduleCode === false) { - return null; - } - - $default = $this->getParam($params, 'default', ''); - - if (null !== $module = ModuleQuery::create()->findOneByCode($moduleCode)) { - return ModuleConfigQuery::create() - ->getConfigValue( - $module->getId(), - $key, - $default, - $locale - ); - } else { - Tlog::getInstance()->addWarning( - sprintf( - "Module code '%s' not found in module-config Smarty function", - $moduleCode - ) - ); - - $value = $default; - } - - return $value; - } - - /** - * Provides access to sales statistics - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - - public function statsAccess($params, $smarty) - { - if (false === array_key_exists("key", $params)) { - throw new \InvalidArgumentException(sprintf("missing key attribute in stats access function")); - } - if (false === array_key_exists("startDate", $params) || $params['startDate'] === '') { - throw new \InvalidArgumentException(sprintf("missing startDate attribute in stats access function")); - } - if (false === array_key_exists("endDate", $params) || $params['endDate'] === '') { - throw new \InvalidArgumentException(sprintf("missing endDate attribute in stats access function")); - } - - if (false !== array_key_exists("includeShipping", $params) && $params['includeShipping'] == 'false') { - $includeShipping = false; - } else { - $includeShipping = true; - } - - if ($params['startDate'] == 'today') { - $startDate = new \DateTime(); - $startDate->setTime(0, 0, 0); - } elseif ($params['startDate'] == 'yesterday') { - $startDate = new \DateTime(); - $startDate->setTime(0, 0, 0); - $startDate->modify('-1 day'); - } elseif ($params['startDate'] == 'this_month') { - $startDate = new \DateTime(); - $startDate->modify('first day of this month'); - $startDate->setTime(0, 0, 0); - } elseif ($params['startDate'] == 'last_month') { - $startDate = new \DateTime(); - $startDate->modify('first day of last month'); - $startDate->setTime(0, 0, 0); - } elseif ($params['startDate'] == 'this_year') { - $startDate = new \DateTime(); - $startDate->modify('first day of January this year'); - $startDate->setTime(0, 0, 0); - } elseif ($params['startDate'] == 'last_year') { - $startDate = new \DateTime(); - $startDate->modify('first day of January last year'); - $startDate->setTime(0, 0, 0); - } else { - try { - $startDate = new \DateTime($params['startDate']); - } catch (\Exception $e) { - throw new \InvalidArgumentException( - sprintf("invalid startDate attribute '%s' in stats access function", $params['startDate']) - ); - } - } - - if ($params['endDate'] == 'today') { - $endDate = new \DateTime(); - $endDate->setTime(0, 0, 0); - } elseif ($params['endDate'] == 'yesterday') { - $endDate = new \DateTime(); - $endDate->setTime(0, 0, 0); - $endDate->modify('-1 day'); - } elseif ($params['endDate'] == 'this_month') { - $endDate = new \DateTime(); - $endDate->modify('last day of this month'); - $endDate->setTime(0, 0, 0); - } elseif ($params['endDate'] == 'last_month') { - $endDate = new \DateTime(); - $endDate->modify('last day of last month'); - $endDate->setTime(0, 0, 0); - } elseif ($params['endDate'] == 'this_year') { - $endDate = new \DateTime(); - $endDate->modify('last day of December this year'); - $endDate->setTime(0, 0, 0); - } elseif ($params['endDate'] == 'last_year') { - $endDate = new \DateTime(); - $endDate->modify('last day of December last year'); - $endDate->setTime(0, 0, 0); - } else { - try { - $endDate = new \DateTime($params['endDate']); - } catch (\Exception $e) { - throw new \InvalidArgumentException( - sprintf("invalid endDate attribute '%s' in stats access function", $params['endDate']) - ); - } - } - - switch ($params['key']) { - case 'sales': - return OrderQuery::getSaleStats($startDate, $endDate, $includeShipping); - break; - case 'orders': - return OrderQuery::getOrderStats($startDate, $endDate, array(1,2,3,4)); - break; - } - - throw new \InvalidArgumentException( - sprintf("invalid key attribute '%s' in stats access function", $params['key']) - ); - } - - /** - * Retrieve meta data associated to an element - * - * params should contain at least key an id attributes. Thus it will return - * an array of associated data. - * - * If meta argument is specified then it will return an unique value. - * - * @param array $params - * @param \Smarty $smarty - * - * @throws \InvalidArgumentException - * - * @return string|array|null - */ - public function metaAccess($params, $smarty) - { - $meta = $this->getParam($params, 'meta', null); - $key = $this->getParam($params, 'key', null); - $id = $this->getParam($params, 'id', null); - - $cacheKey = sprintf('meta_%s_%s_%s', $meta, $key, $id); - - $out = null; - - if (array_key_exists($cacheKey, self::$dataAccessCache)) { - return self::$dataAccessCache[$cacheKey]; - } - - if ($key !== null && $id !== null) { - if ($meta === null) { - $out = MetaDataQuery::getAllVal($key, (int) $id); - } else { - $out = MetaDataQuery::getVal($meta, $key, (int) $id); - } - } else { - throw new \InvalidArgumentException("key and id arguments are required in meta access function"); - } - - self::$dataAccessCache[$cacheKey] = $out; - - if (!empty($params['out'])) { - $smarty->assign($params['out'], $out); - - return $out !== null ? true : false; - } else { - if (is_array($out)) { - throw new \InvalidArgumentException('The argument "out" is required if the meta value is an array'); - } - - return $out; - } - } - - /** - * @param $objectLabel - * @param $params - * @param ModelCriteria $search - * @param array $columns - * @param null $foreignTable - * @param string $foreignKey - * - * @return string - */ - protected function dataAccessWithI18n( - $objectLabel, - $params, - ModelCriteria $search, - $columns = array('TITLE', 'CHAPO', 'DESCRIPTION', 'POSTSCRIPTUM'), - $foreignTable = null, - $foreignKey = 'ID' - ) { - if (array_key_exists('data_' . $objectLabel, self::$dataAccessCache)) { - $data = self::$dataAccessCache['data_' . $objectLabel]; - } else { - $lang = $this->getNormalizedParam($params, array('lang')); - if ($lang === null) { - $lang = $this->getSession()->getLang()->getId(); - } - - ModelCriteriaTools::getI18n( - false, - $lang, - $search, - $this->getSession()->getLang()->getLocale(), - $columns, - $foreignTable, - $foreignKey, - true - ); - - $data = $search->findOne(); - - self::$dataAccessCache['data_' . $objectLabel] = $data; - } - - if ($data !== null) { - $noGetterData = array(); - - foreach ($columns as $column) { - $noGetterData[$column] = $data->getVirtualColumn('i18n_' . $column); - } - - return $this->dataAccess($objectLabel, $params, $data, $noGetterData); - } else { - throw new NotFoundHttpException(); - } - } - - /** - * @param $objectLabel - * @param $params - * @param $data - * @param array $noGetterData - * - * @return string - * @throws \InvalidArgumentException - */ - protected function dataAccess($objectLabel, $params, $data, $noGetterData = array()) - { - $attribute = $this->getNormalizedParam($params, array('attribute', 'attrib', 'attr')); - - if (!empty($attribute)) { - if (null != $data) { - $keyAttribute = strtoupper($attribute); - if (array_key_exists($keyAttribute, $noGetterData)) { - return $noGetterData[$keyAttribute]; - } - - $getter = sprintf("get%s", $this->underscoreToCamelcase($attribute)); - if (method_exists($data, $getter)) { - $return = $data->$getter(); - - if ($return instanceof \DateTime) { - if (array_key_exists("format", $params)) { - $format = $params["format"]; - } else { - $format = DateTimeFormat::getInstance($this->getRequest())->getFormat( - array_key_exists("output", $params) ? $params["output"] : null - ); - } - - $return = $return->format($format); - } - - return $return; - } - - throw new \InvalidArgumentException(sprintf("%s has no '%s' attribute", $objectLabel, $attribute)); - } - } - - return ''; - } - - /** - * Transcode an underscored string into a camel-cased string, eg. default_folder into DefaultFolder - * - * @param string $str the string to convert from underscore to camel-case - * - * @return string the camel cased string. - */ - private function underscoreToCamelcase($str) - { - // Split string in words. - $words = explode('_', strtolower($str)); - - $return = ''; - - foreach ($words as $word) { - $return .= ucfirst(trim($word)); - } - - return $return; - } - - - - - /** - * Provides access to the uploaded store-related images (such as logo or favicon) - * - * @param array $params - * @param string $content - * @param \Smarty_Internal_Template $template - * @param boolean $repeat - * @return string|null - */ - public function storeMediaDataAccess($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - $type = $this->getParam($params, 'type', null); - $allowedTypes = ['favicon', 'logo', 'banner']; - - - if ($type !== null && in_array($type, $allowedTypes)) { - switch ($type) { - case 'favicon': - $configKey = 'favicon_file'; - $defaultImageName = 'favicon.png'; - break; - case 'logo': - $configKey = 'logo_file'; - $defaultImageName = 'logo.png'; - break; - case 'banner': - $configKey = 'banner_file'; - $defaultImageName = 'banner.jpg'; - break; - } - - $uploadDir = ConfigQuery::read('images_library_path'); - - if ($uploadDir === null) { - $uploadDir = THELIA_LOCAL_DIR . 'media' . DS . 'images'; - } else { - $uploadDir = THELIA_ROOT . $uploadDir; - } - - $uploadDir .= DS . 'store'; - - - $imageFileName = ConfigQuery::read($configKey); - - $skipImageTransform = false; - - // If we couldn't find the image path in the config table or if it doesn't exist, we take the default image provided. - if ($imageFileName == null) { - $imageSourcePath = $uploadDir . DS . $defaultImageName; - } else { - $imageSourcePath = $uploadDir . DS . $imageFileName; - - if (!file_exists($imageSourcePath)) { - Tlog::getInstance()->error(sprintf('Source image file %s does not exists.', $imageSourcePath)); - $imageSourcePath = $uploadDir . DS . $defaultImageName; - } - - if ($type == 'favicon') { - $extension = pathinfo($imageSourcePath, PATHINFO_EXTENSION); - if ($extension == 'ico') { - $mime_type = 'image/x-icon'; - - // If the media is a .ico favicon file, we skip the image transformations, - // as transformations on .ico file are not supported by Thelia. - $skipImageTransform = true; - } else { - $mime_type = 'image/png'; - } - - $template->assign('MEDIA_MIME_TYPE', $mime_type); - } - } - - $event = new ImageEvent(); - $event->setSourceFilepath($imageSourcePath) - ->setCacheSubdirectory('store'); - - - if (!$skipImageTransform) { - switch ($this->getParam($params, 'resize_mode', null)) { - case 'crop': - $resize_mode = \Thelia\Action\Image::EXACT_RATIO_WITH_CROP; - break; - - case 'borders': - $resize_mode = \Thelia\Action\Image::EXACT_RATIO_WITH_BORDERS; - break; - - case 'none': - default: - $resize_mode = \Thelia\Action\Image::KEEP_IMAGE_RATIO; - } - - // Prepare transformations - $width = $this->getParam($params, 'width', null); - $height = $this->getParam($params, 'height', null); - $rotation = $this->getParam($params, 'rotation', null); - - if (!is_null($width)) { - $event->setWidth($width); - } - if (!is_null($height)) { - $event->setHeight($height); - } - $event->setResizeMode($resize_mode); - if (!is_null($rotation)) { - $event->setRotation($rotation); - } - } - - $this->dispatcher->dispatch(TheliaEvents::IMAGE_PROCESS, $event); - - $template->assign('MEDIA_URL', $event->getFileUrl()); - } - - if (isset($content)) { - return $content; - } - - return null; - } - - - - - /** - * @inheritdoc - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'admin', $this, 'adminDataAccess'), - new SmartyPluginDescriptor('function', 'customer', $this, 'customerDataAccess'), - new SmartyPluginDescriptor('function', 'product', $this, 'productDataAccess'), - new SmartyPluginDescriptor('function', 'category', $this, 'categoryDataAccess'), - new SmartyPluginDescriptor('function', 'content', $this, 'contentDataAccess'), - new SmartyPluginDescriptor('function', 'folder', $this, 'folderDataAccess'), - new SmartyPluginDescriptor('function', 'brand', $this, 'brandDataAccess'), - new SmartyPluginDescriptor('function', 'currency', $this, 'currencyDataAccess'), - new SmartyPluginDescriptor('function', 'country', $this, 'countryDataAccess'), - new SmartyPluginDescriptor('function', 'lang', $this, 'langDataAccess'), - new SmartyPluginDescriptor('function', 'cart', $this, 'cartDataAccess'), - new SmartyPluginDescriptor('function', 'order', $this, 'orderDataAccess'), - new SmartyPluginDescriptor('function', 'config', $this, 'configDataAccess'), - new SmartyPluginDescriptor('function', 'stats', $this, 'statsAccess'), - new SmartyPluginDescriptor('function', 'meta', $this, 'metaAccess'), - new SmartyPluginDescriptor('function', 'module_config', $this, 'moduleConfigDataAccess'), - new SmartyPluginDescriptor('function', 'coupon', $this, 'couponDataAccess'), - - new SmartyPluginDescriptor('block', 'local_media', $this, 'storeMediaDataAccess'), - ); - } - - /** - * @return Request - */ - protected function getRequest() - { - return $this->requestStack->getCurrentRequest(); - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->getRequest()->getSession(); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Esi.php b/local/local/modules/TheliaSmarty/Template/Plugins/Esi.php deleted file mode 100644 index 6bee285c..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Esi.php +++ /dev/null @@ -1,73 +0,0 @@ - - */ -class Esi extends AbstractSmartyPlugin -{ - /** @var EsiFragmentRenderer */ - protected $esiFragmentRender; - - /** @var RequestStack */ - protected $requestStack; - - public function __construct(EsiFragmentRenderer $esiFragmentRenderer, RequestStack $requestStack) - { - $this->esiFragmentRender = $esiFragmentRenderer; - $this->requestStack = $requestStack; - } - - public function renderEsi($params, $template = null) - { - $path = $this->getParam($params, 'path'); - $alt = $this->getParam($params, 'alt'); - $ignore_errors = $this->getParam($params, 'ignore_errors'); - $comment = $this->getParam($params, 'comment'); - - if (null === $path) { - return; - } - - $response = $this->esiFragmentRender->render($path, $this->requestStack->getCurrentRequest(), array( - 'alt' => $alt, - 'ignore_errors' => $ignore_errors, - 'comment' => $comment - )); - - if (!$response->isSuccessful()) { - return null; - } - - return $response->getContent(); - } - - /** - * @return array an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'render_esi', $this, 'renderEsi') - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/FlashMessage.php b/local/local/modules/TheliaSmarty/Template/Plugins/FlashMessage.php deleted file mode 100644 index 7ad9a5a2..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/FlashMessage.php +++ /dev/null @@ -1,155 +0,0 @@ -{$MESSAGE} - * {/flash} - * ``` - * Class Form - * - * @package Thelia\Core\Template\Smarty\Plugins - * @author Guillaume MOREL - * @author Julien Chanséaume - */ -class FlashMessage extends AbstractSmartyPlugin -{ - /** @var RequestStack Request service */ - protected $requestStack; - - /** @var FlashMessageBag $results */ - protected $results; - - /** @var Translator */ - protected $translator; - - public function __construct(RequestStack $requestStack, Translator $translator) - { - $this->requestStack = $requestStack; - $this->translator = $translator; - } - - /** - * Process the count function: executes a loop and return the number of items found - * - * @param array $params parameters array - * @param \Smarty_Internal_Template $template - * - * @return int the item count - * @throws \InvalidArgumentException if a parameter is missing - * - */ - public function hasFlashMessage( - $params, - /** @noinspection PhpUnusedParameterInspection */ - $template - ) { - $type = $this->getParam($params, 'type', null); - - if (null == $type) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'type' parameter in {hasflash} function arguments") - ); - } - - return $this->getSession()->getFlashBag()->has($type); - } - - /** - * Get FlashMessage - * And clean session from this key - * - * @param array $params Block parameters - * @param mixed $content Block content - * @param \Smarty_Internal_Template $template Template - * @param bool $repeat Control how many times - * the block is displayed - * - * @return mixed - */ - public function getFlashMessage($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - $type = $this->getParam($params, 'type', false); - - if (null === $content) { - $this->results = new FlashMessageBag(); - - if (false === $type) { - $this->results->addAll($this->getSession()->getFlashBag()->all()); - } else { - $this->results->add( - $type, - $this->getSession()->getFlashBag()->get($type, []) - ); - } - - if ($this->results->isEmpty()) { - $repeat = false; - } - } else { - $this->results->next(); - } - - if ($this->results->valid()) { - $message = $this->results->current(); - $template->assign("TYPE", $message["type"]); - $template->assign("MESSAGE", $message["message"]); - - $repeat = true; - } - - if ($content !== null) { - if ($this->results->isEmpty()) { - $content = ""; - } - - return $content; - } - - return ''; - } - - /** - * @return array an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return [ - new SmartyPluginDescriptor("function", "hasflash", $this, "hasFlashMessage"), - new SmartyPluginDescriptor("block", "flash", $this, "getFlashMessage") - ]; - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->requestStack->getCurrentRequest()->getSession(); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Form.php b/local/local/modules/TheliaSmarty/Template/Plugins/Form.php deleted file mode 100644 index 335b79a4..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Form.php +++ /dev/null @@ -1,1029 +0,0 @@ - find form named myForm, - * create an instance and assign this instanciation into smarty variable. Form must be declare into - * config using tag - * - * - {form_field form=$form.fieldName} {/form_field} This block find info into the Form field containing by - * the form paramter. This field must be an instance of FormView. fieldName is the name of your field. This block - * can output these info : - * * $name => name of yout input - * * $value => value for your input - * * $label => label for your input - * * $error => boolean for know if there is error for this field - * * $attr => all your attribute for your input (define when you construct programmatically you form) - * - * - {form_error form=$form.fieldName} ... {/form_error} Display this block if there are errors on this field. - * fieldName is the name of your field - * - * Class Form - * @package Thelia\Core\Template\Smarty\Plugins - */ -class Form extends AbstractSmartyPlugin -{ - const COLLECTION_TYPE_NAME = "collection"; - - private static $taggedFieldsStack = null; - private static $taggedFieldsStackPosition = null; - - /** @var ContainerInterface */ - protected $container; - - /** @var ParserContext $parserContext */ - protected $parserContext; - - /** @var ParserInterface $parser */ - protected $parser; - - protected $formDefinition = array(); - - /** @var array|TheliaFormFactoryInterface */ - protected $formFactory = array(); - - /** @var array The form collection stack */ - protected $formCollectionStack = array(); - - /** @var array Counts collection loop in page */ - protected $formCollectionCount = array(); - - public function __construct( - TheliaFormFactoryInterface $formFactory, - ParserContext $parserContext, - ParserInterface $parser - ) { - $this->formFactory = $formFactory; - $this->parserContext = $parserContext; - $this->parser = $parser; - } - - public function setFormDefinition($formDefinition) - { - foreach ($formDefinition as $name => $className) { - if (array_key_exists($name, $this->formDefinition)) { - throw new \InvalidArgumentException( - sprintf("%s form name already exists for %s class", $name, $className) - ); - } - - $this->formDefinition[$name] = $className; - } - } - - public function generateForm($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - if ($repeat) { - $name = $this->getParam($params, 'name'); - $formType = $this->getParam($params, 'type', 'form'); - - if (null == $name) { - $name = "thelia.empty"; - } - - if (!isset($this->formDefinition[$name])) { - throw new ElementNotFoundException(sprintf("%s form does not exists", $name)); - } - - $formClass = $this->formDefinition[$name]; - - // Check if parser context contains our form - $instance = $this->parserContext->getForm($name, $formClass, $formType); - - if (null === $instance) { - // If not, create a new instance - $instance = $this->formFactory->createForm($name); - } - - // Set the current form - $this->parserContext->pushCurrentForm($instance); - - $instance->createView(); - - $template->assign("form", $instance); - $template->assign("form_name", $instance->getName()); - - $template->assign("form_error", $instance->hasError() ? true : false); - $template->assign("form_error_message", $instance->getErrorMessage()); - } else { - $this->parserContext->popCurrentForm(); - - return $content; - } - } - - /** - * @param \Smarty_Internal_Template $template - * @param string $fieldName - * @param string $fieldValue - * @param string $fieldType - * @param array $fieldVars - * @param int $total_value_count - */ - protected function assignFieldValues( - $template, - $fieldName, - $fieldValue, - $fieldType, - $fieldVars, - $total_value_count = 1 - ) { - $template->assign("name", $fieldName); - $template->assign("value", $fieldValue); - $template->assign("data", $fieldVars['data']); - - $template->assign("type", $fieldType); - - $template->assign("checked", isset($fieldVars['data']) ? $fieldVars['data'] : false); - $template->assign("choices", isset($fieldVars['choices']) ? $fieldVars['choices'] : false); - $template->assign("multiple", isset($fieldVars['multiple']) ? $fieldVars['multiple'] : false); - $template->assign("disabled", isset($fieldVars['disabled']) ? $fieldVars['disabled'] : false); - $template->assign("read_only", isset($fieldVars['read_only']) ? $fieldVars['read_only'] : false); - $template->assign("max_length", isset($fieldVars['max_length']) ? $fieldVars['max_length'] : false); - $template->assign('required', isset($fieldVars['required']) ? $fieldVars['required'] : false); - - $template->assign("label", $fieldVars["label"]); - $template->assign("label_attr", $fieldVars["label_attr"]); - - $template->assign('total_value_count', $total_value_count); - - /** @var FormErrorIterator $errors */ - $errors = $fieldVars["errors"]; - if ($errors) { - $template->assign("error", $errors->count() ? true : false); - $this->assignFieldErrorVars($template, $errors); - } - - $attr = array(); - - foreach ($fieldVars["attr"] as $key => $value) { - $attr[] = sprintf('%s="%s"', $key, $value); - } - - $template->assign("attr", implode(" ", $attr)); - $template->assign("attr_list", $fieldVars["attr"]); - } - - /** - * @param \Smarty_Internal_Template $template - * @param FormConfigInterface $formFieldConfig - * @param FormView $formFieldView - */ - protected function assignFormTypeValues($template, $formFieldConfig, $formFieldView) - { - $formFieldType = $formFieldConfig->getType()->getInnerType(); - - /* access to choices */ - if ($formFieldType instanceof ChoiceType) { - $template->assign("choices", $formFieldView->vars['choices']); - } - - /* access to collections */ - if ($formFieldType instanceof CollectionType) { - if (true === $formFieldConfig->getOption('prototype')) { - } else { - /* access to choices */ - if (isset($formFieldView->vars['choices'])) { - $template->assign("choices", $formFieldView->vars['choices']); - } - } - } - - /* access to date */ - if ($formFieldType instanceof DateType || $formFieldType instanceof DateTimeType || $formFieldType instanceof BirthdayType) { - if ('choice' === $formFieldConfig->getOption('widget')) { - /* access to years */ - if ($formFieldConfig->getOption('years')) { - $formFieldView->vars['years'] = $formFieldConfig->getOption('years'); - $template->assign("years", $formFieldView->vars['years']); - } - - /* access to month */ - if ($formFieldConfig->getOption('months')) { - $formFieldView->vars['months'] = $formFieldConfig->getOption('months'); - $template->assign("months", $formFieldView->vars['months']); - } - - /* access to days */ - if ($formFieldConfig->getOption('days')) { - $formFieldView->vars['days'] = $formFieldConfig->getOption('days'); - $template->assign("days", $formFieldView->vars['days']); - } - - /* access to empty_value */ - if ($formFieldConfig->getOption('empty_value')) { - $formFieldView->vars['empty_value'] = $formFieldConfig->getOption('empty_value'); - $template->assign("empty_value", $formFieldView->vars['empty_value']); - } - } - } - - /* access to thelia type */ - if ($formFieldType instanceof TheliaType) { - $template->assign("formType", $formFieldView->vars['type']); - - switch ($formFieldView->vars['type']) { - case "choice": - if (!isset($formFieldView->vars['options']['choices']) || - !is_array($formFieldView->vars['options']['choices']) - ) { - //throw new - } - $choices = array(); - foreach ($formFieldView->vars['options']['choices'] as $value => $choice) { - $choices[] = new ChoiceView($value, $value, $choice); - } - $template->assign("choices", $choices); - break; - } - } - } - - /** - * @param array $params - * @param \Smarty_Internal_Template $template - */ - protected function processFormField($params, $template) - { - $formFieldView = $this->getFormFieldView($params); - $formFieldConfig = $this->getFormFieldConfig($params); - - $formFieldType = $formFieldConfig->getType()->getName(); - - $this->assignFormTypeValues($template, $formFieldConfig, $formFieldView); - - $value = $formFieldView->vars["value"]; - - $key = $this->getParam($params, 'value_key', null); - - // We (may) have a collection - if ($key !== null) { - // Force array - if (!is_array($value)) { - $value = array(); - } - - // If the field is not found, use an empty value - $name = sprintf("%s[%s]", $formFieldView->vars["full_name"], $key); - - $val = $value[$key]; - - // For collection types, the type of field is defined in the 'type' option. - // We will use this instead of the 'collection' type - $formFieldType = $formFieldConfig->getType()->getInnerType(); - - if ($formFieldType instanceof CollectionType) { - $formFieldType = $formFieldConfig->getOption('type'); - } - - $this->assignFieldValues( - $template, - $name, - $val, - $formFieldType, - $formFieldView->vars, - count($formFieldView->children) - ); - } else { - $this->assignFieldValues( - $template, - $formFieldView->vars["full_name"], - $formFieldView->vars["value"], - $formFieldType, - $formFieldView->vars - ); - } - - $formFieldView->setRendered(); - } - - public function renderFormField($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - if ($repeat) { - $this->processFormField($params, $template); - } else { - return $content; - } - } - - /** - * @param array $params - * @param string $content - * @param string $templateFile - * @param \Smarty_Internal_Template $template - * @return string - */ - protected function automaticFormFieldRendering($params, $content, $template, $templateFile) - { - $data = ''; - - $templateStyle = $this->getParam($params, 'template', 'standard'); - - $snippet_path = sprintf( - '%s' . DS . 'forms' . DS . '%s' . DS . '%s.html', - $this->parser->getTemplateDefinition()->getAbsolutePath(), - $templateStyle, - $templateFile - ); - - if (false !== $snippet_content = file_get_contents($snippet_path)) { - $this->processFormField($params, $template); - - if (null === $form = $this->getParam($params, 'form', null)) { - $form = $this->parserContext->getCurrentForm(); - } - - $field_name = $this->getParam($params, 'field', false); - $field_extra_class = $this->getParam($params, 'extra_class', ''); - $field_extra_class = $this->getParam($params, 'extra_classes', $field_extra_class); - $field_no_standard_classes = $this->getParam($params, 'no_standard_classes', false); - $field_value = $this->getParam($params, 'value', ''); - $show_label = $this->getParam($params, 'show_label', true); - $value_key = $this->getParam($params, 'value_key', false); - - $template->assign([ - 'content' => trim($content), - 'form' => $form, - 'field_name' => $field_name, - 'field_extra_class' => $field_extra_class, - 'field_no_standard_classes' => $field_no_standard_classes, - 'field_value' => $field_value, - 'field_template' => $templateStyle, - 'value_key' => $value_key, - 'show_label' => $show_label, - ]); - - $data = $template->fetch(sprintf('string:%s', $snippet_content)); - } - - return $data; - } - - /** - * @param $params - * @param $content - * @param \Smarty_Internal_Template $template - * @param $repeat - * @return mixed - */ - public function customFormFieldRendering($params, $content, $template, &$repeat) - { - if (!$repeat) { - return $this->automaticFormFieldRendering($params, $content, $template, 'form-field-renderer'); - } - } - - public function standardFormFieldRendering($params, \Smarty_Internal_Template $template) - { - return $this->automaticFormFieldRendering($params, '', $template, 'form-field-renderer'); - } - - public function standardFormFieldAttributes($params, \Smarty_Internal_Template $template) - { - return $this->automaticFormFieldRendering($params, '', $template, 'form-field-attributes-renderer'); - } - - public function renderTaggedFormFields($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - if (null === $content) { - self::$taggedFieldsStack = $this->getFormFieldsFromTag($params); - self::$taggedFieldsStackPosition = 0; - } else { - self::$taggedFieldsStackPosition++; - } - - if (isset(self::$taggedFieldsStack[self::$taggedFieldsStackPosition])) { - $field = self::$taggedFieldsStack[self::$taggedFieldsStackPosition]; - - $this->assignFieldValues( - $template, - $field['view']->vars["full_name"], - $field['view']->vars["value"], - $field['config']->getType()->getName(), - $field['view']->vars - ); - - $this->assignFormTypeValues($template, $field['config'], $field['view']); - - $field['view']->setRendered(); - - $repeat = true; - } - - if (!$repeat) { - self::$taggedFieldsStack = null; - self::$taggedFieldsStackPosition = null; - } - - if (null !== $content) { - return $content; - } - } - - public function renderHiddenFormField($params, \Smarty_Internal_Template $template) - { - $attrFormat = '%s="%s"'; - $field = ''; - - $baseFormInstance = $this->getInstanceFromParams($params); - - $formView = $baseFormInstance->getView(); - - $return = ""; - - $exclude = explode(',', $this->getParam($params, 'exclude', '')); - - /** @var FormView $row */ - foreach ($formView->getIterator() as $row) { - // We have to exclude the fields for which value is defined in the template. - if ($baseFormInstance->isTemplateDefinedHiddenField($row) - || - in_array($row->vars['name'], $exclude) - ) { - continue; - } - - if ($this->isHidden($row) && $row->isRendered() === false) { - $attributeList = array(); - if (isset($row->vars["attr"])) { - foreach ($row->vars["attr"] as $attrKey => $attrValue) { - $attributeList[] = sprintf($attrFormat, $attrKey, $attrValue); - } - } - $return .= sprintf($field, $row->vars["full_name"], $row->vars["value"], implode(' ', $attributeList)); - } - } - - return $return; - } - - public function formEnctype($params, \Smarty_Internal_Template $template) - { - $instance = $this->getInstanceFromParams($params); - - $formView = $instance->getView(); - - if ($formView->vars["multipart"]) { - return sprintf('%s="%s"', "enctype", "multipart/form-data"); - } - } - - public function formError($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - $formFieldView = $this->getFormFieldView($params); - - /** @var FormErrorIterator $errors */ - $errors = $formFieldView->vars["errors"]; - - if (!$errors->count()) { - return ""; - } - - if ($repeat) { - $this->assignFieldErrorVars($template, $errors); - } else { - return $content; - } - } - - protected function assignFieldErrorVars(\Smarty_Internal_Template $template, FormErrorIterator $errors) - { - if ($errors->count()) { - $template->assign("message", $errors[0]->getMessage()); - $template->assign("parameters", $errors[0]->getMessageParameters()); - $template->assign("pluralization", $errors[0]->getMessagePluralization()); - } - } - - protected function isHidden(FormView $formView) - { - return array_search("hidden", $formView->vars["block_prefixes"]); - } - - /** - * @param $params - * @return FormView - * @throws \InvalidArgumentException - */ - protected function getFormFieldView($params) - { - $instance = $this->getInstanceFromParams($params); - - $fieldName = $this->getParam($params, 'field'); - - if (null == $fieldName) { - throw new \InvalidArgumentException("'field' parameter is missing"); - } - - $view = $this->retrieveField( - $fieldName, - $instance->getView(), - $instance->getName() - ); - - return $view; - } - - protected function getFormFieldsFromTag($params) - { - $instance = $this->getInstanceFromParams($params); - - $tag = $this->getParam($params, 'tag'); - - if (null == $tag) { - throw new \InvalidArgumentException("'tag' parameter is missing"); - } - - $viewList = array(); - foreach ($instance->getView() as $view) { - if (isset($view->vars['attr']['tag']) && $tag == $view->vars['attr']['tag']) { - $fieldData = $instance->getForm()->all()[$view->vars['name']]; - $viewList[] = array( - 'view' => $view, - 'config' => $fieldData->getConfig(), - ); - } - } - - return $viewList; - } - - /** - * @param $params - * @return FormConfigInterface - * @throws \InvalidArgumentException - */ - protected function getFormFieldConfig($params) - { - $instance = $this->getInstanceFromParams($params); - - $fieldName = $this->getParam($params, 'field'); - - if (null == $fieldName) { - throw new \InvalidArgumentException("'field' parameter is missing"); - } - - $fieldData = $this->retrieveField( - $fieldName, - $instance->getForm()->all(), - $instance->getName() - ); - - if (empty($fieldData)) { - throw new \InvalidArgumentException( - sprintf( - "Field name '%s' not found in form %s children", - $fieldName, - $instance->getName() - ) - ); - } - - return $fieldData->getConfig(); - } - - /** - * @param $params - * @return BaseForm - * @throws \InvalidArgumentException - */ - protected function getInstanceFromParams($params) - { - if (null === $instance = $this->getParam($params, 'form')) { - $instance = $this->parserContext->getCurrentForm(); - } - - if (null == $instance) { - throw new \InvalidArgumentException( - "Missing 'form' parameter in form arguments, and no current form was found." - ); - } - - if (!$instance instanceof BaseForm) { - throw new \InvalidArgumentException( - sprintf( - "form parameter in form_field block must be an instance of " . - "\Thelia\Form\BaseForm, instance of %s found", - get_class($instance) - ) - ); - } - - return $instance; - } - - /** - * @param $needle - * @param $haystack - * @param $formName - * @return \Symfony\Component\Form\Form - */ - protected function retrieveField($needle, $haystack, $formName) - { - $splitName = explode(".", $needle); - - foreach ($splitName as $level) { - if (empty($haystack[$level])) { - throw new \InvalidArgumentException( - sprintf("Field name '%s' not found in form %s", $needle, $formName) - ); - } - $haystack = $haystack[$level]; - } - - return $haystack; - } - - /** - * @param $params - * @param $name - * @param bool $throwException - * @return mixed|null - * - * Get a symfony form object form a function/block parameter - */ - protected function getSymfonyFormFromParams($params, $name, $throwException = false) - { - $sfForm = $this->getParam($params, $name); - - if (null === $sfForm && false === $throwException) { - return null; - } - - if (!$sfForm instanceof SymfonyForm) { - throw new \InvalidArgumentException( - sprintf( - "%s parameter must be an instance of " . - "\Symfony\Component\Form\Form, instance of %s found", - $name, - is_object($sfForm) ? get_class($sfForm) : gettype($sfForm) - ) - ); - } - - return $sfForm; - } - - /** - * @param $params - * @param $content - * @param \Smarty_Internal_Template $template - * @param $repeat - * @return mixed - * - * Loops around a form collection entries and assigns values to template - */ - public function renderFormCollection($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - /** - * Get parameters - */ - $form = $this->getInstanceFromParams($params); - $row = $this->getSymfonyFormFromParams($params, "row"); - $collection = $this->resolveCollection($this->getParam($params, "collection"), $form); - - $hash = $this->initializeCollection($form, $collection, $row); - - $limit = $this->getParam($params, "limit", -1); - - /** - * Check if it has a limit - */ - if (!preg_match("#^\-?\d+$#", $limit)) { - throw new \InvalidArgumentException( - sprintf( - "Invalid value for 'limit' parameter in 'form_collection'. '%s' given, integer expected", - $limit - ) - ); - } - - /** - * Then load stack and create the stack count - */ - $limit = (int)$limit; - $hasLimit = $limit >= 0; - - /** - * If we have reached the limit, stop - */ - $collectionLimit = $this->formCollectionCount[$hash]["limit"]; - - if (($hasLimit && $limit === $collectionLimit) || - null === $row = array_shift($this->formCollectionStack[$hash]) - ) { - $repeat = false; - - /** - * Reload stack limit - */ - $this->formCollectionCount[$hash]["limit"] = 0; - - return $content; - } - - /** - * Assign variables into the template - */ - $template->assign("row", $row); - $template->assign("collection_current", $this->formCollectionCount[$hash]["count"]++); - $template->assign("collection_count", $this->formCollectionCount[$hash]["total_count"]); - - /** - * Increment the current limit state - * Force the repeat - */ - $this->formCollectionCount[$hash]["limit"]++; - $repeat = true; - - /** - * ANd return the content - */ - - return $content; - } - - /** - * @param BaseForm $form - * @param SymfonyForm $field - * @return string - * - * Get definition, return hash - */ - protected function getFormStackHash(BaseForm $form, SymfonyForm $field = null) - { - $build = get_class($form) . ":" . $form->getType(); - - if (null !== $field) { - $build .= ":" . $this->buildFieldName($field); - } - - return md5($build); - } - - /** - * @param $collection - * @param BaseForm $form - * @return SymfonyForm - * - * Extract the collection object from the form - */ - protected function resolveCollection($collection, BaseForm $form) - { - if (null === $collection) { - throw new \InvalidArgumentException( - "Missing parameter 'collection' in 'form_collection" - ); - } - - $sfForm = $form->getForm(); - - if (!$sfForm->has($collection)) { - throw new \InvalidArgumentException( - sprintf( - "Field name '%s' not found in form %s children", - $collection, - $form->getName() - ) - ); - } - - /** - * Check that the field is a "collection" type - */ - $collectionConfig = $this->retrieveField( - $collection, - $sfForm->all(), - $form->getName() - ); - - $fieldType = $collectionConfig->getConfig()->getType(); - - if ($fieldType->getName() !== static::COLLECTION_TYPE_NAME) { - $baseFieldType = $fieldType; - $resolved = false; - - while (null !== $fieldType && !$resolved) { - if ($fieldType->getName() !== static::COLLECTION_TYPE_NAME) { - $fieldType = $fieldType->getParent(); - } - } - - if (!$resolved) { - throw new \LogicException( - sprintf( - "The field '%s' is not a collection, it's a '%s'." . - "You can't use it with the function 'form_collection' in form '%s'", - $collection, - $baseFieldType->getName(), - $form->getName() - ) - ); - } - } - - return $collectionConfig; - } - - /** - * @param $params - * @param $content - * @param \Smarty_Internal_Template $template - * @param $repeat - * @return string - * - * Injects a collection field variables into the parser - */ - public function renderFormCollectionField($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - if (!$repeat) { - return $content; - } - - $form = $this->getInstanceFromParams($params); - /** @var \Symfony\Component\Form\Form $row */ - $row = $this->getSymfonyFormFromParams($params, "row", true); - $field = $this->getParam($params, "field"); - - $formField = $this->retrieveField($field, $row->all(), $form->getName()); - - $formFieldConfig = $formField->getConfig(); - - $this->assignFieldValues( - $template, - $this->buildFieldName($formField), - $formField->getViewData(), - $formFieldConfig->getType(), - $this->findCollectionFieldFormView($form->getView(), $formField) - ); - - return ''; - } - - /** - * @param FormView $formView - * @param SymfonyForm $formField - * @return array - */ - protected function findCollectionFieldFormView(FormView $formView, SymfonyForm $formField) - { - $formFieldParentList = []; - - do { - // don't need to set first form name child - if (null === $formField->getParent()) { - break; - } - - $formFieldParentList[] = $formField->getConfig()->getName(); - - } while (null !== $formField = $formField->getParent()); - - $formFieldParentList = array_reverse($formFieldParentList); - - foreach ($formFieldParentList as $val) { - $formView = $formView->children[$val]; - } - - return $formView->vars; - } - - /** - * @param FormInterface $form - * @param array $tree - * @return string - * - * Tail recursive method that builds the field full name - */ - protected function buildFieldName(FormInterface $form, array &$tree = array()) - { - $config = $form->getConfig(); - $parent = $form->getParent(); - $hasParent = null !== $parent; - - if (null !== $proprietyPath = $config->getPropertyPath()) { - $name = (string)$proprietyPath; - } else { - $name = $config->getName(); - - if ($name === null) { - $name = ''; - } elseif ($name !== '' && $hasParent) { - $name = "[$name]"; - } - } - - array_unshift($tree, $name); - - if (!$hasParent) { - return implode("", $tree); - } - - return $this->buildFieldName($parent, $tree); - } - - /** - * @param $params - * @param \Smarty_Internal_Template $template - * @return mixed - * - * Counts collection entries - */ - public function formCollectionCount($params, \Smarty_Internal_Template $template) - { - /** - * Get parameters - */ - $form = $this->getInstanceFromParams($params); - $row = $this->getSymfonyFormFromParams($params, "row"); - $collection = $this->resolveCollection($this->getParam($params, "collection"), $form); - - $hash = $this->initializeCollection($form, $collection, $row); - - return $this->formCollectionCount[$hash]["total_count"]; - } - - /** - * @param BaseForm $form - * @param SymfonyForm $collection - * @param SymfonyForm $row - * @return string - * - * Initialize a collection into this class ( values stack, counting table ) - */ - protected function initializeCollection(BaseForm $form, SymfonyForm $collection, SymfonyForm $row = null) - { - $hash = $this->getFormStackHash($form, $collection); - - if (!isset($this->formCollectionStack[$hash])) { - $this->formCollectionStack[$hash] = $collection->all(); - } - - if (!isset($this->formCollectionCount[$hash])) { - $this->formCollectionCount[$hash] = [ - "count" => 0, - "limit" => 0, - "total_count" => count($this->formCollectionStack[$hash]), - ]; - } - - return $hash; - } - - /** - * @return array an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor("block", "form", $this, "generateForm"), - new SmartyPluginDescriptor("block", "form_field", $this, "renderFormField"), - new SmartyPluginDescriptor("block", "form_tagged_fields", $this, "renderTaggedFormFields"), - new SmartyPluginDescriptor("function", "form_hidden_fields", $this, "renderHiddenFormField"), - new SmartyPluginDescriptor("function", "form_enctype", $this, "formEnctype"), - new SmartyPluginDescriptor("block", "form_error", $this, "formError"), - new SmartyPluginDescriptor("function", "form_field_attributes", $this, "standardFormFieldAttributes"), - new SmartyPluginDescriptor("function", "render_form_field", $this, "standardFormFieldRendering"), - new SmartyPluginDescriptor("block", "custom_render_form_field", $this, "customFormFieldRendering"), - new SmartyPluginDescriptor("block", "form_collection", $this, "renderFormCollection"), - new SmartyPluginDescriptor("block", "form_collection_field", $this, "renderFormCollectionField"), - new SmartyPluginDescriptor("function", "form_collection_count", $this, "formCollectionCount"), - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Format.php b/local/local/modules/TheliaSmarty/Template/Plugins/Format.php deleted file mode 100644 index 97220fde..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Format.php +++ /dev/null @@ -1,496 +0,0 @@ - - * @author Benjamin Perche - */ -class Format extends AbstractSmartyPlugin -{ - private static $dateKeys = ["day", "month", "year"]; - private static $timeKeys = ["hour", "minute", "second"]; - - /** @var RequestStack */ - protected $requestStack; - - public function __construct(RequestStack $requestStack) - { - $this->requestStack = $requestStack; - } - - /** - * return date in expected format - * - * available parameters : - * date => DateTime object (mandatory) - * format => expected format - * output => list of default system format. Values available : - * date => date format - * time => time format - * datetime => datetime format (default) - * - * ex : - * {format_date date=$dateTimeObject format="Y-m-d H:i:s"} will output the format with specific format - * {format_date date=$dateTimeObject format="l F j" locale="fr_FR"} will output the format with specific format (see date() function) - * {format_date date=$dateTimeObject output="date"} will output the date using the default date system format - * {format_date date=$dateTimeObject} will output with the default datetime system format - * - * @param array $params - * @param null $template - * @throws \TheliaSmarty\Template\Exception\SmartyPluginException - * @return string - */ - public function formatDate($params, $template = null) - { - $date = $this->getParam($params, "date", false); - - if ($date === false) { - // Check if we have a timestamp - $timestamp = $this->getParam($params, "timestamp", false); - - if ($timestamp === false) { - // No timestamp => error - throw new SmartyPluginException("Either date or timestamp is a mandatory parameter in format_date function"); - } else { - $date = new \DateTime(); - $date->setTimestamp($timestamp); - } - } elseif (is_array($date)) { - $keys = array_keys($date); - - $isDate = $this->arrayContains(static::$dateKeys, $keys); - $isTime = $this->arrayContains(static::$timeKeys, $keys); - - // If this is not a date, fallback on today - // If this is not a time, fallback on midnight - $dateFormat = $isDate ? sprintf("%d-%d-%d", $date["year"], $date["month"], $date["day"]) : (new \DateTime())->format("Y-m-d"); - $timeFormat = $isTime ? sprintf("%d:%d:%d", $date["hour"], $date["minute"], $date["second"]) : "0:0:0"; - - $date = new \DateTime(sprintf("%s %s", $dateFormat, $timeFormat)); - } - - if (!($date instanceof \DateTime)) { - try { - $date = new \DateTime($date); - } catch (\Exception $e) { - return ""; - } - } - - $format = $this->getParam($params, "format", false); - - if ($format === false) { - $format = DateTimeFormat::getInstance($this->requestStack->getCurrentRequest())->getFormat($this->getParam($params, "output", null)); - } - - $locale = $this->getParam($params, 'locale', false); - - if (false === $locale) { - $value = $date->format($format); - } else { - $value = $this->formatDateWithLocale($date, $locale, $format); - } - - return $value; - } - - private function formatDateWithLocale(\DateTime $date, $locale, $format) - { - if (false === strpos($format, '%')) { - $formatter = new IntlDateFormatter($locale, IntlDateFormatter::FULL, IntlDateFormatter::FULL); - - $icuFormat = $this->convertDatePhpToIcu($format); - $formatter->setPattern($icuFormat); - - $localizedDate = $formatter->format($date); - } else { - // for backward compatibility - if (function_exists('setlocale')) { - // Save the current locale - $systemLocale = setlocale(LC_TIME, 0); - setlocale(LC_TIME, $locale); - $localizedDate = strftime($format, $date->getTimestamp()); - // Restore the locale - setlocale(LC_TIME, $systemLocale); - } else { - // setlocale() function not available => error - throw new SmartyPluginException("The setlocale() function is not available on your system."); - } - } - - return $localizedDate; - } - - /** - * - * display numbers in expected format - * - * available parameters : - * number => int or float number - * decimals => how many decimals format expected - * dec_point => separator for the decimal point - * thousands_sep => thousands separator - * - * ex : {format_number number="1246.12" decimals="1" dec_point="," thousands_sep=" "} will output "1 246,1" - * - * @param $params - * @param null $template - * @throws \TheliaSmarty\Template\Exception\SmartyPluginException - * @return string the expected number formatted - */ - public function formatNumber($params, $template = null) - { - $number = $this->getParam($params, "number", false); - - if ($number === false || $number === '') { - return ""; - } - - return NumberFormat::getInstance($this->requestStack->getCurrentRequest())->format( - $number, - $this->getParam($params, "decimals", null), - $this->getParam($params, "dec_point", null), - $this->getParam($params, "thousands_sep", null) - ); - } - - /** - * - * display a amount in expected format - * - * available parameters : - * number => int or float number - * decimals => how many decimals format expected - * dec_point => separator for the decimal point - * thousands_sep => thousands separator - * symbol => Currency symbol - * - * ex : {format_money number="1246.12" decimals="1" dec_point="," thousands_sep=" " symbol="€"} will output "1 246,1 €" - * - * @param $params - * @param null $template - * @throws \TheliaSmarty\Template\Exception\SmartyPluginException - * @return string the expected number formatted - */ - public function formatMoney($params, $template = null) - { - $number = $this->getParam($params, "number", false); - - if ($number === false || $number === '') { - return ""; - } - - if ($this->getParam($params, "symbol", null) === null) { - return MoneyFormat::getInstance($this->requestStack->getCurrentRequest())->formatByCurrency( - $number, - $this->getParam($params, "decimals", null), - $this->getParam($params, "dec_point", null), - $this->getParam($params, "thousands_sep", null), - $this->getParam($params, "currency_id", null) - ); - } - - return MoneyFormat::getInstance($this->requestStack->getCurrentRequest())->format( - $number, - $this->getParam($params, "decimals", null), - $this->getParam($params, "dec_point", null), - $this->getParam($params, "thousands_sep", null), - $this->getParam($params, "symbol", null) - ); - } - - - /** - * return two-dimensional arrays in string - * - * available parameters : - * values => array 2D ['key A' => ['value 1', 'value 2'], 'key B' => ['value 3', 'value 4']] - * separators => ['key value separator', 'value value separator', 'key key separator'] - * - * ex : - * {format_array_2d values=['Colors' => ['Green', 'Yellow', 'Red'], 'Material' => ['Wood']] separators=[' : ', ' / ', ' | ']} - * will output the format with specific format : "Colors : Green / Yellow / Red | Material : Wood" - * - * @param $params - * @return string - */ - public function formatTwoDimensionalArray($params) - { - $output = ''; - $values = $this->getParam($params, "values", null); - $separators = $this->getParam($params, "separators", [' : ', ' / ', ' | ']); - - if (!is_array($values)) { - return $output; - } - - foreach ($values as $key => $value) { - if ($output !== '') { - $output .= $separators[2]; - } - - $output .= $key . $separators[0]; - - if (!is_array($value)) { - $output .= $value; - continue; - } - - $output .= implode($separators[1], $value); - } - return $output; - } - - protected function arrayContains(array $expected, array $hayStack) - { - foreach ($expected as $value) { - if (!in_array($value, $hayStack)) { - return false; - } - } - - return true; - } - - /** - * This function comes from [Yii framework](http://www.yiiframework.com/) - * - * - * Converts a date format pattern from [php date() function format][] to [ICU format][]. - * - * The conversion is limited to date patterns that do not use escaped characters. - * Patterns like `jS \o\f F Y` which will result in a date like `1st of December 2014` may not be converted correctly - * because of the use of escaped characters. - * - * Pattern constructs that are not supported by the ICU format will be removed. - * - * [php date() function format]: http://php.net/manual/en/function.date.php - * [ICU format]: http://userguide.icu-project.org/formatparse/datetime#TOC-Date-Time-Format-Syntax - * - * @param string $pattern date format pattern in php date()-function format. - * @return string The converted date format pattern. - */ - protected function convertDatePhpToIcu($pattern) - { - // http://php.net/manual/en/function.date.php - return strtr( - $pattern, - [ - // Day - 'd' => 'dd', // Day of the month, 2 digits with leading zeros 01 to 31 - 'D' => 'eee', // A textual representation of a day, three letters Mon through Sun - 'j' => 'd', // Day of the month without leading zeros 1 to 31 - 'l' => 'eeee', // A full textual representation of the day of the week Sunday through Saturday - 'N' => 'e', // ISO-8601 numeric representation of the day of the week, 1 (for Monday) through 7 (for Sunday) - 'S' => '', // English ordinal suffix for the day of the month, 2 characters st, nd, rd or th. Works well with j - 'w' => '', // Numeric representation of the day of the week 0 (for Sunday) through 6 (for Saturday) - 'z' => 'D', // The day of the year (starting from 0) 0 through 365 - // Week - 'W' => 'w', // ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0) Example: 42 (the 42nd week in the year) - // Month - 'F' => 'MMMM', // A full textual representation of a month, January through December - 'm' => 'MM', // Numeric representation of a month, with leading zeros 01 through 12 - 'M' => 'MMM', // A short textual representation of a month, three letters Jan through Dec - 'n' => 'M', // Numeric representation of a month, without leading zeros 1 through 12, not supported by ICU but we fallback to "with leading zero" - 't' => '', // Number of days in the given month 28 through 31 - // Year - 'L' => '', // Whether it's a leap year, 1 if it is a leap year, 0 otherwise. - 'o' => 'Y', // ISO-8601 year number. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead. - 'Y' => 'yyyy', // A full numeric representation of a year, 4 digits Examples: 1999 or 2003 - 'y' => 'yy', // A two digit representation of a year Examples: 99 or 03 - // Time - 'a' => 'a', // Lowercase Ante meridiem and Post meridiem, am or pm - 'A' => 'a', // Uppercase Ante meridiem and Post meridiem, AM or PM, not supported by ICU but we fallback to lowercase - 'B' => '', // Swatch Internet time 000 through 999 - 'g' => 'h', // 12-hour format of an hour without leading zeros 1 through 12 - 'G' => 'H', // 24-hour format of an hour without leading zeros 0 to 23h - 'h' => 'hh', // 12-hour format of an hour with leading zeros, 01 to 12 h - 'H' => 'HH', // 24-hour format of an hour with leading zeros, 00 to 23 h - 'i' => 'mm', // Minutes with leading zeros 00 to 59 - 's' => 'ss', // Seconds, with leading zeros 00 through 59 - 'u' => '', // Microseconds. Example: 654321 - // Timezone - 'e' => 'VV', // Timezone identifier. Examples: UTC, GMT, Atlantic/Azores - 'I' => '', // Whether or not the date is in daylight saving time, 1 if Daylight Saving Time, 0 otherwise. - 'O' => 'xx', // Difference to Greenwich time (GMT) in hours, Example: +0200 - 'P' => 'xxx', // Difference to Greenwich time (GMT) with colon between hours and minutes, Example: +02:00 - 'T' => 'zzz', // Timezone abbreviation, Examples: EST, MDT ... - 'Z' => '', // Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. -43200 through 50400 - // Full Date/Time - 'c' => 'yyyy-MM-dd\'T\'HH:mm:ssxxx', // ISO 8601 date, e.g. 2004-02-12T15:19:21+00:00 - 'r' => 'eee, dd MMM yyyy HH:mm:ss xx', // RFC 2822 formatted date, Example: Thu, 21 Dec 2000 16:01:07 +0200 - 'U' => '', // Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) - ] - ); - } - - /** - * - * display an address in expected format - * - * available parameters : - * address => the id of the address to display - * order_address => the id of the order address to display - * from_country_id => the country id - * dec_point => separator for the decimal point - * thousands_sep => thousands separator - * symbol => Currency symbol - * - * ex : {format_money number="1246.12" decimals="1" dec_point="," thousands_sep=" " symbol="€"} will output "1 246,1 €" - * - * @param $params - * @param null $template - * @throws \TheliaSmarty\Template\Exception\SmartyPluginException - * @return string the expected number formatted - */ - public function formatAddress($params, $template = null) - { - $postal = filter_var( - $this->getParam($params, "postal", null), - FILTER_VALIDATE_BOOLEAN - ); - - $html = filter_var( - $this->getParam($params, "html", true), - FILTER_VALIDATE_BOOLEAN - ); - - $htmlTag = $this->getParam($params, "html_tag", "p"); - $originCountry = $this->getParam($params, "origin_country", null); - $locale = $this->getParam($params, "locale", $this->getSession()->getLang()->getLocale()); - - // extract html attributes - $htmlAttributes = []; - foreach ($params as $k => $v) { - if (strpos($k, 'html_') !== false && $k !== 'html_tag') { - $htmlAttributes[substr($k, 5)] = $v; - } - } - - // get address or order address - $address = null; - if (null !== $id = $this->getParam($params, "address", null)) { - if (null === $address = AddressQuery::create()->findPk($id)) { - return ''; - } - } elseif (null !== $id = $this->getParam($params, "order_address", null)) { - if (null === $address = OrderAddressQuery::create()->findPk($id)) { - return ''; - } - } else { - // try to parse arguments to build address - $address = $this->getAddressFormParams($params); - } - - if (null === $address) { - throw new SmartyPluginException( - "Either address, order_address or full list of address fields should be provided" - ); - } - - $addressFormat = AddressFormat::getInstance(); - if ($postal) { - if ($address instanceof Address) { - $formattedAddress = $addressFormat->postalLabelFormat($address, $locale, $originCountry); - } else { - $formattedAddress = $addressFormat->postalLabelFormatTheliaAddress($address, $locale, $originCountry); - } - } else { - if ($address instanceof Address) { - $formattedAddress = $addressFormat->format($address, $locale, $html, $htmlTag, $htmlAttributes); - } else { - $formattedAddress = $addressFormat->formatTheliaAddress($address, $locale, $html, $htmlTag, $htmlAttributes); - } - } - - return $formattedAddress; - } - - protected function getAddressFormParams($params) - { - // Check if there is arguments - $addressArgs = [ - 'country_code', - 'administrative_area', - 'locality', - 'dependent_locality', - 'postal_code', - 'sorting_code', - 'address_line1', - 'address_line2', - 'organization', - 'recipient', - 'locale' - ]; - $valid = false; - - $address = new Address(); - - foreach ($addressArgs as $arg) { - if (null !== $argVal = $this->getParam($params, $arg, null)) { - $valid = true; - $functionName = 'with' . Container::camelize($arg); - $address = $address->$functionName($argVal); - } - } - - if (false === $valid) { - return null; - } - - return $address; - } - - /** - * @return SmartyPluginDescriptor[] - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor("function", "format_date", $this, "formatDate"), - new SmartyPluginDescriptor("function", "format_number", $this, "formatNumber"), - new SmartyPluginDescriptor("function", "format_money", $this, "formatMoney"), - new SmartyPluginDescriptor("function", "format_array_2d", $this, "formatTwoDimensionalArray"), - new SmartyPluginDescriptor("function", "format_address", $this, "formatAddress"), - ); - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->requestStack->getCurrentRequest()->getSession(); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Hook.php b/local/local/modules/TheliaSmarty/Template/Plugins/Hook.php deleted file mode 100644 index c9edadc2..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Hook.php +++ /dev/null @@ -1,476 +0,0 @@ - - */ -class Hook extends AbstractSmartyPlugin -{ - private $dispatcher; - - /** @var Translator */ - protected $translator; - - /** @var Module */ - protected $smartyPluginModule = null; - - /** @var array */ - protected $hookResults = array(); - - /** @var array */ - protected $varstack = array(); - - /** @var bool debug */ - protected $debug = false; - - public function __construct($debug, ContainerAwareEventDispatcher $dispatcher) - { - $this->debug = $debug; - $this->dispatcher = $dispatcher; - $this->translator = $dispatcher->getContainer()->get("thelia.translator"); - $this->hookResults = array(); - } - - /** - * Generates the content of the hook - * - * {hook name="hook_code" var1="value1" var2="value2" ... } - * - * This function create an event, feed it with the custom variables passed to the function (var1, var2, ...) and - * dispatch it to the hooks that respond to it. - * - * The name of the event is `hook.{context}.{hook_code}` where : - * * context : the id of the context of the smarty render : 1: frontoffice, 2: backoffice, 3: email, 4: pdf - * * hook_code : the code of the hook - * - * The event collects all the fragments of text rendered in each modules functions that listen to this event. - * Finally, this fragments are concatenated and injected in the template - * - * @param array $params the params passed in the smarty function - * @param \TheliaSmarty\Template\SmartyParser $smarty the smarty parser - * - * @return string the contents generated by modules - */ - public function processHookFunction($params, &$smarty) - { - $hookName = $this->getParam($params, 'name'); - $module = intval($this->getParam($params, 'module', 0)); - $moduleCode = $this->getParam($params, 'modulecode', ""); - - $type = $smarty->getTemplateDefinition()->getType(); - - $event = new HookRenderEvent($hookName, $params); - - $event->setArguments($this->getArgumentsFromParams($params)); - - $eventName = sprintf('hook.%s.%s', $type, $hookName); - - // this is a hook specific to a module - if (0 === $module && "" !== $moduleCode) { - if (null !== $mod = ModuleQuery::create()->findOneByCode($moduleCode)) { - $module = $mod->getId(); - } - } - if (0 !== $module) { - $eventName .= '.' . $module; - } - - $this->getDispatcher()->dispatch($eventName, $event); - - $content = trim($event->dump()); - - if ($this->debug && $smarty->getRequest()->get('SHOW_HOOK')) { - $content = self::showHook($hookName, $params) . $content; - } - - $this->hookResults[$hookName] = $content; - - // support for compatibility with module_include - if ($type === TemplateDefinition::BACK_OFFICE) { - $content .= $this->moduleIncludeCompat($params, $smarty); - } - - return $content; - } - - /** - * Call the plugin function module_include for backward compatibility. - * - * @param array $params the params passed in the smarty function - * @param \TheliaSmarty\Template\SmartyParser $smarty the smarty parser - * - * @return string the contents generated by module_include function - */ - protected function moduleIncludeCompat($params, &$smarty) - { - $plugin = $this->getSmartyPluginModule(); - $params = array( - "location" => $this->getParam($params, 'location', null), - "module" => $this->getParam($params, 'modulecode', null), - "countvar" => $this->getParam($params, 'countvar', null) - ); - - return $plugin->theliaModule($params, $smarty); - } - - /** - * get the smarty plugin Module - * - * @return Module the smarty plugin Module - */ - protected function getSmartyPluginModule() - { - if (null === $this->smartyPluginModule) { - $this->smartyPluginModule = $this->dispatcher->getContainer()->get("smarty.plugin.module"); - } - - return $this->smartyPluginModule; - } - - protected function showHook($hookName, $params) - { - $content = '
' . $hookName; - - foreach ($params as $name => $value) { - if ($name !== 'location' && $name !== "name") { - $type = ''; - if (is_object($value)) { - $value = get_class($value); - $type = 'object'; - } elseif (is_array($value)) { - $value = implode(',', $value); - $type = 'array'; - } elseif (is_int($value)) { - $type = 'float'; - } elseif (is_int($value)) { - $type = 'int'; - } elseif (is_string($value)) { - $value = (strlen($value) > 30) ? substr($value, 0, 30) . '...' : $value; - $type = 'string'; - } - - if ($type !== '') { - $type = '' . $type . ' '; - } - - $content .= '' . $name . ' = ' . $type . $value . ''; - } - } - - return $content . '
'; - } - - /** - * Process the content of the hook block. - * - * {hookblock name="hook_code" var1="value1" var2="value2" ... } - * - * This function create an event, feed it with the custom variables passed to the function (var1, var2, ...) and - * dispatch it to the hooks that respond to it. - * - * The name of the event is `hook.{context}.{hook_code}` where : - * * context : the id of the context of the smarty render : 1: frontoffice, 2: backoffice, 3: email, 4: pdf - * * hook_code : the code of the hook - * - * The event collects all the fragments generated by modules that listen to this event and add it to a fragmentBag. - * This fragmentBag is not used directly. This is the forhook block that iterates over the fragmentBag to inject - * data in the template. - * - * @param array $params - * @param string $content - * @param \TheliaSmarty\Template\SmartyParser $smarty - * @param bool $repeat - * - * @return string the generated content - */ - public function processHookBlock($params, $content, $smarty, &$repeat) - { - $hookName = $this->getParam($params, 'name'); - $module = intval($this->getParam($params, 'module', 0)); - // explicit definition of variable that can be returned - $fields = preg_replace( - '|[^a-zA-Z0-9,\-_]|', - '', - $this->getParam($params, 'fields', '') - ); - $fields = ('' !== $fields) ? explode(",", $fields) : []; - - if (!$repeat) { - if ($this->debug && $smarty->getRequest()->get('SHOW_HOOK')) { - $content = self::showHook($hookName, $params) . $content; - } - - return $content; - } - - $type = $smarty->getTemplateDefinition()->getType(); - - $event = new HookRenderBlockEvent($hookName, $params, $fields); - - $event->setArguments($this->getArgumentsFromParams($params)); - - $eventName = sprintf('hook.%s.%s', $type, $hookName); - - // this is a hook specific to a module - if (0 !== $module) { - $eventName .= '.' . $module; - } - - $this->getDispatcher()->dispatch($eventName, $event); - - // save results so we can use it in forHook block - $this->hookResults[$hookName] = $event->get(); - } - - /** - * Process a {forhook rel="hookname"} ... {/forhook} - * - * The forhook iterates over the results return by a hookblock : - * - * {hookblock name="product.additional"} - * {forhook rel="product.additional"} - *
- *

{$title}

- *

{$content}

- *
- * {/forhook} - * {/hookblock} - * - * @param array $params - * @param string $content - * @param \TheliaSmarty\Template\SmartyParser $smarty - * @param bool $repeat - * - * @throws \InvalidArgumentException - * @return string the generated content - */ - public function processForHookBlock($params, $content, $smarty, &$repeat) - { - $rel = $this->getParam($params, 'rel'); - if (null == $rel) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'rel' parameter in forHook arguments") - ); - } - - /** @var FragmentBag $fragments */ - $fragments = null; - - // first call - if ($content === null) { - if (!array_key_exists($rel, $this->hookResults)) { - throw new \InvalidArgumentException( - $this->translator->trans("Related hook name '%name' is not defined.", ['%name' => $rel]) - ); - } - - $fragments = $this->hookResults[$rel]; - $fragments->rewind(); - - if ($fragments->isEmpty()) { - $repeat = false; - } - } else { - $fragments = $this->hookResults[$rel]; - $fragments->next(); - } - - if ($fragments->valid()) { - /** @var Fragment $fragment */ - $fragment = $fragments->current(); - - // On first iteration, save variables that may be overwritten by this hook - if (!isset($this->varstack[$rel])) { - $saved_vars = array(); - - $varlist = $fragment->getVars(); - - foreach ($varlist as $var) { - $saved_vars[$var] = $smarty->getTemplateVars($var); - } - - $this->varstack[$rel] = $saved_vars; - } - - foreach ($fragment->getVarVal() as $var => $val) { - $smarty->assign($var, $val); - } - // continue iteration - $repeat = true; - } - - // end - if (!$repeat) { - // Restore previous variables values before terminating - if (isset($this->varstack[$rel])) { - foreach ($this->varstack[$rel] as $var => $value) { - $smarty->assign($var, $value); - } - - unset($this->varstack[$rel]); - } - } - - if ($content !== null) { - if ($fragments->isEmpty()) { - $content = ""; - } - - return $content; - } - - return ''; - } - - /** - * Process {elsehook rel="hookname"} ... {/elsehook} block - * - * @param array $params hook parameters - * @param string $content hook text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * - * @return string the hook output - */ - public function elseHook( - $params, - $content, - /** @noinspection PhpUnusedParameterInspection */ $template, - &$repeat - ) { - // When encountering close tag, check if hook has results. - if ($repeat === false) { - return $this->checkEmptyHook($params) ? $content : ''; - } - - return ''; - } - - /** - * Process {ifhook rel="hookname"} ... {/ifhook} block - * - * @param array $params hook parameters - * @param string $content hook text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * - * @return string the hook output - */ - public function ifHook($params, $content, /** @noinspection PhpUnusedParameterInspection */ $template, &$repeat) - { - // When encountering close tag, check if hook has results. - if ($repeat === false) { - return $this->checkEmptyHook($params) ? '' : $content; - } - - return ''; - } - - /** - * Check if a hook has returned results. The hook should have been executed before, or an - * InvalidArgumentException is thrown - * - * @param array $params - * - * @return boolean true if the hook is empty - * @throws \InvalidArgumentException - */ - protected function checkEmptyHook($params) - { - $hookName = $this->getParam($params, 'rel'); - - if (null == $hookName) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'rel' parameter in ifhook/elsehook arguments") - ); - } - - if (!isset($this->hookResults[$hookName])) { - throw new \InvalidArgumentException( - $this->translator->trans("Related hook name '%name' is not defined.", ['%name' => $hookName]) - ); - } - - return (is_string($this->hookResults[$hookName]) && '' === $this->hookResults[$hookName] - || !is_string($this->hookResults[$hookName]) && $this->hookResults[$hookName]->isEmpty() - ); - } - - /** - * Clean the params of the params passed to the hook function or block to feed the arguments of the event - * with relevant arguments. - * - * @param $params - * - * @return array - */ - protected function getArgumentsFromParams($params) - { - $args = array(); - $excludes = array("name", "before", "separator", "after", "fields"); - - if (is_array($params)) { - foreach ($params as $key => $value) { - if (!in_array($key, $excludes)) { - $args[$key] = $value; - } - } - } - - return $args; - } - - /** - * Define the various smarty plugins handled by this class - * - * @return array an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'hook', $this, 'processHookFunction'), - new SmartyPluginDescriptor('block', 'hookblock', $this, 'processHookBlock'), - new SmartyPluginDescriptor('block', 'forhook', $this, 'processForHookBlock'), - new SmartyPluginDescriptor('block', 'elsehook', $this, 'elseHook'), - new SmartyPluginDescriptor('block', 'ifhook', $this, 'ifHook'), - ); - } - - /** - * Return the event dispatcher, - * - * @return \Symfony\Component\EventDispatcher\EventDispatcher - */ - public function getDispatcher() - { - return $this->dispatcher; - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Module.php b/local/local/modules/TheliaSmarty/Template/Plugins/Module.php deleted file mode 100644 index b0c8123a..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Module.php +++ /dev/null @@ -1,104 +0,0 @@ -debug = $debug; - $this->requestStack = $requestStack; - } - /** - * Process theliaModule template inclusion function - * - * This function accepts two parameters: - * - * - location : this is the location in the admin template. Example: folder-edit'. The function will search for - * AdminIncludes/.html file, and fetch it as a Smarty template. - * - countvar : this is the name of a template variable where the number of found modules includes will be assigned. - * - * @param array $params - * @param \Smarty_Internal_Template $template - * @internal param \Thelia\Core\Template\Smarty\Plugins\unknown $smarty - * - * @return string - */ - public function theliaModule($params, \Smarty_Internal_Template $template) - { - $content = null; - $count = 0; - if (false !== $location = $this->getParam($params, 'location', false)) { - if ($this->debug === true && $this->requestStack->getCurrentRequest()->get('SHOW_INCLUDE')) { - echo sprintf('
%s
', $location); - } - - $moduleLimit = $this->getParam($params, 'module', null); - - $modules = ModuleQuery::getActivated(); - - /** @var \Thelia\Model\Module $module */ - foreach ($modules as $module) { - if (null !== $moduleLimit && $moduleLimit != $module->getCode()) { - continue; - } - - $file = $module->getAbsoluteAdminIncludesPath() . DS . $location . '.html'; - - if (file_exists($file)) { - $output = trim(file_get_contents($file)); - - if (! empty($output)) { - $content .= $output; - - $count++; - } - } - } - } - - if (false !== $countvarname = $this->getParam($params, 'countvar', false)) { - $template->assign($countvarname, $count); - } - - if (! empty($content)) { - return $template->fetch(sprintf("string:%s", $content)); - } - - return ""; - } - - /** - * Define the various smarty plugins hendled by this class - * - * @return an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'module_include', $this, 'theliaModule'), - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Render.php b/local/local/modules/TheliaSmarty/Template/Plugins/Render.php deleted file mode 100644 index 2f7abd3d..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Render.php +++ /dev/null @@ -1,167 +0,0 @@ - - */ -class Render extends AbstractSmartyPlugin -{ - /** @var ControllerResolver */ - protected $controllerResolver; - - /** @var RequestStack */ - protected $requestStack; - - /** @var Container */ - protected $container; - - /** - * @param ControllerResolver $controllerResolver - * @param RequestStack $requestStack - * @param Container $container - */ - public function __construct(ControllerResolver $controllerResolver, RequestStack $requestStack, Container $container) - { - $this->controllerResolver = $controllerResolver; - $this->requestStack = $requestStack; - $this->container = $container; - } - - /** - * @param $params - * @return mixed|string - * @throws SmartyPluginException - */ - public function processRender($params) - { - if (null === $params["action"]) { - throw new SmartyPluginException( - "You must declare the 'action' parameter in the 'render' smarty function" - ); - } - - $request = $this->prepareRequest($params); - - $this->requestStack->push($request); - - $controller = $this->controllerResolver->getController($request); - $controllerParameters = $this->controllerResolver->getArguments($request, $controller); - - $response = call_user_func_array($controller, $controllerParameters); - - $this->requestStack->pop(); - - if ($response instanceof Response) { - return $response->getContent(); - } - - return $response; - } - - protected function prepareRequest(array $params) - { - // Get action - $action = $this->popParameter($params, "action"); - - // Then get and filter query, request and method - $query = $this->popParameter($params, "query"); - $query = $this->filterArrayStrParam($query); - $request = $this->popParameter($params, "request"); - $request = $this->filterArrayStrParam($request); - $method = strtoupper($this->popParameter($params, "method", "GET")); - - // Then build the request - $requestObject = clone $this->requestStack->getCurrentRequest(); - $requestObject->query = new ParameterBag($query); - $requestObject->request = new ParameterBag($request); - $requestObject->attributes = new ParameterBag(["_controller" => $action]); - - // Apply the method - if (!empty($request) && "GET" === $method) { - $requestObject->setMethod("POST"); - } else { - $requestObject->setMethod($method); - } - - // Then all the attribute parameters - foreach ($params as $key => $attribute) { - $requestObject->attributes->set($key, $attribute); - } - - return $requestObject; - } - - /** - * @param $param - * @return array - * - * If $param is an array, return it. - * Else parser it to translate a=b&c=d&e[]=f&g[h]=i to - * ["a"=>"b","c"=>"d","e"=>["f"],"g"=>["h"=>"i"] - */ - protected function filterArrayStrParam($param) - { - if (is_array($param)) { - return $param; - } - - parse_str($param, $param); - - if (false === $param) { - return []; - } - - return $param; - } - - /** - * @param array $params - * @param $name - * @param null $default - * @return mixed - * - * Get a parameter then unset it - */ - protected function popParameter(array $params, $name, $default = null) - { - $param = $this->getParam($params, $name, $default); - - if (array_key_exists($name, $params)) { - unset($params[$name]); - } - - return $param; - } - - /** - * @return SmartyPluginDescriptor[] an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'render', $this, 'processRender'), - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Security.php b/local/local/modules/TheliaSmarty/Template/Plugins/Security.php deleted file mode 100644 index bd14bfdc..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Security.php +++ /dev/null @@ -1,146 +0,0 @@ -securityContext = $securityContext; - $this->requestStack = $requestStack; - $this->dispatcher = $dispatcher; - } - - /** - * Process security check function - * - * @param array $params - * @param \Smarty $smarty - * @return string no text is returned. - * @throws \Thelia\Core\Security\Exception\AuthenticationException - * @throws AuthenticationException - * @throws AuthorizationException - */ - public function checkAuthFunction($params, &$smarty) - { - $roles = $this->explode($this->getParam($params, 'role')); - $resources = $this->explode($this->getParam($params, 'resource')); - $modules = $this->explode($this->getParam($params, 'module')); - $accesses = $this->explode($this->getParam($params, 'access')); - - if (! $this->securityContext->isGranted($roles, $resources, $modules, $accesses)) { - if (null === $this->securityContext->checkRole($roles)) { - // The current user is not logged-in. - $ex = new AuthenticationException( - sprintf( - "User not granted for roles '%s', to access resources '%s' with %s.", - implode(',', $roles), - implode(',', $resources), - implode(',', $accesses) - ) - ); - - $loginTpl = $this->getParam($params, 'login_tpl'); - - if (null != $loginTpl) { - $ex->setLoginTemplate($loginTpl); - } - } else { - // We have a logged-in user, who do not have the proper permission. Issue an AuthorizationException. - $ex = new AuthorizationException( - sprintf( - "User not granted for roles '%s', to access resources '%s' with %s.", - implode(',', $roles), - implode(',', $resources), - implode(',', $accesses) - ) - ); - } - - throw $ex; - } - - return ''; - } - - public function checkCartNotEmptyFunction($params, &$smarty) - { - $cart = $this->getSession()->getSessionCart($this->dispatcher); - if ($cart===null || $cart->countCartItems() == 0) { - throw new OrderException('Cart must not be empty', OrderException::CART_EMPTY, array('empty' => 1)); - } - - return ""; - } - - public function checkValidDeliveryFunction($params, &$smarty) - { - $order = $this->getSession()->getOrder(); - /* Does address and module still exists ? We assume address owner can't change neither module type */ - if ($order !== null) { - $checkAddress = AddressQuery::create()->findPk($order->getChoosenDeliveryAddress()); - $checkModule = ModuleQuery::create()->findPk($order->getDeliveryModuleId()); - } else { - $checkAddress = $checkModule = null; - } - - if (null === $order || null == $checkAddress || null === $checkModule) { - throw new OrderException('Delivery must be defined', OrderException::UNDEFINED_DELIVERY, array('missing' => 1)); - } - - return ""; - } - - /** - * Define the various smarty plugins handled by this class - * - * @return array an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'check_auth', $this, 'checkAuthFunction'), - new SmartyPluginDescriptor('function', 'check_cart_not_empty', $this, 'checkCartNotEmptyFunction'), - new SmartyPluginDescriptor('function', 'check_valid_delivery', $this, 'checkValidDeliveryFunction'), - ); - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->requestStack->getCurrentRequest()->getSession(); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/TheliaLoop.php b/local/local/modules/TheliaSmarty/Template/Plugins/TheliaLoop.php deleted file mode 100644 index f2bb5ad8..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/TheliaLoop.php +++ /dev/null @@ -1,463 +0,0 @@ -container = $container; - $this->request = $container->get('request_stack')->getCurrentRequest(); - $this->dispatcher = $container->get('event_dispatcher'); - $this->securityContext = $container->get('thelia.securityContext'); - $this->translator = $container->get("thelia.translator"); - } - - /** - * @param string $loopName - * @return PropelModelPager - * @throws \InvalidArgumentException if no pagination was found for loop - */ - public static function getPagination($loopName) - { - if (array_key_exists($loopName, self::$pagination)) { - return self::$pagination[$loopName]; - } else { - throw new \InvalidArgumentException( - Translator::getInstance()->trans("No pagination currently defined for loop name '%name'", ['%name' => $loopName ]) - ); - } - } - - /** - * Process the count function: executes a loop and return the number of items found - * - * @param array $params parameters array - * @param \Smarty_Internal_Template $template - * - * @return int the item count - * @throws \InvalidArgumentException if a parameter is missing - * - */ - public function theliaCount($params, /** @noinspection PhpUnusedParameterInspection */ $template) - { - $type = $this->getParam($params, 'type'); - - if (null == $type) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'type' parameter in {count} loop arguments") - ); - } - - $loop = $this->createLoopInstance($params); - - return $loop->count(); - } - - /** - * Process {loop name="loop name" type="loop type" ... } ... {/loop} block - * - * @param array $params - * @param string $content - * @param \Smarty_Internal_Template $template - * @param boolean $repeat - * - * @throws \InvalidArgumentException - * - * @return void|string - */ - public function theliaLoop($params, $content, $template, &$repeat) - { - $name = $this->getParam($params, 'name'); - - if (null == $name) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'name' parameter in loop arguments") - ); - } - - $type = $this->getParam($params, 'type'); - - if (null == $type) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'type' parameter in loop arguments") - ); - } - - if ($content === null) { - // Check if a loop with the same name exists in the current scope, and abort if it's the case. - if (array_key_exists($name, $this->varstack)) { - throw new \InvalidArgumentException( - $this->translator->trans("A loop named '%name' already exists in the current scope.", ['%name' => $name]) - ); - } - - $loop = $this->createLoopInstance($params); - - self::$pagination[$name] = null; - - // We have to clone the result, as exec() returns a cached LoopResult object, which may cause side effects - // if loops with the same argument set are nested (see https://github.com/thelia/thelia/issues/2213) - $loopResults = clone($loop->exec(self::$pagination[$name])); - - $loopResults->rewind(); - - $this->loopstack[$name] = $loopResults; - - // No results ? The loop is terminated, do not evaluate loop text. - if ($loopResults->isEmpty()) { - $repeat = false; - } - } else { - $loopResults = $this->loopstack[$name]; - - $loopResults->next(); - } - - if ($loopResults->valid()) { - $loopResultRow = $loopResults->current(); - - // On first iteration, save variables that may be overwritten by this loop - if (! isset($this->varstack[$name])) { - $saved_vars = array(); - - $varlist = $loopResultRow->getVars(); - - foreach ($varlist as $var) { - $saved_vars[$var] = $template->getTemplateVars($var); - } - - $this->varstack[$name] = $saved_vars; - } - - foreach ($loopResultRow->getVarVal() as $var => $val) { - $template->assign($var, $val); - } - - $repeat = true; - } - - // Loop is terminated. Cleanup. - if (! $repeat) { - // Restore previous variables values before terminating - if (isset($this->varstack[$name])) { - foreach ($this->varstack[$name] as $var => $value) { - $template->assign($var, $value); - } - - unset($this->varstack[$name]); - } - } - - if ($content !== null) { - if ($loopResults->isEmpty()) { - $content = ""; - } - - return $content; - } - - return ''; - } - - /** - * Process {elseloop rel="loopname"} ... {/elseloop} block - * - * @param array $params loop parameters - * @param string $content loop text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * @return string the loop output - */ - public function theliaElseloop($params, $content, /** @noinspection PhpUnusedParameterInspection */ $template, &$repeat) - { - //Block the smarty interpretation in the elseloop - if ($content === null) { - if (! $this->checkEmptyLoop($params)) { - $repeat = false; - - return ''; - } - } - - return $content; - } - - /** - * Process {ifloop rel="loopname"} ... {/ifloop} block - * - * @param array $params loop parameters - * @param string $content loop text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * @return string the loop output - */ - public function theliaIfLoop($params, $content, /** @noinspection PhpUnusedParameterInspection */ $template, &$repeat) - { - // When encountering close tag, check if loop has results. - if ($repeat === false) { - return $this->checkEmptyLoop($params) ? '' : $content; - } - - return ''; - } - - /** - * Process {pageloop rel="loopname"} ... {/pageloop} block - * - * @param array $params loop parameters - * @param string $content loop text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * @return string the loop output - * @throws \InvalidArgumentException - */ - public function theliaPageLoop($params, $content, $template, &$repeat) - { - $loopName = $this->getParam($params, 'rel'); - - if (null == $loopName) { - throw new \InvalidArgumentException($this->translator->trans("Missing 'rel' parameter in page loop")); - } - - // Find pagination - $pagination = self::getPagination($loopName); - - if ($pagination === null || $pagination->getNbResults() == 0) { - // No need to paginate - return ''; - } - - $startPage = intval($this->getParam($params, 'start-page', 1)); - $displayedPageCount = intval($this->getParam($params, 'limit', 10)); - - if (intval($displayedPageCount) == 0) { - $displayedPageCount = PHP_INT_MAX; - } - - $totalPageCount = $pagination->getLastPage(); - - if ($content === null) { - // The current page - $currentPage = $pagination->getPage(); - - // Get the start page. - if ($totalPageCount > $displayedPageCount) { - $startPage = $currentPage - round($displayedPageCount / 2); - - if ($startPage <= 0) { - $startPage = 1; - } - } - - // This is the iterative page number, the one we're going to increment in this loop - $iterationPage = $startPage; - - // The last displayed page number - $endPage = $startPage + $displayedPageCount - 1; - - if ($endPage > $totalPageCount) { - $endPage = $totalPageCount; - } - - // The first displayed page number - $template->assign('START', $startPage); - // The previous page number - $template->assign('PREV', $currentPage > 1 ? $currentPage-1 : $currentPage); - // The next page number - $template->assign('NEXT', $currentPage < $totalPageCount ? $currentPage+1 : $totalPageCount); - // The last displayed page number - $template->assign('END', $endPage); - // The overall last page - $template->assign('LAST', $totalPageCount); - } else { - $iterationPage = $template->getTemplateVars('PAGE'); - - $iterationPage++; - } - - if ($iterationPage <= $template->getTemplateVars('END')) { - // The iterative page number - $template->assign('PAGE', $iterationPage); - - // The overall current page number - $template->assign('CURRENT', $pagination->getPage()); - - $repeat = true; - } - - if ($content !== null) { - return $content; - } - - return ''; - } - - /** - * Check if a loop has returned results. The loop shoud have been executed before, or an - * InvalidArgumentException is thrown - * - * @param array $params - * - * @return boolean true if the loop is empty - * @throws \InvalidArgumentException - */ - protected function checkEmptyLoop($params) - { - $loopName = $this->getParam($params, 'rel'); - - if (null == $loopName) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'rel' parameter in ifloop/elseloop arguments") - ); - } - - if (! isset($this->loopstack[$loopName])) { - throw new \InvalidArgumentException( - $this->translator->trans("Related loop name '%name'' is not defined.", ['%name' => $loopName]) - ); - } - - return $this->loopstack[$loopName]->isEmpty(); - } - - /** - * @param $smartyParams - * - * @return BaseLoop - * @throws \Thelia\Core\Template\Element\Exception\InvalidElementException - * @throws \Thelia\Core\Template\Element\Exception\ElementNotFoundException - */ - protected function createLoopInstance($smartyParams) - { - $type = strtolower($smartyParams['type']); - - if (! isset($this->loopDefinition[$type])) { - throw new ElementNotFoundException( - $this->translator->trans("Loop type '%type' is not defined.", ['%type' => $type]) - ); - } - - $class = new \ReflectionClass($this->loopDefinition[$type]); - - if ($class->isSubclassOf("Thelia\Core\Template\Element\BaseLoop") === false) { - throw new InvalidElementException( - $this->translator->trans("'%type' loop class should extends Thelia\Core\Template\Element\BaseLoop", ['%type' => $type]) - ); - } - - $loop = $class->newInstance( - $this->container - ); - - $loop->initializeArgs($smartyParams); - - return $loop; - } - - /** - * - * Injects an associative array containing information for loop execution - * - * key is loop name - * value is the class implementing/extending base loop classes - * - * ex : - * - * $loop = array( - * "product" => "Thelia\Loop\Product", - * "category" => "Thelia\Loop\Category", - * "myLoop" => "My\Own\Loop" - * ); - * - * @param array $loopDefinition - * @throws \InvalidArgumentException if loop name already exists - */ - public function setLoopList(array $loopDefinition) - { - foreach ($loopDefinition as $name => $className) { - if (array_key_exists($name, $this->loopDefinition)) { - throw new \InvalidArgumentException( - $this->translator->trans("The loop name '%name' is already defined in %className class", [ - '%name' => $name, - '%className' => $className - ]) - ); - } - - $this->loopDefinition[$name] = $className; - } - } - - /** - * Defines the various smarty plugins hendled by this class - * - * @return \TheliaSmarty\Template\SmartyPluginDescriptor[] smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - - new SmartyPluginDescriptor('function', 'count', $this, 'theliaCount'), - new SmartyPluginDescriptor('block', 'loop', $this, 'theliaLoop'), - new SmartyPluginDescriptor('block', 'elseloop', $this, 'theliaElseloop'), - new SmartyPluginDescriptor('block', 'ifloop', $this, 'theliaIfLoop'), - new SmartyPluginDescriptor('block', 'pageloop', $this, 'theliaPageLoop'), - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Translation.php b/local/local/modules/TheliaSmarty/Template/Plugins/Translation.php deleted file mode 100644 index 6eb83652..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Translation.php +++ /dev/null @@ -1,125 +0,0 @@ -translator = $translator; - } - - /** - * Set the default translation domain - * - * @param array $params - * @param \Smarty_Internal_Template $smarty - * @return string - */ - public function setDefaultTranslationDomain($params, &$smarty) - { - $this->defaultTranslationDomain = $this->getParam($params, 'domain'); - } - - /** - * Set the default locale - * - * @param array $params - * @param \Smarty_Internal_Template $smarty - * @return string - */ - public function setDefaultLocale($params, &$smarty) - { - $this->defaultLocale = $this->getParam($params, 'locale'); - } - - /** - * Process translate function - * - * @param array $params - * @param \Smarty_Internal_Template $smarty - * @return string - */ - public function translate($params, &$smarty) - { - // All parameters other than 'l' and 'd' and 'js' are supposed to be variables. Build an array of var => value pairs - // and pass it to the translator - $vars = array(); - - foreach ($params as $name => $value) { - if (!in_array($name, $this->protectedParams)) { - $vars["%$name"] = $value; - } - } - - $str = $this->translator->trans( - $this->getParam($params, 'l'), - $vars, - $this->getParam($params, 'd', $this->defaultTranslationDomain), - $this->getParam($params, 'locale', $this->defaultLocale), - $this->getBoolean($this->getParam($params, 'default', true), true), - $this->getBoolean($this->getParam($params, 'fallback', true), true) - ); - - if ($this->getParam($params, 'js', 0)) { - $str = preg_replace("/(['\"])/", "\\\\$1", $str); - } - - return $str; - } - - protected function getBoolean($value, $default = false) - { - $val = filter_var($value, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE); - if (null === $val) { - $val = $default; - } - - return $val; - } - - /** - * Define the various smarty plugins handled by this class - * - * @return \TheliaSmarty\Template\SmartyPluginDescriptor[] an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'intl', $this, 'translate'), - new SmartyPluginDescriptor('function', 'default_translation_domain', $this, 'setDefaultTranslationDomain'), - new SmartyPluginDescriptor('function', 'default_locale', $this, 'setDefaultLocale'), - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Type.php b/local/local/modules/TheliaSmarty/Template/Plugins/Type.php deleted file mode 100644 index 9140a13d..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Type.php +++ /dev/null @@ -1,47 +0,0 @@ -isValid($value)) { - return ''; - } - - return $value; - } - - /** - * Define the various smarty plugins handled by this class - * - * @return an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('modifier', 'assertType', $this, 'assertTypeModifier'), - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/UrlGenerator.php b/local/local/modules/TheliaSmarty/Template/Plugins/UrlGenerator.php deleted file mode 100644 index 988a7202..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/UrlGenerator.php +++ /dev/null @@ -1,395 +0,0 @@ -requestStack = $requestStack; - $this->tokenProvider = $tokenProvider; - $this->container = $container; - } - - /** - * Process url generator function - * - * @param array $params - * @param \Smarty $smarty - * @return string no text is returned. - */ - public function generateUrlFunction($params, &$smarty) - { - // the path to process - $current = $this->getParam($params, 'current', false); - $path = $this->getParam($params, 'path', null); - // Do not invoke index.php in URL (get a static file in web space - $file = $this->getParam($params, 'file', null); - $routeId = $this->getParam($params, 'route_id', null); - // select default router - if ($this->getRequest()->fromAdmin()) { - $defaultRouter = 'admin'; - } elseif ($this->getRequest()->fromFront()) { - $defaultRouter = 'front'; - } else { - $defaultRouter = null; - } - $routerId = $this->getParam($params, 'router', $defaultRouter); - - if ($current) { - $path = $this->getRequest()->getPathInfo(); - unset($params["current"]); // Delete the current param, so it isn't included in the url - - // build the query variables - $params = array_merge( - $this->getRequest()->query->all(), - $params - ); - } - - if ($routeId !== null && $routerId !== null) { - $routerId = 'router.' . $routerId; - - // test if the router exists - if (!$this->container->has($routerId)) { - throw new \InvalidArgumentException( - 'The router "' . $routerId . '" not found.' - ); - } - // get url by router and id - /** @var Router $router */ - $router = $this->container->get($routerId); - - $url = $router->generate( - $routeId, - $this->getArgsFromParam($params, ['route_id', 'router']), - Router::ABSOLUTE_URL - ); - } else { - if ($file !== null) { - $path = $file; - $mode = URL::PATH_TO_FILE; - } elseif ($path !== null) { - $mode = URL::WITH_INDEX_PAGE; - } else { - throw new \InvalidArgumentException( - "Please specify either 'path', 'file' or router and route_id on parameters in {url} function." - ); - } - - $excludeParams = $this->resolvePath($params, $path, $smarty); - - $url = URL::getInstance()->absoluteUrl( - $path, - $this->getArgsFromParam($params, array_merge(['noamp', 'path', 'file', 'target'], $excludeParams)), - $mode - ); - - $request = $this->getRequest(); - $requestedLangCodeOrLocale = $params["lang"]; - $view = $request->attributes->get('_view', null); - $viewId = $view === null ? null : $request->query->get($view . '_id', null); - - if (null !== $requestedLangCodeOrLocale) { - if (strlen($requestedLangCodeOrLocale) > 2) { - $lang = LangQuery::create()->findOneByLocale($requestedLangCodeOrLocale); - } else { - $lang = LangQuery::create()->findOneByCode($requestedLangCodeOrLocale); - } - - if (ConfigQuery::isMultiDomainActivated()) { - $urlRewrite = RewritingUrlQuery::create() - ->filterByView($view) - ->filterByViewId($viewId) - ->filterByViewLocale($lang->getLocale()) - ->findOneByRedirected(null) - ; - - $path = ''; - if (null != $urlRewrite) { - $path = "/".$urlRewrite->getUrl(); - } - $url = rtrim($lang->getUrl(), "/").$request->getBaseUrl().$path; - } - - } - } - return $this->applyNoAmpAndTarget($params, $url); - } - - /** - * - * find placeholders in the path and replace them by the given value - * - * @param $params - * @param $path - * @param $smarty - * @return array the placeholders found - */ - protected function resolvePath(&$params, &$path, $smarty) - { - $placeholder = []; - - foreach ($params as $key => $value) { - if (false !== strpos($path, "%$key")) { - $placeholder["%$key"] = SmartyParser::theliaEscape($value, $smarty); - unset($params[$key]); - } - } - - $path = strtr($path, $placeholder); - $keys = array_keys($placeholder); - array_walk($keys, function(&$item, $key) { - $item = str_replace('%', '', $item); - }); - - return $keys; - } - - /** - * Process view url generator function - * - * @param array $params - * @param \Smarty $smarty - * @return string no text is returned. - */ - public function generateFrontViewUrlFunction($params, &$smarty) - { - return $this->generateViewUrlFunction($params, false); - } - - /** - * Process administration view url generator function - * - * @param array $params - * @param \Smarty $smarty - * @return string no text is returned. - */ - public function generateAdminViewUrlFunction($params, &$smarty) - { - return $this->generateViewUrlFunction($params, true); - } - - - public function navigateToUrlFunction($params, &$smarty) - { - $to = $this->getParam($params, 'to', null); - - $toMethod = $this->getNavigateToMethod($to); - - $url = URL::getInstance()->absoluteUrl( - $this->$toMethod(), - $this->getArgsFromParam($params, ['noamp', 'to', 'target']), - URL::WITH_INDEX_PAGE - ); - - return $this->applyNoAmpAndTarget($params, $url); - } - - protected function generateViewUrlFunction($params, $forAdmin) - { - // the view name (without .html) - $view = $this->getParam($params, 'view'); - - $args = $this->getArgsFromParam($params, array('view', 'noamp', 'target')); - - $url = $forAdmin ? URL::getInstance()->adminViewUrl($view, $args) : URL::getInstance()->viewUrl($view, $args); - - return $this->applyNoAmpAndTarget($params, $url); - } - - /** - * Get URL parameters array from parameters. - * - * @param array $params Smarty function params - * @param array $exclude Smarty function exclude params - * @return array the parameters array (either emply, of valued) - */ - private function getArgsFromParam($params, $exclude = array()) - { - $pairs = array(); - - foreach ($params as $name => $value) { - if (in_array($name, $exclude)) { - continue; - } - - $pairs[$name] = $value; - } - - return $pairs; - } - - public function generateUrlWithToken($params, &$smarty) - { - /** - * Compute the url - */ - $url = $this->generateUrlFunction($params, $smarty); - - $urlTokenParam = $this->getParam($params, "url_param", "_token"); - - /** - * Add the token - */ - $token = $this->tokenProvider->assignToken(); - - $newUrl = URL::getInstance()->absoluteUrl( - $url, - [ - $urlTokenParam => $token - ] - ); - - return $this->applyNoAmpAndTarget($params, $newUrl); - } - - protected function applyNoAmpAndTarget($params, $url) - { - $noamp = $this->getParam($params, 'noamp', null); // Do not change & in & - $target = $this->getParam($params, 'target', null); - - if (!$noamp) { - $url = str_replace('&', '&', $url); - } - - if ($target != null) { - $url .= '#'.$target; - } - - return $url; - } - - /** - * Set the _previous_url request attribute, to define the previous URL, or - * prevent saving the current URL as the previous one. - * - * @param array $params - * @param \Smarty_Internal_Template $smarty - */ - public function setPreviousUrlFunction($params, &$smarty) - { - $ignore_current = $this->getParam($params, 'ignore_current', false); - - if ($ignore_current !== false) { - $this->getRequest()->attributes->set('_previous_url', 'dont-save'); - } else { - $this->getRequest()->attributes->set('_previous_url', $this->generateUrlFunction($params, $smarty)); - } - } - - /** - * Define the various smarty plugins handled by this class - * - * @return array an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'url', $this, 'generateUrlFunction'), - new SmartyPluginDescriptor('function', 'token_url', $this, 'generateUrlWithToken'), - new SmartyPluginDescriptor('function', 'viewurl', $this, 'generateFrontViewUrlFunction'), - new SmartyPluginDescriptor('function', 'admin_viewurl', $this, 'generateAdminViewUrlFunction'), - new SmartyPluginDescriptor('function', 'navigate', $this, 'navigateToUrlFunction'), - new SmartyPluginDescriptor('function', 'set_previous_url', $this, 'setPreviousUrlFunction') - ); - } - - /** - * @return array sur le format "to_value" => "method_name" - */ - protected function getNavigateToValues() - { - return array( - "current" => "getCurrentUrl", - "previous" => "getPreviousUrl", - "index" => "getIndexUrl", - ); - } - - protected function getNavigateToMethod($to) - { - if ($to === null) { - throw new \InvalidArgumentException("Missing 'to' parameter in `navigate` substitution."); - } - - $navigateToValues = $this->getNavigateToValues(); - - if (!array_key_exists($to, $navigateToValues)) { - throw new \InvalidArgumentException( - sprintf("Incorrect value `%s` for parameter `to` in `navigate` substitution.", $to) - ); - } - - return $navigateToValues[$to]; - } - - protected function getCurrentUrl() - { - return $this->getRequest()->getUri(); - } - - protected function getPreviousUrl() - { - return URL::getInstance()->absoluteUrl($this->getSession()->getReturnToUrl()); - } - - protected function getIndexUrl() - { - return URL::getInstance()->getIndexPage(); - } - - /** - * @return Request - */ - protected function getRequest() - { - return $this->requestStack->getCurrentRequest(); - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->getRequest()->getSession(); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/SmartyHelper.php b/local/local/modules/TheliaSmarty/Template/SmartyHelper.php deleted file mode 100644 index 2bed38f8..00000000 --- a/local/local/modules/TheliaSmarty/Template/SmartyHelper.php +++ /dev/null @@ -1,178 +0,0 @@ - - */ -class SmartyHelper implements ParserHelperInterface -{ - /** - * Parse a string and get all smarty function and block with theirs arguments. - * some smarty functions are not supported : if, for, ... - * - * - * - * @param string $content the template content - * @param array $functions the only functions we want to parse - * - * @return array array of functions with 2 index name and attributes an array of name, value - */ - public function getFunctionsDefinition($content, array $functions = array()) - { - $strlen = strlen($content); - - // init - $buffer = ''; - $name = ''; - $attributeName = ''; - $waitfor = ''; - - $inFunction = false; - $hasName = false; - $inAttribute = false; - $inInnerFunction = false; - - $ldelim = '{'; - $rdelim = '}'; - $skipFunctions = array("if", "for"); - $skipCharacters = array("\t", "\r", "\n"); - - $store = array(); - $attributes = array(); - - for ($pos = 0; $pos < $strlen; $pos++) { - $char = $content[$pos]; - - if (in_array($char, $skipCharacters)) { - continue; - } - - if (!$inFunction) { - if ($char === $ldelim) { - $inFunction = true; - $inInnerFunction = false; - } - continue; - } - - // get function name - if (!$hasName) { - if ($char === " " || $char === $rdelim) { - $name = $buffer; - // we catch this name ? - $hasName = $inFunction = (!in_array($name, $skipFunctions) && (0 === count($functions) || in_array($name, $functions))); - $buffer = ""; - continue; - } else { - // skip { - if (in_array($char, array("/", "$", "#", "'", "\""))) { - $inFunction = false; - } else { - $buffer .= $char; - } - continue; - } - } - - // inner Function ? - if ($char === $ldelim) { - $inInnerFunction = true; - $buffer .= $char; - continue; - } - - // end ? - if ($char === $rdelim) { - if ($inInnerFunction) { - $inInnerFunction = false; - $buffer .= $char; - } else { - if ($inAttribute) { - if ("" === $attributeName) { - $attributes[trim($buffer)] = ""; - } else { - $attributes[$attributeName] = $buffer; - } - $inAttribute = false; - } - $store[] = array( - "name" => $name, - "attributes" => $attributes - ); - $inFunction = false; - $inAttribute = false; - $inInnerFunction = false; - $hasName = false; - $name = ""; - $buffer = ""; - $waitfor = ""; - $attributes = array(); - } - continue; - } - - // attributes - if (!$inAttribute) { - if ($char !== " ") { - $inAttribute = true; - $buffer = $char; - $attributeName = ""; - } - } else { - if ("" === $attributeName) { - if (in_array($char, array(" ", "="))) { - $attributeName = trim($buffer); - if (" " === $char) { - $attributes[$attributeName] = ""; - $inAttribute = false; - } - $buffer = ""; - } else { - $buffer .= $char; - } - } else { - if ("" === $waitfor) { - if (in_array($char, array("'", "\""))) { - $waitfor = $char; - } else { - $waitfor = " "; - $buffer .= $char; - } - continue; - } - if ($inInnerFunction) { - $buffer .= $char; - } else { - // end of attribute ? - if ($char === $waitfor) { - $attributes[$attributeName] = $buffer; - $inAttribute = false; - $waitfor = ""; - } else { - $buffer .= $char; - } - } - } - } - } - - return $store; - } -} diff --git a/local/local/modules/TheliaSmarty/Template/SmartyParser.php b/local/local/modules/TheliaSmarty/Template/SmartyParser.php deleted file mode 100644 index 679dbbff..00000000 --- a/local/local/modules/TheliaSmarty/Template/SmartyParser.php +++ /dev/null @@ -1,514 +0,0 @@ - - * @author Etienne Roudeix - */ -class SmartyParser extends Smarty implements ParserInterface -{ - public $plugins = array(); - - /** @var EventDispatcherInterface */ - protected $dispatcher; - - /** @var ParserContext */ - protected $parserContext; - - /** @var TemplateHelperInterface */ - protected $templateHelper; - - /** @var RequestStack */ - protected $requestStack; - - protected $backOfficeTemplateDirectories = array(); - protected $frontOfficeTemplateDirectories = array(); - - protected $templateDirectories = array(); - - /** @var TemplateDefinition */ - protected $templateDefinition; - - /** @var int */ - protected $status = 200; - - /** @var string */ - protected $env; - - /** @var bool */ - protected $debug; - - /** - * @param RequestStack $requestStack - * @param EventDispatcherInterface $dispatcher - * @param ParserContext $parserContext - * @param TemplateHelperInterface $templateHelper - * @param string $env - * @param bool $debug - */ - public function __construct( - RequestStack $requestStack, - EventDispatcherInterface $dispatcher, - ParserContext $parserContext, - TemplateHelperInterface $templateHelper, - $env = "prod", - $debug = false - ) { - parent::__construct(); - - $this->requestStack = $requestStack; - $this->dispatcher = $dispatcher; - $this->parserContext = $parserContext; - $this->templateHelper = $templateHelper; - $this->env = $env; - $this->debug = $debug; - - // Configure basic Smarty parameters - - $compile_dir = THELIA_ROOT . 'cache'. DS . $env . DS . 'smarty' . DS . 'compile'; - if (! is_dir($compile_dir)) { - @mkdir($compile_dir, 0777, true); - } - - $cache_dir = THELIA_ROOT . 'cache'. DS . $env . DS . 'smarty' . DS . 'cache'; - if (! is_dir($cache_dir)) { - @mkdir($cache_dir, 0777, true); - } - - $this->setCompileDir($compile_dir); - $this->setCacheDir($cache_dir); - $this->inheritance_merge_compiled_includes = false; - - // Prevent smarty ErrorException: Notice: Undefined index bla bla bla... - $this->error_reporting = E_ALL ^ E_NOTICE; - - // The default HTTP status - $this->status = 200; - - $this->registerFilter('output', array($this, "trimWhitespaces")); - $this->registerFilter('variable', array(__CLASS__, "theliaEscape")); - } - - /** - * Return the current request or null if no request exists - * - * @return Request|null - */ - public function getRequest() - { - return $this->requestStack->getCurrentRequest(); - } - - /** - * Trim whitespaces from the HTML output, preserving required ones in pre, textarea, javascript. - * This methois uses 3 levels of trimming : - * - * - 0 : whitespaces are not trimmed, code remains as is. - * - 1 : only blank lines are trimmed, code remains indented and human-readable (the default) - * - 2 or more : all unnecessary whitespace are removed. Code is very hard to read. - * - * The trim level is defined by the configuration variable html_output_trim_level - * - * @param string $source the HTML source - * @param \Smarty_Internal_Template $template - * @return string - */ - public function trimWhitespaces($source, /** @noinspection PhpUnusedParameterInspection */ \Smarty_Internal_Template $template) - { - $compressionMode = ConfigQuery::read('html_output_trim_level', 1); - - if ($compressionMode == 0) { - return $source; - } - - $store = array(); - $_store = 0; - $_offset = 0; - - // Unify Line-Breaks to \n - $source = preg_replace("/\015\012|\015|\012/", "\n", $source); - - // capture Internet Explorer Conditional Comments - if ($compressionMode == 1) { - $expressions = array( - // remove spaces between attributes (but not in attribute values!) - '#(([a-z0-9]\s*=\s*(["\'])[^\3]*?\3)|<[a-z0-9_]+)\s+([a-z/>])#is' => '\1 \4', - '/(^[\n]*|[\n]+)[\s\t]*[\n]+/' => "\n" - ); - } elseif ($compressionMode >= 2) { - if (preg_match_all('##is', $source, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER)) { - foreach ($matches as $match) { - $store[] = $match[0][0]; - $_length = strlen($match[0][0]); - $replace = '@!@SMARTY:' . $_store . ':SMARTY@!@'; - $source = substr_replace($source, $replace, $match[0][1] - $_offset, $_length); - - $_offset += $_length - strlen($replace); - $_store++; - } - } - - // Strip all HTML-Comments - // yes, even the ones in - - - - - - \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/config/.htaccess b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/config/.htaccess deleted file mode 100644 index 14249c50..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/config/.htaccess +++ /dev/null @@ -1 +0,0 @@ -Deny from all \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/config/config.php b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/config/config.php deleted file mode 100644 index ef7eef7e..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/config/config.php +++ /dev/null @@ -1,349 +0,0 @@ -exists($webMediaEnvPath)) { - $fileSystem->mkdir($webMediaEnvPath.DS.'upload'); - $fileSystem->mkdir($webMediaEnvPath.DS.'thumbs'); - } - } else { - if (false === $fileSystem->exists($webMediaPath)) { - $fileSystem->mkdir($webMediaPath.DS.'upload'); - $fileSystem->mkdir($webMediaPath.DS.'thumbs'); - } - } -} - -$env = getenv('THELIA_ENV') ?: 'prod'; - -if (file_exists(__DIR__.'/../../../../../../../../core/vendor/autoload.php')) { - // Symlinked with std install - require_once __DIR__.'/../../../../../../../../core/vendor/autoload.php'; -} elseif (file_exists(__DIR__.'/../../../../core/vendor/autoload.php')) { - // Hard copy with std install - require_once __DIR__.'/../../../../core/vendor/autoload.php'; -} elseif (file_exists(__DIR__.'/../../../../../../../../bootstrap.php')) { - // Symlinked with thelia-project - require_once __DIR__.'/../../../../../../../../bootstrap.php'; -} elseif (file_exists(__DIR__.'/../../../../bootstrap.php')) { - // Hard copy with thelia-project - require_once __DIR__.'/../../../../bootstrap.php'; -} - -/** @var Request $request */ -$request = Request::createFromGlobals(); - -$thelia = new Thelia($env, false); - -$thelia->boot(); - -/** @var \Symfony\Component\DependencyInjection\ContainerInterface $container */ -$container = $thelia->getContainer(); - -$eventDispatcher = $container->get('event_dispatcher'); -$container->get('thelia.translator'); -$container->get('thelia.url.manager'); -$container->set('request', $request); -$container->get('request_stack')->push($request); -$event = new \Thelia\Core\Event\SessionEvent(THELIA_CACHE_DIR.$env, false, $env); - -$eventDispatcher->dispatch(\Thelia\Core\TheliaKernelEvents::SESSION, $event); -$session = $event->getSession(); -$session->start(); -$request->setSession($session); - -/** @var \Thelia\Core\Security\SecurityContext $securityContext */ -$securityContext = $container->get('thelia.securityContext'); - -// We just check the current user has the ADMIN role. -$isGranted = $securityContext->isGranted(['ADMIN'], [], [], []); - -if (false === $isGranted) { - echo "Sorry, it seems that you're not allowed to use this function. ADMIN role is required."; - - exit; -} - -//------------------------------------------------------------------------------ -// DO NOT COPY THESE VARIABLES IN FOLDERS config.php FILES -//------------------------------------------------------------------------------ - -//********************** -//Path configuration -//********************** - -// In this configuration the media folder is located in the /web directory. - -// base url of site (without final /). if you prefer relative urls leave empty. -$base_url = rtrim(ConfigQuery::getConfiguredShopUrl(), '/'); - -// Argh, url_site is not defined ?! -if (empty($base_url)) { - // A we did not used the router to access this dialog, we cannot use the URL class. Use the good old method. - $base_url = $request->getSchemeAndHttpHost().preg_replace('!/tinymce/filemanager/dialog.php.*$!', '', $_SERVER['REQUEST_URI']); -} - -//Check for backward compatibility -if ($env !== "prod") { - // path from base_url to base of upload folder for current env (with start and final /) - $upload_dir = '/media/'.$env.'/upload/'; - - // path from base_url to base of upload folder for current env (with start and final /) - $thumbs_dir = '/media/'.$env.'/thumbs/'; - - // path to file manager folder to upload folder for current env (with final /) - $current_path = THELIA_WEB_DIR.'media'.DS.$env.DS.'upload'.DS; - - // path to file manager folder to thumbs folder for current env (with final /) - // WARNING: thumbs folder should not be inside the upload folder - $thumbs_base_path = THELIA_WEB_DIR.'media'.DS.$env.DS.'thumbs'.DS; -} else { - // path from base_url to base of upload folder (with start and final /) - $upload_dir = '/media/upload/'; - - // path from base_url to base of upload folder (with start and final /) - $thumbs_dir = '/media/thumbs/'; - - // path to file manager folder to upload folder (with final /) - $current_path = THELIA_WEB_DIR.'media'.DS.'upload'.DS; - - // path to file manager folder to thumbs folder (with final /) - // WARNING: thumbs folder should not be inside the upload folder - $thumbs_base_path = THELIA_WEB_DIR.'media'.DS.'thumbs'.DS; -} - -generateFolder($env); - -// path from base_url to filemanager folder (with start and final /) -$filemanager_dir = '/tinymce/filemanager/'; - -// Set the language to the back-office current language, if it is available -$current_locale = $request->getSession()->getLang()->getLocale(); - -if (file_exists(__DIR__.DS.'..'.DS.'lang.'.DS.$current_locale.'.php')) { - $default_language = $current_locale; -} else { - $default_language = 'en_EN'; -} - -// OPTIONAL SECURITY -// if set to true only those will access RF whose url contains the access key(akey) like: -// -// in tinymce a new parameter added: filemanager_access_key:"myPrivateKey" -// example tinymce config: -// tiny init ... -// -// external_filemanager_path:"../filemanager/", -// filemanager_title:"Filemanager" , -// filemanager_access_key:"myPrivateKey" , -// ... -define('USE_ACCESS_KEYS', false); // TRUE or FALSE - -// add access keys eg: array('myPrivateKey', 'someoneElseKey'); -// keys should only containt (a-z A-Z 0-9 \ . _ -) characters -// if you are integrating lets say to a cms for admins, i recommend making keys randomized something like this: -// $username = 'Admin'; -// $salt = 'dsflFWR9u2xQa' (a hard coded string) -// $akey = md5($username.$salt); -// DO NOT use 'key' as access key! -// Keys are CASE SENSITIVE! -$access_keys = array('myPrivateKey', 'someoneElseKey'); - -//-------------------------------------------------------------------------------------------------------- -// YOU CAN COPY AND CHANGE THESE VARIABLES INTO FOLDERS config.php FILES TO CUSTOMIZE EACH FOLDER OPTIONS -//-------------------------------------------------------------------------------------------------------- - -$MaxSizeUpload = 100; //Mb - -// SERVER OVERRIDE -if ((int) (ini_get('post_max_size')) < $MaxSizeUpload) { - $MaxSizeUpload = (int) (ini_get('post_max_size')); -} - -// $default_language = "en_EN"; //default language file name -$icon_theme = "ico"; //ico or ico_dark you can cusatomize just putting a folder inside filemanager/img -$show_folder_size = true; //Show or not show folder size in list view feature in filemanager (is possible, if there is a large folder, to greatly increase the calculations) -$show_sorting_bar = true; //Show or not show sorting feature in filemanager -$loading_bar = true; //Show or not show loading bar -$transliteration = false; //active or deactive the transliteration (mean convert all strange characters in A..Za..z0..9 characters) - -//******************************************* -//Images limit and resizing configuration -//******************************************* - -// set maximum pixel width and/or maximum pixel height for all images -// If you set a maximum width or height, oversized images are converted to those limits. Images smaller than the limit(s) are unaffected -// if you don't need a limit set both to 0 -$image_max_width = 0; -$image_max_height = 0; - -//Automatic resizing // -// If you set $image_resizing to TRUE the script converts all uploaded images exactly to image_resizing_width x image_resizing_height dimension -// If you set width or height to 0 the script automatically calculates the other dimension -// Is possible that if you upload very big images the script not work to overcome this increase the php configuration of memory and time limit -$image_resizing = false; -$image_resizing_width = 0; -$image_resizing_height = 0; - -//****************** -// Default layout setting -// -// 0 => boxes -// 1 => detailed list (1 column) -// 2 => columns list (multiple columns depending on the width of the page) -// YOU CAN ALSO PASS THIS PARAMETERS USING SESSION VAR => $_SESSION['RF']["VIEW"]= -// -//****************** -$default_view = 0; - -//set if the filename is truncated when overflow first row -$ellipsis_title_after_first_row = true; - -//************************* -//Permissions configuration -//****************** -$delete_files = true; -$create_folders = true; -$delete_folders = true; -$upload_files = true; -$rename_files = true; -$rename_folders = true; -$duplicate_files = true; -$copy_cut_files = true; // for copy/cut files -$copy_cut_dirs = true; // for copy/cut directories - - -// defines size limit for paste in MB / operation -// set 'FALSE' for no limit -$copy_cut_max_size = 100; -// defines file count limit for paste / operation -// set 'FALSE' for no limit -$copy_cut_max_count = 200; -//IF any of these limits reached, operation won't start and generate warning - -//********************** -//Allowed extensions (lowercase insert) -//********************** -$ext_img = array('jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg'); //Images -$ext_file = array( - 'doc', - 'docx', - 'rtf', - 'pdf', - 'xls', - 'xlsx', - 'txt', - 'csv', - 'html', - 'xhtml', - 'psd', - 'sql', - 'log', - 'fla', - 'xml', - 'ade', - 'adp', - 'mdb', - 'accdb', - 'ppt', - 'pptx', - 'odt', - 'ots', - 'ott', - 'odb', - 'odg', - 'otp', - 'otg', - 'odf', - 'ods', - 'odp', - 'css', - 'ai', -); //Files -$ext_video = array('mov', 'mpeg', 'mp4', 'avi', 'mpg', 'wma', "flv", "webm"); //Video -$ext_music = array('mp3', 'm4a', 'ac3', 'aiff', 'mid', 'ogg', 'wav'); //Audio -$ext_misc = array('zip', 'rar', 'gz', 'tar', 'iso', 'dmg'); //Archives - -$ext = array_merge($ext_img, $ext_file, $ext_misc, $ext_video, $ext_music); //allowed extensions - -/****************** - * AVIARY config - *******************/ -$aviary_active = false; -$aviary_key = "dvh8qudbp6yx2bnp"; -$aviary_secret = "m6xaym5q42rpw433"; -$aviary_version = 3; -$aviary_language = 'en'; - -//The filter and sorter are managed through both javascript and php scripts because if you have a lot of -//file in a folder the javascript script can't sort all or filter all, so the filemanager switch to php script. -//The plugin automatic swich javascript to php when the current folder exceeds the below limit of files number -$file_number_limit_js = 500; - -//********************** -// Hidden files and folders -//********************** -// set the names of any folders you want hidden (eg "hidden_folder1", "hidden_folder2" ) Remember all folders with these names will be hidden (you can set any exceptions in config.php files on folders) -$hidden_folders = array(); -// set the names of any files you want hidden. Remember these names will be hidden in all folders (eg "this_document.pdf", "that_image.jpg" ) -$hidden_files = array('config.php'); - -/******************* - * JAVA upload - *******************/ -$java_upload = true; -$JAVAMaxSizeUpload = 200; //Gb - - -//************************************ -//Thumbnail for external use creation -//************************************ - - -// New image resized creation with fixed path from filemanager folder after uploading (thumbnails in fixed mode) -// If you want create images resized out of upload folder for use with external script you can choose this method, -// You can create also more than one image at a time just simply add a value in the array -// Remember than the image creation respect the folder hierarchy so if you are inside source/test/test1/ the new image will create at -// path_from_filemanager/test/test1/ -// PS if there isn't write permission in your destination folder you must set it -$fixed_image_creation = false; //activate or not the creation of one or more image resized with fixed path from filemanager folder -$fixed_path_from_filemanager = array( - '../test/', - '../test1/', -); //fixed path of the image folder from the current position on upload folder -$fixed_image_creation_name_to_prepend = array('', 'test_'); //name to prepend on filename -$fixed_image_creation_to_append = array('_test', ''); //name to appendon filename -$fixed_image_creation_width = array(300, 400); //width of image (you can leave empty if you set height) -$fixed_image_creation_height = array(200, ''); //height of image (you can leave empty if you set width) - - -// New image resized creation with relative path inside to upload folder after uploading (thumbnails in relative mode) -// With Responsive filemanager you can create automatically resized image inside the upload folder, also more than one at a time -// just simply add a value in the array -// The image creation path is always relative so if i'm inside source/test/test1 and I upload an image, the path start from here -$relative_image_creation = false; //activate or not the creation of one or more image resized with relative path from upload folder -$relative_path_from_current_pos = array( - 'thumb/', - 'thumb/', -); //relative path of the image folder from the current position on upload folder -$relative_image_creation_name_to_prepend = array('', 'test_'); //name to prepend on filename -$relative_image_creation_name_to_append = array('_test', ''); //name to append on filename -$relative_image_creation_width = array(300, 400); //width of image (you can leave empty if you set height) -$relative_image_creation_height = array(200, ''); //height of image (you can leave empty if you set width) -; diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-lightbox.min.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-lightbox.min.css deleted file mode 100644 index 70414368..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-lightbox.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! -* bootstrap-lightbox.css v0.6.0 -* Copyright 2013 Jason Butz -* http://www.apache.org/licenses/LICENSE-2.0.txt -*/ -.lightbox{position:relative;top:70px;z-index:1050;line-height:0;text-align:center;background-color:transparent;outline:0}.lightbox .hide{display:none}.lightbox .in{display:block}.lightbox-content{display:inline-block;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.lightbox-content .lightbox-caption{position:absolute;right:12px;bottom:11px;left:11px;padding:2%;font-size:14px;line-height:18px;color:white;text-align:center;text-shadow:0 -1px 0 #000;text-shadow:0 -1px 0 rgba(0,0,0,0.3);background:#000;background:rgba(0,0,0,0.6)}.lightbox-header .close{margin-top:-16px;margin-right:-16px;font-size:2em;color:white;opacity:.8;filter:alpha(opacity=80)}.lightbox-header .close :hover{opacity:.4;filter:alpha(opacity=40)} diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-modal.min.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-modal.min.css deleted file mode 100644 index 373c1b6b..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-modal.min.css +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * Bootstrap Modal - * - * Copyright Jordan Schroter - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - */.modal-open{overflow:hidden}.modal-open.page-overflow .page-container,.modal-open.page-overflow .page-container .navbar-fixed-top,.modal-open.page-overflow .page-container .navbar-fixed-bottom,.modal-open.page-overflow .modal-scrollable{overflow-y:scroll}@media (max-width:840px){.modal-open.page-overflow .page-container .navbar-fixed-top,.modal-open.page-overflow .page-container .navbar-fixed-bottom{overflow-y:visible}}.modal-scrollable{position:fixed;top:0;bottom:0;left:0;right:0;overflow:auto}.modal{outline:0;position:absolute;margin-top:0;top:50%;overflow:visible}.modal.fade{top:-100%;-webkit-transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out;transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out}.modal.fade.in{top:50%}.modal-body{max-height:none;overflow:visible}.modal.modal-absolute{position:absolute;z-index:950}.modal .loading-mask{position:absolute;top:0;bottom:0;left:0;right:0;background:#fff;border-radius:6px}.modal-backdrop.modal-absolute{position:absolute;z-index:940}.modal-backdrop,.modal-backdrop.fade.in{opacity:.85;filter:alpha(opacity=85);background:#eee}.modal.container{width:940px;margin-left:-470px}.modal-overflow.modal{top:1%}.modal-overflow.modal.fade{top:-100%}.modal-overflow.modal.fade.in{top:1%}.modal-overflow .modal-body{overflow:auto;-webkit-overflow-scrolling:touch}@media (min-width:1200px){.modal.container{width:1170px;margin-left:-585px}}@media (max-width:840px){.modal,.modal.container,.modal.modal-overflow{top:1%;right:1%;left:1%;bottom:auto;width:auto!important;height:auto!important;margin:0!important;padding:0!important}.modal.fade.in,.modal.container.fade.in,.modal.modal-overflow.fade.in{top:1%;bottom:auto}.modal-body,.modal-overflow .modal-body{position:static;margin:0;height:auto!important;max-height:none!important;overflow:visible!important}.modal-footer,.modal-overflow .modal-footer{position:static}}.loading-spinner{position:absolute;top:50%;left:50%;margin:-12px 0 0 -12px}.animated{-webkit-animation-duration:1s;-moz-animation-duration:1s;-o-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px)}}@-moz-keyframes shake{0%,100%{-moz-transform:translateX(0)}10%,30%,50%,70%,90%{-moz-transform:translateX(-10px)}20%,40%,60%,80%{-moz-transform:translateX(10px)}}@-o-keyframes shake{0%,100%{-o-transform:translateX(0)}10%,30%,50%,70%,90%{-o-transform:translateX(-10px)}20%,40%,60%,80%{-o-transform:translateX(10px)}}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}.shake{-webkit-animation-name:shake;-moz-animation-name:shake;-o-animation-name:shake;animation-name:shake} \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-responsive.min.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-responsive.min.css deleted file mode 100644 index 0de1c5db..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-responsive.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Bootstrap Responsive v2.3.1 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:839px) and (max-width:839px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:839px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:839px) and (max-width:839px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:839px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:839px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:840px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap.min.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap.min.css deleted file mode 100644 index c10c7f41..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Bootstrap v2.3.1 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.css deleted file mode 100644 index bb839c21..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.css +++ /dev/null @@ -1,410 +0,0 @@ -/* The MIT License */ -.dropzone, -.dropzone *, -.dropzone-previews, -.dropzone-previews * { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.dropzone { - position: relative; - border: 1px solid rgba(0,0,0,0.08); - background: rgba(0,0,0,0.02); - padding: 1em; -} -.dropzone.dz-clickable { - cursor: pointer; -} -.dropzone.dz-clickable .dz-message, -.dropzone.dz-clickable .dz-message span { - cursor: pointer; -} -.dropzone.dz-clickable * { - cursor: default; -} -.dropzone .dz-message { - opacity: 1; - -ms-filter: none; - filter: none; -} -.dropzone.dz-drag-hover { - border-color: rgba(0,0,0,0.15); - background: rgba(0,0,0,0.04); -} -.dropzone.dz-started .dz-message { - display: none; -} -.dropzone .dz-preview, -.dropzone-previews .dz-preview { - background: rgba(255,255,255,0.8); - position: relative; - display: inline-block; - margin: 17px; - vertical-align: top; - border: 1px solid #acacac; - padding: 6px 6px 6px 6px; -} -.dropzone .dz-preview.dz-file-preview [data-dz-thumbnail], -.dropzone-previews .dz-preview.dz-file-preview [data-dz-thumbnail] { - display: none; -} -.dropzone .dz-preview .dz-details, -.dropzone-previews .dz-preview .dz-details { - width: 100px; - height: 100px; - position: relative; - background: #ebebeb; - padding: 5px; - margin-bottom: 22px; -} -.dropzone .dz-preview .dz-details .dz-filename, -.dropzone-previews .dz-preview .dz-details .dz-filename { - overflow: hidden; - height: 100%; -} -.dropzone .dz-preview .dz-details img, -.dropzone-previews .dz-preview .dz-details img { - position: absolute; - top: 0; - left: 0; - width: 100px; - height: 100px; -} -.dropzone .dz-preview .dz-details .dz-size, -.dropzone-previews .dz-preview .dz-details .dz-size { - position: absolute; - bottom: -28px; - left: 3px; - height: 28px; - line-height: 28px; -} -.dropzone .dz-preview.dz-error .dz-error-mark, -.dropzone-previews .dz-preview.dz-error .dz-error-mark { - display: block; -} -.dropzone .dz-preview.dz-success .dz-success-mark, -.dropzone-previews .dz-preview.dz-success .dz-success-mark { - display: block; -} -.dropzone .dz-preview:hover .dz-details img, -.dropzone-previews .dz-preview:hover .dz-details img { - display: none; -} -.dropzone .dz-preview .dz-success-mark, -.dropzone-previews .dz-preview .dz-success-mark, -.dropzone .dz-preview .dz-error-mark, -.dropzone-previews .dz-preview .dz-error-mark { - display: none; - position: absolute; - width: 40px; - height: 40px; - font-size: 30px; - text-align: center; - right: -10px; - top: -10px; -} -.dropzone .dz-preview .dz-success-mark, -.dropzone-previews .dz-preview .dz-success-mark { - color: #8cc657; -} -.dropzone .dz-preview .dz-error-mark, -.dropzone-previews .dz-preview .dz-error-mark { - color: #ee162d; -} -.dropzone .dz-preview .dz-progress, -.dropzone-previews .dz-preview .dz-progress { - position: absolute; - top: 100px; - left: 6px; - right: 6px; - height: 6px; - background: #d7d7d7; - display: none; -} -.dropzone .dz-preview .dz-progress .dz-upload, -.dropzone-previews .dz-preview .dz-progress .dz-upload { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 0%; - background-color: #8cc657; -} -.dropzone .dz-preview.dz-processing .dz-progress, -.dropzone-previews .dz-preview.dz-processing .dz-progress { - display: block; -} -.dropzone .dz-preview .dz-error-message, -.dropzone-previews .dz-preview .dz-error-message { - display: none; - position: absolute; - top: -5px; - left: -20px; - background: rgba(245,245,245,0.8); - padding: 8px 10px; - color: #800; - min-width: 140px; - max-width: 500px; - z-index: 500; -} -.dropzone .dz-preview:hover.dz-error .dz-error-message, -.dropzone-previews .dz-preview:hover.dz-error .dz-error-message { - display: block; -} -.dropzone { - border: 1px solid rgba(0,0,0,0.03); - min-height: 360px; - -webkit-border-radius: 3px; - border-radius: 3px; - background: rgba(0,0,0,0.03); - padding: 23px; -} -.dropzone .dz-default.dz-message { - opacity: 1; - -ms-filter: none; - filter: none; - -webkit-transition: opacity 0.3s ease-in-out; - -moz-transition: opacity 0.3s ease-in-out; - -o-transition: opacity 0.3s ease-in-out; - -ms-transition: opacity 0.3s ease-in-out; - transition: opacity 0.3s ease-in-out; - /*background-image: url("../img/spritemap.png");*/ - background-repeat: no-repeat; - background-position: 0 0; - position: absolute; - width: 428px; - height: 123px; - margin-left: -214px; - margin-top: -61.5px; - top: 50%; - left: 50%; -} -@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) { - .dropzone .dz-default.dz-message { - /*background-image: url("../img/spritemap@2x.png");*/ - -webkit-background-size: 428px 406px; - -moz-background-size: 428px 406px; - background-size: 428px 406px; - } -} -.dropzone .dz-default.dz-message span { - display: none; -} -.dropzone.dz-square .dz-default.dz-message { - background-position: 0 -123px; - width: 268px; - margin-left: -134px; - height: 174px; - margin-top: -87px; -} -.dropzone.dz-drag-hover .dz-message { - opacity: 0.15; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=15)"; - filter: alpha(opacity=15); -} -.dropzone.dz-started .dz-message { - display: block; - opacity: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); -} -.dropzone .dz-preview, -.dropzone-previews .dz-preview { - -webkit-box-shadow: 1px 1px 4px rgba(0,0,0,0.16); - box-shadow: 1px 1px 4px rgba(0,0,0,0.16); - font-size: 14px; -} -.dropzone .dz-preview.dz-image-preview:hover .dz-details img, -.dropzone-previews .dz-preview.dz-image-preview:hover .dz-details img { - display: block; - opacity: 0.1; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; - filter: alpha(opacity=10); -} -.dropzone .dz-preview.dz-success .dz-success-mark, -.dropzone-previews .dz-preview.dz-success .dz-success-mark { - opacity: 1; - -ms-filter: none; - filter: none; -} -.dropzone .dz-preview.dz-error .dz-error-mark, -.dropzone-previews .dz-preview.dz-error .dz-error-mark { - opacity: 1; - -ms-filter: none; - filter: none; -} -.dropzone .dz-preview.dz-error .dz-progress .dz-upload, -.dropzone-previews .dz-preview.dz-error .dz-progress .dz-upload { - background: #ee1e2d; -} -.dropzone .dz-preview .dz-error-mark, -.dropzone-previews .dz-preview .dz-error-mark, -.dropzone .dz-preview .dz-success-mark, -.dropzone-previews .dz-preview .dz-success-mark { - display: block; - opacity: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -webkit-transition: opacity 0.4s ease-in-out; - -moz-transition: opacity 0.4s ease-in-out; - -o-transition: opacity 0.4s ease-in-out; - -ms-transition: opacity 0.4s ease-in-out; - transition: opacity 0.4s ease-in-out; - /*background-image: url("../img/spritemap.png");*/ - background-repeat: no-repeat; -} -@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) { - .dropzone .dz-preview .dz-error-mark, - .dropzone-previews .dz-preview .dz-error-mark, - .dropzone .dz-preview .dz-success-mark, - .dropzone-previews .dz-preview .dz-success-mark { - /*background-image: url("../img/spritemap@2x.png");*/ - -webkit-background-size: 428px 406px; - -moz-background-size: 428px 406px; - background-size: 428px 406px; - } -} -.dropzone .dz-preview .dz-error-mark span, -.dropzone-previews .dz-preview .dz-error-mark span, -.dropzone .dz-preview .dz-success-mark span, -.dropzone-previews .dz-preview .dz-success-mark span { - display: none; -} -.dropzone .dz-preview .dz-error-mark, -.dropzone-previews .dz-preview .dz-error-mark { - background-position: -268px -123px; -} -.dropzone .dz-preview .dz-success-mark, -.dropzone-previews .dz-preview .dz-success-mark { - background-position: -268px -163px; -} -.dropzone .dz-preview .dz-progress .dz-upload, -.dropzone-previews .dz-preview .dz-progress .dz-upload { - -webkit-animation: loading 0.4s linear infinite; - -moz-animation: loading 0.4s linear infinite; - -o-animation: loading 0.4s linear infinite; - -ms-animation: loading 0.4s linear infinite; - animation: loading 0.4s linear infinite; - -webkit-transition: width 0.3s ease-in-out; - -moz-transition: width 0.3s ease-in-out; - -o-transition: width 0.3s ease-in-out; - -ms-transition: width 0.3s ease-in-out; - transition: width 0.3s ease-in-out; - -webkit-border-radius: 2px; - border-radius: 2px; - position: absolute; - top: 0; - left: 0; - width: 0%; - height: 100%; - /*background-image: url("../img/spritemap.png");*/ - background-repeat: repeat-x; - background-position: 0px -400px; -} -@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) { - .dropzone .dz-preview .dz-progress .dz-upload, - .dropzone-previews .dz-preview .dz-progress .dz-upload { - /*background-image: url("../img/spritemap@2x.png");*/ - -webkit-background-size: 428px 406px; - -moz-background-size: 428px 406px; - background-size: 428px 406px; - } -} -.dropzone .dz-preview.dz-success .dz-progress, -.dropzone-previews .dz-preview.dz-success .dz-progress { - display: block; - opacity: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -webkit-transition: opacity 0.4s ease-in-out; - -moz-transition: opacity 0.4s ease-in-out; - -o-transition: opacity 0.4s ease-in-out; - -ms-transition: opacity 0.4s ease-in-out; - transition: opacity 0.4s ease-in-out; -} -.dropzone .dz-preview .dz-error-message, -.dropzone-previews .dz-preview .dz-error-message { - display: block; - opacity: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -webkit-transition: opacity 0.3s ease-in-out; - -moz-transition: opacity 0.3s ease-in-out; - -o-transition: opacity 0.3s ease-in-out; - -ms-transition: opacity 0.3s ease-in-out; - transition: opacity 0.3s ease-in-out; -} -.dropzone .dz-preview:hover.dz-error .dz-error-message, -.dropzone-previews .dz-preview:hover.dz-error .dz-error-message { - opacity: 1; - -ms-filter: none; - filter: none; -} -.dropzone a.dz-remove, -.dropzone-previews a.dz-remove { - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fafafa), color-stop(1, #eee)); - background-image: -webkit-linear-gradient(top, #fafafa 0, #eee 100%); - background-image: -moz-linear-gradient(top, #fafafa 0, #eee 100%); - background-image: -o-linear-gradient(top, #fafafa 0, #eee 100%); - background-image: -ms-linear-gradient(top, #fafafa 0, #eee 100%); - background-image: linear-gradient(top, #fafafa 0, #eee 100%); - -webkit-border-radius: 2px; - border-radius: 2px; - border: 1px solid #eee; - text-decoration: none; - display: block; - padding: 4px 5px; - text-align: center; - color: #aaa; - margin-top: 26px; -} -.dropzone a.dz-remove:hover, -.dropzone-previews a.dz-remove:hover { - color: #666; -} -@-moz-keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} -@-webkit-keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} -@-o-keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} -@-ms-keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} -@keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.min.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.min.css deleted file mode 100644 index f9abb126..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.min.css +++ /dev/null @@ -1 +0,0 @@ -.dropzone,.dropzone *,.dropzone-previews,.dropzone-previews *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.dropzone{position:relative;border:1px solid rgba(0,0,0,.08);background:rgba(0,0,0,.02);padding:1em}.dropzone.dz-clickable{cursor:pointer}.dropzone.dz-clickable .dz-message,.dropzone.dz-clickable .dz-message span{cursor:pointer}.dropzone.dz-clickable *{cursor:default}.dropzone .dz-message{opacity:1;-ms-filter:none;filter:none}.dropzone.dz-drag-hover{border-color:rgba(0,0,0,.15);background:rgba(0,0,0,.04)}.dropzone.dz-started .dz-message{display:none}.dropzone .dz-preview,.dropzone-previews .dz-preview{background:rgba(255,255,255,.8);position:relative;display:inline-block;margin:17px;vertical-align:top;border:1px solid #acacac;padding:6px}.dropzone .dz-preview.dz-file-preview [data-dz-thumbnail],.dropzone-previews .dz-preview.dz-file-preview [data-dz-thumbnail]{display:none}.dropzone .dz-preview .dz-details,.dropzone-previews .dz-preview .dz-details{width:100px;height:100px;position:relative;background:#ebebeb;padding:5px;margin-bottom:22px}.dropzone .dz-preview .dz-details .dz-filename,.dropzone-previews .dz-preview .dz-details .dz-filename{overflow:hidden;height:100%}.dropzone .dz-preview .dz-details img,.dropzone-previews .dz-preview .dz-details img{position:absolute;top:0;left:0;width:100px;height:100px}.dropzone .dz-preview .dz-details .dz-size,.dropzone-previews .dz-preview .dz-details .dz-size{position:absolute;bottom:-28px;left:3px;height:28px;line-height:28px}.dropzone .dz-preview.dz-error .dz-error-mark,.dropzone-previews .dz-preview.dz-error .dz-error-mark{display:block}.dropzone .dz-preview.dz-success .dz-success-mark,.dropzone-previews .dz-preview.dz-success .dz-success-mark{display:block}.dropzone .dz-preview:hover .dz-details img,.dropzone-previews .dz-preview:hover .dz-details img{display:none}.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark,.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark{display:none;position:absolute;width:40px;height:40px;font-size:30px;text-align:center;right:-10px;top:-10px}.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{color:#8cc657}.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark{color:#ee162d}.dropzone .dz-preview .dz-progress,.dropzone-previews .dz-preview .dz-progress{position:absolute;top:100px;left:6px;right:6px;height:6px;background:#d7d7d7;display:none}.dropzone .dz-preview .dz-progress .dz-upload,.dropzone-previews .dz-preview .dz-progress .dz-upload{position:absolute;top:0;bottom:0;left:0;width:0;background-color:#8cc657}.dropzone .dz-preview.dz-processing .dz-progress,.dropzone-previews .dz-preview.dz-processing .dz-progress{display:block}.dropzone .dz-preview .dz-error-message,.dropzone-previews .dz-preview .dz-error-message{display:none;position:absolute;top:-5px;left:-20px;background:rgba(245,245,245,.8);padding:8px 10px;color:#800;min-width:140px;max-width:500px;z-index:500}.dropzone .dz-preview:hover.dz-error .dz-error-message,.dropzone-previews .dz-preview:hover.dz-error .dz-error-message{display:block}.dropzone{border:1px solid rgba(0,0,0,.03);min-height:360px;-webkit-border-radius:3px;border-radius:3px;background:rgba(0,0,0,.03);padding:23px}.dropzone .dz-default.dz-message{opacity:1;-ms-filter:none;filter:none;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;background-image:url(../img/spritemap.png);background-repeat:no-repeat;background-position:0 0;position:absolute;width:428px;height:123px;margin-left:-214px;margin-top:-61.5px;top:50%;left:50%}@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx){.dropzone .dz-default.dz-message{background-image:url(../img/spritemap@2x.png);-webkit-background-size:428px 406px;-moz-background-size:428px 406px;background-size:428px 406px}}.dropzone .dz-default.dz-message span{display:none}.dropzone.dz-square .dz-default.dz-message{background-position:0 -123px;width:268px;margin-left:-134px;height:174px;margin-top:-87px}.dropzone.dz-drag-hover .dz-message{opacity:.15;-ms-filter:"alpha(Opacity=15)";filter:alpha(opacity=15)}.dropzone.dz-started .dz-message{display:block;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0)}.dropzone .dz-preview,.dropzone-previews .dz-preview{-webkit-box-shadow:1px 1px 4px rgba(0,0,0,.16);box-shadow:1px 1px 4px rgba(0,0,0,.16);font-size:14px}.dropzone .dz-preview.dz-image-preview:hover .dz-details img,.dropzone-previews .dz-preview.dz-image-preview:hover .dz-details img{display:block;opacity:.1;-ms-filter:"alpha(Opacity=10)";filter:alpha(opacity=10)}.dropzone .dz-preview.dz-success .dz-success-mark,.dropzone-previews .dz-preview.dz-success .dz-success-mark{opacity:1;-ms-filter:none;filter:none}.dropzone .dz-preview.dz-error .dz-error-mark,.dropzone-previews .dz-preview.dz-error .dz-error-mark{opacity:1;-ms-filter:none;filter:none}.dropzone .dz-preview.dz-error .dz-progress .dz-upload,.dropzone-previews .dz-preview.dz-error .dz-progress .dz-upload{background:#ee1e2d}.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark,.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{display:block;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transition:opacity .4s ease-in-out;-moz-transition:opacity .4s ease-in-out;-o-transition:opacity .4s ease-in-out;-ms-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;background-image:url(../img/spritemap.png);background-repeat:no-repeat}@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx){.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark,.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{background-image:url(../img/spritemap@2x.png);-webkit-background-size:428px 406px;-moz-background-size:428px 406px;background-size:428px 406px}}.dropzone .dz-preview .dz-error-mark span,.dropzone-previews .dz-preview .dz-error-mark span,.dropzone .dz-preview .dz-success-mark span,.dropzone-previews .dz-preview .dz-success-mark span{display:none}.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark{background-position:-268px -123px}.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{background-position:-268px -163px}.dropzone .dz-preview .dz-progress .dz-upload,.dropzone-previews .dz-preview .dz-progress .dz-upload{-webkit-animation:loading .4s linear infinite;-moz-animation:loading .4s linear infinite;-o-animation:loading .4s linear infinite;-ms-animation:loading .4s linear infinite;animation:loading .4s linear infinite;-webkit-transition:width .3s ease-in-out;-moz-transition:width .3s ease-in-out;-o-transition:width .3s ease-in-out;-ms-transition:width .3s ease-in-out;transition:width .3s ease-in-out;-webkit-border-radius:2px;border-radius:2px;position:absolute;top:0;left:0;width:0;height:100%;background-image:url(../img/spritemap.png);background-repeat:repeat-x;background-position:0 -400px}@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx){.dropzone .dz-preview .dz-progress .dz-upload,.dropzone-previews .dz-preview .dz-progress .dz-upload{background-image:url(../img/spritemap@2x.png);-webkit-background-size:428px 406px;-moz-background-size:428px 406px;background-size:428px 406px}}.dropzone .dz-preview.dz-success .dz-progress,.dropzone-previews .dz-preview.dz-success .dz-progress{display:block;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transition:opacity .4s ease-in-out;-moz-transition:opacity .4s ease-in-out;-o-transition:opacity .4s ease-in-out;-ms-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out}.dropzone .dz-preview .dz-error-message,.dropzone-previews .dz-preview .dz-error-message{display:block;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.dropzone .dz-preview:hover.dz-error .dz-error-message,.dropzone-previews .dz-preview:hover.dz-error .dz-error-message{opacity:1;-ms-filter:none;filter:none}.dropzone a.dz-remove,.dropzone-previews a.dz-remove{background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fafafa),color-stop(1,#eee));background-image:-webkit-linear-gradient(top,#fafafa 0,#eee 100%);background-image:-moz-linear-gradient(top,#fafafa 0,#eee 100%);background-image:-o-linear-gradient(top,#fafafa 0,#eee 100%);background-image:-ms-linear-gradient(top,#fafafa 0,#eee 100%);background-image:linear-gradient(top,#fafafa 0,#eee 100%);-webkit-border-radius:2px;border-radius:2px;border:1px solid #eee;text-decoration:none;display:block;padding:4px 5px;text-align:center;color:#aaa;margin-top:26px}.dropzone a.dz-remove:hover,.dropzone-previews a.dz-remove:hover{color:#666}@-moz-keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}}@-webkit-keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}}@-o-keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}}@-ms-keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}}@keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}} \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/jquery.contextMenu.min.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/jquery.contextMenu.min.css deleted file mode 100644 index 21d6805d..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/jquery.contextMenu.min.css +++ /dev/null @@ -1,38 +0,0 @@ -.context-menu-list{font-family:'Open Sans', sans-serif;width:200px;display:inline-block;position:absolute;list-style-type:none;border:1px solid #DDD;background:#fff;font-size:12px;margin:0;padding:5px} -.context-menu-item{background-color:#fff;position:relative;height:auto;word-wrap:break-word;-webkit-user-select:none;-moz-user-select:0;-ms-user-select:none;user-select:none;padding:5px 5px 5px 30px} -.context-menu-item:last-child{border:none} -.context-menu-separator{padding-bottom:0;border-bottom:1px solid #DDD} -.context-menu-item > label > input,.context-menu-item > label > textarea{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text} -.context-menu-item.hover{cursor:pointer;background-color:#DDD} -.context-menu-item.disabled{color:#666} -.context-menu-input.hover,.context-menu-item.disabled.hover{cursor:default;background-color:#EEE} -.context-menu-submenu:after{content:">";color:#666;position:absolute;top:0;right:3px;z-index:1} -.context-menu-item.icon{min-height:18px;vertical-align:middle;background-repeat:no-repeat;background-position:4px 5px;width:auto;display:list-item} -.context-menu-item.icon-edit{background-image:url(../img/page_white_edit.png)} -.context-menu-item.icon-cut{background-image:url(../img/cut.png)} -.context-menu-item.icon-copy{background-image:url(../img/copy.png)} -.context-menu-item.icon-rename{background-image:url(../img/rename.png)} -.context-menu-item.icon-preview{background-image:url(../img/preview.png)} -.context-menu-item.icon-dimension{background-image:url(../img/dimension.png)} -.context-menu-item.icon-date{background-image:url(../img/date.png)} -.context-menu-item.icon-label{background-image:url(../img/label.png)} -.context-menu-item.icon-size{background-image:url(../img/size.png)} -.context-menu-item.icon-download{background-image:url(../img/download.png)} -.context-menu-item.icon-paste{background-image:url(../img/page_white_paste.png)} -.context-menu-item.icon-clipboard-apply {background-image:url(../img/clipboard_apply.png)} -.context-menu-item.icon-delete{background-image:url(../img/page_white_delete.png)} -.context-menu-item.icon-add{background-image:url(../img/page_white_add.png)} -.context-menu-item.icon-quit{background-image:url(../img/door.png)} -.context-menu-item.icon-info{background-image:url(../img/info.png)} -.context-menu-item.icon-extract{background-image:url(../img/zip.png)} -.context-menu-item.icon-url{background-image:url(../img/url.png)} -.context-menu-item.icon-edit_img{background-image:url(../img/edit_img.png)} -.context-menu-item.icon-duplicate{background-image:url(../img/duplicate.png)} -.context-menu-input > label > *{vertical-align:top} -.context-menu-input > label > input[type=checkbox],.context-menu-input > label > input[type=radio]{margin-left:-17px} -.context-menu-input > label > span{margin-left:5px} -.context-menu-input > label,.context-menu-input > label > input[type=text],.context-menu-input > label > textarea,.context-menu-input > label > select{display:block;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box} -.context-menu-input > label > textarea{height:100px} -.context-menu-item > .context-menu-list{display:none;right:-5px;top:5px} -.context-menu-item.hover > .context-menu-list{display:block} -.context-menu-accesskey{text-decoration:underline} \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.css deleted file mode 100644 index 061ef75b..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.css +++ /dev/null @@ -1 +0,0 @@ -*,*:after,*:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body,html{font-family:'Open Sans',sans-serif;font-size:100%;padding:0;margin:0}body{padding-top:32px;font-weight:200;background:#ececec;overflow:-moz-scrollbars-vertical}#qLpercentage{font-family:'Open Sans',sans-serif;font-size:40px;line-height:40px;color:#bbb;font-weight:200;height:60px;-webkit-border-radius:10px;border-radius:10px;padding:10px;text-shadow:1px 1px 2px #fff;filter:dropshadow(color=#fff, offx=1, offy=1)}#qLbar{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZ3JhZC11Y2dnLWdlbmVyYXRlZCkiIC8+Cjwvc3ZnPg==);background:-moz-linear-gradient(top, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(122,122,122,0.4)), color-stop(100%, rgba(122,122,122,0.4)));background:-webkit-linear-gradient(top, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);background:-o-linear-gradient(top, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);background:-ms-linear-gradient(top, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);background:linear-gradient(to bottom, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#667a7a7a', endColorstr='#667a7a7a', GradientType=0);z-index:200;margin:0;overflow:hidden}[class^="rficon-"],[class*=" rficon-"]{display:inline-block;width:16px;height:16px;margin-top:1px;*margin-right:.3em;line-height:16px;vertical-align:text-top;background-position:0 0;background-repeat:no-repeat}.rficon-clipboard-apply{background-image:url(../img/clipboard_apply.png)}.rficon-clipboard-clear{background-image:url(../img/clipboard_clear.png)}.btn{-webkit-border-radius:0;border-radius:0}.container-fluid{padding-right:0 !important;margin-top:10px !important}.img-precontainer{margin:auto;width:100%;text-align:center;background:#fff;border:none}.img-container{height:91px;width:122px;padding:0;border:none;overflow:hidden;display:table-cell;text-align:center;vertical-align:middle;margin:auto}ul.breadcrumb{margin-bottom:5px;-webkit-border-radius:0;border-radius:0;padding-bottom:4px;padding-top:6px;background:#f0f0f0;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065);border-bottom:1px solid #bbb}ul.breadcrumb .pull-left i{margin-top:2px}.alert{padding:8px 35px 8px 14px;margin-bottom:2px;border:1px solid #aaa;color:#666;font-weight:200;font-size:13px;-webkit-border-radius:0;border-radius:0;background:#fff}.img-container *,.img-container-mini *{vertical-align:middle}#help{display:none}iframe{overflow:auto;-webkit-overflow-scrolling:touch}.upload-tabbable{margin-left:5px;margin-right:5px}.upload-tabbable .upload-help{font-size:11px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff;text-align:center}.upload-tabbable .nav{margin:0}.upload-tabbable .nav li a{font-size:13px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.upload-tabbable .tab-content{padding:5px;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-rigth:1px solid #ddd;background:#fff;margin-bottom:5px}input#filter-input{margin:0;width:84px;height:26px;vertical-align:bottom;margin-bottom:2px;-webkit-border-radius:0;border-radius:0;font-size:12px;font-weight:200;position:relative;left:1px}.qq-uploader .span9{margin-left:14px !important;width:690px !important}.space10{clear:both;height:10px}h4{font-size:12px;font-weight:200;margin:0;text-align:center;padding:0;margin-top:6px;line-height:18px}h3{font-size:14px;font-weight:200}.boxes{border:1px solid #ccc;word-wrap:break-word;background:#fff;-webkit-box-shadow:1px 1px 2px 0 rgba(0,0,0,0.2);box-shadow:1px 1px 2px 0 rgba(0,0,0,0.2);min-height:115px;text-align:center}.container-fluid{padding:0 10px !important}body .avpw .avpw_primary_button,body .avpw .avpw_primary_button:link,body .avpw .avpw_primary_button:visited,body .avpw .avpw_primary_button:active{background-color:#999;color:#fff;background-image:none;border:none}body .avpw .avpw_primary_button:hover{border:none;background-color:#666}.uploader{position:fixed;top:50px;left:14px;margin:auto;width:100%;z-index:9999;overflow:hidden;background:#eee;padding-top:20px;border:1px solid #ccc;display:none;-webkit-box-shadow:0 0 10px 0 rgba(1,1,1,0.5);box-shadow:0 0 10px 0 rgba(1,1,1,0.5)}.download-form{margin-bottom:25px}.grid li i{margin-left:2px;margin-right:2px;z-index:0}.box,.boxx{text-align:center;word-wrap:break-word;vertical-align:top;text-align:left;position:relative;border:none;box-shadow:none;z-index:100;padding:4px}.box .btn{width:100%;background:none;box-shadow:none;border:none;z-index:200}.navbar{margin-bottom:0;border-bottom:1px solid #bbb}.navbar .navbar-inner{border:none;min-height:35px;-webkit-border-radius:0;border-radius:0;padding-bottom:2px;margin:0;padding-right:8px;padding-left:8px}.navbar .navbar-inner .container-fluid{margin:0;margin-top:0 !important;padding:0}.navbar .navbar-inner .container-fluid .brand{display:none}.navbar .navbar-inner .container-fluid .filters span{margin-top:0;font-size:13px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}ul.sorting{position:absolute;left:-25px;top:20px;min-width:0;background:#eee}ul.sorting li a:hover{background:#aaa}.btn-group .dropdown-toggle.sorting-btn{background:none;border:none;box-shadow:none;position:relative;-webkit-box-shadow:none;top:-5px;font-size:13px}.btn-group .dropdown-toggle.sorting-btn:hover{background:none;border:none;box-shadow:none;-webkit-box-shadow:none}ul.sorting.dropdown-menu>li>a{font-size:12px;text-shadow:none}ul.sorting.dropdown-menu>li>a.ascending{background-image:url(../img/down.png);background-repeat:no-repeat;background-position:6px 8px}ul.sorting.dropdown-menu>li>a.descending{background-image:url(../img/up.png);background-repeat:no-repeat;background-position:6px 8px}.sorter-container{margin-top:5px;margin-bottom:0;-webkit-border-radius:0;border-radius:0;padding-bottom:4px;padding-top:6px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065);background-color:#f5f5f5;position:relative;border-bottom:1px solid #bbb;height:24px}.sorter-container a.sorter{color:#000}.sorter-container a.ascending{padding-left:9px;background-image:url(../img/down.png);background-repeat:no-repeat;background-position:0 3px}.sorter-container a.descending{padding-left:9px;background-image:url(../img/up.png);background-repeat:no-repeat;background-position:0 4px}.sorter-container .img-dimension,.sorter-container .file-date,.sorter-container .file-size,.sorter-container .file-extension,.sorter-container .file-name,.sorter-container .file-operations{display:block;position:absolute;top:0;z-index:100;-webkit-box-shadow:none;box-shadow:none;text-align:left;font-size:13px;margin-top:1px;color:#999}.sorter-container .file-operations{width:110px;right:0}.sorter-container .img-dimension{width:65px;right:123px}.sorter-container .file-date{width:70px;right:188px}.sorter-container .file-size{width:55px;right:258px}.sorter-container .file-extension{width:40px;right:313px}.sorter-container .file-name{width:50px;left:52px}.img-dimension,.file-date,.file-size,.file-extension,.file-name,.file-operations{font-size:12px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff;display:none}.view-controller{text-align:left}.view-controller .btn-group>.btn:first-child,.view-controller .btn-group>.btn:last-child{-webkit-border-radius:0;border-radius:0}.navbar .filters .btn{margin-bottom:2px;padding-top:2px;padding-bottom:2px;padding-left:8px;padding-right:8px;margin-top:5px}.filters .types{text-align:right}@media (max-width:780px){#view2{display:none}}@media (max-width:839px){body{padding-top:0}.filters .types{text-align:left}.navbar .navbar-inner .container-fluid .brand{display:block}.navbar .navbar-inner{padding-bottom:4px}.filters div.span3.half,.filters div.half.span6{float:none;width:100%}.container-fluid{margin:0 !important;padding:0}#qLbar{height:50px !important}}@media (min-width:400px) and (max-width:839px){.filters .row-fluid .half{width:48.61878453038674%;*width:48.56559304102504%;float:left}}.tooltip.in{z-index:10000;opacity:1;filter:alpha(opacity=1);font-weight:bold}.tooltip{font-weight:bold;z-index:10000}.grid{padding:0 0;margin:0 auto;list-style:none;-webkit-overflow-scrolling:touch}.grid li{display:inline-block;width:124px;border:none;margin:4px;margin-bottom:8px;padding:0;vertical-align:top}.grid figure{margin:0;position:relative;display:block;width:122px;margin:auto}.grid figure:hover{background:#e0e0e0 !important}.list-view1.grid li{width:100%}.list-view1.grid li figure{width:100%}.grid figcaption{text-align:center;padding:2px;padding-top:8px;color:#fff;height:30px;width:122px;margin-left:0;margin-right:0;position:absolute;top:auto;bottom:0;-webkit-box-shadow:inset 0 0 8px 0 rgba(41,41,41,0.5);box-shadow:inset 0 0 8px 0 rgba(41,41,41,0.5)}.grid figcaption a{margin:0;padding:3px}.grid figcaption h3{margin:0;padding:0;color:#fff}.grid h4{text-align:center;color:#000;padding:0;margin-bottom:4px;margin-top:4px}.grid figure .box{box-sizing:content-box}.list-view0.grid figure .box,.list-view1.grid figure .box,.list-view2.grid figure .box{max-width:100%;display:block;position:relative;overflow:hidden;z-index:1}.list-view0.grid figure .box h4.ellipsis,.list-view1.grid figure .box h4.ellipsis,.list-view2.grid figure .box h4.ellipsis{height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-view0.grid figure .box h4,.list-view1.grid figure .box h4,.list-view2.grid figure .box h4{z-index:1}.list-view0.grid figure .box h4 a,.list-view1.grid figure .box h4 a,.list-view2.grid figure .box h4 a{z-index:1}.list-view0.grid .selected,.list-view1.grid .selected,.list-view2.grid .selected{-webkit-box-shadow:0 0 10px 5px rgba(0,0,0,0.25);box-shadow:0 0 10px 5px rgba(0,0,0,0.25)}.no-touch .list-view0 figure .box{z-index:1;-webkit-transition:-webkit-transform .3s;-moz-transition:-moz-transform .3s;transition:transform .3s}.ui-state-highlight{border:1px solid #f00}.no-touch .list-view0 figure:hover .box,.no-touch .list-view0 figure.cs-hover .box{-webkit-box-shadow:0 0 4px 0 rgba(1,1,1,0.5);box-shadow:0 0 4px 0 rgba(1,1,1,0.5);-webkit-transform:translateY(-26px);-moz-transform:translateY(-26px);-ms-transform:translateY(-26px);transform:translateY(-26px)}.list-view0 figure:hover .box.no-effect,.list-view0 figure.cs-hover .box.no-effect,.no-effect{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none}.list-view0 .img-precontainer-mini{display:none;background:none}a,a:hover{color:#000;text-decoration:none}.back-directory .img-precontainer,.back-directory .img-precontainer-mini,.back-directory .box{background:none}form{margin:0;padding:0}.modal-body form,.modal-body input{margin:0}.modal-header h3{font-weight:300;font-size:20px}.list-view1.sorter-container{display:block}.list-view0.sorter-container,.list-view2.sorter-container{display:none}.list-view0.grid .img-precontainer .img-container img{max-width:122px !important;max-height:91px !important}.list-view0.grid .img-precontainer .img-container img.icon{width:122px;margin-top:0}.list-view0.grid .img-precontainer .filetype{position:absolute;top:0;width:120px;text-align:center;color:#fff;font-size:13px;line-height:22px}.list-view0.grid .cover{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjI1Ii8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMC4yNSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);background:-moz-linear-gradient(top, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(255,255,255,0.25)), color-stop(100%, rgba(255,255,255,0.25)));background:-webkit-linear-gradient(top, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);background:-o-linear-gradient(top, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);background:-ms-linear-gradient(top, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);background:linear-gradient(to bottom, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#40ffffff', endColorstr='#40ffffff', GradientType=0);width:122px;position:absolute;top:22px;right:0;height:69px}.list-view0.grid .box{background:#fff}.list-view0.grid .directory{background:#ddd}.list-view0.grid figure.back-directory .directory{background:#bbb}.list-view0.grid figcaption{background:#fff}.list-view1.grid li,.list-view2.grid li{margin:0}.list-view1.grid li.back figure.back-directory,.list-view2.grid li.back figure.back-directory{height:34px}.list-view1.grid li:nth-child(odd) figure,.list-view2.grid li:nth-child(odd) figure{background:#f9f9f9}.list-view1.grid li:nth-child(odd) figure.directory,.list-view2.grid li:nth-child(odd) figure.directory{background:#eaeaea}.list-view1.grid li figure,.list-view2.grid li figure{border-bottom:1px solid #ccc;background:#fff}.list-view1.grid li figure.back-directory,.list-view2.grid li figure.back-directory{background:#bbb}.list-view1.grid li figure.back-directory .box,.list-view2.grid li figure.back-directory .box{background:none}.list-view1.grid li figure.directory,.list-view2.grid li figure.directory{background:#efefef}.list-view1.grid li figure.directory box,.list-view2.grid li figure.directory box{padding:0;min-height:10px}.list-view1.grid li figure .box,.list-view2.grid li figure .box{margin-left:50px;-webkit-transition:none;-moz-transition:none;transition:none}.list-view1.grid li figure .box h4,.list-view2.grid li figure .box h4{padding-top:1px;font-size:13px;text-align:left}.list-view1.grid .img-precontainer-mini,.list-view2.grid .img-precontainer-mini{display:block;position:absolute;width:45px;height:34px;overflow:hidden;text-align:center}.list-view1.grid .img-precontainer-mini img,.list-view2.grid .img-precontainer-mini img{height:34px}.list-view1.grid .img-precontainer-mini .filetype,.list-view2.grid .img-precontainer-mini .filetype{position:absolute;top:5px;text-align:center;left:5px;padding:1px 2px;font-size:13px;line-height:22px;width:34px;height:24px;color:#fff;background:#333}.list-view1.grid .cover,.list-view2.grid .cover{display:none}.list-view1.grid .img-container-mini,.list-view2.grid .img-container-mini{width:45px;height:34px;border:none;overflow:hidden;display:table-cell;text-align:center;vertical-align:middle;margin:auto}.list-view1.grid .img-precontainer-mini.original-thumb,.list-view2.grid .img-precontainer-mini.original-thumb{padding:0}.list-view1.grid .img-precontainer-mini.original-thumb img,.list-view2.grid .img-precontainer-mini.original-thumb img{width:auto;margin:0;height:34px}.list-view1.grid .img-precontainer-mini.original-thumb img.original,.list-view2.grid .img-precontainer-mini.original-thumb img.original{width:auto;height:auto}.list-view1.grid .img-precontainer,.list-view2.grid .img-precontainer{display:none}.list-view1.grid figcaption,.list-view2.grid figcaption{background:none;width:120px;position:absolute;right:0;top:0;z-index:1;bottom:0;-webkit-box-shadow:none;box-shadow:none;text-align:right}.list-view1.grid .selected,.list-view2.grid .selected{-webkit-box-shadow:0 0 3px 2px rgba(0,0,0,0.2);box-shadow:0 0 3px 2px rgba(0,0,0,0.2)}.list-view1.grid .img-dimension,.list-view1.grid .file-date,.list-view1.grid .file-size,.list-view1.grid .file-extension{overflow:hidden;display:block;position:absolute;top:0;z-index:1;-webkit-box-shadow:none;box-shadow:none;text-align:left;margin-top:7px}.list-view1.grid .img-dimension{width:65px;right:120px}.list-view1.grid .file-date{width:70px;right:185px}.list-view1.grid .file-size{width:55px;right:255px}.list-view1.grid .file-extension{width:40px;right:310px}.list-view1.grid figure .box{padding-right:352px}.list-view2.grid figure .box{padding-right:115px}@media (max-width:610px){.list-view1.grid figure .box{padding-right:312px}.list-view1.grid figure .file-extension{display:none}.sorter-container .file-extension{display:none}}@media (max-width:565px){.list-view1.grid figure .box{padding-right:257px}.list-view1.grid figure .file-size{display:none}.sorter-container .file-size{display:none}}@media (max-width:495px){.list-view1.grid figure .box{padding-right:187px}.list-view1.grid figure .file-date{display:none}.sorter-container .file-date{display:none}}@media (max-width:430px){.list-view1.grid figure .box{padding-right:115px}.list-view1.grid figure .img-dimension{display:none}.sorter-container .img-dimension{display:none}.breadcrumb{margin-left:0;margin-right:0}}.list-view2.grid .img-precontainer-mini .filetype.pdf,.list-view1.grid .img-precontainer-mini .filetype.pdf{background:#cb0011}.list-view2.grid .img-precontainer-mini .filetype.css,.list-view1.grid .img-precontainer-mini .filetype.css{background:#d10698}.list-view2.grid .img-precontainer-mini .filetype.ai,.list-view1.grid .img-precontainer-mini .filetype.ai{background:#d6772f}.list-view2.grid .img-precontainer-mini .filetype.psd,.list-view1.grid .img-precontainer-mini .filetype.psd{background:#0960a4}.list-view2.grid .img-precontainer-mini .filetype.html,.list-view1.grid .img-precontainer-mini .filetype.html,.list-view2.grid .img-precontainer-mini .filetype.xhtml,.list-view1.grid .img-precontainer-mini .filetype.xhtml{background:#035bc4}.list-view2.grid .img-precontainer-mini .filetype.fla,.list-view1.grid .img-precontainer-mini .filetype.fla,.list-view2.grid .img-precontainer-mini .filetype.flv,.list-view1.grid .img-precontainer-mini .filetype.flv{background:#cf302e}.list-view2.grid .img-precontainer-mini .filetype.ppt,.list-view1.grid .img-precontainer-mini .filetype.ppt,.list-view2.grid .img-precontainer-mini .filetype.pptx,.list-view1.grid .img-precontainer-mini .filetype.pptx{background:#da5b00}.list-view2.grid .img-precontainer-mini .filetype.xls,.list-view1.grid .img-precontainer-mini .filetype.xls,.list-view2.grid .img-precontainer-mini .filetype.xlsx,.list-view1.grid .img-precontainer-mini .filetype.xlsx,.list-view2.grid .img-precontainer-mini .filetype.css,.list-view1.grid .img-precontainer-mini .filetype.css{background:#1a712c}.list-view2.grid .img-precontainer-mini .filetype.rts,.list-view1.grid .img-precontainer-mini .filetype.rts,.list-view2.grid .img-precontainer-mini .filetype.doc,.list-view1.grid .img-precontainer-mini .filetype.doc,.list-view2.grid .img-precontainer-mini .filetype.docx,.list-view1.grid .img-precontainer-mini .filetype.docx{background:#002093}.list-view2.grid .img-precontainer-mini .filetype.rar,.list-view1.grid .img-precontainer-mini .filetype.rar,.list-view2.grid .img-precontainer-mini .filetype.zip,.list-view1.grid .img-precontainer-mini .filetype.zip,.list-view2.grid .img-precontainer-mini .filetype.gzip,.list-view1.grid .img-precontainer-mini .filetype.gzip{background:#fe9221}.list-view2.grid .img-precontainer-mini .filetype.mp4,.list-view1.grid .img-precontainer-mini .filetype.mp4,.list-view2.grid .img-precontainer-mini .filetype.mpeg,.list-view1.grid .img-precontainer-mini .filetype.mpeg,.list-view2.grid .img-precontainer-mini .filetype.mov,.list-view1.grid .img-precontainer-mini .filetype.mov,.list-view2.grid .img-precontainer-mini .filetype.avi,.list-view1.grid .img-precontainer-mini .filetype.avi,.list-view2.grid .img-precontainer-mini .filetype.mpg,.list-view1.grid .img-precontainer-mini .filetype.mpg,.list-view2.grid .img-precontainer-mini .filetype.wma,.list-view1.grid .img-precontainer-mini .filetype.wma,.list-view2.grid .img-precontainer-mini .filetype.webm,.list-view1.grid .img-precontainer-mini .filetype.webm{background:#31231e}.list-view2.grid .img-precontainer-mini .filetype.mp3,.list-view1.grid .img-precontainer-mini .filetype.mp3,.list-view2.grid .img-precontainer-mini .filetype.m4a,.list-view1.grid .img-precontainer-mini .filetype.m4a,.list-view2.grid .img-precontainer-mini .filetype.ac3,.list-view1.grid .img-precontainer-mini .filetype.ac3,.list-view2.grid .img-precontainer-mini .filetype.aiff,.list-view1.grid .img-precontainer-mini .filetype.aiff,.list-view2.grid .img-precontainer-mini .filetype.mid,.list-view1.grid .img-precontainer-mini .filetype.mid,.list-view2.grid .img-precontainer-mini .filetype.ogg,.list-view1.grid .img-precontainer-mini .filetype.ogg,.list-view2.grid .img-precontainer-mini .filetype.wav,.list-view1.grid .img-precontainer-mini .filetype.wav{background:#9f008b}.list-view2.grid .img-precontainer-mini .filetype.odt,.list-view1.grid .img-precontainer-mini .filetype.odt,.list-view2.grid .img-precontainer-mini .filetype.ots,.list-view1.grid .img-precontainer-mini .filetype.ots,.list-view2.grid .img-precontainer-mini .filetype.ott,.list-view1.grid .img-precontainer-mini .filetype.ott,.list-view2.grid .img-precontainer-mini .filetype.odb,.list-view1.grid .img-precontainer-mini .filetype.odb,.list-view2.grid .img-precontainer-mini .filetype.odg,.list-view1.grid .img-precontainer-mini .filetype.odg,.list-view2.grid .img-precontainer-mini .filetype.otp,.list-view1.grid .img-precontainer-mini .filetype.otp,.list-view2.grid .img-precontainer-mini .filetype.otg,.list-view1.grid .img-precontainer-mini .filetype.otg,.list-view2.grid .img-precontainer-mini .filetype.odf,.list-view1.grid .img-precontainer-mini .filetype.odf,.list-view2.grid .img-precontainer-mini .filetype.ods,.list-view1.grid .img-precontainer-mini .filetype.ods,.list-view2.grid .img-precontainer-mini .filetype.odp,.list-view1.grid .img-precontainer-mini .filetype.odp{background:#367bbe}.list-view2.grid .img-precontainer-mini .filetype.jpg,.list-view1.grid .img-precontainer-mini .filetype.jpg,.list-view2.grid .img-precontainer-mini .filetype.jpeg,.list-view1.grid .img-precontainer-mini .filetype.jpeg,.list-view2.grid .img-precontainer-mini .filetype.png,.list-view1.grid .img-precontainer-mini .filetype.png,.list-view2.grid .img-precontainer-mini .filetype.bmp,.list-view1.grid .img-precontainer-mini .filetype.bmp,.list-view2.grid .img-precontainer-mini .filetype.gif,.list-view1.grid .img-precontainer-mini .filetype.gif,.list-view2.grid .img-precontainer-mini .filetype.tiff,.list-view1.grid .img-precontainer-mini .filetype.tiff,.list-view2.grid .img-precontainer-mini .filetype.svg,.list-view1.grid .img-precontainer-mini .filetype.svg{background:#cfa554}.list-view2.grid .img-precontainer-mini .filetype.txt,.list-view1.grid .img-precontainer-mini .filetype.txt,.list-view2.grid .img-precontainer-mini .filetype.sql,.list-view1.grid .img-precontainer-mini .filetype.sql,.list-view2.grid .img-precontainer-mini .filetype.xml,.list-view1.grid .img-precontainer-mini .filetype.xml,.list-view2.grid .img-precontainer-mini .filetype.log,.list-view1.grid .img-precontainer-mini .filetype.log,.list-view2.grid .img-precontainer-mini .filetype.iso,.list-view1.grid .img-precontainer-mini .filetype.iso,.list-view2.grid .img-precontainer-mini .filetype.dmg,.list-view1.grid .img-precontainer-mini .filetype.dmg{background:#cacaca}.list-view2.grid .img-precontainer-mini .filetype.ade,.list-view1.grid .img-precontainer-mini .filetype.ade,.list-view2.grid .img-precontainer-mini .filetype.adp,.list-view1.grid .img-precontainer-mini .filetype.adp,.list-view2.grid .img-precontainer-mini .filetype.mdb,.list-view1.grid .img-precontainer-mini .filetype.mdb,.list-view2.grid .img-precontainer-mini .filetype.accdb,.list-view1.grid .img-precontainer-mini .filetype.accdb{background:#b61c19} \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.less b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.less deleted file mode 100644 index 74d25b12..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.less +++ /dev/null @@ -1,926 +0,0 @@ -*, *:after, *:before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } -body, html { - font-family: 'Open Sans', sans-serif; - font-size: 100%; padding: 0; margin: 0;} -body{ - padding-top: 32px; - font-weight:200; - background:#ececec; - overflow: -moz-scrollbars-vertical; -} - -#qLpercentage{ - font-family: 'Open Sans', sans-serif; - font-size: 40px; - line-height: 40px; - color:#bbbbbb; - font-weight: 200; - height: 60px; - -webkit-border-radius: 10px; - border-radius: 10px; - padding: 10px; - text-shadow: 1px 1px 2px #ffffff; - filter: dropshadow(color=#ffffff, offx=1, offy=1); -} -#qLbar{ - /* IE9 SVG, needs conditional override of 'filter' to 'none' */ - background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZ3JhZC11Y2dnLWdlbmVyYXRlZCkiIC8+Cjwvc3ZnPg==); - background: -moz-linear-gradient(top, rgba(122,122,122,0.4) 0%, rgba(122,122,122,0.4) 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(122,122,122,0.4)), color-stop(100%,rgba(122,122,122,0.4))); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* IE10+ */ - background: linear-gradient(to bottom, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#667a7a7a', endColorstr='#667a7a7a',GradientType=0 ); /* IE6-8 */ - - z-index:200; - margin:0px; - overflow: hidden; -} - - -[class^="rficon-"],[class*=" rficon-"] { - display:inline-block; - width:16px; - height:16px; - margin-top:1px; - *margin-right:.3em; - line-height:16px; - vertical-align:text-top; - background-position: 0 0; - background-repeat:no-repeat -} - -.rficon-clipboard-apply { - background-image:url(../img/clipboard_apply.png); -} - -.rficon-clipboard-clear { - background-image:url(../img/clipboard_clear.png); -} - -.btn{ - -webkit-border-radius: 0px; - border-radius: 0px; -} -.container-fluid{padding-right:0 !important;margin-top:10px !important;} -.img-precontainer{ - margin: auto; - width: 100%; - text-align: center; - background: white; - border:none; -} -.img-container{ - height: 91px; - width: 122px; - padding: 0px; - border:none; - overflow: hidden; - display: table-cell; - text-align: center; - vertical-align: middle; - margin: auto; -} -ul.breadcrumb{ - margin-bottom:5px; - -webkit-border-radius: 0px; - border-radius: 0px; - padding-bottom: 4px; - padding-top: 6px; - background: #f0f0f0; - -webkit-box-shadow: 0 1px 4px rgba(0,0,0,0.065); - -moz-box-shadow: 0 1px 4px rgba(0,0,0,0.065); - box-shadow: 0 1px 4px rgba(0,0,0,0.065); - border-bottom: 1px solid #bbbbbb; - - .pull-left i{ margin-top:2px;} -} - -.alert { - padding: 8px 35px 8px 14px; - margin-bottom:2px; - border: 1px solid #aaaaaa; - color:#666666; - font-weight: 200; - font-size: 13px; - -webkit-border-radius: 0px; - border-radius: 0px; - background: white; -} -.img-container * ,.img-container-mini * { - vertical-align: middle; -} -#help{ - display: none; -} - -/*\*//*/ -.img-container,.img-container-mini { - display: block; -} -.img-container span, .img-container-mini span { - display: inline-block; - height: 100%; - width: 1px; -} -/**/ - -iframe{ - overflow: auto; - -webkit-overflow-scrolling:touch; -} -.upload-tabbable{ - margin-left: 5px; - margin-right: 5px; - - .upload-help{ - font-size: 11px; - font-weight: 200; - color: #777; - text-shadow: 0 1px 0 #fff; - text-align: center; - } - .nav{ - margin:0px; - li a{ - font-size: 13px; - font-weight: 200; - color: #777; - text-shadow: 0 1px 0 #fff; - } - } - .tab-content{ - padding: 5px; - border-bottom: 1px solid #dddddd; - border-left: 1px solid #dddddd; - border-rigth: 1px solid #dddddd; - background: white; - margin-bottom: 5px; - } -} -input#filter-input{ - margin:0px; - width: 84px; - height: 26px; - vertical-align: bottom; - margin-bottom: 2px; - -webkit-border-radius: 0; - border-radius: 0; - font-size: 12px; - font-weight:200; - position:relative; - left:1px; -} - -.qq-uploader .span9{margin-left:14px !important;width:690px !important;} -.space10{ clear:both; height:10px; } - -h4{ font-size:12px; font-weight:200; margin: 0px; text-align: center; padding: 0px; margin-top:6px; line-height: 18px; } -h3{ font-size:14px; font-weight:200;} -.boxes{ border:1px solid #CCCCCC; word-wrap: break-word; background:white; --webkit-box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.2);box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.2); min-height:115px; -text-align: center;} -.container-fluid{ padding:0px 10px !important;} - -body .avpw .avpw_primary_button, -body .avpw .avpw_primary_button:link, -body .avpw .avpw_primary_button:visited, -body .avpw .avpw_primary_button:active { - background-color: #999999; - color: #ffffff; - background-image:none; - border:none; -} - -body .avpw .avpw_primary_button:hover{ - border:none; - background-color: #666666; -} - -.uploader{ - position:fixed; - top:50px; - left:14px; - margin:auto; - width:100%; - z-index:9999; - overflow: hidden; - background:#eeeeee; - padding-top:20px; - border:1px solid #cccccc; - display:none; - -webkit-box-shadow: 0px 0px 10px 0px rgba(1, 1, 1, 0.5); - box-shadow: 0px 0px 10px 0px rgba(1, 1, 1, 0.5); -} -.download-form{ - margin-bottom:25px; -} - -.grid li i{ - margin-left:2px; - margin-right: 2px; - z-index:0; -} -.box,.boxx{ - text-align: center; - word-wrap: break-word; - vertical-align: top; - text-align: left; - position: relative; - border: none; - box-shadow: none; - z-index: 100; - padding: 4px; -} -.box .btn{ - width: 100%; - background: none; - box-shadow: none; - border:none; - z-index: 200; -} -.navbar{ - margin-bottom: 0px; - border-bottom: 1px solid #bbbbbb; - .navbar-inner{ - border: none; - min-height: 35px; - -webkit-border-radius: 0px; - border-radius: 0px; - padding-bottom: 2px; - margin: 0px; - padding-right: 8px; - padding-left: 8px; - .container-fluid{ - margin: 0px; - margin-top: 0px !important; - padding: 0px; - .brand{ - display: none; - } - .filters span{ - margin-top:0px; - font-size:13px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff; } - } - } -} - -ul.sorting{ - position: absolute; - left: -25px; - top:20px; - min-width: 0px; - background: #eeeeee; - li a:hover{ - background: #aaaaaa; - } -} -.btn-group .dropdown-toggle.sorting-btn{ - background: none; - border: none; - box-shadow: none; - position: relative; - -webkit-box-shadow:none; - top:-5px; - font-size: 13px; -} -.btn-group .dropdown-toggle.sorting-btn:hover{ - background: none; - border: none; - box-shadow: none; - -webkit-box-shadow:none; -} -ul.sorting.dropdown-menu>li>a{ - font-size: 12px; - text-shadow: none; - &.ascending{ - background-image: url(../img/down.png); - background-repeat: no-repeat; - background-position: 6px 8px; - } - &.descending{ - background-image: url(../img/up.png); - background-repeat: no-repeat; - background-position: 6px 8px; - } -} - -.sorter-container{ - a.sorter{ - color:black; - } - - a.ascending{ - padding-left:9px; - background-image: url(../img/down.png); - background-repeat: no-repeat; - background-position: 0px 3px; - } - a.descending{ - padding-left:9px; - background-image: url(../img/up.png); - background-repeat: no-repeat; - background-position: 0px 4px; - } - margin-top:5px; - margin-bottom:0px; - -webkit-border-radius: 0px; - border-radius: 0px; - padding-bottom: 4px; - padding-top: 6px; - -webkit-box-shadow: 0 1px 4px rgba(0,0,0,0.065); - -moz-box-shadow: 0 1px 4px rgba(0,0,0,0.065); - box-shadow: 0 1px 4px rgba(0,0,0,0.065); - background-color: #f5f5f5; - position: relative; - border-bottom: 1px solid #bbbbbb; - height: 24px; - .img-dimension,.file-date,.file-size,.file-extension,.file-name,.file-operations{ - display: block;position: absolute; - top: 0px; - z-index: 100; - -webkit-box-shadow: none; - box-shadow: none; - text-align: left; - font-size: 13px; - margin-top: 1px; - color:#999999; - } - .file-operations{ - width: 110px; - right:0px; - } - .img-dimension{ - width: 65px; - right: 123px; - } - .file-date{ - width: 70px; - right: 188px; - } - .file-size{ - width: 55px; - right: 258px; - } - - .file-extension{ - width: 40px; - right: 313px; - } - - .file-name{ - width: 50px; - left: 52px; - } -} - -.img-dimension,.file-date,.file-size,.file-extension,.file-name,.file-operations{ - font-size:12px; - font-weight:200; - color:#777;text-shadow:0 1px 0 #fff; - display: none; -} - - -.view-controller{ - text-align: left; - .btn-group>.btn:first-child,.btn-group>.btn:last-child{ - -webkit-border-radius: 0px; - border-radius: 0px; - } -} - -.navbar .filters .btn { - margin-bottom: 2px; - padding-top:2px; - padding-bottom:2px; - padding-left: 8px; - padding-right: 8px; - margin-top:5px; -} -.filters .types{ - text-align: right; -} - - -@media(max-width:780px){ - #view2{ - display: none; - } -} -@media(max-width:839px){ - body{ - padding-top: 0px; - } - .filters .types{ - text-align: left; - } - .navbar .navbar-inner .container-fluid .brand{ - display: block; - } - .navbar .navbar-inner{ - padding-bottom: 4px; - } - .filters{ - div.span3.half,div.half.span6{ - float:none; - width:100%; - - } - } - - .container-fluid{ - margin:0px !important; - padding: 0px; - } - #qLbar{ - height:50px !important; - } -} -@media(min-width:400px) and (max-width:839px){ - .filters .row-fluid .half{ - width:48.61878453038674%;*width:48.56559304102504%; float:left; - } -} -.tooltip.in{ - z-index: 10000; - opacity:1; - filter:alpha(opacity=1); - font-weight: bold; -} - -.tooltip{ - font-weight: bold; - z-index: 10000; -} - -/* GRID */ -.grid { - padding: 0px 0px; - margin: 0 auto; - list-style: none; - -webkit-overflow-scrolling: touch; -} - -.grid li { - display: inline-block; - width: 124px; - border:none; - margin: 4px; - margin-bottom:8px; - padding: 0px; - vertical-align: top; -} - -.grid figure { - margin: 0; - position: relative; - display: block; - width: 122px; - margin: auto; - - &:hover{ background: #e0e0e0 !important;} -} -.list-view1.grid li{ - width:100%; - figure{ - width:100%; - } -} - -.grid figcaption { - text-align: center; - padding: 2px; - padding-top: 8px; - color: white; - height: 30px; - width: 122px; - margin-left:0px; - margin-right: 0px; - position: absolute; - top: auto; - bottom: 0; - -webkit-box-shadow: inset 0px 0px 8px 0px rgba(41, 41, 41, 0.5); - box-shadow: inset 0px 0px 8px 0px rgba(41, 41, 41, 0.5); - - a{ - margin: 0px; - padding: 3px; - } - h3 { - margin: 0; - padding: 0; - color: #fff; - } -} - - -.grid h4{ - text-align: center; - color: black; - padding: 0px; - margin-bottom: 4px; - margin-top: 4px; -} - - -/* Individual Caption Styles */ - - -/* Caption Style 2 */ - -.grid figure .box { - box-sizing: content-box; -} - -.list-view0.grid,.list-view1.grid,.list-view2.grid{ - figure{ - .box{ - max-width: 100%; - display: block; - position: relative; - overflow: hidden; - z-index: 1; - h4.ellipsis{ - height:18px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - h4{ - z-index: 1; - a{ - z-index: 1; - } - } - } - } - - .selected{ - -webkit-box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, 0.25); - box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, 0.25); - - //border: 1px solid #777777; - } -} - -.no-touch .list-view0 figure .box{ - z-index: 1; - -webkit-transition: -webkit-transform 0.3s; - -moz-transition: -moz-transform 0.3s; - transition: transform 0.3s; -} -.ui-state-highlight{ - border:1px solid red; -} - -.no-touch .list-view0 figure:hover .box, -.no-touch .list-view0 figure.cs-hover .box { - -webkit-box-shadow: 0px 0px 4px 0px rgba(1, 1, 1, 0.5); - box-shadow: 0px 0px 4px 0px rgba(1, 1, 1, 0.5); - -webkit-transform: translateY(-26px); - -moz-transform: translateY(-26px); - -ms-transform: translateY(-26px); - transform: translateY(-26px); -} -.list-view0 figure:hover .box.no-effect, -.list-view0 figure.cs-hover .box.no-effect,.no-effect{ - - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transform: none; - -moz-transform: none; - -ms-transform: none; - transform: none; -} - - -.list-view0 .img-precontainer-mini{ - display: none; - background: none; -} -a,a:hover{ - color:black; - text-decoration: none; -} - -.back-directory{ - .img-precontainer,.img-precontainer-mini,.box{ - background: none; - } -} -form{ - margin:0px; - padding: 0px; -} -.modal-body{ - form,input{ - margin:0px; - } -} - -.modal-header h3{ - font-weight: 300; - font-size: 20px; -} - -/* LIST VIEW */ -.list-view1.sorter-container{ - display: block; -} - -.list-view0.sorter-container, .list-view2.sorter-container{ - display: none; -} -.list-view0.grid{ - .img-precontainer{ - .img-container{ - - img{ - max-width:122px !important; - max-height:91px !important; - } - img.icon{ - width: 122px; - margin-top:0px; - } - } - .filetype{ - position:absolute; - top:0px; - width:120px; - text-align:center; - color:white; - font-size: 13px; - line-height: 22px; - - } - } - .cover{ -/* IE9 SVG, needs conditional override of 'filter' to 'none' */ -background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjI1Ii8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMC4yNSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); -background: -moz-linear-gradient(top, rgba(255,255,255,0.25) 0%, rgba(255,255,255,0.25) 100%); /* FF3.6+ */ -background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.25)), color-stop(100%,rgba(255,255,255,0.25))); /* Chrome,Safari4+ */ -background: -webkit-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* Chrome10+,Safari5.1+ */ -background: -o-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* Opera 11.10+ */ -background: -ms-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* IE10+ */ -background: linear-gradient(to bottom, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* W3C */ -filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#40ffffff', endColorstr='#40ffffff',GradientType=0 ); /* IE6-8 */ - - - width: 122px; - position:absolute; - top:22px; - right:0px; - height: 69px; - } - .box{ - background: white; - } - .directory{ - background: #dddddd; - } - figure.back-directory{ - .directory{ - background: #bbbbbb; - } - } - - figcaption{ - background:#ffffff; - } -} - -.list-view1.grid , .list-view2.grid { - li{ - margin: 0px; - &.back{ - figure.back-directory{ - height: 34px; - } - } - } - li:nth-child(odd) figure {background: #f9f9f9; } - li:nth-child(odd) figure.directory {background: #eaeaea; } - - li figure{ - border-bottom: 1px solid #cccccc; - background: white; - &.back-directory{ - background: #bbbbbb; - .box{ - background: none; - } - } - &.directory{ - background: #efefef; - box{ - padding: 0px; - min-height: 10px; - } - } - .box{ - h4{ - padding-top:1px; - font-size: 13px; - text-align: left; - } - margin-left: 50px; - -webkit-transition: none; - -moz-transition: none; - transition: none; - } - } - .img-precontainer-mini{ - display: block; - position: absolute; - width: 45px; - height: 34px; - overflow: hidden; - text-align: center; - img{ - height: 34px; - } - .filetype{ - position:absolute; - top:5px; - text-align: center; - left:5px; - padding:1px 2px; - font-size: 13px; - line-height: 22px; - width:34px; - height: 24px; - color:white; - background: #333333; - } - } - .cover{ - display: none; - } - .img-container-mini{ - width: 45px; - height: 34px; - border:none; - overflow: hidden; - display: table-cell; - text-align: center; - vertical-align: middle; - margin: auto; - - } - .img-precontainer-mini.original-thumb{ - padding: 0px; - img{ - width: auto; - margin: 0px; - height: 34px; - } - - img.original{ - width: auto; - width: auto; - height: auto; - } - } - - .img-precontainer{ - display: none; - } - - figcaption{ - background:none; - width: 120px; - position: absolute; - right: 0px; - top: 0px; - z-index: 1; - bottom: 0; - -webkit-box-shadow: none; - box-shadow: none; - text-align: right; - - } - .selected{ - -webkit-box-shadow: 0px 0px 3px 2px rgba(0, 0, 0, 0.2); - box-shadow: 0px 0px 3px 2px rgba(0, 0, 0, 0.2); - } -} - -.list-view1.grid{ - .img-dimension,.file-date,.file-size,.file-extension{ - overflow: hidden; - display: block;position: absolute; - top: 0px; - z-index: 1; - -webkit-box-shadow: none; - box-shadow: none; - text-align: left; - margin-top:7px; - } - .img-dimension{ - width: 65px; - right: 120px; - } - .file-date{ - width: 70px; - right: 185px; - } - .file-size{ - width: 55px; - right: 255px; - } - .file-extension{ - width: 40px; - right: 310px; - } - figure .box{ - padding-right: 352px; - } -} -.list-view2.grid{ - figure{ - .box{ - padding-right: 115px; - } - } -} - - -@media(max-width:610px){ - .list-view1.grid figure{ - .box{ - padding-right: 312px; - } - .file-extension{ - display: none; - } - } - .sorter-container .file-extension{ - display: none; - } -} - -@media(max-width:565px){ - .list-view1.grid figure{ - .box{ - padding-right: 257px; - } - .file-size{ - display: none; - } - } - .sorter-container .file-size{ - display: none; - } -} - -@media(max-width:495px){ - .list-view1.grid figure{ - .box{ - padding-right: 187px; - } - .file-date{ - display: none; - } - } - .sorter-container .file-date{ - display: none; - } -} - -@media(max-width:430px){ - .list-view1.grid figure{ - .box{ - padding-right: 115px; - } - .img-dimension{ - display: none; - } - } - .sorter-container .img-dimension{ - display: none; - } - .breadcrumb{ - margin-left:0px; - margin-right:0px; - } -} - -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.pdf{ background:#CB0011; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.css{ background:#D10698; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.ai{ background:#D6772F; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.psd{ background:#0960A4; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.html,&.xhtml{ background:#035BC4; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.fla,&.flv{ background:#CF302E; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.ppt,&.pptx{ background:#DA5B00; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.xls,&.xlsx,&.css{ background:#1A712C; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.rts,&.doc,&.docx{ background:#002093; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.rar,&.zip,&.gzip{ background:#FE9221; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.mp4,&.mpeg,&.mov,&.avi,&.mpg,&.wma,&.webm{ background:#31231E; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.mp3,&.m4a,&.ac3,&.aiff,&.mid,&.ogg,&.wav{ background:#9F008B; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.odt,&.ots,&.ott,&.odb,&.odg,&.otp,&.otg,&.odf,&.ods,&.odp{ background:#367BBE; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.jpg,&.jpeg,&.png,&.bmp,&.gif,&.tiff,&.svg{ background:#CFA554; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.txt,&.sql,&.xml,&.log,&.iso,&.dmg{ background:#CACACA; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.ade,&.adp,&.mdb,&.accdb{ background:#B61C19; }}} diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/dialog.php b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/dialog.php deleted file mode 100644 index 75563e40..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/dialog.php +++ /dev/null @@ -1,901 +0,0 @@ -console.log('The ".$lang." language file is not readable! Falling back...');"; - } - } - -// add lang file to session for easy include - $_SESSION['RF']['language_file'] = $language_file; - require_once $language_file; - - if(!isset($_GET['type'])) $_GET['type']=0; - if(!isset($_GET['field_id'])) $_GET['field_id']=''; - - $field_id=isset($_GET['field_id']) ? fix_get_params($_GET['field_id']) : ''; - $type_param=fix_get_params($_GET['type']); - - $get_params = http_build_query(array( - 'type' => $type_param, - 'lang' => $lang, - 'popup' => $popup, - 'field_id' => $field_id, - 'akey' => (isset($_GET['akey']) && $_GET['akey'] != '' ? $_GET['akey'] : 'key'), - 'fldr' => '' - )); - ?> - - - - - - - - - Responsive FileManager - - - - - - - console.log("Error: Spritemap not found!");'; - // exit(); - } - } - ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " /> - - " /> - - - - - - - - - - - - - - - - - " /> - - - -
-
-
-
- - -
-
- -
- - -
- :
- - - - - - - - - - -
-
- -
-
-
-
- -
-
-
- -
- - - -
- - $file){ - if($file==".") $current_folder=array('file'=>$file); - elseif($file=="..") $prev_folder=array('file'=>$file); - elseif(is_dir($current_path.$rfm_subfolder.$subdir.$file)){ - $date=filemtime($current_path.$rfm_subfolder.$subdir. $file); - $size=foldersize($current_path.$rfm_subfolder.$subdir. $file); - $file_ext=lang_Type_dir; - $sorted[$k]=array('file'=>$file,'date'=>$date,'size'=>$size,'extension'=>$file_ext); - }else{ - $file_path=$current_path.$rfm_subfolder.$subdir.$file; - $date=filemtime($file_path); - $size=filesize($file_path); - $file_ext = substr(strrchr($file,'.'),1); - $sorted[$k]=array('file'=>$file,'date'=>$date,'size'=>$size,'extension'=>$file_ext); - } - } - - function filenameSort($x, $y) { - return $x['file'] < $y['file']; - } - function dateSort($x, $y) { - return $x['date'] < $y['date']; - } - function sizeSort($x, $y) { - return $x['size'] - $y['size']; - } - function extensionSort($x, $y) { - return $x['extension'] < $y['extension']; - } - - switch($sort_by){ - case 'name': - usort($sorted, 'filenameSort'); - break; - case 'date': - usort($sorted, 'dateSort'); - break; - case 'size': - usort($sorted, 'sizeSort'); - break; - case 'extension': - usort($sorted, 'extensionSort'); - break; - default: - break; - - } - - if($descending){ - $sorted=array_reverse($sorted); - } - - $files=array_merge(array($prev_folder),array($current_folder),$sorted); - ?> - - - - - - - - - -
-
- -
-
There is an error! The upload folder there isn't. Check your config.php file.
- -

- -
- - - - - - - - -
    " id="main-item-container"> - -
  • >
    directory" data-type=""> - "> -
    -
    - .jpg" alt="folder" /> -
    -
    -
    -
    - - .png" alt="folder" /> -
    -
    - -
    -

    -
    -
    - - - -
    -

    ">">

    -
    - - - - -
    -
    -
    -
    - " title="" data-path="" data-thumb=""> - - " title="" data-confirm="" data-path="" data-thumb=""> - - -
    - -
    -
  • - $file_array) { - $file=$file_array['file']; - - if($file == '.' || $file == '..' || is_dir($current_path.$rfm_subfolder.$subdir.$file) || in_array($file, $hidden_files) || !in_array(fix_strtolower($file_array['extension']), $ext) || ($filter!='' && strpos($file,$filter)===false)) - continue; - - $file_path=$current_path.$rfm_subfolder.$subdir.$file; - //check if file have illegal caracter - - $filename=substr($file, 0, '-' . (strlen($file_array['extension']) + 1)); - - if($file!=fix_filename($file,$transliteration)){ - $file1=fix_filename($file,$transliteration); - $file_path1=($current_path.$rfm_subfolder.$subdir.$file1); - if(file_exists($file_path1)){ - $i = 1; - $info=pathinfo($file1); - while(file_exists($current_path.$rfm_subfolder.$subdir.$info['filename'].".[".$i."].".$info['extension'])) { - $i++; - } - $file1=$info['filename'].".[".$i."].".$info['extension']; - $file_path1=($current_path.$rfm_subfolder.$subdir.$file1); - } - - $filename=substr($file1, 0, '-' . (strlen($file_array['extension']) + 1)); - rename_file($file_path,fix_filename($filename,$transliteration),$transliteration); - $file=$file1; - $file_array['extension']=fix_filename($file_array['extension'],$transliteration); - $file_path=$file_path1; - } - - $is_img=false; - $is_video=false; - $is_audio=false; - $show_original=false; - $show_original_mini=false; - $mini_src=""; - $src_thumb=""; - $src_thumb_url=""; - $extension_lower=fix_strtolower($file_array['extension']); - if(in_array($extension_lower, $ext_img)){ - $src = $base_url . $cur_dir . rawurlencode($file); - $mini_src = $src_thumb = $thumbs_path.$subdir. $file; - $src_thumb_url = $base_url . $cur_thumbs_dir.$subdir. $file; - $mini_src_url = $base_url .$thumbs_dir.$subdir. $file; - //add in thumbs folder if not exist - if(!file_exists($src_thumb)){ - try { - create_img_gd($file_path, $src_thumb, 122, 91); - new_thumbnails_creation($current_path.$rfm_subfolder.$subdir,$file_path,$file,$current_path,$relative_image_creation,$relative_path_from_current_pos,$relative_image_creation_name_to_prepend,$relative_image_creation_name_to_append,$relative_image_creation_width,$relative_image_creation_height,$fixed_image_creation,$fixed_path_from_filemanager,$fixed_image_creation_name_to_prepend,$fixed_image_creation_to_append,$fixed_image_creation_width,$fixed_image_creation_height); - } catch (Exception $e) { - $src_thumb=$mini_src=$src_thumb_url=""; - } - } - $is_img=true; - //check if is smaller than thumb - list($img_width, $img_height, $img_type, $attr)=getimagesize($file_path); - if($img_width<122 && $img_height<91){ - $src_thumb=$current_path.$rfm_subfolder.$subdir.$file; - $show_original=true; - } - - if($img_width<45 && $img_height<38){ - $mini_src=$current_path.$rfm_subfolder.$subdir.$file; - $mini_src_url= $base_url.$upload_dir.$rfm_subfolder.$subdir.$file; - $show_original_mini=true; - } - } - - $is_icon_thumb=false; - $is_icon_thumb_mini=false; - $no_thumb=false; - if($src_thumb==""){ - $no_thumb=true; - if(file_exists('img/'.$icon_theme.'/'.$extension_lower.".jpg")){ - $src_thumb ='img/'.$icon_theme.'/'.$extension_lower.".jpg"; - }else{ - $src_thumb = "img/".$icon_theme."/default.jpg"; - } - - $src_thumb_url = $base_url . $filemanager_dir . $src_thumb; - - $is_icon_thumb=true; - } - if($mini_src==""){ - $is_icon_thumb_mini=false; - } - - $class_ext=0; - if (in_array($extension_lower, $ext_video)) { - $class_ext = 4; - $is_video=true; - }elseif (in_array($extension_lower, $ext_img)) { - $class_ext = 2; - }elseif (in_array($extension_lower, $ext_music)) { - $class_ext = 5; - $is_audio=true; - }elseif (in_array($extension_lower, $ext_misc)) { - $class_ext = 3; - }else{ - $class_ext = 1; - } - if((!($_GET['type']==1 && !$is_img) && !(($_GET['type']==3 && !$is_video) && ($_GET['type']==3 && !$is_audio))) && $class_ext>0){ - ?> -
  • "> - -
    -
    -
    - - <?php echo $filename." class=" " src=""> -
    -
    -
    -
    ">
    -
    - - - <?php echo $filename." class=" " src=""> - -
    -
    - -
    - -
    -
    -

    "> -

    -
    - - - - -
    -
    -
    -
    -
    -
    - - - - - - - - " - title="" data-url="ajax_calls.php?action=media_preview&title=&file=" - href="javascript:void('');" > - - - - " title="" data-path="" data-thumb=""> - - - " title="" data-confirm="" data-path="" data-thumb=""> - - -
    -
    -
    -
  • -
- - -
-
- - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/execute.php b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/execute.php deleted file mode 100644 index 5f924283..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/execute.php +++ /dev/null @@ -1,280 +0,0 @@ -$path) - { - if ($path!="" && $path[strlen($path)-1]!="/") $path.="/"; - - if (file_exists($info['dirname']."/".$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension'])) - { - unlink($info['dirname']."/".$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension']); - } - } - } - - if ($fixed_image_creation) - { - foreach($fixed_path_from_filemanager as $k=>$path) - { - if ($path!="" && $path[strlen($path)-1] != "/") $path.="/"; - - $base_dir=$path.substr_replace($info['dirname']."/", '', 0, strlen($current_path)); - if (file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'])) - { - unlink($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension']); - } - } - } - } - break; - case 'delete_folder': - if ($delete_folders){ - if (is_dir($path_thumb)) - { - deleteDir($path_thumb); - } - - if (is_dir($path)) - { - deleteDir($path); - if ($fixed_image_creation) - { - foreach($fixed_path_from_filemanager as $k=>$paths){ - if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.="/"; - - $base_dir=$paths.substr_replace($path, '', 0, strlen($current_path)); - if (is_dir($base_dir)) deleteDir($base_dir); - } - } - } - } - break; - case 'create_folder': - if ($create_folders) - { - create_folder(fix_path($path,$transliteration),fix_path($path_thumb,$transliteration)); - } - break; - case 'rename_folder': - if ($rename_folders){ - $name=fix_filename($name,$transliteration); - $name=str_replace('.','',$name); - - if (!empty($name)){ - if (!rename_folder($path,$name,$transliteration)) die(lang_Rename_existing_folder); - - rename_folder($path_thumb,$name,$transliteration); - if ($fixed_image_creation){ - foreach($fixed_path_from_filemanager as $k=>$paths){ - if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.="/"; - - $base_dir=$paths.substr_replace($path, '', 0, strlen($current_path)); - rename_folder($base_dir,$name,$transliteration); - } - } - } - else { - die(lang_Empty_name); - } - } - break; - case 'rename_file': - if ($rename_files){ - $name=fix_filename($name,$transliteration); - if (!empty($name)) - { - if (!rename_file($path,$name,$transliteration)) die(lang_Rename_existing_file); - - rename_file($path_thumb,$name,$transliteration); - - if ($fixed_image_creation) - { - $info=pathinfo($path); - - foreach($fixed_path_from_filemanager as $k=>$paths) - { - if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.="/"; - - $base_dir = $paths.substr_replace($info['dirname']."/", '', 0, strlen($current_path)); - if (file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'])) - { - rename_file($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'],$fixed_image_creation_name_to_prepend[$k].$name.$fixed_image_creation_to_append[$k],$transliteration); - } - } - } - } - else { - die(lang_Empty_name); - } - } - break; - case 'duplicate_file': - if ($duplicate_files) - { - $name = fix_filename($name,$transliteration); - if (!empty($name)) - { - if (!duplicate_file($path,$name)) die(lang_Rename_existing_file); - - duplicate_file($path_thumb,$name); - - if ($fixed_image_creation) - { - $info=pathinfo($path); - foreach($fixed_path_from_filemanager as $k=>$paths) - { - if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.= "/"; - - $base_dir=$paths.substr_replace($info['dirname']."/", '', 0, strlen($current_path)); - - if (file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'])) - { - duplicate_file($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'],$fixed_image_creation_name_to_prepend[$k].$name.$fixed_image_creation_to_append[$k]); - } - } - } - } - else - { - die(lang_Empty_name); - } - } - break; - case 'paste_clipboard': - if ( ! isset($_SESSION['RF']['clipboard_action'], $_SESSION['RF']['clipboard']['path'], $_SESSION['RF']['clipboard']['path_thumb']) - || $_SESSION['RF']['clipboard_action'] == '' - || $_SESSION['RF']['clipboard']['path'] == '' - || $_SESSION['RF']['clipboard']['path_thumb'] == '') - { - die(); - } - - $action = $_SESSION['RF']['clipboard_action']; - $data = $_SESSION['RF']['clipboard']; - $data['path'] = $current_path.$data['path']; - $pinfo = pathinfo($data['path']); - - // user wants to paste to the same dir. nothing to do here... - if ($pinfo['dirname'] == rtrim($path, '/')) { - die(); - } - - // user wants to paste folder to it's own sub folder.. baaaah. - if (is_dir($data['path']) && strpos($path, $data['path']) !== FALSE){ - die(); - } - - // something terribly gone wrong - if ($action != 'copy' && $action != 'cut'){ - die('no action'); - } - - // check for writability - if (is_really_writable($path) === FALSE || is_really_writable($path_thumb) === FALSE){ - die($path.'--'.$path_thumb.'--'.lang_Dir_No_Write); - } - - // check if server disables copy or rename - if (is_function_callable(($action == 'copy' ? 'copy' : 'rename')) === FALSE){ - die(sprintf(lang_Function_Disabled, ($action == 'copy' ? lcfirst(lang_Copy) : lcfirst(lang_Cut)))); - } - - if ($action == 'copy') - { - rcopy($data['path'], $path); - rcopy($data['path_thumb'], $path_thumb); - } - elseif ($action == 'cut') - { - rrename($data['path'], $path); - rrename($data['path_thumb'], $path_thumb); - - // cleanup - if (is_dir($data['path']) === TRUE){ - rrename_after_cleaner($data['path']); - rrename_after_cleaner($data['path_thumb']); - } - } - - // cleanup - $_SESSION['RF']['clipboard']['path'] = NULL; - $_SESSION['RF']['clipboard']['path_thumb'] = NULL; - $_SESSION['RF']['clipboard_action'] = NULL; - - break; - default: - die('wrong action'); - } -} - -?> \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/force_download.php b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/force_download.php deleted file mode 100644 index 5edcf481..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/force_download.php +++ /dev/null @@ -1,30 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_apply.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_apply.png deleted file mode 100644 index 84a0447b2a39ff5014f468970f51590166707825..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18029 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_clear.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_clear.png deleted file mode 100644 index 4afd1bd04b25c50ab93be091648fa4ebec74d791..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17840 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 VYf+aauL-ULaJF~1E3ggR@;~!~i{1bL diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/copy.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/copy.png deleted file mode 100644 index f037a6f3390677c543b6147d6766afefd5278c98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18072 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 aMZnAM9VZMvW~)Kd1RQN$Z3?W{ZuvJ|!`n0f diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/cut.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/cut.png deleted file mode 100644 index b2abe89f1a2cd8594ecc56850023e54a871b47aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17849 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/dimension.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/dimension.png deleted file mode 100644 index cb46270fda38fe201013a235545332a5bc5baded..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2076 zcmah}2{@bC8V)M9)>3ONBMr)ElUPcKM5q*@wpdEhGzfwuL=e@q+R;HwYm|1zQl^&L zu5Gkc`!b5L)Y{wF%c!N8QcE+nP15P~-aGR=cmC%&|M|}Mzvunl_dCyj5*_WWj)*FX z0sw#`SZfT9J4^D0Fp&FJ-8dj{r$YhecIE&;MHgIWfIcy!+bxf<&hgqMSnHU@c8TLBRs~&W>LYzLo!h;(KJ*w* z8!wnFTpY)s@TA8X$6OQcm6qS{SHGKDD3_LP#~P|0u@x98U9yLy^z<^PVE zb(AsKsfn^bjuyE+puH?xCfoo-Hn9C+H3YnXLRadHD@Cae?4MFyc85UgpMfQZ)#x5b zKrP+-^nVd^?fRlICXN{r702p^6{qfnr$V%q83ZICdf(tFm#2Vq3X0*e1}P& zTCl?7%Veg2Q-U#rp@m|0J3$e;G0F;6gIgNQ-*>4Qy^IJrTAeQ+`__%~i0!+WQq<*4 zdPR8EYQro^$7h7O&BsmlR9{H%wEUKHDyG1G&n@K$RX?<-|d<)wGy13kG@s>(3iabbw;J_$xStf0o~J{tI{AL z>A(p1kZECXFnUEC*$u4cJYQ`J4yNyhZQPnnB6k{AQaYZrao81AkXWCqYk{M?tQl@1uAG<|F$tlgB??WCrD4SyaQhZ=NM=@ z+jqyz$-hq9ZP@)0sZ=Rbi~l0EaISG}MP$40@SaMe0$sE^$nJ3rWc`rBX$cMBec;Ou zmuGRMbUBaloYaRn!>$hYrdna7SJvx$ECwQ*rD>h`Hp!vAb5@_fCcA-ik#nN*p}^LD zst-8k9g*@vyV2U%Ma(YK)$#!;7fW1EGjAr8l?}V(gI+*#>U1l9X*(y9)yd4ghx~81O|i> zuJ#AXpF9|1xG#+qN+(e%ARaHlhZ;dgfx)~&pPx@U$)TSMQNlmD;`)Oz2%#`ts1EEi zGj}7B>k(l=BNFITnhTX0VrtH70tibc1Q2mVf?qTe_E*HGl1La&$A9ViXqrd)m;68J zrIY;s)0zJf%=_|p#k?%Sfkq;7JH_jVsV)-sx7_~~`G<7w(U^*I?frSorlPlT;%@)| zzGy7Q+{H*LBDK-R!d%i4o)N3%22@HCCP8FcbF3<>Q-1iibHFlA#{5jX)w;n54&Nek zA@OEz0+@zc@Q0U+h-XcVrc({8tKYk^a)oPMb$p1D@6)n+d<~*0E_sFzELBTejh{;H z1@+#|aI&MlQ=b)3XbHevL%+139b}_NiluJNYcBw98vPH{)H=o6>H*2 zKcL!9_5Ng-iCjMwa0jv0OLmV}Vqez?#BAP5cg~A6N@e46S_D?EtDI8m*Odzo8rk+G zFIKGyLswk8L@Sg5qXe$Yq>jO45TrfaYLMOddY7ct?GRFVDK>H nz;C@j0q3cl-WP5WA&f4)AfJ%@FUjwD{~z|OJ*NE3r5nEkohN_3 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/door.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/door.png deleted file mode 100644 index 369fc46ed259191014664e8a16bea76e7513f8b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412 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 XcBN<`LPe9Xd+}JF#9>QLcwYG()C&G_ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/duplicate.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/duplicate.png deleted file mode 100644 index 71bfac6f859f8737ec8f98ebc2d7359c2d46d949..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17917 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/edit_img.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/edit_img.png deleted file mode 100644 index 658ef62333af213b6f23e5f8dc1c353b2ef4b1bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2154 zcmah}2Urv777Z;_VFf9INJwacBoqyh1P}?*r1wRP0Rluw0g@0(q{xE6?y?BFih@si z`RFJhO;CXcQU#?*eN+KumoDukEbIE*_q{jYH#2w6f9}2Ko_}WItSya?@k#Ol0Dxnr zCTLsc{X5pl17u!hRu8ZM0H++@(9qh{&=6!DK=Q)-;Q#>b<3BizlSb@M=*5w2v&8g4 z&c?CvuSy*3Tx+Bxi&}uD$=SpQFVh}uqrHuL!vEt(t#-T4D6LuQFI#{&^-xD^siDs5Q09St}VIUbl!QGUE@(L z6gQ@_Vc!s^|L)1!sTK25Oi7I?Hk@lK@pE4oJ6*pl_c5vdjRu-|B~PU62>qkk+H zuUE~m$ws!8kQ@J5=B#fw#I`HrUa_Pms`sx|mviO0MN(Im*l7eGLWD!*YUt*_Qu zQSHSLme#-TUSKHQvgsQ7B>A~BaX%)t)Ldl^V%4L5&UIM?#4X}O)#}sB_4UC}FzePld@a4TaJ<{ zJyC->ot!&ezp});(J8PeT`xi5tGI6QBvkb`PKk3u^1w9UyB7Ob(S;N-myt)wIkxb& zmccbhF73+0nY;0HM0&iUN!+IdtCy`)n(S5Sbz4`r6iRbA*7uV|)DVaX!r9C6ZJJYQ z2!BVTH9pFNo=&$Lz;VG0(?Z%?c)O_6P)R|_8Q!q=Y7Msm<5G+QHg89@arK*=6vFXsQh(^k2NgfnyNg^@e1F>G*s=f=rpYA86BEtM_@RChj z0s#PiX3Q_b21tD<0RXW3;_aO&&K8#u9wY)3>q&CQLFoiClMMi%=m=&=z)`RuI>C<^ zh@k6&4;ct%%z|NH&>@B5s|$9vum%~D0&t-7P<5yVSdR|`0-*vty%4tOOGoL&4HDZm@1uA`#^Q`3NHXs9w7s)4~o3YM-)421kq2T%bn)o=m}$ zh#*#7tUHNH(FKE9jlLX5Itk=2jfjCqQ!(d*(XnKhI#dnzr7|-S#hejg7=Xi4NCEaF zlAoRd%LI@q0qc#k#bG^zQLt|rM=en>mX5D<9S+SZ`3?U6^iuF%e>w9Xf>|qnSIj~Y zF1ENpk{^}jhn|)O3idbfFJn-LYgPex9Mjsv1ob2S*Vwmw=l|B=Yw&;C@P|3f&DY~& z8u;gnq{lb8UJeBS*r=vx1AFb`*~u0vXd8)$xqsXXn}*2q^YL$sJJQONgwI!8^T6U| z&4-3Z%F0Spzy}v?^x(9!w>$+})=^b~xw3Y4V<92qtLdvZ#)u}je|t25t6Yv zCKsHZFAd-K90=Rwox4hT!Asu;!d3)k=x?2(g0}L0bD8L05+MU?OF8zgaorrwSVoFS zro<{bN3drVxl-XDJw!wKLv-KW+yToi2&$#Zc0=F4fGc%XN5X!QGbr*;k793itxTIO z=Nwk3i8hpo;fMnE8da*oUhtf4R;atE>`09k9WnYollGC(v#>7m2s3!pfLYlLWJ!-a^2A-(Mxm+O6&_jPY7=@oW@`I5!D%eF z!e}(IA%>d=7(67XN#^JxT;!;TzvrMnEBM}U>}?ueC};BY4X0P@hG%_lL$x=gc3^8{ v39dpoSd8}A2_JO{{Goo^wr~v;fk3 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ac3.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ac3.jpg deleted file mode 100644 index 0b7fcdd8c550d8109a74e77c06de696485728876..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1737 zcmb7EdpJ~S9RAK_&N*YqjG3%k%wSa{GgRcVW+>u`=t*s>n4vsw%L;3-Hlq~PuC!&5 zgi1tiZ4{3}Qqj{+Dk-v*McVcex~%fdelr{O@BYs1JLh-4^S;0L_kKsws~7}KPd5)Y zfFJ-Ma07}VAY3aA3jx5(3z!1{D1ht_12`PPEYO1o0B8|9|0Jmhn;-itlZrmz3Qz=5 z?kL=0U^Gk_1dd}gk|0TvAPACT&`C;-A_%$$U5&v|S63(L8VfYk7r-Gy`4Qz@Of{Fr zpa_cbzeCXmSQPLFNf=@bP!@u*5JfvMfQ6tKz?57+21#K!fzs&8EK~x;5Tzb-fzWV* zL@`S77^q_~%fy&ajOtSrKW5CmqPpTTquze|ft*VL(e{fRMvn&vhK-4=VXC(FSXNn2 zkvDnez?7xEq4d@r&43m_+f$w6c_sh#j@PdYWgX9lw_iTnom`YsCxkP)GBW6g0S5W- zm;k|*LZ~2=Cj!H1B+5sqRklDVhNLJ+7NMaZoFeHb($-o%xY)hssMouLv&|t>zeN0* zDq-BB9PWGdMdsN*>WN<6IGabV8s6n|&Y%8#Hu%^NL*AV8f&2x5@$YSRV%tjst@EWN zC%aB~bL!s2Pqv4cz0}=&hgDN`v(?O6^TE-ShV-c$Mi(Hlr7VEJ?vS*3r4SUu0gc5I zXt6n5YmtQD3tft9RRp1+&d9rjOhzXCq5n8q6d09_8Ws#Jt9ZGua92^x?bxKWA^o(( z6N7!%*2h+ayA1wzOugQH^0+XJN0;yV4R$C&1fM{mw|&y_35ko(&TMpeU}!m}`o% zbQYj#@dY9_hvzGaiH)mmWg45<2wlWMvh3oIT_T*(8KX@1B{CP?MK6=p*+)i}+GOSU z-MymmRf_k-l^1_SovJ$7WW?InHC$R){PgXiCc^A&QT#K{M&F7_4@T67pmk@prM=}n zzdy;!=m>k97-W9C)RiMYo@P63u&GB_V5A$xtQI)LANa>lz0~ZHNm9joyCab^v~`7O z@v&=+{@CCZFC8z|^^A-g=A>qYe827n5`_3A0{v#)s{NK{8m9dHTnjJlGjG#1by(Q= zooQN$w##xIyL!|0^*bu7jBjQiPj`-Kzqqh6U~6uZVQf`h6Y}s?Ae6+E2|bA62tMyq zgavp4zQ|Wn%M{9r#WC4)PIcyeFwpnb!nJLqw^+1JNX!~0_zic+!0C*Y`JcWx`MrjY5n`In=)(z0iUE30Lb;}R>gq*YyoV%;rrX?QQE)r9ZFa_$t& z(!khss89BLqKa?X&(rQ+J5z3MhsSy>m_4$Gb)EaR(DzsWbCg}>XukqLE~=%h`U}9- z{CS}FYv3*Isq!>-NSRUA1Zy;6!Nm_NoHsl`pxFUeNt%p8-4wuA+@$PdRoYk1^BU*3;-EPkLjXcyJR} zJiy+`SfN)e8e%pNmUy2j7_@M@5kN(i^>h_;J+6-tY2tG0jjSb!OLsfo-0WWaaL=Nh z+k}J8-BGRMR{kIy&C{b?V;|{jzrXD0N{OBDQDi zQoZ;@W<_Mmw!VmE3)5r$$DMeh0w2yrL5% E0q%7y&;S4c diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/accdb.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/accdb.jpg deleted file mode 100644 index d21abb8c699f30bbd9f01b0f3e5b9a7de21de834..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3082 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/aiff.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/aiff.jpg deleted file mode 100644 index 774905c6c381828fe373f995eacd5ae9c2da3fca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1778 zcmb7EdpuNG96$FlcV^6Bu162i8njy;g@}^OD6f$$MI<#-i_f&AQSxZf(28D6A?e`} zwW&x-QmO6z_DnLXP?S7Uv1rrmxmvdUbAR`q&pn^>JLmkqzwht+yNX6d3*ZPGT^s>| z0D!;;C|Uu}AyOO&fSVgI1OPAqvRw>tID=lG1qT3V4m!RPor8_f{V1nG4i*9wL8upn zFEosXQAXf6MxzsSI-MX0I)lZeGn5zv!Bl1{u~=+2o6b~LQD&>aDT}&gCeVS2P&ZRp|1p9=qa#cd!=YOnQh{O!MaY<8bOfgn zC_~W%*ckM3Fb-s+IIm#@e!nqx;sQVIIZlgKWhy{gQN=rV-PodA%r%xKhsj*ooyn$)==*se4;MNc6&JSZW%nF8nm4)oSh0Vh{%8g z5DZ5!+IT1eg?KUClmRT}XlPF02_Z5DM2yhT&o-`M&CRnUYbrCFj5pJ~t7lot+S$%8 zwb%KJ_J+9F+c9S~(mF05d$+ej?jee~-tD%wwb#Ll(ETvMbL!Fvxqgk|!3^`WYf>%@ z+~1NmXe$$kp^KYb@#R+HTyV(4F1iW= znFfKNI8GnO0YwOh_~cIfcb`94EIsV%{42Q1${UG-E& zDKxOu-?!?!eUG}FhAYp<3g*9^n^l)`Nxx!Szs99sYI6Nv&ItIT5~-EWoYzFRaVm6I z?m79v}ao(JtwQSXg$}Isf1V;C2Nbx)9l;~zezy$=KS#^$xeSgzkSeH?RME8H}<;G zPkS~-l|G!AaVfv-(i?XHwT|ii&)`Qet0mj;D>7shSu3)$i{RIlpn%C&~g3| z5^yORL=tHqr-mn#<(B;ZeoUx#++m$srE-E9dmbe0CRS$L@e(K9Dr_GqzI-HWgZ(o% zhgIvM+MKZrbfnY6{6={9+rfLC#YTCVrFZSiPVFa~@*b_xS!Hn`cgbg(&x<)juEgcu zoljG@P0ETn{A9;XwTSSDerLJioG-K7`*aJ~E;m${IR%P*OA8EreT=I$L>Co66+84i z^eRDf-Wyo@-VOpA?QK96^S^BkCK{Z9i|P!j>qE9t`cj7jCe0;b(l~;T2>|*@pvx8U z%{(MBp0s3K@tmO;QFRpUSX-|TgFPc*&ztOX{r9A`E@2K^bc`F8w)T|@ZtP_JCiGo+3&m5T7 z@|aS#K2=MY*1u6kgYZpZEoB^@Q2Mox;3hlHXB`bI@0#w33#O;|3V&-0x)&ZOc)xz@ zG+XeoNS0B?n3k%B&5m|)+Kub|_>;k8GrpFQz^1o4pm}3a11|EzuVO~(AtCnXiX?%Bt!IxIN2+@k%XxqF?Ux5P6p^qJz>--EAA AYXATM diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/avi.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/avi.jpg deleted file mode 100644 index 2c57cb7f81d144230b75ffebab18ce2073eb5ae1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1603 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 Ze(sV+FIiD+Y@W9>aGO)ejqrAT$6vJS{YU@+ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/doc.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/doc.jpg deleted file mode 100644 index d9ebcf8a85f0db8b682a9aa047b5072c19d9be9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3006 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⋙sb_t}i=urH0#t&a(Lt=z?RE&k=<4 z>fO0+KgZ{A@2Ph3Bp(|sAGqSC%}LVRS=u`_`%?QJ3r;<2@d3{x;%0`Xk1ONhLjDtF}JgDAv3`fkvTC(A2KjDkc}!S;k3yYYP6GV zl)sHf*y^o_(d%I(g`=>T|J;8>M#EZyscD4gJg-R2;AZpW?<|LrTwlsC-u;!_7#le3 zw(vg%%0>1ahw`y`&Y_yO+wtmFulwFqJoHP7`gqHcxy9SLc7%SYC~m6c%deKBHsx*U z7BfQdptA5Z1m7L-O;7iWDu-N0bXlGrDxt7We`~K-L7x&k&l7(Qva4Z9mRSsQ6Y?H& zcal|fh^f&RP&#ReYM1M-&oA@gkaH<=j8LT)b{}@dWxD^&NdI*>aZzK~`At`!wvM%9 z7kz&8puAb%9RJcr1)X)dl#70$;cC0m^$$?AfBz}}?O!_;>D)L9YYeaM)$^p|Fh_Kh z8e=uu0f(oMKn{|2h`dQvopnoDw2b4utkjP*HM_N2{z&j#mgJ?GO)ZBUPn~ptX#6gx z6UWqxed|F*eGnYlf{Pms$*g!~=JIf53liv}C9Lj1t89`%Sz0b*K6|Jw*lO;SqSKv! zNe}s{`2zLeLVGN+eg3F6I8c9)!!<>=;O=?WwU4Fl{A7Q0Sc&h#_Co6?^08ei>hq%g L!wpLA2nYTR(JHTH diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/docx.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/docx.jpg deleted file mode 100644 index d9ebcf8a85f0db8b682a9aa047b5072c19d9be9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3006 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⋙sb_t}i=urH0#t&a(Lt=z?RE&k=<4 z>fO0+KgZ{A@2Ph3Bp(|sAGqSC%}LVRS=u`_`%?QJ3r;<2@d3{x;%0`Xk1ONhLjDtF}JgDAv3`fkvTC(A2KjDkc}!S;k3yYYP6GV zl)sHf*y^o_(d%I(g`=>T|J;8>M#EZyscD4gJg-R2;AZpW?<|LrTwlsC-u;!_7#le3 zw(vg%%0>1ahw`y`&Y_yO+wtmFulwFqJoHP7`gqHcxy9SLc7%SYC~m6c%deKBHsx*U z7BfQdptA5Z1m7L-O;7iWDu-N0bXlGrDxt7We`~K-L7x&k&l7(Qva4Z9mRSsQ6Y?H& zcal|fh^f&RP&#ReYM1M-&oA@gkaH<=j8LT)b{}@dWxD^&NdI*>aZzK~`At`!wvM%9 z7kz&8puAb%9RJcr1)X)dl#70$;cC0m^$$?AfBz}}?O!_;>D)L9YYeaM)$^p|Fh_Kh z8e=uu0f(oMKn{|2h`dQvopnoDw2b4utkjP*HM_N2{z&j#mgJ?GO)ZBUPn~ptX#6gx z6UWqxed|F*eGnYlf{Pms$*g!~=JIf53liv}C9Lj1t89`%Sz0b*K6|Jw*lO;SqSKv! zNe}s{`2zLeLVGN+eg3F6I8c9)!!<>=;O=?WwU4Fl{A7Q0Sc&h#_Co6?^08ei>hq%g L!wpLA2nYTR(JHTH diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/favicon.ico b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/favicon.ico deleted file mode 100644 index 73837074b18ff48735fcf5a33cc8c6a09498853c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmbu-O(;ZB6u|NO=J|@vNGT~7>yF5rQH494Viy&5I&Gh8V}RNt4k7#Ky=XkK>*W2- zO72CiAJ>p`7qO02Ea1U$oT%-W-*A8$w4oi%*u;)^PtB=^>5tj|M&_4z#U9qM4cW8L z)8jBtJa=M*{xi?KoBRnCcF$b$Ki`|I)f!Rz^<8&TyGM!b*K;zdWh2W*egE?*&X@1c zulJiSvMxlwe5-m+5BW1%QG^PVB`LS{eBuT!p!eTE{(=Ww;Rf>Vyrd@NS$|>+dVUUh R2Z9KsF=E#Y5-ahq@dHtmFyR0I diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/fla.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/fla.jpg deleted file mode 100644 index f7033678d5ee67051eaa8d57848d350ce65d27de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2208 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gif.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gif.jpg deleted file mode 100644 index d15216fce7dd84df0d512e9fe5fb41948403a01b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2239 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/html.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/html.jpg deleted file mode 100644 index b915c599ff690fb623a653b955afe02f64cd6f38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2153 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 KTFy9&yZ;M%z7mxH diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpg.jpg deleted file mode 100644 index d15216fce7dd84df0d512e9fe5fb41948403a01b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2239 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/m4a.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/m4a.jpg deleted file mode 100644 index 6be612bee490403f1168f4828d37b94b959693ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1685 zcmb7EdpuNG96$FlcV@hr@rWd5yxJ&+-PMcCh(sPuit?yI@+fIki28WcRwx=OufoVK zwY8Fp-Xo75RLV+vEK?q#)u=uwYWCduEZe{PyZ79C?)jZ_zu)gUzu!;(Ox^_;uFG7O z0R#a6fftZV0oN%md=mif?!XKHKm*8uaDc-e^a5Sj06>e;sgd|%Y^v`^I^{3GQh*`| zd86=#hEXum2pq>KRDw#S5(Gh|DbuMmB^p7{Rq0B~$|@=f9LZB2X zhSTKFfeHqfGB5@lEOPe#!uoC&0QyzkZ9})*KWpr4IPA2Q9y&eYE%Ymm)|=UBxmtIg z>K%D%(dYItfoBbX`HV$3+I-H={S-Pd-!%POLXLjktGc-oIR8cYLHZGZK`O=&hJqvb ze_RlpLQqkR#$htlt!*^80!WDl2_qDA!gh^zoAJqjM(o!uXT|wZ1~1aSZO+rlJ$Q56 zG~2q;alx$Iir(Ro%fU5G^MnpP+L;lcdu8A#miAIj;uVw^H@?0(=5W)Q7UYg|q~vN} zM`rXo&C+BqOZU?r+l|u-0)nH@-Ll(rD-`lFXF^`^TmaPGl`81Lowi3l#EwQ-3rg-D(lP2iH+n6bH#>axtAaLN&$VyrM~ORvGbStXj*x`| zn)yxvHKyB+FuoMiXwv%ET{;Fa?I$+t^&h*EkW!pwGBH|uuZpEzmI`^8FabO_0-;Rt zKoJZF6s9_4VP(kS@}x2a0~m?+$Vja7L)&2C&4GE1eoBighc^_)=D8gWj#RZ87vsWG z^+6@ay2E`w5xyI;PBp~vyYXVZlGK4jh-1kB2nr*YpiTlo9DqX{Hixj{@hce`4m(n6 zH4T5{3Iav{9tmNOPUvrR4VLB|cU)y2;4LfTos0bk0eMQ^rxxTMtRsq9KC4gKBwQ$mAtv%%Vk=)x5n?@7A4hMf+$`t^(a zcYN5la1Ir@@POVa(jM1hKcCLO`58mSY{U0ynYl}@mieAdx;n2Yrfy@-in288cjb&t z>6|?~Jw*O-CaHQ}VUO76vg^S<9krV~b(cOVu#h!BTC_m8Kd60ZLc03nnx~hotIfZ* zlUvMy!G%&V%2cu-Ou*(q(aC{AF@q}*$tovf(4IYJ>#}9G2@pC)_VwG@wl060(*3eg zHW-{z&8S0r+^n1(JtCubl?Gd-OWVh04mddYC1ySSb9)J|rEdAYbF;Q((I1zJAFIsw zuaI=6HS&+l@Y#|PhSR1wnyy{knf6TWF5~3>#7kOIu~B^7yJ@k7eNJrGo&f*wo}p)> z8z2oub}CXAX3qDf(G0&3bch9?uaiiR5o}PO0Tb%OVKE@b6h`W^;;{m`e34k8j0|6f z>~#xEQomRAd~3c1j)`k$vEKg?f2qaBJ-qnh4;f5N$DixV&6djeiC((-VP@5V8BIK& zOfcrmQ4vBEHj^wi-v=s0VL_NcA(x*ls#V~SLCW|PR&TvzWnEqWJ$g))OYg$RtsW@> zCj{5Z>B9#xGtTAXQA0&H{B?Y~e|s2n6zh@wUqRkwdr z6U9q{aFDb+=z&y-UbGp>2-?1Wr{tK$L*0fPb!ox diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mdb.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mdb.jpg deleted file mode 100644 index d21abb8c699f30bbd9f01b0f3e5b9a7de21de834..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3082 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 U3qHG>t1h`)UsF|@q0v3~2RD!WW&i*H diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp3.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp3.jpg deleted file mode 100644 index 2123bf123eb81aa749dc2721348c8374745d2895..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1589 zcmb7EdpML?7(d_r8)KNEsgyLMY@(i>A=Gx687-m2h*ql@x##liv|UJHl(e}-i>S6z zQmq=7q=&XAdfId$Y3PDd+jgBLJuDVAdp<4o@BY5?o#*||`IF1n%Nl_F@k`&EmQM4XSk}M8OkImNC*QZz<1CG7{6xoasW-m6nmtfN* z&HmreT?ITE_0u3{vj)9~R3MW{M5*7l*m}-oJpfH?7XjQ_$2M&XTFEt#qfO|FqS!JIJT$FXpcJ>zuO9EqLxKWlw6M{1+G zlK`*~#|)bpddG7lCE7OsvrfHf23o^7#sUNeLzu}02!e%{AM`Id`zl+-QCx73% zbS>LyWo^o=_9|)iyIlSSJKtbg^X2YV(uC;jW@p*l2~wXfy5nfk|Mo#^z$qAqB@f1d z;y5)P2ZCZa;1Nc~Vp3ou6N;pArK))}7FaO}(ieO7q-@Xg*ByFwgUQRgEeaY#tlrp{ zEgD(2M6|n?s5{agaJ?YJus(cFbk2v&2w}*{H=BLiUtO?OHRXLQi0Z7CRNkAHl@lL# z6nYmh-tjL_0z*(Efb+zJAW$S7^$Hm#K}NP-_xoW{Mw?HnrPpF=V?)^T&b(?PzpRa} zLEhrZps3y{tgK?iMH`(002{}NEcf9cRw)N?9-we{}{8dsG?6jhsysO=JWm2G!O>)NrC z7bBQD$)IRo4ek@FMgUOK&Zi&=`1R-K$8iNp=7)CuxYT0!yxocK&D z1n`6+CP}5L$5WAA_iT(-5@G-RNGC_1^`%~Biz{TW=n^#SQB9&%cysb9j9XcuMh2VC zKbwEN$J+YWc+1esn@y*du-vtJZN)XVSCyfU!-HGCnYNq%xCQH<8%exZR!7~Pyl!|? ze2V$`(18yP(Fq}Yl8;_?IXpDwpbrCSi=&fYz< zJ-7)Pd0q#u|6=u`i^aRh+U>>#pS&;>p+5Hlga?E&$UZS7es*EcI0w0}>nm8Zay?F@ z@65k)TN~SOW2IP{tZ=?bzqJSoYVhlFksd1CSyTG5s@8C=2Q)3gblKGO1}o14RG$WQnF)@9$(l7@#9MY}XkPY2T9N7Blq z5RTr!AU`<8&VECNQn9K2;w`J$lOEWf>v8yc{Xt8W*P$hGMSUG?n=9XUhH^B=q`8OH zK5e~8d=Twlo@A60enNZ8|3Hz$8EyEmDoSP&!YmL0Jffx4i diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp4.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp4.jpg deleted file mode 100644 index ccb45d807d958840501829019d07ef71b1dd7899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1544 zcmb7Edr%Wc9NxQ2?k*&eJ8*p9)FxmMV$>vpHi|q11#zeW6?CvbG($W^aGDzx}>%zg<(4 zsU1*(%a$(#2m$~CFJO8Myq6}Zq5%jB0zv=)36K;OV89m40tfg2faamrp2R%N+734- zO^<*tKoP`zqwt1-F)?%C3 z+sd6TJQH4#5vwyxjV1s~c*0d+Uv{eT8RF$Q4Ld^<<6&z9u#7jepdBF`yU9lte4 zH$x&_A`gjDY}k{3p~lehUOL!_6G7$(1I z?>XI?ATrw9-e~ge-xs-XURbQ5sM)Z%PwGQ-i9( zw78k;q?_2})m$Wc9v`?HYSaBS5ymm!-0X^|Pk!LG-VO_@A$al|4$rz$WKJ&!%~=(b(pZWex*FeOBe!$r zEolQSPIrG=px3t^6OO7fN`Gq<$wcFwhp#z0SMv476&|`?<5)PM5Rof9$ijI~!uTI$uWl{(|^xDMsiG1W{KCEaSUmUEEcqD*OwCm-jrhD}twadVT71tZR`Jbyg}3+TWX;ZUplKz&Hn&3+wkH5 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpeg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpeg.jpg deleted file mode 100644 index 7a861479ec1e055a0e474fc1ac4d5847c1374dd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1613 zcmb7EX;c$e6n-z0$qa;LhRrC5VNo;{O>hHjC9GC3m_?BaD#40uMH48Z7Gx6&dcY{M ziLxjNic%CeTq?K=EftC@T2L#tr3&^~kQUN6v><pOwi8g^UQ4_H zgaANv0c{r$d&Y%@03eY70RVsmFg*;gk%p{b5?TPTN?2n%TT8GpJ%BN49|L#5f{?jc z=thF!7$Y1u8^Z|>K@c1chakB+1gT4MI6C?|x?HZFo*tp2Z=kPdfK)C+!eFrxEY2l4 zB=>)dwh_=I2mo6#Xbo62#Av9!1}sn@h?t3HR0tB+fh>%JtUNd(qZa0gENtx~pobtV z3Zu|Q)uE=>(KOmkx z1iCv!KLGGxMQ*DWeB$`}h-t;sT>m%KmDMp9>q2v;CH~8b{IEsmpse8^++^b@XUG>o z32Ec`3#38FClb{S;;g^RmK{T;L}KX83u=g~zH_g-i}JiW zIo|0)Pm0O&h4xL3(hgz&l^4BywC>{qpzGd*1oE)m_dPXLMWCo-Fjwo~Rl!6FTP% zEBg7KCIwENlABvKyPj@N?oo+aDRu ztt&&FBpdv0+0F|$BL;aF=`$9?nJAYw6f+u-4ae#MX)7R73SDKIBx#VUw05-TT&(_* zcQy8zr;{p2{i2?n{-BIt*-3FCchKrj+73=+`e77K4Y<8|dUeIbNEG#&dbtWUg z?zepIa+~6!nnALLf1gfRc_KF@C1G}?u-H&$v%$yXl4ZIt8QU80%e7YHzU#RUw^!cC z$%D}Y_%r*g`epC7H1ye8z=+TJSw|`|<&L%6z1Jd#Mg|jLsQjoE#tC*)C}dujqNNw+ z!Dn^xrdI5PbS?*XiFOX z-p02+fHVS&5L&4kfin$DJ=Ak`ekM(x6D7dUuigz5&2pPJ%Mjd_LPLuPSj6b*2yP`3 zx~gPJlr%`G8JA^hP!X}mVJ`Rj;n0};6yG(`?gQ%YKdK$-I_4R_&nLdOVrlydcvO1f z(|XlFdourLgGAGYSaUK_W6mZ|~XL-)bNJ1BCqV5&!@I diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpg.jpg deleted file mode 100644 index 0f1901e7a4fe91ddef080b73df643c7b5d231685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1606 zcmb7DeKb^Q7=Q1*Gk0dp;NGD~$_%PWwlhOg`Y=O{HI59ObV3Yb$xwqSY{^K8+FGI1 z_Ax&9aH>t(zVt;-+RfLZvQbNI%10m6I&#$Pd#5G;?sMOJ?t9(F%r zLMHW;0t5j7fe+C20P*Ui=tuy(y@4G7fC-SyXh4HA=mi$=1pw8elPf7&Y;qn*Idz@D z9iRw84HOP&7#*Vwr_nGv17|Q8IF2)zY!-uQz{GKuA0{|^CeCF4Z`0KRk_iGq3Wit%lteHR(bWMy)zz~$c2)IyQeDuoH9hhL#_s3hRhCbXjcF(${S)t(x0CKtf;@sG_y6L|6J&hYj zpO}|Dn)_37BEAg(<$K4zgwsB=+D8M_eUZ^kd0B_N)V`i>QC~2PVH!5@7&;B6Ie831 zqvH&KVoXBln`+*yNVcD)1F5x~w!w;Gxa`(jQKwe+g3z|v83A;HBprAfh zP~CdizTi|renixrD7UfBX>Pw~j-{mv;)7h*!R)L_ND7Y7CzGQn#R!ti6PXAd#J-{W z+#6I<~Z4W)(Nrpl579V(L9TJ5dK94v(Z7h4mE%a?9mWNG3v&SfWRP z8(fjT)j8@j+z*!W@UeGQ8p`PUTJ)g@?xq>tfz}dv-8G*;6eGPwj0IQv^y5N zw#}C2Uy=%X>h~2nH=JRowhw*rmDI^f{7YBuZ8KUlH251+LM9FM?62RM>(d%_<)!(& zw|neLWt>ExOQS!h&RLhZIJEy@qs7kZ^sdz=_Rj2Dm(9N%cNE8eOg~wkO}2$Z4Eb9w z^1r{qzT!wo&-UbSr;v5KAd9vH)B>PmU#}8@3<^b(&_Z8Tj$EOsd^gc(uKbZAZQYvw z7Wb_jj(y^iL-tp#R*CP8cvmy6a?ZyLFAIvKDW0V5J@ByB^rX!UQS$S}W@G+^PK_Gh zXu$roO6jgldVMG*S(0XPPLgHmCz55+J=`oY{wDEO#a$EC(S*ZqYckSG;^ZeyYi@+a zmo;>!;^*<;`3q|byYI~JI@n^U1E*y$9la6(B@L*ODTZe9gzz`*01p5TNt6*+~IOcUeseMt*uULCY)atiWlmoob9+J|Mljbqo9Yd@NGU#Fk__7$r`&dnh` z7!K_VGR|+lMytS4uF6d8rp`BCKie-xHo%g4BLdb&d~|l13tLIP-cq0u+2+<}oSC2N z_3JRf>Ix`}iu5BFMWMIsic3WWd+r$zq+iJUN4ub9O>lE2qxDF~(wV&q@hj_*C4WEV eTQ_WvkZPXpNP5{cT+BzSzZsjR?i~C}_vgO^&-g?D diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odb.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odb.jpg deleted file mode 100644 index 19efd7227e2bb5a8c01348a16b285d6fdb5d6d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1997 zcmb7EX;@QN8a_8SD@kY)c2FRKve}X#(kc%UMCf1%O%&P!3Skim4%oohqN0ctP%L5y z64@+)iY&r30%GC=>#Ts!yfp!zo#J ziS8`Ad=^J0;)&${TeM0*CxTFL3`I5o3>`t~h_(Y*KtoUjijM4x;P3=2f+0esnQk5Z zlL`PVq(IOP018~j&`=t5L~U-^4E+8{iq#q|I2-#Ysb_z|_J;HBlb)M}VceawGKzd< z7xHOVQy2HA@2oDq*e__^{n<=?vpUt?JNWH|jAyN#)V4b-+aLuS8bGiZ1jVggkHer? zJVF3O29IvdVhbP{BBY7nFiWhsu|f2k#%eQ%;tKyC{LIB{XL)^q->v~aQCE+9(A50F z=JebiM%(b5gjzn>aqHo?@}ABvvSDxk)SW7yYr?Z-oh=t<-`L#0Ep=rZ#T!WreZQ&y zQqW`1Z#hylSn|`87KcEB)IF}WShcUaj^`Gv?ymmb?RjhR(5q~IF=dcEYy~Mh(P6+b z7(986GJ;|N9mmERFj*oo!-cbxACV?gs7IEmL+^Vcui}cLe#v+fui={;+^}dLI`P0p z_I~t6o4Z#Mew$>PwOmI3UH-~*Lq$(Pi3=Lu+cI@EvZm{AIk!~oqW0rR`{xk$Z8|_O z*uTJHU^3$947LG;Rj3V_8(g+%}G`RPikViZ{aepw?^+} z2=85`D72~e(iSro{z2!?{+bx6BO|=OojZ{sH)#GC zQt*Jmf=NmwQdh$Te*u<`W8e*#8`xeVv5gCVPlQaarWqPp+iqmJdh;R^)AkCYlgj@W zM!YBHO-^E`RP-<5c1G#fW9Kas?nTdtnsa&C-HrhVClj--aT4x}i{f{?nn_RJpqmt5 zAFrMRmme6FG#q4z|7ntZ#K-7DPT1Xxu47YS4R)J8@%$jOxU7O?rfH)*Y~JNGQ}dQ& zuk)syK zE0QO;Jrgk^o7te!7Uh2B)xO7xqvpMCwQbIxw)gse4ehpTROU?|$o?)T<*OO&(^*wz zZ)^Q^`ZoDU^GkGI&SKKZEd$V_KNksH;@9{Smyrpquqf+4J?7(xe3G24qT zN|Qyf&g@ymLANLbN zroZeZ_wV6O>-QZG_%)o_R2i+dFVKXztS9K%+R1Y__vjr>$$v+Xv<$Y1whRUv;%Zx7 zHjV8SAxdM3Wh;?i3q0+OnY@Z{W7xl?t|#TCe#4copJ7W=9O(y)qpY3NVq*g(QA=lP z=g|h@Mt0fhZe{(^S;=0C!MWn{qt*O%r-Uc`(|_xI$B=(0zumGRRz%_$%GBcnwf8Hl z`xFV;48|AhcZgmu-kBwj7R1@*`UpN!)MkG>%iARQp$?>Uw+E#U6o;hteX+z(d~KRb zsb^HECYU#AE@b{cve)6Go)|fr&}5#ayWBS;_{Xg64tlod%4xHX@fJ~2 ITA+ROU#oP*oB#j- diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odf.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odf.jpg deleted file mode 100644 index bf3af96fd94b05bf8305115f378cbd0b68a39b21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2016 zcmb7Ed0bOh7QQbpD@h;$L<=q?>=Z(fC1_Q`4v|f?fPl#20wQV<1cFwA2n@2wVgrhm zq(x+%hN^Tjpam?Twp0w3MWUb}2>ub{+sje{k`+AV)p^y;{(hA07QUf#{w+WpcUxC2>_-Nv%DgxM3?nYl~MT+ zxBv`-s0IcOC@2n92_B0@aRfYpK)~bi1R|M4AgU4ZcoLPQMkZ4z6atB=PNk?rm8|-S z>MZ*HERIaX6UqO#DBA&@2tt7XMVJ6XM^HMVyan{&MKGx9!pnlgBUl0vg~m@1Xh8pJ z16T-wpd11exQwBpG#H4w!tgox{)-IWklPzc?z+p8x@+fpnk%30e0pcQf2*mB1^3Tg zyb~K;ODF&3dS|Y&c6jmS#Ky_*eJ$OaLSJa8Pw3lE!%h3)R6#JL0eEi!aJWBD0)WL~ z2ndP?bWMFWgX`oU0nrd4P6UVfeHFKv{m97sUAJD~4HTRIt))y`$J-Nz3%yNC7s)L~K_cS&yH8QPE`FZ|oB$$5T<;Kdz>gua@WSI@Ya z$O(2LQ<+t2m2=83@-1WEWPK9K$_h#3DJG51vihTbDfzztjoxQzJGS^)&Fov!zUjz1 zIx+7Eft%9-g2AGA!bjZj6Xph;p~V(zuCQKjGs@*BWQcoTy@wAOa713kN2pgNX4)7p z6*pZ9is6^LCdmAnTTDUxmv;|dkjYZXOU|6bX!C1ox2IvW$h>fz>^u1@8n9%cK(kTVazHj#Q&CM+H z>+N0DyW6rZn}oG`r*D3orRlXYe|1M;o`vMb9!1Z}Az7!#@Mp0h2Lcc2N){EAo!?b! z$xV{O7~hyl-OT?P+u;F$Y^DJOg&D803B@@L{VgN% zz}X&MwBexm7NA3oHee?HotGUVgPdO9#+^qw$TlmkL5a0b8ucsRBkM*B>anve8 zVjQKG_4k9~lSPsv76RK#{La3TrS$8sYoqDIUzRRf;>LJ|Evcq<8J$9;bkWQu`P%N? z4{J(O0;jC2)ZLmzyjY7T+_tj~!ZL;0R8YPSGe4PArv6|Z{pHt<;|`cDqN z^@9O7p}~R#SUiIJSg#16GpwD2+amczVkujn>p%KxxmFw*NCe%efY; zn471qeVko8cQL!B`_VeW58?N|8yFEi3+Jq<7d-XpCVOD4)(p%FsjfN4Or5{T*NbCM z&3a5`KOs|eM}PY@bwB~aPdT8MMRmtoytgD^OMF|K($-2Y3apOXuHA7ug%YO(EN_AH zu6Qj6yMpoa7k4FzW+hkaV10dPKmc|I@ZY@$Y_JUYnEa(zc7$GJdHVF)FIX$T+sW~I8%*B0gN_gOO4bO{e0~?YGEljKJ$|`qy>}&MMDp3fUanJ-v~9We zXm8@%LbWJ1VT3B-O?G6Xtx0qG7F~x7|op?2}>ZskFt;VTNBYAVVoGSgp!MfG)YWA*Hjrt%_1eNoY^f(t36%0Y9yXMUg^d**g(kj^gYy_QxM(iN69&7&~a&E zQXvcsIa*GhF*Y0;p8mnrpytFqC9p3!Sd=W%J~3eVj%b*l5vbFc(`MUdmepfi-}knh hdYiiKN3rcc3SJCdNSd47`?G;RufDE!;;o}{@DGS8&yoND diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odg.jpg deleted file mode 100644 index 19efd7227e2bb5a8c01348a16b285d6fdb5d6d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1997 zcmb7EX;@QN8a_8SD@kY)c2FRKve}X#(kc%UMCf1%O%&P!3Skim4%oohqN0ctP%L5y z64@+)iY&r30%GC=>#Ts!yfp!zo#J ziS8`Ad=^J0;)&${TeM0*CxTFL3`I5o3>`t~h_(Y*KtoUjijM4x;P3=2f+0esnQk5Z zlL`PVq(IOP018~j&`=t5L~U-^4E+8{iq#q|I2-#Ysb_z|_J;HBlb)M}VceawGKzd< z7xHOVQy2HA@2oDq*e__^{n<=?vpUt?JNWH|jAyN#)V4b-+aLuS8bGiZ1jVggkHer? zJVF3O29IvdVhbP{BBY7nFiWhsu|f2k#%eQ%;tKyC{LIB{XL)^q->v~aQCE+9(A50F z=JebiM%(b5gjzn>aqHo?@}ABvvSDxk)SW7yYr?Z-oh=t<-`L#0Ep=rZ#T!WreZQ&y zQqW`1Z#hylSn|`87KcEB)IF}WShcUaj^`Gv?ymmb?RjhR(5q~IF=dcEYy~Mh(P6+b z7(986GJ;|N9mmERFj*oo!-cbxACV?gs7IEmL+^Vcui}cLe#v+fui={;+^}dLI`P0p z_I~t6o4Z#Mew$>PwOmI3UH-~*Lq$(Pi3=Lu+cI@EvZm{AIk!~oqW0rR`{xk$Z8|_O z*uTJHU^3$947LG;Rj3V_8(g+%}G`RPikViZ{aepw?^+} z2=85`D72~e(iSro{z2!?{+bx6BO|=OojZ{sH)#GC zQt*Jmf=NmwQdh$Te*u<`W8e*#8`xeVv5gCVPlQaarWqPp+iqmJdh;R^)AkCYlgj@W zM!YBHO-^E`RP-<5c1G#fW9Kas?nTdtnsa&C-HrhVClj--aT4x}i{f{?nn_RJpqmt5 zAFrMRmme6FG#q4z|7ntZ#K-7DPT1Xxu47YS4R)J8@%$jOxU7O?rfH)*Y~JNGQ}dQ& zuk)syK zE0QO;Jrgk^o7te!7Uh2B)xO7xqvpMCwQbIxw)gse4ehpTROU?|$o?)T<*OO&(^*wz zZ)^Q^`ZoDU^GkGI&SKKZEd$V_KNksH;@9{Smyrpquqf+4J?7(xe3G24qT zN|Qyf&g@ymLANLbN zroZeZ_wV6O>-QZG_%)o_R2i+dFVKXztS9K%+R1Y__vjr>$$v+Xv<$Y1whRUv;%Zx7 zHjV8SAxdM3Wh;?i3q0+OnY@Z{W7xl?t|#TCe#4copJ7W=9O(y)qpY3NVq*g(QA=lP z=g|h@Mt0fhZe{(^S;=0C!MWn{qt*O%r-Uc`(|_xI$B=(0zumGRRz%_$%GBcnwf8Hl z`xFV;48|AhcZgmu-kBwj7R1@*`UpN!)MkG>%iARQp$?>Uw+E#U6o;hteX+z(d~KRb zsb^HECYU#AE@b{cve)6Go)|fr&}5#ayWBS;_{Xg64tlod%4xHX@fJ~2 ITA+ROU#oP*oB#j- diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odp.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odp.jpg deleted file mode 100644 index bf3af96fd94b05bf8305115f378cbd0b68a39b21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2016 zcmb7Ed0bOh7QQbpD@h;$L<=q?>=Z(fC1_Q`4v|f?fPl#20wQV<1cFwA2n@2wVgrhm zq(x+%hN^Tjpam?Twp0w3MWUb}2>ub{+sje{k`+AV)p^y;{(hA07QUf#{w+WpcUxC2>_-Nv%DgxM3?nYl~MT+ zxBv`-s0IcOC@2n92_B0@aRfYpK)~bi1R|M4AgU4ZcoLPQMkZ4z6atB=PNk?rm8|-S z>MZ*HERIaX6UqO#DBA&@2tt7XMVJ6XM^HMVyan{&MKGx9!pnlgBUl0vg~m@1Xh8pJ z16T-wpd11exQwBpG#H4w!tgox{)-IWklPzc?z+p8x@+fpnk%30e0pcQf2*mB1^3Tg zyb~K;ODF&3dS|Y&c6jmS#Ky_*eJ$OaLSJa8Pw3lE!%h3)R6#JL0eEi!aJWBD0)WL~ z2ndP?bWMFWgX`oU0nrd4P6UVfeHFKv{m97sUAJD~4HTRIt))y`$J-Nz3%yNC7s)L~K_cS&yH8QPE`FZ|oB$$5T<;Kdz>gua@WSI@Ya z$O(2LQ<+t2m2=83@-1WEWPK9K$_h#3DJG51vihTbDfzztjoxQzJGS^)&Fov!zUjz1 zIx+7Eft%9-g2AGA!bjZj6Xph;p~V(zuCQKjGs@*BWQcoTy@wAOa713kN2pgNX4)7p z6*pZ9is6^LCdmAnTTDUxmv;|dkjYZXOU|6bX!C1ox2IvW$h>fz>^u1@8n9%cK(kTVazHj#Q&CM+H z>+N0DyW6rZn}oG`r*D3orRlXYe|1M;o`vMb9!1Z}Az7!#@Mp0h2Lcc2N){EAo!?b! z$xV{O7~hyl-OT?P+u;F$Y^DJOg&D803B@@L{VgN% zz}X&MwBexm7NA3oHee?HotGUVgPdO9#+^qw$TlmkL5a0b8ucsRBkM*B>anve8 zVjQKG_4k9~lSPsv76RK#{La3TrS$8sYoqDIUzRRf;>LJ|Evcq<8J$9;bkWQu`P%N? z4{J(O0;jC2)ZLmzyjY7T+_tj~!ZL;0R8YPSGe4PArv6|Z{pHt<;|`cDqN z^@9O7p}~R#SUiIJSg#16GpwD2+amczVkujn>p%KxxmFw*NCe%efY; zn471qeVko8cQL!B`_VeW58?N|8yFEi3+Jq<7d-XpCVOD4)(p%FsjfN4Or5{T*NbCM z&3a5`KOs|eM}PY@bwB~aPdT8MMRmtoytgD^OMF|K($-2Y3apOXuHA7ug%YO(EN_AH zu6Qj6yMpoa7k4FzW+hkaV10dPKmc|I@ZY@$Y_JUYnEa(zc7$GJdHVF)FIX$T+sW~I8%*B0gN_gOO4bO{e0~?YGEljKJ$|`qy>}&MMDp3fUanJ-v~9We zXm8@%LbWJ1VT3B-O?G6Xtx0qG7F~x7|op?2}>ZskFt;VTNBYAVVoGSgp!MfG)YWA*Hjrt%_1eNoY^f(t36%0Y9yXMUg^d**g(kj^gYy_QxM(iN69&7&~a&E zQXvcsIa*GhF*Y0;p8mnrpytFqC9p3!Sd=W%J~3eVj%b*l5vbFc(`MUdmepfi-}knh hdYiiKN3rcc3SJCdNSd47`?G;RufDE!;;o}{@DGS8&yoND diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ods.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ods.jpg deleted file mode 100644 index 19efd7227e2bb5a8c01348a16b285d6fdb5d6d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1997 zcmb7EX;@QN8a_8SD@kY)c2FRKve}X#(kc%UMCf1%O%&P!3Skim4%oohqN0ctP%L5y z64@+)iY&r30%GC=>#Ts!yfp!zo#J ziS8`Ad=^J0;)&${TeM0*CxTFL3`I5o3>`t~h_(Y*KtoUjijM4x;P3=2f+0esnQk5Z zlL`PVq(IOP018~j&`=t5L~U-^4E+8{iq#q|I2-#Ysb_z|_J;HBlb)M}VceawGKzd< z7xHOVQy2HA@2oDq*e__^{n<=?vpUt?JNWH|jAyN#)V4b-+aLuS8bGiZ1jVggkHer? zJVF3O29IvdVhbP{BBY7nFiWhsu|f2k#%eQ%;tKyC{LIB{XL)^q->v~aQCE+9(A50F z=JebiM%(b5gjzn>aqHo?@}ABvvSDxk)SW7yYr?Z-oh=t<-`L#0Ep=rZ#T!WreZQ&y zQqW`1Z#hylSn|`87KcEB)IF}WShcUaj^`Gv?ymmb?RjhR(5q~IF=dcEYy~Mh(P6+b z7(986GJ;|N9mmERFj*oo!-cbxACV?gs7IEmL+^Vcui}cLe#v+fui={;+^}dLI`P0p z_I~t6o4Z#Mew$>PwOmI3UH-~*Lq$(Pi3=Lu+cI@EvZm{AIk!~oqW0rR`{xk$Z8|_O z*uTJHU^3$947LG;Rj3V_8(g+%}G`RPikViZ{aepw?^+} z2=85`D72~e(iSro{z2!?{+bx6BO|=OojZ{sH)#GC zQt*Jmf=NmwQdh$Te*u<`W8e*#8`xeVv5gCVPlQaarWqPp+iqmJdh;R^)AkCYlgj@W zM!YBHO-^E`RP-<5c1G#fW9Kas?nTdtnsa&C-HrhVClj--aT4x}i{f{?nn_RJpqmt5 zAFrMRmme6FG#q4z|7ntZ#K-7DPT1Xxu47YS4R)J8@%$jOxU7O?rfH)*Y~JNGQ}dQ& zuk)syK zE0QO;Jrgk^o7te!7Uh2B)xO7xqvpMCwQbIxw)gse4ehpTROU?|$o?)T<*OO&(^*wz zZ)^Q^`ZoDU^GkGI&SKKZEd$V_KNksH;@9{Smyrpquqf+4J?7(xe3G24qT zN|Qyf&g@ymLANLbN zroZeZ_wV6O>-QZG_%)o_R2i+dFVKXztS9K%+R1Y__vjr>$$v+Xv<$Y1whRUv;%Zx7 zHjV8SAxdM3Wh;?i3q0+OnY@Z{W7xl?t|#TCe#4copJ7W=9O(y)qpY3NVq*g(QA=lP z=g|h@Mt0fhZe{(^S;=0C!MWn{qt*O%r-Uc`(|_xI$B=(0zumGRRz%_$%GBcnwf8Hl z`xFV;48|AhcZgmu-kBwj7R1@*`UpN!)MkG>%iARQp$?>Uw+E#U6o;hteX+z(d~KRb zsb^HECYU#AE@b{cve)6Go)|fr&}5#ayWBS;_{Xg64tlod%4xHX@fJ~2 ITA+ROU#oP*oB#j- diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odt.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odt.jpg deleted file mode 100644 index 19efd7227e2bb5a8c01348a16b285d6fdb5d6d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1997 zcmb7EX;@QN8a_8SD@kY)c2FRKve}X#(kc%UMCf1%O%&P!3Skim4%oohqN0ctP%L5y z64@+)iY&r30%GC=>#Ts!yfp!zo#J ziS8`Ad=^J0;)&${TeM0*CxTFL3`I5o3>`t~h_(Y*KtoUjijM4x;P3=2f+0esnQk5Z zlL`PVq(IOP018~j&`=t5L~U-^4E+8{iq#q|I2-#Ysb_z|_J;HBlb)M}VceawGKzd< z7xHOVQy2HA@2oDq*e__^{n<=?vpUt?JNWH|jAyN#)V4b-+aLuS8bGiZ1jVggkHer? zJVF3O29IvdVhbP{BBY7nFiWhsu|f2k#%eQ%;tKyC{LIB{XL)^q->v~aQCE+9(A50F z=JebiM%(b5gjzn>aqHo?@}ABvvSDxk)SW7yYr?Z-oh=t<-`L#0Ep=rZ#T!WreZQ&y zQqW`1Z#hylSn|`87KcEB)IF}WShcUaj^`Gv?ymmb?RjhR(5q~IF=dcEYy~Mh(P6+b z7(986GJ;|N9mmERFj*oo!-cbxACV?gs7IEmL+^Vcui}cLe#v+fui={;+^}dLI`P0p z_I~t6o4Z#Mew$>PwOmI3UH-~*Lq$(Pi3=Lu+cI@EvZm{AIk!~oqW0rR`{xk$Z8|_O z*uTJHU^3$947LG;Rj3V_8(g+%}G`RPikViZ{aepw?^+} z2=85`D72~e(iSro{z2!?{+bx6BO|=OojZ{sH)#GC zQt*Jmf=NmwQdh$Te*u<`W8e*#8`xeVv5gCVPlQaarWqPp+iqmJdh;R^)AkCYlgj@W zM!YBHO-^E`RP-<5c1G#fW9Kas?nTdtnsa&C-HrhVClj--aT4x}i{f{?nn_RJpqmt5 zAFrMRmme6FG#q4z|7ntZ#K-7DPT1Xxu47YS4R)J8@%$jOxU7O?rfH)*Y~JNGQ}dQ& zuk)syK zE0QO;Jrgk^o7te!7Uh2B)xO7xqvpMCwQbIxw)gse4ehpTROU?|$o?)T<*OO&(^*wz zZ)^Q^`ZoDU^GkGI&SKKZEd$V_KNksH;@9{Smyrpquqf+4J?7(xe3G24qT zN|Qyf&g@ymLANLbN zroZeZ_wV6O>-QZG_%)o_R2i+dFVKXztS9K%+R1Y__vjr>$$v+Xv<$Y1whRUv;%Zx7 zHjV8SAxdM3Wh;?i3q0+OnY@Z{W7xl?t|#TCe#4copJ7W=9O(y)qpY3NVq*g(QA=lP z=g|h@Mt0fhZe{(^S;=0C!MWn{qt*O%r-Uc`(|_xI$B=(0zumGRRz%_$%GBcnwf8Hl z`xFV;48|AhcZgmu-kBwj7R1@*`UpN!)MkG>%iARQp$?>Uw+E#U6o;hteX+z(d~KRb zsb^HECYU#AE@b{cve)6Go)|fr&}5#ayWBS;_{Xg64tlod%4xHX@fJ~2 ITA+ROU#oP*oB#j- diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ogg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ogg.jpg deleted file mode 100644 index 3105040045de41ed43a20da73e85dae8f4930afa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1705 zcmb7EeKeF=7{BlP&b%{YX6l_8M@nWHh0vN|WQh=qSY@=LNWM-R`Ph-KtT2^Q$yp~W zIxD91rNxrfE)gwTYqKJuVo540(y%_Jn7yMlyZh(<-us^OocrA8KELPdDtZ(HfN*o( zb(rg{nryaT=4RMyE3v3<{08gvnR}MY{45r7gB# zOQutCD*b;$aSO1hzz-y02oInv1Y;qJCZGia!2qU=W)YAK^g~lBVIojWnGF?46qJl( zRK+8}fJP{R5ik{P=ep!Nsv}B)V;EV>)i~L@<9vDEz_{5~jaMd~ZTH~OsPTFWn`a?~ zu^L}ZpVrIb#7lDn0s5wRt?QZo3;tK-^Ys_6JtGg#cCGGY>!*FVlLD#e5CFl*O0J8* zQ8ER=NL0Qh@C<}}sE{W@M&H|{n4Lmj&xL$Zx7$9Wx52oJKKU>>+&@L8XI8bz_xbq} zb;A*|JgOxL_5R#2Cu_ucm%wo6cufO|F{rt#@~or-r&k69`6KzuqDQ-3^;^&RPhE}mPS*_Fbv&dAGFim}u)8pnvX~rzpco0T z*aEVSI^Rra?;u_v0lUx+nThYcO|P7gwp7;~HZ&0bBv|PxJ$b`Ap zYF-Hu8L&Q@wxTwpZo9S?ySm}1|COaj)Aj5e??Qj3%4(n}P9rZm{NRtw=IHVTA_>lO z@Cp*g9;_tP%~Zv~?a+BHmn;7*vc9bH$U7vdTHDCac(AN4Y&F7LzHX^r!UnB~^?h%J zorWwgd5iFbk$0*4&(=;Y!L_SG+rR5uvVTQBk~H6Ui=CL&TBbcVbB0?WRAXjzF)j6o zZXIE6SN&Xid6oOyJcdia3vH|D7HM0yk@2WS@{?shK6vVQ|5CX3vCO*;oAWN!M_=}& zYGA{~)lq&yVANgK;iIup7$v!pcrPw<8_(hO4q5h{j{9jQ!R%=Rg8`dXTT}LS@rwuf zE`NRm!(UCnRzu0ke*7B<3&6k~g2bY1Dd8E|I4)W2NITsbYbnW{IRArH+Uth1YqvFX z?)1F;MOK0?BR zc%WV19im8memYNgB1OzvIBW<{8ZgAwmkyE-)$ErHrU-%clTxEVBZu1)7 zZ{+1wsgTFQq%KSj9M*q>=;13LvWsvJaVuWbzyNhw%3;DVRe1rz(gmU*9f1SiUM!KS zI+~b@9tw?j$}0RgWKYCrmaUcrlOW)dVKx9Q9B{>?c>0`{x3qSaS?nvlA)2&RXKt~iL=G!|+8dc3pOm+-YZ4Pabjy(y9 zF`eC{o>pL8XpZVfGfO9YCNIy}H(uHh{CHwzQ}coJgD!iIZ}Uo<9)b>d%8HRtr<&E?em|7bcyvmWJ`{qoGh>#W@ z!Al@5C*?^4+MRBe7A6mu+h#j)c>1iq4dX4z$9|n_)6^mRAvFo1wljNoroW^-Hqb~r z&Da-^u;u&agU^GtBsFSYHXNX7%P_Rg?+qA;x$WXE7#t0WJRx>&yk>k0nG!{(dlXb4 Uow?uoTsP8Rilp7+wksa~1symlBme*a diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otg.jpg deleted file mode 100644 index 2c8f4b621503934cb1b6eed7ef55a1b8bd06fce4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1980 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ots.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ots.jpg deleted file mode 100644 index 19efd7227e2bb5a8c01348a16b285d6fdb5d6d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1997 zcmb7EX;@QN8a_8SD@kY)c2FRKve}X#(kc%UMCf1%O%&P!3Skim4%oohqN0ctP%L5y z64@+)iY&r30%GC=>#Ts!yfp!zo#J ziS8`Ad=^J0;)&${TeM0*CxTFL3`I5o3>`t~h_(Y*KtoUjijM4x;P3=2f+0esnQk5Z zlL`PVq(IOP018~j&`=t5L~U-^4E+8{iq#q|I2-#Ysb_z|_J;HBlb)M}VceawGKzd< z7xHOVQy2HA@2oDq*e__^{n<=?vpUt?JNWH|jAyN#)V4b-+aLuS8bGiZ1jVggkHer? zJVF3O29IvdVhbP{BBY7nFiWhsu|f2k#%eQ%;tKyC{LIB{XL)^q->v~aQCE+9(A50F z=JebiM%(b5gjzn>aqHo?@}ABvvSDxk)SW7yYr?Z-oh=t<-`L#0Ep=rZ#T!WreZQ&y zQqW`1Z#hylSn|`87KcEB)IF}WShcUaj^`Gv?ymmb?RjhR(5q~IF=dcEYy~Mh(P6+b z7(986GJ;|N9mmERFj*oo!-cbxACV?gs7IEmL+^Vcui}cLe#v+fui={;+^}dLI`P0p z_I~t6o4Z#Mew$>PwOmI3UH-~*Lq$(Pi3=Lu+cI@EvZm{AIk!~oqW0rR`{xk$Z8|_O z*uTJHU^3$947LG;Rj3V_8(g+%}G`RPikViZ{aepw?^+} z2=85`D72~e(iSro{z2!?{+bx6BO|=OojZ{sH)#GC zQt*Jmf=NmwQdh$Te*u<`W8e*#8`xeVv5gCVPlQaarWqPp+iqmJdh;R^)AkCYlgj@W zM!YBHO-^E`RP-<5c1G#fW9Kas?nTdtnsa&C-HrhVClj--aT4x}i{f{?nn_RJpqmt5 zAFrMRmme6FG#q4z|7ntZ#K-7DPT1Xxu47YS4R)J8@%$jOxU7O?rfH)*Y~JNGQ}dQ& zuk)syK zE0QO;Jrgk^o7te!7Uh2B)xO7xqvpMCwQbIxw)gse4ehpTROU?|$o?)T<*OO&(^*wz zZ)^Q^`ZoDU^GkGI&SKKZEd$V_KNksH;@9{Smyrpquqf+4J?7(xe3G24qT zN|Qyf&g@ymLANLbN zroZeZ_wV6O>-QZG_%)o_R2i+dFVKXztS9K%+R1Y__vjr>$$v+Xv<$Y1whRUv;%Zx7 zHjV8SAxdM3Wh;?i3q0+OnY@Z{W7xl?t|#TCe#4copJ7W=9O(y)qpY3NVq*g(QA=lP z=g|h@Mt0fhZe{(^S;=0C!MWn{qt*O%r-Uc`(|_xI$B=(0zumGRRz%_$%GBcnwf8Hl z`xFV;48|AhcZgmu-kBwj7R1@*`UpN!)MkG>%iARQp$?>Uw+E#U6o;hteX+z(d~KRb zsb^HECYU#AE@b{cve)6Go)|fr&}5#ayWBS;_{Xg64tlod%4xHX@fJ~2 ITA+ROU#oP*oB#j- diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ott.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ott.jpg deleted file mode 100644 index 19efd7227e2bb5a8c01348a16b285d6fdb5d6d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1997 zcmb7EX;@QN8a_8SD@kY)c2FRKve}X#(kc%UMCf1%O%&P!3Skim4%oohqN0ctP%L5y z64@+)iY&r30%GC=>#Ts!yfp!zo#J ziS8`Ad=^J0;)&${TeM0*CxTFL3`I5o3>`t~h_(Y*KtoUjijM4x;P3=2f+0esnQk5Z zlL`PVq(IOP018~j&`=t5L~U-^4E+8{iq#q|I2-#Ysb_z|_J;HBlb)M}VceawGKzd< z7xHOVQy2HA@2oDq*e__^{n<=?vpUt?JNWH|jAyN#)V4b-+aLuS8bGiZ1jVggkHer? zJVF3O29IvdVhbP{BBY7nFiWhsu|f2k#%eQ%;tKyC{LIB{XL)^q->v~aQCE+9(A50F z=JebiM%(b5gjzn>aqHo?@}ABvvSDxk)SW7yYr?Z-oh=t<-`L#0Ep=rZ#T!WreZQ&y zQqW`1Z#hylSn|`87KcEB)IF}WShcUaj^`Gv?ymmb?RjhR(5q~IF=dcEYy~Mh(P6+b z7(986GJ;|N9mmERFj*oo!-cbxACV?gs7IEmL+^Vcui}cLe#v+fui={;+^}dLI`P0p z_I~t6o4Z#Mew$>PwOmI3UH-~*Lq$(Pi3=Lu+cI@EvZm{AIk!~oqW0rR`{xk$Z8|_O z*uTJHU^3$947LG;Rj3V_8(g+%}G`RPikViZ{aepw?^+} z2=85`D72~e(iSro{z2!?{+bx6BO|=OojZ{sH)#GC zQt*Jmf=NmwQdh$Te*u<`W8e*#8`xeVv5gCVPlQaarWqPp+iqmJdh;R^)AkCYlgj@W zM!YBHO-^E`RP-<5c1G#fW9Kas?nTdtnsa&C-HrhVClj--aT4x}i{f{?nn_RJpqmt5 zAFrMRmme6FG#q4z|7ntZ#K-7DPT1Xxu47YS4R)J8@%$jOxU7O?rfH)*Y~JNGQ}dQ& zuk)syK zE0QO;Jrgk^o7te!7Uh2B)xO7xqvpMCwQbIxw)gse4ehpTROU?|$o?)T<*OO&(^*wz zZ)^Q^`ZoDU^GkGI&SKKZEd$V_KNksH;@9{Smyrpquqf+4J?7(xe3G24qT zN|Qyf&g@ymLANLbN zroZeZ_wV6O>-QZG_%)o_R2i+dFVKXztS9K%+R1Y__vjr>$$v+Xv<$Y1whRUv;%Zx7 zHjV8SAxdM3Wh;?i3q0+OnY@Z{W7xl?t|#TCe#4copJ7W=9O(y)qpY3NVq*g(QA=lP z=g|h@Mt0fhZe{(^S;=0C!MWn{qt*O%r-Uc`(|_xI$B=(0zumGRRz%_$%GBcnwf8Hl z`xFV;48|AhcZgmu-kBwj7R1@*`UpN!)MkG>%iARQp$?>Uw+E#U6o;hteX+z(d~KRb zsb^HECYU#AE@b{cve)6Go)|fr&}5#ayWBS;_{Xg64tlod%4xHX@fJ~2 ITA+ROU#oP*oB#j- diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pdf.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pdf.jpg deleted file mode 100644 index 2aa417eb7366fe1f5028c2ec498a3dacd97d321a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2089 zcmb7FX;c$g7JijIB+!WgWDy|*8bm>sh>oHpAe$q!AVFkD3>{@@!eS5vff-h%AwdLb zK%y+ti0mLj6Hsti%t!=LaI{&PO&zwQeIj@!Q(;=h`8l_$-nsSedG)^U-gm!}y_8J? z(lL7{djLTIK=1`*Q-EO?doCCNXJ=pp0Kfq#{Tx8S9vlT4@B;v%46!v6SBBj3z2!mK zD_{!{5G215@C_Rhjg%V(g+ijS7%Ucx!CZxDxsbOC}4A<2-e7p4G{Mal_p84iubV^DBx2Rsd- z|0jks-;N)D(x)DH{saJQ zGd8#j020QdLxSM|I1O7{VPH6DEY1{CQDy|dm~fkj5ufR5S@p%mbe8dWH;Yve>SUB| zB)tD(4ObQ0q_fofw#4Olu)dyNdb3s7!)f2fu^-wx&{3yx4rO+#^T$jpLG;OPs zKGj|@_H!B-ZLJB*5KP-`*Y}g!ZERTD9ya~Sc7*!uR#siia{>EMhxoVWj17Mn;9fF- z8W0$nB507T{!w;}HDcrH5OKMaGZDqA5V&yOid8k8s~&qU`W&e4xJfu_ zBN7p(=suEjtzmP#2|fDU_2f=c#fN%N%9uJZRux1SF`LF>0S$E zXs?sgzM-E{;zQzEhV+0H-f}on>NTc6X!OY;Yu)2nrb>6PPD%b$V(xT#ZN4F1vilw9 z@^w<_P;qm~$f)P3TT6AR4R7#k^isoTh&cY~#gZ2{{@Rxj_;^yXJJrJ7-OJ>u9dBy1 zm-pJ(xlJ5KIne1^bSm{{&BFL>{YYgoE9P`hyI^WLe&I*!^2;4m(Y}ljg=yyZbA5*` z-knYF5{w1Y<~0-w%-pM1IXBp&`9xrsm7IUl%_N%aoX1p-vwR}Kbym-C97CEThTU4R zl(eG$ycM68)xEzDnB;1)>nm9F4W@L>S#;L0|K4Ef{IUDi;r`xmIld*q%`ev}^wwD> z1FD&+YceyC&lNT>0(vAXUs}$Zx}jm3$s=LKMyI38XuAzYHY&@#h(`Vz{lDqG7hLiP zbs2M8x-sN8(v%qF(`IGbur93il4!B2}kH2bSq|x$lm!WY?JhPe~ZV*2p zvUD*aOEOd@lJ+w7N422XmgbiRwDlj(_>Bg0|Ha?$XcPC|^`nt@RIfNO*8L)yn`W#X zdHY9_D1zH{?NTTgO-8tl9Q6Gazy1y4|E>=XYL1cFgo5g)$FNb^c&erPBO89`!?TvSq?`S# z6P_3B&(@e3|>kLLhqZYAN zL%kkC=Bc=6lV3TZVPBD@+nu(El8~{_6WsI?zacGz4_DaDQC*;SFlX2b_JXZ zLX9OJMG>bHQ-ou}H$0OjY!|YzcV#BNE<*q1=Y2sF^<_*8-?X7yb!S%EC-nT@=V@Ec OrroqO?Gn|=#{UgR8|hU5 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/png.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/png.jpg deleted file mode 100644 index d15216fce7dd84df0d512e9fe5fb41948403a01b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2239 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 UkxpD0A=)+-TH~0z(|mpSA8u7l8UO$Q diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pptx.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pptx.jpg deleted file mode 100644 index 4a0ad1a1ce1b46936875a9e00247d1ee5db28bf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2893 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 M_$XB5;Elij0bef`wub(Pfb`FbaYwh*Xtg zA(la!6i1vOs0c~~K?KFsLui5+WPq_|UR-27d-k9G-o5AEcfWVv`F&OLRPqv#T^(H< z0R#a6ArFwe0-W^+cZC74aU(DU0N??1WEVgqJ46fAkO=^)47Gd`Uj{Gl1EfmHGhh!; z5F{NaWFP`#V5wlyXc&XT;&3=D7K_6Z2{^nA9*ZT&5@d)(5{ZN($jZr*PsTx3P`e%{W<6Fx%W$t&yRT1p2B zw6FUVkf`UAQ9jfUZ8p^whlQe+?W~sOJ5@Je{||cWTHP8WE$9BsI+hs-0CQmOOtY#* z`~j|I^$FqD7h4p8Ztqw|)zu);%D;>`M zG;BGQGEkzrA!6)etpwOO3aHN+*B&UdDCXjZ68_Mge&(=~l83HYo6d0-bC`Acqb%IC zro{20qrfA|CTB*(GPErCg|W)>=J6h!)kKW@^*aC3dqU?O6vAMJNnGd#_aBXnD;(}J z9pzfQxK%U}?KjKuvcy00ACe>>9I?to9zaOI(K5?cLC71x$ZL5~s5Db7SwUNe!Q|NY zc$e3FH4ljs8(Q$Rw(2BPbwjU>M(MMUFC@O+m(Q#FGFmuYjRwo7#q8X<7`Xg%>yHWRD^zCAYkyhD_Blv-1uP<;B#tikDIc%SL^| zuc}s3oGbpoU!nUtnRnVtf16K!72NBb9hcOkY1%DZgzx@1_~qrn)_1JH17G5-*m;3R zEj9A#8HcJARf9#3j@QvQRn7Gi>8+GhXIA2QQPU)TFy5H65OA5k=&Dv z{D%vC5*Z7)-#0ZfMvj$iavG@gT^G9B@q9z-K3D5Uu{;%*A`zkC%9QMkG5w0qPkTRC zI@O8VSjEjpxuJxPJfuQQA2Qm_U+Pgw!iQHPV ztt(_^Gnw3m&tqEyMy4~eoHPqv$6R-g)Gw0R{TWy7_L$$g+BZ+($MHpM2Ny5DK7OWb9Ae(s6LK>BDB@6<55^F?Fs z8NAbkRl~*V%1vF<#TQ(%ye^gawio9f(0_7aOhfek*9Qj9n~$b?SR;|rCnGfqqcAY$ zTg!puwM=b+7mX2;lEWz%lX*3*J`}&1@(B-ZZA6{>#QG|4Wm^j!o9FL@x(ogx-$F2(R4OzL1YjvXqr5HuK?}W+*6716YAM-&K1;; zbMf6j-8T1Au0@SpzI^DVzj^GY?S%%O11awx7+kS zPYN;>1Iy15lCooM7Dt7Y7Vi(S-4|je^%p5I>6e8`j2mY7D&qrX|>-; zT$=_5$!h@>IU|YF7|5c7OvH<;vfIXSkgu@LMUFjER!Z zkB!#6E5zSgn5$fK0~>byv_`I=Gg2iZD~rB^exy3dV1z>55r4C{Jw~#O1fwAs^F5L+ z&D1NThRhMC()<&mhiThj#-}$<(zN#Zdw8iGB%;t2pwul~6I) zPMKM6H(PEK@;oLUJEG;-?$R;u5ZO4LQ?frvWAZ%+5zRK|G%+%}JKo6NE0!(okbs@9 z;9#1~VLm8V8%sq|KfmmKXOF5$>e`S%&AU2gg0@Nj`t>cZ263+~dOe=5KAE4EC>VA( z(d{T>btLEoM+K@-w5=U3UW;?U(K54+3R<@3tvkz)L+7fZ$?B=xd&!OSccPpQeu?BEbjOdD@7PVe);Z!uPm5}vvMsTnz!Vp^T=yqa2^#QgOxE$voV zUbGcTq&i!jr_fSE$5%|dX=$g)Xq!s_)Px=!4Dt!dRZj4O&KRD)NLE*j_;^h+_&3Co BS)u>{ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rar.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rar.jpg deleted file mode 100644 index 950cad388157196b3cd5d2502a95afc93e644002..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1995 zcmb7EeLPg@9)Hd`GiOFK!#U)w=+1b(UZ!S-aaVb_UP}$7MtU(Jv{%Sh=%b7-W~JSP zYRiVw&8oFX?o|=3+$?d)dXFthg!PuCWcC@Az5m|tdCv2BKF{y`&h!2Lp5N~$@09-v z2v1iJSAZY@An*b5XTZTFCTu?dUS7Zy06+&wN*JKP6|{m?@C5+PMVEKta2?30wZ83T2mg|&Mkd|syU6M2@6bDBz7GgW456i^&^h=KkOYHo?qP3 z7VG9XrG5SU%u8%&aDg0%=a$xYYQLhKbL|_CIr!3NU3~qUv`e?6bwhMICmXE=HPdpi zx7=?7W(&?f>UrAC>a2Ht&$u|NBL|U#-?dxk4|-qfs(z-suPbPjIiom=6_)@s8jJ%% zu0!_5kQoJ|qu4TefKaG3l80hApkoOES>~>#sgy#xoUvHzZueZ8Y7# zP1ft@Yx!1PE4Ci(&$xQ`Xif;h?+Nrv_fE+^vp&9|R@D1qn`Fp9xjl6_GIe!!YMRXp zX?=~b&xmx6PWP@Z98b4DV2QY#^WA*sG>{c(GTMT6qpvg-47nr>K9169%MnIUfKjLf ziK}w>j*=*8$po8cVJSS6-m=6KLlApp%GvK``xpFzur#MU&SksJWr;ieQm+JRTf>klhCE{OI=7vgGUzMcm0#*!&Y*jb?ofblQAZufW*4O$fgGyYR`e}U?(2&fLF((z?=D1uQ)K&Yy5R_gOC zC5NJG)cFE$p9}*>CsDw@vw1DgCO>8jZja7sj8N9;WDa_5tIA(!5&YAgtJ@vEXGFza z;MG0yX4oy+*VVu(vZe9Y%Fgf&J@Wks=k zy7pZt*D@E(bp(r!U2AZ+5qv+Gx+|MCZxue9vsY=fQ02>tFj}&2(D=zyM8w}D@tK?K z4?B*Z=j!SBCv=L+Y_6JXdJSoz>d9D|uS=%ni!xgI%iMWo6%~Y=(jj z2$*VA3hX4y*GZ5Z9^cVhG65XeQc+aNr-HEOEU1M7i+MY#?An#HNh-azXuF|D{EymC z1=4q1tyvvs&@@YXgKmaqb7 zt|LV&0hNk)AOTIQlvH2!L_knG{tZd6E zHKF~Eo$rd&f6i6@QQ-4@{Zr4JV0Oa)ZGZb>=2sDY6>}yMWwE>Y&d)Eqo)2yvk`}8wbpAb#W#Pf0 zwvue3Q0w!5{QGwAScg6J#E#Yr$7-AOqqSwH_F3fI+Oo8($v!MbH{M8nQ0-I}Ym*cc zVR8>5!-_2O=$kQjmDM6^{(y-dX-7ZY%IS2SGdtwboOhsSop20jmoIsHj&c{QNGkok!#Zv$P diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rtf.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rtf.jpg deleted file mode 100644 index d9ebcf8a85f0db8b682a9aa047b5072c19d9be9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3006 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⋙sb_t}i=urH0#t&a(Lt=z?RE&k=<4 z>fO0+KgZ{A@2Ph3Bp(|sAGqSC%}LVRS=u`_`%?QJ3r;<2@d3{x;%0`Xk1ONhLjDtF}JgDAv3`fkvTC(A2KjDkc}!S;k3yYYP6GV zl)sHf*y^o_(d%I(g`=>T|J;8>M#EZyscD4gJg-R2;AZpW?<|LrTwlsC-u;!_7#le3 zw(vg%%0>1ahw`y`&Y_yO+wtmFulwFqJoHP7`gqHcxy9SLc7%SYC~m6c%deKBHsx*U z7BfQdptA5Z1m7L-O;7iWDu-N0bXlGrDxt7We`~K-L7x&k&l7(Qva4Z9mRSsQ6Y?H& zcal|fh^f&RP&#ReYM1M-&oA@gkaH<=j8LT)b{}@dWxD^&NdI*>aZzK~`At`!wvM%9 z7kz&8puAb%9RJcr1)X)dl#70$;cC0m^$$?AfBz}}?O!_;>D)L9YYeaM)$^p|Fh_Kh z8e=uu0f(oMKn{|2h`dQvopnoDw2b4utkjP*HM_N2{z&j#mgJ?GO)ZBUPn~ptX#6gx z6UWqxed|F*eGnYlf{Pms$*g!~=JIf53liv}C9Lj1t89`%Sz0b*K6|Jw*lO;SqSKv! zNe}s{`2zLeLVGN+eg3F6I8c9)!!<>=;O=?WwU4Fl{A7Q0Sc&h#_Co6?^08ei>hq%g L!wpLA2nYTR(JHTH diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/sql.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/sql.jpg deleted file mode 100644 index c0556dec554881b35572099d148a22e0e6c1afbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1843 zcmb7EdpuNG96$Hoc`;)i9vL$#<5i|@nW?F~2b-dZvJ&!0L=Sm1g|wnfXj^$@QkW<) z9;L{((Kdq$S*eVK;$utoDX(67X!edC+h6TxfA`#Te)sn{_xJn$&iN_sDh2@6+0n@n zKo9^B`T)fs;4h5{3jx5z1+W1C1OOcf0~nM;wSa-X0Kj7St0Yd0eC2(VN<}Yl05Ak8 z2aFDs5Gdi9`~KgjZ1`tC7ekOH^*6^hKt9 zu|xunK>XjNkO3M2_<%SB(g!dNLTHep2{6$_5C|n@u%8Hv!(#}DQmOf^_>)p`50DTD zz*K~aVvza8XL==nq}U&pAMy%%+g-LS*^@DbO8X+7pKP#+He5UE5h?t6tKbUib!MZb zo#a(hH?iL*?`o`2)!Ps?ghSfwv@LR*0GN&b*^mk#44N^7o!%LpurPwbL3m)Mp*4f1 zt;Y{QBO##iL0I^sX6UuHHl30_Z=XAeMyf@W`gnjmOSZWCH1}G?hxxyd?!GGpnIW|! ztMJ2p9>s;0S@Q}?n{#t__J-W-!gr>7szu8Hc!B3svcB;6`! ziF>iSTX=(+<^zn`nAe60MtPQrh+OK z>>pu7r~I4Z_noxlJd4Vs8sMe8&JiIG+rxP)HCM#t>AApD}?@ zNB|A1uE8?n;54~*?i(Vd`iAy_iAfnJsynsx42%}?9Rh-)qCZ20vxTS9bQ-)IOfrd#-|Hm>oZp9y=#rpn;e`I~+ySyNwEzw^+^<41-pRuNB|E>7q=`ZBnN z;c%q4foV1Nz++u!q31I9dSA7lqSM+^2irUNQ(mprHkC0~wbH~2aL9)!jnt-0kdi88 zcpA)lXeRxm`w_b=RH)9}W~YKgoJB(BjD>{_sYEW1%$e|aJ+mit(n;L|A3Jiqr98F$ zo!!hXiPMgkEQ~yTU*}q!MO|zBmO2lQ68gmz8;SYDo>PTPHMXnnQ1XxaCypAlmh+5~ z{jcwGf6cfNXur15F|R$7v?aR7q{>uUQ%)5%I1y%n=R6~N(#!Nmm(rfNYg_WJG;1=5 zej)N$YvK7SuG^_t7u~v%Gv~561~u`LQOOzw=-D~x?&-PVv^c77l&8O1xSspMr#S4* zj?;NFA@7Eq$?WpllOH5)c{RU@RVLkib1It)1kA!V1wcz_Ohs=zj6(p7e5n)-usC+^ zfsu(BW+$ZR;jJG3a(r!BABmeb;TpLS3{klB(qIe4(J-$)Dmt5*aP#1xXlZQ!leZAV zrQo4v==+aqematUyM376F*imBq<2nvb5N8dlj_~cKnrFtp{(NAG2ZHazab6WV_8Gbr>(U z8IVV~nJ%|4_SNws=N{hNalU_fkw8daz)Gkh`y1nrWxYdz`P?~x5)`y~d_$0)@&jYY zRW4L}6)%drQKr|NM*qJG-aUw%m3+dNdP(RF=N-knZ z(zXHFv&NoV1Fy-ylPQ1R7G1Jy<`4I(ukR_*ZFHGYb=*SV z;;9TjF=ClXdsM#|)APuDrgmb|${NuFrhP1DH~FHOTE+d9{9@xb1G-%6e2t4Kyd8Fd zG1%l+06xGUJipD5rnM%G9jsZl$}3#`@DA3u*sz*KR0{TfB po1OD7?BZ+hO0l{>+%W39m|7?DWCFpNkdixElUBn%Ui6cZVvoh-EILGFi!9m_ z$RvzJ{=Y@o0jMOfA4DRMGJvTNLWP7~I0OhFkO=UK5HKQ2LU5fDz6|5a6%7Cg3c8aNgay;4Fgq1VfiN$ z8=pQksXsbz8ue0P`?aWB{TV#|ef~@DD)BV{e&}3K*DzT2{;Ju*V9tU-sx?OlFwah{ zlt(jW)IAa*<4dkYH&mej2tf!qf^Y6I1SJ5-2qvzUr%~h_z44opa0Czm{wn#aoNB(; zAzw`o-;Mts&cllKqi>j@e=*}H)5qug>?JK4#WbIJsp|H&#ZR8HKO?K5qrbN?NN%lT z{@$0|2M6UXzR*+m{kc&?P?+@WINT?F$&UNo zx=bfErKx>h$;OXLhScD)@gCgNbs|)-vpC0k>*PRRMV5-f)T1Ljjqg=(b3goSuEnhb7Ka5cGIX%cd;ApXqrxvJD|dhyRy}r-R1sv z?|bKGHx!iwj8`Wq8Z4)qh{IF-WF!1!7(r2S^0$cLzW}8YWMt{O=AjwbDmmI7r@Hq3 z31uAvmKED4HjY2N=nQAD88oLD)>+LXx>BwhJ>VaQT%eNRQ+W#AnXgml&gzz!6tzvB zNb5a!D^S&cm*GI|&#G;_wxT8(!N`*{%KVSETcRg=>)dm)8R6_r59d>V2fuA?Vua`tR?;5Nzen>wx;4Y}A1i%$*vcqkp(Y{P9@^;{+)H;}W}v=x;M zs4UL=5D}P_>0IGHlbRAxGWsR!s(NFR*;(R<%7Ck-XN@V0H8`{PGo+f{^pVYtZgd5< zy|3-tIpZiP1P`0fDmJtFClRrikS^89?;>zF{gdHbdM#5T_;+(Y@3+4=IH z?rsj+9I2IWSWrUZCNOWT&tOeH2;j8dNFJEYyYoW)xGn9^fdNO;@pYGa*UUytQw%SZ zY(G`#Pu}d}W8D0zdHQrhQ$kF!W|x|MaK?`Qyg`+F4jV>S8_F2eJh2d$8+On#S+W~D zTdCRfOr5!J)15O}^ecHL?#_&o?bqh2LprAY$F6pg+Y2IJN@!!zZ*p~76_=MUFwYzo ze6PRVGP!eA@to(Z?$o8O;nZ?l=7GR6xjJ6kZ&gnTLirgw|jfUQ@ zcZ0^NwH~+s`gd{0Y~pJAZ}%qzZ%Y>U8T3duB)_jxs(JS^%b+E}pGrSrANk~QX=zVS z&U(L*$EdVEKV_8bn)s=TTar^=yK&^h{cW=kCC`&uFm-;7Li**8UO1G+h6oUxgLqH; zN1**T;WPjRoYBL-zM4ic%PKrd8y0I3`$k(_0RbxAXPl$S{BCP19z@p4eAmk98Zz2cM2OHyYhMN_$}LlzHRx$l6TCy*pEq{3E+A%6b-f?JobM z+VP`@iLqHh&+busQjc%4SnE!Q(%jckqr@70m&fcwN>r#2Yxo?-&kFu4wlBu_h(#q& zY=;;}wQax5Cx)7(!C0)7%9<_ePD912*^jvT$A8DKr7EHc3K8($wj7nEYfV#h*goxx zG+E&Y<}}m8mbH$xp9XJy^0UTKA56v26qiV7#tXJg})D^R08@+SZK3)(qX# zWv477dK+TCqubTSSgaAe(rXS#=plAUViy&!umB%6m{lY`O zLJY8cT1mn~l!^*Pq}WA3%4@d^wIYucL8z>-NI?)p!R!PoUw8l8Gk4D1xo6JI@0>aJ zXa+Q+fV!72-~$K(074I-c?P_8B}GO6AQXZ>0{{pB%8UdUbcR}iDS83`E8&fm6eY4T zKcY2i)W8S85TqS2I#5Bdh*oeI41&eu@OV59hr<(eiFkqz0f!@!i8{KvBoYZvBvZ&F z3Od!*zC`PbtodSf2{?l8|1FwUKqG)7AO(TU0ZfAs8l-7MLx9#r3%f25o`A(+P}>$X z4~W+K!Ggw$#o-Z%pcw)r1OhM>p`w|1lsQqdvi1zbDwON70Tf-IPds<2`$m&|VllNl zyG8|+ScPMG@;sw#g=wX%Ka$QaCfZb8Io0lx79;ZQiFg04YBYXEG)WPa)-B6^ zNJ*Sqd?!}Zjek7)=D2LZ@8rGtwa;Y!wHLsHXI5H8 zD76I@KnQ|?up87^1cL*3C)k+n!Zczy`-h_V1T-oL3$Ix2`Bpw@9WzpXne(Ne+>#MG z<7O*GrY-xkm-CNRD&=JFkvTO9KM&vp_^YFcI; zoMUBcP-wcj&@a+a^S>+$;vDUY7@sDc6qMLyRGC&i6ngyZ|Ic0SHUn3-FH2p#twc{0 zl}SZkTzoa_Io=zqG7DEI7$?l-%ChX_PMI%%+U+6VE`WF9akQ9IRrTz?S$d7nz;~x# zOayZ*qbH0ajJ>shjwm34#ld*u9{>RcOLM?c^$i#S93GzT943~{vK^gbGiqvEe_G>2 z%b5!;TAMYC`@Yq?AF(a*AD%CZ(*`~Enp6kfEs`=#vSfo}G6iMy^TOQBo$ktP&Yo6- z{-$GhOPY6d|2$aMT+semJhO7X`_~t`Pi`J=N$ft0d#B4k>(<}KrN4eSMM+~VrhLYo zijphs57$H)zLJ+8bT)A{taT}MppZ1cATBxi%Yz?1ZmyuUZMt}y=-1WgmE-onwS0F% zPFP2$S2DS)7e#r!UulO1>4cU9j39*n36iGIsG%CLIS!7oaacq10I|GMHRC%8z?k8 z^|6^@oyMyAmTSYQs>jz|>UMg2-?H);eVEJj6J9=AetCk#m_aW1+2+OkNccBJB)HZi z6*SrN)(k^wc*5~&c)B-cNfwtF`Avt#h>7x%Fb=obQFzDH#=*Pr==1TlHO~^+7s~2{ zKV3RYd*FFk^@$+(%;_gS{5K;C+W_{0s!lB(f3wV8-wiN?fiN(#@qcN6sx3ZtfND0Z z#a}G>up79H6&k0*OpJ~e@gzCq^hel4p(m7khTotHJMi3hVN1qMoy|4p&#xMjL!y29 zmb^tlgP-)sl#bW42!3^e<5`i}bKCW}38oDLnfGVDzJPrdOulV6_gZ?(g>EUam|VRU z?r^}}d@;Pl^G;uT8%4F}P?1Hwcy40tzAQRSiZdflD*TmXpYkm)JshWuKG!eZitx)m z-J0LmQSN*SC0%PfKpPC&d9(uA%=hf@0@OTL9aKA!wAvDAH9$3*0XhwBR0u%3=eh&x zLgN4`gQucP*s_|9ZAV?9=boo`I*>&1oz=zqf?oG`UEf?ZwCORbEgc>`UI0@AWBqH5 zw;ASzwlD2l)PRyiR@dA69lxo+PQ7|&rZ{^G)w;!fr&P)!`EH6mF`k#2bS)eUcj;#y z7tSb*U!y2Y6a_*s|Ahh=Dk>+eh9{%51AhM(+Ra6M%g1i3|E_6h;$760m$yXqm+s9b z+)5J^2n#;eUwU=GBDY{5mk4A}+o*l}A5|GN4C@EWm`!6e+wiMV3YB&6klsw&(?xZB zQh0+0X@7OxixeV8zjfLqaylqW$~#7r6Im4&rI^;QFtHg!{w480?C9r?=Ok33nC4Uz z6Q%rP#sGs8KxOl0y(Dyh@kYf^R}IKjsW)aS8%w4>Tq;-^VDlbQu#Cyx&3hRYZ!hnM zf}TEZ=~V9%Y)Z-z?GuJ(XN1+rHbm;mz8B)-nfByv?E3({ ze;u;QSo%1macuLvaZ#(p;it5@U4Kiy3Y)a^-j4l!*4ioO4y(gsdphW8&eiX3oqQG-D`Tyv+>7ii}*|Eya)&k(r28Fv>f? zW&lHwLSalXLGXw|P#g}y6Ho$yfTAdYNG1`8N<g$~pp-g_1R}=34N;a@+uJ_AGid$?iJqHJ!U1kp zzR^Bs-|iFv)2>k1x_hmLyKXo+UB%Y1-1V(`#2u5cgF{c6&We}pCM7O8`{YC&hK)%D z5Dr4{3(zpW!3b52&Rj=hu-IIiIb7JeSwWM#4VvrRTz|f=QP~@!;cFWmci8!*I`=?S zac_OdevvpYF6jdKGF4Qxk#l7w7TN?0jleLDO!`tb2u5%KPc>#Rxy`5=jc)4V?ZZp& zRo7sxV~18Wy_?I05!ed)sOfld^H7in%^|5>Q_b-RZ&CE&7lyPF%V4L_rVSScCR>DU z2I7HqJDuc-$Er1zXTBc}3Qsy+oUNYdl;JQ#kBiZU_SlCx~ zA!h??M>uU<4lqdT6-3&B77cl0bXpPql=+upX|;@0TZ=^nVRcVzHf z_0{&WS8Mc*V|m^!hURH^O3I?8F-GwmyKr4=?F^ z=JLl|p-l2l_nSBQAri|piGi#2a9pOFU;ZyeF-+%QhgpN+y)^0mOpm=j9_9R!SsPBR z4M)I1&a-aP;z`#6OGjEC-3}-}`>g!@jR$J)8>D?(yyPH5_1I~KYV%q&_o}45HOx!z zQKY?I`CS=F_vZA|rE8UE9)>i89O^O=ZvT(vMBchROaDslN$+l~+TN_5Z=ydU6Rc?P zi7T`*!+ z$}Bu^ytSwF!7l%fx+g5XZBZsKk1T%LIHdDeVVXcn<=b@?%})JuroM9ac_?dQ)IIO_ zhKvoBjoYHfiJImo>gQ>*jZs@3PA_9vT3W6zwil45=O zFd{l%yQ?GcZ_5ovgOzU^Rb1k4CS(u9omY+3RN7;KoLYZ3U}PsExaAd*v`zT)ihu{X z?>nX_X`$*)Ii-0sZk=xXE}e@Q6rbp%Q>4BA?^mCbgDn`Gxd{jmjB?lz{7Rr|q#J-m zj@POI__v`2d)|Z*brsfoFiiex+CqTJXre1>#S@7udd6AoxjHF2n=;E>x;yb-=8Z*3 zFEEwVq9<4E5Drsn=*iR75g9_S(-Yks7BSei`S~8(7nL;jcda?Ol-TyewPOWXE*&a1 zG9Vbga3}zxGJvr)ohuMyX}oz8HFK#HjZK+ax02}l-QKHBY6NkSpe=PE#>y)7_qxT@ z!aD!fn!ek89V7>6MW;{L;#Jxjn&Vpa2|b=NrxrNtw;whYToX>a;vQA+d-Id%h8B=n zNPC#dhq!unH4S*G;Wi~}k=d;RX9aqSViMyZ+``EI%#(30h2>qt6Vo|fq6L;v4r&YEd3dEN7hy&U`)c$QpMq3>1f z^V|&{s`op0>a$b9y#`jCh#UWG2*(+L>{c^2n;9jpsdH+`e(fS83>H@cRA_&wJ&eHo zCS}806yjkpvm>?}7$1Mu#NK=yI_uJsV36rM zlb9zNwA?IVy3+;yjw8|kBwUPd%EZ5R)QSu>znjY*hqBL9JsAi#iAbwV{K#w14S2*q Px#3d77TwAF^0xm1W>7bc diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/txt.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/txt.jpg deleted file mode 100644 index 333a8d9b48d9f903de7c59d45ead56003c9b8c52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1817 zcmb7Edo)yA7~f~k%$zgExHHozX-vjjk)c9V2EACR8IP{e!$>8ohf&C-#-peVv0~Bn zyqEDvk)@`Gii(iNqi!YD(3^B4j~lw?o-yk7S9jgt-e;e0f8V$F`u6wz_EtPrbOWmE zDwkCNf&hT91{6JjyD}nZI{*Pf1yDi|z+)0-1=`pL04^W*O%s_9f0KQcMnxBJ z1~>>(b{y6*zyw$cA|4MD5F&ygL?RJE$s`0-Ly1HZg``F%tE;OcB#H(_T>}%z%1xAO z;i0mef_%*yyqJ#AGy z0qQUWa8#IzC82d-T5Zr_v@epNeAoo}|H8vuCc z`S6{Iq2kVA+YR=gn|O^Tx!%WW0U)*u{%mJGb3s{}?_}P26^+=gv($1=jONFVyPv}* z4p=aTQ~==!co@K#VhTh80w5S~gG04ARK_eimxo1%VlhJm++<1DqIG`hcbvUn7L>yU^vs|%j1_4voHzcV$x7}Kdi56(Z&J7`S-9&&&Vc8cJ?qv- zZoM!rS0N`kptxX0|$&>DhE5PEEut16d_G#3Btj6K%^1qGuZn%i#r&4 zmR63bY3WpJe#oizmxuwE=P!tf{cSpRL(^E_NhkAwin{s z_YLbzz7zRKQ;uOO=j1C}-fe0x)Oq)bQ^O96r~^%M9bxz#4p$&}n76|si2PH|lZ>vy z>??kKW!yuldotblY9yh|X6OcI^-a-qv^>-EfMGkPS0{@Tc>xN$CB$`sCat6UTu z<#{>6O~!hX`89I#lEeO1Ug3x)!&da*4Xq?)t*~i()2@5>+Kt#C*m1bU=YId|5A0}T z`mkt~e!8Xn+}yC;eytPYelxpj^UxPdBJ#@$N?jBCJ3AMYZ_E8e?@8r_B)E@yE=Y>3 z-jX~X(${{-zPGOV)Fr3PdMY&Q0#E?zg#wP*{L6l!tecY}otV#uv7+l!F-pTq=6_`e zL<4L-$I@|t>OZK<7M3{=QEF+N~%Qm`o-I#Gcus{ zK4Vz>6;3_fA6hIAEHGsmAJHSRhYn3l%xB=xWvus=vb^Yw#H3L!^L6$?L4ENvh6uHo zIbWqF^}MMNEnSHZN6cCRmeY5i#zoOj4usZ+&A$J!>VfD?+nOe?-*xkw1s^Mx9o;|C zf1O`w$n=qnaP{)Kg+u4xrINYxyeZ;^lg&~q@zcz#ip#}M+b7!!4NoQI7M3#W%$OnK zxDf^T`pisSc8t<0sB^GC-at<|W7aB1DiC2Bz{OtLAKxD8f8Cxb2LmkAI0#nedKwUo z4LFv3s{eqlV@MsB*ZwWl)W6FJ$#1vkpir98>NXReq+G2^v)1LarLb3Y#0jS_2#TdH zDEDGI>84QLrblD_bzEk=@vB-|%$L(~-dP>jjyulg9`UGXjpz9^Rt{*Vx%##`+~Ng4 zTwo$5qm`+&O^$Jr8q@2S++>pIq1J&1+UMPeP$MB1*41hmb%?uI=djFT^Vz{Zt;HJM zxP_R*oQ-3_>^h_Hefl+9V@KHWkEB~1Zg~fX8QC}`uzU8yo<0+a&wp0Ga;)mHBZpNR qRA5EuccSOx)v`7x@`_96pQJ!5(R8CR>CNlQE)DOrFPpScbp8Xu{&q+J diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wav.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wav.jpg deleted file mode 100644 index 3105040045de41ed43a20da73e85dae8f4930afa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1705 zcmb7EeKeF=7{BlP&b%{YX6l_8M@nWHh0vN|WQh=qSY@=LNWM-R`Ph-KtT2^Q$yp~W zIxD91rNxrfE)gwTYqKJuVo540(y%_Jn7yMlyZh(<-us^OocrA8KELPdDtZ(HfN*o( zb(rg{nryaT=4RMyE3v3<{08gvnR}MY{45r7gB# zOQutCD*b;$aSO1hzz-y02oInv1Y;qJCZGia!2qU=W)YAK^g~lBVIojWnGF?46qJl( zRK+8}fJP{R5ik{P=ep!Nsv}B)V;EV>)i~L@<9vDEz_{5~jaMd~ZTH~OsPTFWn`a?~ zu^L}ZpVrIb#7lDn0s5wRt?QZo3;tK-^Ys_6JtGg#cCGGY>!*FVlLD#e5CFl*O0J8* zQ8ER=NL0Qh@C<}}sE{W@M&H|{n4Lmj&xL$Zx7$9Wx52oJKKU>>+&@L8XI8bz_xbq} zb;A*|JgOxL_5R#2Cu_ucm%wo6cufO|F{rt#@~or-r&k69`6KzuqDQ-3^;^&RPhE}mPS*_Fbv&dAGFim}u)8pnvX~rzpco0T z*aEVSI^Rra?;u_v0lUx+nThYcO|P7gwp7;~HZ&0bBv|PxJ$b`Ap zYF-Hu8L&Q@wxTwpZo9S?ySm}1|COaj)Aj5e??Qj3%4(n}P9rZm{NRtw=IHVTA_>lO z@Cp*g9;_tP%~Zv~?a+BHmn;7*vc9bH$U7vdTHDCac(AN4Y&F7LzHX^r!UnB~^?h%J zorWwgd5iFbk$0*4&(=;Y!L_SG+rR5uvVTQBk~H6Ui=CL&TBbcVbB0?WRAXjzF)j6o zZXIE6SN&Xid6oOyJcdia3vH|D7HM0yk@2WS@{?shK6vVQ|5CX3vCO*;oAWN!M_=}& zYGA{~)lq&yVANgK;iIup7$v!pcrPw<8_(hO4q5h{j{9jQ!R%=Rg8`dXTT}LS@rwuf zE`NRm!(UCnRzu0ke*7B<3&6k~g2bY1Dd8E|I4)W2NITsbYbnW{IRArH+Uth1YqvFX z?)1F;MOK0?BR zc%WV19im8memYNgB1OzvIBW<{8ZgAwmkyE-)$ErHrU-%clTxEVBZu1)7 zZ{+1wsgTFQq%KSj9M*q>=;13LvWsvJaVuWbzyNhw%3;DVRe1rz(gmU*9f1SiUM!KS zI+~b@9tw?j$}0RgWKYCrmaUcrlOW)dVKx9Q9B{>?c>0`{x3qSaS?nvlA)2&RXKt~iL=G!|+8dc3pOm+-YZ4Pabjy(y9 zF`eC{o>pL8XpZVfGfO9YCNIy}H(uHh{CHwzQ}coJgD!iIZ}Uo<9)b>d%8HRtr<&E?em|7bcyvmWJ`{qoGh>#W@ z!Al@5C*?^4+MRBe7A6mu+h#j)c>1iq4dX4z$9|n_)6^mRAvFo1wljNoroW^-Hqb~r z&Da-^u;u&agU^GtBsFSYHXNX7%P_Rg?+qA;x$WXE7#t0WJRx>&yk>k0nG!{(dlXb4 Uow?uoTsP8Rilp7+wksa~1symlBme*a diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/webm.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/webm.jpg deleted file mode 100644 index 2c57cb7f81d144230b75ffebab18ce2073eb5ae1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1603 zcmb7EeK=HE7(e&kx$|L0?#!^2Rn3gXSJ`GV#4Z^sm3Edaff+=ePoH9ue zG8P+&#hG*}o%z4bSP$5A5CS%1hyb8$1Y;w{OTY>y0)feFMvcy((hwAee@ z{hWv9{J1Jzd(2sTVr$x$D!^T%XtDe!G)yC#;t+MqW3sNfzOU&ftMETiPsl?^0EDa= zKK30d1*ZX&j)>-91eeX3WQO z3_(1Rft{-0%KL|tQj#)7Xh};@K<+_};VX;Ax?WanvByTEeI<}$o`MO*CEOH)H z2J8=&4=Q7wthSe$KaAG<#;P@rp@DHW%MdTY=KA`rn&p`HEn}o|5 z%ER&EZZ4iNvrF@Y$BSD{$=}kwT>_qGUj_X_>(flNVaocpvo6KOT?@Mfngb1`8{av% z{k?xxyk2U1J>&M$@}q0FsXuE8c#%47qy3O_UunkG76>twgg}u|l|f_(!4ne@ zLXkM8Qeq&>d$T@JZ}Xz%2*ro7SNEz!Hgbny!A~B&zEccg( z=M?Ea)tVUc->rY+>n(6MZS)8_-zqs!u*nEi&$H@*-@#qax}*`-iUt*1a6Li_OiE8# zo!gWj6_}RO-&>+x4GS^2m5AWJ+Ly!A4 zfsb89Msu|IuPS}uOG}Rdj?6IqYw@ch9mU0VWv=qqtvbtmN44@^(WIFdRwS>;K#KQt b${5j_+^aff+=ePoH9ue zG8P+&#hG*}o%z4bSP$5A5CS%1hyb8$1Y;w{OTY>y0)feFMvcy((hwAee@ z{hWv9{J1Jzd(2sTVr$x$D!^T%XtDe!G)yC#;t+MqW3sNfzOU&ftMETiPsl?^0EDa= zKK30d1*ZX&j)>-91eeX3WQO z3_(1Rft{-0%KL|tQj#)7Xh};@K<+_};VX;Ax?WanvByTEeI<}$o`MO*CEOH)H z2J8=&4=Q7wthSe$KaAG<#;P@rp@DHW%MdTY=KA`rn&p`HEn}o|5 z%ER&EZZ4iNvrF@Y$BSD{$=}kwT>_qGUj_X_>(flNVaocpvo6KOT?@Mfngb1`8{av% z{k?xxyk2U1J>&M$@}q0FsXuE8c#%47qy3O_UunkG76>twgg}u|l|f_(!4ne@ zLXkM8Qeq&>d$T@JZ}Xz%2*ro7SNEz!Hgbny!A~B&zEccg( z=M?Ea)tVUc->rY+>n(6MZS)8_-zqs!u*nEi&$H@*-@#qax}*`-iUt*1a6Li_OiE8# zo!gWj6_}RO-&>+x4GS^2m5AWJ+Ly!A4 zfsb89Msu|IuPS}uOG}Rdj?6IqYw@ch9mU0VWv=qqtvbtmN44@^(WIFdRwS>;K#KQt b${5j_+^P6q!N}pBC>R7Nx?5?L@ z+;bgk;1z6kdpe@rJPk`Z0Bo^Zx@uTv7TULGNS$BU@f+PHy7k>|x(Ee@1W+)Lj}L;z zz*rnWF_`Q?gaeOILKxJWj>vp&gYK`}d(B23nRr%si5@Xy^?9*-8xEp=@odQq?eHJ^ z_xvrh2``-oRYBprEi_Z|q4q52j=|7Gqr$dgt<0|Sd#;@c;X`_n_sk*U>3HTWM(T2X zDBmYU+cLr=$mw5O+Y@UMAX74cU=#|E!F&LMP%s*hnPQBZ9@WC0pRLNUWI1rWzLEa1 z&WD884tkZ*VN#!_9#`8`F=RL09Xs$$Oz=HIi7|qm2p0!sz%q!~VqkkWSYzwm`ZI17 z^(l`kw~5YvCvtjC-2U?1yjEDj_vN)0=VrS@>NZE*?iuA?<6SH_G_yFCoi3T<{MDqn zQnqK&jW*MT5LzIFXn?|@R6Zso113gQjcPB>*3&m+SXiR8n#O{5mF*qIS@t zvr*bZVST24%A4p5{!JDI{z_W~rMojI4;=jlX4-U1cJ2{az1$b~7E5#YplPl&s=R27 za1M8J9&F1!&S6_M&sn!-7H$hZnfUth7edOsqHgJ{!tQ(%kD5znmv*@9SkSjH6y;f< zDW|{jpwYr-b7Jn4yA%SzUO0?^Ta)CWg|I|4?mf9Yv=}nLs;X1%g(Q6j)56k$FHXuX zR^#+f8nV3tqofP(lK^XnT9f*95{pi>|1|8Jsc|JsJ$HNT@N(j^C#{O?mXsZ{^V8$i zOKXC(ss2s8AB(1fey5I|yA)dya+o>ZdWvzf?ELguj|k}#$rfXQ2Tu`S26bp-7?tw*p49`-P%0WnOjfXzN;EP`z-}E zOyum}X>?~qV0~Ezep0hEjS_i{`fg!`?ISfcM^Hp_tvL>o{l&&TUZ;R}$C^Q;lQ}D< zL&wEQP;KS5uqgrS_hq`Tz?FJM8#4Q>I^6oo__ZV+rLgN<-p=PUDnXd55lz@oH&b_0@yvaX);+JaM!kka#zT)u)IaAa! zoSlaxt2>w?B1BO`emVQL&*Agvz)sfQ>D0XkU1$9cn<5#r-oDnG3ev&;N7Rvyh8i$p zAd4{mg9QnS9(g?|A2q~xLE-BO85}Wdqtr=nJ*G^eV9Y@A?2shPhvWELQQgA}wnn!u ze^uunQabo>Q7d7aRNp~c_(ybd_*_}mc?qpN4muMzen9hhP0vt+?~`(6`sa|=;`O6B z>5(h?CwmL}+7BM3zmb;+b)5o6|I?NsG9OUw^_UzXgC(BaC}q;h(GtUnlC)C45FPW~ zca3d)SH&?ZH;pGsw^gVQg=&W6i8{r3E^YbAufI+&a#anpO|`AoHfUUS#Cgt}KFnk# zFWio2<%QS8W105_#wV^SMOZyf6&BgUQ*sP>h9JKr=$|G?22`d!iNjzA@`c&&YZ9^} zt?oZGm#Aaxoz%BWhtK7!Ox|ceqVYA&0@xBz>9td}q?(O+hx_;5>Ilsyx6R4;%p@-3QyryB<=n3_NG9mhj_!1qX5x;=bgYQf^n>8% Qh_WojDi*yt(O)+5Up1)X1^@s6 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xls.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xls.jpg deleted file mode 100644 index dc2ab5e707ad71e44b3c6f0431adf9c8f8b60340..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2950 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 X&Rk^yzBVzO6{qDjSU|r}I;;0T4^qYM diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xlsx.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xlsx.jpg deleted file mode 100644 index c8ac78f05a0612b9bbf62679832afc32d6b2558b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3025 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xml.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xml.jpg deleted file mode 100644 index aa8c443808ab7c3b601ab5dc4e986d999173a899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1773 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ac3.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ac3.jpg deleted file mode 100644 index c89b43caa307141c95031e0fc4ca19fc841cf174..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3464 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 OgIafnj{65u%l`m5h4jS$ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/adp.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/adp.jpg deleted file mode 100644 index b07e8114f0eb27a5435c9fcae96667bd1f400ead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4332 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 OgIafnj{65u%l`m5h4jS$ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ai.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ai.jpg deleted file mode 100644 index 719a029f816fcf04b33ed4545e8d82c3cd435d98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3510 zcmb7G30PBC7CtZUC4?;oWD{H-phzuhKnHPUUxI=$f(3C4;Q^6ALJ|-asiLEPwN#cu z)wULpc3Pdb=(O%Ah$HH_)X%L9j-yr`?11A|N9&R~Hwgj!{PdffFZca9=fCIv=iKGR z__OgEh~s0VF+foi#Nh{wH*EGwBO@2eXy_xESN^2_Kiw*@MmJpm}#!&>Pn{kSXlO&Hs4$&%7W-Brf7b6Zx z?_FB;b=duHAE1*AL6cpoaAuCqX2l$nYx%{GoLqQS$5KUh~3bhp)yF5 zEcRu2>4`HD<5*sOj%GTELpaBk`bexL_#nQT%}L1`qaGSExTt8v0f>iY7sOfO)A9Pk z*~D&&vn)F@5i!Q0b&D18GQ^&U*XuNLG8by5>p68SnG567$Fv5SMFZWLr%ohuVZMxr z)0=X{m~^KhI|=tG8OsD4bV-)6%-l>>jMTy})~Zc=5w$T5x&k@ThVhx76uRhG#2ANp zz~v>Ax*_I!WGJFYZO0&<26HF{aG-&7?3IuQFMtI(#6ko!Ca6G-77o1}T2z!H zNFcX1gLYXjT8WV-q ziOgiH0$CrOEM&nQRBDcs4+S_g(J==i$~_DGtz+0y-9nY}?8bYjrZ-DXuOH)BGe*st zz7+sHR-h-l(S7UGR(#OI>R~T3d*_{ZXe)-9Z>ul=Ccl$^5&L%jmEQ6E4*nJVv_m+q zfZC)e7gecDE1|dYM)%911(^m=V1FHX8r0gOwBL$m=9PQ)dPpU>b%~D?p){b^D!DA_ zmRyw7Ng5>o?l(to#C}zxtLPu;CVC&epFRaF-AuR8hv{SV_w)g4%-65IIf`}dP5BZV z$(F1_&wPDr&4F4JA@UOWilRirL?c8qtSnaKE(#RIiAJKw%erprUVpz_RFI0b>Z$7M z=OQOS1<9yH1xt{t!>W=B=fP5p+V`ATlrlq^Kt}q?t_>l3xkrT{S`Z}&2UajjFi{XF zh$pz`;N8M_Zn}TAr1$td_RoG(t6YKqT-;qf9-IN7Dj^#%9Ck zGXkNFP)NSEc8>P8whneeq5S}R2S*V$TYIt70Fe{HBnTOfqXY~i5ZMZC3FH53#v|Y) zgfv)2Q$E0RqG%_|coe+IzZu$;Es;wa#S_@j3?H2?2K9R+_w2 zs>jzK_^hwT_XYP+nBc_0!5^Ke)Gv}Q0*9T)>3uIWISWFT#6O+yacxm$GYnEz6m~~u zPb%45|9e|W>t{s?Va_Q)2k0=?@J1Tv^$}yqD4HSbWNr+f7Vv?`eo%W zQNva&em{Lm+Q{n39q+1BYSz9l&EJs|RQc7XK@OMB+TAa{QuTS-ox>z~r&p7gnWm*F zDwK+R1A*5=7>6Zd7_6pkPZ|`Db^^xPn?KM;5*V&nC3bNQipbyPD_c}r*K+RqJxgAK zP~MZ&L9x!|mqXTG6DDS+CRdL(Y~8&lJWCq<UoYJ)|KXGBwr-D) zE4L*zdmI_i7B{W2Rk7y2c2fK8Tz9+Wr@yUf{c^;GRL*Ns*;Vi7v3n{vCC-=2^TmxC z;TD$mtGzw&i|!i>Klwh@fBoum$JFPgF4Yw&4N{+#USa&x11`l+3EJRM5>VZ;sklu0 z@)u$8p{Dc=Y~`rIx4t~{SeRVEKT~(~SZ7z2Uuk96Mf(fxMPr=b*>>@7H=5EGUNHg| z$xn>SMAHmzUP}=uC-4pwhp&>%Qq-|wviypcb3Mx$>iyj9h2QR{xxZ=B7C+kj^wDvnt<4pZi&Ebs?p;tIrO)zvI!c+UKFD)U^Fg z2L_jyG}=MZ$^hLQQj55my@q|O1pn62&FCaGc+*Z2zilU(2)?xRLzY7r$Fy; zg;+8xe-$g+*1aS!h%lL{cPtr-7lx}NJYu*AqUqR+CAeh+BVx98Itgy zX9s-8rR#1h>|L6wud(96_TDQR>R0VwQxeCP?H;pWd}-Ilv}E^nzm8RId=xu%)#jad zGehUB-QK#)?Z6RNdYgN-cK+aj{HI%N*8I>O{^L9<=(`X1PhXKZu%!7^$Dwh-cMlue F{|7YpOWptg diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/aiff.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/aiff.jpg deleted file mode 100644 index 290afdda99af54920991f9e5bad084d85ba646e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3468 zcmb7G3s4j17CxKZ4T(TZEFyy70-}gugII*Bg%BQsf-yjSV380O5(y+G0fhQ~j5^LJ z>NumlZB^8&Rg3k}tF4aW+pE3S_X96psP^I$r&fEtsJZ7)LIRGX(?7HSetXV$&VSDN z&;A?Rb=$u|nvt5G3KT`bDExt~#bbZEQaMGX9-EpzCIuA$9$PgglR>}%l$Be}>a-+o z!o*3O#|;obZ}0?v@YHB6CWT5h25=BAxpy7UuL61kxD@qveOLAyPo71*MGHWQP;M-; zXv+{!2Vf0ali3O&yo2(%Dys>xM<2vKW(*LqoZu1%PA0g}fhX8GIcg1S;RAA2b5rngsr8Ijq z-or`mI`b&C6R+25QnC^EL-}cwHHpakBYs#>nyWw@0U+p6Y);K}@C74kbUEV@`=Y!^ zZ%xl}%4^CCv&JGuTR~l^aWwHmIH$E1CDsx`5I5=gbh5`74-G|path)|#6h}>QBMDK zhNUu_$nAb=bjmEm=!Z5>)nup;`y*a#Hmb>57&BeR8`8*H=$}4mvZ|ah(5>Z$EV35n z%Sd>OJxBCOw_0^M*r&vniM5(@oVLuQVts15lRv{`u=gUy#%wZIs7Y+-pZP^&PDw+I zewg3+@?26k#H?SDCYjWBFyc?(Q%VCo7@-hnEtJD6;6M#&kc4*=m{C&?ChD0@3kW#>3-+>8>tbt|#PRo>2VtZ>iCF*3avITM4|aApiMl8IyDfnySwMCKDF z8Kv>ea90GXPH}Qj0{1Xdho5Osfh&_ZK82)O|B7&z4L8p`MXx=-{0T}YX$t-o7CD#0(xdY%RIBHdE? zHTfg?75N7FCi#OdYq&jjsS>@4-bWvz570l-=YXS+&<*rq`XpUX|K#%d_Puv_aqYc5 zUm_#fl3nOnuXC+=Fi4Ul0g_NjvZSvhOftsB;v~H!(UMV;0jLRZ?VG`^?~;oiCSt8R zs`~b|$Qz)CT#Q5yRme4CRY`@*p&Gq*eovf{GC@ox%(0Gs&qBB4DW=cu?cVfW$`m18c_s z8B~A^tEq4&M*y%$4~&yT&U`Y+S&P=ryI{S*#i&_NyKo+%+8RL#0x~H3ED+GNkfCvS zuq-1Kd5A>h5_j|V6pOvOiA0{=J-xgoIK-Y(S$BzyVB&-l$QDRxDHh>;K^Luu zaa*#kZQbrCGfzoV#W!+?a?0Iom+P$%d)~t)kpHyEboYzu8eM z|IwIwp|70kpZMSJHt=id7yN~`;USrYx(6S~7KkH`_Ut#cruEMqa~9@IRUNS?=2u(4 z-EymUD6ba}DJswl7j6z-5F4jyxZyixnepLllDq89+*S4fXo^aplK`I+2^9$y~g|Ni*5`-VTpw$9$X&GZp9=!b(T z)~4oJTjQ_xyz}A5KNjuty7TPL?rX_eRTp}NH5n9(Uv7SMz0b;BFFsW4QE;LiEfID3 zyAFp{w-q)Y%?k{9c6QD;du5v4UV8`D4cOxybXjA3)pY#pmVrZu^@?iH2Q7_Wq&(7k z=0(}xwr$MZc}9P)?U`|v=2lR^!`%ngJ@C|j z`^^89ph^O?UoXG>XM+2dn5k*$wdT33H_aq@tK`F(X| zCwfl(yuaaoTYCb=Xzz3TL4d8^dHC!~#7CxK4)$-HiD=|_y`v>a&q&|bGj>7(Eurb!D{Yz2>Sf{K+Y9Ce6HTH&X1L551u?_ zS#Swgr1(B?$xjQy3eF9`q<{R`>Z&spEf2+&6YAT2qiPpkOpS}0wfV%Z+b7DtTi*W* zOS5YJn7u1%Rl!eFf-d@R0&(xpzPYk*b<)yjs<>_TJHQG zxId4w>ejscwGY^8D6YTTaDD4?!@%}0zrDYQ&Cfi3_McbOJI~#nIOEkPtmUXD0C zw~u{sA8glv42+YgDb^UZYL3)GVbteqbsC$)-o3@$hxsO0q_beowibxJhp8}QCO$(+ z?ghpqr32TgRq+{!hok+1!5l;EBN0Ec6wa0*4g;VE<{J}c+xhg=vVzRHh<(wXr!~tn z9rm)~+_YJUaV%Y5sGmvV5Y7d)DHdx9!w}yr(8$ReqaFtGG;#5W!x0A-Sdtv^nPgK* z2C>`XloiCLA;vh2@jX?t0&xK1RYtv%%!QhndW|lT%!Topa|W}*p@F$qtV<(vVZN+L zW3uIlF`0Yjf=t|}WGp+;Y|M0wWwY|N333O2xj|>!i>Qs=Wwa=XHjK|+Q5oYC5n~*- zTT?un)D1DuKTj1$YC8t;beKb_Km&Tn#a<1?&;uMOArWHmX#gX7@<9tav}n+)L5r61 zghI5vo~N*J>|=Tvi*2LtkpAur?mIYo){m9450&X9-wvW};&b#8d@XLS19H4~&bn>gM%NP)%=^`d&ZAab=8} z^?fST!NK%z9gWd0o7FyldFE@!EUG^KS6k@zVw} zTmhX;Q4y-r+E&8k;zjh!p$VC0P+@-yd3x09RN8Mv^NXtjdOf5Pn##0iY4AaKuT}c3 z^s)4sbcb}8^kKg_dL#C$5>vx8GJj(}V?Jjt0mqzVnwY;c=a_@caaYXOuf08rYwd0M z5*x{utb%jCzO~kXP81^=A_@`3iGoBUL@6#7C-M_TijqX5&@;rfZn|E7zg)C1A8X~T z>g(qsCqN6cQHd5xk!!@Nk_s2YGK|{yoH&%Sfovoze`VKBB751Xf*;S1lBYTyME{kTCwgW<3QG z0W5$rh8hO6gkmI=^$ZNfL@+SP#@Pfyz8gjJ81(v(zdHS!^`GE@bXv@au?Ur1Kkubd zYRHDo7emU!&aN9WmXynPd|2nM{jjR-{EZco?t_o%gC_xmP2=t>vj6>Ya*w=xT|#>9 z1Y9gzBZ`KLfnsPrO%}=Ccnsf-W`Pn*q*2~}GDQw*5TG)ONB>&4>3PkXPX_&V(%yO+wd{?wYz{j%cEKKb6azmMKWN+5Z)1Pa^q3`Ip#v2P&I zPQp}@5XCSeFJ~l*W>^XEA_oRb`C@M$PL{4(VzM0mYs;WvA>+os6BDb*$yHa^G_^Vs zXK~_+@J;%pv2n^1 zmktcNkf3h3)mB|{Wa^=+&7MP>E57V#NxeVfSl zbw7VK>a4COjE$DJ9B-#$oD4yW_8fkIdS)NUdOsK3U^PtG5OzjOG-&}D~s1$Bj4lGD4+{Q4WL=O{6*EW^+|ax!g= zl0a~zG`&K#L@cY`@kEi+a_c|NEf5|2Qh91`*r$rXf}@6!dlo*PUH0FKXRQks4U4?< zKq!5FC6t;=CFXsTv_#o>>x+>2|JXL^+@g#_?q}l;*PaY2-8raxt7Y45KTDGE!H(w2 zi$$&N+@!Ean)xO5UQ78eCcLLBX&tz&zPxd@()ZJc;So8(^0M1OS2j+lnbXXj-B~_hP0LYP*TcdCO&go4>hpYOgi8mX$=`i`=k(GFuZ8Qg z|M+g|;edLP!nC%zGBt4T#mufME#s5bB-~!HcHQ*7jlVM}?`&DN+y6Vs3>npE`7&yB w_9IDsi`jd_Nj7Dy?8#`jEzpjLy6V4b=c)Y9e$@ZGR=KbHi<_eY?^xUZ2Vz_^u>b%7 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/bmp.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/bmp.jpg deleted file mode 100644 index 6559809288678036c0c7cc216199e4cdbd6fc083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3881 zcmb7G3s@6Z7Cw`iJP?Qh5k!0h5JZbKXp7RSJcGOmk%tJVfdmqX2_^vn#Z~L0R@x#` zZM$m~WL^CVSg2T9!HRA1fe%oTB8W@X7OSfjRJNs(JrhEJetzw@cfQ>D=iL9C`=4{~ z+=>2s{l9@18Wa))1VKPBUZDShT^kY*uu>$B3JM7q;s5~qh$J&p$>0O5QRy_|CI0+n z3CsEHc3^-#n8Rc+m!xVl{Y0X0z(#ZF``GsU24EzBYja*cK9>E5Cv&Mxn+ia1(5{wh zQ`aEQ0bnXqGc`H@)?KtOSf|TG%$|bSMuP$o3uv4^gac`uGK7~II5FY?_RH#&E@CRl952U8`&rHE&s{amKbpSHUqewdXJ>xXzY0K+;>6BIkdXDrN<$HXJH zMY~j?3yCq>^HeF3QHar(QJSF+qvOz=bE(<@tR*-h?vl$w=ru+?BuHg}Ld5Qfr^&N| zjq%A)ZT3>yZitg74~RsJaY)T-NvH_%WW;Z4)M9!r)J&GjluPKjFh1FssS_DBkUc78 zBs~}AOL1jdLyj1e?9s_%aG%n?l$TBuWAvq#rzwI$jQkCmO2b}6ZB&^iOH6CS_*An* zBV2+Q<50aaRV-aM#LP)jNg!QY55$Whj*x&1)R2OGDyZNE@Ieeqz#s3Kpuv$eP=FFG zG8~nmML}3X2HIZE6B#%|J|m2DgLe<@jkCO*Gc?0}BS%fyQ37fn{@$d*sYTQR${YBU z59LcOrUKFGO}%MSAR48U59x3pl@7&O3t2cbts@Tn3nyo}nSA(LG%FRUSKj{x)r@4R z9vR0tri@XudUORqixn8oZqDdBo!wA3$uz=mrD~I|S)APfQGZom=3QnFvlaVxX6J}M zvxC`*S3CIO3MdVV)}ShdVI{OC-kdQxG$2z4670K?r$(*AO2@2dnyPT}$Ov5t*^bEP zk+8*m#42bL{729#C=rwi9*mh|B;uGVk$cD*vYz~s{EEB?eDXBeKz>a&lE=uCrkF2Z z`=KbNwKwET+vsfRRT!RcbggBe^gd{(%#vqTZy`5 zI#~{WI{*UInYkK8x?IPfD-g`*`{Acd#t%`Ydbsl?N+sVgq~&X5TA3zWCiMXNJ4pKh z^ob4MH^TPHh)ov(u;>w|)CQdv6Q0tYNrO6(OhacWc0NS*9 za}Cdgg+HE6U3z^Vo>%N5fET;<`hilt{>34T-wAM9sqcnO!W=~!Ktu$6>H`Ougf$-2 z_%Wch5tD&wzyP6yg9(cXHzS7uutNcqkwc&PbfeE&^fulZ2N@5W@a&t!!aLkZehvAW@gT_8qc+&F&%_aKmhVPmL=Ag(62BKlsx z`QEdZN9w!et|jAh>Q=nUt1CXWw9{i*%et+}jTUvuPu;a;O;b;_OU3qk>@KX|*2KBX z-yBm}?KH#hjY)|q-+o%KxXU*!eC4c1cCY-#Ejs1AWc7@x5noi?-WmPzM`SoV=(eo4 z^3F8XqB9pi-0iBKnD|}Xli0dBT}Rsm_oAF0s5__cq>E~0%EOqB$ehUgBT!aMYfl?TfmgJ44{w6=T=806aaDB-AJzMdR!NGCMPm6d23Z}J z=9epCf(u+~&j|M3;hae?rny)+dvv)~l z;lifxUpw#Tk(m1T77)hk zBFJMz`Gx$1t`*nL7k_r3;j6!$IUzjoL-eCv0UM7cGY_1y@^d?_NJ?b;8zL zYZ#jXRI|*)E!StHN4-*g<#1n^ji-zI<9l@}iKb}Cc`xpM&&7xIRE!|Iscc_o! zfJNKZMzg%D7OubTeC=9<`&-AS?w~HRUVrxZG_k4jo;&<^{nD!WMUK`pF9k7&E;8Wv z&VN~zPW*}I{Q0{2;M~fcS@HP`f;z4x_CFL|TDCZ1V0K1R_l4YPKC^Gi!Vb-JxW1xE z`s&@T&2iS*?`_}lytM7`=}C(6f#k@J_W{hPeT6nZn0&_&t8WX*_rN*!{`grZ+$DuQtDdKo^{W=K%$#%@0|T`4@48b zcaL;^d}lCu{paWV-<7PAo_*IwUR+f=ZeH!S>~1OHOWaDoxK7Sq^<~b9?GH}3)^87+ z$K1y(*;<$IcZvCQ|HWbZRy^#@zfxVCcWGL&JAx5;dA@?Tf4Sy*ymBleC%=Zr_9_arNg6N;TGk}a)_&mynp=B zr_|mxpKZTX^!icH{5wZZZ{Oa%x}uP*=Jo4@{XdFb8@xVT-aXjA!nUL!s=2zDS^C_i zSPFG+CvBoXSofim{3&P3mruF2a9w`cMO5d_miq?Dt$h95FGn>T+7kV(@z>yXr}wtL F{eMZB{8#`0 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/css.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/css.jpg deleted file mode 100644 index 0246bfd02fb634c2b0234b9b911443da8f53d57e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3450 zcmb7G3sh6-5uW?V4G3HlU%2Rj04hQi6I6tXD1{PP|Yk74nN@$kFKqtHCzB!|cR-8(gk0#+t3-jibA%V16<_ zCz9Ipj0tKx-lx^X&PO~B^%slG(L_H1@uT8`j3~rG0Q9gNV_b%fPe+vJr7uK03ia7K zb7Hz(UtXA%Iu9}W(sc!fWD?QaizMUr|k~PMB7|0f4Vi8Y5?44JfV2{rv znM&ppy){mGo-!3N#$k;4nj{rsFT^!QgPP2RIWu*FKAy~l@tH4+%qn{h%!5LGDwzxG zWqHA5tr24~56pS#xKD{M8)`PD+kM&099>+ZonKL;x9&yEjjcBpt4VGcpS_|n#>OMY zIP6oQFoX0Bv1oL*CWiDj7;z*lpfn(W0kUw^LLu~l4Ac-0(fBL^BU*Am2YS>9XcbVS zqdcGhb#LaWtQ?!q03+Ax{eXDmEN|x6X6Uwa46G+BXQ$$KCY!>}V#C;Qkg>DbIcy{w zgW7O*rXvHDQ=T%&g>KB$7H0(%BuF1hA@p#tW;tG}Xqq6ebuIJS#A2mD31M4k9) zhbUYDy)~odn3c}D5+(<4@}L^dA=3;R9Pc8}fVuW(I%q|63b%U=SV$*?4XH0up=#2A zR(@07Bfl=MmDkH34w_>i;-D@uKW9!be`K1N)67>OW15+B%;(IP%&RXu-X)l~9`hE=LMgsG0F;KJ zGNUdx&nyd(%V)@<@Kq+r5(~A#lVlpbUS>6!WJbXx7)ylgU?A^7;s@|dZGFE{qb?8V z%yR)|{S)u3D+9XBVt`Lg0G`tZbQAGT9Jv>uF;rV@EV0GI7jG+oDQ9Yk^*7}njd#;+ zi{%;KSK^%jeLF0cS9KOk-+qkW3DB&!+=Vr_4=y00hT%nxF9VVrT^I9VCndTd-@5vz2PT z^u4>=v|Zh(rM7<9^|`c3xv{YJ;i_>hNOL!i`gYH=x{rP$*0k~cZaz3m07eoqw1_N( zO(>cXalp#OQPL43J$)4+p{iv#u?wa{iRj+YfB$Lj@7nSU+8Q=I|LdtAt*sPCXuAU@ z?&l8Xt;tt5Fc$stWz=+HJehtg+TWcrb~dLS(;;qI@Q67q{BcV8Sd*RkK#sz zoEzz{N?WE`VKi6O9Xo#hs=X?1HvQZ`a@vX2d{&TFuK)F_>ax?DFC5>m+*!8vr1$tV z&%nlY9`_zS>igPH)0XHFQBRj$xmL5{>L}0j)4qv;;ah611|Ry3!6&Na>WQk4Tux1W z*|<42|5r60!9AHz7mRzhE3h>sJNRM#tj*hc>K5~3=SPOVYAe~a^32h`&AzpKU2Eq} zjgAli(6DEKNBUlahjOlw6UvV@0JzwMKY5vU=wo)jm1Y)b(+@ zUrPr6i;PPji_YFlKDz40C+a=YDLYe=hbyjU1t!l~ch{)p{+@I)F#Yh9s}{iItlQgq z`f*=6i%f;TTqSZGS(c1edCSfqTSxM)tz#wlO2{F^Q|LH|q-}~Qd75TLrD|ENqi2%; zZo2Kac2o7tQ!m#H+tzgK>;F`2c|?D=v!(gqq7#p`DFJSV(xn+;Gd>6(^2w045P6w& zPSAX4y0cOB^!YNMnj^W3==vp-E5FH_d9AyW{^I6Y=EKa6z4!WhO^Q9#H&e=~ClOh6 z<9(mr(@nkZopA~-T;4;ktyYI_m{IcHkxidf!|k9M>mDC4?-tKm|KpBd=24wJjinZ7 z`?EZ4W^tdoVo}3C!a`cKf7?4dJ0$4knLFD{{I}m9KZg$R^{8y7x%vs|Pah9gLbIEB VqxLWRr;m*7XlUqJdKWw2{y$Tu9r^$O diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/csv.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/csv.jpg deleted file mode 100644 index c7d3aef711b07fbd58f59481ada97437795ab0ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4417 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 U)s)3AZ5UPi%|T&En(5O20Ih7m)c^nh diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/dmg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/dmg.jpg deleted file mode 100644 index 431794641fddec1f438fba5da5719cdca03085a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3643 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%0APTsN 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 R2Z9KsF=E#Y5-ahq@dHtmFyR0I diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/fla.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/fla.jpg deleted file mode 100644 index e2706ec795ee75ab1a6e56a440f897e2345cce8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3791 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.png deleted file mode 100644 index 7fad79ad8323e929d06940043009c8636507816f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4252 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 jVwS2Y#8CT%qdSK=L$rQwZ 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.png deleted file mode 100644 index de3c8a65b4b8014a8a85ac3c370f072c21005d06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2788 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gif.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gif.jpg deleted file mode 100644 index 6559809288678036c0c7cc216199e4cdbd6fc083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3881 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 F{eMZB{8#`0 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gz.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gz.jpg deleted file mode 100644 index bd30b1cd805761cbfc094e3aa8c5a34dd25370a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3495 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/html.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/html.jpg deleted file mode 100644 index 9d7c99aafc9b354d8327116f941f9581577112e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3724 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 F{|B^Su}A;_ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/iso.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/iso.jpg deleted file mode 100644 index afb20c1e891bbc30b20d06e7d36cfeeae448c157..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3626 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 J$+zaZ{{f_ii^Ko` diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpeg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpeg.jpg deleted file mode 100644 index 2df9299b4b7e5ff0715c469b644fb4456a8c0b2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3856 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 F{eMZB{8#`0 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/log.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/log.jpg deleted file mode 100644 index 5a0a8520f3f1f7aa2eb313d210706664b60e460d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3821 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 aZwQ}itIbgllkb}#F8p*;#KFP#*8c(j2@L)K diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mov.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mov.jpg deleted file mode 100644 index 0aa7a8a949ec95592f1c604b8cc37005a28e7296..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3459 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 Jd>&zI{U44HF{}Up diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpg.jpg deleted file mode 100644 index 6ca376a0be7538768131459348391631223438ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3466 zcmb7G2~<;O7QQdHWBOyE_H3^UeM5JR~T2!>4 zOlM9VPZ3mFhpIdR(ehri@#)wkqS`ZnfhSt0!~+mj&>6^z_fk|GwP&{rCUw z{g)TZ1u_X+(jD#HINo9HUf~|Vd>Pd1N-$@>`C{*CTAVQx zpMfOz0%MZWhPP_e@fnEy(SD-H97F8m5Z@_TJSQ4)5P)DvzA<5rl`nX!yg)S%u@~C& zwB}@$&0cQEO-o0NV+9S13ulrzgmXe;ip5&OSj1NfxMZ@%sE39;E-oH%Fk;_=k|bMv zI>l6)LF{~-@`Bhj#2AM*zN=1AAofAL##pE%bD?Isfzu_DxiCI`tjMgeX`p)zx->Eu z=F3Pq6Q3i-qf)*X5`Ey{6;dfnCVP769Fs}#k|eT zVB*jk!9+R~CV(+M6GtEgH|-(P~+3@A(h}N(;lb6%HV#h z{Ji|G{H(lQzFmHM&>Z~{2UUr#r4P_w(g*27^l4z}BXm1`m_A1Dq1zlWU%d9#D2}z~ z^CdQtEm;Nod;@FEfleAD9U=9T#z{v@1EjMYELQ3*4V5NIUq{af$GYkI{eyDRLKfD_ zUey=RMNWVg=AaTSEJ3ajt4brB7R zoC+}g9^P49{kHif0AH8@yeIeD0`X29RtL~JRa0UtwZ_92Zzq5$e^MC#n{ti8yXlI> z@(AxMr%eFQHd-vdHCQaqwqg9s07rC|tMGn&nKmCFHI>}@AO;~d1TSiQ84zuh4+wb- zkV1`cU?ml3;|KsMwZPao~gjXussv~ORH0IOSLm5Ks)okR`GzPq!;I{wG@h8yWx0 z?rq!-$+?hi7Zj^kmUYyqyPJ$v2gB!1*I#*0(YWi^ul5XS@w)zK-ODVG3nNPHwSr#mZI9 z-`VmMMF}1&@?zRX{+xU5&`s9)>4e>9{SJNKSNF~;o&OImeKY%-YmQb2ecBkK-?61C zv{I8SjWoCo3%*>iK5|_2E~@3&-&#KO{;R&lIO2@w&~HBrd(_*!tSR%}@ukb;r#g>) zbV^ry@6VItnSX6*(tmru`s<*gP43?Ax0}z8j`>f4o%(U-&UN9luLo`@o-dmIl}mNK zX}@`1Tzb&aTveHV|Mm1wZyf9h+;Zsd+#dP0WsOz3Z05Hwnu305yWZVhGhVyoKxgRb zqo*&|85$1A;yOAzzEL&YdhJNmA^ptkM6cK|q2`mZElW?vs~T(P_mQIed*J#qSS80M zpky#6G+Hg6y-|@Z1N$zB8uPf}$@(>4c8@tZd0f`^&o(tWKc2AR@YwW!X1tS` zvE1Ezr(Ep*)A-qG6;-ZYAM6cybWTz3u8r$lJ-td5mX+A|WF&k0p<>0~OQ%t-m9;y+ z30Qk%M^$vdrh@C|WKnKO>v|L$gg4$wU9i9KPh8fCAI*~0QOe~T4Da7oC2!xX{<+(; zqi)!YjQigmMnU|!;O`ClhPJOb`7H+0liSADUb1<}?(%rm?&1l4e5vrnJXfmOYB{SY zUXio0-cc!!rx_n56!-XdRc_7-|I6pD?%l~bi=CqM;$cBvr9&SKeS4juoqE&LNxWuT ze2xBOeMobwMCBap9(1)>QaeFBuX;kyANEND8byJUY;mRq^u7&u+xM+)yK(Z@#Q%k| zA9Q>iYMN5#n~>?&@<~!q&Dsx-D0gO$8lOVH!A9-!d)Mz)Z&O#QSlC`tHe~9mjjgR+ mk@ch6MsK<4vo6)SA?Jrv)jrLYLF0vO`=12-xNo`T;{O5u+AA#p diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odb.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odb.jpg deleted file mode 100644 index a59fe46f58912d099e6ec58211ef05b7eda3669d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3655 zcmb7G3s{q78-Bih-wp__4V64IP?P{|pe9IyFvj^X5EL|pF}}fMFxbW+LWQF20Fj5^ z@|dW3NYl{YF40sZlJZhh6Usn-LHj+_PiaCW;{NB|#(*xbyn1)-{q8-_{XXygJn!L~ z>3h?45JiSYgaSoT5RM-(b@Go!$YiOCgt*X%XgN9n_~#(+JH1$(8+kQby-L<2U$CC{O)rv)$)z_-($>>tYh%P;#3)}R8Q1ZdY~7*sik zivhS=Ri54mz`Kcd-y&lkV*YrHh z`XGDeAZ*cq42%=T=CXQ?NuhxK2%_pO3bAB+bmxm%epqDuuYG)t7sddz;&g{Z($;z<6#ew+%m6 zAqZDMYgUwlsx;=6FxYt0hU9P>nMP1z-+??GYVB7#WJT4v?~NVskV>$tVtZoYRj&c7 z^gHSQq|MSA=}zfSL*^KWIHXGSTKWimg07>F(dR%y*VCuzQ}h}7Abs2x^T}&(iDFxO zbH2nzvL&m~Ki}Y5v!E3Q3&#m32}6X=LN{TwjU^F2EA$qI3#X!IoNe8-1O6eoXdne^ z)nC;o&qYpv29i*T28xiY$EuPF=fcYvb?`Z{DrF`z-b}<_cC9bj%l#^Na$X282qZiY zo*&Pf7fEpc$>U8$pC9&en|jO1u`z~Zzz$+zRcvvlnRgx8t7LQ`>eixe*2os)y8}R` z%X?X`$;>iJe5BIZk|2DQv66^f)pRe3Qmd7iT?UDsHL&_ZHe))F_aGSu@LPiU{YE)` zGhj2u0L<;eJL}?rZBYThegnX>GY4$$cqfkf5a8$wsseqXB_6(b&jT3LGknayDTiRZ zo7zpL-|)WTuL0;=Z8G(4H<|i&VEi_KdabDg%H+iwH9$-Zx%EK+T*?tIYJ3?GZPZxc znlV5mHO__;D0eG|1F%X1jFm&~eA38Wi=(Yi&NhyXQL>G;;l+e%Y6Tf^NTbX>heOjm zhQ`L{av7e0FA$Kg-LT>Ic6JWK1OoeK>>Y*+vDw*+#Lo!D1d||SIF8~m3{Pk$up^9r z)=Ui`7QkXCp($73h$&i3nHpgnCc>e~KN?%(@hOJO5ukJA5WAUR`T-nh93rAcSc9@M z+b9D33uFAQAKO1VR z-!HAIztk7i@#y!~+iE_4)~3$edrq`&x}{#-y~U;cqu=h7&Fk2_?A}iiVJH1Pe^9$z zKeD&J@T}ju^TWJ9zt_FA`i*6&AP@2Rr6usx7UPXW&asa)yW79ZIr!Oww`L@7K4XI2 zq#)wKg(4yqW?5LkKuY#E1WrG}R|FKzp?LN@z9mVZI5Y!duA_^qcToI@k&_aX`Q@u? zYA;EBWQzIelY`ST^u|NhQ}rSw+0wJqsBva;+#ZOd}c=e~-*S(W{A zL+SbFJfhj>d+IVDUGgRga;sdjvuWy$BV9dJ>-HRtn|sLzz?}r zuw2xY=zm?kiwFGX^^!Etvv1k2uaHLUO%|(>hj<1$MoIF zs;^wS((a^Z(_%3*W&-yUdeB8n0L$&xQhQp#m3jtzV~d3s&Os4 z*7>HF?`iS$$l|WXlM4S0o0~q|Qd;d>9#a=z7fs35^;UlI@bGKtvKPlTwYhH$`m(#W zZS)V!#ZO(oPF?)P?Bh-ao~0!ZQZWbf2{hkOcnAkKk;MFq{Kv0w$J^1;{$^j2jVpTE z#x)b%M0n~chGIDV=aT}li+8*-KS(;SyhgGb>uW2o=&{58aDOUrN?V-!o_`(QeYl>m{e6P|GyeIFE9X?|J*OOw8mVYm|8dRLC})@uerv>}2ad}oQD@HoXIq*- rwLZ~l&CO?Ku9Ev?E*e$+itwQ;>~&62JaFR$>FWOhLBf!( diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odf.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odf.jpg deleted file mode 100644 index 3550401b664926d0813207eccefcc3511e575829..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3664 zcmb7G30PBC7Cw3JWkDbUgNoo1aHFmPEQ<<~075`w2%soB7(#$ZNJ18hlyOj}BQBuS z+SM7^+NxN$QL9kvGSwtSDk?)JpD|4`Jq8^B+>HvoUPB20^0g*|JXS17n>|Os zZ3PMjf-`u7vqEXqi)6CtfP-+!z4z$22$%`r!njxad$WJ{%Q;JBR06PgXxC*KmHCK^ z0N5I(-e3aY+(LWk8zwzs?jXdT1{8=`NN|n~M-!ZB!)aDdiaZKAL@QsJtH?rJf_Q9Z z4|`4zY}0@Y%oD59stjtSfb>FU&}FMNDyzeG`4e{!<{!a)jTvjUjv;t;G3F&F;N73p zo@=jn*(` zvO|HahfV?Hz&%uI%ToYmoSEpD3F0;0W`9SFV2L3^t^8*7V^q^!rLNnLc^nm^W?jz? zfDt>;Ro%FreL7b1g_px4XlC}#z2I`J1ZMnMf7!R#?d)c}wzAv0>$J$%#B{otm zS%t3odiGic8orqC!ym?v<`3nM;7@n31pEQ~0Dc^Q6ncCd>!#`U_o_t=v$0oQU48Xj za`3y6ebZCDDbbTZ6h)CRGu>I{>0|`h^B{ zPOeE1C=`YWMEELG2_#zO_^|?oMkBDgi~@tos4^6)vc>~>50W^5Cvxlijn)5~Zks6) zAp8-YS!cU#bIbr+i~s{BcH8{%OzgJ-U~jO}Y$&wl!x!(@0LJW~K zJg>NK19VneEH7#-md;wt-v)3{W4QsPF-7WZfW$;{>H`nhEDt=W@nt}?vAlt8#Q^av z9|xAR{OueHV3`^iJBOV4WRSBKqwRO9igGZDt7r#KCsfO2hyscXmi0y@&n49MZ2>sN5BUQp=k1t#xd9&7Q>}^==AJmw-PM>0~Z=Y+-NuKK~)R?M9lRP>WE;^$^X+d3mUY#ioAs5(RPjv0}xB*Q)+Hd?1yyu{BfV8U6$NQvac2 zAM9)1J>cZmt_@?$53D)$EcoJ2Kd4$mu1()Oeo|8AF7~SJ@3pP`;8dM&^0Mtkeg~7q zeN{Wh6#Q~>&2tYwg|0C#bi$R2)%!Ed#RHr2^R_s@xi!9K=A?v`VT*pzk#@NEY!eYF zv&zEuO=U&>0fFiwgt-BWrYOd#57%BJi=r8DXM6m`GoadUSdv0nP`Tq=KVM;>NGy{t zz7aJ)(_l0mvRBWUO1)g=U2$PsL!s}kJFma5I2n0wQ2dO)%}dLxAMCN@#l}5P@>I$N zGuMBzwMio7r|hhqnvib8>zjGW7O$-^ynR-+UNj5I)+qH{36W1{JD==#aiM<@CwSfey3z4I@zq;>t3KEFIaU%T`56W0V&Jk1|YT38W$?&U~nbmy<` z*nWRE+&;jtX?E8-vB2FoU~#o5Nl{QK-0@ftDVu-pM%PxF>f7lPdVEE@NSkrTM_TtH zbJngix1+s-YQH_U=AC~oN?aQ>`KO(aLy`*Oy?$Q(JvHd|=Z!_79v2ob|7>2|E#pU@ zUS4(GD`c2w$;z^bsr<6^$@i}uzv$WL$M4IM`TO?Y*&5isp~Sq2d+oaVKQqI9rFqfM zdCtqY}4Igu)W9#mYicP!A=T;2( z*!L*yZ2{+DL(b~T(xi#XO*tOyCr{U>7c9DqRahTH>p_LjV$UHUf8wlzb&4q{MMMaH zutCWVcKfp(Y$c4q9G0ypYT*vjVn>7BEZ};-kGo*Um!1Q?k7?&W zc&%l*c~N@pjoh@)1D=XA!+ay+noK^iXPf*514p{Xha5P3s3E7~)|CEBmIvv##8GL9 zUY}N-AN<^XCw00~rhZ)dZsO8^Y;Gw_@g9El-o5p*!ATwK;uJ5_-(Of4^X|GMQ)*WH z{kX>+(G|aWUetrW=4FwzS>k$lY3rpuaaSe#n?;XrKbtIGm^=8i%b9|kE9ygXhQAkZ zb*cYSkGdk`%TB){*OgMEZ$(=kTlnehfohlUGR$jz?gbY$o?7vGqp$QxU@W{#HHp;| x&!0FQcD4D#x6`ZlLJfPPW_!bT3K?ZmHjV_r+98>u-Ugk6!=) diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odg.jpg deleted file mode 100644 index a59fe46f58912d099e6ec58211ef05b7eda3669d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3655 zcmb7G3s{q78-Bih-wp__4V64IP?P{|pe9IyFvj^X5EL|pF}}fMFxbW+LWQF20Fj5^ z@|dW3NYl{YF40sZlJZhh6Usn-LHj+_PiaCW;{NB|#(*xbyn1)-{q8-_{XXygJn!L~ z>3h?45JiSYgaSoT5RM-(b@Go!$YiOCgt*X%XgN9n_~#(+JH1$(8+kQby-L<2U$CC{O)rv)$)z_-($>>tYh%P;#3)}R8Q1ZdY~7*sik zivhS=Ri54mz`Kcd-y&lkV*YrHh z`XGDeAZ*cq42%=T=CXQ?NuhxK2%_pO3bAB+bmxm%epqDuuYG)t7sddz;&g{Z($;z<6#ew+%m6 zAqZDMYgUwlsx;=6FxYt0hU9P>nMP1z-+??GYVB7#WJT4v?~NVskV>$tVtZoYRj&c7 z^gHSQq|MSA=}zfSL*^KWIHXGSTKWimg07>F(dR%y*VCuzQ}h}7Abs2x^T}&(iDFxO zbH2nzvL&m~Ki}Y5v!E3Q3&#m32}6X=LN{TwjU^F2EA$qI3#X!IoNe8-1O6eoXdne^ z)nC;o&qYpv29i*T28xiY$EuPF=fcYvb?`Z{DrF`z-b}<_cC9bj%l#^Na$X282qZiY zo*&Pf7fEpc$>U8$pC9&en|jO1u`z~Zzz$+zRcvvlnRgx8t7LQ`>eixe*2os)y8}R` z%X?X`$;>iJe5BIZk|2DQv66^f)pRe3Qmd7iT?UDsHL&_ZHe))F_aGSu@LPiU{YE)` zGhj2u0L<;eJL}?rZBYThegnX>GY4$$cqfkf5a8$wsseqXB_6(b&jT3LGknayDTiRZ zo7zpL-|)WTuL0;=Z8G(4H<|i&VEi_KdabDg%H+iwH9$-Zx%EK+T*?tIYJ3?GZPZxc znlV5mHO__;D0eG|1F%X1jFm&~eA38Wi=(Yi&NhyXQL>G;;l+e%Y6Tf^NTbX>heOjm zhQ`L{av7e0FA$Kg-LT>Ic6JWK1OoeK>>Y*+vDw*+#Lo!D1d||SIF8~m3{Pk$up^9r z)=Ui`7QkXCp($73h$&i3nHpgnCc>e~KN?%(@hOJO5ukJA5WAUR`T-nh93rAcSc9@M z+b9D33uFAQAKO1VR z-!HAIztk7i@#y!~+iE_4)~3$edrq`&x}{#-y~U;cqu=h7&Fk2_?A}iiVJH1Pe^9$z zKeD&J@T}ju^TWJ9zt_FA`i*6&AP@2Rr6usx7UPXW&asa)yW79ZIr!Oww`L@7K4XI2 zq#)wKg(4yqW?5LkKuY#E1WrG}R|FKzp?LN@z9mVZI5Y!duA_^qcToI@k&_aX`Q@u? zYA;EBWQzIelY`ST^u|NhQ}rSw+0wJqsBva;+#ZOd}c=e~-*S(W{A zL+SbFJfhj>d+IVDUGgRga;sdjvuWy$BV9dJ>-HRtn|sLzz?}r zuw2xY=zm?kiwFGX^^!Etvv1k2uaHLUO%|(>hj<1$MoIF zs;^wS((a^Z(_%3*W&-yUdeB8n0L$&xQhQp#m3jtzV~d3s&Os4 z*7>HF?`iS$$l|WXlM4S0o0~q|Qd;d>9#a=z7fs35^;UlI@bGKtvKPlTwYhH$`m(#W zZS)V!#ZO(oPF?)P?Bh-ao~0!ZQZWbf2{hkOcnAkKk;MFq{Kv0w$J^1;{$^j2jVpTE z#x)b%M0n~chGIDV=aT}li+8*-KS(;SyhgGb>uW2o=&{58aDOUrN?V-!o_`(QeYl>m{e6P|GyeIFE9X?|J*OOw8mVYm|8dRLC})@uerv>}2ad}oQD@HoXIq*- rwLZ~l&CO?Ku9Ev?E*e$+itwQ;>~&62JaFR$>FWOhLBf!( diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odp.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odp.jpg deleted file mode 100644 index 3550401b664926d0813207eccefcc3511e575829..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3664 zcmb7G30PBC7Cw3JWkDbUgNoo1aHFmPEQ<<~075`w2%soB7(#$ZNJ18hlyOj}BQBuS z+SM7^+NxN$QL9kvGSwtSDk?)JpD|4`Jq8^B+>HvoUPB20^0g*|JXS17n>|Os zZ3PMjf-`u7vqEXqi)6CtfP-+!z4z$22$%`r!njxad$WJ{%Q;JBR06PgXxC*KmHCK^ z0N5I(-e3aY+(LWk8zwzs?jXdT1{8=`NN|n~M-!ZB!)aDdiaZKAL@QsJtH?rJf_Q9Z z4|`4zY}0@Y%oD59stjtSfb>FU&}FMNDyzeG`4e{!<{!a)jTvjUjv;t;G3F&F;N73p zo@=jn*(` zvO|HahfV?Hz&%uI%ToYmoSEpD3F0;0W`9SFV2L3^t^8*7V^q^!rLNnLc^nm^W?jz? zfDt>;Ro%FreL7b1g_px4XlC}#z2I`J1ZMnMf7!R#?d)c}wzAv0>$J$%#B{otm zS%t3odiGic8orqC!ym?v<`3nM;7@n31pEQ~0Dc^Q6ncCd>!#`U_o_t=v$0oQU48Xj za`3y6ebZCDDbbTZ6h)CRGu>I{>0|`h^B{ zPOeE1C=`YWMEELG2_#zO_^|?oMkBDgi~@tos4^6)vc>~>50W^5Cvxlijn)5~Zks6) zAp8-YS!cU#bIbr+i~s{BcH8{%OzgJ-U~jO}Y$&wl!x!(@0LJW~K zJg>NK19VneEH7#-md;wt-v)3{W4QsPF-7WZfW$;{>H`nhEDt=W@nt}?vAlt8#Q^av z9|xAR{OueHV3`^iJBOV4WRSBKqwRO9igGZDt7r#KCsfO2hyscXmi0y@&n49MZ2>sN5BUQp=k1t#xd9&7Q>}^==AJmw-PM>0~Z=Y+-NuKK~)R?M9lRP>WE;^$^X+d3mUY#ioAs5(RPjv0}xB*Q)+Hd?1yyu{BfV8U6$NQvac2 zAM9)1J>cZmt_@?$53D)$EcoJ2Kd4$mu1()Oeo|8AF7~SJ@3pP`;8dM&^0Mtkeg~7q zeN{Wh6#Q~>&2tYwg|0C#bi$R2)%!Ed#RHr2^R_s@xi!9K=A?v`VT*pzk#@NEY!eYF zv&zEuO=U&>0fFiwgt-BWrYOd#57%BJi=r8DXM6m`GoadUSdv0nP`Tq=KVM;>NGy{t zz7aJ)(_l0mvRBWUO1)g=U2$PsL!s}kJFma5I2n0wQ2dO)%}dLxAMCN@#l}5P@>I$N zGuMBzwMio7r|hhqnvib8>zjGW7O$-^ynR-+UNj5I)+qH{36W1{JD==#aiM<@CwSfey3z4I@zq;>t3KEFIaU%T`56W0V&Jk1|YT38W$?&U~nbmy<` z*nWRE+&;jtX?E8-vB2FoU~#o5Nl{QK-0@ftDVu-pM%PxF>f7lPdVEE@NSkrTM_TtH zbJngix1+s-YQH_U=AC~oN?aQ>`KO(aLy`*Oy?$Q(JvHd|=Z!_79v2ob|7>2|E#pU@ zUS4(GD`c2w$;z^bsr<6^$@i}uzv$WL$M4IM`TO?Y*&5isp~Sq2d+oaVKQqI9rFqfM zdCtqY}4Igu)W9#mYicP!A=T;2( z*!L*yZ2{+DL(b~T(xi#XO*tOyCr{U>7c9DqRahTH>p_LjV$UHUf8wlzb&4q{MMMaH zutCWVcKfp(Y$c4q9G0ypYT*vjVn>7BEZ};-kGo*Um!1Q?k7?&W zc&%l*c~N@pjoh@)1D=XA!+ay+noK^iXPf*514p{Xha5P3s3E7~)|CEBmIvv##8GL9 zUY}N-AN<^XCw00~rhZ)dZsO8^Y;Gw_@g9El-o5p*!ATwK;uJ5_-(Of4^X|GMQ)*WH z{kX>+(G|aWUetrW=4FwzS>k$lY3rpuaaSe#n?;XrKbtIGm^=8i%b9|kE9ygXhQAkZ zb*cYSkGdk`%TB){*OgMEZ$(=kTlnehfohlUGR$jz?gbY$o?7vGqp$QxU@W{#HHp;| x&!0FQcD4D#x6`ZlLJfPPW_!bT3K?ZmHjV_r+98>u-Ugk6!=) diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ods.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ods.jpg deleted file mode 100644 index a59fe46f58912d099e6ec58211ef05b7eda3669d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3655 zcmb7G3s{q78-Bih-wp__4V64IP?P{|pe9IyFvj^X5EL|pF}}fMFxbW+LWQF20Fj5^ z@|dW3NYl{YF40sZlJZhh6Usn-LHj+_PiaCW;{NB|#(*xbyn1)-{q8-_{XXygJn!L~ z>3h?45JiSYgaSoT5RM-(b@Go!$YiOCgt*X%XgN9n_~#(+JH1$(8+kQby-L<2U$CC{O)rv)$)z_-($>>tYh%P;#3)}R8Q1ZdY~7*sik zivhS=Ri54mz`Kcd-y&lkV*YrHh z`XGDeAZ*cq42%=T=CXQ?NuhxK2%_pO3bAB+bmxm%epqDuuYG)t7sddz;&g{Z($;z<6#ew+%m6 zAqZDMYgUwlsx;=6FxYt0hU9P>nMP1z-+??GYVB7#WJT4v?~NVskV>$tVtZoYRj&c7 z^gHSQq|MSA=}zfSL*^KWIHXGSTKWimg07>F(dR%y*VCuzQ}h}7Abs2x^T}&(iDFxO zbH2nzvL&m~Ki}Y5v!E3Q3&#m32}6X=LN{TwjU^F2EA$qI3#X!IoNe8-1O6eoXdne^ z)nC;o&qYpv29i*T28xiY$EuPF=fcYvb?`Z{DrF`z-b}<_cC9bj%l#^Na$X282qZiY zo*&Pf7fEpc$>U8$pC9&en|jO1u`z~Zzz$+zRcvvlnRgx8t7LQ`>eixe*2os)y8}R` z%X?X`$;>iJe5BIZk|2DQv66^f)pRe3Qmd7iT?UDsHL&_ZHe))F_aGSu@LPiU{YE)` zGhj2u0L<;eJL}?rZBYThegnX>GY4$$cqfkf5a8$wsseqXB_6(b&jT3LGknayDTiRZ zo7zpL-|)WTuL0;=Z8G(4H<|i&VEi_KdabDg%H+iwH9$-Zx%EK+T*?tIYJ3?GZPZxc znlV5mHO__;D0eG|1F%X1jFm&~eA38Wi=(Yi&NhyXQL>G;;l+e%Y6Tf^NTbX>heOjm zhQ`L{av7e0FA$Kg-LT>Ic6JWK1OoeK>>Y*+vDw*+#Lo!D1d||SIF8~m3{Pk$up^9r z)=Ui`7QkXCp($73h$&i3nHpgnCc>e~KN?%(@hOJO5ukJA5WAUR`T-nh93rAcSc9@M z+b9D33uFAQAKO1VR z-!HAIztk7i@#y!~+iE_4)~3$edrq`&x}{#-y~U;cqu=h7&Fk2_?A}iiVJH1Pe^9$z zKeD&J@T}ju^TWJ9zt_FA`i*6&AP@2Rr6usx7UPXW&asa)yW79ZIr!Oww`L@7K4XI2 zq#)wKg(4yqW?5LkKuY#E1WrG}R|FKzp?LN@z9mVZI5Y!duA_^qcToI@k&_aX`Q@u? zYA;EBWQzIelY`ST^u|NhQ}rSw+0wJqsBva;+#ZOd}c=e~-*S(W{A zL+SbFJfhj>d+IVDUGgRga;sdjvuWy$BV9dJ>-HRtn|sLzz?}r zuw2xY=zm?kiwFGX^^!Etvv1k2uaHLUO%|(>hj<1$MoIF zs;^wS((a^Z(_%3*W&-yUdeB8n0L$&xQhQp#m3jtzV~d3s&Os4 z*7>HF?`iS$$l|WXlM4S0o0~q|Qd;d>9#a=z7fs35^;UlI@bGKtvKPlTwYhH$`m(#W zZS)V!#ZO(oPF?)P?Bh-ao~0!ZQZWbf2{hkOcnAkKk;MFq{Kv0w$J^1;{$^j2jVpTE z#x)b%M0n~chGIDV=aT}li+8*-KS(;SyhgGb>uW2o=&{58aDOUrN?V-!o_`(QeYl>m{e6P|GyeIFE9X?|J*OOw8mVYm|8dRLC})@uerv>}2ad}oQD@HoXIq*- rwLZ~l&CO?Ku9Ev?E*e$+itwQ;>~&62JaFR$>FWOhLBf!( diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odt.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odt.jpg deleted file mode 100644 index a59fe46f58912d099e6ec58211ef05b7eda3669d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3655 zcmb7G3s{q78-Bih-wp__4V64IP?P{|pe9IyFvj^X5EL|pF}}fMFxbW+LWQF20Fj5^ z@|dW3NYl{YF40sZlJZhh6Usn-LHj+_PiaCW;{NB|#(*xbyn1)-{q8-_{XXygJn!L~ z>3h?45JiSYgaSoT5RM-(b@Go!$YiOCgt*X%XgN9n_~#(+JH1$(8+kQby-L<2U$CC{O)rv)$)z_-($>>tYh%P;#3)}R8Q1ZdY~7*sik zivhS=Ri54mz`Kcd-y&lkV*YrHh z`XGDeAZ*cq42%=T=CXQ?NuhxK2%_pO3bAB+bmxm%epqDuuYG)t7sddz;&g{Z($;z<6#ew+%m6 zAqZDMYgUwlsx;=6FxYt0hU9P>nMP1z-+??GYVB7#WJT4v?~NVskV>$tVtZoYRj&c7 z^gHSQq|MSA=}zfSL*^KWIHXGSTKWimg07>F(dR%y*VCuzQ}h}7Abs2x^T}&(iDFxO zbH2nzvL&m~Ki}Y5v!E3Q3&#m32}6X=LN{TwjU^F2EA$qI3#X!IoNe8-1O6eoXdne^ z)nC;o&qYpv29i*T28xiY$EuPF=fcYvb?`Z{DrF`z-b}<_cC9bj%l#^Na$X282qZiY zo*&Pf7fEpc$>U8$pC9&en|jO1u`z~Zzz$+zRcvvlnRgx8t7LQ`>eixe*2os)y8}R` z%X?X`$;>iJe5BIZk|2DQv66^f)pRe3Qmd7iT?UDsHL&_ZHe))F_aGSu@LPiU{YE)` zGhj2u0L<;eJL}?rZBYThegnX>GY4$$cqfkf5a8$wsseqXB_6(b&jT3LGknayDTiRZ zo7zpL-|)WTuL0;=Z8G(4H<|i&VEi_KdabDg%H+iwH9$-Zx%EK+T*?tIYJ3?GZPZxc znlV5mHO__;D0eG|1F%X1jFm&~eA38Wi=(Yi&NhyXQL>G;;l+e%Y6Tf^NTbX>heOjm zhQ`L{av7e0FA$Kg-LT>Ic6JWK1OoeK>>Y*+vDw*+#Lo!D1d||SIF8~m3{Pk$up^9r z)=Ui`7QkXCp($73h$&i3nHpgnCc>e~KN?%(@hOJO5ukJA5WAUR`T-nh93rAcSc9@M z+b9D33uFAQAKO1VR z-!HAIztk7i@#y!~+iE_4)~3$edrq`&x}{#-y~U;cqu=h7&Fk2_?A}iiVJH1Pe^9$z zKeD&J@T}ju^TWJ9zt_FA`i*6&AP@2Rr6usx7UPXW&asa)yW79ZIr!Oww`L@7K4XI2 zq#)wKg(4yqW?5LkKuY#E1WrG}R|FKzp?LN@z9mVZI5Y!duA_^qcToI@k&_aX`Q@u? zYA;EBWQzIelY`ST^u|NhQ}rSw+0wJqsBva;+#ZOd}c=e~-*S(W{A zL+SbFJfhj>d+IVDUGgRga;sdjvuWy$BV9dJ>-HRtn|sLzz?}r zuw2xY=zm?kiwFGX^^!Etvv1k2uaHLUO%|(>hj<1$MoIF zs;^wS((a^Z(_%3*W&-yUdeB8n0L$&xQhQp#m3jtzV~d3s&Os4 z*7>HF?`iS$$l|WXlM4S0o0~q|Qd;d>9#a=z7fs35^;UlI@bGKtvKPlTwYhH$`m(#W zZS)V!#ZO(oPF?)P?Bh-ao~0!ZQZWbf2{hkOcnAkKk;MFq{Kv0w$J^1;{$^j2jVpTE z#x)b%M0n~chGIDV=aT}li+8*-KS(;SyhgGb>uW2o=&{58aDOUrN?V-!o_`(QeYl>m{e6P|GyeIFE9X?|J*OOw8mVYm|8dRLC})@uerv>}2ad}oQD@HoXIq*- rwLZ~l&CO?Ku9Ev?E*e$+itwQ;>~&62JaFR$>FWOhLBf!( diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ogg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ogg.jpg deleted file mode 100644 index e93be746443bcc4509c4e74f95f184a6ff9b1add..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3447 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 Rp`iud=_@Y%d}^k(<_|?AdVK%@ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otp.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otp.jpg deleted file mode 100644 index 9cc95b3b177526c90d48d6d26e9ec69912f84cfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3636 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ott.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ott.jpg deleted file mode 100644 index a59fe46f58912d099e6ec58211ef05b7eda3669d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3655 zcmb7G3s{q78-Bih-wp__4V64IP?P{|pe9IyFvj^X5EL|pF}}fMFxbW+LWQF20Fj5^ z@|dW3NYl{YF40sZlJZhh6Usn-LHj+_PiaCW;{NB|#(*xbyn1)-{q8-_{XXygJn!L~ z>3h?45JiSYgaSoT5RM-(b@Go!$YiOCgt*X%XgN9n_~#(+JH1$(8+kQby-L<2U$CC{O)rv)$)z_-($>>tYh%P;#3)}R8Q1ZdY~7*sik zivhS=Ri54mz`Kcd-y&lkV*YrHh z`XGDeAZ*cq42%=T=CXQ?NuhxK2%_pO3bAB+bmxm%epqDuuYG)t7sddz;&g{Z($;z<6#ew+%m6 zAqZDMYgUwlsx;=6FxYt0hU9P>nMP1z-+??GYVB7#WJT4v?~NVskV>$tVtZoYRj&c7 z^gHSQq|MSA=}zfSL*^KWIHXGSTKWimg07>F(dR%y*VCuzQ}h}7Abs2x^T}&(iDFxO zbH2nzvL&m~Ki}Y5v!E3Q3&#m32}6X=LN{TwjU^F2EA$qI3#X!IoNe8-1O6eoXdne^ z)nC;o&qYpv29i*T28xiY$EuPF=fcYvb?`Z{DrF`z-b}<_cC9bj%l#^Na$X282qZiY zo*&Pf7fEpc$>U8$pC9&en|jO1u`z~Zzz$+zRcvvlnRgx8t7LQ`>eixe*2os)y8}R` z%X?X`$;>iJe5BIZk|2DQv66^f)pRe3Qmd7iT?UDsHL&_ZHe))F_aGSu@LPiU{YE)` zGhj2u0L<;eJL}?rZBYThegnX>GY4$$cqfkf5a8$wsseqXB_6(b&jT3LGknayDTiRZ zo7zpL-|)WTuL0;=Z8G(4H<|i&VEi_KdabDg%H+iwH9$-Zx%EK+T*?tIYJ3?GZPZxc znlV5mHO__;D0eG|1F%X1jFm&~eA38Wi=(Yi&NhyXQL>G;;l+e%Y6Tf^NTbX>heOjm zhQ`L{av7e0FA$Kg-LT>Ic6JWK1OoeK>>Y*+vDw*+#Lo!D1d||SIF8~m3{Pk$up^9r z)=Ui`7QkXCp($73h$&i3nHpgnCc>e~KN?%(@hOJO5ukJA5WAUR`T-nh93rAcSc9@M z+b9D33uFAQAKO1VR z-!HAIztk7i@#y!~+iE_4)~3$edrq`&x}{#-y~U;cqu=h7&Fk2_?A}iiVJH1Pe^9$z zKeD&J@T}ju^TWJ9zt_FA`i*6&AP@2Rr6usx7UPXW&asa)yW79ZIr!Oww`L@7K4XI2 zq#)wKg(4yqW?5LkKuY#E1WrG}R|FKzp?LN@z9mVZI5Y!duA_^qcToI@k&_aX`Q@u? zYA;EBWQzIelY`ST^u|NhQ}rSw+0wJqsBva;+#ZOd}c=e~-*S(W{A zL+SbFJfhj>d+IVDUGgRga;sdjvuWy$BV9dJ>-HRtn|sLzz?}r zuw2xY=zm?kiwFGX^^!Etvv1k2uaHLUO%|(>hj<1$MoIF zs;^wS((a^Z(_%3*W&-yUdeB8n0L$&xQhQp#m3jtzV~d3s&Os4 z*7>HF?`iS$$l|WXlM4S0o0~q|Qd;d>9#a=z7fs35^;UlI@bGKtvKPlTwYhH$`m(#W zZS)V!#ZO(oPF?)P?Bh-ao~0!ZQZWbf2{hkOcnAkKk;MFq{Kv0w$J^1;{$^j2jVpTE z#x)b%M0n~chGIDV=aT}li+8*-KS(;SyhgGb>uW2o=&{58aDOUrN?V-!o_`(QeYl>m{e6P|GyeIFE9X?|J*OOw8mVYm|8dRLC})@uerv>}2ad}oQD@HoXIq*- rwLZ~l&CO?Ku9Ev?E*e$+itwQ;>~&62JaFR$>FWOhLBf!( diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pdf.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pdf.jpg deleted file mode 100644 index 4498783816cfaee431e617e7b1d909bb3e938e28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3716 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 GTmAD=iL9C`=4{~ z+=>2s{l9@18Wa))1VKPBUZDShT^kY*uu>$B3JM7q;s5~qh$J&p$>0O5QRy_|CI0+n z3CsEHc3^-#n8Rc+m!xVl{Y0X0z(#ZF``GsU24EzBYja*cK9>E5Cv&Mxn+ia1(5{wh zQ`aEQ0bnXqGc`H@)?KtOSf|TG%$|bSMuP$o3uv4^gac`uGK7~II5FY?_RH#&E@CRl952U8`&rHE&s{amKbpSHUqewdXJ>xXzY0K+;>6BIkdXDrN<$HXJH zMY~j?3yCq>^HeF3QHar(QJSF+qvOz=bE(<@tR*-h?vl$w=ru+?BuHg}Ld5Qfr^&N| zjq%A)ZT3>yZitg74~RsJaY)T-NvH_%WW;Z4)M9!r)J&GjluPKjFh1FssS_DBkUc78 zBs~}AOL1jdLyj1e?9s_%aG%n?l$TBuWAvq#rzwI$jQkCmO2b}6ZB&^iOH6CS_*An* zBV2+Q<50aaRV-aM#LP)jNg!QY55$Whj*x&1)R2OGDyZNE@Ieeqz#s3Kpuv$eP=FFG zG8~nmML}3X2HIZE6B#%|J|m2DgLe<@jkCO*Gc?0}BS%fyQ37fn{@$d*sYTQR${YBU z59LcOrUKFGO}%MSAR48U59x3pl@7&O3t2cbts@Tn3nyo}nSA(LG%FRUSKj{x)r@4R z9vR0tri@XudUORqixn8oZqDdBo!wA3$uz=mrD~I|S)APfQGZom=3QnFvlaVxX6J}M zvxC`*S3CIO3MdVV)}ShdVI{OC-kdQxG$2z4670K?r$(*AO2@2dnyPT}$Ov5t*^bEP zk+8*m#42bL{729#C=rwi9*mh|B;uGVk$cD*vYz~s{EEB?eDXBeKz>a&lE=uCrkF2Z z`=KbNwKwET+vsfRRT!RcbggBe^gd{(%#vqTZy`5 zI#~{WI{*UInYkK8x?IPfD-g`*`{Acd#t%`Ydbsl?N+sVgq~&X5TA3zWCiMXNJ4pKh z^ob4MH^TPHh)ov(u;>w|)CQdv6Q0tYNrO6(OhacWc0NS*9 za}Cdgg+HE6U3z^Vo>%N5fET;<`hilt{>34T-wAM9sqcnO!W=~!Ktu$6>H`Ougf$-2 z_%Wch5tD&wzyP6yg9(cXHzS7uutNcqkwc&PbfeE&^fulZ2N@5W@a&t!!aLkZehvAW@gT_8qc+&F&%_aKmhVPmL=Ag(62BKlsx z`QEdZN9w!et|jAh>Q=nUt1CXWw9{i*%et+}jTUvuPu;a;O;b;_OU3qk>@KX|*2KBX z-yBm}?KH#hjY)|q-+o%KxXU*!eC4c1cCY-#Ejs1AWc7@x5noi?-WmPzM`SoV=(eo4 z^3F8XqB9pi-0iBKnD|}Xli0dBT}Rsm_oAF0s5__cq>E~0%EOqB$ehUgBT!aMYfl?TfmgJ44{w6=T=806aaDB-AJzMdR!NGCMPm6d23Z}J z=9epCf(u+~&j|M3;hae?rny)+dvv)~l z;lifxUpw#Tk(m1T77)hk zBFJMz`Gx$1t`*nL7k_r3;j6!$IUzjoL-eCv0UM7cGY_1y@^d?_NJ?b;8zL zYZ#jXRI|*)E!StHN4-*g<#1n^ji-zI<9l@}iKb}Cc`xpM&&7xIRE!|Iscc_o! zfJNKZMzg%D7OubTeC=9<`&-AS?w~HRUVrxZG_k4jo;&<^{nD!WMUK`pF9k7&E;8Wv z&VN~zPW*}I{Q0{2;M~fcS@HP`f;z4x_CFL|TDCZ1V0K1R_l4YPKC^Gi!Vb-JxW1xE z`s&@T&2iS*?`_}lytM7`=}C(6f#k@J_W{hPeT6nZn0&_&t8WX*_rN*!{`grZ+$DuQtDdKo^{W=K%$#%@0|T`4@48b zcaL;^d}lCu{paWV-<7PAo_*IwUR+f=ZeH!S>~1OHOWaDoxK7Sq^<~b9?GH}3)^87+ z$K1y(*;<$IcZvCQ|HWbZRy^#@zfxVCcWGL&JAx5;dA@?Tf4Sy*ymBleC%=Zr_9_arNg6N;TGk}a)_&mynp=B zr_|mxpKZTX^!icH{5wZZZ{Oa%x}uP*=Jo4@{XdFb8@xVT-aXjA!nUL!s=2zDS^C_i zSPFG+CvBoXSofim{3&P3mruF2a9w`cMO5d_miq?Dt$h95FGn>T+7kV(@z>yXr}wtL F{eMZB{8#`0 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ppt.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ppt.jpg deleted file mode 100644 index d0d4e281cf58f2844a168b0abe444a2c7f59f98d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4144 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pptx.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pptx.jpg deleted file mode 100644 index 066db3fed0bd9f02ce70c910d9caf2221e81b46e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4249 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/psd.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/psd.jpg deleted file mode 100644 index 37e2f1a9ac20ea88e5e1a2b6c950f8ad293d1c09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3880 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 BQmX&} diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rtf.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rtf.jpg deleted file mode 100644 index abb65ed34e4abdf3001fe55d3e8674889fc09509..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4358 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 NEsco&Lj#&S{|AVu@;Cqh diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/svg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/svg.jpg deleted file mode 100644 index 6559809288678036c0c7cc216199e4cdbd6fc083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3881 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 F{eMZB{8#`0 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tar.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tar.jpg deleted file mode 100644 index e875b26e5dbc0a4696ceaf00cfc8f76e55f66eed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3527 zcmb7G2~?9;7QX+I5VjaFDuQAVRH|r$BFdm3J3){b5I3rX5FijBCSj3bT3oT6qhQ_V zAhDnIj_)#U@c)Z;ydX|30Y&*!$68MGz_s9V%PNC$lmx&lrArh z*o|=t(?jMU#yE^NLmnkX?2LGwHb+M0Le0z`r8uQ5##O&6N>t7@xf?*M>zP#yD)3 zGJ77W8)A-AiaeCmb`s(MNTB4Pgd9l5UIE$A10s+?1O($#16uT?f(q1VQKDCg78PX= znP_`6Pio|t#`H1LjH5fqXq@HE9McSsdO11lFjmY?!LL6X&CX<}vwk3A1KC+@02_){ zKi1!(K-y2I2-4sYDmBGf2Dvyh(UAbbWzM;tmNBB0+NCN*Q)wrv>B};w&yR5|8KdT$ z{uKZnR=}Ly#Qt?US9H?J;t@5o#}lvFohyRach#5E>MZV}Fa&+Bcr_J*O2vw;%{t zKy6f%g{oA>mC#vu69?o_hfF=lv2R0O4r(WiwYKEt;|(@ z^IYTvs9+u{Q9(X(wOCbB;cQrrQTv~hUZt!n>&;4jw`-@9y=+#&4daG#gFwU`&-LSa zbE610pFHk3^!Z^QW>IfCITpr%43zy?SQSg0iN;+=_9_{jhq~3MTd7wT;JX7LBuBGc zt4d4PizbW3(?mh|DpQIi*@{VCBDq>EGP-mktx~7d<|$Jq0eKISaR4u5#`haFw5iXg zj{%tZ4DYPVeYQop00(sd!+iQ|o_Hq?sRTIgtH{;nnd0G#_d5Vx>XgaG-;`Z2-c5H5 zh8K8WS$zu7v(aGa-eWNI?8W%40H@W4HYg4&P^ALI#E@Gbc)+0?@uJ3;0ntV|1ILH~ zq9_*&mQkL)92%fR1#B;e-1(%DyB0_HKIvVwg;BVRvEapoYWN;PfF_MH_B72fT$aIR z#o@4Ao)wQrzScJOw$|2mHawo~AX__oJ~nGxfx{ra1HmK+8IGg4EX(Cv^Q;Nuk2OO* zIPhRG6f)FkpdBd2fig6}2uy?lhWtxoZWL|B;qn+3y~6%>li$z+b_@lyfDvF3o}D&X z|JAU1T_pbfdS-tl)Er3mAC=hBSXo~%{KMVb zoDH!3FEbwu{s+CKMgl`?)ZsTjQLTOY>8k*bYbVeAQ-03ICZX8_7ByGnJW(xGt5DAv z0bm_jE?GcRV>t}X1+kAWB^)|>s?>W{5DMg>Y>Gp_to%A@h*G?vHg~w#~@$-wd3temfR<&+|)05h`@YvG0)=T{S@DKLwb)QwMl{a==s_{wu&~bR^)9Q!1 zA9tsS++W(9oYi>8`NKW)*2aa0G{un8IP@!-QH#_#GnO)t3V92GHWR!BKru9B&9yQ| zqG-ke*uervH?j9*t?r0$^ps_r>fAk~bCZ%+wDl&&4Wxe?l5wnl^>)9DpUAFfwT;d< zz{Qv^zB%LB$koqP{am+mul&aC7gkXp6*nJ<{5ADn#rdzE?=7qlv|MeEOjtRn)j99> z`KF*%&X-OlJ&Nsg-I8%Xz+W7Zu4@=Ot?1~I=iT+4tFW$9pmNw=+uzs zW9QW_yYbm8yTGL<%DaTOoqA4naPQT>ytg(kF0LUS2b}OOh~AX`=iwU8ckWe7F2%$; zNFSDcUg+HxB(8IDTjObd7Yc7-c>Z#ybN~g|U4r{)P|qUuS4+fG)M`#D2Z!W$cRqY~U^1gX|x{yY`Qf z;32?cNHajOcpi<70tYv5QP5n$EcuE~v2@uH^H~TKyk0kBg|I8`LhP6sn@x{ZzRuHs z%J+Zm^|)e7nm~657uNYI=~jJNlSdT>6Z$(s5tqS>%j;2e_8ECxlAo66&!qAIV`=TXTon|&vqH0 z%(J9OxT3uL(6xyrBkyNuliSh~d%881`|qwSZ?2R_z09g_*rZ|u)T0_g7j%lYc@8O# U-tfP)r9q9SR_!b@fZ^8v0j%&`Q~&?~ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tiff.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tiff.jpg deleted file mode 100644 index 6648ebfed9ffb4f5c49a82e59fa7e76aad871928..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3858 zcmb7G3se*55}wU&9z2W*0$Q}Vs0if>2DJ!P3j_!dK|=&$NNzAS>HskVlH?Id3P@ z+!kQLE8qZb;Gj?%^`SCZ3}9op%yVFS{4<~@fOEbt*AHaB@aB-JGAaQG9?Es8Mr9V_ zTmZIKsW+GaIM-1g_^wHhm^%WovjGD{EMjna4-RK=N)Mi6;l#_ski*2vSE?1Mi1QJT zOX(+1?}vM0KnD7WRAs9S8YRutLT1pVX|yVfqNn=@bwB3c!7ObK=4@&1*gG0CXHCba zH

C5GA+b3Z)`q7UD4||6XqrGxD*B@8)DCgd+9+8{9A}!QJ$(X zMaNs^dD$s5W+FygR#m2MI^&1oe6KWyVJ%@4;>&7PG&9E-4+*KN@Cd}?5WA~$qOAT& zsd3>fMsD$wrw*He82ylj424vN*bVVYgHFzjg)x&=Ds3b)7WyZT=uI+f3}jojb_O#R z=1cKaMoW(9lWa4o<8hrbwp4)05O1}m64Nx2Xe&QoueGd2jE$-`wtk4;gxQ1wRG@(iqj zTgDi(u73r(elmP_3Bpcm^yR z*C!R77u^#ziz-FcqB{e|=<_(BN@N*XPwpr8kbB7=fF=)-hslHF5ppNF&*t;xbKm2| zHusi%85xr;GYh@r^{=%Gw0tptIDa%hoIjH9$&azIX#P;XKR=4^g__~EdDHgk2jrrG zx3N~eRekwb%nr~%0!E^NcadwrsxlSMhWF5G|9xVOlyay1spuD0Z6LFjd!yh)aKbsE zKy!RJK^%XMl)=3_kK={9AnYS-(f8~e8)HBQs(vi2ip`I&Wz{ijm9bukacePdl}VM0 zcLzY2PXC@kldd+=6GWoPbSPeBDmpq_={Js6XtlIOWuy%%qsp*QmFfq~J;>Mr{4TfL zZ-ncqKA9;NVA_2=vrhNP5_15y83Be)>XUinndq_wpdmn+V_4YZ4=>)60LHY56D;q9 zqZrSo%VzWMcwTYW0(6&}%}=Y$=I&3?|0RG!T5~HDMC5AH0AgdAQy+N1CY;?- zjc^0D1p`Ql;WjKMysaD-zzPjeRt|IKGmSZG(c1cCRj_P~yb98W=Q33DMF;~H(+Eq? zVv!_=BC&DVY>LC<@_5YO&VG=Cot>jSkLNJh!Eq2Do1KF|IG8VFFyn+VM=K6RarkyT zJBIQ9HFFaPc`z69NMaPQgaj!h%-_Or=4*yzK6Px3ORza4k3yx(0J()gn12CBk^q)~ z6kri9*sKr`bwA5uetRR#w7JMB&wJMMTOUmg0ekBCQuoBg*){SVza>3-o4;n!sjj%c z0)ITUYH9&0pY9r&*fg1Kd?bnZc=LY>AO3aQZt5Wb{}K*PG8bd;768GNi)1Fs(%3*! z1dHS18X%-SxDzJ{hB(XSV^};)f?%_r^T$Nqnt9RFwZ;4EV-a6Vee2?~)~?dJezEowP-@z5emVXIm;g?m0R0 zr_@dhGhTT>c&^+t;x+%H-!!+^=WS1^ne#<+`?il+dj>sfe{ee(^KusUE4d{vnI#9D zi(n$`ZwRbjLJ(F4mjsW?wzF0SUx5-jdH4?z1%w*Q)}0Z=$qmbD>)4|d3l4LfU1-_- zl%w!4yPK@9qpqJQs~3iqOO7p;-8ud~ z-8ATvrSh0m=Zg0DjZsPd&+6ulk6tn5sA%=tXO%~~qRSO&%^TzCqnBTm%2?V;Qr7lI z`v%E_oTMd3sJlfxB{y#MmNns9R-IKW`i=3KBo%-ba8F4r2cz<|GGkD8OmoJIHNf|4^HAWF6g_Z7U zgb+OZ<3a_B4q8-tMmB$GWoPeN4EE@DD4HNI2&WG0q0YrlDs}Uh`=y-Pxw&ZW^?wc7 za&^p;PlaujcB?i8e0I9$SCumM;73>LDvx(G`bpfcxR_EMH|#o*fByBs{CFSXl}F=4eD~dW(mbj9RoWn1I__7)(=ACO zJ2yU#x35~WWAMB8KR9P!FwDo8zCtlMBQI@dzCJtGJ>}!`+!>SZ-fWa~7bd%Xw|tkg z`+}`LT?e*ie79=$vcj|r9;$CoORLY_>NtpLS$4kVXvEFm*NDi#Z*cpkjO#iCL=&A- zfZvjU-QTQYW|<3^Wj<7h$4{RtL_#_w)KWrbr3*^@W+KZA>&{}%0m@c)5PJBB#?gw7 z1&2EYrIlwyA+|#xSYQTrfpPHKcjImv z`BhuTYOlG~AIRmKKF_;Ggt+=%CTghQ`}I+^mEuJ81BosrKmO0c&RHD(w{?q_7`Ja8 zy{S=CR8iYh!YeL{X$g64{+$Sw^HVU6d&Go(RtCNpqk z)p*|%J2h8>jyn9*cwF2L+tdw#taU+9yRAw+Z+e!vq57xK?iy-_x$lV$0FgBFovrfW zE2||*CCyz^S})Ch7}dDjZ-4E|1FcWKssCYYWAQHw*|j+(7o-&d!27c9bVk#qFWt@_ zGoI1^N=gq0mly7hy^;CK#>z=>&r2k&skV(4|Qp)~R@An+xRO~rI8t5qve7@V<@;}~^^|1f| diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/txt.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/txt.jpg deleted file mode 100644 index 5a0a8520f3f1f7aa2eb313d210706664b60e460d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3821 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wma.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wma.jpg deleted file mode 100644 index 128eafd8a453b0551e830e33aa8db890b93befc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3467 zcmb7G2~?9;7QX+IkO+iC5D-1^BQD5*2Cbswf?*E=hJYJNC4?X;fy6AJpfjasEH0-C z;;0=RLA2^oIXaG1Tb+)$*U=(aTN$ZEWZdmI*xIUPGWTTzJRUvsa`OH!_kQob@7}lk zv0k@!fH*lpo&Xd@K@xtz+Ua&o9vizzp`4WPtmUXD0C zw~u{sA8glv42+YgDb^UZYL3)GVbteqbsC$)-o3@$hxsO0q_beowibxJhp8}QCO$(+ z?ghpqr32TgRq+{!hok+1!5l;EBN0Ec6wa0*4g;VE<{J}c+xhg=vVzRHh<(wXr!~tn z9rm)~+_YJUaV%Y5sGmvV5Y7d)DHdx9!w}yr(8$ReqaFtGG;#5W!x0A-Sdtv^nPgK* z2C>`XloiCLA;vh2@jX?t0&xK1RYtv%%!QhndW|lT%!Topa|W}*p@F$qtV<(vVZN+L zW3uIlF`0Yjf=t|}WGp+;Y|M0wWwY|N333O2xj|>!i>Qs=Wwa=XHjK|+Q5oYC5n~*- zTT?un)D1DuKTj1$YC8t;beKb_Km&Tn#a<1?&;uMOArWHmX#gX7@<9tav}n+)L5r61 zghI5vo~N*J>|=Tvi*2LtkpAur?mIYo){m9450&X9-wvW};&b#8d@XLS19H4~&bn>gM%NP)%=^`d&ZAab=8} z^?fST!NK%z9gWd0o7FyldFE@!EUG^KS6k@zVw} zTmhX;Q4y-r+E&8k;zjh!p$VC0P+@-yd3x09RN8Mv^NXtjdOf5Pn##0iY4AaKuT}c3 z^s)4sbcb}8^kKg_dL#C$5>vx8GJj(}V?Jjt0mqzVnwY;c=a_@caaYXOuf08rYwd0M z5*x{utb%jCzO~kXP81^=A_@`3iGoBUL@6#7C-M_TijqX5&@;rfZn|E7zg)C1A8X~T z>g(qsCqN6cQHd5xk!!@Nk_s2YGK|{yoH&%Sfovoze`VKBB751Xf*;S1lBYTyME{kTCwgW<3QG z0W5$rh8hO6gkmI=^$ZNfL@+SP#@Pfyz8gjJ81(v(zdHS!^`GE@bXv@au?Ur1Kkubd zYRHDo7emU!&aN9WmXynPd|2nM{jjR-{EZco?t_o%gC_xmP2=t>vj6>Ya*w=xT|#>9 z1Y9gzBZ`KLfnsPrO%}=Ccnsf-W`Pn*q*2~}GDQw*5TG)ONB>&4>3PkXPX_&V(%yO+wd{?wYz{j%cEKKb6azmMKWN+5Z)1Pa^q3`Ip#v2P&I zPQp}@5XCSeFJ~l*W>^XEA_oRb`C@M$PL{4(VzM0mYs;WvA>+os6BDb*$yHa^G_^Vs zXK~_+@J;%pv2n^1 zmktcNkf3h3)mB|{Wa^=+&7MP>E57V#NxeVfSl zbw7VK>a4COjE$DJ9B-#$oD4yW_8fkIdS)NUdOsK3U^PtG5OzjOG-&}D~s1$Bj4lGD4+{Q4WL=O{6*EW^+|ax!g= zl0a~zG`&K#L@cY`@kEi+a_c|NEf5|2Qh91`*r$rXf}@6!dlo*PUH0FKXRQks4U4?< zKq!5FC6t;=CFXsTv_#o>>x+>2|JXL^+@g#_?q}l;*PaY2-8raxt7Y45KTDGE!H(w2 zi$$&N+@!Ean)xO5UQ78eCcLLBX&tz&zPxd@()ZJc;So8(^0M1OS2j+lnbXXj-B~_hP0LYP*TcdCO&go4>hpYOgi8mX$=`i`=k(GFuZ8Qg z|M+g|;edLP!nC%zGBt4T#mufME#s5bB-~!HcHQ*7jlVM}?`&DN+y6Vs3>npE`7&yB w_9IDsi`jd_Nj7Dy?8#`jEzpjLy6V4b=c)Y9e$@ZGR=KbHi<_eY?^xUZ2Vz_^u>b%7 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xhtml.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xhtml.jpg deleted file mode 100644 index 5c315043c556e117204fe00dea8ccb09b78a4ad7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3670 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 TkFQwVx%vf9m+!LAl(qd2)_xf3 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xlsx.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xlsx.jpg deleted file mode 100644 index ed4cbbef15fa773d7c984fc49f1be8c64284d5e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4507 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 A8vpI6+RQ^puF8Qa(f3Xv&kD*i&6 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 U_SeOwk~;BupE#iJVBH)42c0w1c>n+a diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/zip.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/zip.jpg deleted file mode 100644 index bd30b1cd805761cbfc094e3aa8c5a34dd25370a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3495 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/info.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/info.png deleted file mode 100644 index dfb3971d01d1f4e9733aac404b2f28c8e257d2b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1432 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 HqM!T+FLlTe diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/rename.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/rename.png deleted file mode 100644 index 82d9f13f638e0aa41bc3409814e6a59b106fc729..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2022 zcmah}2{fB)8jd9iv9(1kVMI{MjaXVLiKHqmsoJBLQOyk^QX-ZhXojj@+e|gp4K3$d zYCA})ts>U8WT=)@rmGC0F;Q%1TXQtPcq~{;MMZ)lZH3i9}>OOO{<8`Ngtl6=pS4H`b;&)1sZ!lJG;Ks zYd2vxhnYJ!O0Xx>ALVQLWZbN-z5B}WMs7LudZBBUuzt`*X0UqR4ax28J7C_S{^{ky zlx~(>?-KW?UAGN`w#4jr1DOc-_6T)dj@G84=ZnFx$1ZAZ;O$L%1L)nV&dO^WS?Ox& zTbw%w*aO|h_HO!k`78aV3+gp;d=QpD6oP7?kYzLlxl=w7uqH$Zx4z~YCHmDADkrMJ za!EXw)o7XEb2YEAVkiyVC~(!N3iQ418003RCJ)Xm$Nr%Sjuok(D6r^3z_5 zCBj{JAbc#rF6W=!X@7m7(Sj`YEW>oyMYjF@zAxT;SW2W9Sifiiqp6niY=;UKEQ}?JTK(HtHly2y7t!^&b91QfK2pT+lE!?On051q zo|U*xdA5PB{aLBkMoJ6JNx%LPuaWyDWk3GwV!y$`4!i*OLfAOfU$tAjTNzP7uFx2q zz?@Ih!rU|Dm~zZ^OgP3I)XwQFmR}QM$1vbVE7u%o*Sy?PWHgjiN2aKbWd(%32`f5c z?CsW*G^6qUx`;1&fQ9kY8p(gkEuU#wS(M-CQ{2&Q(PTmD&$~WKLjEkPd052=bQkot zi}XCLng#V6Ey}&;Wh3YsS~Dn*JA3E-%`7&$Fw59Eb2;1nS@*QHbVDJ3^W5e^-aVQ1 z-CR`*GbQT{^r(M3Tvt_hNd7|46RUtX zPU-4>ht*%bH?fI-($bk-V%T~Kapi-<_;%}wxG_b>PyU4Ty-v)+nNa@MGt35XBCMnW>8J5BW%EzZd{OK^!ZnN&)ikXaWGz@^q3f%h&ZZI*7?Irvx(tspf1( zq! z;BYuLIyeOFML79oyLe@f2xYM%(I`}We7t$QwK+4IhO)G?vqM=}p{%TsVgxcKA%aC= zBO_uAej)jlhd_-9il#@h=*$SXgqIS?jAhv)5RyV)pD#KYkzWf%#C&lj_J?9qB2kv+ z7O1bx;*D6bN3>%!mBM01lbFnKoP(qZa3X_3qk2&(!3kK@?-5^0Vo?$u|Do%%X$j@; z^8ZgSiyrb@XZ}mD$YmRQsua{p80FVe+FgM*0e{d&we$Q3W; z9{~UPJChh7F)J@ABpMa2Ra#L{wB1=eGVg z79gBZj!iQ4x-VmLs76LdSlfMFBo}mtR{^QIS?qu&vw=teb?UO7GVI zZQUZ1NNcIrt_hR(fzI=f(q8IJJWW@@w69rAX8~{b@%j9%V{Mm^vciV7_4TEjNdFC} z$qLvo3l{;XHjLfA`4_bZuU`MFhUT&3E zu-rQZf#>?1%21M`2d!NCE=P8j#;fPb-}X+?KP#s|y_);89qb;M@U#VvLL~!TNR&-2 zKkE#oD$+;G_k&D;{m@N>=ZtB1H;?sV@hlnVHPYl<%@Lw-b22=3&i j$wE%=+r3DUk&*&*E1O9(C*EmG{v_fFH$v_4?^6E_dS+WM diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/size.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/size.png deleted file mode 100644 index abbc744873dbed7b76ccc58636bb37b078fac629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2798 zcmb_ddpuO@8lGInB~rQHwrSAV+B3swW0o;fjNEb?mnfQsMorAc%wWQtR3x;whIC4$ zy~zaokT8mbP>wVB}JSWDUQxQ=by8FzqQu4p7(j*=X>67t#2i|yV@(t zYsrH^AVo(9JVA8dC_ZJuqO0EIA_)YNGN9Pnx;xt1Lfo13U`i+%1hU)|?>$KG^HRYk z(g`_gIEb%(LehP{x97epZLQ))uwz>8xRYA$NRP3>Fkq2bpe@rka)r+OlvaP&Q*OGy+-{FQroGpC~oX6?EK zC--Z+@u+ICY&95D-4l$gAQ2@sglW&bY1+4-!Mw8KR1&l888RiT!gNsyaVdOiEa0T? z+~wS=ph~60fo(HhwTZaL=>u8jAOdF0~5b9e#4nMTHEJr=|ozLuzo}kyfYeG-T5NYU+6Swdp zF(b_9Wn6!A+1`sS68b3z>+)NNV`XA-H;SvTNw;Hdi8^<$W|uj}5G9O@zuQbQg}QZa4(&gR zPWfk3+?ng@HSjEtT&pHNqwepezBtb(>*n>i&Ly2iNGd$HOP@v_7?_ES$;^IB%QMcWXD@zHeL^BBOjb+@cek z9}x1ZF z^%v*ntLLv{v;`_v#2?b~hifLr)KvH7$=|E^O?X($A0Zzx?8S5(mgkf;l9hSD?P#hfi2+up0F_yziPacYNb?omTIu3D=mH zW?9KH)3<7#zshzP2J<`t!Qhp&ToHAI^TgW~1O_I23}1ktGo(m{G48Ns14L~IZU z!vRD?Dw$1!aHyd)7QnHFE-?VnSPUbfkR=K`#2V`B;tsK;Gs%#j5vB+f6e|ybKrqaM z!2kijYdKx?WDPycW-|aJGBPp}5ov~?GY=t6(P%W%1cgMQ;35W`b(F>?ao{wT{+A+O z>)^?(ASQ*urqF2+aa~d%J)CU~g^Go~9n15iGQJ7XSj(MbR18w=VU?$)hKZ-M2LE4P*_7awuKt@@apZfqVia&=Qpln%i+hPR z#UQ`KR{2|s`4Px0dT96(-$G>SJ8*4+EuG3>l3A?P0;{pL{FVCNGz$CMoYuf=v)m8U z*>us1$fN{0(%59CNOIZK*E#+txqg#X*ZkvWtFY@w58r|HxVu0e~hg1w-mRfhtipz3{ntT+}*X%TK1BT--?bITJ#aD=&XwT*S36V zmS_jS%8R~)ue%9WzLmad4+ykw$`QZQ%W~5dLbH?q&W*(-Z~G#v%{oJM70>4 z$}M4>Z}UK_Yc^cmAyBGE4<~f}0gF4WyZL0BAdeSs18e(8^XH#jRKVMe5Fx~Zt`8=S zhq`>b%50A!5~tkX!~^z?rg8ZrQ(I;xc@B|4{?i{`pBboYl`Cf1d`!!YuPb+|K6XX! zr~H=ss2xMPv7rnFte2s;T0Fm;fZ9sLTON0ef;t;b8q4er4U9`o7U=r$Vyj{x*UuK! z{|(lae*6R9aF*0Xh2b7r74^R0%ey>uo5PY^q?Ev~!#*y_>u>0T{FnXIo>6V+e zT*++7df7b}l)Ch6EZecJsW#<ccv;8I!V+{+D!4w{9|V(P<8`-VB!0^ ZL886C;wS+oh!+209PM23B{m06{0pK&dc^<$ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/sort.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/sort.png deleted file mode 100644 index d741e10f5d754d657e4aa9c72e3534fc19a0144a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1495 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/up.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/up.png deleted file mode 100644 index d7b3925c03dfca0e474d2cfbc08026eb1cfd8832..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1255 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 P00000NkvXXu0mjfjM_qW diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/php_image_magician.php b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/php_image_magician.php deleted file mode 100644 index 81e9bcd2..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/php_image_magician.php +++ /dev/null @@ -1,3320 +0,0 @@ - resizeImage(150, 100, 0); - # $magicianObj -> saveImage('images/car_small.jpg', 100); - # - # - See end of doc for more examples - - # - # Supported file types include: jpg, png, gif, bmp, psd (read) - # - # - # - # The following functions are taken from phpThumb() [available from - # http://phpthumb.sourceforge.net], and are used with written permission - # from James Heinrich. - # - GD2BMPstring - # - GetPixelColor - # - LittleEndian2String - # - # The following functions are from Marc Hibbins and are used with written - # permission (are also under the Attribution-ShareAlike - # [http://creativecommons.org/licenses/by-sa/3.0/] license. - # - - # - # PhpPsdReader is used with written permission from Tim de Koning. - # [http://www.kingsquare.nl/phppsdreader] - # - # - # - # Modificatoin history - # Date Initials Ver Description - # 10-05-11 J.C.O 0.0 Initial build - # 01-06-11 J.C.O 0.1.1 * Added reflections - # * Added Rounded corners - # * You can now use PNG interlacing - # * Added shadow - # * Added caption box - # * Added vintage filter - # * Added dynamic image resizing (resize on the fly) - # * minor bug fixes - # 05-06-11 J.C.O 0.1.1.1 * Fixed undefined variables - # 17-06-11 J.C.O 0.1.2 * Added image_batch_class.php class - # * Minor bug fixes - # 26-07-11 J.C.O 0.1.4 * Added support for external images - # * Can now set the crop poisition - # 03-08-11 J.C.O 0.1.5 * Added reset() method to reset resource to - # original input file. - # * Added method addTextToCaptionBox() to - # simplify adding text to a caption box. - # * Added experimental writeIPTC. (not finished) - # * Added experimental readIPTC. (not finished) - # 11-08-11 J.C.O * Added initial border presets. - # 30-08-11 J.C.O * Added 'auto' crop option to crop portrait - # images near the top. - # 08-09-11 J.C.O * Added cropImage() method to allow standalone - # cropping. - # 17-09-11 J.C.O * Added setCropFromTop() set method - set the - # percentage to crop from the top when using - # crop 'auto' option. - # * Added setTransparency() set method - allows you - # to turn transparency off (like when saving - # as a jpg). - # * Added setFillColor() set method - set the - # background color to use instead of transparency. - # 05-11-11 J.C.O 0.1.5.1 * Fixed interlacing option - # 0-07-12 J.C.O 1.0 - # - # Known issues & Limitations: - # ------------------------------- - # Not so much an issue, the image is destroyed on the deconstruct rather than - # when we have finished with it. The reason for this is that we don't know - # when we're finished with it as you can both save the image and display - # it directly to the screen (imagedestroy($this->imageResized)) - # - # Opening BMP files is slow. A test with 884 bmp files processed in a loop - # takes forever - over 5 min. This test inlcuded opening the file, then - # getting and displaying its width and height. - # - # $forceStretch: - # ------------------------------- - # On by default. - # $forceStretch can be disabled by calling method setForceStretch with false - # parameter. If disabled, if an images original size is smaller than the size - # specified by the user, the original size will be used. This is useful when - # dealing with small images. - # - # If enabled, images smaller than the size specified will be stretched to - # that size. - # - # Tips: - # ------------------------------- - # * If you're resizing a transparent png and saving it as a jpg, set - # $keepTransparency to false with: $magicianObj->setTransparency(false); - # - # FEATURES: - # * EASY TO USE - # * BMP SUPPORT (read & write) - # * PSD (photoshop) support (read) - # * RESIZE IMAGES - # - Preserve transparency (png, gif) - # - Apply sharpening (jpg) (requires PHP >= 5.1.0) - # - Set image quality (jpg, png) - # - Resize modes: - # - exact size - # - resize by width (auto height) - # - resize by height (auto width) - # - auto (automatically determine the best of the above modes to use) - # - crop - resize as best as it can then crop the rest - # - Force stretching of smaller images (upscale) - # * APPLY FILTERS - # - Convert to grey scale - # - Convert to black and white - # - Convert to sepia - # - Convert to negative - # * ROTATE IMAGES - # - Rotate using predefined "left", "right", or "180"; or any custom degree amount - # * EXTRACT EXIF DATA (requires exif module) - # - make - # - model - # - date - # - exposure - # - aperture - # - f-stop - # - iso - # - focal length - # - exposure program - # - metering mode - # - flash status - # - creator - # - copyright - # * ADD WATERMARK - # - Specify exact x, y placement - # - Or, specify using one of the 9 pre-defined placements such as "tl" - # (for top left), "m" (for middle), "br" (for bottom right) - # - also specify padding from edge amount (optional). - # - Set opacity of watermark (png). - # * ADD BORDER - # * USE HEX WHEN SPECIFYING COLORS (eg: #ffffff) - # * SAVE IMAGE OR OUTPUT TO SCREEN - # - # - # ========================================================================# - - -class imageLib -{ - - private $fileName; - private $image; - protected $imageResized; - private $widthOriginal; # Always be the original width - private $heightOriginal; - private $width; # Current width (width after resize) - private $height; - private $imageSize; - private $fileExtension; - - private $debug = true; - private $errorArray = array(); - - private $forceStretch = true; - private $aggresiveSharpening = false; - - private $transparentArray = array('.png', '.gif'); - private $keepTransparency = true; - private $fillColorArray = array('r'=>255, 'g'=>255, 'b'=>255); - - private $sharpenArray = array('jpg'); - - private $psdReaderPath; - private $filterOverlayPath; - - private $isInterlace; - - private $captionBoxPositionArray = array(); - - private $fontDir = 'fonts'; - - private $cropFromTopPercent = 10; - - -## -------------------------------------------------------- - - function __construct($fileName) - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Constructor - # Param in: $fileName: File name and path. - # Param out: n/a - # Reference: - # Notes: - # - { - if (!$this->testGDInstalled()) { if ($this->debug) { throw new Exception('The GD Library is not installed.'); }else{ throw new Exception(); }}; - - $this->initialise(); - - // *** Save the image file name. Only store this incase you want to display it - $this->fileName = $fileName; - $this->fileExtension = fix_strtolower(strrchr($fileName, '.')); - - // *** Open up the file - $this->image = $this->openImage($fileName); - - - // *** Assign here so we don't modify the original - $this->imageResized = $this->image; - - // *** If file is an image - if ($this->testIsImage($this->image)) - { - // *** Get width and height - $this->width = imagesx($this->image); - $this->widthOriginal = imagesx($this->image); - $this->height = imagesy($this->image); - $this->heightOriginal = imagesy($this->image); - - - /* Added 15-09-08 - * Get the filesize using this build in method. - * Stores an array of size - * - * $this->imageSize[1] = width - * $this->imageSize[2] = height - * $this->imageSize[3] = width x height - * - */ - $this->imageSize = getimagesize($this->fileName); - - } else { - $this->errorArray[] = 'File is not an image'; - } - } - -## -------------------------------------------------------- - - private function initialise () { - - $this->psdReaderPath = dirname(__FILE__) . '/classPhpPsdReader.php'; - $this->filterOverlayPath = dirname(__FILE__) . '/filters'; - - // *** Set if image should be interlaced or not. - $this->isInterlace = false; - } - - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Resize -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - - public function resizeImage($newWidth, $newHeight, $option = 0, $sharpen = false, $autoRotate = false) - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Resizes the image - # Param in: $newWidth: - # $newHeight: - # $option: 0 / exact = defined size; - # 1 / portrait = keep aspect set height; - # 2 / landscape = keep aspect set width; - # 3 / auto = auto; - # 4 / crop= resize and crop; - # - # $option can also be an array containing options for - # cropping. E.G., array('crop', 'r') - # - # This array only applies to 'crop' and the 'r' refers to - # "crop right". Other value include; tl, t, tr, l, m (default), - # r, bl, b, br, or you can specify your own co-ords (which - # isn't recommended. - # - # $sharpen: true: sharpen (jpg only); - # false: don't sharpen - # Param out: n/a - # Reference: - # Notes: To clarify the $option input: - # 0 = The exact height and width dimensions you set. - # 1 = Whatever height is passed in will be the height that - # is set. The width will be calculated and set automatically - # to a the value that keeps the original aspect ratio. - # 2 = The same but based on the width. We try make the image the - # biggest size we can while stil fitting inside the box size - # 3 = Depending whether the image is landscape or portrait, this - # will automatically determine whether to resize via - # dimension 1,2 or 0 - # 4 = Will resize and then crop the image for best fit - # - # forceStretch can be applied to options 1,2,3 and 4 - # - { - - // *** We can pass in an array of options to change the crop position - $cropPos = 'm'; - if (is_array($option) && fix_strtolower($option[0]) == 'crop') { - $cropPos = $option[1]; # get the crop option - } else if (strpos($option, '-') !== false) { - // *** Or pass in a hyphen seperated option - $optionPiecesArray = explode('-', $option); - $cropPos = end($optionPiecesArray); - } - - // *** Check the option is valid - $option = $this->prepOption($option); - - // *** Make sure the file passed in is valid - if (!$this->image) { if ($this->debug) { throw new Exception('file ' . $this->getFileName() .' is missing or invalid'); }else{ throw new Exception(); }}; - - // *** Get optimal width and height - based on $option - $dimensionsArray = $this->getDimensions($newWidth, $newHeight, $option); - - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - - // *** Resample - create image canvas of x, y size - $this->imageResized = imagecreatetruecolor($optimalWidth, $optimalHeight); - $this->keepTransparancy($optimalWidth, $optimalHeight, $this->imageResized); - imagecopyresampled($this->imageResized, $this->image, 0, 0, 0, 0, $optimalWidth, $optimalHeight, $this->width, $this->height); - - - // *** If '4', then crop too - if ($option == 4 || $option == 'crop') { - - if (($optimalWidth >= $newWidth && $optimalHeight >= $newHeight)) { - $this->crop($optimalWidth, $optimalHeight, $newWidth, $newHeight, $cropPos); - } - } - - // *** If Rotate. - if ($autoRotate) { - - $exifData = $this->getExif(false); - if (count($exifData) > 0) { - - switch($exifData['orientation']) { - case 8: - $this->imageResized = imagerotate($this->imageResized,90,0); - break; - case 3: - $this->imageResized = imagerotate($this->imageResized,180,0); - break; - case 6: - $this->imageResized = imagerotate($this->imageResized,-90,0); - break; - } - } - } - - // *** Sharpen image (if jpg and the user wishes to do so) - if ($sharpen && in_array($this->fileExtension, $this->sharpenArray)) { - - // *** Sharpen - $this->sharpen(); - } - } - -## -------------------------------------------------------- - - public function cropImage($newWidth, $newHeight, $cropPos = 'm') - # Author: Jarrod Oberto - # Date: 08-09-11 - # Purpose: Crops the image - # Param in: $newWidth: crop with - # $newHeight: crop height - # $cropPos: Can be any of the following: - # tl, t, tr, l, m, r, bl, b, br, auto - # Or: - # a custom position such as '30x50' - # Param out: n/a - # Reference: - # Notes: - # - { - - // *** Make sure the file passed in is valid - if (!$this->image) { if ($this->debug) { throw new Exception('file ' . $this->getFileName() .' is missing or invalid'); }else{ throw new Exception(); }}; - - $this->imageResized = $this->image; - $this->crop($this->width, $this->height, $newWidth, $newHeight, $cropPos); - - } - -## -------------------------------------------------------- - - private function keepTransparancy($width, $height, $im) - # Author: Jarrod Oberto - # Date: 08-04-11 - # Purpose: Keep transparency for png and gif image - # Param in: - # Param out: n/a - # Reference: - # Notes: - # - { - // *** If PNG, perform some transparency retention actions (gif untested) - if (in_array($this->fileExtension, $this->transparentArray) && $this->keepTransparency) { - imagealphablending($im, false); - imagesavealpha($im, true); - $transparent = imagecolorallocatealpha($im, 255, 255, 255, 127); - imagefilledrectangle($im, 0, 0, $width, $height, $transparent); - } else { - $color = imagecolorallocate($im, $this->fillColorArray['r'], $this->fillColorArray['g'], $this->fillColorArray['b']); - imagefilledrectangle($im, 0, 0, $width, $height, $color); - } - } - -## -------------------------------------------------------- - - private function crop($optimalWidth, $optimalHeight, $newWidth, $newHeight, $cropPos) - # Author: Jarrod Oberto - # Date: 15-09-08 - # Purpose: Crops the image - # Param in: $newWidth: - # $newHeight: - # Param out: n/a - # Reference: - # Notes: - # - { - - // *** Get cropping co-ordinates - $cropArray = $this->getCropPlacing($optimalWidth, $optimalHeight, $newWidth, $newHeight, $cropPos); - $cropStartX = $cropArray['x']; - $cropStartY = $cropArray['y']; - - // *** Crop this bad boy - $crop = imagecreatetruecolor($newWidth , $newHeight); - $this->keepTransparancy($optimalWidth, $optimalHeight, $crop); - imagecopyresampled($crop, $this->imageResized, 0, 0, $cropStartX, $cropStartY, $newWidth, $newHeight , $newWidth, $newHeight); - - $this->imageResized = $crop; - - // *** Set new width and height to our variables - $this->width = $newWidth; - $this->height = $newHeight; - - } - -## -------------------------------------------------------- - - private function getCropPlacing($optimalWidth, $optimalHeight, $newWidth, $newHeight, $pos='m') - # - # Author: Jarrod Oberto - # Date: July 11 - # Purpose: Set the cropping area. - # Params in: - # Params out: (array) the crop x and y co-ordinates. - # Notes: When specifying the exact pixel crop position (eg 10x15), be - # very careful as it's easy to crop out of the image leaving - # black borders. - # - { - $pos = fix_strtolower($pos); - - // *** If co-ords have been entered - if (strstr($pos, 'x')) { - $pos = str_replace(' ', '', $pos); - - $xyArray = explode('x', $pos); - list($cropStartX, $cropStartY) = $xyArray; - - } else { - - switch ($pos) { - case 'tl': - $cropStartX = 0; - $cropStartY = 0; - break; - - case 't': - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = 0; - break; - - case 'tr': - $cropStartX = $optimalWidth - $newWidth; - $cropStartY = 0; - break; - - case 'l': - $cropStartX = 0; - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - break; - - case 'm': - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - break; - - case 'r': - $cropStartX = $optimalWidth - $newWidth; - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - break; - - case 'bl': - $cropStartX = 0; - $cropStartY = $optimalHeight - $newHeight; - break; - - case 'b': - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = $optimalHeight - $newHeight; - break; - - case 'br': - $cropStartX = $optimalWidth - $newWidth; - $cropStartY = $optimalHeight - $newHeight; - break; - - case 'auto': - // *** If image is a portrait crop from top, not center. v1.5 - if ($optimalHeight > $optimalWidth) { - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = ($this->cropFromTopPercent /100) * $optimalHeight; - } else { - - // *** Else crop from the center - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - } - break; - - default: - // *** Default to center - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - break; - } - } - - return array('x' => $cropStartX, 'y' => $cropStartY); - } - -## -------------------------------------------------------- - - private function getDimensions($newWidth, $newHeight, $option) - # Author: Jarrod Oberto - # Date: 17-11-09 - # Purpose: Get new image dimensions based on user specificaions - # Param in: $newWidth: - # $newHeight: - # Param out: Array of new width and height values - # Reference: - # Notes: If $option = 3 then this function is call recursivly - # - # To clarify the $option input: - # 0 = The exact height and width dimensions you set. - # 1 = Whatever height is passed in will be the height that - # is set. The width will be calculated and set automatically - # to a the value that keeps the original aspect ratio. - # 2 = The same but based on the width. - # 3 = Depending whether the image is landscape or portrait, this - # will automatically determine whether to resize via - # dimension 1,2 or 0. - # 4 = Resize the image as much as possible, then crop the - # remainder. - { - - switch (strval($option)) - { - case '0': - case 'exact': - $optimalWidth = $newWidth; - $optimalHeight= $newHeight; - break; - case '1': - case 'portrait': - $dimensionsArray = $this->getSizeByFixedHeight($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - break; - case '2': - case 'landscape': - $dimensionsArray = $this->getSizeByFixedWidth($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - break; - case '3': - case 'auto': - $dimensionsArray = $this->getSizeByAuto($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - break; - case '4': - case 'crop': - $dimensionsArray = $this->getOptimalCrop($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - break; - } - - return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight); - } - -## -------------------------------------------------------- - - private function getSizeByFixedHeight($newWidth, $newHeight) - { - // *** If forcing is off... - if (!$this->forceStretch) { - - // *** ...check if actual height is less than target height - if ($this->height < $newHeight) { - return array('optimalWidth' => $this->width, 'optimalHeight' => $this->height); - } - } - - $ratio = $this->width / $this->height; - - $newWidth = $newHeight * $ratio; - - //return $newWidth; - return array('optimalWidth' => $newWidth, 'optimalHeight' => $newHeight); - } - -## -------------------------------------------------------- - - private function getSizeByFixedWidth($newWidth, $newHeight) - { - // *** If forcing is off... - if (!$this->forceStretch) { - - // *** ...check if actual width is less than target width - if ($this->width < $newWidth) { - return array('optimalWidth' => $this->width, 'optimalHeight' => $this->height); - } - } - - $ratio = $this->height / $this->width; - - $newHeight = $newWidth * $ratio; - - //return $newHeight; - return array('optimalWidth' => $newWidth, 'optimalHeight' => $newHeight); - } - -## -------------------------------------------------------- - - private function getSizeByAuto($newWidth, $newHeight) - # Author: Jarrod Oberto - # Date: 19-08-08 - # Purpose: Depending on the height, choose to resize by 0, 1, or 2 - # Param in: The new height and new width - # Notes: - # - { - // *** If forcing is off... - if (!$this->forceStretch) { - - // *** ...check if actual size is less than target size - if ($this->width < $newWidth && $this->height < $newHeight) { - return array('optimalWidth' => $this->width, 'optimalHeight' => $this->height); - } - } - - if ($this->height < $this->width) - // *** Image to be resized is wider (landscape) - { - //$optimalWidth = $newWidth; - //$optimalHeight= $this->getSizeByFixedWidth($newWidth); - - $dimensionsArray = $this->getSizeByFixedWidth($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - } - elseif ($this->height > $this->width) - // *** Image to be resized is taller (portrait) - { - //$optimalWidth = $this->getSizeByFixedHeight($newHeight); - //$optimalHeight= $newHeight; - - $dimensionsArray = $this->getSizeByFixedHeight($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - } - else - // *** Image to be resizerd is a square - { - - if ($newHeight < $newWidth) { - //$optimalWidth = $newWidth; - //$optimalHeight= $this->getSizeByFixedWidth($newWidth); - $dimensionsArray = $this->getSizeByFixedWidth($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - } else if ($newHeight > $newWidth) { - //$optimalWidth = $this->getSizeByFixedHeight($newHeight); - //$optimalHeight= $newHeight; - $dimensionsArray = $this->getSizeByFixedHeight($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - } else { - // *** Sqaure being resized to a square - $optimalWidth = $newWidth; - $optimalHeight= $newHeight; - } - } - - return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight); - } - -## -------------------------------------------------------- - - private function getOptimalCrop($newWidth, $newHeight) - # Author: Jarrod Oberto - # Date: 17-11-09 - # Purpose: Get optimal crop dimensions - # Param in: width and height as requested by user (fig 3) - # Param out: Array of optimal width and height (fig 2) - # Reference: - # Notes: The optimal width and height return are not the same as the - # same as the width and height passed in. For example: - # - # - # |-----------------| |------------| |-------| - # | | => |**| |**| => | | - # | | |**| |**| | | - # | | |------------| |-------| - # |-----------------| - # original optimal crop - # size size size - # Fig 1 2 3 - # - # 300 x 250 150 x 125 150 x 100 - # - # The optimal size is the smallest size (that is closest to the crop size) - # while retaining proportion/ratio. - # - # The crop size is the optimal size that has been cropped on one axis to - # make the image the exact size specified by the user. - # - # * represent cropped area - # - { - - // *** If forcing is off... - if (!$this->forceStretch) { - - // *** ...check if actual size is less than target size - if ($this->width < $newWidth && $this->height < $newHeight) { - return array('optimalWidth' => $this->width, 'optimalHeight' => $this->height); - } - } - - $heightRatio = $this->height / $newHeight; - $widthRatio = $this->width / $newWidth; - - if ($heightRatio < $widthRatio) { - $optimalRatio = $heightRatio; - } else { - $optimalRatio = $widthRatio; - } - - $optimalHeight = round( $this->height / $optimalRatio ); - $optimalWidth = round( $this->width / $optimalRatio ); - - return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight); - } - -## -------------------------------------------------------- - - private function sharpen() - # Author: Jarrod Oberto - # Date: 08 04 2011 - # Purpose: Sharpen image - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # Credit: Incorporates Joe Lencioni (August 6, 2008) code - { - - if (version_compare(PHP_VERSION, '5.1.0') >= 0) { - - // *** - if ($this->aggresiveSharpening) { # A more aggressive sharpening solution - - $sharpenMatrix = array( array( -1, -1, -1 ), - array( -1, 16, -1 ), - array( -1, -1, -1 ) ); - $divisor = 8; - $offset = 0; - - imageconvolution($this->imageResized, $sharpenMatrix, $divisor, $offset); - } - else # More subtle and personally more desirable - { - $sharpness = $this->findSharp($this->widthOriginal, $this->width); - - $sharpenMatrix = array( - array(-1, -2, -1), - array(-2, $sharpness + 12, -2), //Lessen the effect of a filter by increasing the value in the center cell - array(-1, -2, -1) - ); - $divisor = $sharpness; // adjusts brightness - $offset = 0; - imageconvolution($this->imageResized, $sharpenMatrix, $divisor, $offset); - } - } - else - { - if ($this->debug) { throw new Exception('Sharpening required PHP 5.1.0 or greater.'); } - } - } - - ## -------------------------------------------------------- - - private function sharpen2($level) - { - $sharpenMatrix = array( - array($level, $level, $level), - array($level, (8*$level)+1, $level), //Lessen the effect of a filter by increasing the value in the center cell - array($level, $level, $level) - ); - - } - -## -------------------------------------------------------- - - private function findSharp($orig, $final) - # Author: Ryan Rud (http://adryrun.com) - # Purpose: Find optimal sharpness - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - $final = $final * (750.0 / $orig); - $a = 52; - $b = -0.27810650887573124; - $c = .00047337278106508946; - - $result = $a + $b * $final + $c * $final * $final; - - return max(round($result), 0); - } - -## -------------------------------------------------------- - - private function prepOption($option) - # Author: Jarrod Oberto - # Purpose: Prep option like change the passed in option to lowercase - # Param in: (str/int) $option: eg. 'exact', 'crop'. 0, 4 - # Param out: lowercase string - # Reference: - # Notes: - # - { - if (is_array($option)) { - if (fix_strtolower($option[0]) == 'crop' && count($option) == 2) { - return 'crop'; - } else { - throw new Exception('Crop resize option array is badly formatted.'); - } - } else if (strpos($option, 'crop') !== false) { - return 'crop'; - } - - if (is_string($option)) { - return fix_strtolower($option); - } - - return $option; - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Presets -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - -# -# Preset are pre-defined templates you can apply to your image. -# -# These are inteded to be applied to thumbnail images. -# - - - public function borderPreset($preset) - { - switch ($preset) - { - - case 'simple': - $this->addBorder(7, '#fff'); - $this->addBorder(6, '#f2f1f0'); - $this->addBorder(2, '#fff'); - $this->addBorder(1, '#ccc'); - break; - default: - break; - } - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Draw border -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addBorder($thickness = 1, $rgbArray = array(255, 255, 255)) - # Author: Jarrod Oberto - # Date: 05-05-11 - # Purpose: Add a border to the image - # Param in: - # Param out: - # Reference: - # Notes: This border is added to the INSIDE of the image - # - { - if ($this->imageResized) { - - $rgbArray = $this->formatColor($rgbArray); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - - - $x1 = 0; - $y1 = 0; - $x2 = ImageSX($this->imageResized) - 1; - $y2 = ImageSY($this->imageResized) - 1; - - $rgbArray = ImageColorAllocate($this->imageResized, $r, $g, $b); - - - for($i = 0; $i < $thickness; $i++) { - ImageRectangle($this->imageResized, $x1++, $y1++, $x2--, $y2--, $rgbArray); - } - } - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Gray Scale -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function greyScale() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image greyscale - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - } - - } - - ## -------------------------------------------------------- - - public function greyScaleEnhanced() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image greyscale - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -15); - imagefilter($this->imageResized, IMG_FILTER_BRIGHTNESS, 2); - $this->sharpen($this->width); - } - } - - ## -------------------------------------------------------- - - public function greyScaleDramatic() - # Alias of gd_filter_monopin - { - $this->gd_filter_monopin(); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Black 'n White -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function blackAndWhite() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image black and white - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -1000); - } - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Negative -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function negative() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image negative - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - - imagefilter($this->imageResized, IMG_FILTER_NEGATE); - } - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Sepia -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function sepia() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image sepia - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - imagefilter($this->imageResized, IMG_FILTER_BRIGHTNESS, -10); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -20); - imagefilter($this->imageResized, IMG_FILTER_COLORIZE, 60, 30, -15); - } - } - - ## -------------------------------------------------------- - - public function sepia2() - - { - if ($this->imageResized) { - - $total = imagecolorstotal( $this->imageResized ); - for ( $i = 0; $i < $total; $i++ ) { - $index = imagecolorsforindex( $this->imageResized, $i ); - $red = ( $index["red"] * 0.393 + $index["green"] * 0.769 + $index["blue"] * 0.189 ) / 1.351; - $green = ( $index["red"] * 0.349 + $index["green"] * 0.686 + $index["blue"] * 0.168 ) / 1.203; - $blue = ( $index["red"] * 0.272 + $index["green"] * 0.534 + $index["blue"] * 0.131 ) / 2.140; - imagecolorset( $this->imageResized, $i, $red, $green, $blue ); - } - - - } - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Vintage -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function vintage() - # Alias of gd_filter_monopin - { - $this->gd_filter_vintage(); - } - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Presets By Marc Hibbins -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - - /** Apply 'Monopin' preset */ - public function gd_filter_monopin() - { - - if ($this->imageResized) { - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - imagefilter($this->imageResized, IMG_FILTER_BRIGHTNESS, -15); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -15); - $this->imageResized = $this->gd_apply_overlay($this->imageResized, 'vignette', 100); - } - } - - ## -------------------------------------------------------- - - public function gd_filter_vintage() - { - if ($this->imageResized) { - $this->imageResized = $this->gd_apply_overlay($this->imageResized, 'vignette', 45); - imagefilter($this->imageResized, IMG_FILTER_BRIGHTNESS, 20); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -35); - imagefilter($this->imageResized, IMG_FILTER_COLORIZE, 60, -10, 35); - imagefilter($this->imageResized, IMG_FILTER_SMOOTH, 7); - $this->imageResized = $this->gd_apply_overlay($this->imageResized, 'scratch', 10); - } - } - - ## -------------------------------------------------------- - - /** Apply a PNG overlay */ - private function gd_apply_overlay($im, $type, $amount) - # - # Original Author: Marc Hibbins - # License: Attribution-ShareAlike 3.0 - # Purpose: - # Params in: - # Params out: - # Notes: - # - { - $width = imagesx($im); - $height = imagesy($im); - $filter = imagecreatetruecolor($width, $height); - - imagealphablending($filter, false); - imagesavealpha($filter, true); - - $transparent = imagecolorallocatealpha($filter, 255, 255, 255, 127); - imagefilledrectangle($filter, 0, 0, $width, $height, $transparent); - - // *** Resize overlay - $overlay = $this->filterOverlayPath . '/' . $type . '.png'; - $png = imagecreatefrompng($overlay); - imagecopyresampled($filter, $png, 0, 0, 0, 0, $width, $height, imagesx($png), imagesy($png)); - - $comp = imagecreatetruecolor($width, $height); - imagecopy($comp, $im, 0, 0, 0, 0, $width, $height); - imagecopy($comp, $filter, 0, 0, 0, 0, $width, $height); - imagecopymerge($im, $comp, 0, 0, 0, 0, $width, $height, $amount); - - imagedestroy($comp); - return $im; - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Colorise -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function image_colorize($rgb) { - imageTrueColorToPalette($this->imageResized,true,256); - $numColors = imageColorsTotal($this->imageResized); - - for ($x = 0; $x < $numColors; $x++) { - list($r,$g,$b) = array_values(imageColorsForIndex($this->imageResized,$x)); - - // calculate grayscale in percent - $grayscale = ($r + $g + $b) / 3 / 0xff; - - imageColorSet($this->imageResized,$x, - $grayscale * $rgb[0], - $grayscale * $rgb[1], - $grayscale * $rgb[2] - ); - - } - - return true; - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Reflection -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addReflection($reflectionHeight = 50, $startingTransparency = 30, $inside = false, $bgColor = '#fff', $stretch=false, $divider = 0) - { - - // *** Convert color - $rgbArray = $this->formatColor($bgColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - - $im = $this->imageResized; - $li = imagecreatetruecolor($this->width, 1); - - $bgc = imagecolorallocate($li, $r, $g, $b); - imagefilledrectangle($li, 0, 0, $this->width, 1, $bgc); - - $bg = imagecreatetruecolor($this->width, $reflectionHeight); - $wh = imagecolorallocate($im, 255, 255, 255); - - $im = imagerotate($im, -180, $wh); - imagecopyresampled($bg, $im, 0, 0, 0, 0, $this->width, $this->height, $this->width, $this->height); - - $im = $bg; - - $bg = imagecreatetruecolor($this->width, $reflectionHeight); - - for ($x = 0; $x < $this->width; $x++) { - imagecopy($bg, $im, $x, 0, $this->width-$x -1, 0, 1, $reflectionHeight); - } - $im = $bg; - - $transaprencyAmount = $this->invertTransparency($startingTransparency, 100); - - - // *** Fade - if ($stretch) { - $step = 100/($reflectionHeight + $startingTransparency); - } else{ - $step = 100/$reflectionHeight; - } - for($i=0; $i<=$reflectionHeight; $i++){ - - if($startingTransparency>100) $startingTransparency = 100; - if($startingTransparency< 1) $startingTransparency = 1; - imagecopymerge($bg, $li, 0, $i, 0, 0, $this->width, 1, $startingTransparency); - $startingTransparency+=$step; - } - - // *** Apply fade - imagecopymerge($im, $li, 0, 0, 0, 0, $this->width, $divider, 100); // Divider - - - // *** width, height of reflection. - $x = imagesx($im); - $y = imagesy($im); - - - // *** Determines if the reflection should be displayed inside or outside the image - if ($inside) { - - // Create new blank image with sizes. - $final = imagecreatetruecolor($this->width, $this->height); - - imagecopymerge ($final, $this->imageResized, 0, 0, 0, $reflectionHeight, $this->width, $this->height - $reflectionHeight, 100); - imagecopymerge ($final, $im, 0, $this->height - $reflectionHeight, 0, 0, $x, $y, 100); - - } else { - - // Create new blank image with sizes. - $final = imagecreatetruecolor($this->width, $this->height + $y); - - imagecopymerge ($final, $this->imageResized, 0, 0, 0, 0, $this->width, $this->height, 100); - imagecopymerge ($final, $im, 0, $this->height, 0, 0, $x, $y, 100); - } - - $this->imageResized = $final; - - imagedestroy($li); - imagedestroy($im); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Rotate -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function rotate($value = 90, $bgColor = 'transparent') - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Rotate image - # Param in: (mixed) $degrees: (int) number of degress to rotate image - # (str) param "left": rotate left - # (str) param "right": rotate right - # (str) param "upside": upside-down image - # Param out: - # Reference: - # Notes: The default direction of imageRotate() is counter clockwise. - # - { - if ($this->imageResized) { - - if (is_integer($value)) { - $degrees = $value; - } - - // *** Convert color - $rgbArray = $this->formatColor($bgColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - if (isset($rgbArray['a'])) {$a = $rgbArray['a']; } - - if (is_string($value)) { - - $value = fix_strtolower($value); - - switch ($value) { - case 'left': - $degrees = 90; - break; - case 'right': - $degrees = 270; - break; - case 'upside': - $degrees = 180; - break; - default: - break; - } - - } - - // *** The default direction of imageRotate() is counter clockwise - // * This makes it clockwise - $degrees = 360 - $degrees; - - // *** Create background color - $bg = ImageColorAllocateAlpha($this->imageResized, $r, $g, $b, $a); - - // *** Fill with background - ImageFill($this->imageResized, 0, 0 , $bg); - - // *** Rotate - $this->imageResized = imagerotate($this->imageResized, $degrees, $bg); // Rotate 45 degrees and allocated the transparent colour as the one to make transparent (obviously) - - // Ensure alpha transparency - ImageSaveAlpha($this->imageResized,true); - - } - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Round corners -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function roundCorners($radius = 5, $bgColor = 'transparent') - # Author: Jarrod Oberto - # Date: 19-05-2011 - # Purpose: Create rounded corners on your image - # Param in: (int) radius = the amount of curvature - # (mixed) $bgColor = the corner background color - # Param out: n/a - # Reference: - # Notes: - # - { - - // *** Check if the user wants transparency - $isTransparent = false; - if (!is_array($bgColor)) { - if (fix_strtolower($bgColor) == 'transparent') { - $isTransparent = true; - } - } - - - // *** If we use transparency, we need to color our curved mask with a unique color - if ($isTransparent) { - $bgColor = $this->findUnusedGreen(); - } - - // *** Convert color - $rgbArray = $this->formatColor($bgColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - if (isset($rgbArray['a'])) {$a = $rgbArray['a']; } - - - - // *** Create top-left corner mask (square) - $cornerImg = imagecreatetruecolor($radius, $radius); - //$cornerImg = imagecreate($radius, $radius); - - //imagealphablending($cornerImg, true); - //imagesavealpha($cornerImg, true); - - //imagealphablending($this->imageResized, false); - //imagesavealpha($this->imageResized, true); - - // *** Give it a color - $maskColor = imagecolorallocate($cornerImg, 0, 0, 0); - - - - // *** Replace the mask color (black) to transparent - imagecolortransparent($cornerImg, $maskColor); - - - - // *** Create the image background color - $imagebgColor = imagecolorallocate($cornerImg, $r, $g, $b); - - - - // *** Fill the corner area to the user defined color - imagefill($cornerImg, 0, 0, $imagebgColor); - - - imagefilledellipse($cornerImg, $radius, $radius, $radius * 2, $radius * 2, $maskColor ); - - - // *** Map to top left corner - imagecopymerge($this->imageResized, $cornerImg, 0, 0, 0, 0, $radius, $radius, 100); #tl - - // *** Map rounded corner to other corners by rotating and applying the mask - $cornerImg = imagerotate($cornerImg, 90, 0); - imagecopymerge($this->imageResized, $cornerImg, 0, $this->height - $radius, 0, 0, $radius, $radius, 100); #bl - - $cornerImg = imagerotate($cornerImg, 90, 0); - imagecopymerge($this->imageResized, $cornerImg, $this->width - $radius, $this->height - $radius, 0, 0, $radius, $radius, 100); #br - - $cornerImg = imagerotate($cornerImg, 90, 0); - imagecopymerge($this->imageResized, $cornerImg, $this->width - $radius, 0, 0, 0, $radius, $radius, 100); #tr - - - // *** If corners are to be transparent, we fill our chromakey color as transparent. - if ($isTransparent) { - //imagecolortransparent($this->imageResized, $imagebgColor); - $this->imageResized = $this->transparentImage($this->imageResized); - imagesavealpha($this->imageResized, true); - } - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Shadow -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addShadow($shadowAngle=45, $blur=15, $bgColor='transparent') - # - # Author: Jarrod Oberto (Adapted from Pascal Naidon) - # Ref: http://www.les-stooges.org/pascal/webdesign/vignettes/index.php?la=en - # Purpose: Add a drop shadow to your image - # Params in: (int) $angle: the angle of the shadow - # (int) $blur: the blur distance - # (mixed) $bgColor: the color of the background - # Params out: - # Notes: - # - { - // *** A higher number results in a smoother shadow - define('STEPS', $blur*2); - - // *** Set the shadow distance - $shadowDistance = $blur*0.25; - - // *** Set blur width and height - $blurWidth = $blurHeight = $blur; - - - if ($shadowAngle == 0) { - $distWidth = 0; - $distHeight = 0; - } else { - $distWidth = $shadowDistance * cos(deg2rad($shadowAngle)); - $distHeight = $shadowDistance * sin(deg2rad($shadowAngle)); - } - - - // *** Convert color - if (fix_strtolower($bgColor) != 'transparent') { - $rgbArray = $this->formatColor($bgColor); - $r0 = $rgbArray['r']; - $g0 = $rgbArray['g']; - $b0 = $rgbArray['b']; - } - - - $image = $this->imageResized; - $width = $this->width; - $height = $this->height; - - - $newImage = imagecreatetruecolor($width, $height); - imagecopyresampled($newImage, $image, 0, 0, 0, 0, $width, $height, $width, $height); - - - // *** RGB - $rgb = imagecreatetruecolor($width+$blurWidth,$height+$blurHeight); - $colour = imagecolorallocate($rgb, 0, 0, 0); - imagefilledrectangle($rgb, 0, 0, $width+$blurWidth, $height+$blurHeight, $colour); - $colour = imagecolorallocate($rgb, 255, 255, 255); - //imagefilledrectangle($rgb, $blurWidth*0.5-$distWidth, $blurHeight*0.5-$distHeight, $width+$blurWidth*0.5-$distWidth, $height+$blurWidth*0.5-$distHeight, $colour); - imagefilledrectangle($rgb, $blurWidth*0.5-$distWidth, $blurHeight*0.5-$distHeight, $width+$blurWidth*0.5-$distWidth, $height+$blurWidth*0.5-$distHeight, $colour); - //imagecopymerge($rgb, $newImage, 1+$blurWidth*0.5-$distWidth, 1+$blurHeight*0.5-$distHeight, 0,0, $width, $height, 100); - imagecopymerge($rgb, $newImage, $blurWidth*0.5-$distWidth, $blurHeight*0.5-$distHeight, 0,0, $width+$blurWidth, $height+$blurHeight, 100); - - - // *** Shadow (alpha) - $shadow = imagecreatetruecolor($width+$blurWidth,$height+$blurHeight); - imagealphablending($shadow, false); - $colour = imagecolorallocate($shadow, 0, 0, 0); - imagefilledrectangle($shadow, 0, 0, $width+$blurWidth, $height+$blurHeight, $colour); - - - for($i=0;$i<=STEPS;$i++) { - - $t = ((1.0*$i)/STEPS); - $intensity = 255*$t*$t; - - $colour = imagecolorallocate($shadow, $intensity, $intensity, $intensity); - $points = array( - $blurWidth*$t, $blurHeight, // Point 1 (x, y) - $blurWidth, $blurHeight*$t, // Point 2 (x, y) - $width, $blurHeight*$t, // Point 3 (x, y) - $width+$blurWidth*(1-$t), $blurHeight, // Point 4 (x, y) - $width+$blurWidth*(1-$t), $height, // Point 5 (x, y) - $width, $height+$blurHeight*(1-$t), // Point 6 (x, y) - $blurWidth, $height+$blurHeight*(1-$t), // Point 7 (x, y) - $blurWidth*$t, $height // Point 8 (x, y) - ); - imagepolygon($shadow, $points, 8, $colour); - } - - for($i=0;$i<=STEPS;$i++) { - - $t = ((1.0*$i)/STEPS); - $intensity = 255*$t*$t; - - $colour = imagecolorallocate($shadow, $intensity, $intensity, $intensity); - imagefilledarc($shadow, $blurWidth-1, $blurHeight-1, 2*(1-$t)*$blurWidth, 2*(1-$t)*$blurHeight, 180, 268, $colour, IMG_ARC_PIE); - imagefilledarc($shadow, $width, $blurHeight-1, 2*(1-$t)*$blurWidth, 2*(1-$t)*$blurHeight, 270, 358, $colour, IMG_ARC_PIE); - imagefilledarc($shadow, $width, $height, 2*(1-$t)*$blurWidth, 2*(1-$t)*$blurHeight, 0, 90, $colour, IMG_ARC_PIE); - imagefilledarc($shadow, $blurWidth-1, $height, 2*(1-$t)*$blurWidth, 2*(1-$t)*$blurHeight, 90, 180, $colour, IMG_ARC_PIE); - } - - - $colour = imagecolorallocate($shadow, 255, 255, 255); - imagefilledrectangle($shadow, $blurWidth, $blurHeight, $width, $height, $colour); - imagefilledrectangle($shadow, $blurWidth*0.5-$distWidth, $blurHeight*0.5-$distHeight, $width+$blurWidth*0.5-1-$distWidth, $height+$blurHeight*0.5-1-$distHeight, $colour); - - - // *** The magic - imagealphablending($rgb, false); - - for ($theX=0;$theX> 16) & 0xFF; - $g = ($colArray >> 8) & 0xFF; - $b = $colArray & 0xFF; - - // *** Get the alpha value for every pixel of the shadow image - $colArray = imagecolorat($shadow,$theX,$theY); - $a = $colArray & 0xFF; - $a = 127-floor($a/2); - $t = $a/128.0; - - // *** Create color - if(fix_strtolower($bgColor) == 'transparent') { - $myColour = imagecolorallocatealpha($rgb,$r,$g,$b,$a); - } else { - $myColour = imagecolorallocate($rgb,$r*(1.0-$t)+$r0*$t,$g*(1.0-$t)+$g0*$t,$b*(1.0-$t)+$b0*$t); - } - - // *** Add color to new rgb image - imagesetpixel($rgb, $theX, $theY, $myColour); - } - } - - imagealphablending($rgb, true); - imagesavealpha($rgb, true); - - $this->imageResized = $rgb; - - imagedestroy($image); - imagedestroy($newImage); - imagedestroy($shadow); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Add Caption Box -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addCaptionBox($side='b', $thickness=50, $padding=0, $bgColor='#000', $transaprencyAmount=30) - # - # Author: Jarrod Oberto - # Date: 26 May 2011 - # Purpose: Add a caption box - # Params in: (str) $side: the side to add the caption box (t, r, b, or l). - # (int) $thickness: how thick you want the caption box to be. - # (mixed) $bgColor: The color of the caption box. - # (int) $transaprencyAmount: The amount of transparency to be - # applied. - # Params out: n/a - # Notes: - # - { - $side = fix_strtolower($side); - - // *** Convert color - $rgbArray = $this->formatColor($bgColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - - $positionArray = $this->calculateCaptionBoxPosition($side, $thickness, $padding); - - // *** Store incase we want to use method addTextToCaptionBox() - $this->captionBoxPositionArray = $positionArray; - - - $transaprencyAmount = $this->invertTransparency($transaprencyAmount, 127, false); - $transparent = imagecolorallocatealpha($this->imageResized, $r, $g, $b, $transaprencyAmount); - imagefilledrectangle($this->imageResized, $positionArray['x1'], $positionArray['y1'], $positionArray['x2'], $positionArray['y2'], $transparent); - } - - ## -------------------------------------------------------- - - public function addTextToCaptionBox($text, $fontColor='#fff', $fontSize = 12, $angle = 0, $font = null) - # - # Author: Jarrod Oberto - # Date: 03 Aug 11 - # Purpose: Simplify adding text to a caption box by automatically - # locating the center of the caption box - # Params in: The usually text paams (less a couple) - # Params out: n/a - # Notes: - # - { - - // *** Get the caption box measurements - if (count($this->captionBoxPositionArray) == 4) { - $x1 = $this->captionBoxPositionArray['x1']; - $x2 = $this->captionBoxPositionArray['x2']; - $y1 = $this->captionBoxPositionArray['y1']; - $y2 = $this->captionBoxPositionArray['y2']; - } else { - if ($this->debug) { throw new Exception('No caption box found.'); }else{ return false; } - } - - - // *** Get text font - $font = $this->getTextFont($font); - - // *** Get text size - $textSizeArray = $this->getTextSize($fontSize, $angle, $font, $text); - $textWidth = $textSizeArray['width']; - $textHeight = $textSizeArray['height']; - - // *** Find the width/height middle points - $boxXMiddle = (($x2 - $x1) / 2); - $boxYMiddle = (($y2 - $y1) / 2); - - // *** Box middle - half the text width/height - $xPos = ($x1 + $boxXMiddle) - ($textWidth/2); - $yPos = ($y1 + $boxYMiddle) - ($textHeight/2); - - $pos = $xPos . 'x' . $yPos; - - $this->addText($text, $pos, $padding = 0, $fontColor, $fontSize, $angle, $font); - - } - - ## -------------------------------------------------------- - - private function calculateCaptionBoxPosition($side, $thickness, $padding) - { - $positionArray = array(); - - switch ($side) { - case 't': - $positionArray['x1'] = 0; - $positionArray['y1'] = $padding; - $positionArray['x2'] = $this->width; - $positionArray['y2'] = $thickness + $padding; - break; - case 'r': - $positionArray['x1'] = $this->width - $thickness - $padding; - $positionArray['y1'] = 0; - $positionArray['x2'] = $this->width - $padding; - $positionArray['y2'] = $this->height; - break; - case 'b': - $positionArray['x1'] = 0; - $positionArray['y1'] = $this->height - $thickness - $padding; - $positionArray['x2'] = $this->width; - $positionArray['y2'] = $this->height - $padding; - break; - case 'l': - $positionArray['x1'] = $padding; - $positionArray['y1'] = 0; - $positionArray['x2'] = $thickness + $padding; - $positionArray['y2'] = $this->height; - break; - - default: - break; - } - - return $positionArray; - - } - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Get EXIF Data -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function getExif($debug=false) - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Get image EXIF data - # Param in: n/a - # Param out: An associate array of EXIF data - # Reference: - # Notes: - # 23 May 13 : added orientation flag -jco - # - { - - if (!$this->debug || !$debug) { $debug = false; } - - // *** Check all is good - check the EXIF library exists and the file exists, too. - if (!$this->testEXIFInstalled()) { if ($debug) { throw new Exception('The EXIF Library is not installed.'); }else{ return array(); }}; - if (!file_exists($this->fileName)) { if ($debug) { throw new Exception('Image not found.'); }else{ return array(); }}; - if ($this->fileExtension != '.jpg') { if ($debug) { throw new Exception('Metadata not supported for this image type.'); }else{ return array(); }}; - $exifData = exif_read_data($this->fileName, 'IFD0'); - - // *** Format the apperture value - $ev = $exifData['ApertureValue']; - $apPeicesArray = explode('/', $ev); - if (count($apPeicesArray) == 2) { - $apertureValue = round($apPeicesArray[0] / $apPeicesArray[1], 2, PHP_ROUND_HALF_DOWN) . ' EV'; - } else { $apertureValue = '';} - - // *** Format the focal length - $focalLength = $exifData['FocalLength']; - $flPeicesArray = explode('/', $focalLength); - if (count($flPeicesArray) == 2) { - $focalLength = $flPeicesArray[0] / $flPeicesArray[1] . '.0 mm'; - } else { $focalLength = '';} - - // *** Format fNumber - $fNumber = $exifData['FNumber']; - $fnPeicesArray = explode('/', $fNumber); - if (count($fnPeicesArray) == 2) { - $fNumber = $fnPeicesArray[0] / $fnPeicesArray[1]; - } else { $fNumber = '';} - - // *** Resolve ExposureProgram - if (isset($exifData['ExposureProgram'])) { $ep = $exifData['ExposureProgram']; } - if (isset($ep)) { $ep = $this->resolveExposureProgram($ep); } - - - // *** Resolve MeteringMode - $mm = $exifData['MeteringMode']; - $mm = $this->resolveMeteringMode($mm); - - // *** Resolve Flash - $flash = $exifData['Flash']; - $flash = $this->resolveFlash($flash); - - - if (isset($exifData['Make'])) { - $exifDataArray['make'] = $exifData['Make']; - } else { $exifDataArray['make'] = ''; } - - if (isset($exifData['Model'])) { - $exifDataArray['model'] = $exifData['Model']; - } else { $exifDataArray['model'] = ''; } - - if (isset($exifData['DateTime'])) { - $exifDataArray['date'] = $exifData['DateTime']; - } else { $exifDataArray['date'] = ''; } - - if (isset($exifData['ExposureTime'])) { - $exifDataArray['exposure time'] = $exifData['ExposureTime'] . ' sec.'; - } else { $exifDataArray['exposure time'] = ''; } - - if ($apertureValue != '') { - $exifDataArray['aperture value'] = $apertureValue; - } else { $exifDataArray['aperture value'] = ''; } - - if (isset($exifData['COMPUTED']['ApertureFNumber'])) { - $exifDataArray['f-stop'] = $exifData['COMPUTED']['ApertureFNumber']; - } else { $exifDataArray['f-stop'] = ''; } - - if (isset($exifData['FNumber'])) { - $exifDataArray['fnumber'] = $exifData['FNumber']; - } else { $exifDataArray['fnumber'] = ''; } - - if ($fNumber != '') { - $exifDataArray['fnumber value'] = $fNumber; - } else { $exifDataArray['fnumber value'] = ''; } - - if (isset($exifData['ISOSpeedRatings'])) { - $exifDataArray['iso'] = $exifData['ISOSpeedRatings']; - } else { $exifDataArray['iso'] = ''; } - - if ($focalLength != '') { - $exifDataArray['focal length'] = $focalLength; - } else { $exifDataArray['focal length'] = ''; } - - if (isset($ep)) { - $exifDataArray['exposure program'] = $ep; - } else { $exifDataArray['exposure program'] = ''; } - - if ($mm != '') { - $exifDataArray['metering mode'] = $mm; - } else { $exifDataArray['metering mode'] = ''; } - - if ($flash != '') { - $exifDataArray['flash status'] = $flash; - } else { $exifDataArray['flash status'] = ''; } - - if (isset($exifData['Artist'])) { - $exifDataArray['creator'] = $exifData['Artist'] ; - } else { $exifDataArray['creator'] = ''; } - - if (isset($exifData['Copyright'])) { - $exifDataArray['copyright'] = $exifData['Copyright']; - } else { $exifDataArray['copyright'] = ''; } - - // *** Orientation - if (isset($exifData['Orientation'])) { - $exifDataArray['orientation'] = $exifData['Orientation']; - } else { $exifDataArray['orientation'] = ''; } - - return $exifDataArray; - } - - ## -------------------------------------------------------- - - private function resolveExposureProgram($ep) - { - switch ($ep) { - case 0: - $ep = ''; - break; - case 1: - $ep = 'manual'; - break; - case 2: - $ep = 'normal program'; - break; - case 3: - $ep = 'aperture priority'; - break; - case 4: - $ep = 'shutter priority'; - break; - case 5: - $ep = 'creative program'; - break; - case 6: - $ep = 'action program'; - break; - case 7: - $ep = 'portrait mode'; - break; - case 8: - $ep = 'landscape mode'; - break; - - default: - break; - } - - return $ep; - } - - ## -------------------------------------------------------- - - private function resolveMeteringMode($mm) - { - switch ($mm) { - case 0: - $mm = 'unknown'; - break; - case 1: - $mm = 'average'; - break; - case 2: - $mm = 'center weighted average'; - break; - case 3: - $mm = 'spot'; - break; - case 4: - $mm = 'multi spot'; - break; - case 5: - $mm = 'pattern'; - break; - case 6: - $mm = 'partial'; - break; - case 255: - $mm = 'other'; - break; - - default: - break; - } - - return $mm; - } - - ## -------------------------------------------------------- - - private function resolveFlash($flash) - { - switch ($flash) { - case 0: - $flash = 'flash did not fire'; - break; - case 1: - $flash = 'flash fired'; - break; - case 5: - $flash = 'strobe return light not detected'; - break; - case 7: - $flash = 'strobe return light detected'; - break; - case 9: - $flash = 'flash fired, compulsory flash mode'; - break; - case 13: - $flash = 'flash fired, compulsory flash mode, return light not detected'; - break; - case 15: - $flash = 'flash fired, compulsory flash mode, return light detected'; - break; - case 16: - $flash = 'flash did not fire, compulsory flash mode'; - break; - case 24: - $flash = 'flash did not fire, auto mode'; - break; - case 25: - $flash = 'flash fired, auto mode'; - break; - case 29: - $flash = 'flash fired, auto mode, return light not detected'; - break; - case 31: - $flash = 'flash fired, auto mode, return light detected'; - break; - case 32: - $flash = 'no flash function'; - break; - case 65: - $flash = 'flash fired, red-eye reduction mode'; - break; - case 69: - $flash = 'flash fired, red-eye reduction mode, return light not detected'; - break; - case 71: - $flash = 'flash fired, red-eye reduction mode, return light detected'; - break; - case 73: - $flash = 'flash fired, compulsory flash mode, red-eye reduction mode'; - break; - case 77: - $flash = 'flash fired, compulsory flash mode, red-eye reduction mode, return light not detected'; - break; - case 79: - $flash = 'flash fired, compulsory flash mode, red-eye reduction mode, return light detected'; - break; - case 89: - $flash = 'flash fired, auto mode, red-eye reduction mode'; - break; - case 93: - $flash = 'flash fired, auto mode, return light not detected, red-eye reduction mode'; - break; - case 95: - $flash = 'flash fired, auto mode, return light detected, red-eye reduction mode'; - break; - - default: - break; - } - - return $flash; - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Get IPTC Data -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Write IPTC Data -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function writeIPTCcaption($value) - # Caption - { - $this->writeIPTC(120, $value); - } - - ## -------------------------------------------------------- - - public function writeIPTCwriter($value) - { - //$this->writeIPTC(65, $value); - } - - ## -------------------------------------------------------- - - private function writeIPTC($dat, $value) - { - - # LIMIT TO JPG - - $caption_block = $this->iptc_maketag(2, $dat, $value); - $image_string = iptcembed($caption_block, $this->fileName); - file_put_contents('iptc.jpg', $image_string); - } - -## -------------------------------------------------------- - - private function iptc_maketag($rec,$dat,$val) - # Author: Thies C. Arntzen - # Purpose: Function to format the new IPTC text - # Param in: $rec: Application record. (We’re working with #2) - # $dat: Index. (120 for caption, 118 for contact. See the IPTC IIM - # specification: - # http://www.iptc.org/std/IIM/4.1/specification/IIMV4.1.pdf - # $val: Value/data/text. Make sure this is within the length - # constraints of the IPTC IIM specification - # Ref: http://blog.peterhaza.no/working-with-image-meta-data-in-exif-and-iptc-headers-from-php/ - # http://php.net/manual/en/function.iptcembed.php - # - { - $len = strlen($val); - if ($len < 0x8000) - return chr(0x1c).chr($rec).chr($dat). - chr($len >> 8). - chr($len & 0xff). - $val; - else - return chr(0x1c).chr($rec).chr($dat). - chr(0x80).chr(0x04). - chr(($len >> 24) & 0xff). - chr(($len >> 16) & 0xff). - chr(($len >> 8 ) & 0xff). - chr(($len ) & 0xff). - $val; - } - - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Write XMP Data -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - //http://xmpphptoolkit.sourceforge.net/ - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Add Text -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addText($text, $pos = '20x20', $padding = 0, $fontColor='#fff', $fontSize = 12, $angle = 0, $font = null) - # Author: Jarrod Oberto - # Date: 18-11-09 - # Purpose: Add text to an image - # Param in: - # Param out: - # Reference: http://php.net/manual/en/function.imagettftext.php - # Notes: Make sure you supply the font. - # - { - - // *** Convert color - $rgbArray = $this->formatColor($fontColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - - // *** Get text font - $font = $this->getTextFont($font); - - // *** Get text size - $textSizeArray = $this->getTextSize($fontSize, $angle, $font, $text); - $textWidth = $textSizeArray['width']; - $textHeight = $textSizeArray['height']; - - // *** Find co-ords to place text - $posArray = $this->calculatePosition($pos, $padding, $textWidth, $textHeight, false); - $x = $posArray['width']; - $y = $posArray['height']; - - $fontColor = imagecolorallocate($this->imageResized, $r, $g, $b); - - // *** Add text - imagettftext($this->imageResized, $fontSize, $angle, $x, $y, $fontColor, $font, $text); - } - - ## -------------------------------------------------------- - - private function getTextFont($font) - { - // *** Font path (shou - $fontPath = dirname(__FILE__) . '/' . $this->fontDir; - - - // *** The below is/may be needed depending on your version (see ref) - putenv('GDFONTPATH=' . realpath('.')); - - // *** Check if the passed in font exsits... - if ($font == null || !file_exists($font)) { - - // *** ...If not, default to this font. - $font = $fontPath . '/arimo.ttf'; - - // *** Check our default font exists... - if (!file_exists($font)) { - - // *** If not, return false - if ($this->debug) { throw new Exception('Font not found'); }else{ return false; } - } - } - - return $font; - - } - - ## -------------------------------------------------------- - - private function getTextSize($fontSize, $angle, $font, $text) - { - - // *** Define box (so we can get the width) - $box = @imageTTFBbox($fontSize, $angle, $font, $text); - - // *** Get width of text from dimensions - $textWidth = abs($box[4] - $box[0]); - - // *** Get height of text from dimensions (should also be same as $fontSize) - $textHeight = abs($box[5] - $box[1]); - - return array('height' => $textHeight, 'width' => $textWidth); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Add Watermark -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addWatermark($watermarkImage, $pos, $padding = 0, $opacity = 0) - # Author: Jarrod Oberto - # Date: 18-11-09 - # Purpose: Add watermark image - # Param in: (str) $watermark: The watermark image - # (str) $pos: Could be a pre-determined position such as: - # tl = top left, - # t = top (middle), - # tr = top right, - # l = left, - # m = middle, - # r = right, - # bl = bottom left, - # b = bottom (middle), - # br = bottom right - # Or, it could be a co-ordinate position such as: 50x100 - # - # (int) $padding: If using a pre-determined position you can - # adjust the padding from the edges by passing an amount - # in pixels. If using co-ordinates, this value is ignored. - # Param out: - # Reference: http://www.php.net/manual/en/image.examples-watermark.php - # Notes: Based on example in reference. - # - # - { - - // Load the stamp and the photo to apply the watermark to - $stamp = $this->openImage ($watermarkImage); # stamp - $im = $this->imageResized; # photo - - // *** Get stamps width and height - $sx = imagesx($stamp); - $sy = imagesy($stamp); - - // *** Find co-ords to place image - $posArray = $this->calculatePosition($pos, $padding, $sx, $sy); - $x = $posArray['width']; - $y = $posArray['height']; - - // *** Set watermark opacity - if (fix_strtolower(strrchr($watermarkImage, '.')) == '.png') { - - $opacity = $this->invertTransparency($opacity, 100); - $this->filterOpacity($stamp, $opacity); - } - - // Copy the watermark image onto our photo - imagecopy($im, $stamp, $x, $y, 0, 0, imagesx($stamp), imagesy($stamp)); - - } - - ## -------------------------------------------------------- - - private function calculatePosition($pos, $padding, $assetWidth, $assetHeight, $upperLeft = true) - # - # Author: Jarrod Oberto - # Date: 08-05-11 - # Purpose: Calculate the x, y pixel cordinates of the asset to place - # Params in: (str) $pos: Either something like: "tl", "l", "br" or an - # exact position like: "100x50" - # (int) $padding: The amount of padding from the edge. Only - # used for the predefined $pos. - # (int) $assetWidth: The width of the asset to add to the image - # (int) $assetHeight: The height of the asset to add to the image - # (bol) $upperLeft: if true, the asset will be positioned based - # on the upper left x, y coords. If false, it means you're - # using the lower left as the basepoint and this will - # convert it to the upper left position - # Params out: - # NOTE: this is done from the UPPER left corner!! But will convert lower - # left basepoints to upper left if $upperleft is set to false - # - # - { - $pos = fix_strtolower($pos); - - // *** If co-ords have been entered - if (strstr($pos, 'x')) { - $pos = str_replace(' ', '', $pos); - - $xyArray = explode('x', $pos); - list($width, $height) = $xyArray; - - } else { - - switch ($pos) { - case 'tl': - $width = 0 + $padding; - $height = 0 + $padding; - break; - - case 't': - $width = ($this->width / 2) - ($assetWidth / 2); - $height = 0 + $padding; - break; - - case 'tr': - $width = $this->width - $assetWidth - $padding; - $height = 0 + $padding;; - break; - - case 'l': - $width = 0 + $padding; - $height = ($this->height / 2) - ($assetHeight / 2); - break; - - case 'm': - $width = ($this->width / 2) - ($assetWidth / 2); - $height = ($this->height / 2) - ($assetHeight / 2); - break; - - case 'r': - $width = $this->width - $assetWidth - $padding; - $height = ($this->height / 2) - ($assetHeight / 2); - break; - - case 'bl': - $width = 0 + $padding; - $height = $this->height - $assetHeight - $padding; - break; - - case 'b': - $width = ($this->width / 2) - ($assetWidth / 2); - $height = $this->height - $assetHeight - $padding; - break; - - case 'br': - $width = $this->width - $assetWidth - $padding; - $height = $this->height - $assetHeight - $padding; - break; - - default: - $width = 0; - $height = 0; - break; - } - } - - if (!$upperLeft) { - $height = $height + $assetHeight; - } - - return array('width' => $width, 'height' => $height); - } - - - ## -------------------------------------------------------- - - private function filterOpacity(&$img, $opacity = 75) - # - # Author: aiden dot mail at freemail dot hu - # Author date: 29-03-08 08:16 - # Date added: 08-05-11 - # Purpose: Change opacity of image - # Params in: $img: Image resource id - # (int) $opacity: the opacity amount: 0-100, 100 being not opaque. - # Params out: (bool) true on success, else false - # Ref: http://www.php.net/manual/en/function.imagefilter.php#82162 - # Notes: png only - # - { - - if (!isset($opacity)) { - return false; - } - - if ($opacity == 100) { - return true; - } - - $opacity /= 100; - - //get image width and height - $w = imagesx($img); - $h = imagesy($img); - - //turn alpha blending off - imagealphablending($img, false); - - //find the most opaque pixel in the image (the one with the smallest alpha value) - $minalpha = 127; - for ($x = 0; $x < $w; $x++) - for ($y = 0; $y < $h; $y++) { - $alpha = ( imagecolorat($img, $x, $y) >> 24 ) & 0xFF; - if ($alpha < $minalpha) { - $minalpha = $alpha; - } - } - - //loop through image pixels and modify alpha for each - for ($x = 0; $x < $w; $x++) { - for ($y = 0; $y < $h; $y++) { - //get current alpha value (represents the TANSPARENCY!) - $colorxy = imagecolorat($img, $x, $y); - $alpha = ( $colorxy >> 24 ) & 0xFF; - //calculate new alpha - if ($minalpha !== 127) { - $alpha = 127 + 127 * $opacity * ( $alpha - 127 ) / ( 127 - $minalpha ); - } else { - $alpha += 127 * $opacity; - } - //get the color index with new alpha - $alphacolorxy = imagecolorallocatealpha($img, ( $colorxy >> 16 ) & 0xFF, ( $colorxy >> 8 ) & 0xFF, $colorxy & 0xFF, $alpha); - //set pixel with the new color + opacity - if (!imagesetpixel($img, $x, $y, $alphacolorxy)) { - - return false; - } - } - } - - return true; - } - -## -------------------------------------------------------- - - private function openImage($file) - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: - # Param in: - # Param out: n/a - # Reference: - # Notes: - # - { - - if (!file_exists($file) && !$this->checkStringStartsWith('http://', $file)) { if ($this->debug) { throw new Exception('Image not found.'); }else{ throw new Exception(); }}; - - // *** Get extension - $extension = strrchr($file, '.'); - $extension = fix_strtolower($extension); - switch($extension) - { - case '.jpg': - case '.jpeg': - $img = @imagecreatefromjpeg($file); - break; - case '.gif': - $img = @imagecreatefromgif($file); - break; - case '.png': - $img = @imagecreatefrompng($file); - break; - case '.bmp': - $img = @$this->imagecreatefrombmp($file); - break; - case '.psd': - $img = @$this->imagecreatefrompsd($file); - break; - - - // ... etc - - default: - $img = false; - break; - } - - return $img; - } - -## -------------------------------------------------------- - - public function reset() - # - # Author: Jarrod Oberto - # Date: 30-08-11 - # Purpose: Reset the resource (allow further editing) - # Params in: - # Params out: - # Notes: - # - { - $this->__construct($this->fileName); - } - -## -------------------------------------------------------- - - public function saveImage($savePath, $imageQuality="100") - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Saves the image - # Param in: $savePath: Where to save the image including filename: - # $imageQuality: image quality you want the image saved at 0-100 - # Param out: n/a - # Reference: - # Notes: * gif doesn't have a quality parameter - # * jpg has a quality setting 0-100 (100 being the best) - # * png has a quality setting 0-9 (0 being the best) - # - # * bmp files have no native support for bmp files. We use a - # third party class to save as bmp. - { - - // *** Perform a check or two. - if (!is_resource($this->imageResized)) { if ($this->debug) { throw new Exception('saveImage: This is not a resource.'); }else{ throw new Exception(); }} - $fileInfoArray = pathInfo($savePath); - clearstatcache(); - if (!is_writable($fileInfoArray['dirname'])) { if ($this->debug) { throw new Exception('The path is not writable. Please check your permissions.'); }else{ throw new Exception(); }} - - // *** Get extension - $extension = strrchr($savePath, '.'); - $extension = fix_strtolower($extension); - - $error = ''; - - switch($extension) - { - case '.jpg': - case '.jpeg': - $this->checkInterlaceImage($this->isInterlace); - if (imagetypes() & IMG_JPG) { - imagejpeg($this->imageResized, $savePath, $imageQuality); - } else { $error = 'jpg'; } - break; - - case '.gif': - $this->checkInterlaceImage($this->isInterlace); - if (imagetypes() & IMG_GIF) { - imagegif($this->imageResized, $savePath); - } else { $error = 'gif'; } - break; - - case '.png': - // *** Scale quality from 0-100 to 0-9 - $scaleQuality = round(($imageQuality/100) * 9); - - // *** Invert qualit setting as 0 is best, not 9 - $invertScaleQuality = 9 - $scaleQuality; - - $this->checkInterlaceImage($this->isInterlace); - if (imagetypes() & IMG_PNG) { - imagepng($this->imageResized, $savePath, $invertScaleQuality); - } else { $error = 'png'; } - break; - - case '.bmp': - file_put_contents($savePath, $this->GD2BMPstring($this->imageResized)); - break; - - - // ... etc - - default: - // *** No extension - No save. - $this->errorArray[] = 'This file type (' . $extension . ') is not supported. File not saved.'; - break; - } - - //imagedestroy($this->imageResized); - - // *** Display error if a file type is not supported. - if ($error != '') { - $this->errorArray[] = $error . ' support is NOT enabled. File not saved.'; - } - } - -## -------------------------------------------------------- - - public function displayImage($fileType = 'jpg', $imageQuality="100") - # Author: Jarrod Oberto - # Date: 18-11-09 - # Purpose: Display images directly to the browser - # Param in: The image type you want to display - # Param out: - # Reference: - # Notes: - # - { - - if (!is_resource($this->imageResized)) { if ($this->debug) { throw new Exception('saveImage: This is not a resource.'); }else{ throw new Exception(); }} - - switch($fileType) - { - case 'jpg': - case 'jpeg': - header('Content-type: image/jpeg'); - imagejpeg($this->imageResized, '', $imageQuality); - break; - case 'gif': - header('Content-type: image/gif'); - imagegif($this->imageResized); - break; - case 'png': - header('Content-type: image/png'); - - // *** Scale quality from 0-100 to 0-9 - $scaleQuality = round(($imageQuality/100) * 9); - - // *** Invert qualit setting as 0 is best, not 9 - $invertScaleQuality = 9 - $scaleQuality; - - imagepng($this->imageResized, '', $invertScaleQuality); - break; - case 'bmp': - echo 'bmp file format is not supported.'; - break; - - // ... etc - - default: - // *** No extension - No save. - break; - } - - - //imagedestroy($this->imageResized); - } - -## -------------------------------------------------------- - - public function setTransparency($bool) - # Sep 2011 - { - $this->keepTransparency = $bool; - } - -## -------------------------------------------------------- - - public function setFillColor($value) - # Sep 2011 - # Param in: (mixed) $value: (array) Could be an array of RGB - # (str) Could be hex #ffffff or #fff, fff, ffffff - # - # If the keepTransparency is set to false, then no transparency is to be used. - # This is ideal when you want to save as jpg. - # - # this method allows you to set the background color to use instead of - # transparency. - # - { - $colorArray = $this->formatColor($value); - $this->fillColorArray = $colorArray; - } - -## -------------------------------------------------------- - - public function setCropFromTop($value) - # Sep 2011 - { - $this->cropFromTopPercent = $value; - } - -## -------------------------------------------------------- - - public function testGDInstalled() - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Test to see if GD is installed - # Param in: n/a - # Param out: (bool) True is gd extension loaded otherwise false - # Reference: - # Notes: - # - { - if(extension_loaded('gd') && function_exists('gd_info')) - { - $gdInstalled = true; - } - else - { - $gdInstalled = false; - } - - return $gdInstalled; - } - -## -------------------------------------------------------- - - public function testEXIFInstalled() - # Author: Jarrod Oberto - # Date: 08-05-11 - # Purpose: Test to see if EXIF is installed - # Param in: n/a - # Param out: (bool) True is exif extension loaded otherwise false - # Reference: - # Notes: - # - { - if(extension_loaded('exif')) - { - $exifInstalled = true; - } - else - { - $exifInstalled = false; - } - - return $exifInstalled; - } - -## -------------------------------------------------------- - - public function testIsImage($image) - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Test if file is an image - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - if ($image) - { - $fileIsImage = true; - } - else - { - $fileIsImage = false; - } - - return $fileIsImage; - } - -## -------------------------------------------------------- - - public function testFunct() - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Test Function - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - echo $this->height; - } - -## -------------------------------------------------------- - - public function setForceStretch($value) - # Author: Jarrod Oberto - # Date: 23-12-10 - # Purpose: - # Param in: (bool) $value - # Param out: n/a - # Reference: - # Notes: - # - { - $this->forceStretch = $value; - } - -## -------------------------------------------------------- - - public function setFile($fileName) - # Author: Jarrod Oberto - # Date: 28-02-08 - # Purpose: - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - self::__construct($fileName); - } - -## -------------------------------------------------------- - - public function getFileName() - # Author: Jarrod Oberto - # Date: 10-09-08 - # Purpose: - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - return $this->fileName; - } - -## -------------------------------------------------------- - - public function getHeight() - { - return $this->height; - } - -## -------------------------------------------------------- - - public function getWidth() - { - return $this->width; - } - -## -------------------------------------------------------- - - public function getOriginalHeight() - { - return $this->heightOriginal; - } - -## -------------------------------------------------------- - - public function getOriginalWidth() - { - return $this->widthOriginal; - } - -## -------------------------------------------------------- - - public function getErrors() - # Author: Jarrod Oberto - # Date: 19-11-09 - # Purpose: Returns the error array - # Param in: n/a - # Param out: Array of errors - # Reference: - # Notes: - # - { - return $this->errorArray; - } - -## -------------------------------------------------------- - - private function checkInterlaceImage($isEnabled) - # jpg will use progressive (they don't use interace) - { - if ($isEnabled) { - imageinterlace($this->imageResized, $isEnabled); - } - } - -## -------------------------------------------------------- - - protected function formatColor($value) - # Author: Jarrod Oberto - # Date: 09-05-11 - # Purpose: Determine color method passed in and return color as RGB - # Param in: (mixed) $value: (array) Could be an array of RGB - # (str) Could be hex #ffffff or #fff, fff, ffffff - # Param out: - # Reference: - # Notes: - # - { - $rgbArray = array(); - - // *** If it's an array it should be R, G, B - if (is_array($value)) { - - if (key($value) == 0 && count($value) == 3) { - - $rgbArray['r'] = $value[0]; - $rgbArray['g'] = $value[1]; - $rgbArray['b'] = $value[2]; - - } else { - $rgbArray = $value; - } - } else if (fix_strtolower($value) == 'transparent') { - - $rgbArray = array( - 'r' => 255, - 'g' => 255, - 'b' => 255, - 'a' => 127 - ); - - } else { - - // *** ...Else it should be hex. Let's make it RGB - $rgbArray = $this -> hex2dec($value); - } - - return $rgbArray; - } - - ## -------------------------------------------------------- - - function hex2dec($hex) - # Purpose: Convert #hex color to RGB - { - $color = str_replace('#', '', $hex); - - if (strlen($color) == 3) { - $color = $color . $color; - } - - $rgb = array( - 'r' => hexdec(substr($color, 0, 2)), - 'g' => hexdec(substr($color, 2, 2)), - 'b' => hexdec(substr($color, 4, 2)), - 'a' => 0 - ); - return $rgb; - } - - ## -------------------------------------------------------- - - private function createImageColor ($colorArray) - { - $r = $colorArray['r']; - $g = $colorArray['g']; - $b = $colorArray['b']; - - return imagecolorallocate($this->imageResized, $r, $g, $b); - } - - ## -------------------------------------------------------- - - private function testColorExists($colorArray) - { - $r = $colorArray['r']; - $g = $colorArray['g']; - $b = $colorArray['b']; - - if (imagecolorexact($this->imageResized, $r, $g, $b) == -1) { - return false; - } else { - return true; - } - } - - ## -------------------------------------------------------- - - private function findUnusedGreen() - # Purpose: We find a green color suitable to use like green-screen effect. - # Therefore, the color must not exist in the image. - { - $green = 255; - - do { - - $greenChroma = array(0, $green, 0); - $colorArray = $this->formatColor($greenChroma); - $match = $this->testColorExists($colorArray); - $green--; - - } while ($match == false && $green > 0); - - // *** If no match, just bite the bullet and use green value of 255 - if (!$match) { - $greenChroma = array(0, $green, 0); - } - - return $greenChroma; - } - - ## -------------------------------------------------------- - - private function findUnusedBlue() - # Purpose: We find a green color suitable to use like green-screen effect. - # Therefore, the color must not exist in the image. - { - $blue = 255; - - do { - - $blueChroma = array(0, 0, $blue); - $colorArray = $this->formatColor($blueChroma); - $match = $this->testColorExists($colorArray); - $blue--; - - } while ($match == false && $blue > 0); - - // *** If no match, just bite the bullet and use blue value of 255 - if (!$match) { - $blueChroma = array(0, 0, $blue); - } - - return $blueChroma; - } - - ## -------------------------------------------------------- - - private function invertTransparency($value, $originalMax, $invert=true) - # Purpose: This does two things: - # 1) Convert the range from 0-127 to 0-100 - # 2) Inverts value to 100 is not transparent while 0 is fully - # transparent (like Photoshop) - { - // *** Test max range - if ($value > $originalMax) { - $value = $originalMax; - } - - // *** Test min range - if ($value < 0) { - $value = 0; - } - - if ($invert) { - return $originalMax - (($value/100) * $originalMax); - } else { - return ($value/100) * $originalMax; - } - } - - ## -------------------------------------------------------- - - private function transparentImage($src) - { - // *** making images with white bg transparent - $r1 = 0; - $g1 = 255; - $b1 = 0; - for ($x = 0; $x < imagesx($src); ++$x) { - for ($y = 0; $y < imagesy($src); ++$y) { - $color = imagecolorat($src, $x, $y); - $r = ($color >> 16) & 0xFF; - $g = ($color >> 8) & 0xFF; - $b = $color & 0xFF; - for ($i = 0; $i < 270; $i++) { - //if ($r . $g . $b == ($r1 + $i) . ($g1 + $i) . ($b1 + $i)) { - if ($r == 0 && $g == 255 && $b == 0) { - //if ($g == 255) { - $trans_colour = imagecolorallocatealpha($src, 0, 0, 0, 127); - imagefill($src, $x, $y, $trans_colour); - } - } - } - } - - return $src; - } - - ## -------------------------------------------------------- - - function checkStringStartsWith($needle, $haystack) - # Check if a string starts with a specific pattern - { - return (substr($haystack, 0, strlen($needle))==$needle); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - BMP SUPPORT (SAVING) - James Heinrich -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - private function GD2BMPstring(&$gd_image) - # Author: James Heinrich - # Purpose: Save file as type bmp - # Param in: The image canvas (passed as ref) - # Param out: - # Reference: - # Notes: This code was stripped out of two external files - # (phpthumb.bmp.php,phpthumb.functions.php) and added below to - # avoid dependancies. - # - { - $imageX = ImageSX($gd_image); - $imageY = ImageSY($gd_image); - - $BMP = ''; - for ($y = ($imageY - 1); $y >= 0; $y--) { - $thisline = ''; - for ($x = 0; $x < $imageX; $x++) { - $argb = $this->GetPixelColor($gd_image, $x, $y); - $thisline .= chr($argb['blue']).chr($argb['green']).chr($argb['red']); - } - while (strlen($thisline) % 4) { - $thisline .= "\x00"; - } - $BMP .= $thisline; - } - - $bmpSize = strlen($BMP) + 14 + 40; - // BITMAPFILEHEADER [14 bytes] - http://msdn.microsoft.com/library/en-us/gdi/bitmaps_62uq.asp - $BITMAPFILEHEADER = 'BM'; // WORD bfType; - $BITMAPFILEHEADER .= $this->LittleEndian2String($bmpSize, 4); // DWORD bfSize; - $BITMAPFILEHEADER .= $this->LittleEndian2String( 0, 2); // WORD bfReserved1; - $BITMAPFILEHEADER .= $this->LittleEndian2String( 0, 2); // WORD bfReserved2; - $BITMAPFILEHEADER .= $this->LittleEndian2String( 54, 4); // DWORD bfOffBits; - - // BITMAPINFOHEADER - [40 bytes] http://msdn.microsoft.com/library/en-us/gdi/bitmaps_1rw2.asp - $BITMAPINFOHEADER = $this->LittleEndian2String( 40, 4); // DWORD biSize; - $BITMAPINFOHEADER .= $this->LittleEndian2String( $imageX, 4); // LONG biWidth; - $BITMAPINFOHEADER .= $this->LittleEndian2String( $imageY, 4); // LONG biHeight; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 1, 2); // WORD biPlanes; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 24, 2); // WORD biBitCount; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 0, 4); // DWORD biCompression; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 0, 4); // DWORD biSizeImage; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 2835, 4); // LONG biXPelsPerMeter; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 2835, 4); // LONG biYPelsPerMeter; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 0, 4); // DWORD biClrUsed; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 0, 4); // DWORD biClrImportant; - - return $BITMAPFILEHEADER.$BITMAPINFOHEADER.$BMP; - } - -## -------------------------------------------------------- - - private function GetPixelColor(&$img, $x, $y) - # Author: James Heinrich - # Purpose: - # Param in: - # Param out: - # Reference: - # Notes: - # - { - if (!is_resource($img)) { - return false; - } - return @ImageColorsForIndex($img, @ImageColorAt($img, $x, $y)); - } - -## -------------------------------------------------------- - - private function LittleEndian2String($number, $minbytes=1) - # Author: James Heinrich - # Purpose: BMP SUPPORT (SAVING) - # Param in: - # Param out: - # Reference: - # Notes: - # - { - $intstring = ''; - while ($number > 0) { - $intstring = $intstring.chr($number & 255); - $number >>= 8; - } - return str_pad($intstring, $minbytes, "\x00", STR_PAD_RIGHT); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - BMP SUPPORT (READING) -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - private function ImageCreateFromBMP($filename) - # Author: DHKold - # Date: The 15th of June 2005 - # Version: 2.0B - # Purpose: To create an image from a BMP file. - # Param in: BMP file to open. - # Param out: Return a resource like the other ImageCreateFrom functions - # Reference: http://us3.php.net/manual/en/function.imagecreate.php#53879 - # Bug fix: Author: domelca at terra dot es - # Date: 06 March 2008 - # Fix: Correct 16bit BMP support - # Notes: - # - { - - //Ouverture du fichier en mode binaire - if (! $f1 = fopen($filename,"rb")) return FALSE; - - //1 : Chargement des ent�tes FICHIER - $FILE = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", fread($f1,14)); - if ($FILE['file_type'] != 19778) return FALSE; - - //2 : Chargement des ent�tes BMP - $BMP = unpack('Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel'. - '/Vcompression/Vsize_bitmap/Vhoriz_resolution'. - '/Vvert_resolution/Vcolors_used/Vcolors_important', fread($f1,40)); - $BMP['colors'] = pow(2,$BMP['bits_per_pixel']); - - if ($BMP['size_bitmap'] == 0) $BMP['size_bitmap'] = $FILE['file_size'] - $FILE['bitmap_offset']; - - $BMP['bytes_per_pixel'] = $BMP['bits_per_pixel']/8; - $BMP['bytes_per_pixel2'] = ceil($BMP['bytes_per_pixel']); - $BMP['decal'] = ($BMP['width']*$BMP['bytes_per_pixel']/4); - $BMP['decal'] -= floor($BMP['width']*$BMP['bytes_per_pixel']/4); - $BMP['decal'] = 4-(4*$BMP['decal']); - - if ($BMP['decal'] == 4) $BMP['decal'] = 0; - - //3 : Chargement des couleurs de la palette - $PALETTE = array(); - if ($BMP['colors'] < 16777216) - { - $PALETTE = unpack('V'.$BMP['colors'], fread($f1,$BMP['colors']*4)); - } - - //4 : Cr�ation de l'image - $IMG = fread($f1,$BMP['size_bitmap']); - $VIDE = chr(0); - - $res = imagecreatetruecolor($BMP['width'],$BMP['height']); - $P = 0; - $Y = $BMP['height']-1; - while ($Y >= 0) - { - $X=0; - while ($X < $BMP['width']) - { - if ($BMP['bits_per_pixel'] == 24) - $COLOR = unpack("V",substr($IMG,$P,3).$VIDE); - elseif ($BMP['bits_per_pixel'] == 16) - { - - /* - * BMP 16bit fix - * ================= - * - * Ref: http://us3.php.net/manual/en/function.imagecreate.php#81604 - * - * Notes: - * "don't work with bmp 16 bits_per_pixel. change pixel - * generator for this." - * - */ - - // *** Original code (don't work) - //$COLOR = unpack("n",substr($IMG,$P,2)); - //$COLOR[1] = $PALETTE[$COLOR[1]+1]; - - $COLOR = unpack("v",substr($IMG,$P,2)); - $blue = ($COLOR[1] & 0x001f) << 3; - $green = ($COLOR[1] & 0x07e0) >> 3; - $red = ($COLOR[1] & 0xf800) >> 8; - $COLOR[1] = $red * 65536 + $green * 256 + $blue; - - } - elseif ($BMP['bits_per_pixel'] == 8) - { - $COLOR = unpack("n",$VIDE.substr($IMG,$P,1)); - $COLOR[1] = $PALETTE[$COLOR[1]+1]; - } - elseif ($BMP['bits_per_pixel'] == 4) - { - $COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1)); - if (($P*2)%2 == 0) $COLOR[1] = ($COLOR[1] >> 4) ; else $COLOR[1] = ($COLOR[1] & 0x0F); - $COLOR[1] = $PALETTE[$COLOR[1]+1]; - } - elseif ($BMP['bits_per_pixel'] == 1) - { - $COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1)); - if (($P*8)%8 == 0) $COLOR[1] = $COLOR[1] >>7; - elseif (($P*8)%8 == 1) $COLOR[1] = ($COLOR[1] & 0x40)>>6; - elseif (($P*8)%8 == 2) $COLOR[1] = ($COLOR[1] & 0x20)>>5; - elseif (($P*8)%8 == 3) $COLOR[1] = ($COLOR[1] & 0x10)>>4; - elseif (($P*8)%8 == 4) $COLOR[1] = ($COLOR[1] & 0x8)>>3; - elseif (($P*8)%8 == 5) $COLOR[1] = ($COLOR[1] & 0x4)>>2; - elseif (($P*8)%8 == 6) $COLOR[1] = ($COLOR[1] & 0x2)>>1; - elseif (($P*8)%8 == 7) $COLOR[1] = ($COLOR[1] & 0x1); - $COLOR[1] = $PALETTE[$COLOR[1]+1]; - } - else - return FALSE; - - imagesetpixel($res,$X,$Y,$COLOR[1]); - $X++; - $P += $BMP['bytes_per_pixel']; - } - - $Y--; - $P+=$BMP['decal']; - } - //Fermeture du fichier - fclose($f1); - - return $res; - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - PSD SUPPORT (READING) -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - private function imagecreatefrompsd($fileName) - # Author: Tim de Koning - # Version: 1.3 - # Purpose: To create an image from a PSD file. - # Param in: PSD file to open. - # Param out: Return a resource like the other ImageCreateFrom functions - # Reference: http://www.kingsquare.nl/phppsdreader - # Notes: - # - { - if (file_exists($this->psdReaderPath)) { - - - include_once($this->psdReaderPath); - - $psdReader = new PhpPsdReader($fileName); - - if (isset($psdReader->infoArray['error'])) return ''; - else return $psdReader->getImage(); - } else { - return false; - } - } - -## -------------------------------------------------------- - - public function __destruct() { - if (is_resource($this->imageResized)) { - imagedestroy($this->imageResized); - } - } - -## -------------------------------------------------------- - -} - - - - -/* - * Example with some API calls (outdated): - * - * - * =============================== - * Compulsary - * =============================== - * - * include("classes/resize_class.php"); - * - * // *** Initialise object - * $magicianObj = new resize('images/cars/large/a.jpg'); - * - * // *** Turn off stretching (optional) - * $magicianObj -> setForceStretch(false); - * - * // *** Resize object - * $magicianObj -> resizeImage(150, 100, 0); - * - * =============================== - * Image options - can run none, one, or all. - * =============================== - * - * // *** Add watermark - * $magicianObj -> addWatermark('stamp.png'); - * - * // *** Add text - * $magicianObj -> addText('testing...'); - * - * =============================== - * Output options - can run one, or the other, or both. - * =============================== - * - * // *** Save image to disk - * $magicianObj -> saveImage('images/cars/large/b.jpg', 100); - * - * // *** Or output to screen (params in can be jpg, gif, png) - * $magicianObj -> displayImage('png'); - * - * =============================== - * Return options - return errors. nice for debuggin. - * =============================== - * - * // *** Return error array - * $errorArray = $magicianObj -> getErrors(); - * - * - * =============================== - * Cleanup options - not really neccessary, but good practice - * =============================== - * - * // *** Free used memory - * $magicianObj -> __destruct(); - */ -?> \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/utils.php b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/utils.php deleted file mode 100644 index 73819a48..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/utils.php +++ /dev/null @@ -1,486 +0,0 @@ - resizeImage($newwidth, $newheight, 'crop'); - $magicianObj -> saveImage($imgthumb,80); - return true; - } - return false; -} - -function create_img($imgfile, $imgthumb, $newwidth, $newheight="") { - if(image_check_memory_usage($imgfile,$newwidth,$newheight)){ - require_once('php_image_magician.php'); - $magicianObj = new imageLib($imgfile); - $magicianObj -> resizeImage($newwidth, $newheight, 'auto'); - $magicianObj -> saveImage($imgthumb,80); - return true; - }else{ - return false; - } -} - -function makeSize($size) { - $units = array('B','KB','MB','GB','TB'); - $u = 0; - while ( (round($size / 1024) > 0) && ($u < 4) ) { - $size = $size / 1024; - $u++; - } - return (number_format($size, 0) . " " . $units[$u]); -} - -function foldersize($path) { - $total_size = 0; - $files = scandir($path); - $cleanPath = rtrim($path, '/'). '/'; - - foreach($files as $t) { - if ($t != "." && $t != "..") { - $currentFile = $cleanPath . $t; - if (is_dir($currentFile)) { - $size = foldersize($currentFile); - $total_size += $size; - } - else { - $size = filesize($currentFile); - $total_size += $size; - } - } - } - - return $total_size; -} - -function filescount($path) { - $total_count = 0; - $files = scandir($path); - $cleanPath = rtrim($path, '/'). '/'; - - foreach($files as $t) { - if ($t != "." && $t != "..") { - $currentFile = $cleanPath . $t; - if (is_dir($currentFile)) { - $size = filescount($currentFile); - $total_count += $size; - } - else { - $total_count += 1; - } - } - } - - return $total_count; -} - -function create_folder($path=false,$path_thumbs=false){ - $oldumask = umask(0); - if ($path && !file_exists($path)) - mkdir($path, 0777, true); // or even 01777 so you get the sticky bit set - if($path_thumbs && !file_exists($path_thumbs)) - mkdir($path_thumbs, 0777, true) or die("$path_thumbs cannot be found"); // or even 01777 so you get the sticky bit set - umask($oldumask); -} - -function check_files_extensions_on_path($path,$ext){ - if(!is_dir($path)){ - $fileinfo = pathinfo($path); - if(!in_array(mb_strtolower($fileinfo['extension']),$ext)) - unlink($path); - }else{ - $files = scandir($path); - foreach($files as $file){ - check_files_extensions_on_path(trim($path,'/')."/".$file,$ext); - } - } -} - -function check_files_extensions_on_phar( $phar, &$files, $basepath, $ext ) { - foreach( $phar as $file ) - { - if( $file->isFile() ) - { - if(in_array(mb_strtolower($file->getExtension()),$ext)) - { - $files[] = $basepath.$file->getFileName( ); - } - } - else if( $file->isDir() ) - { - $iterator = new DirectoryIterator( $file ); - check_files_extensions_on_phar($iterator, $files, $basepath.$file->getFileName().'/', $ext); - } - } -} - -function fix_get_params($str){ - return strip_tags(preg_replace( "/[^a-zA-Z0-9\.\[\]_| -]/", '', $str)); -} - -function fix_filename($str,$transliteration){ - if($transliteration){ - if( function_exists( 'transliterator_transliterate' ) ) - { - $str = transliterator_transliterate( 'Accents-Any', $str ); - } - else - { - $str = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $str); - } - - $str = preg_replace( "/[^a-zA-Z0-9\.\[\]_| -]/", '', $str ); - } - - $str=str_replace(array('"',"'","/","\\"),"",$str); - $str=strip_tags($str); - - // Empty or incorrectly transliterated filename. - // Here is a point: a good file UNKNOWN_LANGUAGE.jpg could become .jpg in previous code. - // So we add that default 'file' name to fix that issue. - if( strpos( $str, '.' ) === 0 ) - { - $str = 'file'.$str; - } - - return trim( $str ); -} - -function fix_dirname($str){ - return str_replace('~',' ',dirname(str_replace(' ','~',$str))); -} - -function fix_strtoupper($str){ - if( function_exists( 'mb_strtoupper' ) ) - return mb_strtoupper($str); - else - return strtoupper($str); -} - - -function fix_strtolower($str){ - if( function_exists( 'mb_strtoupper' ) ) - return mb_strtolower($str); - else - return strtolower($str); -} - -function fix_path($path,$transliteration){ - $info=pathinfo($path); - $tmp_path = $info['dirname']; - $str=fix_filename($info['filename'],$transliteration); - if($tmp_path!="") - return $tmp_path.DIRECTORY_SEPARATOR.$str; - else - return $str; -} - -function base_url(){ - return sprintf( - "%s://%s", - isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http', - $_SERVER['HTTP_HOST'] - ); -} - -function config_loading($current_path,$fld){ - if(file_exists($current_path.$fld.".config")){ - require_once($current_path.$fld.".config"); - return true; - } - echo "!!!!".$parent=fix_dirname($fld); - if($parent!="." && !empty($parent)){ - config_loading($current_path,$parent); - } - - return false; -} - - -function image_check_memory_usage($img, $max_breedte, $max_hoogte){ - if(file_exists($img)){ - $K64 = 65536; // number of bytes in 64K - $memory_usage = memory_get_usage(); - $memory_limit = abs(intval(str_replace('M','',ini_get('memory_limit'))*1024*1024)); - $image_properties = getimagesize($img); - $image_width = $image_properties[0]; - $image_height = $image_properties[1]; - $image_bits = $image_properties['bits']; - $image_memory_usage = $K64 + ($image_width * $image_height * ($image_bits ) * 2); - $thumb_memory_usage = $K64 + ($max_breedte * $max_hoogte * ($image_bits ) * 2); - $memory_needed = intval($memory_usage + $image_memory_usage + $thumb_memory_usage); - - if($memory_needed > $memory_limit){ - ini_set('memory_limit',(intval($memory_needed/1024/1024)+5) . 'M'); - if(ini_get('memory_limit') == (intval($memory_needed/1024/1024)+5) . 'M'){ - return true; - }else{ - return false; - } - }else{ - return true; - } - }else{ - return false; - } -} - -function endsWith($haystack, $needle) -{ - return $needle === "" || substr($haystack, -strlen($needle)) === $needle; -} - -function new_thumbnails_creation($targetPath,$targetFile,$name,$current_path,$relative_image_creation,$relative_path_from_current_pos,$relative_image_creation_name_to_prepend,$relative_image_creation_name_to_append,$relative_image_creation_width,$relative_image_creation_height,$fixed_image_creation,$fixed_path_from_filemanager,$fixed_image_creation_name_to_prepend,$fixed_image_creation_to_append,$fixed_image_creation_width,$fixed_image_creation_height){ - //create relative thumbs - $all_ok=true; - if($relative_image_creation){ - foreach($relative_path_from_current_pos as $k=>$path){ - if($path!="" && $path[strlen($path)-1]!="/") $path.="/"; - if (!file_exists($targetPath.$path)) create_folder($targetPath.$path,false); - $info=pathinfo($name); - if(!endsWith($targetPath,$path)) - if(!create_img($targetFile, $targetPath.$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension'], $relative_image_creation_width[$k], $relative_image_creation_height[$k])) - $all_ok=false; - } - } - - //create fixed thumbs - if($fixed_image_creation){ - foreach($fixed_path_from_filemanager as $k=>$path){ - if($path!="" && $path[strlen($path)-1]!="/") $path.="/"; - $base_dir=$path.substr_replace($targetPath, '', 0, strlen($current_path)); - if (!file_exists($base_dir)) create_folder($base_dir,false); - $info=pathinfo($name); - if(!create_img($targetFile, $base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'], $fixed_image_creation_width[$k], $fixed_image_creation_height[$k])) - $all_ok=false; - } - } - return $all_ok; -} - - -// Get a remote file, using whichever mechanism is enabled -function get_file_by_url($url) { - if (ini_get('allow_url_fopen')) { - return file_get_contents($url); - } - if (!function_exists('curl_version')) { - return false; - } - - $ch = curl_init(); - - curl_setopt($ch, CURLOPT_HEADER, 0); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_URL, $url); - - $data = curl_exec($ch); - curl_close($ch); - - return $data; -} - -// test for dir/file writability properly -function is_really_writable($dir){ - $dir = rtrim($dir, '/'); - // linux, safe off - if (DIRECTORY_SEPARATOR == '/' && @ini_get("safe_mode") == FALSE){ - return is_writable($dir); - } - - // Windows, safe ON. (have to write a file :S) - if (is_dir($dir)){ - $dir = $dir.'/'.md5(mt_rand(1,1000).mt_rand(1,1000)); - - if (($fp = @fopen($dir, 'ab')) === FALSE){ - return FALSE; - } - - fclose($fp); - @chmod($dir, 0777); - @unlink($dir); - return TRUE; - } - elseif ( ! is_file($dir) || ($fp = @fopen($dir, 'ab')) === FALSE){ - return FALSE; - } - - fclose($fp); - return TRUE; -} - -/** - * Check if a function is callable. - * Some servers disable copy,rename etc. - * - * Returns TRUE if callable and everything is OK - * Otherwise returns FALSE - */ -function is_function_callable($name){ - if (function_exists($name) === FALSE) return FALSE; - $disabled = explode(',', ini_get('disable_functions')); - return !in_array($name, $disabled); -} - -// recursivly copies everything -function rcopy($source, $destination, $is_rec = FALSE) { - if (is_dir($source)) { - if ($is_rec === FALSE){ - $pinfo = pathinfo($source); - $destination = rtrim($destination, '/').DIRECTORY_SEPARATOR.$pinfo['basename']; - } - if (is_dir($destination) === FALSE){ - mkdir($destination, 0777, true); - } - - $files = scandir($source); - foreach ($files as $file){ - if ($file != "." && $file != "..") { - rcopy($source.DIRECTORY_SEPARATOR.$file, rtrim($destination, '/').DIRECTORY_SEPARATOR.$file, TRUE); - } - } - } - else { - if (file_exists($source)){ - if (is_dir($destination) === TRUE){ - $pinfo = pathinfo($source); - $dest2 = rtrim($destination, '/').DIRECTORY_SEPARATOR.$pinfo['basename']; - } - else { - $dest2 = $destination; - } - - copy($source, $dest2); - } - } -} - -// recursivly renames everything -// I know copy and rename could be done with just one function -// but i split the 2 because sometimes rename fails on windows -// Need more feedback from users and refactor if needed -function rrename($source, $destination, $is_rec = FALSE) { - if (is_dir($source)) { - if ($is_rec === FALSE){ - $pinfo = pathinfo($source); - $destination = rtrim($destination, '/').DIRECTORY_SEPARATOR.$pinfo['basename']; - } - if (is_dir($destination) === FALSE){ - mkdir($destination, 0777, true); - } - - $files = scandir($source); - foreach ($files as $file){ - if ($file != "." && $file != "..") { - rrename($source.DIRECTORY_SEPARATOR.$file, rtrim($destination, '/').DIRECTORY_SEPARATOR.$file, TRUE); - } - } - } - else { - if (file_exists($source)){ - if (is_dir($destination) === TRUE){ - $pinfo = pathinfo($source); - $dest2 = rtrim($destination, '/').DIRECTORY_SEPARATOR.$pinfo['basename']; - } - else { - $dest2 = $destination; - } - - rename($source, $dest2); - } - } -} - -// On windows rename leaves folders sometime -// This will clear leftover folders -// After more feedback will merge it with rrename -function rrename_after_cleaner($source) { - $files = scandir($source); - - foreach ($files as $file) { - if ($file != "." && $file != "..") { - if (is_dir($source.DIRECTORY_SEPARATOR.$file)){ - rrename_after_cleaner($source.DIRECTORY_SEPARATOR.$file); - } - else { - unlink($source.DIRECTORY_SEPARATOR.$file); - } - } - } - - return rmdir($source); -} - -function debugger($input, $trace = FALSE, $halt = FALSE){ - ob_start(); - - echo "
----- DEBUG DUMP -----"; - echo "

";
-    var_dump($input);
-    echo "
"; - - if ($trace){ - $debug = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); - - echo "
-----STACK TRACE-----"; - echo "
";
-        var_dump($debug);
-        echo "
"; - } - - echo ""; - echo "---------------------------
"; - - $ret = ob_get_contents(); - ob_end_clean(); - - echo $ret; - - if ($halt == TRUE){ - exit(); - } -} - -?> \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/Jplayer.swf b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/Jplayer.swf deleted file mode 100644 index 85c0ba38eede8cabc9b85603c2239082a548f549..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14085 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
",d=d+("×");if(a.free){var e=!0,d=d+("(");b.each(a,function(a,f){b.jPlayer.prototype.format[a]&&(e?e=!1:d+=" | ",d+=""+a+"")});d+=")"}d+=""+a.title+(a.artist? -" ":"")+"";return d+="
"},_createItemHandlers:function(){var a=this;b(this.cssSelector.playlist).off("click","a."+this.options.playlistOptions.itemClass).on("click","a."+this.options.playlistOptions.itemClass,function(){var c=b(this).parent().parent().index();a.current!==c?a.play(c):b(a.cssSelector.jPlayer).jPlayer("play");b(this).blur();return!1});b(this.cssSelector.playlist).off("click","a."+this.options.playlistOptions.freeItemClass).on("click", -"a."+this.options.playlistOptions.freeItemClass,function(){b(this).parent().parent().find("."+a.options.playlistOptions.itemClass).click();b(this).blur();return!1});b(this.cssSelector.playlist).off("click","a."+this.options.playlistOptions.removeItemClass).on("click","a."+this.options.playlistOptions.removeItemClass,function(){var c=b(this).parent().parent().index();a.remove(c);b(this).blur();return!1})},_updateControls:function(){this.options.playlistOptions.enableRemoveControls?b(this.cssSelector.playlist+ -" ."+this.options.playlistOptions.removeItemClass).show():b(this.cssSelector.playlist+" ."+this.options.playlistOptions.removeItemClass).hide();this.shuffled?(b(this.cssSelector.shuffleOff).show(),b(this.cssSelector.shuffle).hide()):(b(this.cssSelector.shuffleOff).hide(),b(this.cssSelector.shuffle).show())},_highlight:function(a){this.playlist.length&&a!==f&&(b(this.cssSelector.playlist+" .jp-playlist-current").removeClass("jp-playlist-current"),b(this.cssSelector.playlist+" li:nth-child("+(a+1)+ -")").addClass("jp-playlist-current").find(".jp-playlist-item").addClass("jp-playlist-current"),b(this.cssSelector.title+" li").html(this.playlist[a].title+(this.playlist[a].artist?" ":"")))},setPlaylist:function(a){this._initPlaylist(a);this._init()},add:function(a,c){b(this.cssSelector.playlist+" ul").append(this._createListItem(a)).find("li:last-child").hide().slideDown(this.options.playlistOptions.addTime);this._updateControls();this.original.push(a); -this.playlist.push(a);c?this.play(this.playlist.length-1):1===this.original.length&&this.select(0)},remove:function(a){var c=this;if(a===f)return this._initPlaylist([]),this._refresh(function(){b(c.cssSelector.jPlayer).jPlayer("clearMedia")}),!0;if(this.removing)return!1;a=0>a?c.original.length+a:a;0<=a&&aa?this.original.length+a:a;0<=a&&aa?this.original.length+a:a;0<=a&&a' + (config.visible ? "Hide" : "Show") + ' jPlayer Inspector

' - + '
' - + '
' - + '
' - + '

jPlayer events that have occurred over the past 1 second:' - + '
(Backgrounds: Never occurred Occurred before Occurred Multiple occurrences reset)

'; - - // MJP: Would use the next 3 lines for ease, but the events are just slapped on the page. - // $.each($.jPlayer.event, function(eventName,eventType) { - // structure += '
' + eventName + '
'; - // }); - - var eventStyle = "float:left;margin:0 5px 5px 0;padding:0 5px;border:1px dotted #000;"; - // MJP: Doing it longhand so order and layout easier to control. - structure += - '
' - + '
' - + '
' - + '
' - + '
' - + '
' - + '
' - - + '
' - + '
' - + '
' - + '
' - - + '
' - + '
' - + '
' - + '
' - + '
' - + '
' - + '
' - - + '
' - + '
' - + '
' - + '
' - - + '
' - + '
' - + '
' - + '
' - + '
' - + '
' - - + '
'; - - // MJP: Would like a check here in case we missed an event. - - // MJP: Check fails, since it is not on the page yet. -/* $.each($.jPlayer.event, function(eventName,eventType) { - if($("#" + config.eventId[eventType])[0] === undefined) { - structure += '
' + eventName + '
'; - } - }); -*/ - structure += - '
' - + '

Update jPlayer Inspector

' - + '
' - + '
'; - $(this).html(structure); - - config.windowJq = $("#" + config.windowId); - config.statusJq = $("#" + config.statusId); - config.configJq = $("#" + config.configId); - config.toggleJq = $("#" + config.toggleId); - config.eventResetJq = $("#" + config.eventResetId); - config.updateJq = $("#" + config.updateId); - - $.each($.jPlayer.event, function(eventName,eventType) { - config.eventJq[eventType] = $("#" + config.eventId[eventType]); - config.eventJq[eventType].text(eventName + " (" + config.eventOccurrence[eventType] + ")"); // Sets the text to the event name and (0); - - config.jPlayer.bind(eventType + ".jPlayerInspector", function(e) { - config.eventOccurrence[e.type]++; - if(config.eventOccurrence[e.type] > 1) { - config.eventJq[e.type].css("background-color","#ff9"); - } else { - config.eventJq[e.type].css("background-color","#9f9"); - } - config.eventJq[e.type].text(eventName + " (" + config.eventOccurrence[e.type] + ")"); - // The timer to handle the color - clearTimeout(config.eventTimeout[e.type]); - config.eventTimeout[e.type] = setTimeout(function() { - config.eventJq[e.type].css("background-color","#fff"); - }, 1000); - // The timer to handle the occurences. - setTimeout(function() { - config.eventOccurrence[e.type]--; - config.eventJq[e.type].text(eventName + " (" + config.eventOccurrence[e.type] + ")"); - }, 1000); - if(config.visible) { // Update the status, if inspector open. - $this.jPlayerInspector("updateStatus"); - } - }); - }); - - config.jPlayer.bind($.jPlayer.event.ready + ".jPlayerInspector", function(e) { - $this.jPlayerInspector("updateConfig"); - }); - - config.toggleJq.click(function() { - if(config.visible) { - $(this).text("Show"); - config.windowJq.hide(); - config.statusJq.empty(); - config.configJq.empty(); - } else { - $(this).text("Hide"); - config.windowJq.show(); - config.updateJq.click(); - } - config.visible = !config.visible; - $(this).blur(); - return false; - }); - - config.eventResetJq.click(function() { - $.each($.jPlayer.event, function(eventName,eventType) { - config.eventJq[eventType].css("background-color","#eee"); - }); - $(this).blur(); - return false; - }); - - config.updateJq.click(function() { - $this.jPlayerInspector("updateStatus"); - $this.jPlayerInspector("updateConfig"); - return false; - }); - - if(!config.visible) { - config.windowJq.hide(); - } else { - // config.updateJq.click(); - } - - $.jPlayerInspector.i++; - - return this; - }, - destroy: function() { - $(this).data("jPlayerInspector") && $(this).data("jPlayerInspector").jPlayer.unbind(".jPlayerInspector"); - $(this).empty(); - }, - updateConfig: function() { // This displays information about jPlayer's configuration in inspector - - var jPlayerInfo = "

This jPlayer instance is running in your browser where:
" - - for(i = 0; i < $(this).data("jPlayerInspector").jPlayer.data("jPlayer").solutions.length; i++) { - var solution = $(this).data("jPlayerInspector").jPlayer.data("jPlayer").solutions[i]; - jPlayerInfo += " jPlayer's " + solution + " solution is"; - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer")[solution].used) { - jPlayerInfo += " being used and will support:"; - for(format in $(this).data("jPlayerInspector").jPlayer.data("jPlayer")[solution].support) { - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer")[solution].support[format]) { - jPlayerInfo += " " + format; - } - } - jPlayerInfo += "
"; - } else { - jPlayerInfo += " not required
"; - } - } - jPlayerInfo += "

"; - - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").html.active) { - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").flash.active) { - jPlayerInfo += "Problem with jPlayer since both HTML5 and Flash are active."; - } else { - jPlayerInfo += "The HTML5 is active."; - } - } else { - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").flash.active) { - jPlayerInfo += "The Flash is active."; - } else { - jPlayerInfo += "No solution is currently active. jPlayer needs a setMedia()."; - } - } - jPlayerInfo += "

"; - - var formatType = $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.formatType; - jPlayerInfo += "

status.formatType = '" + formatType + "'
"; - if(formatType) { - jPlayerInfo += "Browser canPlay('" + $.jPlayer.prototype.format[formatType].codec + "')"; - } else { - jPlayerInfo += "

"; - } - - jPlayerInfo += "

status.src = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.src + "'

"; - - jPlayerInfo += "

status.media = {
"; - for(prop in $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.media) { - jPlayerInfo += " " + prop + ": " + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.media[prop] + "
"; // Some are strings - } - jPlayerInfo += "};

" - - jPlayerInfo += "

"; - jPlayerInfo += "status.videoWidth = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.videoWidth + "'"; - jPlayerInfo += " | status.videoHeight = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.videoHeight + "'"; - jPlayerInfo += "
status.width = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.width + "'"; - jPlayerInfo += " | status.height = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.height + "'"; - jPlayerInfo += "

"; - - + "

Raw browser test for HTML5 support. Should equal a function if HTML5 is available.
"; - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").html.audio.available) { - jPlayerInfo += "htmlElement.audio.canPlayType = " + (typeof $(this).data("jPlayerInspector").jPlayer.data("jPlayer").htmlElement.audio.canPlayType) +"
" - } - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").html.video.available) { - jPlayerInfo += "htmlElement.video.canPlayType = " + (typeof $(this).data("jPlayerInspector").jPlayer.data("jPlayer").htmlElement.video.canPlayType) +""; - } - jPlayerInfo += "

"; - - jPlayerInfo += "

This instance is using the constructor options:
" - + "$('#" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").internal.self.id + "').jPlayer({
" - - + " swfPath: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "swfPath") + "',
" - - + " solution: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "solution") + "',
" - - + " supplied: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "supplied") + "',
" - - + " preload: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "preload") + "',
" - - + " volume: " + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "volume") + ",
" - - + " muted: " + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "muted") + ",
" - - + " backgroundColor: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "backgroundColor") + "',
" - - + " cssSelectorAncestor: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "cssSelectorAncestor") + "',
" - - + " cssSelector: {"; - - var cssSelector = $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "cssSelector"); - for(prop in cssSelector) { - - // jPlayerInfo += "
  " + prop + ": '" + cssSelector[prop] + "'," // This works too of course, but want to use option method for deep keys. - jPlayerInfo += "
  " + prop + ": '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "cssSelector." + prop) + "'," - } - - jPlayerInfo = jPlayerInfo.slice(0, -1); // Because the sloppy comma was bugging me. - - jPlayerInfo += "
 },
" - - + " errorAlerts: " + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "errorAlerts") + ",
" - - + " warningAlerts: " + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "warningAlerts") + "
" - - + "});

"; - $(this).data("jPlayerInspector").configJq.html(jPlayerInfo); - return this; - }, - updateStatus: function() { // This displays information about jPlayer's status in the inspector - $(this).data("jPlayerInspector").statusJq.html( - "

jPlayer is " + - ($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.paused ? "paused" : "playing") + - " at time: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.currentTime*10)/10 + "s." + - " (d: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.duration*10)/10 + "s" + - ", sp: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.seekPercent) + "%" + - ", cpr: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.currentPercentRelative) + "%" + - ", cpa: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.currentPercentAbsolute) + "%)

" - ); - return this; - } - }; - $.fn.jPlayerInspector = function( method ) { - // Method calling logic - if ( methods[method] ) { - return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof method === 'object' || ! method ) { - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + method + ' does not exist on jQuery.jPlayerInspector' ); - } - }; -})(jQuery); diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/jquery.jplayer.min.js b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/jquery.jplayer.min.js deleted file mode 100644 index ecd3ab51..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/jquery.jplayer.min.js +++ /dev/null @@ -1,107 +0,0 @@ -/* - * jPlayer Plugin for jQuery JavaScript Library - * http://www.jplayer.org - * - * Copyright (c) 2009 - 2013 Happyworm Ltd - * Licensed under the MIT license. - * http://opensource.org/licenses/MIT - * - * Author: Mark J Panaghiston - * Version: 2.4.0 - * Date: 5th June 2013 - */ - -(function(b,f){"function"===typeof define&&define.amd?define(["jquery"],f):b.jQuery?f(b.jQuery):f(b.Zepto)})(this,function(b,f){b.fn.jPlayer=function(a){var c="string"===typeof a,d=Array.prototype.slice.call(arguments,1),e=this;a=!c&&d.length?b.extend.apply(null,[!0,a].concat(d)):a;if(c&&"_"===a.charAt(0))return e;c?this.each(function(){var c=b(this).data("jPlayer"),h=c&&b.isFunction(c[a])?c[a].apply(c,d):c;if(h!==c&&h!==f)return e=h,!1}):this.each(function(){var c=b(this).data("jPlayer");c?c.option(a|| -{}):b(this).data("jPlayer",new b.jPlayer(a,this))});return e};b.jPlayer=function(a,c){if(arguments.length){this.element=b(c);this.options=b.extend(!0,{},this.options,a);var d=this;this.element.bind("remove.jPlayer",function(){d.destroy()});this._init()}};"function"!==typeof b.fn.stop&&(b.fn.stop=function(){});b.jPlayer.emulateMethods="load play pause";b.jPlayer.emulateStatus="src readyState networkState currentTime duration paused ended playbackRate";b.jPlayer.emulateOptions="muted volume";b.jPlayer.reservedEvent= -"ready flashreset resize repeat error warning";b.jPlayer.event={};b.each("ready flashreset resize repeat click error warning loadstart progress suspend abort emptied stalled play pause loadedmetadata loadeddata waiting playing canplay canplaythrough seeking seeked timeupdate ended ratechange durationchange volumechange".split(" "),function(){b.jPlayer.event[this]="jPlayer_"+this});b.jPlayer.htmlEvent="loadstart abort emptied stalled loadedmetadata loadeddata canplay canplaythrough ratechange".split(" "); -b.jPlayer.pause=function(){b.each(b.jPlayer.prototype.instances,function(a,c){c.data("jPlayer").status.srcSet&&c.jPlayer("pause")})};b.jPlayer.timeFormat={showHour:!1,showMin:!0,showSec:!0,padHour:!1,padMin:!0,padSec:!0,sepHour:":",sepMin:":",sepSec:""};var l=function(){this.init()};l.prototype={init:function(){this.options={timeFormat:b.jPlayer.timeFormat}},time:function(a){var c=new Date(1E3*(a&&"number"===typeof a?a:0)),b=c.getUTCHours();a=this.options.timeFormat.showHour?c.getUTCMinutes():c.getUTCMinutes()+ -60*b;c=this.options.timeFormat.showMin?c.getUTCSeconds():c.getUTCSeconds()+60*a;b=this.options.timeFormat.padHour&&10>b?"0"+b:b;a=this.options.timeFormat.padMin&&10>a?"0"+a:a;c=this.options.timeFormat.padSec&&10>c?"0"+c:c;b=""+(this.options.timeFormat.showHour?b+this.options.timeFormat.sepHour:"");b+=this.options.timeFormat.showMin?a+this.options.timeFormat.sepMin:"";return b+=this.options.timeFormat.showSec?c+this.options.timeFormat.sepSec:""}};var m=new l;b.jPlayer.convertTime=function(a){return m.time(a)}; -b.jPlayer.uaBrowser=function(a){a=a.toLowerCase();var b=/(opera)(?:.*version)?[ \/]([\w.]+)/,d=/(msie) ([\w.]+)/,e=/(mozilla)(?:.*? rv:([\w.]+))?/;a=/(webkit)[ \/]([\w.]+)/.exec(a)||b.exec(a)||d.exec(a)||0>a.indexOf("compatible")&&e.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}};b.jPlayer.uaPlatform=function(a){var b=a.toLowerCase(),d=/(android)/,e=/(mobile)/;a=/(ipad|iphone|ipod|android|blackberry|playbook|windows ce|webos)/.exec(b)||[];b=/(ipad|playbook)/.exec(b)||!e.exec(b)&&d.exec(b)|| -[];a[1]&&(a[1]=a[1].replace(/\s/g,"_"));return{platform:a[1]||"",tablet:b[1]||""}};b.jPlayer.browser={};b.jPlayer.platform={};var j=b.jPlayer.uaBrowser(navigator.userAgent);j.browser&&(b.jPlayer.browser[j.browser]=!0,b.jPlayer.browser.version=j.version);j=b.jPlayer.uaPlatform(navigator.userAgent);j.platform&&(b.jPlayer.platform[j.platform]=!0,b.jPlayer.platform.mobile=!j.tablet,b.jPlayer.platform.tablet=!!j.tablet);b.jPlayer.getDocMode=function(){var a;b.jPlayer.browser.msie&&(document.documentMode? -a=document.documentMode:(a=5,document.compatMode&&"CSS1Compat"===document.compatMode&&(a=7)));return a};b.jPlayer.browser.documentMode=b.jPlayer.getDocMode();b.jPlayer.nativeFeatures={init:function(){var a=document,b=a.createElement("video"),d={w3c:"fullscreenEnabled fullscreenElement requestFullscreen exitFullscreen fullscreenchange fullscreenerror".split(" "),moz:"mozFullScreenEnabled mozFullScreenElement mozRequestFullScreen mozCancelFullScreen mozfullscreenchange mozfullscreenerror".split(" "), -webkit:" webkitCurrentFullScreenElement webkitRequestFullScreen webkitCancelFullScreen webkitfullscreenchange ".split(" "),webkitVideo:"webkitSupportsFullscreen webkitDisplayingFullscreen webkitEnterFullscreen webkitExitFullscreen ".split(" ")},e=["w3c","moz","webkit","webkitVideo"],g,h;this.fullscreen=b={support:{w3c:!!a[d.w3c[0]],moz:!!a[d.moz[0]],webkit:"function"===typeof a[d.webkit[3]],webkitVideo:"function"===typeof b[d.webkitVideo[2]]},used:{}};g=0;for(h=e.length;g','','','',''];c=document.createElement(''); -for(var e=0;e=a&&(b=!0);return b},_validString:function(a){return a&&"string"===typeof a},_limitValue:function(a,b,d){return ad?d:a},_urlNotSetError:function(a){this._error({type:b.jPlayer.error.URL_NOT_SET,context:a,message:b.jPlayer.errorMsg.URL_NOT_SET,hint:b.jPlayer.errorHint.URL_NOT_SET})},_flashError:function(a){var c;c=this.internal.ready?"FLASH_DISABLED":"FLASH";this._error({type:b.jPlayer.error[c],context:this.internal.flash.swf, -message:b.jPlayer.errorMsg[c]+a.message,hint:b.jPlayer.errorHint[c]});this.internal.flash.jq.css({width:"1px",height:"1px"})},_error:function(a){this._trigger(b.jPlayer.event.error,a);this.options.errorAlerts&&this._alert("Error!"+(a.message?"\n\n"+a.message:"")+(a.hint?"\n\n"+a.hint:"")+"\n\nContext: "+a.context)},_warning:function(a){this._trigger(b.jPlayer.event.warning,f,a);this.options.warningAlerts&&this._alert("Warning!"+(a.message?"\n\n"+a.message:"")+(a.hint?"\n\n"+a.hint:"")+"\n\nContext: "+ -a.context)},_alert:function(a){alert("jPlayer "+this.version.script+" : id='"+this.internal.self.id+"' : "+a)},_emulateHtmlBridge:function(){var a=this;b.each(b.jPlayer.emulateMethods.split(/\s+/g),function(b,d){a.internal.domNode[d]=function(b){a[d](b)}});b.each(b.jPlayer.event,function(c,d){var e=!0;b.each(b.jPlayer.reservedEvent.split(/\s+/g),function(a,b){if(b===c)return e=!1});e&&a.element.bind(d+".jPlayer.jPlayerHtml",function(){a._emulateHtmlUpdate();var b=document.createEvent("Event");b.initEvent(c, -!1,!0);a.internal.domNode.dispatchEvent(b)})})},_emulateHtmlUpdate:function(){var a=this;b.each(b.jPlayer.emulateStatus.split(/\s+/g),function(b,d){a.internal.domNode[d]=a.status[d]});b.each(b.jPlayer.emulateOptions.split(/\s+/g),function(b,d){a.internal.domNode[d]=a.options[d]})},_destroyHtmlBridge:function(){var a=this;this.element.unbind(".jPlayerHtml");b.each((b.jPlayer.emulateMethods+" "+b.jPlayer.emulateStatus+" "+b.jPlayer.emulateOptions).split(/\s+/g),function(b,d){delete a.internal.domNode[d]})}}; -b.jPlayer.error={FLASH:"e_flash",FLASH_DISABLED:"e_flash_disabled",NO_SOLUTION:"e_no_solution",NO_SUPPORT:"e_no_support",URL:"e_url",URL_NOT_SET:"e_url_not_set",VERSION:"e_version"};b.jPlayer.errorMsg={FLASH:"jPlayer's Flash fallback is not configured correctly, or a command was issued before the jPlayer Ready event. Details: ",FLASH_DISABLED:"jPlayer's Flash fallback has been disabled by the browser due to the CSS rules you have used. Details: ",NO_SOLUTION:"No solution can be found by jPlayer in this browser. Neither HTML nor Flash can be used.", -NO_SUPPORT:"It is not possible to play any media format provided in setMedia() on this browser using your current options.",URL:"Media URL could not be loaded.",URL_NOT_SET:"Attempt to issue media playback commands, while no media url is set.",VERSION:"jPlayer "+b.jPlayer.prototype.version.script+" needs Jplayer.swf version "+b.jPlayer.prototype.version.needFlash+" but found "};b.jPlayer.errorHint={FLASH:"Check your swfPath option and that Jplayer.swf is there.",FLASH_DISABLED:"Check that you have not display:none; the jPlayer entity or any ancestor.", -NO_SOLUTION:"Review the jPlayer options: support and supplied.",NO_SUPPORT:"Video or audio formats defined in the supplied option are missing.",URL:"Check media URL is valid.",URL_NOT_SET:"Use setMedia() to set the media URL.",VERSION:"Update jPlayer files."};b.jPlayer.warning={CSS_SELECTOR_COUNT:"e_css_selector_count",CSS_SELECTOR_METHOD:"e_css_selector_method",CSS_SELECTOR_STRING:"e_css_selector_string",OPTION_KEY:"e_option_key"};b.jPlayer.warningMsg={CSS_SELECTOR_COUNT:"The number of css selectors found did not equal one: ", -CSS_SELECTOR_METHOD:"The methodName given in jPlayer('cssSelector') is not a valid jPlayer method.",CSS_SELECTOR_STRING:"The methodCssSelector given in jPlayer('cssSelector') is not a String or is empty.",OPTION_KEY:"The option requested in jPlayer('option') is undefined."};b.jPlayer.warningHint={CSS_SELECTOR_COUNT:"Check your css selector and the ancestor.",CSS_SELECTOR_METHOD:"Check your method name.",CSS_SELECTOR_STRING:"Check your css selector is a string.",OPTION_KEY:"Check your option name."}}); \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/popcorn/popcorn.jplayer.js b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/popcorn/popcorn.jplayer.js deleted file mode 100644 index fb57ac60..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/popcorn/popcorn.jplayer.js +++ /dev/null @@ -1,558 +0,0 @@ -/* - * jPlayer Player Plugin for Popcorn JavaScript Library - * http://www.jplayer.org - * - * Copyright (c) 2013 Happyworm Ltd - * Licensed under the MIT license. - * http://opensource.org/licenses/MIT - * - * Author: Mark J Panaghiston - * Version: 1.1.1 - * Date: 5th June 2013 - * - * For Popcorn Version: 1.3 - * For jPlayer Version: 2.4.0 - * Requires: jQuery 1.3.2+ - * Note: jQuery dependancy cannot be removed since jPlayer 2 is a jQuery plugin. Use of jQuery will be kept to a minimum. - */ - -/* Code verified using http://www.jshint.com/ */ -/*jshint asi:false, bitwise:false, boss:false, browser:true, curly:false, debug:false, eqeqeq:true, eqnull:false, evil:false, forin:false, immed:false, jquery:true, laxbreak:false, newcap:true, noarg:true, noempty:true, nonew:true, onevar:false, passfail:false, plusplus:false, regexp:false, undef:true, sub:false, strict:false, white:false, smarttabs:true */ -/*global Popcorn:false, console:false */ - -(function(Popcorn) { - - var JQUERY_SCRIPT = 'http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js', // Used if jQuery not already present. - JPLAYER_SCRIPT = 'http://www.jplayer.org/2.4.0/js/jquery.jplayer.min.js', // Used if jPlayer not already present. - JPLAYER_SWFPATH = 'http://www.jplayer.org/2.4.0/js/Jplayer.swf', // Used if not specified in jPlayer options via SRC Object. - SOLUTION = 'html,flash', // The default solution option. - DEBUG = false, // Decided to leave the debugging option and console output in for the time being. Overhead is trivial. - jQueryDownloading = false, // Flag to stop multiple instances from each pulling in jQuery, thus corrupting it. - jPlayerDownloading = false, // Flag to stop multiple instances from each pulling in jPlayer, thus corrupting it. - format = { // Duplicate of jPlayer 2.4.0 object, to avoid always requiring jQuery and jPlayer to be loaded before performing the _canPlayType() test. - mp3: { - codec: 'audio/mpeg; codecs="mp3"', - flashCanPlay: true, - media: 'audio' - }, - m4a: { // AAC / MP4 - codec: 'audio/mp4; codecs="mp4a.40.2"', - flashCanPlay: true, - media: 'audio' - }, - oga: { // OGG - codec: 'audio/ogg; codecs="vorbis"', - flashCanPlay: false, - media: 'audio' - }, - wav: { // PCM - codec: 'audio/wav; codecs="1"', - flashCanPlay: false, - media: 'audio' - }, - webma: { // WEBM - codec: 'audio/webm; codecs="vorbis"', - flashCanPlay: false, - media: 'audio' - }, - fla: { // FLV / F4A - codec: 'audio/x-flv', - flashCanPlay: true, - media: 'audio' - }, - rtmpa: { // RTMP AUDIO - codec: 'audio/rtmp; codecs="rtmp"', - flashCanPlay: true, - media: 'audio' - }, - m4v: { // H.264 / MP4 - codec: 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"', - flashCanPlay: true, - media: 'video' - }, - ogv: { // OGG - codec: 'video/ogg; codecs="theora, vorbis"', - flashCanPlay: false, - media: 'video' - }, - webmv: { // WEBM - codec: 'video/webm; codecs="vorbis, vp8"', - flashCanPlay: false, - media: 'video' - }, - flv: { // FLV / F4V - codec: 'video/x-flv', - flashCanPlay: true, - media: 'video' - }, - rtmpv: { // RTMP VIDEO - codec: 'video/rtmp; codecs="rtmp"', - flashCanPlay: true, - media: 'video' - } - }, - isObject = function(val) { // Basic check for Object - if(val && typeof val === 'object' && val.hasOwnProperty) { - return true; - } else { - return false; - } - }, - getMediaType = function(url) { // Function to gleam the media type from the URL - var mediaType = false; - if(/\.mp3$/i.test(url)) { - mediaType = 'mp3'; - } else if(/\.mp4$/i.test(url) || /\.m4v$/i.test(url)) { - mediaType = 'm4v'; - } else if(/\.m4a$/i.test(url)) { - mediaType = 'm4a'; - } else if(/\.ogg$/i.test(url) || /\.oga$/i.test(url)) { - mediaType = 'oga'; - } else if(/\.ogv$/i.test(url)) { - mediaType = 'ogv'; - } else if(/\.webm$/i.test(url)) { - mediaType = 'webmv'; - } - return mediaType; - }, - getSupplied = function(url) { // Function to generate a supplied option from an src object. ie., When supplied not specified. - var supplied = '', - separator = ''; - if(isObject(url)) { - // Generate supplied option from object's properties. Non-format properties would be ignored by jPlayer. Order is unpredictable. - for(var prop in url) { - if(url.hasOwnProperty(prop)) { - supplied += separator + prop; - separator = ','; - } - } - } - if(DEBUG) console.log('getSupplied(): Generated: supplied = "' + supplied + '"'); - return supplied; - }; - - Popcorn.player( 'jplayer', { - _canPlayType: function( containerType, url ) { - // url : Either a String or an Object structured similar a jPlayer media object. ie., As used by setMedia in jPlayer. - // The url object may also contain a solution and supplied property. - - // Define the src object structure here! - - var cType = containerType.toLowerCase(), - srcObj = { - media:{}, - options:{} - }, - rVal = false, // Only a boolean false means it is not supported. - mediaType; - - if(cType !== 'video' && cType !== 'audio') { - - if(typeof url === 'string') { - // Check it starts with http, so the URL is absolute... Well, it is not a perfect check. - if(/^http.*/i.test(url)) { - mediaType = getMediaType(url); - if(mediaType) { - srcObj.media[mediaType] = url; - srcObj.options.solution = SOLUTION; - srcObj.options.supplied = mediaType; - } - } - } else { - srcObj = url; // Assume the url is an src object. - } - - // Check for Object and appropriate minimum data structure. - if(isObject(srcObj) && isObject(srcObj.media)) { - - if(!isObject(srcObj.options)) { - srcObj.options = {}; - } - - if(!srcObj.options.solution) { - srcObj.options.solution = SOLUTION; - } - - if(!srcObj.options.supplied) { - srcObj.options.supplied = getSupplied(srcObj.media); - } - - // Figure out how jPlayer will play it. - // This may not work properly when both audio and video is supplied. ie., A media player. But it should return truethy and jPlayer can figure it out. - - var solution = srcObj.options.solution.toLowerCase().split(","), // Create the solution array, with prority based on the order of the solution string. - supplied = srcObj.options.supplied.toLowerCase().split(","); // Create the supplied formats array, with prority based on the order of the supplied formats string. - - for(var sol = 0; sol < solution.length; sol++) { - - var solutionType = solution[sol].replace(/^\s+|\s+$/g, ""), //trim - checkingHtml = solutionType === 'html', - checkingFlash = solutionType === 'flash', - mediaElem; - - for(var fmt = 0; fmt < supplied.length; fmt++) { - mediaType = supplied[fmt].replace(/^\s+|\s+$/g, ""); //trim - if(format[mediaType]) { // Check format is valid. - - // Create an HTML5 media element for the type of media. - if(!mediaElem && checkingHtml) { - mediaElem = document.createElement(format[mediaType].media); - } - // See if the HTML5 media element can play the MIME / Codec type. - // Flash also returns the object if the format is playable, so it is truethy, but that html property is false. - // This assumes Flash is available, but that should be dealt with by jPlayer if that happens. - var htmlCanPlay = !!(mediaElem && mediaElem.canPlayType && mediaElem.canPlayType(format[mediaType].codec)), - htmlWillPlay = htmlCanPlay && checkingHtml, - flashWillPlay = format[mediaType].flashCanPlay && checkingFlash; - // The first one found will match what jPlayer uses. - if(htmlWillPlay || flashWillPlay) { - rVal = { - html: htmlWillPlay, - type: mediaType - }; - sol = solution.length; // Exit solution loop - fmt = supplied.length; // Exit supplied loop - } - } - } - } - } - } - return rVal; - }, - // _setup: function( options ) { // Warning: options is deprecated. - _setup: function() { - var media = this, - myPlayer, // The jQuery selector of the jPlayer element. Usually a
- jPlayerObj, // The jPlayer data instance. For performance and DRY code. - mediaType = 'unknown', - jpMedia = {}, - jpOptions = {}, - ready = false, // Used during init to override the annoying duration dependance in the track event padding during Popcorn's isReady(). ie., We is ready after loadeddata and duration can then be set real value at leisure. - duration = 0, // For the durationchange event with both HTML5 and Flash solutions. Used with 'ready' to keep control during the Popcorn isReady() via loadeddata event. (Duration=0 is bad.) - durationchangeId = null, // A timeout ID used with delayed durationchange event. (Because of the duration=NaN fudge to avoid Popcorn track event corruption.) - canplaythrough = false, - error = null, // The MediaError object. - - dispatchDurationChange = function() { - if(ready) { - if(DEBUG) console.log('Dispatched event : durationchange : ' + duration); - media.dispatchEvent('durationchange'); - } else { - if(DEBUG) console.log('DELAYED EVENT (!ready) : durationchange : ' + duration); - clearTimeout(durationchangeId); // Stop multiple triggers causing multiple timeouts running in parallel. - durationchangeId = setTimeout(dispatchDurationChange, 250); - } - }, - - jPlayerFlashEventsPatch = function() { - - /* Events already supported by jPlayer Flash: - * loadstart - * loadedmetadata (M4A, M4V) - * progress - * play - * pause - * seeking - * seeked - * timeupdate - * ended - * volumechange - * error <- See the custom handler in jPlayerInit() - */ - - /* Events patched: - * loadeddata - * durationchange - * canplaythrough - * playing - */ - - /* Events NOT patched: - * suspend - * abort - * emptied - * stalled - * loadedmetadata (MP3) - * waiting - * canplay - * ratechange - */ - - // Triggering patched events through the jPlayer Object so the events are homogeneous. ie., The contain the event.jPlayer data structure. - - var checkDuration = function(event) { - if(event.jPlayer.status.duration !== duration) { - duration = event.jPlayer.status.duration; - dispatchDurationChange(); - } - }, - - checkCanPlayThrough = function(event) { - if(!canplaythrough && event.jPlayer.status.seekPercent === 100) { - canplaythrough = true; - setTimeout(function() { - if(DEBUG) console.log('Trigger : canplaythrough'); - jPlayerObj._trigger($.jPlayer.event.canplaythrough); - }, 0); - } - }; - - myPlayer.bind($.jPlayer.event.loadstart, function() { - setTimeout(function() { - if(DEBUG) console.log('Trigger : loadeddata'); - jPlayerObj._trigger($.jPlayer.event.loadeddata); - }, 0); - }) - .bind($.jPlayer.event.progress, function(event) { - checkDuration(event); - checkCanPlayThrough(event); - }) - .bind($.jPlayer.event.timeupdate, function(event) { - checkDuration(event); - checkCanPlayThrough(event); - }) - .bind($.jPlayer.event.play, function() { - setTimeout(function() { - if(DEBUG) console.log('Trigger : playing'); - jPlayerObj._trigger($.jPlayer.event.playing); - }, 0); - }); - - if(DEBUG) console.log('Created CUSTOM event handlers for FLASH'); - }, - - jPlayerInit = function() { - (function($) { - - myPlayer = $('#' + media.id); - - if(typeof media.src === 'string') { - mediaType = getMediaType(media.src); - jpMedia[mediaType] = media.src; - jpOptions.supplied = mediaType; - jpOptions.solution = SOLUTION; - } else if(isObject(media.src)) { - jpMedia = isObject(media.src.media) ? media.src.media : {}; - jpOptions = isObject(media.src.options) ? media.src.options : {}; - jpOptions.solution = jpOptions.solution || SOLUTION; - jpOptions.supplied = jpOptions.supplied || getSupplied(media.src.media); - } - - // Allow the swfPath to be set to local server. ie., If the jPlayer Plugin is local and already on the page, then you can also use the local SWF. - jpOptions.swfPath = jpOptions.swfPath || JPLAYER_SWFPATH; - - myPlayer.bind($.jPlayer.event.ready, function(event) { - if(event.jPlayer.flash.used) { - jPlayerFlashEventsPatch(); - } - // Set the media andd load it, so that the Flash solution behaves similar to HTML5 solution. - // This also allows the loadstart event to be used to know jPlayer is ready. - $(this).jPlayer('setMedia', jpMedia).jPlayer('load'); - }); - - // Do not auto-bubble the reserved events, nor the loadeddata and durationchange event, since the duration must be carefully handled when loadeddata event occurs. - // See the duration property code for more details. (Ranting.) - - var reservedEvents = $.jPlayer.reservedEvent + ' loadeddata durationchange', - reservedEvent = reservedEvents.split(/\s+/g); - - // Generate event handlers for all the standard HTML5 media events. (Except durationchange) - - var bindEvent = function(name) { - myPlayer.bind($.jPlayer.event[name], function(event) { - if(DEBUG) console.log('Dispatched event: ' + name + (event && event.jPlayer ? ' (' + event.jPlayer.status.currentTime + 's)' : '')); // Must be after dispatch for some reason on Firefox/Opera - media.dispatchEvent(name); - }); - if(DEBUG) console.log('Created event handler for: ' + name); - }; - - for(var eventName in $.jPlayer.event) { - if($.jPlayer.event.hasOwnProperty(eventName)) { - var nativeEvent = true; - for(var iRes in reservedEvent) { - if(reservedEvent.hasOwnProperty(iRes)) { - if(reservedEvent[iRes] === eventName) { - nativeEvent = false; - break; - } - } - } - if(nativeEvent) { - bindEvent(eventName); - } else { - if(DEBUG) console.log('Skipped auto event handler creation for: ' + eventName); - } - } - } - - myPlayer.bind($.jPlayer.event.loadeddata, function(event) { - if(DEBUG) console.log('Dispatched event: loadeddata' + (event && event.jPlayer ? ' (' + event.jPlayer.status.currentTime + 's)' : '')); - media.dispatchEvent('loadeddata'); - ready = true; - }); - if(DEBUG) console.log('Created CUSTOM event handler for: loadeddata'); - - myPlayer.bind($.jPlayer.event.durationchange, function(event) { - duration = event.jPlayer.status.duration; - dispatchDurationChange(); - }); - if(DEBUG) console.log('Created CUSTOM event handler for: durationchange'); - - // The error event is a special case. Plus jPlayer error event assumes it is a broken URL. (It could also be a decoder error... Or aborted or a Network error.) - myPlayer.bind($.jPlayer.event.error, function(event) { - // Not sure how to handle the error situation. Popcorn does not appear to have the error or error.code property documented here: http://popcornjs.org/popcorn-docs/media-methods/ - // If any error event happens, then something has gone pear shaped. - - error = event.jPlayer.error; // Saving object pointer, not a copy of the object. Possible garbage collection issue... But the player is dead anyway, so don't care. - - if(error.type === $.jPlayer.error.URL) { - error.code = 4; // MEDIA_ERR_SRC_NOT_SUPPORTED since jPlayer makes this assumption. It is the most common error, then the decode error. Never seen either of the other 2 error types occur. - } else { - error.code = 0; // It was a jPlayer error, not an HTML5 media error. - } - - if(DEBUG) console.log('Dispatched event: error'); - if(DEBUG) console.dir(error); - media.dispatchEvent('error'); - }); - if(DEBUG) console.log('Created CUSTOM event handler for: error'); - - Popcorn.player.defineProperty( media, 'error', { - set: function() { - // Read-only property - return error; - }, - get: function() { - return error; - } - }); - - Popcorn.player.defineProperty( media, 'currentTime', { - set: function( val ) { - if(jPlayerObj.status.paused) { - myPlayer.jPlayer('pause', val); - } else { - myPlayer.jPlayer('play', val); - } - return val; - }, - get: function() { - return jPlayerObj.status.currentTime; - } - }); - - /* The joy of duration and the loadeddata event isReady() handler - * The duration is assumed to be a NaN or a valid duration. - * jPlayer uses zero instead of a NaN and this screws up the Popcorn track event start/end arrays padding. - * This line here: - * videoDurationPlus = duration != duration ? Number.MAX_VALUE : duration + 1; - * Not sure why it is not simply: - * videoDurationPlus = Number.MAX_VALUE; // Who cares if the padding is close to the real duration? - * So if you trigger loadeddata before the duration is correct, the track event padding is screwed up. (It pads the start, not the end... Well, duration+1 = 0+1 = 1s) - * That line makes the MP3 Flash fallback difficult to setup. The whole MP3 will need to load before the duration is known. - * Planning on using a NaN for duration until a >0 value is found... Except with MP3, where seekPercent must be 100% before setting the duration. - * Why not just use a NaN during init... And then correct the duration later? - */ - - Popcorn.player.defineProperty( media, 'duration', { - set: function() { - // Read-only property - if(ready) { - return duration; - } else { - return NaN; - } - }, - get: function() { - if(ready) { - return duration; // Popcorn has initialized, we can now use duration zero or whatever without fear. - } else { - return NaN; // Keep the duration a NaN until after loadeddata event has occurred. Otherwise Popcorn track event padding is corrupted. - } - } - }); - - Popcorn.player.defineProperty( media, 'muted', { - set: function( val ) { - myPlayer.jPlayer('mute', val); - return jPlayerObj.options.muted; - }, - get: function() { - return jPlayerObj.options.muted; - } - }); - - Popcorn.player.defineProperty( media, 'volume', { - set: function( val ) { - myPlayer.jPlayer('volume', val); - return jPlayerObj.options.volume; - }, - get: function() { - return jPlayerObj.options.volume; - } - }); - - Popcorn.player.defineProperty( media, 'paused', { - set: function() { - // Read-only property - return jPlayerObj.status.paused; - }, - get: function() { - return jPlayerObj.status.paused; - } - }); - - media.play = function() { - myPlayer.jPlayer('play'); - }; - media.pause = function() { - myPlayer.jPlayer('pause'); - }; - - myPlayer.jPlayer(jpOptions); // Instance jPlayer. Note that the options should not have a ready event defined... Kill it by default? - jPlayerObj = myPlayer.data('jPlayer'); - - }(jQuery)); - }, - - jPlayerCheck = function() { - if (!jQuery.jPlayer) { - if (!jPlayerDownloading) { - jPlayerDownloading = true; - Popcorn.getScript(JPLAYER_SCRIPT, function() { - jPlayerDownloading = false; - jPlayerInit(); - }); - } else { - setTimeout(jPlayerCheck, 250); - } - } else { - jPlayerInit(); - } - }, - - jQueryCheck = function() { - if (!window.jQuery) { - if (!jQueryDownloading) { - jQueryDownloading = true; - Popcorn.getScript(JQUERY_SCRIPT, function() { - jQueryDownloading = false; - jPlayerCheck(); - }); - } else { - setTimeout(jQueryCheck, 250); - } - } else { - jPlayerCheck(); - } - }; - - jQueryCheck(); - }, - _teardown: function() { - jQuery('#' + this.id).jPlayer('destroy'); - } - }); - -}(Popcorn)); \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css deleted file mode 100644 index f71520d6..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css +++ /dev/null @@ -1,640 +0,0 @@ -/* - * Skin for jPlayer Plugin (jQuery JavaScript Library) - * http://www.jplayer.org - * - * Skin Name: Blue Monday - * - * Copyright (c) 2010-2012 Happyworm Ltd - * Dual licensed under the MIT and GPL licenses. - * - http://www.opensource.org/licenses/mit-license.php - * - http://www.gnu.org/copyleft/gpl.html - * - * Author: Silvia Benvenuti - * Skin Version: 4.3 (jPlayer 2.2.0) - * Date: 19th November 2012 - */ - -div.jp-audio, -div.jp-audio-stream, -div.jp-video { - - /* Edit the font-size to counteract inherited font sizing. - * Eg. 1.25em = 1 / 0.8em - */ - - font-size:1.25em; /* 1.25em for testing in site pages */ /* No parent CSS that can effect the size in the demos ZIP */ - - font-family:Verdana, Arial, sans-serif; - line-height:1.6; - color: #666; - border:1px solid #cccccc; - background-color:#eee; -} -div.jp-audio { - width:420px; -} -div.jp-audio-stream { - width:182px; -} -div.jp-video-270p { - width:480px; -} -div.jp-video-360p { - width:640px; -} -div.jp-video-full { - /* Rules for IE6 (full-screen) */ - width:480px; - height:270px; - /* Rules for IE7 (full-screen) - Otherwise the relative container causes other page items that are not position:static (default) to appear over the video/gui. */ - position:static !important; position:relative; -} - -/* The z-index rule is defined in this manner to enable Popcorn plugins that add overlays to video area. EG. Subtitles. */ -div.jp-video-full div div { - z-index:1000; -} - -div.jp-video-full div.jp-jplayer { - top: 0; - left: 0; - position: fixed !important; position: relative; /* Rules for IE6 (full-screen) */ - overflow: hidden; -} - -div.jp-video-full div.jp-gui { - position: fixed !important; position: static; /* Rules for IE6 (full-screen) */ - top: 0; - left: 0; - width:100%; - height:100%; - z-index:1001; /* 1 layer above the others. */ -} - -div.jp-video-full div.jp-interface { - position: absolute !important; position: relative; /* Rules for IE6 (full-screen) */ - bottom: 0; - left: 0; -} - -div.jp-interface { - position: relative; - background-color:#eee; - width:100%; -} - -div.jp-audio div.jp-type-single div.jp-interface { - height:80px; -} -div.jp-audio div.jp-type-playlist div.jp-interface { - height:80px; -} - -div.jp-audio-stream div.jp-type-single div.jp-interface { - height:80px; -} - -div.jp-video div.jp-interface { - border-top:1px solid #aaaaaa; -} - -/* @group CONTROLS */ - -div.jp-controls-holder { - clear: both; - width:440px; - margin:0 auto; - position: relative; - overflow:hidden; - top:-8px; /* This negative value depends on the size of the text in jp-currentTime and jp-duration */ -} - -div.jp-interface ul.jp-controls { - list-style-type:none; - margin:0; - padding: 0; - overflow:hidden; -} - -div.jp-audio ul.jp-controls { - width: 380px; - padding:20px 20px 0 20px; -} - -div.jp-audio-stream ul.jp-controls { - width: 142px; - padding:20px 20px 0 20px; -} - -div.jp-video div.jp-type-single ul.jp-controls { - width: 78px; - margin-left: 200px; -} - -div.jp-video div.jp-type-playlist ul.jp-controls { - width: 134px; - margin-left: 172px; -} -div.jp-video ul.jp-controls, -div.jp-interface ul.jp-controls li { - display:inline; - float: left; -} - -div.jp-interface ul.jp-controls a { - display:block; - overflow:hidden; - text-indent:-9999px; -} -a.jp-play, -a.jp-pause { - width:40px; - height:40px; -} - -a.jp-play { - background: url("jplayer.blue.monday.jpg") 0 0 no-repeat; -} -a.jp-play:hover { - background: url("jplayer.blue.monday.jpg") -41px 0 no-repeat; -} -a.jp-pause { - background: url("jplayer.blue.monday.jpg") 0 -42px no-repeat; - display: none; -} -a.jp-pause:hover { - background: url("jplayer.blue.monday.jpg") -41px -42px no-repeat; -} - -a.jp-stop, a.jp-previous, a.jp-next { - width:28px; - height:28px; - margin-top:6px; -} - -a.jp-stop { - background: url("jplayer.blue.monday.jpg") 0 -83px no-repeat; - margin-left:10px; -} - -a.jp-stop:hover { - background: url("jplayer.blue.monday.jpg") -29px -83px no-repeat; -} - -a.jp-previous { - background: url("jplayer.blue.monday.jpg") 0 -112px no-repeat; -} -a.jp-previous:hover { - background: url("jplayer.blue.monday.jpg") -29px -112px no-repeat; -} - -a.jp-next { - background: url("jplayer.blue.monday.jpg") 0 -141px no-repeat; -} -a.jp-next:hover { - background: url("jplayer.blue.monday.jpg") -29px -141px no-repeat; -} - -/* @end */ - -/* @group progress bar */ - -div.jp-progress { - overflow:hidden; - background-color: #ddd; -} -div.jp-audio div.jp-progress { - position: absolute; - top:32px; - height:15px; -} -div.jp-audio div.jp-type-single div.jp-progress { - left:110px; - width:186px; -} -div.jp-audio div.jp-type-playlist div.jp-progress { - left:166px; - width:130px; -} -div.jp-video div.jp-progress { - top:0px; - left:0px; - width:100%; - height:10px; -} -div.jp-seek-bar { - background: url("jplayer.blue.monday.jpg") 0 -202px repeat-x; - width:0px; - height:100%; - cursor: pointer; -} -div.jp-play-bar { - background: url("jplayer.blue.monday.jpg") 0 -218px repeat-x ; - width:0px; - height:100%; -} - -/* The seeking class is added/removed inside jPlayer */ -div.jp-seeking-bg { - background: url("jplayer.blue.monday.seeking.gif"); -} - -/* @end */ - -/* @group volume controls */ - - -a.jp-mute, -a.jp-unmute, -a.jp-volume-max { - width:18px; - height:15px; - margin-top:12px; -} - -div.jp-audio div.jp-type-single a.jp-mute, -div.jp-audio div.jp-type-single a.jp-unmute { - margin-left: 210px; -} -div.jp-audio div.jp-type-playlist a.jp-mute, -div.jp-audio div.jp-type-playlist a.jp-unmute { - margin-left: 154px; -} - -div.jp-audio-stream div.jp-type-single a.jp-mute, -div.jp-audio-stream div.jp-type-single a.jp-unmute { - margin-left:10px; -} - -div.jp-audio a.jp-volume-max, -div.jp-audio-stream a.jp-volume-max { - margin-left: 56px; -} - -div.jp-video a.jp-mute, -div.jp-video a.jp-unmute, -div.jp-video a.jp-volume-max { - position: absolute; - top:12px; - margin-top:0; -} - -div.jp-video a.jp-mute, -div.jp-video a.jp-unmute { - left: 50px; -} - -div.jp-video a.jp-volume-max { - left: 134px; -} - -a.jp-mute { - background: url("jplayer.blue.monday.jpg") 0 -170px no-repeat; -} -a.jp-mute:hover { - background: url("jplayer.blue.monday.jpg") -19px -170px no-repeat; -} -a.jp-unmute { - background: url("jplayer.blue.monday.jpg") -60px -170px no-repeat; - display: none; -} -a.jp-unmute:hover { - background: url("jplayer.blue.monday.jpg") -79px -170px no-repeat; -} -a.jp-volume-max { - background: url("jplayer.blue.monday.jpg") 0 -186px no-repeat; -} -a.jp-volume-max:hover { - background: url("jplayer.blue.monday.jpg") -19px -186px no-repeat; -} - -div.jp-volume-bar { - position: absolute; - overflow:hidden; - background: url("jplayer.blue.monday.jpg") 0 -250px repeat-x; - width:46px; - height:5px; - cursor: pointer; -} -div.jp-audio div.jp-volume-bar { - top:37px; - left:330px; -} -div.jp-audio-stream div.jp-volume-bar { - top:37px; - left:92px; -} -div.jp-video div.jp-volume-bar { - top:17px; - left:72px; -} -div.jp-volume-bar-value { - background: url("jplayer.blue.monday.jpg") 0 -256px repeat-x; - width:0px; - height:5px; -} - -/* @end */ - -/* @group current time and duration */ - -div.jp-audio div.jp-time-holder { - position:absolute; - top:50px; -} -div.jp-audio div.jp-type-single div.jp-time-holder { - left:110px; - width:186px; -} -div.jp-audio div.jp-type-playlist div.jp-time-holder { - left:166px; - width:130px; -} - -div.jp-current-time, -div.jp-duration { - width:60px; - font-size:.64em; - font-style:oblique; -} -div.jp-current-time { - float: left; - display:inline; -} -div.jp-duration { - float: right; - display:inline; - text-align: right; -} - -div.jp-video div.jp-current-time { - margin-left:20px; -} -div.jp-video div.jp-duration { - margin-right:20px; -} - -/* @end */ - -/* @group playlist */ - -div.jp-title { - font-weight:bold; - text-align:center; -} - -div.jp-title, -div.jp-playlist { - width:100%; - background-color:#ccc; - border-top:1px solid #cccccc; -} -div.jp-type-single div.jp-title, -div.jp-type-playlist div.jp-title, -div.jp-type-single div.jp-playlist { - border-top:none; -} -div.jp-title ul, -div.jp-playlist ul { - list-style-type:none; - margin:0; - padding:0 20px; - font-size:.72em; -} - -div.jp-title li { - padding:5px 0; - font-weight:bold; -} -div.jp-playlist li { - padding:5px 0 4px 20px; - border-bottom:1px solid #eee; -} - -div.jp-playlist li div { - display:inline; -} - -/* Note that the first-child (IE6) and last-child (IE6/7/8) selectors do not work on IE */ - -div.jp-type-playlist div.jp-playlist li:last-child { - padding:5px 0 5px 20px; - border-bottom:none; -} -div.jp-type-playlist div.jp-playlist li.jp-playlist-current { - list-style-type:square; - list-style-position:inside; - padding-left:7px; -} -div.jp-type-playlist div.jp-playlist a { - color: #333; - text-decoration: none; -} -div.jp-type-playlist div.jp-playlist a:hover { - color:#0d88c1; -} -div.jp-type-playlist div.jp-playlist a.jp-playlist-current { - color:#0d88c1; -} - -div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove { - float:right; - display:inline; - text-align:right; - margin-right:10px; - font-weight:bold; - color:#666; -} -div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove:hover { - color:#0d88c1; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media { - float:right; - display:inline; - text-align:right; - margin-right:10px; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media a{ - color:#666; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media a:hover{ - color:#0d88c1; -} -span.jp-artist { - font-size:.8em; - color:#666; -} - -/* @end */ - -div.jp-video-play { - width:100%; - overflow:hidden; /* Important for nested negative margins to work in modern browsers */ - cursor:pointer; - background-color:rgba(0,0,0,0); /* Makes IE9 work with the active area over the whole video area. IE6/7/8 only have the button as active area. */ -} -div.jp-video-270p div.jp-video-play { - margin-top:-270px; - height:270px; -} -div.jp-video-360p div.jp-video-play { - margin-top:-360px; - height:360px; -} -div.jp-video-full div.jp-video-play { - height:100%; -} -a.jp-video-play-icon { - position:relative; - display:block; - width: 112px; - height: 100px; - - margin-left:-56px; - margin-top:-50px; - left:50%; - top:50%; - - background: url("jplayer.blue.monday.video.play.png") 0 0 no-repeat; - text-indent:-9999px; -} -div.jp-video-play:hover a.jp-video-play-icon { - background: url("jplayer.blue.monday.video.play.png") 0 -100px no-repeat; -} - - - - - -div.jp-jplayer audio, -div.jp-jplayer { - width:0px; - height:0px; -} - -div.jp-jplayer { - background-color: #000000; -} - - - - - -/* @group TOGGLES */ - -/* The audio toggles are nested inside jp-time-holder */ - -ul.jp-toggles { - list-style-type:none; - padding:0; - margin:0 auto; - overflow:hidden; -} - -div.jp-audio .jp-type-single ul.jp-toggles { - width:25px; -} -div.jp-audio .jp-type-playlist ul.jp-toggles { - width:55px; - margin: 0; - position: absolute; - left: 325px; - top: 50px; -} - -div.jp-video ul.jp-toggles { - margin-top:10px; - width:100px; -} - -ul.jp-toggles li { - display:block; - float:right; -} - -ul.jp-toggles li a { - display:block; - width:25px; - height:18px; - text-indent:-9999px; - line-height:100%; /* need this for IE6 */ -} - -a.jp-full-screen { - background: url("jplayer.blue.monday.jpg") 0 -310px no-repeat; - margin-left: 20px; -} - -a.jp-full-screen:hover { - background: url("jplayer.blue.monday.jpg") -30px -310px no-repeat; -} - -a.jp-restore-screen { - background: url("jplayer.blue.monday.jpg") -60px -310px no-repeat; - margin-left: 20px; -} - -a.jp-restore-screen:hover { - background: url("jplayer.blue.monday.jpg") -90px -310px no-repeat; -} - -a.jp-repeat { - background: url("jplayer.blue.monday.jpg") 0 -290px no-repeat; -} - -a.jp-repeat:hover { - background: url("jplayer.blue.monday.jpg") -30px -290px no-repeat; -} - -a.jp-repeat-off { - background: url("jplayer.blue.monday.jpg") -60px -290px no-repeat; -} - -a.jp-repeat-off:hover { - background: url("jplayer.blue.monday.jpg") -90px -290px no-repeat; -} - -a.jp-shuffle { - background: url("jplayer.blue.monday.jpg") 0 -270px no-repeat; - margin-left: 5px; -} - -a.jp-shuffle:hover { - background: url("jplayer.blue.monday.jpg") -30px -270px no-repeat; -} - -a.jp-shuffle-off { - background: url("jplayer.blue.monday.jpg") -60px -270px no-repeat; - margin-left: 5px; -} - -a.jp-shuffle-off:hover { - background: url("jplayer.blue.monday.jpg") -90px -270px no-repeat; -} - - -/* @end */ - -/* @group NO SOLUTION error feedback */ - -.jp-no-solution { - padding:5px; - font-size:.8em; - background-color:#eee; - border:2px solid #cccccc; - color:#000; - display:none; -} - -.jp-no-solution a { - color:#000; -} - -.jp-no-solution span { - font-size:1em; - display:block; - text-align:center; - font-weight:bold; -} - -/* @end */ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.jpg deleted file mode 100644 index 52fdc1aabcff8460a60f5448c9ee6b050d963bb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16871 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 diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/spirites_blue.monday_2011.pxm b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/spirites_blue.monday_2011.pxm deleted file mode 100644 index e3adcabf42d74777ab30c707e7a05057c6388166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320476 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

VFPc4lP93C5hrhjnK&s~+6BSh6&h`GubMs6_5r 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 O`}==;2%%u4;2QwYWU6rh diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootbox.min.js b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootbox.min.js deleted file mode 100644 index 3503860e..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootbox.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * bootbox.js v3.3.0 - * - * http://bootboxjs.com/license.txt - */ -var bootbox=window.bootbox||function(a,b){function c(a,b){return"undefined"==typeof b&&(b=d),"string"==typeof m[b][a]?m[b][a]:b!=e?c(a,e):a}var d="en",e="en",f=!0,g="static",h="javascript:;",i="",j={},k={},l={};l.setLocale=function(a){for(var b in m)if(b==a)return d=a,void 0;throw new Error("Invalid locale: "+a)},l.addLocale=function(a,b){"undefined"==typeof m[a]&&(m[a]={});for(var c in b)m[a][c]=b[c]},l.setIcons=function(a){k=a,("object"!=typeof k||null===k)&&(k={})},l.setBtnClasses=function(a){j=a,("object"!=typeof j||null===j)&&(j={})},l.alert=function(){var a="",b=c("OK"),d=null;switch(arguments.length){case 1:a=arguments[0];break;case 2:a=arguments[0],"function"==typeof arguments[1]?d=arguments[1]:b=arguments[1];break;case 3:a=arguments[0],b=arguments[1],d=arguments[2];break;default:throw new Error("Incorrect number of arguments: expected 1-3")}return l.dialog(a,{label:b,icon:k.OK,"class":j.OK,callback:d},{onEscape:d||!0})},l.confirm=function(){var a="",b=c("CANCEL"),d=c("CONFIRM"),e=null;switch(arguments.length){case 1:a=arguments[0];break;case 2:a=arguments[0],"function"==typeof arguments[1]?e=arguments[1]:b=arguments[1];break;case 3:a=arguments[0],b=arguments[1],"function"==typeof arguments[2]?e=arguments[2]:d=arguments[2];break;case 4:a=arguments[0],b=arguments[1],d=arguments[2],e=arguments[3];break;default:throw new Error("Incorrect number of arguments: expected 1-4")}var f=function(){return"function"==typeof e?e(!1):void 0},g=function(){return"function"==typeof e?e(!0):void 0};return l.dialog(a,[{label:b,icon:k.CANCEL,"class":j.CANCEL,callback:f},{label:d,icon:k.CONFIRM,"class":j.CONFIRM,callback:g}],{onEscape:f})},l.prompt=function(){var a="",d=c("CANCEL"),e=c("CONFIRM"),f=null,g="";switch(arguments.length){case 1:a=arguments[0];break;case 2:a=arguments[0],"function"==typeof arguments[1]?f=arguments[1]:d=arguments[1];break;case 3:a=arguments[0],d=arguments[1],"function"==typeof arguments[2]?f=arguments[2]:e=arguments[2];break;case 4:a=arguments[0],d=arguments[1],e=arguments[2],f=arguments[3];break;case 5:a=arguments[0],d=arguments[1],e=arguments[2],f=arguments[3],g=arguments[4];break;default:throw new Error("Incorrect number of arguments: expected 1-5")}var h=a,i=b("

");i.append("");var m=function(){return"function"==typeof f?f(null):void 0},n=function(){return"function"==typeof f?f(i.find("input[type=text]").val()):void 0},o=l.dialog(i,[{label:d,icon:k.CANCEL,"class":j.CANCEL,callback:m},{label:e,icon:k.CONFIRM,"class":j.CONFIRM,callback:n}],{header:h,show:!1,onEscape:m});return o.on("shown",function(){i.find("input[type=text]").focus(),i.on("submit",function(a){a.preventDefault(),o.find(".btn-inverse").click()})}),o.modal("show"),o},l.dialog=function(c,d,e){function j(){var a=null;"function"==typeof e.onEscape&&(a=e.onEscape()),a!==!1&&x.modal("hide")}var k="",l=[];e||(e={}),"undefined"==typeof d?d=[]:"undefined"==typeof d.length&&(d=[d]);for(var m=d.length;m--;){var n=null,o=null,p=null,q="",r=null;if("undefined"==typeof d[m].label&&"undefined"==typeof d[m]["class"]&&"undefined"==typeof d[m].callback){var s=0,t=null;for(var u in d[m])if(t=u,++s>1)break;1==s&&"function"==typeof d[m][u]&&(d[m].label=t,d[m].callback=d[m][u])}"function"==typeof d[m].callback&&(r=d[m].callback),d[m]["class"]?p=d[m]["class"]:m==d.length-1&&d.length<=2&&(p="btn-inverse"),d[m].link!==!0&&(p="btn "+p),n=d[m].label?d[m].label:"Option "+(m+1),d[m].icon&&(q=" "),o=d[m].href?d[m].href:h,k=""+q+n+""+k,l[m]=r}var v=["");var x=b(v.join("\n")),y="undefined"==typeof e.animate?f:e.animate;y&&x.addClass("fade");var z="undefined"==typeof e.classes?i:e.classes;return z&&x.addClass(z),x.find(".modal-body").html(c),x.on("keyup.dismiss.modal",function(a){27===a.which&&e.onEscape&&j("escape")}),x.on("click","a.close",function(a){a.preventDefault(),j("close")}),x.on("shown",function(){x.find("a.btn-inverse:first").focus()}),x.on("hidden",function(a){a.target===this&&x.remove()}),x.on("click",".modal-footer a",function(a){var c=b(this).data("handler"),e=l[c],f=null;("undefined"==typeof c||"undefined"==typeof d[c].href)&&(a.preventDefault(),"function"==typeof e&&(f=e(a)),f!==!1&&x.modal("hide"))}),b("body").append(x),x.modal({backdrop:"undefined"==typeof e.backdrop?g:e.backdrop,keyboard:!1,show:!1}),x.on("show",function(){b(a).off("focusin.modal")}),("undefined"==typeof e.show||e.show===!0)&&x.modal("show"),x},l.modal=function(){var a,c,d,e={onEscape:null,keyboard:!0,backdrop:g};switch(arguments.length){case 1:a=arguments[0];break;case 2:a=arguments[0],"object"==typeof arguments[1]?d=arguments[1]:c=arguments[1];break;case 3:a=arguments[0],c=arguments[1],d=arguments[2];break;default:throw new Error("Incorrect number of arguments: expected 1-3")}return e.header=c,d="object"==typeof d?b.extend(e,d):e,l.dialog(a,[],d)},l.hideAll=function(){b(".bootbox").modal("hide")},l.animate=function(a){f=a},l.backdrop=function(a){g=a},l.classes=function(a){i=a};var m={br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},zh_CN:{OK:"OK",CANCEL:"取消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"取消",CONFIRM:"確認"}};return l}(document,window.jQuery);window.bootbox=bootbox; \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-lightbox.min.js b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-lightbox.min.js deleted file mode 100644 index 3b299fa4..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-lightbox.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";var t=function(t,n){this.options=n;this.$element=e(t).delegate('[data-dismiss="lightbox"]',"click.dismiss.lightbox",e.proxy(this.hide,this));this.options.remote&&this.$element.find(".lightbox-body").load(this.options.remote)};t.prototype=e.extend({},e.fn.modal.Constructor.prototype);t.prototype.constructor=t;t.prototype.enforceFocus=function(){var t=this;e(document).on("focusin.lightbox",function(e){if(t.$element[0]!==e.target&&!t.$element.has(e.target).length){t.$element.focus()}})};t.prototype.show=function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;this.isShown=true;this.escape();this.preloadSize(function(){t.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");if(!t.$element.parent().length){t.$element.appendTo(document.body)}hide_animation();t.$element.show();if(n){t.$element[0].offsetWidth}t.$element.addClass("in").attr("aria-hidden",false);t.enforceFocus();n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")})})};t.prototype.hide=function(t){t&&t.preventDefault();var n=this;t=e.Event("hide");this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=false;this.escape();e(document).off("focusin.lightbox");this.$element.removeClass("in").attr("aria-hidden",true);e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()};t.prototype.escape=function(){var e=this;if(this.isShown&&this.options.keyboard){this.$element.on("keyup.dismiss.lightbox",function(t){t.which==27&&e.hide()})}else if(!this.isShown){this.$element.off("keyup.dismiss.lightbox")}};t.prototype.preloadSize=function(t){var n=e.Callbacks();if(t)n.add(t);var r=this;var i,s,o,u,a,f,l,c,h,p;i=e(window).height();s=e(window).width();o=parseInt(r.$element.find(".lightbox-content").css("padding-top"),10);u=parseInt(r.$element.find(".lightbox-content").css("padding-bottom"),10);a=parseInt(r.$element.find(".lightbox-content").css("padding-left"),10);f=parseInt(r.$element.find(".lightbox-content").css("padding-right"),10);l=r.$element.find(".lightbox-content").find("img:first");c=new Image;c.onload=function(){if(c.width+a+f>=s){h=c.width;p=c.height;c.width=s-a-f;c.height=p/h*c.width}if(c.height+o+u>=i){h=c.width;p=c.height;c.height=i-o-u;c.width=h/p*c.height}r.$element.css({position:"fixed",width:c.width+a+f,height:c.height+o+u,top:i/2-(c.height+o+u)/2,left:"50%","margin-left":-1*(c.width+a+f)/2});r.$element.find(".lightbox-content").css({width:c.width,height:c.height});n.fire()};c.src=l.attr("src")};var n=e.fn.lightbox;e.fn.lightbox=function(n){return this.each(function(){var r=e(this);var i=r.data("lightbox");var s=e.extend({},e.fn.lightbox.defaults,r.data(),typeof n=="object"&&n);if(!i)r.data("lightbox",i=new t(this,s));if(typeof n=="string")i[n]();else if(s.show)i.show()})};e.fn.lightbox.defaults={backdrop:true,keyboard:true,show:true};e.fn.lightbox.Constructor=t;e.fn.lightbox.noConflict=function(){e.fn.lightbox=n;return this};e(document).on("click.lightbox.data-api",'[data-toggle="lightbox"]',function(t){var n=e(this);var r=n.attr("href");var i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,""));var s=i.data("lightbox")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault();i.lightbox(s).one("hide",function(){n.focus()})})}(window.jQuery) \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modal.min.js b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modal.min.js deleted file mode 100644 index 78ec172c..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modal.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";var t=function(e,t){this.init(e,t)};t.prototype={constructor:t,init:function(t,n){this.options=n;this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this));this.options.remote&&this.$element.find(".modal-body").load(this.options.remote);var r=typeof this.options.manager==="function"?this.options.manager.call(this):this.options.manager;r=r.appendModal?r:e(r).modalmanager().data("modalmanager");r.appendModal(this)},toggle:function(){return this[!this.isShown?"show":"hide"]()},show:function(){var t=e.Event("show");if(this.isShown)return;this.$element.trigger(t);if(t.isDefaultPrevented())return;this.escape();this.tab();this.options.loading&&this.loading()},hide:function(t){t&&t.preventDefault();t=e.Event("hide");this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return this.isShown=false;this.isShown=false;this.escape();this.tab();this.isLoading&&this.loading();e(document).off("focusin.modal");this.$element.removeClass("in").removeClass("animated").removeClass(this.options.attentionAnimation).removeClass("modal-overflow").attr("aria-hidden",true);e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},layout:function(){var t=this.options.height?"height":"max-height",n=this.options.height||this.options.maxHeight;if(this.options.width){this.$element.css("width",this.options.width);var r=this;this.$element.css("margin-left",function(){if(/%/ig.test(r.options.width)){return-(parseInt(r.options.width)/2)+"%"}else{return-(e(this).width()/2)+"px"}})}else{this.$element.css("width","");this.$element.css("margin-left","")}this.$element.find(".modal-body").css("overflow","").css(t,"");if(n){this.$element.find(".modal-body").css("overflow","auto").css(t,n)}var i=e(window).height()-10e(this).data("tabindex")?r=e(this):i=e(this)}});r[0]!==e(this)[0]?r.focus():i.focus();n.preventDefault()}})}else if(!this.isShown){this.$element.off("keydown.tabindex.modal")}},escape:function(){var e=this;if(this.isShown&&this.options.keyboard){if(!this.$element.attr("tabindex"))this.$element.attr("tabindex",-1);this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&e.hide()})}else if(!this.isShown){this.$element.off("keyup.dismiss.modal")}},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end);t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n);t.hideModal()})},hideModal:function(){var e=this.options.height?"height":"max-height";var t=this.options.height||this.options.maxHeight;if(t){this.$element.find(".modal-body").css("overflow","").css(e,"")}this.$element.hide().trigger("hidden")},removeLoading:function(){this.$loading.remove();this.$loading=null;this.isLoading=false},loading:function(t){t=t||function(){};var n=this.$element.hasClass("fade")?"fade":"";if(!this.isLoading){var r=e.support.transition&&n;this.$loading=e('
').append(this.options.spinner).appendTo(this.$element);if(r)this.$loading[0].offsetWidth;this.$loading.addClass("in");this.isLoading=true;r?this.$loading.one(e.support.transition.end,t):t()}else if(this.isLoading&&this.$loading){this.$loading.removeClass("in");var i=this;e.support.transition&&this.$element.hasClass("fade")?this.$loading.one(e.support.transition.end,function(){i.removeLoading()}):i.removeLoading()}else if(t){t(this.isLoading)}},focus:function(){var e=this.$element.find(this.options.focusOn);e=e.length?e:this.$element;e.focus()},attention:function(){if(this.options.attentionAnimation){this.$element.removeClass("animated").removeClass(this.options.attentionAnimation);var e=this;setTimeout(function(){e.$element.addClass("animated").addClass(e.options.attentionAnimation)},0)}this.focus()},destroy:function(){var t=e.Event("destroy");this.$element.trigger(t);if(t.isDefaultPrevented())return;this.teardown()},teardown:function(){if(!this.$parent.length){this.$element.remove();this.$element=null;return}if(this.$parent!==this.$element.parent()){this.$element.appendTo(this.$parent)}this.$element.off(".modal");this.$element.removeData("modal");this.$element.removeClass("in").attr("aria-hidden",true)}};e.fn.modal=function(n,r){return this.each(function(){var i=e(this),s=i.data("modal"),o=e.extend({},e.fn.modal.defaults,i.data(),typeof n=="object"&&n);if(!s)i.data("modal",s=new t(this,o));if(typeof n=="string")s[n].apply(s,[].concat(r));else if(o.show)s.show()})};e.fn.modal.defaults={keyboard:true,backdrop:true,loading:false,show:true,width:null,height:null,maxHeight:null,modalOverflow:false,consumeTab:true,focusOn:null,replace:false,resize:false,attentionAnimation:"shake",manager:"body",spinner:'
'};e.fn.modal.Constructor=t;e(function(){e(document).off("click.modal").on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault();i.modal(s).one("hide",function(){n.focus()})})})}(window.jQuery) \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modalmanager.min.js b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modalmanager.min.js deleted file mode 100644 index 81f557ad..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modalmanager.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";function r(e){return function(t){if(this===t.target){return e.apply(this,arguments)}}}var t=function(e,t){this.init(e,t)};t.prototype={constructor:t,init:function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.modalmanager.defaults,this.$element.data(),typeof n=="object"&&n);this.stack=[];this.backdropCount=0;if(this.options.resize){var r,i=this;e(window).on("resize.modal",function(){r&&clearTimeout(r);r=setTimeout(function(){for(var e=0;e').appendTo(this.$element)}else{n=this.$backdropHandle;n.off(".modalmanager");this.$backdropHandle=null;this.isLoading&&this.removeSpinner()}return n},removeContainer:function(e){e.$container.remove();e.$container=null},createContainer:function(t){var i;i=e(' -
-
- \ No newline at end of file diff --git a/local/local/modules/Tinymce/templates/backOffice/default/tinymce_init.tpl b/local/local/modules/Tinymce/templates/backOffice/default/tinymce_init.tpl deleted file mode 100644 index 6db9acb9..00000000 --- a/local/local/modules/Tinymce/templates/backOffice/default/tinymce_init.tpl +++ /dev/null @@ -1,119 +0,0 @@ - - - diff --git a/local/local/modules/VirtualProductControl/LICENSE.txt b/local/local/modules/VirtualProductControl/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/VirtualProductControl/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/modules/VirtualProductDelivery/LICENSE.txt b/local/local/modules/VirtualProductDelivery/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/VirtualProductDelivery/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/local/session/.gitkeep b/local/local/session/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/session/sess_117e6a88059df20ba267cd892f37f062 b/local/local/session/sess_117e6a88059df20ba267cd892f37f062 deleted file mode 100644 index 106cf06c4ad95b269d5ed56b6f086d6adbfa3c45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1368 zcmbtU+invv5bdW#`-o_=ySdhRqamddr7cY*K$R?K?QPt8*QxCd4TbOFL-;X{?IiRf z9uRqncIM3O_{>mS=9D>S^QrlFWkZ z>O^y)uHJhG$wxkJK$5*zd$stQjOQdBBT*VGzzHY#&N>R#N^@CC!4I`+s@f)FMpE+d z15v1fJS%Bj!_*6RKX@h5Ns^&R%;uz1BEctmpBh&G`pG16S`w2LXx4w_Bq_}Xh8jv2 zEQTR#Y3TH$_r*CHqx=U(@PAn^j>4Rvr8X6F-ij#RsXCt@A)Kt9A>I*5LMvHpl_SS9 zRF-WLwRYfq%UvNWrl=K5W|-5Vd7xkWk~zk~6mFp#%W7_4pjsXUMgU@klPhpA52S5g zW+knhdjcYrz70UR2sLBRB+0{c-Qb$9DHkPc6vlrNv(#2Psq19?!Lt?7g%OyQLt!)V}Eqe%cC(I3pi6G{|#Suni>EA diff --git a/local/local/session/sess_b2ebbea5872c07bdbca4633b47b06839 b/local/local/session/sess_b2ebbea5872c07bdbca4633b47b06839 deleted file mode 100644 index 92bbca529c93b0aeba43efdd321e6866081697b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1296 zcmbtU+invv5bdW#enh0*b*^=upiu#-H_=joRB7d1dm9VyIC$?Tlv6GpD0 z>*mx5sc%k#gVAY-8#A)^X0MfZWLC0lhD2Gk04Kc^TkAAh8zWS$q&PCVYg$KUoMr6s z2cl2|c~;8$j_X(MQS>ULQ!Gc3l+7!zCBYHgk1cP1{p1Qc9ZSh7kPRowNNv|J)X=8l zDGXU_TO5B5zSKu&bvU4f@XLp(74BtG8{2RntcVf^&B3=FgjdZA#7CxBq>?A90y$ow z@_e1Bw*}LUc9m+lE}UF)%e{%@fqolGQnZ6E{K9mOx5B+b^#Tft0K_Y=R?wh~qOEUc zrJO2*07=R~15hDj&BU1z8oL`rS9xCuS@TY#{bw;tF3vGi=bgk2_=Ym_WIA(8G zNC3{Q_!F0gBV75++ z@4kL`U$3tDS@}?(T+iEfem;12JHDuggZU{gwFoP#*4!=Pz6u*7ni}c(c7HL_#qk_v ali_%rAI4n-mb=Eu2=y`V@sZ=7A^C6AC4nOV diff --git a/local/local/session/sess_e75e78f2de193f9ab052b17b210c8df4 b/local/local/session/sess_e75e78f2de193f9ab052b17b210c8df4 deleted file mode 100644 index d1d7ea6df8bb66d403ac6b5a6e9409505d8f0845..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1364 zcmbtU+invv5bdW#`-n)g>$FYcJf^Bzp!8k|sgmW`-p0baj(kZdh40}*_%UYeP3Z+5 z5P6Aq=6L4J@$oQU6UIYudJ%*2-#Fc+51v+2T7;!Cnh!*DPPJiRczajOPH8o!#Z^k( zo>-~O?FURyGQo5EwAgvG)2dA|ThMX_g~}8GoC-=lMkguSSgC8R0J8W+Xi>Wk20e@w zJRgIqwPS}Dn9FlSXYd0?z`trYkHUjuwRH^-7==@E*bF~CK?L2rKpas`6O}4cl~Cga zs;as|y+<(FYA1BV4fATn9S=5<2lQKPNnjk9A}nq6yp{eHs)s001VCH_y#@^yNwn@} z*4pa@3Xr8l8UU3l^~{`ULDF=ilv>;~scIe#jQ{M+%6c8NZHw7QR4b!}Q!uLpi=lU5 z`UCj90)YxTLc@TjC`K9uL?>l6?w6!bCOwb}1gOeEnSNUaDBD-tDi-cniS-DYLEUW} zanSnuYF^CHNts4mVV8fTvEMIudmvM}M@jXcG_s+DHD(@tu#Iw{E$T!%ot|dSxC@$t z_nry~fKw-bpUdXJiaGrJQ0~VK$S?1Y+e@A=9-rhWTSjboT#BWV(I|On-2uMS$2%n1 zH#W8X8w^E;M<9SRi(WBd?Pm=)lZJz*$AowFFfS9fZOV+j)8G^^0L;Iv-&NuLnNVM< zO}sujKiBo~hD?ri-9OSNH>WpjTFx(~{$O#Qi~^%~%gLz_UCV-H-CM=smLaU@5L*iC zlvL|M?K%R(jam%B7!225ZMa{iorhZ|g&Gw&?7(DAcnL9Ce6Jkum*eS}09^=*KLyjG JfMf~9e*wy)n8E-6 diff --git a/local/modules/SessionPurge/Command/SessionPurge.php b/local/modules/SessionPurge/Command/SessionPurge.php new file mode 100644 index 00000000..d3afd2d7 --- /dev/null +++ b/local/modules/SessionPurge/Command/SessionPurge.php @@ -0,0 +1,83 @@ + + * Date: 08/11/2016 19:40 + */ +namespace SessionPurge\Command; + +use SessionPurge\Event\SessionPurgeEvent; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; +use Thelia\Command\ContainerAwareCommand; +use Thelia\Model\ConfigQuery; + +class SessionPurge extends ContainerAwareCommand +{ + protected function configure() + { + $this + ->setName("sessions:purge") + ->setDescription("Purge all outdated session in local/sessions directory") + ->addOption( + "older-than", + 's', + InputOption::VALUE_OPTIONAL, + "Delete sessions older than N seconds. The session_config.lifetime value is ignored." + )->addOption( + 'day', + 'd', + InputOption::VALUE_OPTIONAL, + 'Delete sessions older than N days. The session_config.lifetime value is ignored.', + null + ) + ; + } + + protected function execute(InputInterface $input, OutputInterface $output) + { + $days = $seconds = 0; + + $seconds = $lifetime = intval($input->getOption('older-than')); + + if ($lifetime <= 0) { + $days = intval($input->getOption('day')); + $lifetime = 86400 * $days; + } + + if ($lifetime <= 0) { + $lifetime = $seconds = ConfigQuery::read('session_config.lifetime', 0); + } + + if ($lifetime > 0) { + $output->writeln( + sprintf( + "Deleting session files older than %d %s", + $days > 0 ? $days : $seconds, + $days > 0 ? 'days' : 'seconds' + ) + ); + + $event = new SessionPurgeEvent($lifetime, $input->getOption('verbose')); + + $this->getDispatcher()->dispatch(SessionPurgeEvent::PURGE, $event); + + foreach ($event->getStatus() as $status => $level) { + $output->writeln("<$level>$status"); + } + + $output->writeln(sprintf("%d session files deleted", $event->getDeletedCount())); + } else { + $output->writeln(sprintf("Session lifetime is undefined, please check session_config.lifetime variable.")); + } + } +} diff --git a/local/modules/SessionPurge/Config/config.xml b/local/modules/SessionPurge/Config/config.xml new file mode 100644 index 00000000..baed79e6 --- /dev/null +++ b/local/modules/SessionPurge/Config/config.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + diff --git a/local/modules/modules/HookAdminHome/Config/module.xml b/local/modules/SessionPurge/Config/module.xml similarity index 61% rename from local/modules/modules/HookAdminHome/Config/module.xml rename to local/modules/SessionPurge/Config/module.xml index 3dde8cee..33302fd3 100644 --- a/local/modules/modules/HookAdminHome/Config/module.xml +++ b/local/modules/SessionPurge/Config/module.xml @@ -2,31 +2,27 @@ - HookAdminHome\HookAdminHome + SessionPurge\SessionPurge - Displays the default blocks on the homepage of the administration + A command for clearing outdated session files - Affiche les blocs par défaut sur la page d'accueil de l'administration + Une commande pour supprimer les fichiers de session obsolètes en_US fr_FR - 2.3.4 + 1.0.1 - - Gilles Bourgeat - gilles@thelia.net - Franck Allimant CQFDev - franck@cqfdev.fr + thelia@cqfdev.fr www.cqfdev.fr classic - 2.2.0 + 2.3.0 prod diff --git a/local/modules/SessionPurge/Config/routing.xml b/local/modules/SessionPurge/Config/routing.xml new file mode 100644 index 00000000..4a52e776 --- /dev/null +++ b/local/modules/SessionPurge/Config/routing.xml @@ -0,0 +1,11 @@ + + + + + + SessionPurge\Controller\PurgeController::purge + .+ + + diff --git a/local/modules/SessionPurge/Config/secret-key.txt b/local/modules/SessionPurge/Config/secret-key.txt new file mode 100644 index 00000000..25124742 --- /dev/null +++ b/local/modules/SessionPurge/Config/secret-key.txt @@ -0,0 +1 @@ +Thelia2 diff --git a/local/modules/SessionPurge/Controller/PurgeController.php b/local/modules/SessionPurge/Controller/PurgeController.php new file mode 100644 index 00000000..4a4211a3 --- /dev/null +++ b/local/modules/SessionPurge/Controller/PurgeController.php @@ -0,0 +1,60 @@ + + * Date: 08/11/2016 22:15 + */ +class PurgeController extends BaseFrontController +{ + public function purge($secretKey) + { + $responseText = ''; + + $storedSecretKey = trim(@file_get_contents(__DIR__ .'/../Config/secret-key.txt')); + + if ($storedSecretKey != $secretKey) { + $responseText .= sprintf("ERROR: key verification failed.
"); + } else { + $lifetime = intval($this->getRequest()->query->get('older_than', 0)); + + if ($lifetime <= 0) { + $lifetime = ConfigQuery::read('session_config.lifetime', 0); + } + + if ($lifetime > 0) { + $responseText .= sprintf("INFO: Deleting session files older than %d seconds
", $lifetime); + + $verbose = $this->getRequest()->query->get('verbose', false); + + $event = new SessionPurgeEvent($lifetime, !empty($verbose)); + + $this->getDispatcher()->dispatch(SessionPurgeEvent::PURGE, $event); + + foreach ($event->getStatus() as $status => $level) { + $responseText .= strtoupper($level) . ": $status
"; + } + + $responseText .= sprintf("INFO: %d session files deleted
", $event->getDeletedCount()); + } else { + $responseText .= sprintf("ERROR: Session lifetime is undefined, please check session_config.lifetime variable or add older_than parameter.
"); + } + } + + return new Response($responseText); + } +} diff --git a/local/modules/SessionPurge/Event/SessionPurgeEvent.php b/local/modules/SessionPurge/Event/SessionPurgeEvent.php new file mode 100644 index 00000000..8bb2d3be --- /dev/null +++ b/local/modules/SessionPurge/Event/SessionPurgeEvent.php @@ -0,0 +1,91 @@ +maxAge = $maxAge; + $this->verbose = $verbose; + } + + /** + * @return int + */ + public function getMaxAge() + { + return $this->maxAge; + } + + /** + * @return string[] + */ + public function getStatus() + { + return $this->status; + } + + /** + * @param string $status + * @return $this + */ + public function appendStatus($status, $level = 'info') + { + $this->status[$status] = $level; + return $this; + } + + /** + * @return boolean + */ + public function isVerbose() + { + return $this->verbose; + } + + /** + * @return int + */ + public function getDeletedCount() + { + return $this->deletedCount; + } + + /** + * @param int $deletedCount + * @return $this + */ + public function setDeletedCount($deletedCount) + { + $this->deletedCount = $deletedCount; + return $this; + } +} diff --git a/local/modules/SessionPurge/EventListener/EventManager.php b/local/modules/SessionPurge/EventListener/EventManager.php new file mode 100644 index 00000000..c6379663 --- /dev/null +++ b/local/modules/SessionPurge/EventListener/EventManager.php @@ -0,0 +1,70 @@ + + * Date: 08/11/2016 21:54 + */ +namespace SessionPurge\EventListener; + +use SessionPurge\Event\SessionPurgeEvent; +use Symfony\Component\EventDispatcher\EventSubscriberInterface; +use Symfony\Component\Finder\Finder; +use Symfony\Component\Finder\SplFileInfo; +use Thelia\Model\Exception\InvalidArgumentException; + +class EventManager implements EventSubscriberInterface +{ + public function purge(SessionPurgeEvent $event) + { + $lifetime = $event->getMaxAge(); + + if ($lifetime <= 0) { + throw new InvalidArgumentException("lifetime could not be 0"); + } + + $verbose = $event->isVerbose(); + + $files = Finder::create() + ->in(THELIA_LOCAL_DIR . 'session') + ->files() + ->ignoreDotFiles(true) + ->date('<= now - ' . $lifetime . ' seconds'); + + $deleted = 0; + + /** @var SplFileInfo $file */ + foreach ($files as $file) { + $path = $file->getRealPath(); + + if (false === @unlink($path)) { + $event->appendStatus(sprintf("Failed to delete %s file", $path), 'error'); + } else { + if ($verbose) { + $event->appendStatus(sprintf("%s sucessfully deleted", $path)); + } + + $deleted++; + } + } + + $event->setDeletedCount($deleted); + } + + /** + * @inheritdoc + */ + public static function getSubscribedEvents() + { + return [ + SessionPurgeEvent::PURGE => ["purge", 128] + ]; + } +} diff --git a/local/modules/SessionPurge/LICENSE.txt b/local/modules/SessionPurge/LICENSE.txt new file mode 100644 index 00000000..94a9ed02 --- /dev/null +++ b/local/modules/SessionPurge/LICENSE.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/local/modules/SessionPurge/Readme.md b/local/modules/SessionPurge/Readme.md new file mode 100644 index 00000000..f6a862cc --- /dev/null +++ b/local/modules/SessionPurge/Readme.md @@ -0,0 +1,73 @@ +# Session Purge + +A simple Thelia command to delete outdated session files from the local/sessions directory. + +Run it periodically, in a cron for example, to prevent the local/session directory to grow indefinitely. + +The command uses the value of the `session_config.lifetime` configuration variable, which is the session lifetime +in seconds, and delete all files which are older than `session_config.lifetime` seconds. +If `session_config.lifetime` is 0 (zero), the command will not delete anything. Use the `--older-than _seconds_` option +to define the maximum age of a session file. When `--older-than` is used, the value of `session_config.lifetime` +configuration variable is ignored. +You may also use `-d _days_` to delete session files older than the specified number of days. + +For example, to delete sessions older than ten day, use the following command : + +`Thelia sessions:purge --older-than 864000` + +or + +`Thelia sessions:purge -d 10` + +If you can't run a cron on your host, you can use the following URL to trigger the purge process : + +`http://yourhost.tld/session-purge/secret-key` + +The secret key is stored in the `Config/secret-key.txt`. Enter the string you want in the first line of this file, and use +it in the URL. For example, if you entered `53cr37_k3y` in this files, you'll call the purge URL as this : + +`http://yourhost.tld/session-purge/53cr37_k3y` + +The default key is `Thelia2` (surprise !). + +To specify a session lifetime, use the `older_than` URL parameter, for example : + +`http://yourhost.tld/session-purge/53cr37_k3y?older_than=86400` + +Your can also use the `verbose=1` URL parameter to get the list of deleted files. + +---- + +Une commande Thelia qui vous permet de supprimer les fichiers de session obsolètes du répertoire local/sessions. + +Il est conseillé de la lancer régulièrement pour éviter que le répertoire local/sessions grossisse indéfiniment, au +risque de saturer le disque, ou d'épuiser les réserves d'inodes. + +La commande utilise la valeur de `session_config.lifetime`, qui est la durée de vie d'une session en secondes, et supprime +tous les fichiers qui sont plus anciens que `session_config.lifetime` secondes. +Si `session_config.lifetime` valeur 0 (zéro), la commande ne supprimera aucun fichier. Vous pouvez alors utiliser l'option +`--older-than _seconds_` pour définir l'age maximum des fichiers de session. Quand `--older-than` est utilisé, la valeur +de `session_config.lifetime` est ignorée. + +Par exemple, pour supprimer les sessions datant de plus d'un jour, utiliser la commande : + +`Thelia sessions:purge --older-than 86400` + +Si vous ne pouvez pas lancer de cron ou de commandes sur votre serveur, vous pouvez utiliser l'URL suivante pour déclencher + la purge : + +`http://yourhost.tld/session-purge/clef_secrete` + +La clef secrète est stockée dans le fichier `Config/secret-key.txt`. Entrez la chaîne de caractère que vous voulez sur la +première ligne de ce fichier, et utilisez la dans l'URL. Par exemple, si vous avez indiqué `53cr37_k3y` dans ce fichier, +vous devrez utiliser l'URL suivante : + +`http://yourhost.tld/session-purge/53cr37_k3y` + +La clef par défaut est `Thelia2` (surprise !). + +Pour indiquer une durée de vie de session, vous pouvez utiliser le paramètre `older_than`: + +`http://yourhost.tld/session-purge/53cr37_k3y?older_than=86400` + +Vous pouvez aussi utiliser le paramètre `verbose=1` pour obtenir la liste des fichiers supprimés. diff --git a/local/modules/modules/HookAdminHome/HookAdminHome.php b/local/modules/SessionPurge/SessionPurge.php similarity index 90% rename from local/modules/modules/HookAdminHome/HookAdminHome.php rename to local/modules/SessionPurge/SessionPurge.php index 1a403c0a..9a2d273b 100644 --- a/local/modules/modules/HookAdminHome/HookAdminHome.php +++ b/local/modules/SessionPurge/SessionPurge.php @@ -10,12 +10,12 @@ /* file that was distributed with this source code. */ /*************************************************************************************/ -namespace HookAdminHome; +namespace SessionPurge; use Thelia\Module\BaseModule; -class HookAdminHome extends BaseModule +class SessionPurge extends BaseModule { /** @var string */ - const DOMAIN_NAME = 'hookadminhome'; + const DOMAIN_NAME = 'sessionpurge'; } diff --git a/local/modules/modules/HookAdminHome/composer.json b/local/modules/SessionPurge/composer.json similarity index 59% rename from local/modules/modules/HookAdminHome/composer.json rename to local/modules/SessionPurge/composer.json index d5921a2c..a364052d 100644 --- a/local/modules/modules/HookAdminHome/composer.json +++ b/local/modules/SessionPurge/composer.json @@ -1,11 +1,11 @@ { - "name": "thelia/hook-admin-home-module", + "name": "roadster31/session-purge-module", "license": "LGPL-3.0+", "type": "thelia-module", "require": { "thelia/installer": "~1.1" }, "extra": { - "installer-name": "HookAdminHome" + "installer-name": "SessionPurge" } -} \ No newline at end of file +} diff --git a/local/modules/Sitemap/Config/config.xml b/local/modules/Sitemap/Config/config.xml new file mode 100644 index 00000000..0c3cb8d2 --- /dev/null +++ b/local/modules/Sitemap/Config/config.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + diff --git a/local/local/modules/TheliaMigrateCountry/Config/module.xml b/local/modules/Sitemap/Config/module.xml similarity index 59% rename from local/local/modules/TheliaMigrateCountry/Config/module.xml rename to local/modules/Sitemap/Config/module.xml index eba7cb69..54c3f1f2 100644 --- a/local/local/modules/TheliaMigrateCountry/Config/module.xml +++ b/local/modules/Sitemap/Config/module.xml @@ -2,25 +2,25 @@ - TheliaMigrateCountry\TheliaMigrateCountry + Sitemap\Sitemap - Countries/states migration tool + Create sitemap and sitemap image files more quickly - Utilitaire de migration des pays/états + Génère les fichiers sitemap et sitemap image plus rapidement en_US fr_FR - 2.3.4 + 1.5.0 - Julien Chanséaume - julien@thelia.net + Etienne Perriere + eperriere@openstudio.fr classic - 2.3.0 - alpha + 2.1.0 + beta diff --git a/local/modules/Sitemap/Config/routing.xml b/local/modules/Sitemap/Config/routing.xml new file mode 100644 index 00000000..d12b4a48 --- /dev/null +++ b/local/modules/Sitemap/Config/routing.xml @@ -0,0 +1,23 @@ + + + + + + Sitemap\Controller\SitemapController::generateAction + + + + Sitemap\Controller\SitemapController::generateImageAction + + + + Sitemap:SitemapConfig:default + + + + Sitemap:SitemapConfig:save + + + diff --git a/local/modules/Sitemap/Config/schema.xml b/local/modules/Sitemap/Config/schema.xml new file mode 100644 index 00000000..c0df3613 --- /dev/null +++ b/local/modules/Sitemap/Config/schema.xml @@ -0,0 +1,16 @@ + + + + + + + + + + +
+ + +
diff --git a/local/modules/Sitemap/Config/sqldb.map b/local/modules/Sitemap/Config/sqldb.map new file mode 100644 index 00000000..63a93baa --- /dev/null +++ b/local/modules/Sitemap/Config/sqldb.map @@ -0,0 +1,2 @@ +# Sqlfile -> Database map +thelia.sql=thelia diff --git a/local/modules/Sitemap/Config/thelia.sql b/local/modules/Sitemap/Config/thelia.sql new file mode 100644 index 00000000..8c519c02 --- /dev/null +++ b/local/modules/Sitemap/Config/thelia.sql @@ -0,0 +1,24 @@ + +# This is a fix for InnoDB in MySQL >= 4.1.x +# It "suspends judgement" for fkey relationships until are tables are set. +SET FOREIGN_KEY_CHECKS = 0; + +-- --------------------------------------------------------------------- +-- sitemap_priority +-- --------------------------------------------------------------------- + +DROP TABLE IF EXISTS `sitemap_priority`; + +CREATE TABLE `sitemap_priority` +( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `value` FLOAT, + `source` VARCHAR(64), + `source_id` INTEGER, + `created_at` DATETIME, + `updated_at` DATETIME, + PRIMARY KEY (`id`) +) ENGINE=InnoDB; + +# This restores the fkey checks, after having unset them earlier +SET FOREIGN_KEY_CHECKS = 1; diff --git a/local/modules/Sitemap/Config/update/sql/1.5.0.sql b/local/modules/Sitemap/Config/update/sql/1.5.0.sql new file mode 100644 index 00000000..8c519c02 --- /dev/null +++ b/local/modules/Sitemap/Config/update/sql/1.5.0.sql @@ -0,0 +1,24 @@ + +# This is a fix for InnoDB in MySQL >= 4.1.x +# It "suspends judgement" for fkey relationships until are tables are set. +SET FOREIGN_KEY_CHECKS = 0; + +-- --------------------------------------------------------------------- +-- sitemap_priority +-- --------------------------------------------------------------------- + +DROP TABLE IF EXISTS `sitemap_priority`; + +CREATE TABLE `sitemap_priority` +( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `value` FLOAT, + `source` VARCHAR(64), + `source_id` INTEGER, + `created_at` DATETIME, + `updated_at` DATETIME, + PRIMARY KEY (`id`) +) ENGINE=InnoDB; + +# This restores the fkey checks, after having unset them earlier +SET FOREIGN_KEY_CHECKS = 1; diff --git a/local/modules/Sitemap/Controller/BrandSitemapTrait.php b/local/modules/Sitemap/Controller/BrandSitemapTrait.php new file mode 100644 index 00000000..751511b7 --- /dev/null +++ b/local/modules/Sitemap/Controller/BrandSitemapTrait.php @@ -0,0 +1,107 @@ + + */ +trait BrandSitemapTrait +{ + /** + * Get brands + * + * @param $sitemap + * @param $locale + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function setSitemapBrands(&$sitemap, $locale) + { + // Prepare query - get brands URL + $query = RewritingUrlQuery::create() + ->filterByView('brand') + ->filterByRedirected(null) + ->filterByViewLocale($locale); + + // Join with visible brands + self::addJoinBrands($query); + + // Get brands last update + $query->withColumn(BrandTableMap::UPDATED_AT, 'BRAND_UPDATE_AT'); + + // Execute query + $results = $query->find(); + + // For each result, hydrate XML file + /** @var RewritingUrl $result */ + foreach ($results as $result) { + $sitemapEvent = new SitemapEvent( + $result, + URL::getInstance()->absoluteUrl($result->getUrl()), + date('c', strtotime($result->getVirtualColumn('BRAND_UPDATE_AT'))) + ); + + $this->getDispatcher()->dispatch(SitemapEvent::SITEMAP_EVENT, $sitemapEvent); + + if (!$sitemapEvent->isHide()){ + // Open new sitemap line & set brand URL & update date + + $sitemapPriority = SitemapPriorityQuery::create() + ->filterBySource($result->getView()) + ->filterBySourceId($result->getViewId()) + ->findOne(); + + $sitemapPriorityValue = ($sitemapPriority === null) ? Sitemap::getConfigValue('default_priority_brand_value', SiteMap::DEFAULT_PRIORITY_BRAND_VALUE) : $sitemapPriority->getValue(); + + $sitemap[] = ' + + '.$sitemapEvent->getLoc().' + '.$sitemapEvent->getLastmod().' + '.$sitemapPriorityValue.' + '.Sitemap::getConfigValue('default_update_frequency', SiteMap::DEFAULT_FREQUENCY_UPDATE).' + '; + } + } + } + + /** + * Join brands and their URLs + * + * @param RewritingUrlQuery $query + * + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function addJoinBrands(RewritingUrlQuery &$query) + { + // Join RewritingURL with brand to have only visible brands + $join = new Join(); + + $join->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_ID', + null, + BrandTableMap::TABLE_NAME, + 'ID', + null + ); + + $join->setJoinType(Criteria::INNER_JOIN); + $query->addJoinObject($join, 'brandJoin'); + + // Get only visible products + $query->addJoinCondition('brandJoin', BrandTableMap::VISIBLE.' = 1'); + } + +} \ No newline at end of file diff --git a/local/modules/Sitemap/Controller/CategorySitemapTrait.php b/local/modules/Sitemap/Controller/CategorySitemapTrait.php new file mode 100644 index 00000000..50cc9599 --- /dev/null +++ b/local/modules/Sitemap/Controller/CategorySitemapTrait.php @@ -0,0 +1,150 @@ + + */ +trait CategorySitemapTrait +{ + /** + * Get categories + * + * @param $sitemap + * @param $locale + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function setSitemapCategories(&$sitemap, $locale) + { + // Prepare query - get categories URL + $query = RewritingUrlQuery::create() + ->filterByView('category') + ->filterByRedirected(null) + ->filterByViewLocale($locale); + + // Join with visible categories + self::addJoinCategory($query, $locale); + + if (Sitemap::getConfigValue('exclude_empty_category') == 1) { + self::addJoinCategoryCheckNotEmpty($query); + } + + // Get categories last update + $query->withColumn(CategoryTableMap::UPDATED_AT, 'CATEGORY_UPDATE_AT'); + + // Execute query + $results = $query->find(); + + // For each result, hydrate XML file + /** @var RewritingUrl $result */ + foreach ($results as $result) { + $sitemapEvent = new SitemapEvent( + $result, + URL::getInstance()->absoluteUrl($result->getUrl()), + date('c', strtotime($result->getVirtualColumn('CATEGORY_UPDATE_AT'))) + ); + + $this->getDispatcher()->dispatch(SitemapEvent::SITEMAP_EVENT, $sitemapEvent); + + if (!$sitemapEvent->isHide()) { + // Open new sitemap line & set category URL & update date + + $sitemapPriority = SitemapPriorityQuery::create() + ->filterBySource($result->getView()) + ->filterBySourceId($result->getViewId()) + ->findOne(); + + $sitemapPriorityValue = ($sitemapPriority === null) ? Sitemap::getConfigValue('default_priority_category_value', SiteMap::DEFAULT_PRIORITY_CATEGORY_VALUE) : $sitemapPriority->getValue(); + + $sitemap[] = ' + + ' . $sitemapEvent->getLoc() . ' + ' . $sitemapEvent->getLastmod() . ' + '.$sitemapPriorityValue.' + '.Sitemap::getConfigValue('default_update_frequency', SiteMap::DEFAULT_FREQUENCY_UPDATE).' + '; + } + } + } + + /** + * Join categories and their URLs + * + * @param RewritingUrlQuery $query + * + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function addJoinCategory(RewritingUrlQuery &$query) + { + // Join RewritingURL with Category to have only visible categories + $join = new Join(); + + $join->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_ID', + null, + CategoryTableMap::TABLE_NAME, + 'ID', + null + ); + + $join->setJoinType(Criteria::INNER_JOIN); + $query->addJoinObject($join, 'categoryJoin'); + + // Get only visible categories + $query->addJoinCondition('categoryJoin', CategoryTableMap::VISIBLE.' = 1'); + } + + /** + * Join categories and their URLs + * + * @param Criteria $query + */ + protected function addJoinCategoryCheckNotEmpty(Criteria &$query) + { + $categoryChildJoin = new Join(); + $categoryChildJoin->addExplicitCondition( + CategoryTableMap::TABLE_NAME, + 'ID', + null, + CategoryTableMap::TABLE_NAME, + 'PARENT', + 'category_category_child' + ); + + $categoryChildJoin->setJoinType(Criteria::LEFT_JOIN); + $query->addJoinObject($categoryChildJoin, 'categoryCategoryChildJoin'); + + + $productChildJoin = new Join(); + $productChildJoin->addExplicitCondition( + CategoryTableMap::TABLE_NAME, + 'ID', + null, + ProductCategoryTableMap::TABLE_NAME, + 'CATEGORY_ID', + 'category_product_child' + ); + + $productChildJoin->setJoinType(Criteria::LEFT_JOIN); + $query->addJoinObject($productChildJoin, 'categoryProductChildJoin'); + + $query->where('(category_category_child.id IS NOT NULL || category_product_child.product_id IS NOT NULL)'); + $query->addGroupByColumn('ID'); + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/Controller/ContentSitemapTrait.php b/local/modules/Sitemap/Controller/ContentSitemapTrait.php new file mode 100644 index 00000000..f2cc30f7 --- /dev/null +++ b/local/modules/Sitemap/Controller/ContentSitemapTrait.php @@ -0,0 +1,107 @@ + + */ +trait ContentSitemapTrait +{ + /** + * Get contents + * + * @param $sitemap + * @param $locale + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function setSitemapContents(&$sitemap, $locale) + { + // Prepare query - get contents URL + $query = RewritingUrlQuery::create() + ->filterByView('content') + ->filterByRedirected(null) + ->filterByViewLocale($locale); + + // Join with visible contents + self::addJoinContent($query); + + // Get contents last update + $query->withColumn(ContentTableMap::UPDATED_AT, 'CONTENT_UPDATE_AT'); + + // Execute query + $results = $query->find(); + + // For each result, hydrate XML file + /** @var RewritingUrl $result */ + foreach ($results as $result) { + $sitemapEvent = new SitemapEvent( + $result, + URL::getInstance()->absoluteUrl($result->getUrl()), + date('c', strtotime($result->getVirtualColumn('CONTENT_UPDATE_AT'))) + ); + + $this->getDispatcher()->dispatch(SitemapEvent::SITEMAP_EVENT, $sitemapEvent); + + if (!$sitemapEvent->isHide()){ + // Open new sitemap line & set brand URL & update date + + $sitemapPriority = SitemapPriorityQuery::create() + ->filterBySource($result->getView()) + ->filterBySourceId($result->getViewId()) + ->findOne(); + + $sitemapPriorityValue = ($sitemapPriority === null) ? Sitemap::getConfigValue('default_priority_folder_value', SiteMap::DEFAULT_PRIORITY_FOLDER_VALUE) : $sitemapPriority->getValue(); + + $sitemap[] = ' + + '.$sitemapEvent->getLoc().' + '.$sitemapEvent->getLastmod().' + '.$sitemapPriorityValue.' + '.Sitemap::getConfigValue('default_update_frequency', SiteMap::DEFAULT_FREQUENCY_UPDATE).' + '; + } + } + } + + /** + * Join contents and their URLs + * + * @param RewritingUrlQuery $query + * + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function addJoinContent(RewritingUrlQuery &$query) + { + // Join RewritingURL with Content to have only visible contents + $join = new Join(); + + $join->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_ID', + null, + ContentTableMap::TABLE_NAME, + 'ID', + null + ); + + $join->setJoinType(Criteria::INNER_JOIN); + $query->addJoinObject($join, 'contentJoin'); + + // Get only visible products + $query->addJoinCondition('contentJoin', ContentTableMap::VISIBLE.' = 1'); + } + +} \ No newline at end of file diff --git a/local/modules/Sitemap/Controller/FolderSitemapTrait.php b/local/modules/Sitemap/Controller/FolderSitemapTrait.php new file mode 100644 index 00000000..69f7a9d9 --- /dev/null +++ b/local/modules/Sitemap/Controller/FolderSitemapTrait.php @@ -0,0 +1,144 @@ + + */ +trait FolderSitemapTrait +{ + /** + * Get folders + * + * @param $sitemap + * @param $locale + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function setSitemapFolders(&$sitemap, $locale) + { + // Prepare query - get folders URL + $query = RewritingUrlQuery::create() + ->filterByView('folder') + ->filterByRedirected(null) + ->filterByViewLocale($locale); + + // Join with visible folders + self::addJoinFolder($query); + + if (Sitemap::getConfigValue('exclude_empty_folder') == 1) { + self::addJoinFolderCheckNotEmpty($query); + } + + // Get folders last update + $query->withColumn(FolderTableMap::UPDATED_AT, 'FOLDER_UPDATE_AT'); + + // Execute query + $results = $query->find(); + + // For each result, hydrate XML file + /** @var RewritingUrl $result */ + foreach ($results as $result) { + $sitemapEvent = new SitemapEvent( + $result, + URL::getInstance()->absoluteUrl($result->getUrl()), + date('c', strtotime($result->getVirtualColumn('FOLDER_UPDATE_AT'))) + ); + + $this->getDispatcher()->dispatch(SitemapEvent::SITEMAP_EVENT, $sitemapEvent); + + if (!$sitemapEvent->isHide()){ + // Open new sitemap line & set brand URL & update date + + $sitemapPriority = SitemapPriorityQuery::create() + ->filterBySource($result->getView()) + ->filterBySourceId($result->getViewId()) + ->findOne(); + + $sitemapPriorityValue = ($sitemapPriority === null) ? Sitemap::getConfigValue('default_priority_folder_value', SiteMap::DEFAULT_PRIORITY_FOLDER_VALUE) : $sitemapPriority->getValue(); + + $sitemap[] = ' + + '.$sitemapEvent->getLoc().' + '.$sitemapEvent->getLastmod().' + '.$sitemapPriorityValue.' + '.Sitemap::getConfigValue('default_update_frequency', SiteMap::DEFAULT_FREQUENCY_UPDATE).' + '; + } + } + } + + /** + * Join folders and their URLs + * + * @param RewritingUrlQuery $query + * + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function addJoinFolder(RewritingUrlQuery &$query) + { + // Join RewritingURL with Folder to have only visible folders + $join = new Join(); + + $join->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_ID', + null, + FolderTableMap::TABLE_NAME, + 'ID', + null + ); + + $join->setJoinType(Criteria::INNER_JOIN); + $query->addJoinObject($join, 'folderJoin'); + + // Get only visible folders + $query->addJoinCondition('folderJoin', FolderTableMap::VISIBLE.' = 1'); + } + + protected function addJoinFolderCheckNotEmpty(Criteria &$query) + { + $folderChildJoin = new Join(); + $folderChildJoin->addExplicitCondition( + FolderTableMap::TABLE_NAME, + 'ID', + null, + FolderTableMap::TABLE_NAME, + 'PARENT', + 'folder_folder_child' + ); + + $folderChildJoin->setJoinType(Criteria::LEFT_JOIN); + $query->addJoinObject($folderChildJoin, 'folderFolderChildJoin'); + + + $contentChildJoin = new Join(); + $contentChildJoin->addExplicitCondition( + FolderTableMap::TABLE_NAME, + 'ID', + null, + ContentFolderTableMap::TABLE_NAME, + 'FOLDER_ID', + 'folder_content_child' + ); + + $contentChildJoin->setJoinType(Criteria::LEFT_JOIN); + $query->addJoinObject($contentChildJoin, 'folderContentChildJoin'); + + $query->where('(folder_folder_child.id IS NOT NULL || folder_content_child.content_id IS NOT NULL)'); + $query->addGroupByColumn('ID'); + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/Controller/ProductImageTrait.php b/local/modules/Sitemap/Controller/ProductImageTrait.php new file mode 100644 index 00000000..e915893e --- /dev/null +++ b/local/modules/Sitemap/Controller/ProductImageTrait.php @@ -0,0 +1,131 @@ + + */ +trait ProductImageTrait +{ + protected function setSitemapProductImages(&$sitemap, $locale) + { + // Change timeout for this script + ini_set('max_execution_time', Sitemap::getConfigValue('timeout', 30)); + + // Prepare query - get products URL + $query = RewritingUrlQuery::create() + ->filterByView('product') + ->filterByRedirected(null) + ->filterByViewLocale($locale); + + // Join with visible products + self::addJoinProductI18n($query); + + // Get products title & image file name + $query->withColumn(ProductI18nTableMap::TITLE, 'PRODUCT_TITLE'); + $query->addDescendingOrderByColumn(ProductImageTableMap::POSITION); + $query->addGroupByColumn(RewritingUrlTableMap::VIEW_ID); + $query->withColumn(ProductImageTableMap::FILE, 'PRODUCT_FILE'); + + // Execute query + $results = $query->find(); + + // Get image generation configuration values + $configValues = []; + $configValues['width'] = Sitemap::getConfigValue('width'); + $configValues['height'] = Sitemap::getConfigValue('height'); + $configValues['quality'] = Sitemap::getConfigValue('quality', 75); + $configValues['rotation'] = Sitemap::getConfigValue('rotation', 0); + $configValues['resizeMode'] = Sitemap::getConfigValue('resize_mode', \Thelia\Action\Image::EXACT_RATIO_WITH_BORDERS); + $configValues['bgColor'] = Sitemap::getConfigValue('background_color'); + $configValues['allowZoom'] = Sitemap::getConfigValue('allow_zoom', false); + + // For each result, hydrate XML file + /** @var RewritingUrl $result */ + foreach ($results as $result) { + + // Generate image data + $this->generateSitemapImage('product', $result, $configValues, $sitemap); + } + } + + /** + * Join products and their URLs + * + * @param RewritingUrlQuery $query + * + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function addJoinProductI18n(RewritingUrlQuery &$query) + { + // Join RewritingURL with Product to have only visible products + $join = new Join(); + + $join->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_ID', + null, + ProductTableMap::TABLE_NAME, + 'ID', + null + ); + + $join->setJoinType(Criteria::INNER_JOIN); + $query->addJoinObject($join, 'productJoin'); + + $query->addJoinCondition('productJoin', ProductTableMap::VISIBLE.' = 1'); + + // Join RewritingURL with ProductI18n to have product title for it's image + $joinI18n = new Join(); + + $joinI18n->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_ID', + null, + ProductI18nTableMap::TABLE_NAME, + 'ID', + null + ); + $joinI18n->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_LOCALE', + null, + ProductI18nTableMap::TABLE_NAME, + 'LOCALE', + null + ); + + $joinI18n->setJoinType(Criteria::INNER_JOIN); + $query->addJoinObject($joinI18n); + + + // Join RewritingURL with ProductImage to have image file + $joinImage = new Join(); + + $joinImage->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_ID', + null, + ProductImageTableMap::TABLE_NAME, + 'PRODUCT_ID', + null + ); + + $joinImage->setJoinType(Criteria::INNER_JOIN); + $query->addJoinObject($joinImage, 'productImageJoin'); + + $query->addJoinCondition('productImageJoin', ProductImageTableMap::VISIBLE.' = 1'); + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/Controller/ProductSitemapTrait.php b/local/modules/Sitemap/Controller/ProductSitemapTrait.php new file mode 100644 index 00000000..aa57240e --- /dev/null +++ b/local/modules/Sitemap/Controller/ProductSitemapTrait.php @@ -0,0 +1,106 @@ + + */ +trait ProductSitemapTrait +{ + /** + * Get products + * + * @param $sitemap + * @param $locale + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function setSitemapProducts(&$sitemap, $locale) + { + // Prepare query - get products URL + $query = RewritingUrlQuery::create() + ->filterByView('product') + ->filterByRedirected(null) + ->filterByViewLocale($locale); + + // Join with visible products + self::addJoinProduct($query); + + // Get products last update + $query->withColumn(ProductTableMap::UPDATED_AT, 'PRODUCT_UPDATE_AT'); + + // Execute query + $results = $query->find(); + + // For each result, hydrate XML file + /** @var RewritingUrl $result */ + foreach ($results as $result) { + $sitemapEvent = new SitemapEvent( + $result, + URL::getInstance()->absoluteUrl($result->getUrl()), + date('c', strtotime($result->getVirtualColumn('PRODUCT_UPDATE_AT'))) + ); + + $this->getDispatcher()->dispatch(SitemapEvent::SITEMAP_EVENT, $sitemapEvent); + + if (!$sitemapEvent->isHide()){ + // Open new sitemap line & set brand URL & update date + + $sitemapPriority = SitemapPriorityQuery::create() + ->filterBySource($result->getView()) + ->filterBySourceId($result->getViewId()) + ->findOne(); + + $sitemapPriorityValue = ($sitemapPriority === null) ? Sitemap::getConfigValue('default_priority_product_value', SiteMap::DEFAULT_PRIORITY_PRODUCT_VALUE) : $sitemapPriority->getValue(); + + $sitemap[] = ' + + '.$sitemapEvent->getLoc().' + '.$sitemapEvent->getLastmod().' + '.$sitemapPriorityValue.' + '.Sitemap::getConfigValue('default_update_frequency', SiteMap::DEFAULT_FREQUENCY_UPDATE).' + '; + } + } + } + + /** + * Join products and their URLs + * + * @param RewritingUrlQuery $query + * + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function addJoinProduct(RewritingUrlQuery &$query) + { + // Join RewritingURL with Product to have only visible products + $join = new Join(); + + $join->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_ID', + null, + ProductTableMap::TABLE_NAME, + 'ID', + null + ); + + $join->setJoinType(Criteria::INNER_JOIN); + $query->addJoinObject($join, 'productJoin'); + + // Get only visible products + $query->addJoinCondition('productJoin', ProductTableMap::VISIBLE.' = 1'); + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/Controller/SitemapConfigController.php b/local/modules/Sitemap/Controller/SitemapConfigController.php new file mode 100644 index 00000000..12b06c6e --- /dev/null +++ b/local/modules/Sitemap/Controller/SitemapConfigController.php @@ -0,0 +1,156 @@ + + */ +class SitemapConfigController extends BaseAdminController +{ + public function defaultAction() + { + if (null !== $response = $this->checkAuth([AdminResources::MODULE], ["sitemap"], AccessManager::VIEW)) { + return $response; + } + + // Get resize mode name + switch (Sitemap::getConfigValue('resize_mode')) { + case 1: + $resizeMode = 'borders'; + break; + + case 2: + $resizeMode = 'crop'; + break; + + case 3: + $resizeMode = 'none'; + break; + + default: + $resizeMode = ''; + break; + } + + // Build form + $form = $this->createForm( + "sitemap_config_form", + 'form', + [ + 'timeout' => Sitemap::getConfigValue('timeout'), + 'width' => Sitemap::getConfigValue('width'), + 'height' => Sitemap::getConfigValue('height'), + 'quality' => Sitemap::getConfigValue('quality'), + 'rotation' => Sitemap::getConfigValue('rotation'), + 'resize_mode' => $resizeMode, + 'background_color' => Sitemap::getConfigValue('background_color'), + 'allow_zoom' => Sitemap::getConfigValue('allow_zoom'), + 'exclude_empty_category' => Sitemap::getConfigValue('exclude_empty_category'), + 'exclude_empty_folder' => Sitemap::getConfigValue('exclude_empty_folder'), + 'default_priority_homepage_value' => Sitemap::getConfigValue('default_priority_homepage_value'), + 'default_priority_brand_value' => Sitemap::getConfigValue('default_priority_brand_value'), + 'default_priority_category_value' => Sitemap::getConfigValue('default_priority_category_value'), + 'default_priority_product_value' => Sitemap::getConfigValue('default_priority_product_value'), + 'default_priority_folder_value' => Sitemap::getConfigValue('default_priority_folder_value'), + 'default_update_frequency' => Sitemap::getConfigValue('default_update_frequency') + ] + ); + + $this->getParserContext()->addForm($form); + + return $this->render("sitemap-configuration"); + } + + /** + * Save data + * + * @return mixed|\Thelia\Core\HttpFoundation\Response + */ + public function saveAction() + { + if (null !== $response = $this->checkAuth([AdminResources::MODULE], ["sitemap"], AccessManager::UPDATE)) { + return $response; + } + + $baseForm = $this->createForm("sitemap_config_form"); + + $errorMessage = null; + + // Get current edition language locale + $locale = $this->getCurrentEditionLocale(); + + try { + $form = $this->validateForm($baseForm); + $data = $form->getData(); + + $excludeEmptyCategory = $data['exclude_empty_category'] == 1; + $excludeEmptyFolder = $data['exclude_empty_folder'] == 1; + + // Get resize mode + switch ($data["resize_mode"]) { + case 'none': + $resizeMode = \Thelia\Action\Image::KEEP_IMAGE_RATIO; + break; + + case 'crop': + $resizeMode = \Thelia\Action\Image::EXACT_RATIO_WITH_CROP; + break; + + case 'borders': + default: + $resizeMode = \Thelia\Action\Image::EXACT_RATIO_WITH_BORDERS; + break; + } + + // Save data + Sitemap::setConfigValue('timeout', $data['timeout']); + Sitemap::setConfigValue('width', $data['width']); + Sitemap::setConfigValue('height', $data['height']); + Sitemap::setConfigValue('quality', $data['quality']); + Sitemap::setConfigValue('rotation', $data['rotation']); + Sitemap::setConfigValue('resize_mode', $resizeMode); + Sitemap::setConfigValue('background_color', $data['background_color']); + Sitemap::setConfigValue('allow_zoom', $data['allow_zoom']); + Sitemap::setConfigValue('exclude_empty_category', $excludeEmptyCategory); + Sitemap::setConfigValue('exclude_empty_folder', $excludeEmptyFolder); + Sitemap::setConfigValue('default_priority_homepage_value', $data['default_priority_homepage_value']); + Sitemap::setConfigValue('default_priority_brand_value', $data['default_priority_brand_value']); + Sitemap::setConfigValue('default_priority_category_value', $data['default_priority_category_value']); + Sitemap::setConfigValue('default_priority_product_value', $data['default_priority_product_value']); + Sitemap::setConfigValue('default_priority_folder_value', $data['default_priority_folder_value']); + Sitemap::setConfigValue('default_update_frequency', $data['default_update_frequency']); + + } catch (FormValidationException $ex) { + // Invalid data entered + $errorMessage = $this->createStandardFormValidationErrorMessage($ex); + } catch (\Exception $ex) { + // Any other error + $errorMessage = $this->getTranslator()->trans('Sorry, an error occurred: %err', ['%err' => $ex->getMessage()], Sitemap::DOMAIN_NAME, $locale); + } + + if (null !== $errorMessage) { + // Mark the form as with error + $baseForm->setErrorMessage($errorMessage); + + // Send the form and the error to the parser + $this->getParserContext() + ->addForm($baseForm) + ->setGeneralError($errorMessage) + ; + } else { + $this->getParserContext() + ->set("success", true) + ; + } + + return $this->defaultAction(); + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/Controller/SitemapController.php b/local/modules/Sitemap/Controller/SitemapController.php new file mode 100644 index 00000000..c2bab9a1 --- /dev/null +++ b/local/modules/Sitemap/Controller/SitemapController.php @@ -0,0 +1,284 @@ + + */ +class SitemapController extends BaseFrontController +{ + use CategorySitemapTrait; + use ProductSitemapTrait; + use FolderSitemapTrait; + use ContentSitemapTrait; + use BrandSitemapTrait; + + use ProductImageTrait; + + /** Folder name for sitemap cache */ + const SITEMAP_CACHE_DIR = "sitemap"; + + /** Key prefix for sitemap cache */ + const SITEMAP_CACHE_KEY = "sitemap"; + + /** Folder name for sitemap image cache */ + const SITEMAP_IMAGE_CACHE_DIR = "sitemap-image"; + + /** Key prefix for sitemap image cache */ + const SITEMAP_IMAGE_CACHE_KEY = "sitemap-image"; + + protected $useFallbackTemplate = true; + + /** + * Generate sitemap + */ + public function generateAction() + { + return $this->generateSitemap(self::SITEMAP_CACHE_KEY, self::SITEMAP_CACHE_DIR); + } + + /** + * Generate sitemap image + */ + public function generateImageAction() + { + return $this->generateSitemap(self::SITEMAP_IMAGE_CACHE_KEY, self::SITEMAP_IMAGE_CACHE_DIR); + } + + /** + * Check if cached sitemap can be used or generate a new one and cache it + * + * @param $cacheKey + * @param $cacheDirName + * @return Response + */ + public function generateSitemap($cacheKey, $cacheDirName) + { + // Get and check locale + $locale = $this->getSession()->getLang()->getLocale(); + + if ("" !== $locale) { + if (! $this->checkLang($locale)){ + $this->pageNotFound(); + } + } + + // Get sitemap cache information + $sitemapContent = false; + $cacheDir = $this->getCacheDir($cacheDirName); + $cacheKey .= $locale; + $cacheExpire = intval(ConfigQuery::read("sitemap_ttl", '7200')) ?: 7200; + $cacheDriver = new FilesystemCache($cacheDir); + + // Check if sitemap has to be deleted + if (!($this->checkAdmin() && "" !== $this->getRequest()->query->get("flush", ""))){ + // Get cached sitemap + $sitemapContent = $cacheDriver->fetch($cacheKey); + } else { + $cacheDriver->delete($cacheKey); + } + + // If not in cache, generate and cache it + if (false === $sitemapContent){ + + // Check if we generate the standard sitemap or the sitemap image + switch ($cacheDirName) { + // Image + case self::SITEMAP_IMAGE_CACHE_DIR: + $sitemap = $this->hydrateSitemapImage($locale); + break; + + // Standard + case self::SITEMAP_CACHE_DIR: + default: + $sitemap = $this->hydrateSitemap($locale); + break; + } + + $sitemapContent = implode("\n", $sitemap); + + // Save cache + $cacheDriver->save($cacheKey, $sitemapContent, $cacheExpire); + } + + // Render + $response = new Response(); + $response->setContent($sitemapContent); + $response->headers->set('Content-Type', 'application/xml'); + + return $response; + } + + /* ------------------ */ + + /** + * Build sitemap array + * + * @param $locale + * @return array + */ + protected function hydrateSitemap($locale) + { + // Begin sitemap + $sitemap = [' + + + + '.URL::getInstance()->getIndexPage().' + '.Sitemap::getConfigValue('default_priority_homepage_value', SiteMap::DEFAULT_PRIORITY_HOME_VALUE).' + '.Sitemap::getConfigValue('default_update_frequency', SiteMap::DEFAULT_FREQUENCY_UPDATE).' + ' + ]; + + // Hydrate sitemap + $this->setSitemapCategories($sitemap, $locale); + $this->setSitemapProducts($sitemap, $locale); + $this->setSitemapFolders($sitemap, $locale); + $this->setSitemapContents($sitemap, $locale); + $this->setSitemapBrands($sitemap, $locale); + + $event = new SitemapEndEvent(); + $event->setSitemap($sitemap); + + $this->getDispatcher()->dispatch(SitemapEvent::SITEMAP_END_EVENT, $event); + + $sitemap = $event->getSitemap(); + + // End sitemap + $sitemap[] = "\t".''; + + return $sitemap; + } + + /** + * Build sitemap image array + * + * @param $locale + * @return array + */ + protected function hydrateSitemapImage($locale) + { + // Begin sitemap image + $sitemap = [' + + + + '.URL::getInstance()->getIndexPage().' + ' + ]; + + // Hydrate sitemap image + $this->setSitemapProductImages($sitemap, $locale); + + // End sitemap image + $sitemap[] = "\t".''; + + return $sitemap; + } + + /* ------------------ */ + + /** + * @param $type + * @param RewritingUrl $result + * @param $configValues + * @param $sitemap + */ + protected function generateSitemapImage($type, $result, $configValues, &$sitemap) + { + $event = new ImageEvent(); + + $event + ->setWidth($configValues['width']) + ->setHeight($configValues['height']) + ->setQuality($configValues['quality']) + ->setRotation($configValues['rotation']) + ->setResizeMode($configValues['resizeMode']) + ->setBackgroundColor($configValues['bgColor']) + ->setAllowZoom($configValues['allowZoom']); + + // Put source image file path + $source_filepath = sprintf("%s%s/%s/%s", + THELIA_ROOT, + ConfigQuery::read('images_library_path', 'local/media/images'), + $type, + $result->getVirtualColumn('PRODUCT_FILE') + ); + + $event->setSourceFilepath($source_filepath); + $event->setCacheSubdirectory($type); + + try { + // Dispatch image processing event + $this->dispatch(TheliaEvents::IMAGE_PROCESS, $event); + + // New sitemap image entry + $sitemap[] = ' + + '.URL::getInstance()->absoluteUrl($result->getUrl()).' + + '.$event->getFileUrl().' + '.htmlspecialchars($result->getVirtualColumn('PRODUCT_TITLE')).' + + '; + + } catch (\Exception $ex) { + } + } + + /* ------------------ */ + + /** + * @param $locale + * @return bool true if the language is used, otherwise false + */ + protected function checkLang($locale) + { + // Load locales + $locale = LangQuery::create() + ->findOneByLocale($locale); + + return (null !== $locale); + } + + /** + * Get the cache directory for sitemap + * + * @param $cacheDirName + * @return mixed|string + */ + protected function getCacheDir($cacheDirName) + { + $cacheDir = $this->container->getParameter("kernel.cache_dir"); + $cacheDir = rtrim($cacheDir, '/'); + $cacheDir .= '/' . $cacheDirName . '/'; + + return $cacheDir; + } + + /** + * Check if current user has ADMIN role + * + * @return bool + */ + protected function checkAdmin(){ + return $this->getSecurityContext()->hasAdminUser(); + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/Event/SitemapEndEvent.php b/local/modules/Sitemap/Event/SitemapEndEvent.php new file mode 100644 index 00000000..56eb8804 --- /dev/null +++ b/local/modules/Sitemap/Event/SitemapEndEvent.php @@ -0,0 +1,26 @@ +sitemap; + } + + /** + * @param mixed $sitemap + */ + public function setSitemap($sitemap) + { + $this->sitemap = $sitemap; + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/Event/SitemapEvent.php b/local/modules/Sitemap/Event/SitemapEvent.php new file mode 100644 index 00000000..1355b054 --- /dev/null +++ b/local/modules/Sitemap/Event/SitemapEvent.php @@ -0,0 +1,103 @@ +rewritingUrl = $rewritingUrl; + + $this->loc = $loc; + + $this->lastmod = $lastmod; + + $this->hide = $hide; + } + + /** + * @return RewritingUrl + */ + public function getRewritingUrl() + { + return $this->rewritingUrl; + } + + /** + * @param RewritingUrl $rewritingUrl + */ + public function setRewritingUrl($rewritingUrl) + { + $this->rewritingUrl = $rewritingUrl; + } + + + /** + * @return null + */ + public function getLoc() + { + return $this->loc; + } + + /** + * @param null $loc + */ + public function setLoc($loc) + { + $this->loc = $loc; + } + + /** + * @return null + */ + public function getLastmod() + { + return $this->lastmod; + } + + /** + * @param null $lastmod + */ + public function setLastmod($lastmod) + { + $this->lastmod = $lastmod; + } + + /** + * @return bool + */ + public function isHide() + { + return $this->hide; + } + + /** + * @param bool $hide + */ + public function setHide($hide) + { + $this->hide = $hide; + } + + +} \ No newline at end of file diff --git a/local/modules/Sitemap/EventListeners/EventManager.php b/local/modules/Sitemap/EventListeners/EventManager.php new file mode 100644 index 00000000..e8898c42 --- /dev/null +++ b/local/modules/Sitemap/EventListeners/EventManager.php @@ -0,0 +1,208 @@ +request = $request; + } + + public static function getSubscribedEvents() + { + return [ + TheliaEvents::PRODUCT_DELETE => [ 'deleteProduct' ], + TheliaEvents::CATEGORY_DELETE => [ 'deleteCategory' ], + TheliaEvents::CONTENT_DELETE => [ 'deleteContent' ], + TheliaEvents::FOLDER_DELETE => [ 'deleteFolder' ], + TheliaEvents::BRAND_DELETE => [ 'deleteBrand' ], + + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_product_creation" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_product_modification" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_content_creation" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_content_modification" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_category_creation" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_category_modification" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_folder_creation" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_folder_modification" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_brand_creation" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_brand_modification" => ['addFieldToForm', 128], + + TheliaEvents::PRODUCT_UPDATE => ['processProductFields', 100], + TheliaEvents::PRODUCT_CREATE => ['processProductFields', 100], + + TheliaEvents::CATEGORY_CREATE => ['processCategoryFields', 100], + TheliaEvents::CATEGORY_UPDATE => ['processCategoryFields', 100], + + TheliaEvents::CONTENT_CREATE => ['processContentFields', 100], + TheliaEvents::CONTENT_UPDATE => ['processContentFields', 100], + + TheliaEvents::FOLDER_CREATE => ['processFolderFields', 100], + TheliaEvents::FOLDER_UPDATE => ['processFolderFields', 100], + + TheliaEvents::BRAND_CREATE => ['processBrandFields', 100], + TheliaEvents::BRAND_UPDATE => ['processBrandFields', 100], + ]; + } + + public function addFieldToForm(TheliaFormEvent $event) + { + $event->getForm()->getFormBuilder()->add( + 'sitemapPriority', + 'text', + [ + 'required' => false, + 'label' => Translator::getInstance()->trans( + 'Sitemap priority', + [], + Sitemap::DOMAIN_NAME + ), + 'label_attr' => [ + 'help' => Translator::getInstance()->trans( + 'Enter a decimal number between 0 and 1 that will define the importance of the page.', + [], + Sitemap::DOMAIN_NAME + ) + ] + ] + ); + } + + public function processSitemap(ActionEvent $event, $source, $sourceId) + { + // Utilise le principe NON DOCUMENTE qui dit que si une form bindée à un event trouve + // un champ absent de l'event, elle le rend accessible à travers une méthode magique. + // (cf. ActionEvent::bindForm()) + + $sitemapPriority = SitemapPriorityQuery::create() + ->filterBySource($source) + ->filterBySourceId($sourceId) + ->findOneOrCreate(); + + $sitemapValue = $event->sitemapPriority; + + if (!empty($sitemapValue) && $sitemapPriority->getValue() !== $sitemapValue) { + $sitemapPriority + ->setValue($sitemapValue)->save(); + } + } + + public function processProductFields(ProductEvent $event) + { + if ($event->hasProduct()) { + $this->processSitemap($event, 'product', $event->getProduct()->getId()); + } + } + + public function processCategoryFields(CategoryEvent $event) + { + if ($event->hasCategory()) { + $this->processSitemap($event, 'category', $event->getCategory()->getId()); + } + } + + public function processFolderFields(FolderEvent $event) + { + if ($event->hasFolder()) { + $this->processSitemap($event, 'folder', $event->getFolder()->getId()); + } + } + + public function processContentFields(ContentEvent $event) + { + if ($event->hasContent()) { + $this->processSitemap($event, 'content', $event->getContent()->getId()); + } + } + + public function processBrandFields(BrandEvent $event) + { + if ($event->hasBrand()) { + $this->processSitemap($event, 'brand', $event->getBrand()->getId()); + } + } + + public function deleteProduct(ProductDeleteEvent $event) + { + SitemapPriorityQuery::create()->filterBySource('product')->filterBySourceId($event->getProductId())->delete(); + } + + public function deleteCategory(CategoryDeleteEvent $event) + { + SitemapPriorityQuery::create()->filterBySource('category')->filterBySourceId($event->getCategoryId())->delete(); + } + + public function deleteContent(ContentDeleteEvent $event) + { + SitemapPriorityQuery::create()->filterBySource('content')->filterBySourceId($event->getContentId())->delete(); + } + + public function deleteFolder(FolderDeleteEvent $event) + { + SitemapPriorityQuery::create()->filterBySource('folder')->filterBySourceId($event->getFolderId())->delete(); + } + + public function deleteBrand(BrandDeleteEvent $event) + { + SitemapPriorityQuery::create()->filterBySource('brand')->filterBySourceId($event->getBrandId())->delete(); + } +} diff --git a/local/modules/Sitemap/Form/SitemapConfigForm.php b/local/modules/Sitemap/Form/SitemapConfigForm.php new file mode 100644 index 00000000..09fe7c35 --- /dev/null +++ b/local/modules/Sitemap/Form/SitemapConfigForm.php @@ -0,0 +1,107 @@ + + */ +class SitemapConfigForm extends BaseForm +{ + public function getName() + { + return 'sitemap_config_form'; + } + + /** + * @return null + */ + protected function buildForm() + { + $this->formBuilder + ->add( + 'timeout', + 'number', + ['label' => $this->translator->trans('Script timeout (in seconds) for images generation (default: 30)', [], 'sitemap')] + ) + ->add( + 'width', + 'text', + ['label' => $this->translator->trans('Image width', [], 'sitemap')] + ) + ->add( + 'height', + 'text', + ['label' => $this->translator->trans('Image height', [], 'sitemap')] + ) + ->add( + 'quality', + 'text', + ['label' => $this->translator->trans('Image quality', [], 'sitemap')] + ) + ->add( + 'rotation', + 'text', + ['label' => $this->translator->trans('Image rotation', [], 'sitemap')] + ) + ->add( + 'resize_mode', + 'text', + ['label' => $this->translator->trans('Image resize mode ([borders] / crop / none)', [], 'sitemap')] + ) + ->add( + 'background_color', + 'text', + ['label' => $this->translator->trans('Image background color', [], 'sitemap')] + ) + ->add( + 'allow_zoom', + 'text', + ['label' => $this->translator->trans('Allow image zoom ([false] / true)', [], 'sitemap')] + ) + ->add( + 'exclude_empty_category', + 'text', + ['label' => $this->translator->trans('Do not include empty categories', [], 'sitemap')] + ) + ->add( + 'exclude_empty_folder', + 'text', + ['label' => $this->translator->trans('Do not include empty folders', [], 'sitemap')] + ) + ->add( + 'default_priority_homepage_value', + 'text', + ['label' => $this->translator->trans('Default home page priority', [], 'sitemap')] + ) + ->add( + 'default_priority_brand_value', + 'text', + ['label' => $this->translator->trans('Default brand page priority', [], 'sitemap')] + ) + ->add( + 'default_priority_category_value', + 'text', + ['label' => $this->translator->trans('Default category page priority', [], 'sitemap')] + ) + ->add( + 'default_priority_product_value', + 'text', + ['label' => $this->translator->trans('Default product page priority', [], 'sitemap')] + ) + ->add( + 'default_priority_folder_value', + 'text', + ['label' => $this->translator->trans('Default folder page priority', [], 'sitemap')] + ) + ->add( + 'default_update_frequency', + 'text', + ['label' => $this->translator->trans('Default page update frequency (always / hourly / daily / weekly / monthly / yearly / never)', [], 'sitemap')] + ) + ; + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/Hook/SitemapHook.php b/local/modules/Sitemap/Hook/SitemapHook.php new file mode 100644 index 00000000..0fd6bb3e --- /dev/null +++ b/local/modules/Sitemap/Hook/SitemapHook.php @@ -0,0 +1,81 @@ + + */ +class SitemapHook extends BaseHook +{ + private function processFieldHook(HookRenderEvent $event, $sourceType, $sourceId) + { + $sitemap = SitemapPriorityQuery::create() + ->filterBySource($sourceType) + ->filterBySourceId($sourceId) + ->findOne(); + switch ($sourceType) { + case 'brand': + $sitemapConfigValue = Sitemap::getConfigValue('default_priority_brand_value', SiteMap::DEFAULT_PRIORITY_BRAND_VALUE); + break; + case 'category': + $sitemapConfigValue = Sitemap::getConfigValue('default_priority_category_value', SiteMap::DEFAULT_PRIORITY_CATEGORY_VALUE); + break; + case 'product': + $sitemapConfigValue = Sitemap::getConfigValue('default_priority_product_value', SiteMap::DEFAULT_PRIORITY_PRODUCT_VALUE); + break; + case 'folder': + case 'content': + default: + $sitemapConfigValue = Sitemap::getConfigValue('default_priority_folder_value', SiteMap::DEFAULT_PRIORITY_FOLDER_VALUE); + break; + } + $sitemapValue = (null === $sitemap || empty($sitemap->getValue())) ? $sitemapConfigValue : $sitemap->getValue(); + + $event->add( + $this->render( + "generic-sitemap-definition.html", + [ + 'sitemapPriority' => $sitemapValue + ] + ) + ); + } + + public function onModuleConfig(HookRenderEvent $event) + { + $event->add($this->render('sitemap-configuration.html')); + } + + public function onProductEditRightColumnBottom(HookRenderEvent $event) + { + $this->processFieldHook($event, 'product', $event->getArgument('product_id')); + } + + public function onCategoryEditRightColumnBottom(HookRenderEvent $event) + { + $this->processFieldHook($event, 'category', $event->getArgument('category_id')); + } + + public function onContentEditRightColumnBottom(HookRenderEvent $event) + { + $this->processFieldHook($event, 'content', $event->getArgument('content_id')); + } + + public function onFolderEditRightColumnBottom(HookRenderEvent $event) + { + $this->processFieldHook($event, 'folder', $event->getArgument('folder_id')); + } + public function onBrandEditRightColumnBottom(HookRenderEvent $event) + { + $this->processFieldHook($event, 'brand', $event->getArgument('brand_id')); + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/I18n/backOffice/default/en_US.php b/local/modules/Sitemap/I18n/backOffice/default/en_US.php new file mode 100644 index 00000000..52c58c3c --- /dev/null +++ b/local/modules/Sitemap/I18n/backOffice/default/en_US.php @@ -0,0 +1,12 @@ +Warning!
Only fill this input with a greater value than 30 if you have so many images that the sitemap-image can\'t be generated because of timeout.' => 'Warning! Only fill this input with a greater value than 30 if you have so many images that the sitemap-image can\'t be generated because of timeout.', + 'Configuration correctly saved' => 'Configuration correctly saved', + 'Configure sitemap images' => 'Configure sitemap images', + 'Depending on your server, this may have no effect.' => 'Depending on your server, this may have no effect.', + 'Home' => 'Home', + 'Modules' => 'Modules', + 'Set the same information as in your product image loop' => 'Set the same information as in your product image loop', + 'Sitemap images configuration' => 'Sitemap images configuration', +); diff --git a/local/modules/Sitemap/I18n/backOffice/default/fr_FR.php b/local/modules/Sitemap/I18n/backOffice/default/fr_FR.php new file mode 100644 index 00000000..7cb43f8a --- /dev/null +++ b/local/modules/Sitemap/I18n/backOffice/default/fr_FR.php @@ -0,0 +1,13 @@ +Warning!
Only fill this input with a greater value than 30 if you have so many images that the sitemap-image can\'t be generated because of timeout.' => 'Attention ! Ne remplissez ce champ avec une valeur plus grande que 30 que si vous avez beaucoup d\'images et que le sitemap-image n\'arrive pas à se générer.', + 'Configuration correctly saved' => 'Configuration sauvegardée avec succès', + 'Configure sitemap' => 'Configurer le sitemap', + 'Configure sitemap images' => 'Configurer les images du sitemap', + 'Depending on your server, this may have no effect.' => 'En fonction de votre serveur, cela pourrait n\'avoir aucun effet.', + 'Home' => 'Accueil', + 'Modules' => 'Modules', + 'Set the same information as in your product image loop' => 'Entrez les mêmes informations que dans la boucle image des produits', + 'Sitemap images configuration' => 'Configuration des images du module Sitemap', +); diff --git a/local/modules/Sitemap/I18n/en_US.php b/local/modules/Sitemap/I18n/en_US.php new file mode 100644 index 00000000..b308b8eb --- /dev/null +++ b/local/modules/Sitemap/I18n/en_US.php @@ -0,0 +1,21 @@ + 'Allow image zoom ([false] / true)', + 'Image background color' => 'Image background color', + 'Image height' => 'Image height', + 'Image quality' => 'Image quality', + 'Image resize mode ([borders] / crop / none)' => 'Image resize mode ([borders] / crop / none)', + 'Image rotation' => 'Image rotation', + 'Image width' => 'Image width', + 'Script timeout (in seconds) for images generation (default: 30)' => 'Script timeout (in seconds) for images generation (default: 30)', + 'Sorry, an error occurred: %err' => 'Sorry, an error occurred: %err', + 'Sitemap priority' => 'Sitemap priority', + 'Default home page priority' => 'Default home page priority', + 'Default folder page priority' => 'Default folder page priority', + 'Default category page priority' => 'Default category page priority', + 'Default product page priority' => 'Default product page priority', + 'Default brand page priority' => 'Default brand page priority', + 'Default page update frequency (always / hourly / daily / weekly / monthly / yearly / never)' => 'Default page update frequency (always / hourly / daily / weekly / monthly / yearly / never)', + 'Enter a decimal number between 0 and 1 that will define the importance of the page.' => 'Enter a decimal number between 0 and 1 that will define the importance of the page.', +); diff --git a/local/modules/Sitemap/I18n/fr_FR.php b/local/modules/Sitemap/I18n/fr_FR.php new file mode 100644 index 00000000..71252567 --- /dev/null +++ b/local/modules/Sitemap/I18n/fr_FR.php @@ -0,0 +1,23 @@ + 'Autoriser le zoom des images ([false] / true)', + 'Do not include empty categories' => 'Ne pas inclure les catégories vides', + 'Do not include empty folders' => 'Ne pas inclure les dossiers vides', + 'Image background color' => 'Couleur de fond des images', + 'Image height' => 'Hauteur des images', + 'Image quality' => 'Qualité des images', + 'Image resize mode ([borders] / crop / none)' => 'Mode de redimensionnement des images ([borders] / crop / none)', + 'Image rotation' => 'Rotation des images', + 'Image width' => 'Largeur des images', + 'Script timeout (in seconds) for images generation (default: 30)' => 'Temps maximum d\'exécution (en secondes) pour la génération des images (par défaut : 30)', + 'Sorry, an error occurred: %err' => 'Désolé, une erreur s\'est produite : %err', + 'Default home page priority' => 'Priorité par défaut des pages d\'accueil', + 'Default folder page priority' => 'Priorité par défaut des pages dossiers', + 'Default category page priority' => 'Priorité par défaut des pages catégories', + 'Default product page priority' => 'Priorité par défaut des pages produits', + 'Default brand page priority' => 'Priorité par défaut des pages marques', + 'Default page update frequency (always / hourly / daily / weekly / monthly / yearly / never)' => 'Fréquence de mise à jour par défaut des pages (always / hourly / daily / weekly / monthly / yearly / never)', + 'Sitemap priority' => 'Sitemap priorité', + 'Enter a decimal number between 0 and 1 that will define the importance of the page.' => 'Indiquez un nombre décimal entre 0 et 1 qui définira l\'importance de la page.', +); diff --git a/local/modules/modules/Carousel/Model/Base/CarouselI18n.php b/local/modules/Sitemap/Model/Base/SitemapPriority.php similarity index 66% rename from local/modules/modules/Carousel/Model/Base/CarouselI18n.php rename to local/modules/Sitemap/Model/Base/SitemapPriority.php index 0f993bf8..55259f01 100644 --- a/local/modules/modules/Carousel/Model/Base/CarouselI18n.php +++ b/local/modules/Sitemap/Model/Base/SitemapPriority.php @@ -1,13 +1,10 @@ locale = 'en_US'; - } - - /** - * Initializes internal state of Carousel\Model\Base\CarouselI18n object. - * @see applyDefaults() + * Initializes internal state of Sitemap\Model\Base\SitemapPriority object. */ public function __construct() { - $this->applyDefaultValues(); } /** @@ -218,9 +194,9 @@ abstract class CarouselI18n implements ActiveRecordInterface } /** - * Compares this with another CarouselI18n instance. If - * obj is an instance of CarouselI18n, delegates to - * equals(CarouselI18n). Otherwise, returns false. + * Compares this with another SitemapPriority instance. If + * obj is an instance of SitemapPriority, delegates to + * equals(SitemapPriority). Otherwise, returns false. * * @param mixed $obj The object to compare to. * @return boolean Whether equal to the object specified. @@ -303,7 +279,7 @@ abstract class CarouselI18n implements ActiveRecordInterface * @param string $name The virtual column name * @param mixed $value The value to give to the virtual column * - * @return CarouselI18n The current object, for fluid interface + * @return SitemapPriority The current object, for fluid interface */ public function setVirtualColumn($name, $value) { @@ -335,7 +311,7 @@ abstract class CarouselI18n implements ActiveRecordInterface * or a format name ('XML', 'YAML', 'JSON', 'CSV') * @param string $data The source data to import from * - * @return CarouselI18n The current object, for fluid interface + * @return SitemapPriority The current object, for fluid interface */ public function importFrom($parser, $data) { @@ -392,76 +368,83 @@ abstract class CarouselI18n implements ActiveRecordInterface } /** - * Get the [locale] column value. + * Get the [value] column value. * - * @return string + * @return double */ - public function getLocale() + public function getValue() { - return $this->locale; + return $this->value; } /** - * Get the [alt] column value. + * Get the [source] column value. * * @return string */ - public function getAlt() + public function getSource() { - return $this->alt; + return $this->source; } /** - * Get the [title] column value. + * Get the [source_id] column value. * - * @return string + * @return int */ - public function getTitle() + public function getSourceId() { - return $this->title; + return $this->source_id; } /** - * Get the [description] column value. + * Get the [optionally formatted] temporal [created_at] column value. * - * @return string + * + * @param string $format The date/time format string (either date()-style or strftime()-style). + * If format is NULL, then the raw \DateTime object will be returned. + * + * @return mixed Formatted date/time value as string or \DateTime object (if format is NULL), NULL if column is NULL, and 0 if column value is 0000-00-00 00:00:00 + * + * @throws PropelException - if unable to parse/validate the date/time value. */ - public function getDescription() + public function getCreatedAt($format = NULL) { - - return $this->description; + if ($format === null) { + return $this->created_at; + } else { + return $this->created_at instanceof \DateTime ? $this->created_at->format($format) : null; + } } /** - * Get the [chapo] column value. + * Get the [optionally formatted] temporal [updated_at] column value. * - * @return string - */ - public function getChapo() - { - - return $this->chapo; - } - - /** - * Get the [postscriptum] column value. * - * @return string + * @param string $format The date/time format string (either date()-style or strftime()-style). + * If format is NULL, then the raw \DateTime object will be returned. + * + * @return mixed Formatted date/time value as string or \DateTime object (if format is NULL), NULL if column is NULL, and 0 if column value is 0000-00-00 00:00:00 + * + * @throws PropelException - if unable to parse/validate the date/time value. */ - public function getPostscriptum() + public function getUpdatedAt($format = NULL) { - - return $this->postscriptum; + if ($format === null) { + return $this->updated_at; + } else { + return $this->updated_at instanceof \DateTime ? $this->updated_at->format($format) : null; + } } /** * Set the value of [id] column. * * @param int $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) + * @return \Sitemap\Model\SitemapPriority The current object (for fluent API support) */ public function setId($v) { @@ -471,11 +454,7 @@ abstract class CarouselI18n implements ActiveRecordInterface if ($this->id !== $v) { $this->id = $v; - $this->modifiedColumns[CarouselI18nTableMap::ID] = true; - } - - if ($this->aCarousel !== null && $this->aCarousel->getId() !== $v) { - $this->aCarousel = null; + $this->modifiedColumns[SitemapPriorityTableMap::ID] = true; } @@ -483,130 +462,109 @@ abstract class CarouselI18n implements ActiveRecordInterface } // setId() /** - * Set the value of [locale] column. + * Set the value of [value] column. * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) + * @param double $v new value + * @return \Sitemap\Model\SitemapPriority The current object (for fluent API support) */ - public function setLocale($v) + public function setValue($v) { if ($v !== null) { - $v = (string) $v; + $v = (double) $v; } - if ($this->locale !== $v) { - $this->locale = $v; - $this->modifiedColumns[CarouselI18nTableMap::LOCALE] = true; + if ($this->value !== $v) { + $this->value = $v; + $this->modifiedColumns[SitemapPriorityTableMap::VALUE] = true; } return $this; - } // setLocale() + } // setValue() /** - * Set the value of [alt] column. + * Set the value of [source] column. * * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) + * @return \Sitemap\Model\SitemapPriority The current object (for fluent API support) */ - public function setAlt($v) + public function setSource($v) { if ($v !== null) { $v = (string) $v; } - if ($this->alt !== $v) { - $this->alt = $v; - $this->modifiedColumns[CarouselI18nTableMap::ALT] = true; + if ($this->source !== $v) { + $this->source = $v; + $this->modifiedColumns[SitemapPriorityTableMap::SOURCE] = true; } return $this; - } // setAlt() + } // setSource() /** - * Set the value of [title] column. + * Set the value of [source_id] column. * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) + * @param int $v new value + * @return \Sitemap\Model\SitemapPriority The current object (for fluent API support) */ - public function setTitle($v) + public function setSourceId($v) { if ($v !== null) { - $v = (string) $v; + $v = (int) $v; } - if ($this->title !== $v) { - $this->title = $v; - $this->modifiedColumns[CarouselI18nTableMap::TITLE] = true; + if ($this->source_id !== $v) { + $this->source_id = $v; + $this->modifiedColumns[SitemapPriorityTableMap::SOURCE_ID] = true; } return $this; - } // setTitle() + } // setSourceId() /** - * Set the value of [description] column. + * Sets the value of [created_at] column to a normalized version of the date/time value specified. * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) + * @param mixed $v string, integer (timestamp), or \DateTime value. + * Empty strings are treated as NULL. + * @return \Sitemap\Model\SitemapPriority The current object (for fluent API support) */ - public function setDescription($v) + public function setCreatedAt($v) { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->description !== $v) { - $this->description = $v; - $this->modifiedColumns[CarouselI18nTableMap::DESCRIPTION] = true; - } + $dt = PropelDateTime::newInstance($v, null, '\DateTime'); + if ($this->created_at !== null || $dt !== null) { + if ($dt !== $this->created_at) { + $this->created_at = $dt; + $this->modifiedColumns[SitemapPriorityTableMap::CREATED_AT] = true; + } + } // if either are not null return $this; - } // setDescription() + } // setCreatedAt() /** - * Set the value of [chapo] column. + * Sets the value of [updated_at] column to a normalized version of the date/time value specified. * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) + * @param mixed $v string, integer (timestamp), or \DateTime value. + * Empty strings are treated as NULL. + * @return \Sitemap\Model\SitemapPriority The current object (for fluent API support) */ - public function setChapo($v) + public function setUpdatedAt($v) { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->chapo !== $v) { - $this->chapo = $v; - $this->modifiedColumns[CarouselI18nTableMap::CHAPO] = true; - } + $dt = PropelDateTime::newInstance($v, null, '\DateTime'); + if ($this->updated_at !== null || $dt !== null) { + if ($dt !== $this->updated_at) { + $this->updated_at = $dt; + $this->modifiedColumns[SitemapPriorityTableMap::UPDATED_AT] = true; + } + } // if either are not null return $this; - } // setChapo() - - /** - * Set the value of [postscriptum] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setPostscriptum($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->postscriptum !== $v) { - $this->postscriptum = $v; - $this->modifiedColumns[CarouselI18nTableMap::POSTSCRIPTUM] = true; - } - - - return $this; - } // setPostscriptum() + } // setUpdatedAt() /** * Indicates whether the columns in this object are only set to default values. @@ -618,10 +576,6 @@ abstract class CarouselI18n implements ActiveRecordInterface */ public function hasOnlyDefaultValues() { - if ($this->locale !== 'en_US') { - return false; - } - // otherwise, everything was equal, so return TRUE return true; } // hasOnlyDefaultValues() @@ -649,26 +603,29 @@ abstract class CarouselI18n implements ActiveRecordInterface try { - $col = $row[TableMap::TYPE_NUM == $indexType ? 0 + $startcol : CarouselI18nTableMap::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)]; + $col = $row[TableMap::TYPE_NUM == $indexType ? 0 + $startcol : SitemapPriorityTableMap::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)]; $this->id = (null !== $col) ? (int) $col : null; - $col = $row[TableMap::TYPE_NUM == $indexType ? 1 + $startcol : CarouselI18nTableMap::translateFieldName('Locale', TableMap::TYPE_PHPNAME, $indexType)]; - $this->locale = (null !== $col) ? (string) $col : null; + $col = $row[TableMap::TYPE_NUM == $indexType ? 1 + $startcol : SitemapPriorityTableMap::translateFieldName('Value', TableMap::TYPE_PHPNAME, $indexType)]; + $this->value = (null !== $col) ? (double) $col : null; - $col = $row[TableMap::TYPE_NUM == $indexType ? 2 + $startcol : CarouselI18nTableMap::translateFieldName('Alt', TableMap::TYPE_PHPNAME, $indexType)]; - $this->alt = (null !== $col) ? (string) $col : null; + $col = $row[TableMap::TYPE_NUM == $indexType ? 2 + $startcol : SitemapPriorityTableMap::translateFieldName('Source', TableMap::TYPE_PHPNAME, $indexType)]; + $this->source = (null !== $col) ? (string) $col : null; - $col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : CarouselI18nTableMap::translateFieldName('Title', TableMap::TYPE_PHPNAME, $indexType)]; - $this->title = (null !== $col) ? (string) $col : null; + $col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : SitemapPriorityTableMap::translateFieldName('SourceId', TableMap::TYPE_PHPNAME, $indexType)]; + $this->source_id = (null !== $col) ? (int) $col : null; - $col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : CarouselI18nTableMap::translateFieldName('Description', TableMap::TYPE_PHPNAME, $indexType)]; - $this->description = (null !== $col) ? (string) $col : null; + $col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : SitemapPriorityTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)]; + if ($col === '0000-00-00 00:00:00') { + $col = null; + } + $this->created_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null; - $col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : CarouselI18nTableMap::translateFieldName('Chapo', TableMap::TYPE_PHPNAME, $indexType)]; - $this->chapo = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : CarouselI18nTableMap::translateFieldName('Postscriptum', TableMap::TYPE_PHPNAME, $indexType)]; - $this->postscriptum = (null !== $col) ? (string) $col : null; + $col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : SitemapPriorityTableMap::translateFieldName('UpdatedAt', TableMap::TYPE_PHPNAME, $indexType)]; + if ($col === '0000-00-00 00:00:00') { + $col = null; + } + $this->updated_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null; $this->resetModified(); $this->setNew(false); @@ -677,10 +634,10 @@ abstract class CarouselI18n implements ActiveRecordInterface $this->ensureConsistency(); } - return $startcol + 7; // 7 = CarouselI18nTableMap::NUM_HYDRATE_COLUMNS. + return $startcol + 6; // 6 = SitemapPriorityTableMap::NUM_HYDRATE_COLUMNS. } catch (Exception $e) { - throw new PropelException("Error populating \Carousel\Model\CarouselI18n object", 0, $e); + throw new PropelException("Error populating \Sitemap\Model\SitemapPriority object", 0, $e); } } @@ -699,9 +656,6 @@ abstract class CarouselI18n implements ActiveRecordInterface */ public function ensureConsistency() { - if ($this->aCarousel !== null && $this->id !== $this->aCarousel->getId()) { - $this->aCarousel = null; - } } // ensureConsistency /** @@ -725,13 +679,13 @@ abstract class CarouselI18n implements ActiveRecordInterface } if ($con === null) { - $con = Propel::getServiceContainer()->getReadConnection(CarouselI18nTableMap::DATABASE_NAME); + $con = Propel::getServiceContainer()->getReadConnection(SitemapPriorityTableMap::DATABASE_NAME); } // We don't need to alter the object instance pool; we're just modifying this instance // already in the pool. - $dataFetcher = ChildCarouselI18nQuery::create(null, $this->buildPkeyCriteria())->setFormatter(ModelCriteria::FORMAT_STATEMENT)->find($con); + $dataFetcher = ChildSitemapPriorityQuery::create(null, $this->buildPkeyCriteria())->setFormatter(ModelCriteria::FORMAT_STATEMENT)->find($con); $row = $dataFetcher->fetch(); $dataFetcher->close(); if (!$row) { @@ -741,7 +695,6 @@ abstract class CarouselI18n implements ActiveRecordInterface if ($deep) { // also de-associate any related objects? - $this->aCarousel = null; } // if (deep) } @@ -751,8 +704,8 @@ abstract class CarouselI18n implements ActiveRecordInterface * @param ConnectionInterface $con * @return void * @throws PropelException - * @see CarouselI18n::setDeleted() - * @see CarouselI18n::isDeleted() + * @see SitemapPriority::setDeleted() + * @see SitemapPriority::isDeleted() */ public function delete(ConnectionInterface $con = null) { @@ -761,12 +714,12 @@ abstract class CarouselI18n implements ActiveRecordInterface } if ($con === null) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); + $con = Propel::getServiceContainer()->getWriteConnection(SitemapPriorityTableMap::DATABASE_NAME); } $con->beginTransaction(); try { - $deleteQuery = ChildCarouselI18nQuery::create() + $deleteQuery = ChildSitemapPriorityQuery::create() ->filterByPrimaryKey($this->getPrimaryKey()); $ret = $this->preDelete($con); if ($ret) { @@ -803,7 +756,7 @@ abstract class CarouselI18n implements ActiveRecordInterface } if ($con === null) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); + $con = Propel::getServiceContainer()->getWriteConnection(SitemapPriorityTableMap::DATABASE_NAME); } $con->beginTransaction(); @@ -812,8 +765,19 @@ abstract class CarouselI18n implements ActiveRecordInterface $ret = $this->preSave($con); if ($isInsert) { $ret = $ret && $this->preInsert($con); + // timestampable behavior + if (!$this->isColumnModified(SitemapPriorityTableMap::CREATED_AT)) { + $this->setCreatedAt(time()); + } + if (!$this->isColumnModified(SitemapPriorityTableMap::UPDATED_AT)) { + $this->setUpdatedAt(time()); + } } else { $ret = $ret && $this->preUpdate($con); + // timestampable behavior + if ($this->isModified() && !$this->isColumnModified(SitemapPriorityTableMap::UPDATED_AT)) { + $this->setUpdatedAt(time()); + } } if ($ret) { $affectedRows = $this->doSave($con); @@ -823,7 +787,7 @@ abstract class CarouselI18n implements ActiveRecordInterface $this->postUpdate($con); } $this->postSave($con); - CarouselI18nTableMap::addInstanceToPool($this); + SitemapPriorityTableMap::addInstanceToPool($this); } else { $affectedRows = 0; } @@ -853,18 +817,6 @@ abstract class CarouselI18n implements ActiveRecordInterface if (!$this->alreadyInSave) { $this->alreadyInSave = true; - // We call the save method on the following object(s) if they - // were passed to this object by their corresponding set - // method. This object relates to these object(s) by a - // foreign key reference. - - if ($this->aCarousel !== null) { - if ($this->aCarousel->isModified() || $this->aCarousel->isNew()) { - $affectedRows += $this->aCarousel->save($con); - } - $this->setCarousel($this->aCarousel); - } - if ($this->isNew() || $this->isModified()) { // persist changes if ($this->isNew()) { @@ -896,32 +848,33 @@ abstract class CarouselI18n implements ActiveRecordInterface $modifiedColumns = array(); $index = 0; + $this->modifiedColumns[SitemapPriorityTableMap::ID] = true; + if (null !== $this->id) { + throw new PropelException('Cannot insert a value for auto-increment primary key (' . SitemapPriorityTableMap::ID . ')'); + } // check the columns in natural order for more readable SQL queries - if ($this->isColumnModified(CarouselI18nTableMap::ID)) { + if ($this->isColumnModified(SitemapPriorityTableMap::ID)) { $modifiedColumns[':p' . $index++] = 'ID'; } - if ($this->isColumnModified(CarouselI18nTableMap::LOCALE)) { - $modifiedColumns[':p' . $index++] = 'LOCALE'; + if ($this->isColumnModified(SitemapPriorityTableMap::VALUE)) { + $modifiedColumns[':p' . $index++] = 'VALUE'; } - if ($this->isColumnModified(CarouselI18nTableMap::ALT)) { - $modifiedColumns[':p' . $index++] = 'ALT'; + if ($this->isColumnModified(SitemapPriorityTableMap::SOURCE)) { + $modifiedColumns[':p' . $index++] = 'SOURCE'; } - if ($this->isColumnModified(CarouselI18nTableMap::TITLE)) { - $modifiedColumns[':p' . $index++] = 'TITLE'; + if ($this->isColumnModified(SitemapPriorityTableMap::SOURCE_ID)) { + $modifiedColumns[':p' . $index++] = 'SOURCE_ID'; } - if ($this->isColumnModified(CarouselI18nTableMap::DESCRIPTION)) { - $modifiedColumns[':p' . $index++] = 'DESCRIPTION'; + if ($this->isColumnModified(SitemapPriorityTableMap::CREATED_AT)) { + $modifiedColumns[':p' . $index++] = 'CREATED_AT'; } - if ($this->isColumnModified(CarouselI18nTableMap::CHAPO)) { - $modifiedColumns[':p' . $index++] = 'CHAPO'; - } - if ($this->isColumnModified(CarouselI18nTableMap::POSTSCRIPTUM)) { - $modifiedColumns[':p' . $index++] = 'POSTSCRIPTUM'; + if ($this->isColumnModified(SitemapPriorityTableMap::UPDATED_AT)) { + $modifiedColumns[':p' . $index++] = 'UPDATED_AT'; } $sql = sprintf( - 'INSERT INTO carousel_i18n (%s) VALUES (%s)', + 'INSERT INTO sitemap_priority (%s) VALUES (%s)', implode(', ', $modifiedColumns), implode(', ', array_keys($modifiedColumns)) ); @@ -933,23 +886,20 @@ abstract class CarouselI18n implements ActiveRecordInterface case 'ID': $stmt->bindValue($identifier, $this->id, PDO::PARAM_INT); break; - case 'LOCALE': - $stmt->bindValue($identifier, $this->locale, PDO::PARAM_STR); + case 'VALUE': + $stmt->bindValue($identifier, $this->value, PDO::PARAM_STR); break; - case 'ALT': - $stmt->bindValue($identifier, $this->alt, PDO::PARAM_STR); + case 'SOURCE': + $stmt->bindValue($identifier, $this->source, PDO::PARAM_STR); break; - case 'TITLE': - $stmt->bindValue($identifier, $this->title, PDO::PARAM_STR); + case 'SOURCE_ID': + $stmt->bindValue($identifier, $this->source_id, PDO::PARAM_INT); break; - case 'DESCRIPTION': - $stmt->bindValue($identifier, $this->description, PDO::PARAM_STR); + case 'CREATED_AT': + $stmt->bindValue($identifier, $this->created_at ? $this->created_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR); break; - case 'CHAPO': - $stmt->bindValue($identifier, $this->chapo, PDO::PARAM_STR); - break; - case 'POSTSCRIPTUM': - $stmt->bindValue($identifier, $this->postscriptum, PDO::PARAM_STR); + case 'UPDATED_AT': + $stmt->bindValue($identifier, $this->updated_at ? $this->updated_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR); break; } } @@ -959,6 +909,13 @@ abstract class CarouselI18n implements ActiveRecordInterface throw new PropelException(sprintf('Unable to execute INSERT statement [%s]', $sql), 0, $e); } + try { + $pk = $con->lastInsertId(); + } catch (Exception $e) { + throw new PropelException('Unable to get autoincrement id.', 0, $e); + } + $this->setId($pk); + $this->setNew(false); } @@ -990,7 +947,7 @@ abstract class CarouselI18n implements ActiveRecordInterface */ public function getByName($name, $type = TableMap::TYPE_PHPNAME) { - $pos = CarouselI18nTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); + $pos = SitemapPriorityTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); $field = $this->getByPosition($pos); return $field; @@ -1010,22 +967,19 @@ abstract class CarouselI18n implements ActiveRecordInterface return $this->getId(); break; case 1: - return $this->getLocale(); + return $this->getValue(); break; case 2: - return $this->getAlt(); + return $this->getSource(); break; case 3: - return $this->getTitle(); + return $this->getSourceId(); break; case 4: - return $this->getDescription(); + return $this->getCreatedAt(); break; case 5: - return $this->getChapo(); - break; - case 6: - return $this->getPostscriptum(); + return $this->getUpdatedAt(); break; default: return null; @@ -1044,36 +998,29 @@ abstract class CarouselI18n implements ActiveRecordInterface * Defaults to TableMap::TYPE_PHPNAME. * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy loaded columns. Defaults to TRUE. * @param array $alreadyDumpedObjects List of objects to skip to avoid recursion - * @param boolean $includeForeignObjects (optional) Whether to include hydrated related objects. Default to FALSE. * * @return array an associative array containing the field names (as keys) and field values */ - public function toArray($keyType = TableMap::TYPE_PHPNAME, $includeLazyLoadColumns = true, $alreadyDumpedObjects = array(), $includeForeignObjects = false) + public function toArray($keyType = TableMap::TYPE_PHPNAME, $includeLazyLoadColumns = true, $alreadyDumpedObjects = array()) { - if (isset($alreadyDumpedObjects['CarouselI18n'][serialize($this->getPrimaryKey())])) { + if (isset($alreadyDumpedObjects['SitemapPriority'][$this->getPrimaryKey()])) { return '*RECURSION*'; } - $alreadyDumpedObjects['CarouselI18n'][serialize($this->getPrimaryKey())] = true; - $keys = CarouselI18nTableMap::getFieldNames($keyType); + $alreadyDumpedObjects['SitemapPriority'][$this->getPrimaryKey()] = true; + $keys = SitemapPriorityTableMap::getFieldNames($keyType); $result = array( $keys[0] => $this->getId(), - $keys[1] => $this->getLocale(), - $keys[2] => $this->getAlt(), - $keys[3] => $this->getTitle(), - $keys[4] => $this->getDescription(), - $keys[5] => $this->getChapo(), - $keys[6] => $this->getPostscriptum(), + $keys[1] => $this->getValue(), + $keys[2] => $this->getSource(), + $keys[3] => $this->getSourceId(), + $keys[4] => $this->getCreatedAt(), + $keys[5] => $this->getUpdatedAt(), ); $virtualColumns = $this->virtualColumns; foreach ($virtualColumns as $key => $virtualColumn) { $result[$key] = $virtualColumn; } - if ($includeForeignObjects) { - if (null !== $this->aCarousel) { - $result['Carousel'] = $this->aCarousel->toArray($keyType, $includeLazyLoadColumns, $alreadyDumpedObjects, true); - } - } return $result; } @@ -1091,7 +1038,7 @@ abstract class CarouselI18n implements ActiveRecordInterface */ public function setByName($name, $value, $type = TableMap::TYPE_PHPNAME) { - $pos = CarouselI18nTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); + $pos = SitemapPriorityTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); return $this->setByPosition($pos, $value); } @@ -1111,22 +1058,19 @@ abstract class CarouselI18n implements ActiveRecordInterface $this->setId($value); break; case 1: - $this->setLocale($value); + $this->setValue($value); break; case 2: - $this->setAlt($value); + $this->setSource($value); break; case 3: - $this->setTitle($value); + $this->setSourceId($value); break; case 4: - $this->setDescription($value); + $this->setCreatedAt($value); break; case 5: - $this->setChapo($value); - break; - case 6: - $this->setPostscriptum($value); + $this->setUpdatedAt($value); break; } // switch() } @@ -1150,15 +1094,14 @@ abstract class CarouselI18n implements ActiveRecordInterface */ public function fromArray($arr, $keyType = TableMap::TYPE_PHPNAME) { - $keys = CarouselI18nTableMap::getFieldNames($keyType); + $keys = SitemapPriorityTableMap::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) $this->setId($arr[$keys[0]]); - if (array_key_exists($keys[1], $arr)) $this->setLocale($arr[$keys[1]]); - if (array_key_exists($keys[2], $arr)) $this->setAlt($arr[$keys[2]]); - if (array_key_exists($keys[3], $arr)) $this->setTitle($arr[$keys[3]]); - if (array_key_exists($keys[4], $arr)) $this->setDescription($arr[$keys[4]]); - if (array_key_exists($keys[5], $arr)) $this->setChapo($arr[$keys[5]]); - if (array_key_exists($keys[6], $arr)) $this->setPostscriptum($arr[$keys[6]]); + if (array_key_exists($keys[1], $arr)) $this->setValue($arr[$keys[1]]); + if (array_key_exists($keys[2], $arr)) $this->setSource($arr[$keys[2]]); + if (array_key_exists($keys[3], $arr)) $this->setSourceId($arr[$keys[3]]); + if (array_key_exists($keys[4], $arr)) $this->setCreatedAt($arr[$keys[4]]); + if (array_key_exists($keys[5], $arr)) $this->setUpdatedAt($arr[$keys[5]]); } /** @@ -1168,15 +1111,14 @@ abstract class CarouselI18n implements ActiveRecordInterface */ public function buildCriteria() { - $criteria = new Criteria(CarouselI18nTableMap::DATABASE_NAME); + $criteria = new Criteria(SitemapPriorityTableMap::DATABASE_NAME); - if ($this->isColumnModified(CarouselI18nTableMap::ID)) $criteria->add(CarouselI18nTableMap::ID, $this->id); - if ($this->isColumnModified(CarouselI18nTableMap::LOCALE)) $criteria->add(CarouselI18nTableMap::LOCALE, $this->locale); - if ($this->isColumnModified(CarouselI18nTableMap::ALT)) $criteria->add(CarouselI18nTableMap::ALT, $this->alt); - if ($this->isColumnModified(CarouselI18nTableMap::TITLE)) $criteria->add(CarouselI18nTableMap::TITLE, $this->title); - if ($this->isColumnModified(CarouselI18nTableMap::DESCRIPTION)) $criteria->add(CarouselI18nTableMap::DESCRIPTION, $this->description); - if ($this->isColumnModified(CarouselI18nTableMap::CHAPO)) $criteria->add(CarouselI18nTableMap::CHAPO, $this->chapo); - if ($this->isColumnModified(CarouselI18nTableMap::POSTSCRIPTUM)) $criteria->add(CarouselI18nTableMap::POSTSCRIPTUM, $this->postscriptum); + if ($this->isColumnModified(SitemapPriorityTableMap::ID)) $criteria->add(SitemapPriorityTableMap::ID, $this->id); + if ($this->isColumnModified(SitemapPriorityTableMap::VALUE)) $criteria->add(SitemapPriorityTableMap::VALUE, $this->value); + if ($this->isColumnModified(SitemapPriorityTableMap::SOURCE)) $criteria->add(SitemapPriorityTableMap::SOURCE, $this->source); + if ($this->isColumnModified(SitemapPriorityTableMap::SOURCE_ID)) $criteria->add(SitemapPriorityTableMap::SOURCE_ID, $this->source_id); + if ($this->isColumnModified(SitemapPriorityTableMap::CREATED_AT)) $criteria->add(SitemapPriorityTableMap::CREATED_AT, $this->created_at); + if ($this->isColumnModified(SitemapPriorityTableMap::UPDATED_AT)) $criteria->add(SitemapPriorityTableMap::UPDATED_AT, $this->updated_at); return $criteria; } @@ -1191,37 +1133,30 @@ abstract class CarouselI18n implements ActiveRecordInterface */ public function buildPkeyCriteria() { - $criteria = new Criteria(CarouselI18nTableMap::DATABASE_NAME); - $criteria->add(CarouselI18nTableMap::ID, $this->id); - $criteria->add(CarouselI18nTableMap::LOCALE, $this->locale); + $criteria = new Criteria(SitemapPriorityTableMap::DATABASE_NAME); + $criteria->add(SitemapPriorityTableMap::ID, $this->id); return $criteria; } /** - * Returns the composite primary key for this object. - * The array elements will be in same order as specified in XML. - * @return array + * Returns the primary key for this object (row). + * @return int */ public function getPrimaryKey() { - $pks = array(); - $pks[0] = $this->getId(); - $pks[1] = $this->getLocale(); - - return $pks; + return $this->getId(); } /** - * Set the [composite] primary key. + * Generic method to set the primary key (id column). * - * @param array $keys The elements of the composite key (order must match the order in XML file). + * @param int $key Primary key. * @return void */ - public function setPrimaryKey($keys) + public function setPrimaryKey($key) { - $this->setId($keys[0]); - $this->setLocale($keys[1]); + $this->setId($key); } /** @@ -1231,7 +1166,7 @@ abstract class CarouselI18n implements ActiveRecordInterface public function isPrimaryKeyNull() { - return (null === $this->getId()) && (null === $this->getLocale()); + return null === $this->getId(); } /** @@ -1240,22 +1175,21 @@ abstract class CarouselI18n implements ActiveRecordInterface * If desired, this method can also make copies of all associated (fkey referrers) * objects. * - * @param object $copyObj An object of \Carousel\Model\CarouselI18n (or compatible) type. + * @param object $copyObj An object of \Sitemap\Model\SitemapPriority (or compatible) type. * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. * @param boolean $makeNew Whether to reset autoincrement PKs and make the object new. * @throws PropelException */ public function copyInto($copyObj, $deepCopy = false, $makeNew = true) { - $copyObj->setId($this->getId()); - $copyObj->setLocale($this->getLocale()); - $copyObj->setAlt($this->getAlt()); - $copyObj->setTitle($this->getTitle()); - $copyObj->setDescription($this->getDescription()); - $copyObj->setChapo($this->getChapo()); - $copyObj->setPostscriptum($this->getPostscriptum()); + $copyObj->setValue($this->getValue()); + $copyObj->setSource($this->getSource()); + $copyObj->setSourceId($this->getSourceId()); + $copyObj->setCreatedAt($this->getCreatedAt()); + $copyObj->setUpdatedAt($this->getUpdatedAt()); if ($makeNew) { $copyObj->setNew(true); + $copyObj->setId(NULL); // this is a auto-increment column, so set to default value } } @@ -1268,7 +1202,7 @@ abstract class CarouselI18n implements ActiveRecordInterface * objects. * * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. - * @return \Carousel\Model\CarouselI18n Clone of current object. + * @return \Sitemap\Model\SitemapPriority Clone of current object. * @throws PropelException */ public function copy($deepCopy = false) @@ -1281,72 +1215,19 @@ abstract class CarouselI18n implements ActiveRecordInterface return $copyObj; } - /** - * Declares an association between this object and a ChildCarousel object. - * - * @param ChildCarousel $v - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - * @throws PropelException - */ - public function setCarousel(ChildCarousel $v = null) - { - if ($v === null) { - $this->setId(NULL); - } else { - $this->setId($v->getId()); - } - - $this->aCarousel = $v; - - // Add binding for other direction of this n:n relationship. - // If this object has already been added to the ChildCarousel object, it will not be re-added. - if ($v !== null) { - $v->addCarouselI18n($this); - } - - - return $this; - } - - - /** - * Get the associated ChildCarousel object - * - * @param ConnectionInterface $con Optional Connection object. - * @return ChildCarousel The associated ChildCarousel object. - * @throws PropelException - */ - public function getCarousel(ConnectionInterface $con = null) - { - if ($this->aCarousel === null && ($this->id !== null)) { - $this->aCarousel = ChildCarouselQuery::create()->findPk($this->id, $con); - /* The following can be used additionally to - guarantee the related object contains a reference - to this object. This level of coupling may, however, be - undesirable since it could result in an only partially populated collection - in the referenced object. - $this->aCarousel->addCarouselI18ns($this); - */ - } - - return $this->aCarousel; - } - /** * Clears the current object and sets all attributes to their default values */ public function clear() { $this->id = null; - $this->locale = null; - $this->alt = null; - $this->title = null; - $this->description = null; - $this->chapo = null; - $this->postscriptum = null; + $this->value = null; + $this->source = null; + $this->source_id = null; + $this->created_at = null; + $this->updated_at = null; $this->alreadyInSave = false; $this->clearAllReferences(); - $this->applyDefaultValues(); $this->resetModified(); $this->setNew(true); $this->setDeleted(false); @@ -1366,7 +1247,6 @@ abstract class CarouselI18n implements ActiveRecordInterface if ($deep) { } // if ($deep) - $this->aCarousel = null; } /** @@ -1376,7 +1256,21 @@ abstract class CarouselI18n implements ActiveRecordInterface */ public function __toString() { - return (string) $this->exportTo(CarouselI18nTableMap::DEFAULT_STRING_FORMAT); + return (string) $this->exportTo(SitemapPriorityTableMap::DEFAULT_STRING_FORMAT); + } + + // timestampable behavior + + /** + * Mark the current object so that the update date doesn't get updated during next save + * + * @return ChildSitemapPriority The current object (for fluent API support) + */ + public function keepUpdateDateUnchanged() + { + $this->modifiedColumns[SitemapPriorityTableMap::UPDATED_AT] = true; + + return $this; } /** diff --git a/local/modules/Sitemap/Model/Base/SitemapPriorityQuery.php b/local/modules/Sitemap/Model/Base/SitemapPriorityQuery.php new file mode 100644 index 00000000..ce11a3f4 --- /dev/null +++ b/local/modules/Sitemap/Model/Base/SitemapPriorityQuery.php @@ -0,0 +1,627 @@ +setModelAlias($modelAlias); + } + if ($criteria instanceof Criteria) { + $query->mergeWith($criteria); + } + + return $query; + } + + /** + * Find object by primary key. + * Propel uses the instance pool to skip the database if the object exists. + * Go fast if the query is untouched. + * + * + * $obj = $c->findPk(12, $con); + * + * + * @param mixed $key Primary key to use for the query + * @param ConnectionInterface $con an optional connection object + * + * @return ChildSitemapPriority|array|mixed the result, formatted by the current formatter + */ + public function findPk($key, $con = null) + { + if ($key === null) { + return null; + } + if ((null !== ($obj = SitemapPriorityTableMap::getInstanceFromPool((string) $key))) && !$this->formatter) { + // the object is already in the instance pool + return $obj; + } + if ($con === null) { + $con = Propel::getServiceContainer()->getReadConnection(SitemapPriorityTableMap::DATABASE_NAME); + } + $this->basePreSelect($con); + if ($this->formatter || $this->modelAlias || $this->with || $this->select + || $this->selectColumns || $this->asColumns || $this->selectModifiers + || $this->map || $this->having || $this->joins) { + return $this->findPkComplex($key, $con); + } else { + return $this->findPkSimple($key, $con); + } + } + + /** + * Find object by primary key using raw SQL to go fast. + * Bypass doSelect() and the object formatter by using generated code. + * + * @param mixed $key Primary key to use for the query + * @param ConnectionInterface $con A connection object + * + * @return ChildSitemapPriority A model object, or null if the key is not found + */ + protected function findPkSimple($key, $con) + { + $sql = 'SELECT ID, VALUE, SOURCE, SOURCE_ID, CREATED_AT, UPDATED_AT FROM sitemap_priority WHERE ID = :p0'; + try { + $stmt = $con->prepare($sql); + $stmt->bindValue(':p0', $key, PDO::PARAM_INT); + $stmt->execute(); + } catch (Exception $e) { + Propel::log($e->getMessage(), Propel::LOG_ERR); + throw new PropelException(sprintf('Unable to execute SELECT statement [%s]', $sql), 0, $e); + } + $obj = null; + if ($row = $stmt->fetch(\PDO::FETCH_NUM)) { + $obj = new ChildSitemapPriority(); + $obj->hydrate($row); + SitemapPriorityTableMap::addInstanceToPool($obj, (string) $key); + } + $stmt->closeCursor(); + + return $obj; + } + + /** + * Find object by primary key. + * + * @param mixed $key Primary key to use for the query + * @param ConnectionInterface $con A connection object + * + * @return ChildSitemapPriority|array|mixed the result, formatted by the current formatter + */ + protected function findPkComplex($key, $con) + { + // As the query uses a PK condition, no limit(1) is necessary. + $criteria = $this->isKeepQuery() ? clone $this : $this; + $dataFetcher = $criteria + ->filterByPrimaryKey($key) + ->doSelect($con); + + return $criteria->getFormatter()->init($criteria)->formatOne($dataFetcher); + } + + /** + * Find objects by primary key + * + * $objs = $c->findPks(array(12, 56, 832), $con); + * + * @param array $keys Primary keys to use for the query + * @param ConnectionInterface $con an optional connection object + * + * @return ObjectCollection|array|mixed the list of results, formatted by the current formatter + */ + public function findPks($keys, $con = null) + { + if (null === $con) { + $con = Propel::getServiceContainer()->getReadConnection($this->getDbName()); + } + $this->basePreSelect($con); + $criteria = $this->isKeepQuery() ? clone $this : $this; + $dataFetcher = $criteria + ->filterByPrimaryKeys($keys) + ->doSelect($con); + + return $criteria->getFormatter()->init($criteria)->format($dataFetcher); + } + + /** + * Filter the query by primary key + * + * @param mixed $key Primary key to use for the query + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function filterByPrimaryKey($key) + { + + return $this->addUsingAlias(SitemapPriorityTableMap::ID, $key, Criteria::EQUAL); + } + + /** + * Filter the query by a list of primary keys + * + * @param array $keys The list of primary key to use for the query + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function filterByPrimaryKeys($keys) + { + + return $this->addUsingAlias(SitemapPriorityTableMap::ID, $keys, Criteria::IN); + } + + /** + * Filter the query on the id column + * + * Example usage: + * + * $query->filterById(1234); // WHERE id = 1234 + * $query->filterById(array(12, 34)); // WHERE id IN (12, 34) + * $query->filterById(array('min' => 12)); // WHERE id > 12 + * + * + * @param mixed $id The value to use as filter. + * Use scalar values for equality. + * Use array values for in_array() equivalent. + * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function filterById($id = null, $comparison = null) + { + if (is_array($id)) { + $useMinMax = false; + if (isset($id['min'])) { + $this->addUsingAlias(SitemapPriorityTableMap::ID, $id['min'], Criteria::GREATER_EQUAL); + $useMinMax = true; + } + if (isset($id['max'])) { + $this->addUsingAlias(SitemapPriorityTableMap::ID, $id['max'], Criteria::LESS_EQUAL); + $useMinMax = true; + } + if ($useMinMax) { + return $this; + } + if (null === $comparison) { + $comparison = Criteria::IN; + } + } + + return $this->addUsingAlias(SitemapPriorityTableMap::ID, $id, $comparison); + } + + /** + * Filter the query on the value column + * + * Example usage: + * + * $query->filterByValue(1234); // WHERE value = 1234 + * $query->filterByValue(array(12, 34)); // WHERE value IN (12, 34) + * $query->filterByValue(array('min' => 12)); // WHERE value > 12 + * + * + * @param mixed $value The value to use as filter. + * Use scalar values for equality. + * Use array values for in_array() equivalent. + * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function filterByValue($value = null, $comparison = null) + { + if (is_array($value)) { + $useMinMax = false; + if (isset($value['min'])) { + $this->addUsingAlias(SitemapPriorityTableMap::VALUE, $value['min'], Criteria::GREATER_EQUAL); + $useMinMax = true; + } + if (isset($value['max'])) { + $this->addUsingAlias(SitemapPriorityTableMap::VALUE, $value['max'], Criteria::LESS_EQUAL); + $useMinMax = true; + } + if ($useMinMax) { + return $this; + } + if (null === $comparison) { + $comparison = Criteria::IN; + } + } + + return $this->addUsingAlias(SitemapPriorityTableMap::VALUE, $value, $comparison); + } + + /** + * Filter the query on the source column + * + * Example usage: + * + * $query->filterBySource('fooValue'); // WHERE source = 'fooValue' + * $query->filterBySource('%fooValue%'); // WHERE source LIKE '%fooValue%' + * + * + * @param string $source The value to use as filter. + * Accepts wildcards (* and % trigger a LIKE) + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function filterBySource($source = null, $comparison = null) + { + if (null === $comparison) { + if (is_array($source)) { + $comparison = Criteria::IN; + } elseif (preg_match('/[\%\*]/', $source)) { + $source = str_replace('*', '%', $source); + $comparison = Criteria::LIKE; + } + } + + return $this->addUsingAlias(SitemapPriorityTableMap::SOURCE, $source, $comparison); + } + + /** + * Filter the query on the source_id column + * + * Example usage: + * + * $query->filterBySourceId(1234); // WHERE source_id = 1234 + * $query->filterBySourceId(array(12, 34)); // WHERE source_id IN (12, 34) + * $query->filterBySourceId(array('min' => 12)); // WHERE source_id > 12 + * + * + * @param mixed $sourceId The value to use as filter. + * Use scalar values for equality. + * Use array values for in_array() equivalent. + * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function filterBySourceId($sourceId = null, $comparison = null) + { + if (is_array($sourceId)) { + $useMinMax = false; + if (isset($sourceId['min'])) { + $this->addUsingAlias(SitemapPriorityTableMap::SOURCE_ID, $sourceId['min'], Criteria::GREATER_EQUAL); + $useMinMax = true; + } + if (isset($sourceId['max'])) { + $this->addUsingAlias(SitemapPriorityTableMap::SOURCE_ID, $sourceId['max'], Criteria::LESS_EQUAL); + $useMinMax = true; + } + if ($useMinMax) { + return $this; + } + if (null === $comparison) { + $comparison = Criteria::IN; + } + } + + return $this->addUsingAlias(SitemapPriorityTableMap::SOURCE_ID, $sourceId, $comparison); + } + + /** + * Filter the query on the created_at column + * + * Example usage: + * + * $query->filterByCreatedAt('2011-03-14'); // WHERE created_at = '2011-03-14' + * $query->filterByCreatedAt('now'); // WHERE created_at = '2011-03-14' + * $query->filterByCreatedAt(array('max' => 'yesterday')); // WHERE created_at > '2011-03-13' + * + * + * @param mixed $createdAt The value to use as filter. + * Values can be integers (unix timestamps), DateTime objects, or strings. + * Empty strings are treated as NULL. + * Use scalar values for equality. + * Use array values for in_array() equivalent. + * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function filterByCreatedAt($createdAt = null, $comparison = null) + { + if (is_array($createdAt)) { + $useMinMax = false; + if (isset($createdAt['min'])) { + $this->addUsingAlias(SitemapPriorityTableMap::CREATED_AT, $createdAt['min'], Criteria::GREATER_EQUAL); + $useMinMax = true; + } + if (isset($createdAt['max'])) { + $this->addUsingAlias(SitemapPriorityTableMap::CREATED_AT, $createdAt['max'], Criteria::LESS_EQUAL); + $useMinMax = true; + } + if ($useMinMax) { + return $this; + } + if (null === $comparison) { + $comparison = Criteria::IN; + } + } + + return $this->addUsingAlias(SitemapPriorityTableMap::CREATED_AT, $createdAt, $comparison); + } + + /** + * Filter the query on the updated_at column + * + * Example usage: + * + * $query->filterByUpdatedAt('2011-03-14'); // WHERE updated_at = '2011-03-14' + * $query->filterByUpdatedAt('now'); // WHERE updated_at = '2011-03-14' + * $query->filterByUpdatedAt(array('max' => 'yesterday')); // WHERE updated_at > '2011-03-13' + * + * + * @param mixed $updatedAt The value to use as filter. + * Values can be integers (unix timestamps), DateTime objects, or strings. + * Empty strings are treated as NULL. + * Use scalar values for equality. + * Use array values for in_array() equivalent. + * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function filterByUpdatedAt($updatedAt = null, $comparison = null) + { + if (is_array($updatedAt)) { + $useMinMax = false; + if (isset($updatedAt['min'])) { + $this->addUsingAlias(SitemapPriorityTableMap::UPDATED_AT, $updatedAt['min'], Criteria::GREATER_EQUAL); + $useMinMax = true; + } + if (isset($updatedAt['max'])) { + $this->addUsingAlias(SitemapPriorityTableMap::UPDATED_AT, $updatedAt['max'], Criteria::LESS_EQUAL); + $useMinMax = true; + } + if ($useMinMax) { + return $this; + } + if (null === $comparison) { + $comparison = Criteria::IN; + } + } + + return $this->addUsingAlias(SitemapPriorityTableMap::UPDATED_AT, $updatedAt, $comparison); + } + + /** + * Exclude object from result + * + * @param ChildSitemapPriority $sitemapPriority Object to remove from the list of results + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function prune($sitemapPriority = null) + { + if ($sitemapPriority) { + $this->addUsingAlias(SitemapPriorityTableMap::ID, $sitemapPriority->getId(), Criteria::NOT_EQUAL); + } + + return $this; + } + + /** + * Deletes all rows from the sitemap_priority table. + * + * @param ConnectionInterface $con the connection to use + * @return int The number of affected rows (if supported by underlying database driver). + */ + public function doDeleteAll(ConnectionInterface $con = null) + { + if (null === $con) { + $con = Propel::getServiceContainer()->getWriteConnection(SitemapPriorityTableMap::DATABASE_NAME); + } + $affectedRows = 0; // initialize var to track total num of affected rows + try { + // use transaction because $criteria could contain info + // for more than one table or we could emulating ON DELETE CASCADE, etc. + $con->beginTransaction(); + $affectedRows += parent::doDeleteAll($con); + // Because this db requires some delete cascade/set null emulation, we have to + // clear the cached instance *after* the emulation has happened (since + // instances get re-added by the select statement contained therein). + SitemapPriorityTableMap::clearInstancePool(); + SitemapPriorityTableMap::clearRelatedInstancePool(); + + $con->commit(); + } catch (PropelException $e) { + $con->rollBack(); + throw $e; + } + + return $affectedRows; + } + + /** + * Performs a DELETE on the database, given a ChildSitemapPriority or Criteria object OR a primary key value. + * + * @param mixed $values Criteria or ChildSitemapPriority object or primary key or array of primary keys + * which is used to create the DELETE statement + * @param ConnectionInterface $con the connection to use + * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows + * if supported by native driver or if emulated using Propel. + * @throws PropelException Any exceptions caught during processing will be + * rethrown wrapped into a PropelException. + */ + public function delete(ConnectionInterface $con = null) + { + if (null === $con) { + $con = Propel::getServiceContainer()->getWriteConnection(SitemapPriorityTableMap::DATABASE_NAME); + } + + $criteria = $this; + + // Set the correct dbName + $criteria->setDbName(SitemapPriorityTableMap::DATABASE_NAME); + + $affectedRows = 0; // initialize var to track total num of affected rows + + try { + // use transaction because $criteria could contain info + // for more than one table or we could emulating ON DELETE CASCADE, etc. + $con->beginTransaction(); + + + SitemapPriorityTableMap::removeInstanceFromPool($criteria); + + $affectedRows += ModelCriteria::delete($con); + SitemapPriorityTableMap::clearRelatedInstancePool(); + $con->commit(); + + return $affectedRows; + } catch (PropelException $e) { + $con->rollBack(); + throw $e; + } + } + + // timestampable behavior + + /** + * Filter by the latest updated + * + * @param int $nbDays Maximum age of the latest update in days + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function recentlyUpdated($nbDays = 7) + { + return $this->addUsingAlias(SitemapPriorityTableMap::UPDATED_AT, time() - $nbDays * 24 * 60 * 60, Criteria::GREATER_EQUAL); + } + + /** + * Filter by the latest created + * + * @param int $nbDays Maximum age of in days + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function recentlyCreated($nbDays = 7) + { + return $this->addUsingAlias(SitemapPriorityTableMap::CREATED_AT, time() - $nbDays * 24 * 60 * 60, Criteria::GREATER_EQUAL); + } + + /** + * Order by update date desc + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function lastUpdatedFirst() + { + return $this->addDescendingOrderByColumn(SitemapPriorityTableMap::UPDATED_AT); + } + + /** + * Order by update date asc + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function firstUpdatedFirst() + { + return $this->addAscendingOrderByColumn(SitemapPriorityTableMap::UPDATED_AT); + } + + /** + * Order by create date desc + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function lastCreatedFirst() + { + return $this->addDescendingOrderByColumn(SitemapPriorityTableMap::CREATED_AT); + } + + /** + * Order by create date asc + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function firstCreatedFirst() + { + return $this->addAscendingOrderByColumn(SitemapPriorityTableMap::CREATED_AT); + } + +} // SitemapPriorityQuery diff --git a/local/modules/modules/Carousel/Model/Map/CarouselTableMap.php b/local/modules/Sitemap/Model/Map/SitemapPriorityTableMap.php similarity index 65% rename from local/modules/modules/Carousel/Model/Map/CarouselTableMap.php rename to local/modules/Sitemap/Model/Map/SitemapPriorityTableMap.php index ca7b8883..099fbb8b 100644 --- a/local/modules/modules/Carousel/Model/Map/CarouselTableMap.php +++ b/local/modules/Sitemap/Model/Map/SitemapPriorityTableMap.php @@ -1,9 +1,7 @@ array('Id', 'File', 'Position', 'Url', 'CreatedAt', 'UpdatedAt', ), - self::TYPE_STUDLYPHPNAME => array('id', 'file', 'position', 'url', 'createdAt', 'updatedAt', ), - self::TYPE_COLNAME => array(CarouselTableMap::ID, CarouselTableMap::FILE, CarouselTableMap::POSITION, CarouselTableMap::URL, CarouselTableMap::CREATED_AT, CarouselTableMap::UPDATED_AT, ), - self::TYPE_RAW_COLNAME => array('ID', 'FILE', 'POSITION', 'URL', 'CREATED_AT', 'UPDATED_AT', ), - self::TYPE_FIELDNAME => array('id', 'file', 'position', 'url', 'created_at', 'updated_at', ), + self::TYPE_PHPNAME => array('Id', 'Value', 'Source', 'SourceId', 'CreatedAt', 'UpdatedAt', ), + self::TYPE_STUDLYPHPNAME => array('id', 'value', 'source', 'sourceId', 'createdAt', 'updatedAt', ), + self::TYPE_COLNAME => array(SitemapPriorityTableMap::ID, SitemapPriorityTableMap::VALUE, SitemapPriorityTableMap::SOURCE, SitemapPriorityTableMap::SOURCE_ID, SitemapPriorityTableMap::CREATED_AT, SitemapPriorityTableMap::UPDATED_AT, ), + self::TYPE_RAW_COLNAME => array('ID', 'VALUE', 'SOURCE', 'SOURCE_ID', 'CREATED_AT', 'UPDATED_AT', ), + self::TYPE_FIELDNAME => array('id', 'value', 'source', 'source_id', 'created_at', 'updated_at', ), self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, ) ); @@ -136,11 +127,11 @@ class CarouselTableMap extends TableMap * e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0 */ protected static $fieldKeys = array ( - self::TYPE_PHPNAME => array('Id' => 0, 'File' => 1, 'Position' => 2, 'Url' => 3, 'CreatedAt' => 4, 'UpdatedAt' => 5, ), - self::TYPE_STUDLYPHPNAME => array('id' => 0, 'file' => 1, 'position' => 2, 'url' => 3, 'createdAt' => 4, 'updatedAt' => 5, ), - self::TYPE_COLNAME => array(CarouselTableMap::ID => 0, CarouselTableMap::FILE => 1, CarouselTableMap::POSITION => 2, CarouselTableMap::URL => 3, CarouselTableMap::CREATED_AT => 4, CarouselTableMap::UPDATED_AT => 5, ), - self::TYPE_RAW_COLNAME => array('ID' => 0, 'FILE' => 1, 'POSITION' => 2, 'URL' => 3, 'CREATED_AT' => 4, 'UPDATED_AT' => 5, ), - self::TYPE_FIELDNAME => array('id' => 0, 'file' => 1, 'position' => 2, 'url' => 3, 'created_at' => 4, 'updated_at' => 5, ), + self::TYPE_PHPNAME => array('Id' => 0, 'Value' => 1, 'Source' => 2, 'SourceId' => 3, 'CreatedAt' => 4, 'UpdatedAt' => 5, ), + self::TYPE_STUDLYPHPNAME => array('id' => 0, 'value' => 1, 'source' => 2, 'sourceId' => 3, 'createdAt' => 4, 'updatedAt' => 5, ), + self::TYPE_COLNAME => array(SitemapPriorityTableMap::ID => 0, SitemapPriorityTableMap::VALUE => 1, SitemapPriorityTableMap::SOURCE => 2, SitemapPriorityTableMap::SOURCE_ID => 3, SitemapPriorityTableMap::CREATED_AT => 4, SitemapPriorityTableMap::UPDATED_AT => 5, ), + self::TYPE_RAW_COLNAME => array('ID' => 0, 'VALUE' => 1, 'SOURCE' => 2, 'SOURCE_ID' => 3, 'CREATED_AT' => 4, 'UPDATED_AT' => 5, ), + self::TYPE_FIELDNAME => array('id' => 0, 'value' => 1, 'source' => 2, 'source_id' => 3, 'created_at' => 4, 'updated_at' => 5, ), self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, ) ); @@ -154,16 +145,16 @@ class CarouselTableMap extends TableMap public function initialize() { // attributes - $this->setName('carousel'); - $this->setPhpName('Carousel'); - $this->setClassName('\\Carousel\\Model\\Carousel'); - $this->setPackage('Carousel.Model'); + $this->setName('sitemap_priority'); + $this->setPhpName('SitemapPriority'); + $this->setClassName('\\Sitemap\\Model\\SitemapPriority'); + $this->setPackage('Sitemap.Model'); $this->setUseIdGenerator(true); // columns $this->addPrimaryKey('ID', 'Id', 'INTEGER', true, null, null); - $this->addColumn('FILE', 'File', 'VARCHAR', false, 255, null); - $this->addColumn('POSITION', 'Position', 'INTEGER', false, null, null); - $this->addColumn('URL', 'Url', 'VARCHAR', false, 255, null); + $this->addColumn('VALUE', 'Value', 'FLOAT', false, null, null); + $this->addColumn('SOURCE', 'Source', 'VARCHAR', false, 64, null); + $this->addColumn('SOURCE_ID', 'SourceId', 'INTEGER', false, null, null); $this->addColumn('CREATED_AT', 'CreatedAt', 'TIMESTAMP', false, null, null); $this->addColumn('UPDATED_AT', 'UpdatedAt', 'TIMESTAMP', false, null, null); } // initialize() @@ -173,7 +164,6 @@ class CarouselTableMap extends TableMap */ public function buildRelations() { - $this->addRelation('CarouselI18n', '\\Carousel\\Model\\CarouselI18n', RelationMap::ONE_TO_MANY, array('id' => 'id', ), 'CASCADE', null, 'CarouselI18ns'); } // buildRelations() /** @@ -186,18 +176,8 @@ class CarouselTableMap extends TableMap { return array( 'timestampable' => array('create_column' => 'created_at', 'update_column' => 'updated_at', ), - 'i18n' => array('i18n_table' => '%TABLE%_i18n', 'i18n_phpname' => '%PHPNAME%I18n', 'i18n_columns' => 'alt, title, description, chapo, postscriptum', 'locale_column' => 'locale', 'locale_length' => '5', 'default_locale' => '', 'locale_alias' => '', ), ); } // getBehaviors() - /** - * Method to invalidate the instance pool of all tables related to carousel * by a foreign key with ON DELETE CASCADE - */ - public static function clearRelatedInstancePool() - { - // Invalidate objects in ".$this->getClassNameFromBuilder($joinedTableTableMapBuilder)." instance pool, - // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. - CarouselI18nTableMap::clearInstancePool(); - } /** * Retrieves a string version of the primary key from the DB resultset row that can be used to uniquely identify a row in this table. @@ -255,7 +235,7 @@ class CarouselTableMap extends TableMap */ public static function getOMClass($withPrefix = true) { - return $withPrefix ? CarouselTableMap::CLASS_DEFAULT : CarouselTableMap::OM_CLASS; + return $withPrefix ? SitemapPriorityTableMap::CLASS_DEFAULT : SitemapPriorityTableMap::OM_CLASS; } /** @@ -269,21 +249,21 @@ class CarouselTableMap extends TableMap * * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. - * @return array (Carousel object, last column rank) + * @return array (SitemapPriority object, last column rank) */ public static function populateObject($row, $offset = 0, $indexType = TableMap::TYPE_NUM) { - $key = CarouselTableMap::getPrimaryKeyHashFromRow($row, $offset, $indexType); - if (null !== ($obj = CarouselTableMap::getInstanceFromPool($key))) { + $key = SitemapPriorityTableMap::getPrimaryKeyHashFromRow($row, $offset, $indexType); + if (null !== ($obj = SitemapPriorityTableMap::getInstanceFromPool($key))) { // We no longer rehydrate the object, since this can cause data loss. // See http://www.propelorm.org/ticket/509 // $obj->hydrate($row, $offset, true); // rehydrate - $col = $offset + CarouselTableMap::NUM_HYDRATE_COLUMNS; + $col = $offset + SitemapPriorityTableMap::NUM_HYDRATE_COLUMNS; } else { - $cls = CarouselTableMap::OM_CLASS; + $cls = SitemapPriorityTableMap::OM_CLASS; $obj = new $cls(); $col = $obj->hydrate($row, $offset, false, $indexType); - CarouselTableMap::addInstanceToPool($obj, $key); + SitemapPriorityTableMap::addInstanceToPool($obj, $key); } return array($obj, $col); @@ -306,8 +286,8 @@ class CarouselTableMap extends TableMap $cls = static::getOMClass(false); // populate the object(s) while ($row = $dataFetcher->fetch()) { - $key = CarouselTableMap::getPrimaryKeyHashFromRow($row, 0, $dataFetcher->getIndexType()); - if (null !== ($obj = CarouselTableMap::getInstanceFromPool($key))) { + $key = SitemapPriorityTableMap::getPrimaryKeyHashFromRow($row, 0, $dataFetcher->getIndexType()); + if (null !== ($obj = SitemapPriorityTableMap::getInstanceFromPool($key))) { // We no longer rehydrate the object, since this can cause data loss. // See http://www.propelorm.org/ticket/509 // $obj->hydrate($row, 0, true); // rehydrate @@ -316,7 +296,7 @@ class CarouselTableMap extends TableMap $obj = new $cls(); $obj->hydrate($row); $results[] = $obj; - CarouselTableMap::addInstanceToPool($obj, $key); + SitemapPriorityTableMap::addInstanceToPool($obj, $key); } // if key exists } @@ -337,17 +317,17 @@ class CarouselTableMap extends TableMap public static function addSelectColumns(Criteria $criteria, $alias = null) { if (null === $alias) { - $criteria->addSelectColumn(CarouselTableMap::ID); - $criteria->addSelectColumn(CarouselTableMap::FILE); - $criteria->addSelectColumn(CarouselTableMap::POSITION); - $criteria->addSelectColumn(CarouselTableMap::URL); - $criteria->addSelectColumn(CarouselTableMap::CREATED_AT); - $criteria->addSelectColumn(CarouselTableMap::UPDATED_AT); + $criteria->addSelectColumn(SitemapPriorityTableMap::ID); + $criteria->addSelectColumn(SitemapPriorityTableMap::VALUE); + $criteria->addSelectColumn(SitemapPriorityTableMap::SOURCE); + $criteria->addSelectColumn(SitemapPriorityTableMap::SOURCE_ID); + $criteria->addSelectColumn(SitemapPriorityTableMap::CREATED_AT); + $criteria->addSelectColumn(SitemapPriorityTableMap::UPDATED_AT); } else { $criteria->addSelectColumn($alias . '.ID'); - $criteria->addSelectColumn($alias . '.FILE'); - $criteria->addSelectColumn($alias . '.POSITION'); - $criteria->addSelectColumn($alias . '.URL'); + $criteria->addSelectColumn($alias . '.VALUE'); + $criteria->addSelectColumn($alias . '.SOURCE'); + $criteria->addSelectColumn($alias . '.SOURCE_ID'); $criteria->addSelectColumn($alias . '.CREATED_AT'); $criteria->addSelectColumn($alias . '.UPDATED_AT'); } @@ -362,7 +342,7 @@ class CarouselTableMap extends TableMap */ public static function getTableMap() { - return Propel::getServiceContainer()->getDatabaseMap(CarouselTableMap::DATABASE_NAME)->getTable(CarouselTableMap::TABLE_NAME); + return Propel::getServiceContainer()->getDatabaseMap(SitemapPriorityTableMap::DATABASE_NAME)->getTable(SitemapPriorityTableMap::TABLE_NAME); } /** @@ -370,16 +350,16 @@ class CarouselTableMap extends TableMap */ public static function buildTableMap() { - $dbMap = Propel::getServiceContainer()->getDatabaseMap(CarouselTableMap::DATABASE_NAME); - if (!$dbMap->hasTable(CarouselTableMap::TABLE_NAME)) { - $dbMap->addTableObject(new CarouselTableMap()); + $dbMap = Propel::getServiceContainer()->getDatabaseMap(SitemapPriorityTableMap::DATABASE_NAME); + if (!$dbMap->hasTable(SitemapPriorityTableMap::TABLE_NAME)) { + $dbMap->addTableObject(new SitemapPriorityTableMap()); } } /** - * Performs a DELETE on the database, given a Carousel or Criteria object OR a primary key value. + * Performs a DELETE on the database, given a SitemapPriority or Criteria object OR a primary key value. * - * @param mixed $values Criteria or Carousel object or primary key or array of primary keys + * @param mixed $values Criteria or SitemapPriority object or primary key or array of primary keys * which is used to create the DELETE statement * @param ConnectionInterface $con the connection to use * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows @@ -390,25 +370,25 @@ class CarouselTableMap extends TableMap public static function doDelete($values, ConnectionInterface $con = null) { if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); + $con = Propel::getServiceContainer()->getWriteConnection(SitemapPriorityTableMap::DATABASE_NAME); } if ($values instanceof Criteria) { // rename for clarity $criteria = $values; - } elseif ($values instanceof \Carousel\Model\Carousel) { // it's a model object + } elseif ($values instanceof \Sitemap\Model\SitemapPriority) { // it's a model object // create criteria based on pk values $criteria = $values->buildPkeyCriteria(); } else { // it's a primary key, or an array of pks - $criteria = new Criteria(CarouselTableMap::DATABASE_NAME); - $criteria->add(CarouselTableMap::ID, (array) $values, Criteria::IN); + $criteria = new Criteria(SitemapPriorityTableMap::DATABASE_NAME); + $criteria->add(SitemapPriorityTableMap::ID, (array) $values, Criteria::IN); } - $query = CarouselQuery::create()->mergeWith($criteria); + $query = SitemapPriorityQuery::create()->mergeWith($criteria); - if ($values instanceof Criteria) { CarouselTableMap::clearInstancePool(); + if ($values instanceof Criteria) { SitemapPriorityTableMap::clearInstancePool(); } elseif (!is_object($values)) { // it's a primary key, or an array of pks - foreach ((array) $values as $singleval) { CarouselTableMap::removeInstanceFromPool($singleval); + foreach ((array) $values as $singleval) { SitemapPriorityTableMap::removeInstanceFromPool($singleval); } } @@ -416,20 +396,20 @@ class CarouselTableMap extends TableMap } /** - * Deletes all rows from the carousel table. + * Deletes all rows from the sitemap_priority table. * * @param ConnectionInterface $con the connection to use * @return int The number of affected rows (if supported by underlying database driver). */ public static function doDeleteAll(ConnectionInterface $con = null) { - return CarouselQuery::create()->doDeleteAll($con); + return SitemapPriorityQuery::create()->doDeleteAll($con); } /** - * Performs an INSERT on the database, given a Carousel or Criteria object. + * Performs an INSERT on the database, given a SitemapPriority or Criteria object. * - * @param mixed $criteria Criteria or Carousel object containing data that is used to create the INSERT statement. + * @param mixed $criteria Criteria or SitemapPriority object containing data that is used to create the INSERT statement. * @param ConnectionInterface $con the ConnectionInterface connection to use * @return mixed The new primary key. * @throws PropelException Any exceptions caught during processing will be @@ -438,22 +418,22 @@ class CarouselTableMap extends TableMap public static function doInsert($criteria, ConnectionInterface $con = null) { if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); + $con = Propel::getServiceContainer()->getWriteConnection(SitemapPriorityTableMap::DATABASE_NAME); } if ($criteria instanceof Criteria) { $criteria = clone $criteria; // rename for clarity } else { - $criteria = $criteria->buildCriteria(); // build Criteria from Carousel object + $criteria = $criteria->buildCriteria(); // build Criteria from SitemapPriority object } - if ($criteria->containsKey(CarouselTableMap::ID) && $criteria->keyContainsValue(CarouselTableMap::ID) ) { - throw new PropelException('Cannot insert a value for auto-increment primary key ('.CarouselTableMap::ID.')'); + if ($criteria->containsKey(SitemapPriorityTableMap::ID) && $criteria->keyContainsValue(SitemapPriorityTableMap::ID) ) { + throw new PropelException('Cannot insert a value for auto-increment primary key ('.SitemapPriorityTableMap::ID.')'); } // Set the correct dbName - $query = CarouselQuery::create()->mergeWith($criteria); + $query = SitemapPriorityQuery::create()->mergeWith($criteria); try { // use transaction because $criteria could contain info @@ -469,7 +449,7 @@ class CarouselTableMap extends TableMap return $pk; } -} // CarouselTableMap +} // SitemapPriorityTableMap // This is the static code needed to register the TableMap for this table with the main Propel class. // -CarouselTableMap::buildTableMap(); +SitemapPriorityTableMap::buildTableMap(); diff --git a/local/modules/Sitemap/Model/SitemapPriority.php b/local/modules/Sitemap/Model/SitemapPriority.php new file mode 100644 index 00000000..a030f708 --- /dev/null +++ b/local/modules/Sitemap/Model/SitemapPriority.php @@ -0,0 +1,10 @@ +/local/modules/``` directory and be sure that the name of the module is Sitemap. +* Activate it in your thelia administration panel + +### Composer + +Add it in your main thelia composer.json file + +``` +composer require thelia/sitemap-module:~1.4.0 +``` + +## Usage + +Configure the module with the same information as in you product image loop. + +If you have a lot of products with images, change the timeout in the configuration. **However, be aware** that it may not work depending on your server. + +The sitemap will be filled with all your categories, products, folders and contents URLs, depending on the language. + +The sitemap-image will be filled with all your product images (1 by product) URLs, depending on the language. + +The module will be used to generate sitemap when going on http://yourSite.com/sitemap and the sitemap-image on http://yourSite.com/sitemap-image. \ No newline at end of file diff --git a/local/modules/Sitemap/Sitemap.php b/local/modules/Sitemap/Sitemap.php new file mode 100644 index 00000000..170e45ab --- /dev/null +++ b/local/modules/Sitemap/Sitemap.php @@ -0,0 +1,72 @@ +findOne(); + } catch (\Exception $ex) { + $database = new Database($con->getWrappedConnection()); + $database->insertSql(null, array(__DIR__ . '/Config/thelia.sql')); + } + } + + + public function update($currentVersion, $newVersion, ConnectionInterface $con = null) + { + $finder = (new Finder) + ->files() + ->name('#.*?\.sql#') + ->sortByName() + ->in(__DIR__ . DS . 'Config' . DS . 'update' . DS . 'sql'); + + $database = new Database($con); + + /** @var \Symfony\Component\Finder\SplFileInfo $updateSQLFile */ + foreach ($finder as $updateSQLFile) { + if (version_compare($currentVersion, str_replace('.sql', '', $updateSQLFile->getFilename()), '<')) { + $database->insertSql( + null, + [ + $updateSQLFile->getPathname() + ] + ); + } + } + } +} diff --git a/local/modules/modules/FreeOrder/composer.json b/local/modules/Sitemap/composer.json similarity index 63% rename from local/modules/modules/FreeOrder/composer.json rename to local/modules/Sitemap/composer.json index f32437ec..8b22d2d5 100644 --- a/local/modules/modules/FreeOrder/composer.json +++ b/local/modules/Sitemap/composer.json @@ -1,11 +1,11 @@ { - "name": "thelia/free-order-module", + "name": "thelia/sitemap-module", "license": "LGPL-3.0+", "type": "thelia-module", "require": { "thelia/installer": "~1.1" }, "extra": { - "installer-name": "FreeOrder" + "installer-name": "Sitemap" } } \ No newline at end of file diff --git a/local/modules/Sitemap/templates/backOffice/default/generic-sitemap-definition.html b/local/modules/Sitemap/templates/backOffice/default/generic-sitemap-definition.html new file mode 100644 index 00000000..38e12be0 --- /dev/null +++ b/local/modules/Sitemap/templates/backOffice/default/generic-sitemap-definition.html @@ -0,0 +1 @@ +{render_form_field form=$form field="sitemapPriority" value=$sitemapPriority} \ No newline at end of file diff --git a/local/modules/Sitemap/templates/backOffice/default/sitemap-configuration.html b/local/modules/Sitemap/templates/backOffice/default/sitemap-configuration.html new file mode 100644 index 00000000..2770c81d --- /dev/null +++ b/local/modules/Sitemap/templates/backOffice/default/sitemap-configuration.html @@ -0,0 +1,290 @@ +{extends file="admin-layout.tpl"} + +{block name="no-return-functions"} +{$admin_current_location = 'modules'} +{/block} + +{block name="page-title"}{intl d="sitemap.bo.default" l='Sitemap images configuration'}{/block} + +{block name="check-resource"}admin.module{/block} +{block name="check-access"}view{/block} +{block name="check-module"}Sitemap{/block} + +{block name="main-content"} +
+ + + +
+
+
+ {if $success} +
+ {intl l="Configuration correctly saved" d="sitemap.bo.default"} +
+ {/if} + + {form name='sitemap_config_form'} + + + {form_hidden_fields form=$form} + + {include "includes/inner-form-toolbar.html" hide_flags=true close_url={url path='/admin/modules'}} +
+

{intl l="Configure sitemap" d="sitemap.bo.default"}

+
+ + {form_field form=$form field="exclude_empty_category"} +
+ {form_error form=$form field="width"} + {$message} + {/form_error} + +
+ {/form_field} + + {form_field form=$form field="exclude_empty_folder"} +
+ {form_error form=$form field="width"} + {$message} + {/form_error} + +
+ {/form_field} + +
+

{intl l="Configure sitemap images" d="sitemap.bo.default"}

+
+ +
{intl l="Set the same information as in your product image loop" d="sitemap.bo.default"}.
+ + {form_field form=$form field="timeout"} +
+ + +

{intl l='Warning! Only fill this input with a greater value than 30 if you have so many images that the sitemap-image can\'t be generated because of timeout.' d='sitemap.bo.default'}

+

{intl l='Depending on your server, this may have no effect.' d="sitemap.bo.default"}

+ +
+ {/form_field} + + {form_field form=$form field="width"} +
+ + + +
+ {/form_field} + + {form_field form=$form field="height"} +
+ + + +
+ {/form_field} + + {form_field form=$form field="quality"} +
+ + + +
+ {/form_field} + + {form_field form=$form field="rotation"} +
+ + + +
+ {/form_field} + + {form_field form=$form field="resize_mode"} +
+ + + +
+ {/form_field} + + {form_field form=$form field="background_color"} +
+ + + +
+ {/form_field} + + {form_field form=$form field="allow_zoom"} +
+ + + +
+ {/form_field} + + {form_field form=$form field="default_priority_homepage_value"} +
+ + + +
+ {/form_field} + + {form_field form=$form field="default_priority_brand_value"} +
+ + + +
+ {/form_field} + + {form_field form=$form field="default_priority_category_value"} +
+ + + +
+ {/form_field} + + {form_field form=$form field="default_priority_product_value"} +
+ + + +
+ {/form_field} + + {form_field form=$form field="default_priority_folder_value"} +
+ + + +
+ {/form_field} + + {form_field form=$form field="default_update_frequency"} +
+ + + +
+ {/form_field} + + + {/form} +
+
+ +
+
+{/block} \ No newline at end of file diff --git a/local/local/modules/VirtualProductControl/Config/config.xml b/local/modules/VirtualProductControl/Config/config.xml similarity index 100% rename from local/local/modules/VirtualProductControl/Config/config.xml rename to local/modules/VirtualProductControl/Config/config.xml diff --git a/local/local/modules/VirtualProductControl/Config/module.xml b/local/modules/VirtualProductControl/Config/module.xml similarity index 100% rename from local/local/modules/VirtualProductControl/Config/module.xml rename to local/modules/VirtualProductControl/Config/module.xml diff --git a/local/local/modules/VirtualProductControl/Hook/VirtualProductHook.php b/local/modules/VirtualProductControl/Hook/VirtualProductHook.php similarity index 100% rename from local/local/modules/VirtualProductControl/Hook/VirtualProductHook.php rename to local/modules/VirtualProductControl/Hook/VirtualProductHook.php diff --git a/local/local/modules/VirtualProductControl/I18n/backOffice/default/de_DE.php b/local/modules/VirtualProductControl/I18n/backOffice/default/de_DE.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/backOffice/default/de_DE.php rename to local/modules/VirtualProductControl/I18n/backOffice/default/de_DE.php diff --git a/local/local/modules/VirtualProductControl/I18n/backOffice/default/en_US.php b/local/modules/VirtualProductControl/I18n/backOffice/default/en_US.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/backOffice/default/en_US.php rename to local/modules/VirtualProductControl/I18n/backOffice/default/en_US.php diff --git a/local/local/modules/VirtualProductControl/I18n/backOffice/default/fr_FR.php b/local/modules/VirtualProductControl/I18n/backOffice/default/fr_FR.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/backOffice/default/fr_FR.php rename to local/modules/VirtualProductControl/I18n/backOffice/default/fr_FR.php diff --git a/local/local/modules/VirtualProductControl/I18n/backOffice/default/it_IT.php b/local/modules/VirtualProductControl/I18n/backOffice/default/it_IT.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/backOffice/default/it_IT.php rename to local/modules/VirtualProductControl/I18n/backOffice/default/it_IT.php diff --git a/local/local/modules/VirtualProductControl/I18n/backOffice/default/tr_TR.php b/local/modules/VirtualProductControl/I18n/backOffice/default/tr_TR.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/backOffice/default/tr_TR.php rename to local/modules/VirtualProductControl/I18n/backOffice/default/tr_TR.php diff --git a/local/local/modules/VirtualProductControl/I18n/de_DE.php b/local/modules/VirtualProductControl/I18n/de_DE.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/de_DE.php rename to local/modules/VirtualProductControl/I18n/de_DE.php diff --git a/local/local/modules/VirtualProductControl/I18n/en_US.php b/local/modules/VirtualProductControl/I18n/en_US.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/en_US.php rename to local/modules/VirtualProductControl/I18n/en_US.php diff --git a/local/local/modules/VirtualProductControl/I18n/fr_FR.php b/local/modules/VirtualProductControl/I18n/fr_FR.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/fr_FR.php rename to local/modules/VirtualProductControl/I18n/fr_FR.php diff --git a/local/local/modules/VirtualProductControl/I18n/it_IT.php b/local/modules/VirtualProductControl/I18n/it_IT.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/it_IT.php rename to local/modules/VirtualProductControl/I18n/it_IT.php diff --git a/local/local/modules/VirtualProductControl/I18n/tr_TR.php b/local/modules/VirtualProductControl/I18n/tr_TR.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/tr_TR.php rename to local/modules/VirtualProductControl/I18n/tr_TR.php diff --git a/local/local/modules/Cheque/LICENSE.txt b/local/modules/VirtualProductControl/LICENSE.txt similarity index 100% rename from local/local/modules/Cheque/LICENSE.txt rename to local/modules/VirtualProductControl/LICENSE.txt diff --git a/local/local/modules/VirtualProductControl/VirtualProductControl.php b/local/modules/VirtualProductControl/VirtualProductControl.php similarity index 100% rename from local/local/modules/VirtualProductControl/VirtualProductControl.php rename to local/modules/VirtualProductControl/VirtualProductControl.php diff --git a/local/local/modules/VirtualProductControl/composer.json b/local/modules/VirtualProductControl/composer.json similarity index 100% rename from local/local/modules/VirtualProductControl/composer.json rename to local/modules/VirtualProductControl/composer.json diff --git a/local/local/modules/VirtualProductControl/templates/backOffice/default/virtual-delivery-warning.html b/local/modules/VirtualProductControl/templates/backOffice/default/virtual-delivery-warning.html similarity index 100% rename from local/local/modules/VirtualProductControl/templates/backOffice/default/virtual-delivery-warning.html rename to local/modules/VirtualProductControl/templates/backOffice/default/virtual-delivery-warning.html diff --git a/local/local/modules/VirtualProductDelivery/Config/config.xml b/local/modules/VirtualProductDelivery/Config/config.xml similarity index 100% rename from local/local/modules/VirtualProductDelivery/Config/config.xml rename to local/modules/VirtualProductDelivery/Config/config.xml diff --git a/local/local/modules/VirtualProductDelivery/Config/module.xml b/local/modules/VirtualProductDelivery/Config/module.xml similarity index 100% rename from local/local/modules/VirtualProductDelivery/Config/module.xml rename to local/modules/VirtualProductDelivery/Config/module.xml diff --git a/local/local/modules/VirtualProductDelivery/EventListeners/SendMail.php b/local/modules/VirtualProductDelivery/EventListeners/SendMail.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/EventListeners/SendMail.php rename to local/modules/VirtualProductDelivery/EventListeners/SendMail.php diff --git a/local/local/modules/VirtualProductDelivery/EventListeners/VirtualProductEvents.php b/local/modules/VirtualProductDelivery/EventListeners/VirtualProductEvents.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/EventListeners/VirtualProductEvents.php rename to local/modules/VirtualProductDelivery/EventListeners/VirtualProductEvents.php diff --git a/local/local/modules/VirtualProductDelivery/Events/VirtualProductDeliveryEvents.php b/local/modules/VirtualProductDelivery/Events/VirtualProductDeliveryEvents.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/Events/VirtualProductDeliveryEvents.php rename to local/modules/VirtualProductDelivery/Events/VirtualProductDeliveryEvents.php diff --git a/local/local/modules/VirtualProductDelivery/Hook/HookManager.php b/local/modules/VirtualProductDelivery/Hook/HookManager.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/Hook/HookManager.php rename to local/modules/VirtualProductDelivery/Hook/HookManager.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/de_DE.php b/local/modules/VirtualProductDelivery/I18n/de_DE.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/de_DE.php rename to local/modules/VirtualProductDelivery/I18n/de_DE.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/email/default/en_US.php b/local/modules/VirtualProductDelivery/I18n/email/default/en_US.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/email/default/en_US.php rename to local/modules/VirtualProductDelivery/I18n/email/default/en_US.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/email/default/fr_FR.php b/local/modules/VirtualProductDelivery/I18n/email/default/fr_FR.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/email/default/fr_FR.php rename to local/modules/VirtualProductDelivery/I18n/email/default/fr_FR.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/email/default/it_IT.php b/local/modules/VirtualProductDelivery/I18n/email/default/it_IT.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/email/default/it_IT.php rename to local/modules/VirtualProductDelivery/I18n/email/default/it_IT.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/email/default/tr_TR.php b/local/modules/VirtualProductDelivery/I18n/email/default/tr_TR.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/email/default/tr_TR.php rename to local/modules/VirtualProductDelivery/I18n/email/default/tr_TR.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/en_US.php b/local/modules/VirtualProductDelivery/I18n/en_US.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/en_US.php rename to local/modules/VirtualProductDelivery/I18n/en_US.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/fr_FR.php b/local/modules/VirtualProductDelivery/I18n/fr_FR.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/fr_FR.php rename to local/modules/VirtualProductDelivery/I18n/fr_FR.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/de_DE.php b/local/modules/VirtualProductDelivery/I18n/frontOffice/default/de_DE.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/de_DE.php rename to local/modules/VirtualProductDelivery/I18n/frontOffice/default/de_DE.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/en_US.php b/local/modules/VirtualProductDelivery/I18n/frontOffice/default/en_US.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/en_US.php rename to local/modules/VirtualProductDelivery/I18n/frontOffice/default/en_US.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/fr_FR.php b/local/modules/VirtualProductDelivery/I18n/frontOffice/default/fr_FR.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/fr_FR.php rename to local/modules/VirtualProductDelivery/I18n/frontOffice/default/fr_FR.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/it_IT.php b/local/modules/VirtualProductDelivery/I18n/frontOffice/default/it_IT.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/it_IT.php rename to local/modules/VirtualProductDelivery/I18n/frontOffice/default/it_IT.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/tr_TR.php b/local/modules/VirtualProductDelivery/I18n/frontOffice/default/tr_TR.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/tr_TR.php rename to local/modules/VirtualProductDelivery/I18n/frontOffice/default/tr_TR.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/it_IT.php b/local/modules/VirtualProductDelivery/I18n/it_IT.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/it_IT.php rename to local/modules/VirtualProductDelivery/I18n/it_IT.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/pdf/default/de_DE.php b/local/modules/VirtualProductDelivery/I18n/pdf/default/de_DE.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/pdf/default/de_DE.php rename to local/modules/VirtualProductDelivery/I18n/pdf/default/de_DE.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/pdf/default/en_US.php b/local/modules/VirtualProductDelivery/I18n/pdf/default/en_US.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/pdf/default/en_US.php rename to local/modules/VirtualProductDelivery/I18n/pdf/default/en_US.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/pdf/default/fr_FR.php b/local/modules/VirtualProductDelivery/I18n/pdf/default/fr_FR.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/pdf/default/fr_FR.php rename to local/modules/VirtualProductDelivery/I18n/pdf/default/fr_FR.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/pdf/default/it_IT.php b/local/modules/VirtualProductDelivery/I18n/pdf/default/it_IT.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/pdf/default/it_IT.php rename to local/modules/VirtualProductDelivery/I18n/pdf/default/it_IT.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/pdf/default/tr_TR.php b/local/modules/VirtualProductDelivery/I18n/pdf/default/tr_TR.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/pdf/default/tr_TR.php rename to local/modules/VirtualProductDelivery/I18n/pdf/default/tr_TR.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/tr_TR.php b/local/modules/VirtualProductDelivery/I18n/tr_TR.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/tr_TR.php rename to local/modules/VirtualProductDelivery/I18n/tr_TR.php diff --git a/local/local/modules/Colissimo/LICENSE.txt b/local/modules/VirtualProductDelivery/LICENSE.txt similarity index 100% rename from local/local/modules/Colissimo/LICENSE.txt rename to local/modules/VirtualProductDelivery/LICENSE.txt diff --git a/local/local/modules/VirtualProductDelivery/VirtualProductDelivery.php b/local/modules/VirtualProductDelivery/VirtualProductDelivery.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/VirtualProductDelivery.php rename to local/modules/VirtualProductDelivery/VirtualProductDelivery.php diff --git a/local/local/modules/VirtualProductDelivery/composer.json b/local/modules/VirtualProductDelivery/composer.json similarity index 100% rename from local/local/modules/VirtualProductDelivery/composer.json rename to local/modules/VirtualProductDelivery/composer.json diff --git a/local/local/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.html b/local/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.html similarity index 100% rename from local/local/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.html rename to local/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.html diff --git a/local/local/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.txt b/local/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.txt similarity index 100% rename from local/local/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.txt rename to local/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.txt diff --git a/local/local/modules/VirtualProductDelivery/templates/frontOffice/default/account-order-after-products.html b/local/modules/VirtualProductDelivery/templates/frontOffice/default/account-order-after-products.html similarity index 100% rename from local/local/modules/VirtualProductDelivery/templates/frontOffice/default/account-order-after-products.html rename to local/modules/VirtualProductDelivery/templates/frontOffice/default/account-order-after-products.html diff --git a/local/local/modules/VirtualProductDelivery/templates/frontOffice/default/delivery-address.html b/local/modules/VirtualProductDelivery/templates/frontOffice/default/delivery-address.html similarity index 100% rename from local/local/modules/VirtualProductDelivery/templates/frontOffice/default/delivery-address.html rename to local/modules/VirtualProductDelivery/templates/frontOffice/default/delivery-address.html diff --git a/local/local/modules/VirtualProductDelivery/templates/pdf/default/delivery-address.html b/local/modules/VirtualProductDelivery/templates/pdf/default/delivery-address.html similarity index 100% rename from local/local/modules/VirtualProductDelivery/templates/pdf/default/delivery-address.html rename to local/modules/VirtualProductDelivery/templates/pdf/default/delivery-address.html diff --git a/local/modules/modules/.gitkeep b/local/modules/modules/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/local/modules/modules/Carousel/CHANGELOG.md b/local/modules/modules/Carousel/CHANGELOG.md deleted file mode 100644 index b4525a3b..00000000 --- a/local/modules/modules/Carousel/CHANGELOG.md +++ /dev/null @@ -1,6 +0,0 @@ -# 2.3.0-alpha1 - -- Moved the images from the directory 'media' in the module to thelia/local/media/images/carousel. -- The current images will be automatically copied in the new directory during the update of the module -- Removed AdminIncludes directory -- All html,js and css files are now in 'templates' \ No newline at end of file diff --git a/local/modules/modules/Carousel/Carousel.php b/local/modules/modules/Carousel/Carousel.php deleted file mode 100644 index b0caadf0..00000000 --- a/local/modules/modules/Carousel/Carousel.php +++ /dev/null @@ -1,89 +0,0 @@ - - */ -class Carousel extends BaseModule -{ - const DOMAIN_NAME = 'carousel'; - - public function preActivation(ConnectionInterface $con = null) - { - if (! $this->getConfigValue('is_initialized', false)) { - $database = new Database($con); - - $database->insertSql(null, array(__DIR__ . '/Config/thelia.sql')); - - $this->setConfigValue('is_initialized', true); - } - - return true; - } - - public function destroy(ConnectionInterface $con = null, $deleteModuleData = false) - { - $database = new Database($con); - - $database->insertSql(null, array(__DIR__ . '/Config/sql/destroy.sql')); - } - - public function getUploadDir() - { - $uploadDir = ConfigQuery::read('images_library_path'); - - if ($uploadDir === null) { - $uploadDir = THELIA_LOCAL_DIR . 'media' . DS . 'images'; - } else { - $uploadDir = THELIA_ROOT . $uploadDir; - } - - return $uploadDir . DS . Carousel::DOMAIN_NAME; - } - - /** - * @param string $currentVersion - * @param string $newVersion - * @param ConnectionInterface $con - * @author Thomas Arnaud - */ - public function update($currentVersion, $newVersion, ConnectionInterface $con = null) - { - $uploadDir = $this->getUploadDir(); - $fileSystem = new Filesystem(); - - if (!$fileSystem->exists($uploadDir) && $fileSystem->exists(__DIR__ . DS . 'media' . DS . 'carousel')) { - $finder = new Finder(); - $finder->files()->in(__DIR__ . DS . 'media' . DS . 'carousel'); - - $fileSystem->mkdir($uploadDir); - - /** @var SplFileInfo $file */ - foreach ($finder as $file) { - copy($file, $uploadDir . DS . $file->getRelativePathname()); - } - $fileSystem->remove(__DIR__ . DS . 'media'); - } - } -} diff --git a/local/modules/modules/Carousel/Config/config.xml b/local/modules/modules/Carousel/Config/config.xml deleted file mode 100644 index 54642a77..00000000 --- a/local/modules/modules/Carousel/Config/config.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - -
- - - - - - - - - - - - - - diff --git a/local/modules/modules/Carousel/Config/module.xml b/local/modules/modules/Carousel/Config/module.xml deleted file mode 100644 index 6608a359..00000000 --- a/local/modules/modules/Carousel/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - Carousel\Carousel - - An image carousel - - - Un carrousel d'images - - - en_US - fr_FR - - 2.3.4 - - Manuel Raynaud, Franck Allimant - manu@raynaud.io, franck@cqfdev.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/Carousel/Config/routing.xml b/local/modules/modules/Carousel/Config/routing.xml deleted file mode 100644 index 44e95906..00000000 --- a/local/modules/modules/Carousel/Config/routing.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - Carousel\Controller\ConfigurationController::uploadImage - - - - Carousel\Controller\ConfigurationController::updateAction - - - - Carousel\Controller\ConfigurationController::deleteAction - - - diff --git a/local/modules/modules/Carousel/Config/schema.xml b/local/modules/modules/Carousel/Config/schema.xml deleted file mode 100644 index 20ae4d3a..00000000 --- a/local/modules/modules/Carousel/Config/schema.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- - -
diff --git a/local/modules/modules/Carousel/Config/sql/destroy.sql b/local/modules/modules/Carousel/Config/sql/destroy.sql deleted file mode 100644 index e6116063..00000000 --- a/local/modules/modules/Carousel/Config/sql/destroy.sql +++ /dev/null @@ -1,6 +0,0 @@ -SET FOREIGN_KEY_CHECKS = 0; - -DROP TABLE IF EXISTS `carousel`; -DROP TABLE IF EXISTS `carousel_i18n`; - -SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file diff --git a/local/modules/modules/Carousel/Config/thelia.sql b/local/modules/modules/Carousel/Config/thelia.sql deleted file mode 100644 index 71aa0d49..00000000 --- a/local/modules/modules/Carousel/Config/thelia.sql +++ /dev/null @@ -1,43 +0,0 @@ -# This is a fix for InnoDB in MySQL >= 4.1.x -# It "suspends judgement" for fkey relationships until are tables are set. -SET FOREIGN_KEY_CHECKS = 0; - --- --------------------------------------------------------------------- --- carousel --- --------------------------------------------------------------------- - -CREATE TABLE IF NOT EXISTS `carousel` -( - `id` INTEGER NOT NULL AUTO_INCREMENT, - `file` VARCHAR(255), - `position` INTEGER, - `url` VARCHAR(255), - `created_at` DATETIME, - `updated_at` DATETIME, - PRIMARY KEY (`id`) -) ENGINE=InnoDB; - --- --------------------------------------------------------------------- --- carousel_i18n --- --------------------------------------------------------------------- - - - -CREATE TABLE IF NOT EXISTS `carousel_i18n` -( - `id` INTEGER NOT NULL, - `locale` VARCHAR(5) DEFAULT 'en_US' NOT NULL, - `alt` VARCHAR(255), - `title` VARCHAR(255), - `description` LONGTEXT, - `chapo` TEXT, - `postscriptum` TEXT, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `carousel_i18n_FK_1` - FOREIGN KEY (`id`) - REFERENCES `carousel` (`id`) - ON DELETE CASCADE -) ENGINE=InnoDB; - -# This restores the fkey checks, after having unset them earlier -SET FOREIGN_KEY_CHECKS = 1; diff --git a/local/modules/modules/Carousel/Controller/ConfigurationController.php b/local/modules/modules/Carousel/Controller/ConfigurationController.php deleted file mode 100644 index f602762e..00000000 --- a/local/modules/modules/Carousel/Controller/ConfigurationController.php +++ /dev/null @@ -1,184 +0,0 @@ - - */ -class ConfigurationController extends BaseAdminController -{ - - public function uploadImage() - { - if (null !== $response = $this->checkAuth(AdminResources::MODULE, ['carousel'], AccessManager::CREATE)) { - return $response; - } - - $request = $this->getRequest(); - $form = $this->createForm('carousel.image'); - $error_message = null; - try { - $this->validateForm($form); - - /** @var \Symfony\Component\HttpFoundation\File\UploadedFile $fileBeingUploaded */ - $fileBeingUploaded = $request->files->get(sprintf('%s[file]', $form->getName()), null, true); - - $fileModel = new Carousel(); - - $fileCreateOrUpdateEvent = new FileCreateOrUpdateEvent(1); - $fileCreateOrUpdateEvent->setModel($fileModel); - $fileCreateOrUpdateEvent->setUploadedFile($fileBeingUploaded); - - $this->dispatch( - TheliaEvents::IMAGE_SAVE, - $fileCreateOrUpdateEvent - ); - - // Compensate issue #1005 - $langs = LangQuery::create()->find(); - - /** @var Lang $lang */ - foreach ($langs as $lang) { - $fileCreateOrUpdateEvent->getModel()->setLocale($lang->getLocale())->setTitle('')->save(); - } - - $response = $this->redirectToConfigurationPage(); - - } catch (FormValidationException $e) { - $error_message = $this->createStandardFormValidationErrorMessage($e); - } - - if (null !== $error_message) { - $this->setupFormErrorContext( - 'carousel upload', - $error_message, - $form - ); - - $response = $this->render( - "module-configure", - [ - 'module_code' => 'Carousel' - ] - ); - } - - return $response; - } - - /** - * @param Form $form - * @param string $fieldName - * @param int $id - * @return string - */ - protected function getFormFieldValue($form, $fieldName, $id) - { - $value = $form->get(sprintf('%s%d', $fieldName, $id))->getData(); - - return $value; - } - - public function updateAction() - { - if (null !== $response = $this->checkAuth(AdminResources::MODULE, ['carousel'], AccessManager::UPDATE)) { - return $response; - } - - $form = $this->createForm('carousel.update'); - - $error_message = null; - - try { - $updateForm = $this->validateForm($form); - - $carousels = CarouselQuery::create()->findAllByPosition(); - - $locale = $this->getCurrentEditionLocale(); - - /** @var Carousel $carousel */ - foreach ($carousels as $carousel) { - $id = $carousel->getId(); - - $carousel - ->setPosition($this->getFormFieldValue($updateForm, 'position', $id)) - ->setUrl($this->getFormFieldValue($updateForm, 'url', $id)) - ->setLocale($locale) - ->setTitle($this->getFormFieldValue($updateForm, 'title', $id)) - ->setAlt($this->getFormFieldValue($updateForm, 'alt', $id)) - ->setChapo($this->getFormFieldValue($updateForm, 'chapo', $id)) - ->setDescription($this->getFormFieldValue($updateForm, 'description', $id)) - ->setPostscriptum($this->getFormFieldValue($updateForm, 'postscriptum', $id)) - ->save(); - } - - $response = $this->redirectToConfigurationPage(); - - } catch (FormValidationException $e) { - $error_message = $this->createStandardFormValidationErrorMessage($e); - } - - if (null !== $error_message) { - $this->setupFormErrorContext( - 'carousel upload', - $error_message, - $form - ); - - $response = $this->render("module-configure", [ 'module_code' => 'Carousel' ]); - } - - return $response; - - } - - public function deleteAction() - { - if (null !== $response = $this->checkAuth(AdminResources::MODULE, ['carousel'], AccessManager::DELETE)) { - return $response; - } - - $imageId = $this->getRequest()->request->get('image_id'); - - if ($imageId != "") { - $carousel = CarouselQuery::create()->findPk($imageId); - - if (null !== $carousel) { - $carousel->delete(); - } - } - - return $this->redirectToConfigurationPage(); - } - - protected function redirectToConfigurationPage() - { - return RedirectResponse::create(URL::getInstance()->absoluteUrl('/admin/module/Carousel')); - } -} \ No newline at end of file diff --git a/local/modules/modules/Carousel/Form/CarouselImageForm.php b/local/modules/modules/Carousel/Form/CarouselImageForm.php deleted file mode 100644 index 5ad985e3..00000000 --- a/local/modules/modules/Carousel/Form/CarouselImageForm.php +++ /dev/null @@ -1,56 +0,0 @@ - - */ -class CarouselImageForm extends BaseForm -{ - /** - * @inheritdoc - */ - protected function buildForm() - { - $translator = Translator::getInstance(); - $this->formBuilder - ->add( - 'file', - 'file', - [ - 'constraints' => [ - new Image() - ], - 'label' => $translator->trans('Carousel image', [], Carousel::DOMAIN_NAME), - 'label_attr' => [ - 'for' => 'file' - ] - ] - ); - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return 'carousel_image'; - } -} \ No newline at end of file diff --git a/local/modules/modules/Carousel/Form/CarouselUpdateForm.php b/local/modules/modules/Carousel/Form/CarouselUpdateForm.php deleted file mode 100644 index 3bf3a14d..00000000 --- a/local/modules/modules/Carousel/Form/CarouselUpdateForm.php +++ /dev/null @@ -1,166 +0,0 @@ - - */ -class CarouselUpdateForm extends BaseForm -{ - /** - * @inheritdoc - */ - protected function buildForm() - { - $formBuilder = $this->formBuilder; - - $carousels = CarouselQuery::create()->orderByPosition()->find(); - - /** @var \Carousel\Model\Carousel $carousel */ - foreach ($carousels as $carousel) { - $id = $carousel->getId(); - - $formBuilder->add( - 'position' . $id, - 'text', - [ - 'label' => $this->translator->trans('Image position in carousel', [], Carousel::DOMAIN_NAME), - 'label_attr' => [ - 'for' => 'position' . $id - ], - 'required' => false, - 'attr' => [ - 'placeholder' => $this->translator->trans( - 'Image position in carousel', - [], - Carousel::DOMAIN_NAME - ) - ] - ] - )->add( - 'alt' . $id, - 'text', - [ - 'label' => $this->translator->trans('Alternative image text', [], Carousel::DOMAIN_NAME), - 'label_attr' => [ - 'for' => 'alt' . $id - ], - 'required' => false, - 'attr' => [ - 'placeholder' => $this->translator->trans( - 'Displayed when image is not visible', - [], - Carousel::DOMAIN_NAME - ) - ] - ] - )->add( - 'url' . $id, - 'url', - [ - 'label' => $this->translator->trans('Image URL', [], Carousel::DOMAIN_NAME), - 'label_attr' => [ - 'for' => 'url' . $id - ], - 'required' => false, - 'attr' => [ - 'placeholder' => $this->translator->trans( - 'Please enter a valid URL', - [], - Carousel::DOMAIN_NAME - ) - ] - ] - )->add( - 'title' . $id, - 'text', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->translator->trans('Title'), - 'label_attr' => [ - 'for' => 'title_field' . $id - ], - 'attr' => [ - 'placeholder' => $this->translator->trans('A descriptive title') - ] - ] - )->add( - 'chapo' . $id, - 'textarea', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->translator->trans('Summary'), - 'label_attr' => [ - 'for' => 'summary_field' . $id, - 'help' => $this->translator->trans( - 'A short description, used when a summary or an introduction is required' - ) - ], - 'attr' => [ - 'rows' => 3, - 'placeholder' => $this->translator->trans('Short description text') - ] - ] - )->add( - 'description' . $id, - 'textarea', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->translator->trans('Detailed description'), - 'label_attr' => [ - 'for' => 'detailed_description_field' . $id, - 'help' => $this->translator->trans('The detailed description.') - ], - 'attr' => [ - 'rows' => 5 - ] - ] - )->add( - 'postscriptum' . $id, - 'textarea', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->translator->trans('Conclusion'), - 'label_attr' => [ - 'for' => 'conclusion_field' . $id, - 'help' => $this->translator->trans( - 'A short text, used when an additional or supplemental information is required.' - ) - ], - 'attr' => [ - 'placeholder' => $this->translator->trans('Short additional text'), - 'rows' => 3, - ] - ] - ); - } - } - - /** - * @inheritdoc - */ - public function getName() - { - return "carousel_update"; - } -} \ No newline at end of file diff --git a/local/modules/modules/Carousel/Hook/BackHook.php b/local/modules/modules/Carousel/Hook/BackHook.php deleted file mode 100644 index b033670d..00000000 --- a/local/modules/modules/Carousel/Hook/BackHook.php +++ /dev/null @@ -1,48 +0,0 @@ - - */ -class BackHook extends BaseHook -{ - - /** - * Add a new entry in the admin tools menu - * - * should add to event a fragment with fields : id,class,url,title - * - * @param HookRenderBlockEvent $event - */ - public function onMainTopMenuTools(HookRenderBlockEvent $event) - { - $event->add( - [ - 'id' => 'tools_menu_carousel', - 'class' => '', - 'url' => URL::getInstance()->absoluteUrl('/admin/module/Carousel'), - 'title' => $this->trans('Edit your carousel', [], Carousel::DOMAIN_NAME) - ] - ); - } -} diff --git a/local/modules/modules/Carousel/I18n/backOffice/default/de_DE.php b/local/modules/modules/Carousel/I18n/backOffice/default/de_DE.php deleted file mode 100644 index 3efa0e2d..00000000 --- a/local/modules/modules/Carousel/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Ein Bild zu Karussell hinzufügen', - 'Add this image to the carousel' => 'Dieses Bild zu Karussell hinzufügen', - 'Carousel image' => 'Karussell-Bild', - 'Carousel images' => 'Karussell-Bilder', - 'Delete a carousel image' => 'Ein Karussell-Bild löschen', - 'Do you really want to remove this image from the carousel ?' => 'Wollen Sie dieses Bild wirklich aus dem Karussell entfernen?', - 'Edit your carousel.' => 'Karussell bearbeiten.', - 'Remove this image' => 'Dieses Bild entfernen', - 'Your carousel contains no image. Please add one using the form above.' => 'Das Karussell enthält kein Bild. Bitte fügen Sie mit dem Formular oben eines hinzu.', - 'Position' => 'Position', -]; diff --git a/local/modules/modules/Carousel/I18n/backOffice/default/en_US.php b/local/modules/modules/Carousel/I18n/backOffice/default/en_US.php deleted file mode 100644 index 4807e54b..00000000 --- a/local/modules/modules/Carousel/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Add an image to the carousel', - 'Add this image to the carousel' => 'Add this image to the carousel', - 'Carousel image' => 'Carousel image', - 'Carousel images' => 'Carousel images', - 'Delete a carousel image' => 'Delete a carousel image', - 'Do you really want to remove this image from the carousel ?' => 'Do you really want to remove this image from the carousel ?', - 'Edit your carousel.' => 'Edit your carousel.', - 'Remove this image' => 'Remove this image', - 'Your carousel contains no image. Please add one using the form above.' => 'Your carousel contains no image. Please add one using the form above.', - 'Position' => 'Position', -); diff --git a/local/modules/modules/Carousel/I18n/backOffice/default/fr_FR.php b/local/modules/modules/Carousel/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index bb28a5bd..00000000 --- a/local/modules/modules/Carousel/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Ajouter une image au carrousel', - 'Add this image to the carousel' => 'Ajouter l\'image au carrousel', - 'Carousel image' => 'Image du carrousel', - 'Carousel images' => 'Images du carrousel', - 'Delete a carousel image' => 'Supprimer une image du carrousel', - 'Do you really want to remove this image from the carousel ?' => 'Voulez-vous vraiment retirer cette image du carrousel ?', - 'Edit your carousel.' => 'Modifier votre carrousel', - 'Remove this image' => 'Supprimer cette image', - 'Your carousel contains no image. Please add one using the form above.' => 'Votre carrousel ne contient aucune image. Ajoutez votre première image avec le formulaire ci-dessus', - 'Position' => 'Position', -]; diff --git a/local/modules/modules/Carousel/I18n/backOffice/default/ru_RU.php b/local/modules/modules/Carousel/I18n/backOffice/default/ru_RU.php deleted file mode 100644 index fdc531d4..00000000 --- a/local/modules/modules/Carousel/I18n/backOffice/default/ru_RU.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Добавить изображение в карусель', - 'Add this image to the carousel' => 'Добавить это изображение в карусель', - 'Carousel image' => 'Изображение карусели', - 'Carousel images' => 'Изображения карусели', - 'Delete a carousel image' => 'Удалить изображение карусели', - 'Do you really want to remove this image from the carousel ?' => 'Вы действительно хотите удалить это изображение из карусели ?', - 'Edit your carousel.' => 'Редактировать вашу карусель.', - 'Remove this image' => 'Удалить это изображение', - 'Your carousel contains no image. Please add one using the form above.' => 'Ваша карусель не содержит изображений. Пожалуйста, добавьте одно используя форму ниже.', - 'Position' => 'Позиция', -); diff --git a/local/modules/modules/Carousel/I18n/backOffice/default/tr_TR.php b/local/modules/modules/Carousel/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index c9f9f587..00000000 --- a/local/modules/modules/Carousel/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Slayt için bir resim ekle', - 'Add this image to the carousel' => 'slayt için bu resim ekleme', - 'Carousel image' => 'slayt görüntü', - 'Carousel images' => 'slayt görüntüleri', - 'Delete a carousel image' => 'Bir slayt resmi silme', - 'Do you really want to remove this image from the carousel ?' => 'Bu görüntüyü slayttan kaldırmak istiyor musunuz?', - 'Edit your carousel.' => 'slayt düzenleyin.', - 'Remove this image' => 'Bu resmi kaldırma', - 'Your carousel contains no image. Please add one using the form above.' => 'Senin slayt hiçbir görüntü içermiyor . Lütfen yukarıdaki formu kullanarak ekleyin.', - 'Position' => 'Pozisyon', -]; diff --git a/local/modules/modules/Carousel/I18n/de_DE.php b/local/modules/modules/Carousel/I18n/de_DE.php deleted file mode 100644 index 35b35e10..00000000 --- a/local/modules/modules/Carousel/I18n/de_DE.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Beschreibungstitel', - 'A short description, used when a summary or an introduction is required' => 'Eine kurze beschreibung, benutzt wenn eine Zusammenfassung order eine Einleitung ist nötig', - 'A short text, used when an additional or supplemental information is required.' => 'Ein kurzer Text, der verwendet wird, wenn eine zusätzliche oder ergänzende Information erforderlich ist.', - 'Alternative image text' => 'Alternativer Bildtext', - 'Carousel image' => 'Karussell-Bild', - 'Conclusion' => 'Abschluss', - 'Detailed description' => 'Detaillierte Beschreibung', - 'Displayed when image is not visible' => 'Angezeigt, wenn das Bild nicht sichtbar ist', - 'Image URL' => 'Bild-URL', - 'Image position in carousel' => 'Position des Bildes im Karussell', - 'Please enter a valid URL' => 'Bitte geben Sie eine gültige URL ein', - 'Short additional text' => 'Kurzer zusätzlicher Text', - 'Short description text' => 'Kurzes Beschreibungstext', - 'Summary' => 'Zusammenfassung', - 'The detailed description.' => 'Die detaillierte Beschreibung.', - 'Title' => 'Titel', -]; diff --git a/local/modules/modules/Carousel/I18n/en_US.php b/local/modules/modules/Carousel/I18n/en_US.php deleted file mode 100644 index dcc5d1c4..00000000 --- a/local/modules/modules/Carousel/I18n/en_US.php +++ /dev/null @@ -1,20 +0,0 @@ - 'A descriptive title', - 'A short description, used when a summary or an introduction is required' => 'A short description, used when a summary or an introduction is required', - 'A short text, used when an additional or supplemental information is required.' => 'A short text, used when an additional or supplemental information is required.', - 'Alternative image text' => 'Alternative image text', - 'Carousel image' => 'Carousel image', - 'Conclusion' => 'Conclusion', - 'Detailed description' => 'Detailed description', - 'Displayed when image is not visible' => 'Displayed when image is not visible', - 'Image URL' => 'Image URL', - 'Image position in carousel' => 'Image position in carousel', - 'Please enter a valid URL' => 'Please enter a valid URL', - 'Short additional text' => 'Short additional text', - 'Short description text' => 'Short description text', - 'Summary' => 'Summary', - 'The detailed description.' => 'The detailed description.', - 'Title' => 'Title', -); diff --git a/local/modules/modules/Carousel/I18n/fr_FR.php b/local/modules/modules/Carousel/I18n/fr_FR.php deleted file mode 100644 index f5318231..00000000 --- a/local/modules/modules/Carousel/I18n/fr_FR.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Un titre descriptif', - 'A short description, used when a summary or an introduction is required' => 'Une courte description, utilisée lorsqu\'un résumé ou une introduction est requise', - 'A short text, used when an additional or supplemental information is required.' => 'Un texte court, utilisé quand une conclusion ou une information complémentaire est nécessaire.', - 'Alternative image text' => 'Texte alternatif de l\'image', - 'Carousel image' => 'Image du carrousel', - 'Conclusion' => 'Conclusion', - 'Detailed description' => 'Description détaillée', - 'Displayed when image is not visible' => 'Affiché lorsque l\'image n\'est pas visible', - 'Image URL' => 'URL de l\'image', - 'Image position in carousel' => 'Position de l\'image dans le carrousel', - 'Please enter a valid URL' => 'Merci d\'ndiquer une URL valide', - 'Short additional text' => 'Un court texte supplémentaire', - 'Short description text' => 'Un court texte de description', - 'Summary' => 'Résumé', - 'The detailed description.' => 'La description détaillée.', - 'Title' => 'Titre', -]; diff --git a/local/modules/modules/Carousel/I18n/it_IT.php b/local/modules/modules/Carousel/I18n/it_IT.php deleted file mode 100644 index 3919d98b..00000000 --- a/local/modules/modules/Carousel/I18n/it_IT.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Un titolo descrittivo', - 'A short description, used when a summary or an introduction is required' => 'Una breve descrizione, utilizzata quando è necessario un sommario o un\'introduzione', - 'Conclusion' => 'Conclusione', - 'Detailed description' => 'Descrizione dettagliata', - 'Summary' => 'Riassunto', - 'The detailed description.' => 'La descrizione dettagliata.', - 'Title' => 'Titolo', -]; diff --git a/local/modules/modules/Carousel/I18n/tr_TR.php b/local/modules/modules/Carousel/I18n/tr_TR.php deleted file mode 100644 index e8505474..00000000 --- a/local/modules/modules/Carousel/I18n/tr_TR.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Açıklayıcı bir başlık', - 'A short description, used when a summary or an introduction is required' => 'Bir Özeti veya giriş gerekli olduğunda kullanılan kısa bir açıklama', - 'A short text, used when an additional or supplemental information is required.' => 'Bir ek ya da tamamlayıcı bilgi gerekli olduğunda kullanılan kısa bir metin.', - 'Alternative image text' => 'Alternatif resim metini', - 'Carousel image' => 'slayt görüntü', - 'Conclusion' => 'Sonuç', - 'Detailed description' => 'Detaylı açıklama', - 'Displayed when image is not visible' => 'resim görünür olmadığında görüntülenen', - 'Image URL' => 'Resim Bağlantı [Link]', - 'Image position in carousel' => 'slayt bulunduğu resim', - 'Please enter a valid URL' => 'Lütfen geçerli bir URL girin', - 'Short additional text' => 'Kısa ek metin', - 'Short description text' => 'Kısa açıklama metni', - 'Summary' => 'Özet', - 'The detailed description.' => 'Ayrıntılı açıklama.', - 'Title' => 'Başlık', -]; diff --git a/local/modules/modules/Carousel/Loop/CarouselLoop.php b/local/modules/modules/Carousel/Loop/CarouselLoop.php deleted file mode 100644 index 5813a551..00000000 --- a/local/modules/modules/Carousel/Loop/CarouselLoop.php +++ /dev/null @@ -1,190 +0,0 @@ - - */ -class CarouselLoop extends Image -{ - - - /** - * @inheritdoc - */ - protected function getArgDefinitions() - { - return new ArgumentCollection( - Argument::createIntTypeArgument('width'), - Argument::createIntTypeArgument('height'), - Argument::createIntTypeArgument('rotation', 0), - Argument::createAnyTypeArgument('background_color'), - Argument::createIntTypeArgument('quality'), - new Argument( - 'resize_mode', - new TypeCollection( - new EnumType(array('crop', 'borders', 'none')) - ), - 'none' - ), - new Argument( - 'order', - new TypeCollection( - new EnumListType(array('alpha', 'alpha-reverse', 'manual', 'manual-reverse', 'random')) - ), - 'manual' - ), - Argument::createAnyTypeArgument('effects'), - Argument::createBooleanTypeArgument('allow_zoom', false) - ); - } - - /** - * @param LoopResult $loopResult - * - * @return LoopResult - */ - public function parseResults(LoopResult $loopResult) - { - /** @var \Carousel\Model\Carousel $carousel */ - foreach ($loopResult->getResultDataCollection() as $carousel) { - $loopResultRow = new LoopResultRow($carousel); - - $event = new ImageEvent(); - $event->setSourceFilepath($carousel->getUploadDir() . DS . $carousel->getFile()) - ->setCacheSubdirectory('carousel'); - - switch ($this->getResizeMode()) { - case 'crop': - $resize_mode = \Thelia\Action\Image::EXACT_RATIO_WITH_CROP; - break; - - case 'borders': - $resize_mode = \Thelia\Action\Image::EXACT_RATIO_WITH_BORDERS; - break; - - case 'none': - default: - $resize_mode = \Thelia\Action\Image::KEEP_IMAGE_RATIO; - - } - - // Prepare tranformations - $width = $this->getWidth(); - $height = $this->getHeight(); - $rotation = $this->getRotation(); - $background_color = $this->getBackgroundColor(); - $quality = $this->getQuality(); - $effects = $this->getEffects(); - - if (!is_null($width)) { - $event->setWidth($width); - } - if (!is_null($height)) { - $event->setHeight($height); - } - $event->setResizeMode($resize_mode); - if (!is_null($rotation)) { - $event->setRotation($rotation); - } - if (!is_null($background_color)) { - $event->setBackgroundColor($background_color); - } - if (!is_null($quality)) { - $event->setQuality($quality); - } - if (!is_null($effects)) { - $event->setEffects($effects); - } - - $event->setAllowZoom($this->getAllowZoom()); - - // Dispatch image processing event - $this->dispatcher->dispatch(TheliaEvents::IMAGE_PROCESS, $event); - - $loopResultRow - ->set('ID', $carousel->getId()) - ->set("LOCALE", $this->locale) - ->set("IMAGE_URL", $event->getFileUrl()) - ->set("ORIGINAL_IMAGE_URL", $event->getOriginalFileUrl()) - ->set("IMAGE_PATH", $event->getCacheFilepath()) - ->set("ORIGINAL_IMAGE_PATH", $event->getSourceFilepath()) - ->set("TITLE", $carousel->getVirtualColumn('i18n_TITLE')) - ->set("CHAPO", $carousel->getVirtualColumn('i18n_CHAPO')) - ->set("DESCRIPTION", $carousel->getVirtualColumn('i18n_DESCRIPTION')) - ->set("POSTSCRIPTUM", $carousel->getVirtualColumn('i18n_POSTSCRIPTUM')) - ->set("ALT", $carousel->getVirtualColumn('i18n_ALT')) - ->set("URL", $carousel->getUrl()) - ->set('POSITION', $carousel->getPosition()) - ; - - $loopResult->addRow($loopResultRow); - } - - return $loopResult; - } - - /** - * this method returns a Propel ModelCriteria - * - * @return \Propel\Runtime\ActiveQuery\ModelCriteria - */ - public function buildModelCriteria() - { - $search = CarouselQuery::create(); - - $this->configureI18nProcessing($search, [ 'ALT', 'TITLE', 'CHAPO', 'DESCRIPTION', 'POSTSCRIPTUM' ]); - - $orders = $this->getOrder(); - - // Results ordering - foreach ($orders as $order) { - switch ($order) { - case "alpha": - $search->addAscendingOrderByColumn('i18n_TITLE'); - break; - case "alpha-reverse": - $search->addDescendingOrderByColumn('i18n_TITLE'); - break; - case "manual-reverse": - $search->orderByPosition(Criteria::DESC); - break; - case "manual": - $search->orderByPosition(Criteria::ASC); - break; - case "random": - $search->clearOrderByColumns(); - $search->addAscendingOrderByColumn('RAND()'); - break(2); - break; - } - } - - return $search; - } -} diff --git a/local/modules/modules/Carousel/Model/Base/Carousel.php b/local/modules/modules/Carousel/Model/Base/Carousel.php deleted file mode 100644 index 591337fb..00000000 --- a/local/modules/modules/Carousel/Model/Base/Carousel.php +++ /dev/null @@ -1,1932 +0,0 @@ -modifiedColumns; - } - - /** - * Has specified column been modified? - * - * @param string $col column fully qualified name (TableMap::TYPE_COLNAME), e.g. Book::AUTHOR_ID - * @return boolean True if $col has been modified. - */ - public function isColumnModified($col) - { - return $this->modifiedColumns && isset($this->modifiedColumns[$col]); - } - - /** - * Get the columns that have been modified in this object. - * @return array A unique list of the modified column names for this object. - */ - public function getModifiedColumns() - { - return $this->modifiedColumns ? array_keys($this->modifiedColumns) : []; - } - - /** - * Returns whether the object has ever been saved. This will - * be false, if the object was retrieved from storage or was created - * and then saved. - * - * @return boolean true, if the object has never been persisted. - */ - public function isNew() - { - return $this->new; - } - - /** - * Setter for the isNew attribute. This method will be called - * by Propel-generated children and objects. - * - * @param boolean $b the state of the object. - */ - public function setNew($b) - { - $this->new = (Boolean) $b; - } - - /** - * Whether this object has been deleted. - * @return boolean The deleted state of this object. - */ - public function isDeleted() - { - return $this->deleted; - } - - /** - * Specify whether this object has been deleted. - * @param boolean $b The deleted state of this object. - * @return void - */ - public function setDeleted($b) - { - $this->deleted = (Boolean) $b; - } - - /** - * Sets the modified state for the object to be false. - * @param string $col If supplied, only the specified column is reset. - * @return void - */ - public function resetModified($col = null) - { - if (null !== $col) { - if (isset($this->modifiedColumns[$col])) { - unset($this->modifiedColumns[$col]); - } - } else { - $this->modifiedColumns = array(); - } - } - - /** - * Compares this with another Carousel instance. If - * obj is an instance of Carousel, delegates to - * equals(Carousel). Otherwise, returns false. - * - * @param mixed $obj The object to compare to. - * @return boolean Whether equal to the object specified. - */ - public function equals($obj) - { - $thisclazz = get_class($this); - if (!is_object($obj) || !($obj instanceof $thisclazz)) { - return false; - } - - if ($this === $obj) { - return true; - } - - if (null === $this->getPrimaryKey() - || null === $obj->getPrimaryKey()) { - return false; - } - - return $this->getPrimaryKey() === $obj->getPrimaryKey(); - } - - /** - * If the primary key is not null, return the hashcode of the - * primary key. Otherwise, return the hash code of the object. - * - * @return int Hashcode - */ - public function hashCode() - { - if (null !== $this->getPrimaryKey()) { - return crc32(serialize($this->getPrimaryKey())); - } - - return crc32(serialize(clone $this)); - } - - /** - * Get the associative array of the virtual columns in this object - * - * @return array - */ - public function getVirtualColumns() - { - return $this->virtualColumns; - } - - /** - * Checks the existence of a virtual column in this object - * - * @param string $name The virtual column name - * @return boolean - */ - public function hasVirtualColumn($name) - { - return array_key_exists($name, $this->virtualColumns); - } - - /** - * Get the value of a virtual column in this object - * - * @param string $name The virtual column name - * @return mixed - * - * @throws PropelException - */ - public function getVirtualColumn($name) - { - if (!$this->hasVirtualColumn($name)) { - throw new PropelException(sprintf('Cannot get value of inexistent virtual column %s.', $name)); - } - - return $this->virtualColumns[$name]; - } - - /** - * Set the value of a virtual column in this object - * - * @param string $name The virtual column name - * @param mixed $value The value to give to the virtual column - * - * @return Carousel The current object, for fluid interface - */ - public function setVirtualColumn($name, $value) - { - $this->virtualColumns[$name] = $value; - - return $this; - } - - /** - * Logs a message using Propel::log(). - * - * @param string $msg - * @param int $priority One of the Propel::LOG_* logging levels - * @return boolean - */ - protected function log($msg, $priority = Propel::LOG_INFO) - { - return Propel::log(get_class($this) . ': ' . $msg, $priority); - } - - /** - * Populate the current object from a string, using a given parser format - * - * $book = new Book(); - * $book->importFrom('JSON', '{"Id":9012,"Title":"Don Juan","ISBN":"0140422161","Price":12.99,"PublisherId":1234,"AuthorId":5678}'); - * - * - * @param mixed $parser A AbstractParser instance, - * or a format name ('XML', 'YAML', 'JSON', 'CSV') - * @param string $data The source data to import from - * - * @return Carousel The current object, for fluid interface - */ - public function importFrom($parser, $data) - { - if (!$parser instanceof AbstractParser) { - $parser = AbstractParser::getParser($parser); - } - - $this->fromArray($parser->toArray($data), TableMap::TYPE_PHPNAME); - - return $this; - } - - /** - * Export the current object properties to a string, using a given parser format - * - * $book = BookQuery::create()->findPk(9012); - * echo $book->exportTo('JSON'); - * => {"Id":9012,"Title":"Don Juan","ISBN":"0140422161","Price":12.99,"PublisherId":1234,"AuthorId":5678}'); - * - * - * @param mixed $parser A AbstractParser instance, or a format name ('XML', 'YAML', 'JSON', 'CSV') - * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy load(ed) columns. Defaults to TRUE. - * @return string The exported data - */ - public function exportTo($parser, $includeLazyLoadColumns = true) - { - if (!$parser instanceof AbstractParser) { - $parser = AbstractParser::getParser($parser); - } - - return $parser->fromArray($this->toArray(TableMap::TYPE_PHPNAME, $includeLazyLoadColumns, array(), true)); - } - - /** - * Clean up internal collections prior to serializing - * Avoids recursive loops that turn into segmentation faults when serializing - */ - public function __sleep() - { - $this->clearAllReferences(); - - return array_keys(get_object_vars($this)); - } - - /** - * Get the [id] column value. - * - * @return int - */ - public function getId() - { - - return $this->id; - } - - /** - * Get the [file] column value. - * - * @return string - */ - public function getFile() - { - - return $this->file; - } - - /** - * Get the [position] column value. - * - * @return int - */ - public function getPosition() - { - - return $this->position; - } - - /** - * Get the [url] column value. - * - * @return string - */ - public function getUrl() - { - - return $this->url; - } - - /** - * Get the [optionally formatted] temporal [created_at] column value. - * - * - * @param string $format The date/time format string (either date()-style or strftime()-style). - * If format is NULL, then the raw \DateTime object will be returned. - * - * @return mixed Formatted date/time value as string or \DateTime object (if format is NULL), NULL if column is NULL, and 0 if column value is 0000-00-00 00:00:00 - * - * @throws PropelException - if unable to parse/validate the date/time value. - */ - public function getCreatedAt($format = NULL) - { - if ($format === null) { - return $this->created_at; - } else { - return $this->created_at instanceof \DateTime ? $this->created_at->format($format) : null; - } - } - - /** - * Get the [optionally formatted] temporal [updated_at] column value. - * - * - * @param string $format The date/time format string (either date()-style or strftime()-style). - * If format is NULL, then the raw \DateTime object will be returned. - * - * @return mixed Formatted date/time value as string or \DateTime object (if format is NULL), NULL if column is NULL, and 0 if column value is 0000-00-00 00:00:00 - * - * @throws PropelException - if unable to parse/validate the date/time value. - */ - public function getUpdatedAt($format = NULL) - { - if ($format === null) { - return $this->updated_at; - } else { - return $this->updated_at instanceof \DateTime ? $this->updated_at->format($format) : null; - } - } - - /** - * Set the value of [id] column. - * - * @param int $v new value - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setId($v) - { - if ($v !== null) { - $v = (int) $v; - } - - if ($this->id !== $v) { - $this->id = $v; - $this->modifiedColumns[CarouselTableMap::ID] = true; - } - - - return $this; - } // setId() - - /** - * Set the value of [file] column. - * - * @param string $v new value - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setFile($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->file !== $v) { - $this->file = $v; - $this->modifiedColumns[CarouselTableMap::FILE] = true; - } - - - return $this; - } // setFile() - - /** - * Set the value of [position] column. - * - * @param int $v new value - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setPosition($v) - { - if ($v !== null) { - $v = (int) $v; - } - - if ($this->position !== $v) { - $this->position = $v; - $this->modifiedColumns[CarouselTableMap::POSITION] = true; - } - - - return $this; - } // setPosition() - - /** - * Set the value of [url] column. - * - * @param string $v new value - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setUrl($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->url !== $v) { - $this->url = $v; - $this->modifiedColumns[CarouselTableMap::URL] = true; - } - - - return $this; - } // setUrl() - - /** - * Sets the value of [created_at] column to a normalized version of the date/time value specified. - * - * @param mixed $v string, integer (timestamp), or \DateTime value. - * Empty strings are treated as NULL. - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setCreatedAt($v) - { - $dt = PropelDateTime::newInstance($v, null, '\DateTime'); - if ($this->created_at !== null || $dt !== null) { - if ($dt !== $this->created_at) { - $this->created_at = $dt; - $this->modifiedColumns[CarouselTableMap::CREATED_AT] = true; - } - } // if either are not null - - - return $this; - } // setCreatedAt() - - /** - * Sets the value of [updated_at] column to a normalized version of the date/time value specified. - * - * @param mixed $v string, integer (timestamp), or \DateTime value. - * Empty strings are treated as NULL. - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setUpdatedAt($v) - { - $dt = PropelDateTime::newInstance($v, null, '\DateTime'); - if ($this->updated_at !== null || $dt !== null) { - if ($dt !== $this->updated_at) { - $this->updated_at = $dt; - $this->modifiedColumns[CarouselTableMap::UPDATED_AT] = true; - } - } // if either are not null - - - return $this; - } // setUpdatedAt() - - /** - * Indicates whether the columns in this object are only set to default values. - * - * This method can be used in conjunction with isModified() to indicate whether an object is both - * modified _and_ has some values set which are non-default. - * - * @return boolean Whether the columns in this object are only been set with default values. - */ - public function hasOnlyDefaultValues() - { - // otherwise, everything was equal, so return TRUE - return true; - } // hasOnlyDefaultValues() - - /** - * Hydrates (populates) the object variables with values from the database resultset. - * - * An offset (0-based "start column") is specified so that objects can be hydrated - * with a subset of the columns in the resultset rows. This is needed, for example, - * for results of JOIN queries where the resultset row includes columns from two or - * more tables. - * - * @param array $row The row returned by DataFetcher->fetch(). - * @param int $startcol 0-based offset column which indicates which restultset column to start with. - * @param boolean $rehydrate Whether this object is being re-hydrated from the database. - * @param string $indexType The index type of $row. Mostly DataFetcher->getIndexType(). - One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * - * @return int next starting column - * @throws PropelException - Any caught Exception will be rewrapped as a PropelException. - */ - public function hydrate($row, $startcol = 0, $rehydrate = false, $indexType = TableMap::TYPE_NUM) - { - try { - - - $col = $row[TableMap::TYPE_NUM == $indexType ? 0 + $startcol : CarouselTableMap::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)]; - $this->id = (null !== $col) ? (int) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 1 + $startcol : CarouselTableMap::translateFieldName('File', TableMap::TYPE_PHPNAME, $indexType)]; - $this->file = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 2 + $startcol : CarouselTableMap::translateFieldName('Position', TableMap::TYPE_PHPNAME, $indexType)]; - $this->position = (null !== $col) ? (int) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : CarouselTableMap::translateFieldName('Url', TableMap::TYPE_PHPNAME, $indexType)]; - $this->url = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : CarouselTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)]; - if ($col === '0000-00-00 00:00:00') { - $col = null; - } - $this->created_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : CarouselTableMap::translateFieldName('UpdatedAt', TableMap::TYPE_PHPNAME, $indexType)]; - if ($col === '0000-00-00 00:00:00') { - $col = null; - } - $this->updated_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null; - $this->resetModified(); - - $this->setNew(false); - - if ($rehydrate) { - $this->ensureConsistency(); - } - - return $startcol + 6; // 6 = CarouselTableMap::NUM_HYDRATE_COLUMNS. - - } catch (Exception $e) { - throw new PropelException("Error populating \Carousel\Model\Carousel object", 0, $e); - } - } - - /** - * Checks and repairs the internal consistency of the object. - * - * This method is executed after an already-instantiated object is re-hydrated - * from the database. It exists to check any foreign keys to make sure that - * the objects related to the current object are correct based on foreign key. - * - * You can override this method in the stub class, but you should always invoke - * the base method from the overridden method (i.e. parent::ensureConsistency()), - * in case your model changes. - * - * @throws PropelException - */ - public function ensureConsistency() - { - } // ensureConsistency - - /** - * Reloads this object from datastore based on primary key and (optionally) resets all associated objects. - * - * This will only work if the object has been saved and has a valid primary key set. - * - * @param boolean $deep (optional) Whether to also de-associated any related objects. - * @param ConnectionInterface $con (optional) The ConnectionInterface connection to use. - * @return void - * @throws PropelException - if this object is deleted, unsaved or doesn't have pk match in db - */ - public function reload($deep = false, ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("Cannot reload a deleted object."); - } - - if ($this->isNew()) { - throw new PropelException("Cannot reload an unsaved object."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getReadConnection(CarouselTableMap::DATABASE_NAME); - } - - // We don't need to alter the object instance pool; we're just modifying this instance - // already in the pool. - - $dataFetcher = ChildCarouselQuery::create(null, $this->buildPkeyCriteria())->setFormatter(ModelCriteria::FORMAT_STATEMENT)->find($con); - $row = $dataFetcher->fetch(); - $dataFetcher->close(); - if (!$row) { - throw new PropelException('Cannot find matching row in the database to reload object values.'); - } - $this->hydrate($row, 0, true, $dataFetcher->getIndexType()); // rehydrate - - if ($deep) { // also de-associate any related objects? - - $this->collCarouselI18ns = null; - - } // if (deep) - } - - /** - * Removes this object from datastore and sets delete attribute. - * - * @param ConnectionInterface $con - * @return void - * @throws PropelException - * @see Carousel::setDeleted() - * @see Carousel::isDeleted() - */ - public function delete(ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("This object has already been deleted."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - - $con->beginTransaction(); - try { - $deleteQuery = ChildCarouselQuery::create() - ->filterByPrimaryKey($this->getPrimaryKey()); - $ret = $this->preDelete($con); - if ($ret) { - $deleteQuery->delete($con); - $this->postDelete($con); - $con->commit(); - $this->setDeleted(true); - } else { - $con->commit(); - } - } catch (Exception $e) { - $con->rollBack(); - throw $e; - } - } - - /** - * Persists this object to the database. - * - * If the object is new, it inserts it; otherwise an update is performed. - * All modified related objects will also be persisted in the doSave() - * method. This method wraps all precipitate database operations in a - * single transaction. - * - * @param ConnectionInterface $con - * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. - * @throws PropelException - * @see doSave() - */ - public function save(ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("You cannot save an object that has been deleted."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - - $con->beginTransaction(); - $isInsert = $this->isNew(); - try { - $ret = $this->preSave($con); - if ($isInsert) { - $ret = $ret && $this->preInsert($con); - // timestampable behavior - if (!$this->isColumnModified(CarouselTableMap::CREATED_AT)) { - $this->setCreatedAt(time()); - } - if (!$this->isColumnModified(CarouselTableMap::UPDATED_AT)) { - $this->setUpdatedAt(time()); - } - } else { - $ret = $ret && $this->preUpdate($con); - // timestampable behavior - if ($this->isModified() && !$this->isColumnModified(CarouselTableMap::UPDATED_AT)) { - $this->setUpdatedAt(time()); - } - } - if ($ret) { - $affectedRows = $this->doSave($con); - if ($isInsert) { - $this->postInsert($con); - } else { - $this->postUpdate($con); - } - $this->postSave($con); - CarouselTableMap::addInstanceToPool($this); - } else { - $affectedRows = 0; - } - $con->commit(); - - return $affectedRows; - } catch (Exception $e) { - $con->rollBack(); - throw $e; - } - } - - /** - * Performs the work of inserting or updating the row in the database. - * - * If the object is new, it inserts it; otherwise an update is performed. - * All related objects are also updated in this method. - * - * @param ConnectionInterface $con - * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. - * @throws PropelException - * @see save() - */ - protected function doSave(ConnectionInterface $con) - { - $affectedRows = 0; // initialize var to track total num of affected rows - if (!$this->alreadyInSave) { - $this->alreadyInSave = true; - - if ($this->isNew() || $this->isModified()) { - // persist changes - if ($this->isNew()) { - $this->doInsert($con); - } else { - $this->doUpdate($con); - } - $affectedRows += 1; - $this->resetModified(); - } - - if ($this->carouselI18nsScheduledForDeletion !== null) { - if (!$this->carouselI18nsScheduledForDeletion->isEmpty()) { - \Carousel\Model\CarouselI18nQuery::create() - ->filterByPrimaryKeys($this->carouselI18nsScheduledForDeletion->getPrimaryKeys(false)) - ->delete($con); - $this->carouselI18nsScheduledForDeletion = null; - } - } - - if ($this->collCarouselI18ns !== null) { - foreach ($this->collCarouselI18ns as $referrerFK) { - if (!$referrerFK->isDeleted() && ($referrerFK->isNew() || $referrerFK->isModified())) { - $affectedRows += $referrerFK->save($con); - } - } - } - - $this->alreadyInSave = false; - - } - - return $affectedRows; - } // doSave() - - /** - * Insert the row in the database. - * - * @param ConnectionInterface $con - * - * @throws PropelException - * @see doSave() - */ - protected function doInsert(ConnectionInterface $con) - { - $modifiedColumns = array(); - $index = 0; - - $this->modifiedColumns[CarouselTableMap::ID] = true; - if (null !== $this->id) { - throw new PropelException('Cannot insert a value for auto-increment primary key (' . CarouselTableMap::ID . ')'); - } - - // check the columns in natural order for more readable SQL queries - if ($this->isColumnModified(CarouselTableMap::ID)) { - $modifiedColumns[':p' . $index++] = 'ID'; - } - if ($this->isColumnModified(CarouselTableMap::FILE)) { - $modifiedColumns[':p' . $index++] = 'FILE'; - } - if ($this->isColumnModified(CarouselTableMap::POSITION)) { - $modifiedColumns[':p' . $index++] = 'POSITION'; - } - if ($this->isColumnModified(CarouselTableMap::URL)) { - $modifiedColumns[':p' . $index++] = 'URL'; - } - if ($this->isColumnModified(CarouselTableMap::CREATED_AT)) { - $modifiedColumns[':p' . $index++] = 'CREATED_AT'; - } - if ($this->isColumnModified(CarouselTableMap::UPDATED_AT)) { - $modifiedColumns[':p' . $index++] = 'UPDATED_AT'; - } - - $sql = sprintf( - 'INSERT INTO carousel (%s) VALUES (%s)', - implode(', ', $modifiedColumns), - implode(', ', array_keys($modifiedColumns)) - ); - - try { - $stmt = $con->prepare($sql); - foreach ($modifiedColumns as $identifier => $columnName) { - switch ($columnName) { - case 'ID': - $stmt->bindValue($identifier, $this->id, PDO::PARAM_INT); - break; - case 'FILE': - $stmt->bindValue($identifier, $this->file, PDO::PARAM_STR); - break; - case 'POSITION': - $stmt->bindValue($identifier, $this->position, PDO::PARAM_INT); - break; - case 'URL': - $stmt->bindValue($identifier, $this->url, PDO::PARAM_STR); - break; - case 'CREATED_AT': - $stmt->bindValue($identifier, $this->created_at ? $this->created_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR); - break; - case 'UPDATED_AT': - $stmt->bindValue($identifier, $this->updated_at ? $this->updated_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR); - break; - } - } - $stmt->execute(); - } catch (Exception $e) { - Propel::log($e->getMessage(), Propel::LOG_ERR); - throw new PropelException(sprintf('Unable to execute INSERT statement [%s]', $sql), 0, $e); - } - - try { - $pk = $con->lastInsertId(); - } catch (Exception $e) { - throw new PropelException('Unable to get autoincrement id.', 0, $e); - } - $this->setId($pk); - - $this->setNew(false); - } - - /** - * Update the row in the database. - * - * @param ConnectionInterface $con - * - * @return Integer Number of updated rows - * @see doSave() - */ - protected function doUpdate(ConnectionInterface $con) - { - $selectCriteria = $this->buildPkeyCriteria(); - $valuesCriteria = $this->buildCriteria(); - - return $selectCriteria->doUpdate($valuesCriteria, $con); - } - - /** - * Retrieves a field from the object by name passed in as a string. - * - * @param string $name name - * @param string $type The type of fieldname the $name is of: - * one of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @return mixed Value of field. - */ - public function getByName($name, $type = TableMap::TYPE_PHPNAME) - { - $pos = CarouselTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); - $field = $this->getByPosition($pos); - - return $field; - } - - /** - * Retrieves a field from the object by Position as specified in the xml schema. - * Zero-based. - * - * @param int $pos position in xml schema - * @return mixed Value of field at $pos - */ - public function getByPosition($pos) - { - switch ($pos) { - case 0: - return $this->getId(); - break; - case 1: - return $this->getFile(); - break; - case 2: - return $this->getPosition(); - break; - case 3: - return $this->getUrl(); - break; - case 4: - return $this->getCreatedAt(); - break; - case 5: - return $this->getUpdatedAt(); - break; - default: - return null; - break; - } // switch() - } - - /** - * Exports the object as an array. - * - * You can specify the key type of the array by passing one of the class - * type constants. - * - * @param string $keyType (optional) One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME, - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy loaded columns. Defaults to TRUE. - * @param array $alreadyDumpedObjects List of objects to skip to avoid recursion - * @param boolean $includeForeignObjects (optional) Whether to include hydrated related objects. Default to FALSE. - * - * @return array an associative array containing the field names (as keys) and field values - */ - public function toArray($keyType = TableMap::TYPE_PHPNAME, $includeLazyLoadColumns = true, $alreadyDumpedObjects = array(), $includeForeignObjects = false) - { - if (isset($alreadyDumpedObjects['Carousel'][$this->getPrimaryKey()])) { - return '*RECURSION*'; - } - $alreadyDumpedObjects['Carousel'][$this->getPrimaryKey()] = true; - $keys = CarouselTableMap::getFieldNames($keyType); - $result = array( - $keys[0] => $this->getId(), - $keys[1] => $this->getFile(), - $keys[2] => $this->getPosition(), - $keys[3] => $this->getUrl(), - $keys[4] => $this->getCreatedAt(), - $keys[5] => $this->getUpdatedAt(), - ); - $virtualColumns = $this->virtualColumns; - foreach ($virtualColumns as $key => $virtualColumn) { - $result[$key] = $virtualColumn; - } - - if ($includeForeignObjects) { - if (null !== $this->collCarouselI18ns) { - $result['CarouselI18ns'] = $this->collCarouselI18ns->toArray(null, true, $keyType, $includeLazyLoadColumns, $alreadyDumpedObjects); - } - } - - return $result; - } - - /** - * Sets a field from the object by name passed in as a string. - * - * @param string $name - * @param mixed $value field value - * @param string $type The type of fieldname the $name is of: - * one of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @return void - */ - public function setByName($name, $value, $type = TableMap::TYPE_PHPNAME) - { - $pos = CarouselTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); - - return $this->setByPosition($pos, $value); - } - - /** - * Sets a field from the object by Position as specified in the xml schema. - * Zero-based. - * - * @param int $pos position in xml schema - * @param mixed $value field value - * @return void - */ - public function setByPosition($pos, $value) - { - switch ($pos) { - case 0: - $this->setId($value); - break; - case 1: - $this->setFile($value); - break; - case 2: - $this->setPosition($value); - break; - case 3: - $this->setUrl($value); - break; - case 4: - $this->setCreatedAt($value); - break; - case 5: - $this->setUpdatedAt($value); - break; - } // switch() - } - - /** - * Populates the object using an array. - * - * This is particularly useful when populating an object from one of the - * request arrays (e.g. $_POST). This method goes through the column - * names, checking to see whether a matching key exists in populated - * array. If so the setByName() method is called for that column. - * - * You can specify the key type of the array by additionally passing one - * of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME, - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * The default key type is the column's TableMap::TYPE_PHPNAME. - * - * @param array $arr An array to populate the object from. - * @param string $keyType The type of keys the array uses. - * @return void - */ - public function fromArray($arr, $keyType = TableMap::TYPE_PHPNAME) - { - $keys = CarouselTableMap::getFieldNames($keyType); - - if (array_key_exists($keys[0], $arr)) $this->setId($arr[$keys[0]]); - if (array_key_exists($keys[1], $arr)) $this->setFile($arr[$keys[1]]); - if (array_key_exists($keys[2], $arr)) $this->setPosition($arr[$keys[2]]); - if (array_key_exists($keys[3], $arr)) $this->setUrl($arr[$keys[3]]); - if (array_key_exists($keys[4], $arr)) $this->setCreatedAt($arr[$keys[4]]); - if (array_key_exists($keys[5], $arr)) $this->setUpdatedAt($arr[$keys[5]]); - } - - /** - * Build a Criteria object containing the values of all modified columns in this object. - * - * @return Criteria The Criteria object containing all modified values. - */ - public function buildCriteria() - { - $criteria = new Criteria(CarouselTableMap::DATABASE_NAME); - - if ($this->isColumnModified(CarouselTableMap::ID)) $criteria->add(CarouselTableMap::ID, $this->id); - if ($this->isColumnModified(CarouselTableMap::FILE)) $criteria->add(CarouselTableMap::FILE, $this->file); - if ($this->isColumnModified(CarouselTableMap::POSITION)) $criteria->add(CarouselTableMap::POSITION, $this->position); - if ($this->isColumnModified(CarouselTableMap::URL)) $criteria->add(CarouselTableMap::URL, $this->url); - if ($this->isColumnModified(CarouselTableMap::CREATED_AT)) $criteria->add(CarouselTableMap::CREATED_AT, $this->created_at); - if ($this->isColumnModified(CarouselTableMap::UPDATED_AT)) $criteria->add(CarouselTableMap::UPDATED_AT, $this->updated_at); - - return $criteria; - } - - /** - * Builds a Criteria object containing the primary key for this object. - * - * Unlike buildCriteria() this method includes the primary key values regardless - * of whether or not they have been modified. - * - * @return Criteria The Criteria object containing value(s) for primary key(s). - */ - public function buildPkeyCriteria() - { - $criteria = new Criteria(CarouselTableMap::DATABASE_NAME); - $criteria->add(CarouselTableMap::ID, $this->id); - - return $criteria; - } - - /** - * Returns the primary key for this object (row). - * @return int - */ - public function getPrimaryKey() - { - return $this->getId(); - } - - /** - * Generic method to set the primary key (id column). - * - * @param int $key Primary key. - * @return void - */ - public function setPrimaryKey($key) - { - $this->setId($key); - } - - /** - * Returns true if the primary key for this object is null. - * @return boolean - */ - public function isPrimaryKeyNull() - { - - return null === $this->getId(); - } - - /** - * Sets contents of passed object to values from current object. - * - * If desired, this method can also make copies of all associated (fkey referrers) - * objects. - * - * @param object $copyObj An object of \Carousel\Model\Carousel (or compatible) type. - * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. - * @param boolean $makeNew Whether to reset autoincrement PKs and make the object new. - * @throws PropelException - */ - public function copyInto($copyObj, $deepCopy = false, $makeNew = true) - { - $copyObj->setFile($this->getFile()); - $copyObj->setPosition($this->getPosition()); - $copyObj->setUrl($this->getUrl()); - $copyObj->setCreatedAt($this->getCreatedAt()); - $copyObj->setUpdatedAt($this->getUpdatedAt()); - - if ($deepCopy) { - // important: temporarily setNew(false) because this affects the behavior of - // the getter/setter methods for fkey referrer objects. - $copyObj->setNew(false); - - foreach ($this->getCarouselI18ns() as $relObj) { - if ($relObj !== $this) { // ensure that we don't try to copy a reference to ourselves - $copyObj->addCarouselI18n($relObj->copy($deepCopy)); - } - } - - } // if ($deepCopy) - - if ($makeNew) { - $copyObj->setNew(true); - $copyObj->setId(NULL); // this is a auto-increment column, so set to default value - } - } - - /** - * Makes a copy of this object that will be inserted as a new row in table when saved. - * It creates a new object filling in the simple attributes, but skipping any primary - * keys that are defined for the table. - * - * If desired, this method can also make copies of all associated (fkey referrers) - * objects. - * - * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. - * @return \Carousel\Model\Carousel Clone of current object. - * @throws PropelException - */ - public function copy($deepCopy = false) - { - // we use get_class(), because this might be a subclass - $clazz = get_class($this); - $copyObj = new $clazz(); - $this->copyInto($copyObj, $deepCopy); - - return $copyObj; - } - - - /** - * Initializes a collection based on the name of a relation. - * Avoids crafting an 'init[$relationName]s' method name - * that wouldn't work when StandardEnglishPluralizer is used. - * - * @param string $relationName The name of the relation to initialize - * @return void - */ - public function initRelation($relationName) - { - if ('CarouselI18n' == $relationName) { - return $this->initCarouselI18ns(); - } - } - - /** - * Clears out the collCarouselI18ns collection - * - * This does not modify the database; however, it will remove any associated objects, causing - * them to be refetched by subsequent calls to accessor method. - * - * @return void - * @see addCarouselI18ns() - */ - public function clearCarouselI18ns() - { - $this->collCarouselI18ns = null; // important to set this to NULL since that means it is uninitialized - } - - /** - * Reset is the collCarouselI18ns collection loaded partially. - */ - public function resetPartialCarouselI18ns($v = true) - { - $this->collCarouselI18nsPartial = $v; - } - - /** - * Initializes the collCarouselI18ns collection. - * - * By default this just sets the collCarouselI18ns collection to an empty array (like clearcollCarouselI18ns()); - * however, you may wish to override this method in your stub class to provide setting appropriate - * to your application -- for example, setting the initial array to the values stored in database. - * - * @param boolean $overrideExisting If set to true, the method call initializes - * the collection even if it is not empty - * - * @return void - */ - public function initCarouselI18ns($overrideExisting = true) - { - if (null !== $this->collCarouselI18ns && !$overrideExisting) { - return; - } - $this->collCarouselI18ns = new ObjectCollection(); - $this->collCarouselI18ns->setModel('\Carousel\Model\CarouselI18n'); - } - - /** - * Gets an array of ChildCarouselI18n objects which contain a foreign key that references this object. - * - * If the $criteria is not null, it is used to always fetch the results from the database. - * Otherwise the results are fetched from the database the first time, then cached. - * Next time the same method is called without $criteria, the cached collection is returned. - * If this ChildCarousel is new, it will return - * an empty collection or the current collection; the criteria is ignored on a new object. - * - * @param Criteria $criteria optional Criteria object to narrow the query - * @param ConnectionInterface $con optional connection object - * @return Collection|ChildCarouselI18n[] List of ChildCarouselI18n objects - * @throws PropelException - */ - public function getCarouselI18ns($criteria = null, ConnectionInterface $con = null) - { - $partial = $this->collCarouselI18nsPartial && !$this->isNew(); - if (null === $this->collCarouselI18ns || null !== $criteria || $partial) { - if ($this->isNew() && null === $this->collCarouselI18ns) { - // return empty collection - $this->initCarouselI18ns(); - } else { - $collCarouselI18ns = ChildCarouselI18nQuery::create(null, $criteria) - ->filterByCarousel($this) - ->find($con); - - if (null !== $criteria) { - if (false !== $this->collCarouselI18nsPartial && count($collCarouselI18ns)) { - $this->initCarouselI18ns(false); - - foreach ($collCarouselI18ns as $obj) { - if (false == $this->collCarouselI18ns->contains($obj)) { - $this->collCarouselI18ns->append($obj); - } - } - - $this->collCarouselI18nsPartial = true; - } - - reset($collCarouselI18ns); - - return $collCarouselI18ns; - } - - if ($partial && $this->collCarouselI18ns) { - foreach ($this->collCarouselI18ns as $obj) { - if ($obj->isNew()) { - $collCarouselI18ns[] = $obj; - } - } - } - - $this->collCarouselI18ns = $collCarouselI18ns; - $this->collCarouselI18nsPartial = false; - } - } - - return $this->collCarouselI18ns; - } - - /** - * Sets a collection of CarouselI18n objects related by a one-to-many relationship - * to the current object. - * It will also schedule objects for deletion based on a diff between old objects (aka persisted) - * and new objects from the given Propel collection. - * - * @param Collection $carouselI18ns A Propel collection. - * @param ConnectionInterface $con Optional connection object - * @return ChildCarousel The current object (for fluent API support) - */ - public function setCarouselI18ns(Collection $carouselI18ns, ConnectionInterface $con = null) - { - $carouselI18nsToDelete = $this->getCarouselI18ns(new Criteria(), $con)->diff($carouselI18ns); - - - //since at least one column in the foreign key is at the same time a PK - //we can not just set a PK to NULL in the lines below. We have to store - //a backup of all values, so we are able to manipulate these items based on the onDelete value later. - $this->carouselI18nsScheduledForDeletion = clone $carouselI18nsToDelete; - - foreach ($carouselI18nsToDelete as $carouselI18nRemoved) { - $carouselI18nRemoved->setCarousel(null); - } - - $this->collCarouselI18ns = null; - foreach ($carouselI18ns as $carouselI18n) { - $this->addCarouselI18n($carouselI18n); - } - - $this->collCarouselI18ns = $carouselI18ns; - $this->collCarouselI18nsPartial = false; - - return $this; - } - - /** - * Returns the number of related CarouselI18n objects. - * - * @param Criteria $criteria - * @param boolean $distinct - * @param ConnectionInterface $con - * @return int Count of related CarouselI18n objects. - * @throws PropelException - */ - public function countCarouselI18ns(Criteria $criteria = null, $distinct = false, ConnectionInterface $con = null) - { - $partial = $this->collCarouselI18nsPartial && !$this->isNew(); - if (null === $this->collCarouselI18ns || null !== $criteria || $partial) { - if ($this->isNew() && null === $this->collCarouselI18ns) { - return 0; - } - - if ($partial && !$criteria) { - return count($this->getCarouselI18ns()); - } - - $query = ChildCarouselI18nQuery::create(null, $criteria); - if ($distinct) { - $query->distinct(); - } - - return $query - ->filterByCarousel($this) - ->count($con); - } - - return count($this->collCarouselI18ns); - } - - /** - * Method called to associate a ChildCarouselI18n object to this object - * through the ChildCarouselI18n foreign key attribute. - * - * @param ChildCarouselI18n $l ChildCarouselI18n - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function addCarouselI18n(ChildCarouselI18n $l) - { - if ($l && $locale = $l->getLocale()) { - $this->setLocale($locale); - $this->currentTranslations[$locale] = $l; - } - if ($this->collCarouselI18ns === null) { - $this->initCarouselI18ns(); - $this->collCarouselI18nsPartial = true; - } - - if (!in_array($l, $this->collCarouselI18ns->getArrayCopy(), true)) { // only add it if the **same** object is not already associated - $this->doAddCarouselI18n($l); - } - - return $this; - } - - /** - * @param CarouselI18n $carouselI18n The carouselI18n object to add. - */ - protected function doAddCarouselI18n($carouselI18n) - { - $this->collCarouselI18ns[]= $carouselI18n; - $carouselI18n->setCarousel($this); - } - - /** - * @param CarouselI18n $carouselI18n The carouselI18n object to remove. - * @return ChildCarousel The current object (for fluent API support) - */ - public function removeCarouselI18n($carouselI18n) - { - if ($this->getCarouselI18ns()->contains($carouselI18n)) { - $this->collCarouselI18ns->remove($this->collCarouselI18ns->search($carouselI18n)); - if (null === $this->carouselI18nsScheduledForDeletion) { - $this->carouselI18nsScheduledForDeletion = clone $this->collCarouselI18ns; - $this->carouselI18nsScheduledForDeletion->clear(); - } - $this->carouselI18nsScheduledForDeletion[]= clone $carouselI18n; - $carouselI18n->setCarousel(null); - } - - return $this; - } - - /** - * Clears the current object and sets all attributes to their default values - */ - public function clear() - { - $this->id = null; - $this->file = null; - $this->position = null; - $this->url = null; - $this->created_at = null; - $this->updated_at = null; - $this->alreadyInSave = false; - $this->clearAllReferences(); - $this->resetModified(); - $this->setNew(true); - $this->setDeleted(false); - } - - /** - * Resets all references to other model objects or collections of model objects. - * - * This method is a user-space workaround for PHP's inability to garbage collect - * objects with circular references (even in PHP 5.3). This is currently necessary - * when using Propel in certain daemon or large-volume/high-memory operations. - * - * @param boolean $deep Whether to also clear the references on all referrer objects. - */ - public function clearAllReferences($deep = false) - { - if ($deep) { - if ($this->collCarouselI18ns) { - foreach ($this->collCarouselI18ns as $o) { - $o->clearAllReferences($deep); - } - } - } // if ($deep) - - // i18n behavior - $this->currentLocale = 'en_US'; - $this->currentTranslations = null; - - $this->collCarouselI18ns = null; - } - - /** - * Return the string representation of this object - * - * @return string - */ - public function __toString() - { - return (string) $this->exportTo(CarouselTableMap::DEFAULT_STRING_FORMAT); - } - - // timestampable behavior - - /** - * Mark the current object so that the update date doesn't get updated during next save - * - * @return ChildCarousel The current object (for fluent API support) - */ - public function keepUpdateDateUnchanged() - { - $this->modifiedColumns[CarouselTableMap::UPDATED_AT] = true; - - return $this; - } - - // i18n behavior - - /** - * Sets the locale for translations - * - * @param string $locale Locale to use for the translation, e.g. 'fr_FR' - * - * @return ChildCarousel The current object (for fluent API support) - */ - public function setLocale($locale = 'en_US') - { - $this->currentLocale = $locale; - - return $this; - } - - /** - * Gets the locale for translations - * - * @return string $locale Locale to use for the translation, e.g. 'fr_FR' - */ - public function getLocale() - { - return $this->currentLocale; - } - - /** - * Returns the current translation for a given locale - * - * @param string $locale Locale to use for the translation, e.g. 'fr_FR' - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarouselI18n */ - public function getTranslation($locale = 'en_US', ConnectionInterface $con = null) - { - if (!isset($this->currentTranslations[$locale])) { - if (null !== $this->collCarouselI18ns) { - foreach ($this->collCarouselI18ns as $translation) { - if ($translation->getLocale() == $locale) { - $this->currentTranslations[$locale] = $translation; - - return $translation; - } - } - } - if ($this->isNew()) { - $translation = new ChildCarouselI18n(); - $translation->setLocale($locale); - } else { - $translation = ChildCarouselI18nQuery::create() - ->filterByPrimaryKey(array($this->getPrimaryKey(), $locale)) - ->findOneOrCreate($con); - $this->currentTranslations[$locale] = $translation; - } - $this->addCarouselI18n($translation); - } - - return $this->currentTranslations[$locale]; - } - - /** - * Remove the translation for a given locale - * - * @param string $locale Locale to use for the translation, e.g. 'fr_FR' - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarousel The current object (for fluent API support) - */ - public function removeTranslation($locale = 'en_US', ConnectionInterface $con = null) - { - if (!$this->isNew()) { - ChildCarouselI18nQuery::create() - ->filterByPrimaryKey(array($this->getPrimaryKey(), $locale)) - ->delete($con); - } - if (isset($this->currentTranslations[$locale])) { - unset($this->currentTranslations[$locale]); - } - foreach ($this->collCarouselI18ns as $key => $translation) { - if ($translation->getLocale() == $locale) { - unset($this->collCarouselI18ns[$key]); - break; - } - } - - return $this; - } - - /** - * Returns the current translation - * - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarouselI18n */ - public function getCurrentTranslation(ConnectionInterface $con = null) - { - return $this->getTranslation($this->getLocale(), $con); - } - - - /** - * Get the [alt] column value. - * - * @return string - */ - public function getAlt() - { - return $this->getCurrentTranslation()->getAlt(); - } - - - /** - * Set the value of [alt] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setAlt($v) - { $this->getCurrentTranslation()->setAlt($v); - - return $this; - } - - - /** - * Get the [title] column value. - * - * @return string - */ - public function getTitle() - { - return $this->getCurrentTranslation()->getTitle(); - } - - - /** - * Set the value of [title] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setTitle($v) - { $this->getCurrentTranslation()->setTitle($v); - - return $this; - } - - - /** - * Get the [description] column value. - * - * @return string - */ - public function getDescription() - { - return $this->getCurrentTranslation()->getDescription(); - } - - - /** - * Set the value of [description] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setDescription($v) - { $this->getCurrentTranslation()->setDescription($v); - - return $this; - } - - - /** - * Get the [chapo] column value. - * - * @return string - */ - public function getChapo() - { - return $this->getCurrentTranslation()->getChapo(); - } - - - /** - * Set the value of [chapo] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setChapo($v) - { $this->getCurrentTranslation()->setChapo($v); - - return $this; - } - - - /** - * Get the [postscriptum] column value. - * - * @return string - */ - public function getPostscriptum() - { - return $this->getCurrentTranslation()->getPostscriptum(); - } - - - /** - * Set the value of [postscriptum] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setPostscriptum($v) - { $this->getCurrentTranslation()->setPostscriptum($v); - - return $this; - } - - /** - * Code to be run before persisting the object - * @param ConnectionInterface $con - * @return boolean - */ - public function preSave(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after persisting the object - * @param ConnectionInterface $con - */ - public function postSave(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before inserting to database - * @param ConnectionInterface $con - * @return boolean - */ - public function preInsert(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after inserting to database - * @param ConnectionInterface $con - */ - public function postInsert(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before updating the object in database - * @param ConnectionInterface $con - * @return boolean - */ - public function preUpdate(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after updating the object in database - * @param ConnectionInterface $con - */ - public function postUpdate(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before deleting the object in database - * @param ConnectionInterface $con - * @return boolean - */ - public function preDelete(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after deleting the object in database - * @param ConnectionInterface $con - */ - public function postDelete(ConnectionInterface $con = null) - { - - } - - - /** - * Derived method to catches calls to undefined methods. - * - * Provides magic import/export method support (fromXML()/toXML(), fromYAML()/toYAML(), etc.). - * Allows to define default __call() behavior if you overwrite __call() - * - * @param string $name - * @param mixed $params - * - * @return array|string - */ - public function __call($name, $params) - { - if (0 === strpos($name, 'get')) { - $virtualColumn = substr($name, 3); - if ($this->hasVirtualColumn($virtualColumn)) { - return $this->getVirtualColumn($virtualColumn); - } - - $virtualColumn = lcfirst($virtualColumn); - if ($this->hasVirtualColumn($virtualColumn)) { - return $this->getVirtualColumn($virtualColumn); - } - } - - if (0 === strpos($name, 'from')) { - $format = substr($name, 4); - - return $this->importFrom($format, reset($params)); - } - - if (0 === strpos($name, 'to')) { - $format = substr($name, 2); - $includeLazyLoadColumns = isset($params[0]) ? $params[0] : true; - - return $this->exportTo($format, $includeLazyLoadColumns); - } - - throw new BadMethodCallException(sprintf('Call to undefined method: %s.', $name)); - } - -} diff --git a/local/modules/modules/Carousel/Model/Base/CarouselI18nQuery.php b/local/modules/modules/Carousel/Model/Base/CarouselI18nQuery.php deleted file mode 100644 index 51711281..00000000 --- a/local/modules/modules/Carousel/Model/Base/CarouselI18nQuery.php +++ /dev/null @@ -1,640 +0,0 @@ -setModelAlias($modelAlias); - } - if ($criteria instanceof Criteria) { - $query->mergeWith($criteria); - } - - return $query; - } - - /** - * Find object by primary key. - * Propel uses the instance pool to skip the database if the object exists. - * Go fast if the query is untouched. - * - * - * $obj = $c->findPk(array(12, 34), $con); - * - * - * @param array[$id, $locale] $key Primary key to use for the query - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarouselI18n|array|mixed the result, formatted by the current formatter - */ - public function findPk($key, $con = null) - { - if ($key === null) { - return null; - } - if ((null !== ($obj = CarouselI18nTableMap::getInstanceFromPool(serialize(array((string) $key[0], (string) $key[1]))))) && !$this->formatter) { - // the object is already in the instance pool - return $obj; - } - if ($con === null) { - $con = Propel::getServiceContainer()->getReadConnection(CarouselI18nTableMap::DATABASE_NAME); - } - $this->basePreSelect($con); - if ($this->formatter || $this->modelAlias || $this->with || $this->select - || $this->selectColumns || $this->asColumns || $this->selectModifiers - || $this->map || $this->having || $this->joins) { - return $this->findPkComplex($key, $con); - } else { - return $this->findPkSimple($key, $con); - } - } - - /** - * Find object by primary key using raw SQL to go fast. - * Bypass doSelect() and the object formatter by using generated code. - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con A connection object - * - * @return ChildCarouselI18n A model object, or null if the key is not found - */ - protected function findPkSimple($key, $con) - { - $sql = 'SELECT ID, LOCALE, ALT, TITLE, DESCRIPTION, CHAPO, POSTSCRIPTUM FROM carousel_i18n WHERE ID = :p0 AND LOCALE = :p1'; - try { - $stmt = $con->prepare($sql); - $stmt->bindValue(':p0', $key[0], PDO::PARAM_INT); - $stmt->bindValue(':p1', $key[1], PDO::PARAM_STR); - $stmt->execute(); - } catch (Exception $e) { - Propel::log($e->getMessage(), Propel::LOG_ERR); - throw new PropelException(sprintf('Unable to execute SELECT statement [%s]', $sql), 0, $e); - } - $obj = null; - if ($row = $stmt->fetch(\PDO::FETCH_NUM)) { - $obj = new ChildCarouselI18n(); - $obj->hydrate($row); - CarouselI18nTableMap::addInstanceToPool($obj, serialize(array((string) $key[0], (string) $key[1]))); - } - $stmt->closeCursor(); - - return $obj; - } - - /** - * Find object by primary key. - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con A connection object - * - * @return ChildCarouselI18n|array|mixed the result, formatted by the current formatter - */ - protected function findPkComplex($key, $con) - { - // As the query uses a PK condition, no limit(1) is necessary. - $criteria = $this->isKeepQuery() ? clone $this : $this; - $dataFetcher = $criteria - ->filterByPrimaryKey($key) - ->doSelect($con); - - return $criteria->getFormatter()->init($criteria)->formatOne($dataFetcher); - } - - /** - * Find objects by primary key - * - * $objs = $c->findPks(array(array(12, 56), array(832, 123), array(123, 456)), $con); - * - * @param array $keys Primary keys to use for the query - * @param ConnectionInterface $con an optional connection object - * - * @return ObjectCollection|array|mixed the list of results, formatted by the current formatter - */ - public function findPks($keys, $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getReadConnection($this->getDbName()); - } - $this->basePreSelect($con); - $criteria = $this->isKeepQuery() ? clone $this : $this; - $dataFetcher = $criteria - ->filterByPrimaryKeys($keys) - ->doSelect($con); - - return $criteria->getFormatter()->init($criteria)->format($dataFetcher); - } - - /** - * Filter the query by primary key - * - * @param mixed $key Primary key to use for the query - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByPrimaryKey($key) - { - $this->addUsingAlias(CarouselI18nTableMap::ID, $key[0], Criteria::EQUAL); - $this->addUsingAlias(CarouselI18nTableMap::LOCALE, $key[1], Criteria::EQUAL); - - return $this; - } - - /** - * Filter the query by a list of primary keys - * - * @param array $keys The list of primary key to use for the query - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByPrimaryKeys($keys) - { - if (empty($keys)) { - return $this->add(null, '1<>1', Criteria::CUSTOM); - } - foreach ($keys as $key) { - $cton0 = $this->getNewCriterion(CarouselI18nTableMap::ID, $key[0], Criteria::EQUAL); - $cton1 = $this->getNewCriterion(CarouselI18nTableMap::LOCALE, $key[1], Criteria::EQUAL); - $cton0->addAnd($cton1); - $this->addOr($cton0); - } - - return $this; - } - - /** - * Filter the query on the id column - * - * Example usage: - * - * $query->filterById(1234); // WHERE id = 1234 - * $query->filterById(array(12, 34)); // WHERE id IN (12, 34) - * $query->filterById(array('min' => 12)); // WHERE id > 12 - * - * - * @see filterByCarousel() - * - * @param mixed $id The value to use as filter. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterById($id = null, $comparison = null) - { - if (is_array($id)) { - $useMinMax = false; - if (isset($id['min'])) { - $this->addUsingAlias(CarouselI18nTableMap::ID, $id['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($id['max'])) { - $this->addUsingAlias(CarouselI18nTableMap::ID, $id['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::ID, $id, $comparison); - } - - /** - * Filter the query on the locale column - * - * Example usage: - * - * $query->filterByLocale('fooValue'); // WHERE locale = 'fooValue' - * $query->filterByLocale('%fooValue%'); // WHERE locale LIKE '%fooValue%' - * - * - * @param string $locale The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByLocale($locale = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($locale)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $locale)) { - $locale = str_replace('*', '%', $locale); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::LOCALE, $locale, $comparison); - } - - /** - * Filter the query on the alt column - * - * Example usage: - * - * $query->filterByAlt('fooValue'); // WHERE alt = 'fooValue' - * $query->filterByAlt('%fooValue%'); // WHERE alt LIKE '%fooValue%' - * - * - * @param string $alt The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByAlt($alt = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($alt)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $alt)) { - $alt = str_replace('*', '%', $alt); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::ALT, $alt, $comparison); - } - - /** - * Filter the query on the title column - * - * Example usage: - * - * $query->filterByTitle('fooValue'); // WHERE title = 'fooValue' - * $query->filterByTitle('%fooValue%'); // WHERE title LIKE '%fooValue%' - * - * - * @param string $title The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByTitle($title = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($title)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $title)) { - $title = str_replace('*', '%', $title); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::TITLE, $title, $comparison); - } - - /** - * Filter the query on the description column - * - * Example usage: - * - * $query->filterByDescription('fooValue'); // WHERE description = 'fooValue' - * $query->filterByDescription('%fooValue%'); // WHERE description LIKE '%fooValue%' - * - * - * @param string $description The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByDescription($description = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($description)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $description)) { - $description = str_replace('*', '%', $description); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::DESCRIPTION, $description, $comparison); - } - - /** - * Filter the query on the chapo column - * - * Example usage: - * - * $query->filterByChapo('fooValue'); // WHERE chapo = 'fooValue' - * $query->filterByChapo('%fooValue%'); // WHERE chapo LIKE '%fooValue%' - * - * - * @param string $chapo The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByChapo($chapo = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($chapo)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $chapo)) { - $chapo = str_replace('*', '%', $chapo); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::CHAPO, $chapo, $comparison); - } - - /** - * Filter the query on the postscriptum column - * - * Example usage: - * - * $query->filterByPostscriptum('fooValue'); // WHERE postscriptum = 'fooValue' - * $query->filterByPostscriptum('%fooValue%'); // WHERE postscriptum LIKE '%fooValue%' - * - * - * @param string $postscriptum The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByPostscriptum($postscriptum = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($postscriptum)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $postscriptum)) { - $postscriptum = str_replace('*', '%', $postscriptum); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::POSTSCRIPTUM, $postscriptum, $comparison); - } - - /** - * Filter the query by a related \Carousel\Model\Carousel object - * - * @param \Carousel\Model\Carousel|ObjectCollection $carousel The related object(s) to use as filter - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByCarousel($carousel, $comparison = null) - { - if ($carousel instanceof \Carousel\Model\Carousel) { - return $this - ->addUsingAlias(CarouselI18nTableMap::ID, $carousel->getId(), $comparison); - } elseif ($carousel instanceof ObjectCollection) { - if (null === $comparison) { - $comparison = Criteria::IN; - } - - return $this - ->addUsingAlias(CarouselI18nTableMap::ID, $carousel->toKeyValue('PrimaryKey', 'Id'), $comparison); - } else { - throw new PropelException('filterByCarousel() only accepts arguments of type \Carousel\Model\Carousel or Collection'); - } - } - - /** - * Adds a JOIN clause to the query using the Carousel relation - * - * @param string $relationAlias optional alias for the relation - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function joinCarousel($relationAlias = null, $joinType = 'LEFT JOIN') - { - $tableMap = $this->getTableMap(); - $relationMap = $tableMap->getRelation('Carousel'); - - // create a ModelJoin object for this join - $join = new ModelJoin(); - $join->setJoinType($joinType); - $join->setRelationMap($relationMap, $this->useAliasInSQL ? $this->getModelAlias() : null, $relationAlias); - if ($previousJoin = $this->getPreviousJoin()) { - $join->setPreviousJoin($previousJoin); - } - - // add the ModelJoin to the current object - if ($relationAlias) { - $this->addAlias($relationAlias, $relationMap->getRightTable()->getName()); - $this->addJoinObject($join, $relationAlias); - } else { - $this->addJoinObject($join, 'Carousel'); - } - - return $this; - } - - /** - * Use the Carousel relation Carousel object - * - * @see useQuery() - * - * @param string $relationAlias optional alias for the relation, - * to be used as main alias in the secondary query - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' - * - * @return \Carousel\Model\CarouselQuery A secondary query class using the current class as primary query - */ - public function useCarouselQuery($relationAlias = null, $joinType = 'LEFT JOIN') - { - return $this - ->joinCarousel($relationAlias, $joinType) - ->useQuery($relationAlias ? $relationAlias : 'Carousel', '\Carousel\Model\CarouselQuery'); - } - - /** - * Exclude object from result - * - * @param ChildCarouselI18n $carouselI18n Object to remove from the list of results - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function prune($carouselI18n = null) - { - if ($carouselI18n) { - $this->addCond('pruneCond0', $this->getAliasedColName(CarouselI18nTableMap::ID), $carouselI18n->getId(), Criteria::NOT_EQUAL); - $this->addCond('pruneCond1', $this->getAliasedColName(CarouselI18nTableMap::LOCALE), $carouselI18n->getLocale(), Criteria::NOT_EQUAL); - $this->combine(array('pruneCond0', 'pruneCond1'), Criteria::LOGICAL_OR); - } - - return $this; - } - - /** - * Deletes all rows from the carousel_i18n table. - * - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). - */ - public function doDeleteAll(ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - $affectedRows = 0; // initialize var to track total num of affected rows - try { - // use transaction because $criteria could contain info - // for more than one table or we could emulating ON DELETE CASCADE, etc. - $con->beginTransaction(); - $affectedRows += parent::doDeleteAll($con); - // Because this db requires some delete cascade/set null emulation, we have to - // clear the cached instance *after* the emulation has happened (since - // instances get re-added by the select statement contained therein). - CarouselI18nTableMap::clearInstancePool(); - CarouselI18nTableMap::clearRelatedInstancePool(); - - $con->commit(); - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - - return $affectedRows; - } - - /** - * Performs a DELETE on the database, given a ChildCarouselI18n or Criteria object OR a primary key value. - * - * @param mixed $values Criteria or ChildCarouselI18n object or primary key or array of primary keys - * which is used to create the DELETE statement - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows - * if supported by native driver or if emulated using Propel. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public function delete(ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - $criteria = $this; - - // Set the correct dbName - $criteria->setDbName(CarouselI18nTableMap::DATABASE_NAME); - - $affectedRows = 0; // initialize var to track total num of affected rows - - try { - // use transaction because $criteria could contain info - // for more than one table or we could emulating ON DELETE CASCADE, etc. - $con->beginTransaction(); - - - CarouselI18nTableMap::removeInstanceFromPool($criteria); - - $affectedRows += ModelCriteria::delete($con); - CarouselI18nTableMap::clearRelatedInstancePool(); - $con->commit(); - - return $affectedRows; - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - } - -} // CarouselI18nQuery diff --git a/local/modules/modules/Carousel/Model/Base/CarouselQuery.php b/local/modules/modules/Carousel/Model/Base/CarouselQuery.php deleted file mode 100644 index b9387e00..00000000 --- a/local/modules/modules/Carousel/Model/Base/CarouselQuery.php +++ /dev/null @@ -1,753 +0,0 @@ -setModelAlias($modelAlias); - } - if ($criteria instanceof Criteria) { - $query->mergeWith($criteria); - } - - return $query; - } - - /** - * Find object by primary key. - * Propel uses the instance pool to skip the database if the object exists. - * Go fast if the query is untouched. - * - * - * $obj = $c->findPk(12, $con); - * - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarousel|array|mixed the result, formatted by the current formatter - */ - public function findPk($key, $con = null) - { - if ($key === null) { - return null; - } - if ((null !== ($obj = CarouselTableMap::getInstanceFromPool((string) $key))) && !$this->formatter) { - // the object is already in the instance pool - return $obj; - } - if ($con === null) { - $con = Propel::getServiceContainer()->getReadConnection(CarouselTableMap::DATABASE_NAME); - } - $this->basePreSelect($con); - if ($this->formatter || $this->modelAlias || $this->with || $this->select - || $this->selectColumns || $this->asColumns || $this->selectModifiers - || $this->map || $this->having || $this->joins) { - return $this->findPkComplex($key, $con); - } else { - return $this->findPkSimple($key, $con); - } - } - - /** - * Find object by primary key using raw SQL to go fast. - * Bypass doSelect() and the object formatter by using generated code. - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con A connection object - * - * @return ChildCarousel A model object, or null if the key is not found - */ - protected function findPkSimple($key, $con) - { - $sql = 'SELECT ID, FILE, POSITION, URL, CREATED_AT, UPDATED_AT FROM carousel WHERE ID = :p0'; - try { - $stmt = $con->prepare($sql); - $stmt->bindValue(':p0', $key, PDO::PARAM_INT); - $stmt->execute(); - } catch (Exception $e) { - Propel::log($e->getMessage(), Propel::LOG_ERR); - throw new PropelException(sprintf('Unable to execute SELECT statement [%s]', $sql), 0, $e); - } - $obj = null; - if ($row = $stmt->fetch(\PDO::FETCH_NUM)) { - $obj = new ChildCarousel(); - $obj->hydrate($row); - CarouselTableMap::addInstanceToPool($obj, (string) $key); - } - $stmt->closeCursor(); - - return $obj; - } - - /** - * Find object by primary key. - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con A connection object - * - * @return ChildCarousel|array|mixed the result, formatted by the current formatter - */ - protected function findPkComplex($key, $con) - { - // As the query uses a PK condition, no limit(1) is necessary. - $criteria = $this->isKeepQuery() ? clone $this : $this; - $dataFetcher = $criteria - ->filterByPrimaryKey($key) - ->doSelect($con); - - return $criteria->getFormatter()->init($criteria)->formatOne($dataFetcher); - } - - /** - * Find objects by primary key - * - * $objs = $c->findPks(array(12, 56, 832), $con); - * - * @param array $keys Primary keys to use for the query - * @param ConnectionInterface $con an optional connection object - * - * @return ObjectCollection|array|mixed the list of results, formatted by the current formatter - */ - public function findPks($keys, $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getReadConnection($this->getDbName()); - } - $this->basePreSelect($con); - $criteria = $this->isKeepQuery() ? clone $this : $this; - $dataFetcher = $criteria - ->filterByPrimaryKeys($keys) - ->doSelect($con); - - return $criteria->getFormatter()->init($criteria)->format($dataFetcher); - } - - /** - * Filter the query by primary key - * - * @param mixed $key Primary key to use for the query - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByPrimaryKey($key) - { - - return $this->addUsingAlias(CarouselTableMap::ID, $key, Criteria::EQUAL); - } - - /** - * Filter the query by a list of primary keys - * - * @param array $keys The list of primary key to use for the query - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByPrimaryKeys($keys) - { - - return $this->addUsingAlias(CarouselTableMap::ID, $keys, Criteria::IN); - } - - /** - * Filter the query on the id column - * - * Example usage: - * - * $query->filterById(1234); // WHERE id = 1234 - * $query->filterById(array(12, 34)); // WHERE id IN (12, 34) - * $query->filterById(array('min' => 12)); // WHERE id > 12 - * - * - * @param mixed $id The value to use as filter. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterById($id = null, $comparison = null) - { - if (is_array($id)) { - $useMinMax = false; - if (isset($id['min'])) { - $this->addUsingAlias(CarouselTableMap::ID, $id['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($id['max'])) { - $this->addUsingAlias(CarouselTableMap::ID, $id['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselTableMap::ID, $id, $comparison); - } - - /** - * Filter the query on the file column - * - * Example usage: - * - * $query->filterByFile('fooValue'); // WHERE file = 'fooValue' - * $query->filterByFile('%fooValue%'); // WHERE file LIKE '%fooValue%' - * - * - * @param string $file The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByFile($file = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($file)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $file)) { - $file = str_replace('*', '%', $file); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselTableMap::FILE, $file, $comparison); - } - - /** - * Filter the query on the position column - * - * Example usage: - * - * $query->filterByPosition(1234); // WHERE position = 1234 - * $query->filterByPosition(array(12, 34)); // WHERE position IN (12, 34) - * $query->filterByPosition(array('min' => 12)); // WHERE position > 12 - * - * - * @param mixed $position The value to use as filter. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByPosition($position = null, $comparison = null) - { - if (is_array($position)) { - $useMinMax = false; - if (isset($position['min'])) { - $this->addUsingAlias(CarouselTableMap::POSITION, $position['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($position['max'])) { - $this->addUsingAlias(CarouselTableMap::POSITION, $position['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselTableMap::POSITION, $position, $comparison); - } - - /** - * Filter the query on the url column - * - * Example usage: - * - * $query->filterByUrl('fooValue'); // WHERE url = 'fooValue' - * $query->filterByUrl('%fooValue%'); // WHERE url LIKE '%fooValue%' - * - * - * @param string $url The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByUrl($url = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($url)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $url)) { - $url = str_replace('*', '%', $url); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselTableMap::URL, $url, $comparison); - } - - /** - * Filter the query on the created_at column - * - * Example usage: - * - * $query->filterByCreatedAt('2011-03-14'); // WHERE created_at = '2011-03-14' - * $query->filterByCreatedAt('now'); // WHERE created_at = '2011-03-14' - * $query->filterByCreatedAt(array('max' => 'yesterday')); // WHERE created_at > '2011-03-13' - * - * - * @param mixed $createdAt The value to use as filter. - * Values can be integers (unix timestamps), DateTime objects, or strings. - * Empty strings are treated as NULL. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByCreatedAt($createdAt = null, $comparison = null) - { - if (is_array($createdAt)) { - $useMinMax = false; - if (isset($createdAt['min'])) { - $this->addUsingAlias(CarouselTableMap::CREATED_AT, $createdAt['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($createdAt['max'])) { - $this->addUsingAlias(CarouselTableMap::CREATED_AT, $createdAt['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselTableMap::CREATED_AT, $createdAt, $comparison); - } - - /** - * Filter the query on the updated_at column - * - * Example usage: - * - * $query->filterByUpdatedAt('2011-03-14'); // WHERE updated_at = '2011-03-14' - * $query->filterByUpdatedAt('now'); // WHERE updated_at = '2011-03-14' - * $query->filterByUpdatedAt(array('max' => 'yesterday')); // WHERE updated_at > '2011-03-13' - * - * - * @param mixed $updatedAt The value to use as filter. - * Values can be integers (unix timestamps), DateTime objects, or strings. - * Empty strings are treated as NULL. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByUpdatedAt($updatedAt = null, $comparison = null) - { - if (is_array($updatedAt)) { - $useMinMax = false; - if (isset($updatedAt['min'])) { - $this->addUsingAlias(CarouselTableMap::UPDATED_AT, $updatedAt['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($updatedAt['max'])) { - $this->addUsingAlias(CarouselTableMap::UPDATED_AT, $updatedAt['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselTableMap::UPDATED_AT, $updatedAt, $comparison); - } - - /** - * Filter the query by a related \Carousel\Model\CarouselI18n object - * - * @param \Carousel\Model\CarouselI18n|ObjectCollection $carouselI18n the related object to use as filter - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByCarouselI18n($carouselI18n, $comparison = null) - { - if ($carouselI18n instanceof \Carousel\Model\CarouselI18n) { - return $this - ->addUsingAlias(CarouselTableMap::ID, $carouselI18n->getId(), $comparison); - } elseif ($carouselI18n instanceof ObjectCollection) { - return $this - ->useCarouselI18nQuery() - ->filterByPrimaryKeys($carouselI18n->getPrimaryKeys()) - ->endUse(); - } else { - throw new PropelException('filterByCarouselI18n() only accepts arguments of type \Carousel\Model\CarouselI18n or Collection'); - } - } - - /** - * Adds a JOIN clause to the query using the CarouselI18n relation - * - * @param string $relationAlias optional alias for the relation - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function joinCarouselI18n($relationAlias = null, $joinType = 'LEFT JOIN') - { - $tableMap = $this->getTableMap(); - $relationMap = $tableMap->getRelation('CarouselI18n'); - - // create a ModelJoin object for this join - $join = new ModelJoin(); - $join->setJoinType($joinType); - $join->setRelationMap($relationMap, $this->useAliasInSQL ? $this->getModelAlias() : null, $relationAlias); - if ($previousJoin = $this->getPreviousJoin()) { - $join->setPreviousJoin($previousJoin); - } - - // add the ModelJoin to the current object - if ($relationAlias) { - $this->addAlias($relationAlias, $relationMap->getRightTable()->getName()); - $this->addJoinObject($join, $relationAlias); - } else { - $this->addJoinObject($join, 'CarouselI18n'); - } - - return $this; - } - - /** - * Use the CarouselI18n relation CarouselI18n object - * - * @see useQuery() - * - * @param string $relationAlias optional alias for the relation, - * to be used as main alias in the secondary query - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' - * - * @return \Carousel\Model\CarouselI18nQuery A secondary query class using the current class as primary query - */ - public function useCarouselI18nQuery($relationAlias = null, $joinType = 'LEFT JOIN') - { - return $this - ->joinCarouselI18n($relationAlias, $joinType) - ->useQuery($relationAlias ? $relationAlias : 'CarouselI18n', '\Carousel\Model\CarouselI18nQuery'); - } - - /** - * Exclude object from result - * - * @param ChildCarousel $carousel Object to remove from the list of results - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function prune($carousel = null) - { - if ($carousel) { - $this->addUsingAlias(CarouselTableMap::ID, $carousel->getId(), Criteria::NOT_EQUAL); - } - - return $this; - } - - /** - * Deletes all rows from the carousel table. - * - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). - */ - public function doDeleteAll(ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - $affectedRows = 0; // initialize var to track total num of affected rows - try { - // use transaction because $criteria could contain info - // for more than one table or we could emulating ON DELETE CASCADE, etc. - $con->beginTransaction(); - $affectedRows += parent::doDeleteAll($con); - // Because this db requires some delete cascade/set null emulation, we have to - // clear the cached instance *after* the emulation has happened (since - // instances get re-added by the select statement contained therein). - CarouselTableMap::clearInstancePool(); - CarouselTableMap::clearRelatedInstancePool(); - - $con->commit(); - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - - return $affectedRows; - } - - /** - * Performs a DELETE on the database, given a ChildCarousel or Criteria object OR a primary key value. - * - * @param mixed $values Criteria or ChildCarousel object or primary key or array of primary keys - * which is used to create the DELETE statement - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows - * if supported by native driver or if emulated using Propel. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public function delete(ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - - $criteria = $this; - - // Set the correct dbName - $criteria->setDbName(CarouselTableMap::DATABASE_NAME); - - $affectedRows = 0; // initialize var to track total num of affected rows - - try { - // use transaction because $criteria could contain info - // for more than one table or we could emulating ON DELETE CASCADE, etc. - $con->beginTransaction(); - - - CarouselTableMap::removeInstanceFromPool($criteria); - - $affectedRows += ModelCriteria::delete($con); - CarouselTableMap::clearRelatedInstancePool(); - $con->commit(); - - return $affectedRows; - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - } - - // timestampable behavior - - /** - * Filter by the latest updated - * - * @param int $nbDays Maximum age of the latest update in days - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function recentlyUpdated($nbDays = 7) - { - return $this->addUsingAlias(CarouselTableMap::UPDATED_AT, time() - $nbDays * 24 * 60 * 60, Criteria::GREATER_EQUAL); - } - - /** - * Filter by the latest created - * - * @param int $nbDays Maximum age of in days - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function recentlyCreated($nbDays = 7) - { - return $this->addUsingAlias(CarouselTableMap::CREATED_AT, time() - $nbDays * 24 * 60 * 60, Criteria::GREATER_EQUAL); - } - - /** - * Order by update date desc - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function lastUpdatedFirst() - { - return $this->addDescendingOrderByColumn(CarouselTableMap::UPDATED_AT); - } - - /** - * Order by update date asc - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function firstUpdatedFirst() - { - return $this->addAscendingOrderByColumn(CarouselTableMap::UPDATED_AT); - } - - /** - * Order by create date desc - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function lastCreatedFirst() - { - return $this->addDescendingOrderByColumn(CarouselTableMap::CREATED_AT); - } - - /** - * Order by create date asc - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function firstCreatedFirst() - { - return $this->addAscendingOrderByColumn(CarouselTableMap::CREATED_AT); - } - - // i18n behavior - - /** - * Adds a JOIN clause to the query using the i18n relation - * - * @param string $locale Locale to use for the join condition, e.g. 'fr_FR' - * @param string $relationAlias optional alias for the relation - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'. Defaults to left join. - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function joinI18n($locale = 'en_US', $relationAlias = null, $joinType = Criteria::LEFT_JOIN) - { - $relationName = $relationAlias ? $relationAlias : 'CarouselI18n'; - - return $this - ->joinCarouselI18n($relationAlias, $joinType) - ->addJoinCondition($relationName, $relationName . '.Locale = ?', $locale); - } - - /** - * Adds a JOIN clause to the query and hydrates the related I18n object. - * Shortcut for $c->joinI18n($locale)->with() - * - * @param string $locale Locale to use for the join condition, e.g. 'fr_FR' - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'. Defaults to left join. - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function joinWithI18n($locale = 'en_US', $joinType = Criteria::LEFT_JOIN) - { - $this - ->joinI18n($locale, null, $joinType) - ->with('CarouselI18n'); - $this->with['CarouselI18n']->setIsWithOneToMany(false); - - return $this; - } - - /** - * Use the I18n relation query object - * - * @see useQuery() - * - * @param string $locale Locale to use for the join condition, e.g. 'fr_FR' - * @param string $relationAlias optional alias for the relation - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'. Defaults to left join. - * - * @return ChildCarouselI18nQuery A secondary query class using the current class as primary query - */ - public function useI18nQuery($locale = 'en_US', $relationAlias = null, $joinType = Criteria::LEFT_JOIN) - { - return $this - ->joinI18n($locale, $relationAlias, $joinType) - ->useQuery($relationAlias ? $relationAlias : 'CarouselI18n', '\Carousel\Model\CarouselI18nQuery'); - } - -} // CarouselQuery diff --git a/local/modules/modules/Carousel/Model/Carousel.php b/local/modules/modules/Carousel/Model/Carousel.php deleted file mode 100644 index 50971104..00000000 --- a/local/modules/modules/Carousel/Model/Carousel.php +++ /dev/null @@ -1,113 +0,0 @@ -remove($carousel->getUploadDir() . DS . $this->getFile()); - - return true; - } catch (IOException $e) { - return false; - } - } - - /** - * Set file parent id - * - * @param int $parentId parent id - * - * @return $this - */ - public function setParentId($parentId) - { - return $this; - } - - /** - * Get file parent id - * - * @return int parent id - */ - public function getParentId() - { - return $this->getId(); - } - - /** - * @return FileModelParentInterface the parent file model - */ - public function getParentFileModel() - { - return new static; - } - - /** - * Get the ID of the form used to change this object information - * - * @return BaseForm the form - */ - public function getUpdateFormId() - { - return 'carousel.image'; - } - - /** - * @return string the path to the upload directory where files are stored, without final slash - */ - public function getUploadDir() - { - $carousel = new \Carousel\Carousel(); - return $carousel->getUploadDir(); - } - - /** - * @param int $objectId the object ID - * - * @return string the URL to redirect to after update from the back-office - */ - public function getRedirectionUrl() - { - return '/admin/module/Carousel'; - } - - /** - * Get the Query instance for this object - * - * @return ModelCriteria - */ - public function getQueryInstance() - { - return CarouselQuery::create(); - } - - /** - * @param bool $visible true if the file is visible, false otherwise - * @return FileModelInterface - */ - public function setVisible($visible) - { - // Not implemented - - return $this; - } -} diff --git a/local/modules/modules/Carousel/Model/CarouselI18n.php b/local/modules/modules/Carousel/Model/CarouselI18n.php deleted file mode 100644 index d03081e3..00000000 --- a/local/modules/modules/Carousel/Model/CarouselI18n.php +++ /dev/null @@ -1,10 +0,0 @@ -orderByPosition() - ->find(); - } -} // CarouselQuery diff --git a/local/modules/modules/Carousel/Model/Map/CarouselI18nTableMap.php b/local/modules/modules/Carousel/Model/Map/CarouselI18nTableMap.php deleted file mode 100644 index e63326c5..00000000 --- a/local/modules/modules/Carousel/Model/Map/CarouselI18nTableMap.php +++ /dev/null @@ -1,506 +0,0 @@ - array('Id', 'Locale', 'Alt', 'Title', 'Description', 'Chapo', 'Postscriptum', ), - self::TYPE_STUDLYPHPNAME => array('id', 'locale', 'alt', 'title', 'description', 'chapo', 'postscriptum', ), - self::TYPE_COLNAME => array(CarouselI18nTableMap::ID, CarouselI18nTableMap::LOCALE, CarouselI18nTableMap::ALT, CarouselI18nTableMap::TITLE, CarouselI18nTableMap::DESCRIPTION, CarouselI18nTableMap::CHAPO, CarouselI18nTableMap::POSTSCRIPTUM, ), - self::TYPE_RAW_COLNAME => array('ID', 'LOCALE', 'ALT', 'TITLE', 'DESCRIPTION', 'CHAPO', 'POSTSCRIPTUM', ), - self::TYPE_FIELDNAME => array('id', 'locale', 'alt', 'title', 'description', 'chapo', 'postscriptum', ), - self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, ) - ); - - /** - * holds an array of keys for quick access to the fieldnames array - * - * first dimension keys are the type constants - * e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0 - */ - protected static $fieldKeys = array ( - self::TYPE_PHPNAME => array('Id' => 0, 'Locale' => 1, 'Alt' => 2, 'Title' => 3, 'Description' => 4, 'Chapo' => 5, 'Postscriptum' => 6, ), - self::TYPE_STUDLYPHPNAME => array('id' => 0, 'locale' => 1, 'alt' => 2, 'title' => 3, 'description' => 4, 'chapo' => 5, 'postscriptum' => 6, ), - self::TYPE_COLNAME => array(CarouselI18nTableMap::ID => 0, CarouselI18nTableMap::LOCALE => 1, CarouselI18nTableMap::ALT => 2, CarouselI18nTableMap::TITLE => 3, CarouselI18nTableMap::DESCRIPTION => 4, CarouselI18nTableMap::CHAPO => 5, CarouselI18nTableMap::POSTSCRIPTUM => 6, ), - self::TYPE_RAW_COLNAME => array('ID' => 0, 'LOCALE' => 1, 'ALT' => 2, 'TITLE' => 3, 'DESCRIPTION' => 4, 'CHAPO' => 5, 'POSTSCRIPTUM' => 6, ), - self::TYPE_FIELDNAME => array('id' => 0, 'locale' => 1, 'alt' => 2, 'title' => 3, 'description' => 4, 'chapo' => 5, 'postscriptum' => 6, ), - self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, ) - ); - - /** - * Initialize the table attributes and columns - * Relations are not initialized by this method since they are lazy loaded - * - * @return void - * @throws PropelException - */ - public function initialize() - { - // attributes - $this->setName('carousel_i18n'); - $this->setPhpName('CarouselI18n'); - $this->setClassName('\\Carousel\\Model\\CarouselI18n'); - $this->setPackage('Carousel.Model'); - $this->setUseIdGenerator(false); - // columns - $this->addForeignPrimaryKey('ID', 'Id', 'INTEGER' , 'carousel', 'ID', true, null, null); - $this->addPrimaryKey('LOCALE', 'Locale', 'VARCHAR', true, 5, 'en_US'); - $this->addColumn('ALT', 'Alt', 'VARCHAR', false, 255, null); - $this->addColumn('TITLE', 'Title', 'VARCHAR', false, 255, null); - $this->addColumn('DESCRIPTION', 'Description', 'CLOB', false, null, null); - $this->addColumn('CHAPO', 'Chapo', 'LONGVARCHAR', false, null, null); - $this->addColumn('POSTSCRIPTUM', 'Postscriptum', 'LONGVARCHAR', false, null, null); - } // initialize() - - /** - * Build the RelationMap objects for this table relationships - */ - public function buildRelations() - { - $this->addRelation('Carousel', '\\Carousel\\Model\\Carousel', RelationMap::MANY_TO_ONE, array('id' => 'id', ), 'CASCADE', null); - } // buildRelations() - - /** - * Adds an object to the instance pool. - * - * Propel keeps cached copies of objects in an instance pool when they are retrieved - * from the database. In some cases you may need to explicitly add objects - * to the cache in order to ensure that the same objects are always returned by find*() - * and findPk*() calls. - * - * @param \Carousel\Model\CarouselI18n $obj A \Carousel\Model\CarouselI18n object. - * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). - */ - public static function addInstanceToPool($obj, $key = null) - { - if (Propel::isInstancePoolingEnabled()) { - if (null === $key) { - $key = serialize(array((string) $obj->getId(), (string) $obj->getLocale())); - } // if key === null - self::$instances[$key] = $obj; - } - } - - /** - * Removes an object from the instance pool. - * - * Propel keeps cached copies of objects in an instance pool when they are retrieved - * from the database. In some cases -- especially when you override doDelete - * methods in your stub classes -- you may need to explicitly remove objects - * from the cache in order to prevent returning objects that no longer exist. - * - * @param mixed $value A \Carousel\Model\CarouselI18n object or a primary key value. - */ - public static function removeInstanceFromPool($value) - { - if (Propel::isInstancePoolingEnabled() && null !== $value) { - if (is_object($value) && $value instanceof \Carousel\Model\CarouselI18n) { - $key = serialize(array((string) $value->getId(), (string) $value->getLocale())); - - } elseif (is_array($value) && count($value) === 2) { - // assume we've been passed a primary key"; - $key = serialize(array((string) $value[0], (string) $value[1])); - } elseif ($value instanceof Criteria) { - self::$instances = []; - - return; - } else { - $e = new PropelException("Invalid value passed to removeInstanceFromPool(). Expected primary key or \Carousel\Model\CarouselI18n object; got " . (is_object($value) ? get_class($value) . ' object.' : var_export($value, true))); - throw $e; - } - - unset(self::$instances[$key]); - } - } - - /** - * Retrieves a string version of the primary key from the DB resultset row that can be used to uniquely identify a row in this table. - * - * For tables with a single-column primary key, that simple pkey value will be returned. For tables with - * a multi-column primary key, a serialize()d version of the primary key will be returned. - * - * @param array $row resultset row. - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM - */ - public static function getPrimaryKeyHashFromRow($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - // If the PK cannot be derived from the row, return NULL. - if ($row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)] === null && $row[TableMap::TYPE_NUM == $indexType ? 1 + $offset : static::translateFieldName('Locale', TableMap::TYPE_PHPNAME, $indexType)] === null) { - return null; - } - - return serialize(array((string) $row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)], (string) $row[TableMap::TYPE_NUM == $indexType ? 1 + $offset : static::translateFieldName('Locale', TableMap::TYPE_PHPNAME, $indexType)])); - } - - /** - * Retrieves the primary key from the DB resultset row - * For tables with a single-column primary key, that simple pkey value will be returned. For tables with - * a multi-column primary key, an array of the primary key columns will be returned. - * - * @param array $row resultset row. - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM - * - * @return mixed The primary key of the row - */ - public static function getPrimaryKeyFromRow($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - - return $pks; - } - - /** - * The class that the tableMap will make instances of. - * - * If $withPrefix is true, the returned path - * uses a dot-path notation which is translated into a path - * relative to a location on the PHP include_path. - * (e.g. path.to.MyClass -> 'path/to/MyClass.php') - * - * @param boolean $withPrefix Whether or not to return the path with the class name - * @return string path.to.ClassName - */ - public static function getOMClass($withPrefix = true) - { - return $withPrefix ? CarouselI18nTableMap::CLASS_DEFAULT : CarouselI18nTableMap::OM_CLASS; - } - - /** - * Populates an object of the default type or an object that inherit from the default. - * - * @param array $row row returned by DataFetcher->fetch(). - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType The index type of $row. Mostly DataFetcher->getIndexType(). - One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - * @return array (CarouselI18n object, last column rank) - */ - public static function populateObject($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - $key = CarouselI18nTableMap::getPrimaryKeyHashFromRow($row, $offset, $indexType); - if (null !== ($obj = CarouselI18nTableMap::getInstanceFromPool($key))) { - // We no longer rehydrate the object, since this can cause data loss. - // See http://www.propelorm.org/ticket/509 - // $obj->hydrate($row, $offset, true); // rehydrate - $col = $offset + CarouselI18nTableMap::NUM_HYDRATE_COLUMNS; - } else { - $cls = CarouselI18nTableMap::OM_CLASS; - $obj = new $cls(); - $col = $obj->hydrate($row, $offset, false, $indexType); - CarouselI18nTableMap::addInstanceToPool($obj, $key); - } - - return array($obj, $col); - } - - /** - * The returned array will contain objects of the default type or - * objects that inherit from the default. - * - * @param DataFetcherInterface $dataFetcher - * @return array - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function populateObjects(DataFetcherInterface $dataFetcher) - { - $results = array(); - - // set the class once to avoid overhead in the loop - $cls = static::getOMClass(false); - // populate the object(s) - while ($row = $dataFetcher->fetch()) { - $key = CarouselI18nTableMap::getPrimaryKeyHashFromRow($row, 0, $dataFetcher->getIndexType()); - if (null !== ($obj = CarouselI18nTableMap::getInstanceFromPool($key))) { - // We no longer rehydrate the object, since this can cause data loss. - // See http://www.propelorm.org/ticket/509 - // $obj->hydrate($row, 0, true); // rehydrate - $results[] = $obj; - } else { - $obj = new $cls(); - $obj->hydrate($row); - $results[] = $obj; - CarouselI18nTableMap::addInstanceToPool($obj, $key); - } // if key exists - } - - return $results; - } - /** - * Add all the columns needed to create a new object. - * - * Note: any columns that were marked with lazyLoad="true" in the - * XML schema will not be added to the select list and only loaded - * on demand. - * - * @param Criteria $criteria object containing the columns to add. - * @param string $alias optional table alias - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function addSelectColumns(Criteria $criteria, $alias = null) - { - if (null === $alias) { - $criteria->addSelectColumn(CarouselI18nTableMap::ID); - $criteria->addSelectColumn(CarouselI18nTableMap::LOCALE); - $criteria->addSelectColumn(CarouselI18nTableMap::ALT); - $criteria->addSelectColumn(CarouselI18nTableMap::TITLE); - $criteria->addSelectColumn(CarouselI18nTableMap::DESCRIPTION); - $criteria->addSelectColumn(CarouselI18nTableMap::CHAPO); - $criteria->addSelectColumn(CarouselI18nTableMap::POSTSCRIPTUM); - } else { - $criteria->addSelectColumn($alias . '.ID'); - $criteria->addSelectColumn($alias . '.LOCALE'); - $criteria->addSelectColumn($alias . '.ALT'); - $criteria->addSelectColumn($alias . '.TITLE'); - $criteria->addSelectColumn($alias . '.DESCRIPTION'); - $criteria->addSelectColumn($alias . '.CHAPO'); - $criteria->addSelectColumn($alias . '.POSTSCRIPTUM'); - } - } - - /** - * Returns the TableMap related to this object. - * This method is not needed for general use but a specific application could have a need. - * @return TableMap - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function getTableMap() - { - return Propel::getServiceContainer()->getDatabaseMap(CarouselI18nTableMap::DATABASE_NAME)->getTable(CarouselI18nTableMap::TABLE_NAME); - } - - /** - * Add a TableMap instance to the database for this tableMap class. - */ - public static function buildTableMap() - { - $dbMap = Propel::getServiceContainer()->getDatabaseMap(CarouselI18nTableMap::DATABASE_NAME); - if (!$dbMap->hasTable(CarouselI18nTableMap::TABLE_NAME)) { - $dbMap->addTableObject(new CarouselI18nTableMap()); - } - } - - /** - * Performs a DELETE on the database, given a CarouselI18n or Criteria object OR a primary key value. - * - * @param mixed $values Criteria or CarouselI18n object or primary key or array of primary keys - * which is used to create the DELETE statement - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows - * if supported by native driver or if emulated using Propel. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function doDelete($values, ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - if ($values instanceof Criteria) { - // rename for clarity - $criteria = $values; - } elseif ($values instanceof \Carousel\Model\CarouselI18n) { // it's a model object - // create criteria based on pk values - $criteria = $values->buildPkeyCriteria(); - } else { // it's a primary key, or an array of pks - $criteria = new Criteria(CarouselI18nTableMap::DATABASE_NAME); - // primary key is composite; we therefore, expect - // the primary key passed to be an array of pkey values - if (count($values) == count($values, COUNT_RECURSIVE)) { - // array is not multi-dimensional - $values = array($values); - } - foreach ($values as $value) { - $criterion = $criteria->getNewCriterion(CarouselI18nTableMap::ID, $value[0]); - $criterion->addAnd($criteria->getNewCriterion(CarouselI18nTableMap::LOCALE, $value[1])); - $criteria->addOr($criterion); - } - } - - $query = CarouselI18nQuery::create()->mergeWith($criteria); - - if ($values instanceof Criteria) { CarouselI18nTableMap::clearInstancePool(); - } elseif (!is_object($values)) { // it's a primary key, or an array of pks - foreach ((array) $values as $singleval) { CarouselI18nTableMap::removeInstanceFromPool($singleval); - } - } - - return $query->delete($con); - } - - /** - * Deletes all rows from the carousel_i18n table. - * - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). - */ - public static function doDeleteAll(ConnectionInterface $con = null) - { - return CarouselI18nQuery::create()->doDeleteAll($con); - } - - /** - * Performs an INSERT on the database, given a CarouselI18n or Criteria object. - * - * @param mixed $criteria Criteria or CarouselI18n object containing data that is used to create the INSERT statement. - * @param ConnectionInterface $con the ConnectionInterface connection to use - * @return mixed The new primary key. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function doInsert($criteria, ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - if ($criteria instanceof Criteria) { - $criteria = clone $criteria; // rename for clarity - } else { - $criteria = $criteria->buildCriteria(); // build Criteria from CarouselI18n object - } - - - // Set the correct dbName - $query = CarouselI18nQuery::create()->mergeWith($criteria); - - try { - // use transaction because $criteria could contain info - // for more than one table (I guess, conceivably) - $con->beginTransaction(); - $pk = $query->doInsert($con); - $con->commit(); - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - - return $pk; - } - -} // CarouselI18nTableMap -// This is the static code needed to register the TableMap for this table with the main Propel class. -// -CarouselI18nTableMap::buildTableMap(); diff --git a/local/modules/modules/Carousel/Readme.md b/local/modules/modules/Carousel/Readme.md deleted file mode 100644 index 6b372438..00000000 --- a/local/modules/modules/Carousel/Readme.md +++ /dev/null @@ -1,62 +0,0 @@ -# Carousel - -This module for Thelia add a customizable carousel on your home page. You can upload you own image and overload the default template in your template for using the carousel. - -## Installation - -* Copy the module into ```/local/modules/``` directory and be sure that the name of the module is Carousel. -* Activate it in your thelia administration panel - -## Usage - -In the configuration panel of this module, you can upload as many images as you want. - -## Hook - -The carousel is installed in the "Home page - main area" (home.body) hook. - -## Loop - -Customize images with the `carousel` loop, which has the same arguments as the `image` loop. You can define a width, a height, and many other parameters - -### Input arguments - -|Argument |Description | -|--- |--- | -|**width** | A width in pixels, for resizing image. If only the width is provided, the image ratio is preserved. Example : width="200" | -|**height** | A height in pixels, for resizing image. If only the height is provided, the image ratio is preserved. example : height="200" | -|**rotation** |The rotation angle in degrees (positive or negative) applied to the image. The background color of the empty areas is the one specified by 'background_color'. example : rotation="90" | -|**background_color** |The color applied to empty image parts during processing. Use $rgb or $rrggbb color format. example : background_color="$cc8000"| -|**quality** |The generated image quality, from 0(!) to 100%. The default value is 75% (you can hange this in the Administration panel). example : quality="70"| -|**resize_mode** | If 'crop', the image will have the exact specified width and height, and will be cropped if required. If 'borders', the image will have the exact specified width and height, and some borders may be added. The border color is the one specified by 'background_color'. If 'none' or missing, the image ratio is preserved, and depending od this ratio, may not have the exact width and height required. resize_mode="crop"| -|**effects** |One or more comma separated effects definitions, that will be applied to the image in the specified order. Please see below a detailed description of available effects. Expected values :
  • gamma:value : change the image Gamma to the specified value. Example: gamma:0.7.
  • grayscale or greyscale : switch image to grayscale.
  • colorize:color : apply a color mask to the image. The color format is $rgb or $rrggbb. Example: colorize:$ff2244.
  • negative : transform the image in its negative equivalent.
  • vflip or vertical_flip : flip the image vertically.
  • hflip or horizontal_flip : flip the image horizontally.
example : effects="greyscale,gamma:0.7,vflip" | - -### Ouput arguments - -|Variable |Description | -|--- |--- | -|$ID |the image ID | -|$IMAGE_URL |The absolute URL to the generated image | -|$ORIGINAL_IMAGE_URL |The absolute URL to the original image | -|$IMAGE_PATH |The absolute path to the generated image file | -|$ORIGINAL_IMAGE_PATH |The absolute path to the original image file | -|$ALT |alt text | -|$TITLE |the image title | -|$CHAPO |the image summary | -|$DESCRIPTION |the image description | -|$POSTSCRIPTUM |the image conclusion | -|$LOCALE |the textual elements locale | -|$POSITION |the image position in the carousel | -|$URL |the related URL | - -### Exemple - -``` -{loop type="carousel" name="carousel.front" width="1200" height="390" resize_mode="borders"} - {$ALT} -{/loop} -``` - -## How to override ? - -If you want your own carousel in your tempalte, create the directory ```modules/Carousel``` then create the template ```carousel.html``` in this directory. Here you can create your own carousel and the replace the default template provided in the module. diff --git a/local/modules/modules/Carousel/composer.json b/local/modules/modules/Carousel/composer.json deleted file mode 100644 index 5cfd6d37..00000000 --- a/local/modules/modules/Carousel/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/carousel-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "Carousel" - } -} diff --git a/local/modules/modules/Carousel/templates/backOffice/default/assets/js/module-configuration.js b/local/modules/modules/Carousel/templates/backOffice/default/assets/js/module-configuration.js deleted file mode 100644 index 54b03e5f..00000000 --- a/local/modules/modules/Carousel/templates/backOffice/default/assets/js/module-configuration.js +++ /dev/null @@ -1,6 +0,0 @@ -$(function() { - // Set proper image ID in delete from - $('a.image-delete').click(function(ev) { - $('#image_delete_id').val($(this).data('id')); - }); -}); diff --git a/local/modules/modules/Carousel/templates/backOffice/default/module_configuration.html b/local/modules/modules/Carousel/templates/backOffice/default/module_configuration.html deleted file mode 100644 index 3904630f..00000000 --- a/local/modules/modules/Carousel/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,136 +0,0 @@ -
-
-
- {intl l='Edit your carousel.' d='carousel.bo.default'} -
-
- -
-
-
- {form name="carousel.image"} - - - {form_hidden_fields} - - {form_field field='file'} -
- -
- - - - -
-
- {/form_field} - - {/form} -
-
-
- -
-
- {intl l='Carousel images' d='carousel.bo.default'} -
-
- -
-
-
- {ifloop rel="carousel.image"} - {form name="carousel.update"} -
- - {include - file = "includes/inner-form-toolbar.html" - page_url = "{url path='/admin/module/Carousel'}" - close_url = "{url path='/admin/modules'}" - } - - {form_hidden_fields} - - {loop name="carousel.image" type="carousel" width="550" height="200" resize_mode="borders" backend_context="1" lang="$edit_language_id"} - -
-
-
-

- - {$ALT} - -

- - - -
-
- -
-
- {form_field field="position{$ID}"} - - {/form_field} -
-
-
- -
- {* Not yet implemented - {render_form_field field="chapo{$ID} value=$CHAPO"} - *} - {render_form_field field="title{$ID}" value=$TITLE} - {render_form_field field="alt{$ID}" value=$ALT} - {render_form_field field="url{$ID}" value=$URL} - {render_form_field field="description{$ID}" extra_class="wysiwyg" value=$DESCRIPTION} - {* Not yet implemented - {render_form_field field="postscriptum{$ID}" value=$POSTSCRIPTUM} - *} -
-
-
- {/loop} - - {include - file = "includes/inner-form-toolbar.html" - page_url = "{url path='/admin/module/Carousel'}" - close_url = "{url path='/admin/modules'}" - page_bottom = true - } -
- {/form} - {/ifloop} - - {elseloop rel="carousel.image"} -
- {intl d='carousel.bo.default' l="Your carousel contains no image. Please add one using the form above."} -
- {/elseloop} -
-
-
-
- -{capture "delete_dialog"} - -{/capture} - -{include -file = "includes/generic-confirm-dialog.html" - -dialog_id = "delete_carousel_dialog" -dialog_title = {intl l="Delete a carousel image" d="carousel.bo.default"} -dialog_message = {intl l="Do you really want to remove this image from the carousel ?" d="carousel.bo.default"} - -form_action = {url path='/admin/module/carousel/delete'} -form_content = {$smarty.capture.delete_dialog nofilter} -} - - - - diff --git a/local/modules/modules/Carousel/templates/frontOffice/default/carousel.html b/local/modules/modules/Carousel/templates/frontOffice/default/carousel.html deleted file mode 100644 index 6a714a5e..00000000 --- a/local/modules/modules/Carousel/templates/frontOffice/default/carousel.html +++ /dev/null @@ -1,24 +0,0 @@ -{ifloop rel="carousel.front"} - -{/ifloop} \ No newline at end of file diff --git a/local/modules/modules/Cheque/Cheque.php b/local/modules/modules/Cheque/Cheque.php deleted file mode 100644 index 8d1e94c9..00000000 --- a/local/modules/modules/Cheque/Cheque.php +++ /dev/null @@ -1,73 +0,0 @@ -getCurrentOrderTotalAmount() > 0; - } - - public function postActivation(ConnectionInterface $con = null) - { - $database = new Database($con); - - // Insert email message - $database->insertSql(null, array(__DIR__ . "/Config/setup.sql")); - } - - public function destroy(ConnectionInterface $con = null, $deleteModuleData = false) - { - // Delete our message - if (null !== $message = MessageQuery::create()->findOneByName('order_confirmation_cheque')) { - $message->delete($con); - } - - parent::destroy($con, $deleteModuleData); - } - - /** - * if you want, you can manage stock in your module instead of order process. - * Return false if you want to manage yourself the stock - * - * @return bool - */ - public function manageStockOnCreation() - { - return false; - } -} diff --git a/local/modules/modules/Cheque/Config/config.xml b/local/modules/modules/Cheque/Config/config.xml deleted file mode 100644 index b09cf496..00000000 --- a/local/modules/modules/Cheque/Config/config.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - -
- - - - - - - - - - - - - - - - - diff --git a/local/modules/modules/Cheque/Config/module.xml b/local/modules/modules/Cheque/Config/module.xml deleted file mode 100644 index 14f8675a..00000000 --- a/local/modules/modules/Cheque/Config/module.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - Cheque\Cheque - - Cheque - - - Cheque - - images - - en_US - fr_FR - - 2.3.4 - - Manuel Raynaud - manu@raynaud.io - - payment - 2.2.0 - alpha - diff --git a/local/modules/modules/Cheque/Config/routing.xml b/local/modules/modules/Cheque/Config/routing.xml deleted file mode 100644 index 8c741c05..00000000 --- a/local/modules/modules/Cheque/Config/routing.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - Cheque\Controller\ConfigureController::configure - - diff --git a/local/modules/modules/Cheque/Config/setup.sql b/local/modules/modules/Cheque/Config/setup.sql deleted file mode 100644 index 2f91a0e7..00000000 --- a/local/modules/modules/Cheque/Config/setup.sql +++ /dev/null @@ -1,32 +0,0 @@ --- --------------------------------------------------------------------- --- Mail template for cheque --- --------------------------------------------------------------------- - --- First, delete existing entries -SET @var := 0; -SELECT @var := `id` FROM `message` WHERE name="order_confirmation_cheque"; -DELETE FROM `message` WHERE `id`=@var; - --- Then add new entries -SELECT @max := MAX(`id`) FROM `message`; -SET @max := @max+1; - --- insert message -INSERT INTO `message` (`id`, `name`, `secured`) VALUES - (@max, - 'order_confirmation_cheque', - '0' - ); --- and mail templates -INSERT INTO `message_i18n` (`id`, `locale`, `title`, `subject`, `text_message`, `html_message`) VALUES - (@max, - 'en_US', - 'Confirmation of payment by cheque', - 'Payment of order {$order_ref}', 'Dear customer,\r\nThis is a confirmation of the payment by cheque of your order {$order_ref} on our shop.\r\nYour invoice is now available in your customer account at {config key="url_site"}\r\nThank you again for your purchase.\r\nThe {config key="store_name"} team.', '\r\n\r\n\r\n \r\n courriel de confirmation de commande de {config key="url_site"} \r\n \r\n\r\n\r\n
\r\n
\r\n

{config key="store_name"}

\r\n

The payment of your order is confirmed

\r\n

Reference {$order_ref}

\r\n
\r\n

\r\n Your invoice is now available in your customer account on\r\n {config key="store_name"}.\r\n

\r\n

Thank you for your order !

\r\n

The {config key="store_name"} team.

\r\n
\r\n\r\n' - ), - (@max, - 'fr_FR', - 'Confirmation de paiement par chèque', - 'Paiement de la commande : {$order_ref}', - 'Cher client,\r\nCe message confirme le paiement par chèque de votre commande numero {$order_ref} sur notre boutique.\r\nVotre facture est maintenant disponible dans votre compte client à l''adresse {config key="url_site"}\r\nMerci encore pour votre achat !\r\nL''équipe {config key="store_name"}', '\r\n\r\n\r\n \r\n Confirmation du paiement de votre commande sur {config key="url_site"} \r\n \r\n\r\n\r\n
\r\n
\r\n

{config key="store_name"}

\r\n

Confirmation du paiement de votre commande

\r\n

N° {$order_ref}

\r\n
\r\n

\r\n Le suivi de votre commande est disponible dans la rubrique mon compte sur\r\n {config key="url_site"}\r\n

\r\n

Merci pour votre achat !

\r\n

L''équipe {config key="store_name"}

\r\n
\r\n\r\n' - ); diff --git a/local/modules/modules/Cheque/Controller/ConfigureController.php b/local/modules/modules/Cheque/Controller/ConfigureController.php deleted file mode 100644 index 5aea04ed..00000000 --- a/local/modules/modules/Cheque/Controller/ConfigureController.php +++ /dev/null @@ -1,98 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Cheque\Controller; - -use Cheque\Cheque; -use Cheque\Form\ConfigurationForm; -use Symfony\Component\HttpFoundation\RedirectResponse; -use Thelia\Controller\Admin\BaseAdminController; -use Thelia\Core\Security\AccessManager; -use Thelia\Core\Security\Resource\AdminResources; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Tools\URL; - -/** - * Class SetTransferConfig - * @package WireTransfer\Controller - * @author Thelia - */ -class ConfigureController extends BaseAdminController -{ - public function configure() - { - if (null !== $response = $this->checkAuth(AdminResources::MODULE, 'Cheque', AccessManager::UPDATE)) { - return $response; - } - - // Initialize the potential exception - $ex = null; - - // Create the Form from the request - $configurationForm = $this->createForm('cheque.instructions.configure'); - - try { - // Check the form against constraints violations - $form = $this->validateForm($configurationForm, "POST"); - - // Get the form field values - $data = $form->getData(); - - Cheque::setConfigValue('instructions', $data['instructions'], $this->getCurrentEditionLocale()); - Cheque::setConfigValue('payable_to', $data['payable_to']); - - // Log configuration modification - $this->adminLogAppend( - "cheque.configuration.message", - AccessManager::UPDATE, - sprintf("Cheque instructions configuration updated") - ); - - // Everything is OK. - return new RedirectResponse(URL::getInstance()->absoluteUrl('/admin/module/Cheque')); - - } catch (FormValidationException $ex) { - // Form cannot be validated. Create the error message using - // the BaseAdminController helper method. - $error_msg = $this->createStandardFormValidationErrorMessage($ex); - } - catch (\Exception $ex) { - // Any other error - $error_msg = $ex->getMessage(); - } - - // At this point, the form has errors, and should be redisplayed. We don not redirect, - // just redisplay the same template. - // Setup the Form error context, to make error information available in the template. - $this->setupFormErrorContext( - $this->getTranslator()->trans("Cheque instructions configuration", [], Cheque::MESSAGE_DOMAIN), - $error_msg, - $configurationForm, - $ex - ); - - // Do not redirect at this point, or the error context will be lost. - // Just redisplay the current template. - return $this->render('module-configure', array('module_code' => 'Cheque')); - } -} \ No newline at end of file diff --git a/local/modules/modules/Cheque/Form/ConfigurationForm.php b/local/modules/modules/Cheque/Form/ConfigurationForm.php deleted file mode 100644 index 6ab4d5a0..00000000 --- a/local/modules/modules/Cheque/Form/ConfigurationForm.php +++ /dev/null @@ -1,90 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Cheque\Form; - -use Cheque\Cheque; -use Symfony\Component\Validator\Constraints\NotBlank; -use Thelia\Core\Translation\Translator; -use Thelia\Form\BaseForm; - -/** - * Class ConfigurationForm - * @package Cheque\Form - * @author Thelia - */ -class ConfigurationForm extends BaseForm -{ - protected function trans($str, $params = []) - { - return Translator::getInstance()->trans($str, $params, Cheque::MESSAGE_DOMAIN); - } - - protected function buildForm() - { - $this->formBuilder - ->add( - 'payable_to', - 'text', - [ - 'constraints' => [ new NotBlank() ], - 'label' => $this->trans('Cheque is payable to: '), - 'label_attr' => [ - 'for' => 'payable_to', - 'help' => $this->trans('The name to which the cheque shoud be payable to.') - ], - 'attr' => [ - 'rows' => 10, - 'placeholder' => $this->trans('Pay cheque to') - ] - ] - ) - ->add( - 'instructions', - 'textarea', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->trans('Cheque instructions'), - 'label_attr' => [ - 'for' => 'namefield', - 'help' => $this->trans('Please enter here the payment by cheque instructions') - ], - 'attr' => [ - 'rows' => 10, - 'placeholder' => $this->trans('Payment instruction') - ] - ] - ) - ; - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return 'cheque_configuration_instructions'; - } -} \ No newline at end of file diff --git a/local/modules/modules/Cheque/Hook/HookManager.php b/local/modules/modules/Cheque/Hook/HookManager.php deleted file mode 100644 index c0798886..00000000 --- a/local/modules/modules/Cheque/Hook/HookManager.php +++ /dev/null @@ -1,34 +0,0 @@ - - */ -class HookManager extends BaseHook { - - public function onAdditionalPaymentInfo(HookRenderEvent $event) - { - $content = $this->render("order-placed.additional-payment-info.html", [ - 'placed_order_id' => $event->getArgument('placed_order_id') - ]); - - $event->add($content); - } -} \ No newline at end of file diff --git a/local/modules/modules/Cheque/I18n/backOffice/default/de_DE.php b/local/modules/modules/Cheque/I18n/backOffice/default/de_DE.php deleted file mode 100644 index 6e6d3a79..00000000 --- a/local/modules/modules/Cheque/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Scheck-Anleitungen-Konfiguration', -]; diff --git a/local/modules/modules/Cheque/I18n/backOffice/default/en_US.php b/local/modules/modules/Cheque/I18n/backOffice/default/en_US.php deleted file mode 100644 index 2219a2f7..00000000 --- a/local/modules/modules/Cheque/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Cheque instructions configuration', -); diff --git a/local/modules/modules/Cheque/I18n/backOffice/default/fr_FR.php b/local/modules/modules/Cheque/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 71ae3192..00000000 --- a/local/modules/modules/Cheque/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Instructions de paiement par chèque', -]; diff --git a/local/modules/modules/Cheque/I18n/backOffice/default/tr_TR.php b/local/modules/modules/Cheque/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index 9490b898..00000000 --- a/local/modules/modules/Cheque/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Çek yönergeleri yapılandırma', -]; diff --git a/local/modules/modules/Cheque/I18n/de_DE.php b/local/modules/modules/Cheque/I18n/de_DE.php deleted file mode 100644 index ffd4ad36..00000000 --- a/local/modules/modules/Cheque/I18n/de_DE.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Scheck-Anweisungen', - 'Cheque instructions configuration' => 'Scheck-Anleitungen-Konfiguration', - 'Cheque is payable to: ' => 'Scheck ist zahlbar an: ', - 'Pay cheque to' => 'Scheck bezahlen an', - 'Payment instruction' => 'Zahlungsanweisungen', - 'Please enter here the payment by cheque instructions' => 'Bitte geben Sie hier die Zahlung durch Scheck Anweisungen ein', - 'The name to which the cheque shoud be payable to.' => 'Der Name, an den der Scheck bezahlbar sein soll.', -]; diff --git a/local/modules/modules/Cheque/I18n/en_US.php b/local/modules/modules/Cheque/I18n/en_US.php deleted file mode 100644 index 9a0ebf14..00000000 --- a/local/modules/modules/Cheque/I18n/en_US.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Cheque instructions', - 'Cheque instructions configuration' => 'Cheque instructions configuration', - 'Cheque is payable to: ' => 'Cheque is payable to: ', - 'Pay cheque to' => 'Pay cheque to', - 'Payment instruction' => 'Payment instruction', - 'Please enter here the payment by cheque instructions' => 'Please enter here the payment by cheque instructions', - 'The name to which the cheque shoud be payable to.' => 'The name to which the cheque shoud be payable to.', -); diff --git a/local/modules/modules/Cheque/I18n/fr_FR.php b/local/modules/modules/Cheque/I18n/fr_FR.php deleted file mode 100644 index b286ccaf..00000000 --- a/local/modules/modules/Cheque/I18n/fr_FR.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Instructions de paiement', - 'Cheque instructions configuration' => 'Instructions de paiement par chèque', - 'Cheque is payable to: ' => 'Ordre du chèque', - 'Pay cheque to' => 'Ordre du chèque', - 'Payment instruction' => 'Instructions de paiement', - 'Please enter here the payment by cheque instructions' => 'Indiquez ici les instructions particulières de paiement par chèque', - 'The name to which the cheque shoud be payable to.' => 'Le nom à fare figurer sur le chèque', -]; diff --git a/local/modules/modules/Cheque/I18n/frontOffice/default/de_DE.php b/local/modules/modules/Cheque/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index b87c46ae..00000000 --- a/local/modules/modules/Cheque/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Vergessen Sie nicht, Ihren Scheck zu unterschreiben !', - 'Please make your cheque payable to %name, and send it to the following address :' => 'Bitte stellen Sie den Scheck auf %name, und senden Sie es an die folgende Adresse : ', -]; diff --git a/local/modules/modules/Cheque/I18n/frontOffice/default/en_US.php b/local/modules/modules/Cheque/I18n/frontOffice/default/en_US.php deleted file mode 100644 index ac9f8aaa..00000000 --- a/local/modules/modules/Cheque/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Be sure to sign your cheque !', - 'Please make your cheque payable to %name, and send it to the following address :' => 'Please make your cheque payable to %name, and send it to the following address :', -); diff --git a/local/modules/modules/Cheque/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/Cheque/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index b2ac1579..00000000 --- a/local/modules/modules/Cheque/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,6 +0,0 @@ - 'N\'oubliez par de signer votre chèque !', - 'Please make your cheque payable to %name, and send it to the following address :' => 'Merci de libeller votre chèque à l\'ordre de %name, et de l\'expédier à l\'adresse suivante :', -]; diff --git a/local/modules/modules/Cheque/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/Cheque/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 1337c364..00000000 --- a/local/modules/modules/Cheque/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Çekini imzalamak emin olun!', - 'Please make your cheque payable to %name, and send it to the following address :' => 'Lütfen, Çek %name için ödenecek olun ve aşağıdaki adrese gönderin:', -]; diff --git a/local/modules/modules/Cheque/I18n/tr_TR.php b/local/modules/modules/Cheque/I18n/tr_TR.php deleted file mode 100644 index 80a9c5e3..00000000 --- a/local/modules/modules/Cheque/I18n/tr_TR.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Çek yönergeleri', - 'Cheque instructions configuration' => 'Çek yönergeleri yapılandırma', - 'Cheque is payable to: ' => 'Çek için ödenir: ', - 'Pay cheque to' => 'Çek için ödeme', - 'Payment instruction' => 'Ödeme talimatı', - 'Please enter here the payment by cheque instructions' => 'Lütfen burada ödeme çek yönergeleri tarafından girin', - 'The name to which the cheque shoud be payable to.' => 'Adı için çek shoud için ödenecek.', -]; diff --git a/local/modules/modules/Cheque/LICENSE.txt b/local/modules/modules/Cheque/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/Cheque/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/Cheque/Listener/SendPaymentConfirmationEmail.php b/local/modules/modules/Cheque/Listener/SendPaymentConfirmationEmail.php deleted file mode 100644 index bad9482a..00000000 --- a/local/modules/modules/Cheque/Listener/SendPaymentConfirmationEmail.php +++ /dev/null @@ -1,85 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Cheque\Listener; - -use Cheque\Cheque; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; -use Thelia\Action\BaseAction; -use Thelia\Core\Event\Order\OrderEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Mailer\MailerFactory; - -/** - * Class SendEMail - * @package IciRelais\Listener - * @author Thelia - */ -class SendPaymentConfirmationEmail extends BaseAction implements EventSubscriberInterface -{ - /** - * @var MailerFactory - */ - protected $mailer; - - public function __construct(MailerFactory $mailer) - { - $this->mailer = $mailer; - } - - /** - * @param OrderEvent $event - * - * Check if we're the payment module, and send the payment confirmation email to the customer if it's the case. - */ - public function sendConfirmationEmail(OrderEvent $event) - { - if ($event->getOrder()->getPaymentModuleId() === Cheque::getModuleId()) { - - if ($event->getOrder()->isPaid()) { - - $order = $event->getOrder(); - - $this->mailer->sendEmailToCustomer( - 'order_confirmation_cheque', - $order->getCustomer(), - [ - 'order_id' => $order->getId(), - 'order_ref' => $order->getRef() - ] - ); - } - } - } - - /** - * @inheritdoc - */ - public static function getSubscribedEvents() - { - return array( - TheliaEvents::ORDER_UPDATE_STATUS => array("sendConfirmationEmail", 128) - ); - } - -} diff --git a/local/modules/modules/Cheque/composer.json b/local/modules/modules/Cheque/composer.json deleted file mode 100644 index 8dca2321..00000000 --- a/local/modules/modules/Cheque/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/cheque-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "Cheque" - } -} diff --git a/local/modules/modules/Cheque/images/cheque.png b/local/modules/modules/Cheque/images/cheque.png deleted file mode 100644 index 0aad099e715aa796a29e77934cf421e7fe7b54e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24812 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 Sni2mWfvltwq*&be(f - {$smarty.get.errmes} - -{/if} - -
-
- -
-
- {intl d='cheque.bo.default' l="Cheque instructions configuration"} -
-
- -
-
-
- - {form name="cheque.instructions.configure"} - - - - {include - file = "includes/inner-form-toolbar.html" - hide_submit_buttons = false - - page_url = {url path="/admin/module/Cheque"} - close_url = {url path="/admin/modules"} - } - - {form_hidden_fields} - - {if $form_error} -
-
-
{$form_error_message}
-
-
- {/if} - - {loop type="module-config" name="get-payable-to" module="Cheque" variable="payable_to"} - {render_form_field field="payable_to" value=$VALUE} - {/loop} - - {loop type="module-config" name="get-instruction" module="Cheque" variable="instructions" locale=$edit_language_locale} - {render_form_field field="instructions" extra_class="wysiwyg" value=$VALUE} - {/loop} - - {/form} -
-
-
-
-
\ No newline at end of file diff --git a/local/modules/modules/Cheque/templates/frontOffice/default/order-placed.additional-payment-info.html b/local/modules/modules/Cheque/templates/frontOffice/default/order-placed.additional-payment-info.html deleted file mode 100644 index ddc89478..00000000 --- a/local/modules/modules/Cheque/templates/frontOffice/default/order-placed.additional-payment-info.html +++ /dev/null @@ -1,21 +0,0 @@ -{loop type="module-config" name="cheque-instructions" module="cheque" variable="payable_to"} -

{intl d='cheque.fo.default' l="Please make your cheque payable to %name, and send it to the following address :" name={$VALUE}}

-{/loop} - -
- {config key="store_name"}
- {config key="store_address1"}
- {if ! empty({config key="store_address2"})}{config key="store_address2"}
{/if} - {if ! empty({config key="store_address3"})}{config key="store_address3"}
{/if} - {config key="store_zipcode"}, {config key="store_city"}
- {if {config key="store_country"}} - {loop type="country" name="store_country" id={config key="store_country"}} - {$TITLE}
- {/loop} - {/if} -
-

{intl d='cheque.fo.default' l="Be sure to sign your cheque !"}

- -{loop type="module-config" name="cheque-instructions" module="cheque" variable="instructions" locale={lang attr='locale'}} -

{$VALUE nofilter}

-{/loop} diff --git a/local/modules/modules/Colissimo/Colissimo.php b/local/modules/modules/Colissimo/Colissimo.php deleted file mode 100644 index c1023908..00000000 --- a/local/modules/modules/Colissimo/Colissimo.php +++ /dev/null @@ -1,177 +0,0 @@ -insertSql(null, array(__DIR__ . '/Config/thelia.sql')); - } - - public function isValidDelivery(Country $country) - { - if (0 == self::getConfigValue(ColissimoConfigValue::ENABLED, 1)) { - return false; - } - - if (null !== $area = $this->getAreaForCountry($country)) { - $areaId = $area->getId(); - - $prices = self::getPrices(); - - /* Check if Colissimo delivers the area */ - if (isset($prices[$areaId]) && isset($prices[$areaId]["slices"])) { - // Yes ! Check if the cart weight is below slice limit - $areaPrices = $prices[$areaId]["slices"]; - ksort($areaPrices); - - /* Check cart weight is below the maximum weight */ - end($areaPrices); - $maxWeight = key($areaPrices); - - $cartWeight = $this->getRequest()->getSession()->getSessionCart($this->getDispatcher())->getWeight(); - - if ($cartWeight <= $maxWeight) { - return true; - } - } - } - - return false; - } - - /** - * @param $areaId - * @param $weight - * - * @return mixed - * @throws \Thelia\Exception\OrderException - */ - public static function getPostageAmount($areaId, $weight) - { - $freeshipping = Colissimo::getConfigValue(ColissimoConfigValue::FREE_SHIPPING); - $postage = 0; - if (!$freeshipping) { - $prices = self::getPrices(); - - /* check if Colissimo delivers the asked area */ - if (!isset($prices[$areaId]) || !isset($prices[$areaId]["slices"])) { - throw new DeliveryException( - Translator::getInstance()->trans( - "Colissimo delivery unavailable for the delivery country", - [], - self::DOMAIN_NAME - ) - ); - } - - $areaPrices = $prices[$areaId]["slices"]; - ksort($areaPrices); - - /* Check cart weight is below the maximum weight */ - end($areaPrices); - $maxWeight = key($areaPrices); - if ($weight > $maxWeight) { - throw new DeliveryException( - Translator::getInstance()->trans( - "Colissimo delivery unavailable for this cart weight (%weight kg)", - array("%weight" => $weight), - self::DOMAIN_NAME - ) - ); - } - - $postage = current($areaPrices); - - while (prev($areaPrices)) { - if ($weight > key($areaPrices)) { - break; - } - - $postage = current($areaPrices); - } - } - return $postage; - - } - - /** - * - * calculate and return delivery price - * - * @param Country $country - * @return mixed - * @throws \Thelia\Exception\OrderException - */ - public function getPostage(Country $country) - { - $cartWeight = $this->getRequest()->getSession()->getSessionCart($this->getDispatcher())->getWeight(); - - $postage = self::getPostageAmount( - $this->getAreaForCountry($country)->getId(), - $cartWeight - ); - - return $postage; - } - - public function update($currentVersion, $newVersion, ConnectionInterface $con = null) - { - $uploadDir = __DIR__ . '/Config/prices.json'; - - $database = new Database($con); - - $tableExists = $database->execute("SHOW TABLES LIKE 'colissimo_freeshipping'")->rowCount(); - - if (Colissimo::getConfigValue(ColissimoConfigValue::FREE_SHIPPING, null) == null && $tableExists) { - $result = $database->execute('SELECT active FROM colissimo_freeshipping WHERE id=1')->fetch()["active"]; - Colissimo::setConfigValue(ColissimoConfigValue::FREE_SHIPPING, $result); - $database->execute("DROP TABLE `colissimo_freeshipping`"); - } - - if (is_readable($uploadDir) && Colissimo::getConfigValue(ColissimoConfigValue::PRICES, null) == null) { - Colissimo::setConfigValue(ColissimoConfigValue::PRICES, file_get_contents($uploadDir)); - } - } -} diff --git a/local/modules/modules/Colissimo/Config/config.xml b/local/modules/modules/Colissimo/Config/config.xml deleted file mode 100644 index fb02632e..00000000 --- a/local/modules/modules/Colissimo/Config/config.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/local/modules/modules/Colissimo/Config/module.xml b/local/modules/modules/Colissimo/Config/module.xml deleted file mode 100644 index b6d71aab..00000000 --- a/local/modules/modules/Colissimo/Config/module.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - Colissimo\Colissimo - - Colissimo delivery - - - Livraison par Colissimo - - 2.3.4 - - Manuel Raynaud - manu@raynaud.io - - delivery - 2.2.0 - alpha - diff --git a/local/modules/modules/Colissimo/Config/prices.json b/local/modules/modules/Colissimo/Config/prices.json deleted file mode 100644 index 53eacc3b..00000000 --- a/local/modules/modules/Colissimo/Config/prices.json +++ /dev/null @@ -1,64 +0,0 @@ -{"1": { - "_info": "area 1 : France", - "slices": { - "0.25": 5.23, - "0.5": 6.13, - "0.75": 6.89, - "1": 7.51, - "2": 8.50, - "5": 10.93, - "10": 15.68, - "30": 23.28 - } -}, "2": { - "_info": "area 2 : A Zone - Union Europ\u00e9enne et Suisse", - "slices": { - "0.5": 11.54, - "1": 14.11, - "2": 15.68, - "5": 20.14, - "10": 33.25, - "20": 55.10, - "30": 55.10 - } -}, "3": { - "_info": "area 3 : B Zone - Pays de l\u2019Europe de l\u2019Est (hors Union Europ\u00e9enne et Russie), Norv\u00e8ge, Maghreb", - "slices": { - "0.5": 15.39, - "1": 18.38, - "2": 20.00, - "5": 25.65, - "10": 42.75, - "20": 66.50 - } -}, "4": { - "_info": "area 4 : C Zone - Autres destinations", - "slices": { - "0.5": 22.52, - "1": 24.99, - "2": 34.30, - "5": 50.35, - "10": 95.00, - "20": 152.00 - } -}, "5": { - "_info": "area 5 : France OM1", - "slices": { - "0.5": 8.69, - "1": 13.16, - "2": 17.96, - "5": 26.60, - "10": 42.75, - "30": 95.95 - } -}, "6": { - "_info": "area 6 : France OM2", - "slices": { - "0.5": 10.40, - "1": 15.72, - "2": 27.74, - "5": 46.08, - "10": 90.25, - "30": 237.50 - } -}} diff --git a/local/modules/modules/Colissimo/Config/routing.xml b/local/modules/modules/Colissimo/Config/routing.xml deleted file mode 100644 index 4edcf64d..00000000 --- a/local/modules/modules/Colissimo/Config/routing.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - Colissimo\Controller\EditPrices::editprices - - - - Colissimo\Controller\FreeShipping::set - - - - Colissimo\Controller\Export::exportAction - - - - Colissimo\Controller\Configuration::editConfiguration - - diff --git a/local/modules/modules/Colissimo/Config/thelia.sql b/local/modules/modules/Colissimo/Config/thelia.sql deleted file mode 100644 index d44ef9fa..00000000 --- a/local/modules/modules/Colissimo/Config/thelia.sql +++ /dev/null @@ -1,32 +0,0 @@ -# This is a fix for InnoDB in MySQL >= 4.1.x -# It "suspends judgement" for fkey relationships until are tables are set. -SET FOREIGN_KEY_CHECKS = 0; - --- --------------------------------------------------------------------- --- Mail templates for colissimo --- --------------------------------------------------------------------- - --- First, delete existing entries -SET @var := 0; -SELECT @var := `id` FROM `message` WHERE name="mail_colissimo"; -DELETE FROM `message` WHERE `id`=@var; --- Try if ON DELETE constraint isn't set -DELETE FROM `message_i18n` WHERE `id`=@var; - --- Then add new entries -SELECT @max := MAX(`id`) FROM `message`; -SET @max := @max+1; --- insert message -INSERT INTO `message` (`id`, `name`, `secured`) VALUES -(@max, -'mail_colissimo', -'0' -); - --- and template fr_FR -INSERT INTO `message_i18n` (`id`, `locale`, `title`, `subject`, `text_message`, `html_message`) VALUES -(@max, 'en_US', 'Colissimo shipping message', 'Your order {$order_ref} has been shipped', '{loop type="customer" name="customer.order" current="false" id="$customer_id" backend_context="1"}\r\nDear {$FIRSTNAME} {$LASTNAME},\r\n{/loop}\r\nThank you for your order on our online store {config key="store_name"}.\r\nYour order {$order_ref} dated {format_date date=$order_date} has been shipped on {format_date date=$update_date}.\r\nThe tracking number for this delivery is {$package}. Please check the La Poste website for tracking your parcel: www.coliposte.net.\r\nYou can use this tracking number to get your parcel in your local La Poste office. If don''t get an advice in your mailbox after two working days, claim your parcel at your local La Poste office, using this tracking number.\r\nFeel free to contact us for any forther information\r\nBest Regards.', '{loop type="customer" name="customer.order" current="false" id="$customer_id" backend_context="1"}\r\n

Dear {$FIRSTNAME} {$LASTNAME},

\r\n{/loop}\r\n

Thank you for your order on our online store {config key="store_name"}.

\r\n

Your order {$order_ref} dated {format_date date=$order_date} has been shipped on {format_date date=$update_date}.\r\nThe tracking number for this delivery is {$package}. Please check the La Poste website for tracking your parcel: www.coliposte.net.

\r\n

You can use this tracking number to get your parcel in your local La Poste office. If don''t get an advice in your mailbox after two working days, claim your parcel at your local La Poste office, using this tracking number.

\r\n

Feel free to contact us for any forther information

\r\n

Best Regards.

'), -(@max, 'fr_FR', 'Message d''expédition de colissimo', 'Suivi colissimo commande : {$order_ref}', '{loop type="customer" name="customer.order" current="false" id="$customer_id" backend_context="1"}\r\n{$LASTNAME} {$FIRSTNAME},\r\n{/loop}\r\nNous vous remercions de votre commande sur notre site {config key="store_name"}\r\nUn colis concernant votre commande {$order_ref} du {format_date date=$order_date} a quitté nos entrepôts pour être pris en charge par La Poste le {format_date date=$update_date}.\r\nSon numéro de suivi est le suivant : {$package}\r\nIl vous permet de suivre votre colis en ligne sur le site de La Poste : www.coliposte.net\r\nIl vous sera, par ailleurs, très utile si vous étiez absent au moment de la livraison de votre colis : en fournissant ce numéro de Colissimo Suivi, vous pourrez retirer votre colis dans le bureau de Poste le plus proche.\r\nATTENTION ! Si vous ne trouvez pas l''avis de passage normalement déposé dans votre boîte aux lettres au bout de 48 Heures jours ouvrables, n''hésitez pas à aller le réclamer à votre bureau de Poste, muni de votre numéro de Colissimo Suivi.\r\nNous restons à votre disposition pour toute information complémentaire.\r\nCordialement', '{loop type="customer" name="customer.order" current="false" id="$customer_id" backend_context="1"}\r\n{$LASTNAME} {$FIRSTNAME},\r\n{/loop}\r\nNous vous remercions de votre commande sur notre site {config key="store_name"}\r\nUn colis concernant votre commande {$order_ref} du {format_date date=$order_date} a quitté nos entrepôts pour être pris en charge par La Poste le {format_date date=$update_date}.\r\nSon numéro de suivi est le suivant : {$package}\r\nIl vous permet de suivre votre colis en ligne sur le site de La Poste : www.coliposte.net\r\nIl vous sera, par ailleurs, très utile si vous étiez absent au moment de la livraison de votre colis : en fournissant ce numéro de Colissimo Suivi, vous pourrez retirer votre colis dans le bureau de Poste le plus proche.\r\nATTENTION ! Si vous ne trouvez pas l''avis de passage normalement déposé dans votre boîte aux lettres au bout de 48 Heures jours ouvrables, n''hésitez pas à aller le réclamer à votre bureau de Poste, muni de votre numéro de Colissimo Suivi.\r\nNous restons à votre disposition pour toute information complémentaire.\r\nCordialement'); - -# This restores the fkey checks, after having unset them earlier -SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file diff --git a/local/modules/modules/Colissimo/Controller/Configuration.php b/local/modules/modules/Colissimo/Controller/Configuration.php deleted file mode 100644 index 52f99df8..00000000 --- a/local/modules/modules/Colissimo/Controller/Configuration.php +++ /dev/null @@ -1,77 +0,0 @@ - - */ -class Configuration extends BaseAdminController -{ - public function editConfiguration() - { - if (null !== $response = $this->checkAuth( - AdminResources::MODULE, - [Colissimo::DOMAIN_NAME], - AccessManager::UPDATE - )) { - return $response; - } - - $form = $this->createForm('colissimo.configuration'); - $error_message = null; - - try { - $validateForm = $this->validateForm($form); - $data = $validateForm->getData(); - - Colissimo::setConfigValue( - ColissimoConfigValue::ENABLED, - is_bool($data["enabled"]) ? (int) ($data["enabled"]) : $data["enabled"] - ); - - return $this->redirectToConfigurationPage(); - - } catch (FormValidationException $e) { - $error_message = $this->createStandardFormValidationErrorMessage($e); - } - - if (null !== $error_message) { - $this->setupFormErrorContext( - 'configuration', - $error_message, - $form - ); - $response = $this->render("module-configure", ['module_code' => 'Colissimo']); - } - return $response; - } - - /** - * Redirect to the configuration page - */ - protected function redirectToConfigurationPage() - { - return RedirectResponse::create(URL::getInstance()->absoluteUrl('/admin/module/Colissimo')); - } -} diff --git a/local/modules/modules/Colissimo/Controller/EditPrices.php b/local/modules/modules/Colissimo/Controller/EditPrices.php deleted file mode 100644 index a4ed5083..00000000 --- a/local/modules/modules/Colissimo/Controller/EditPrices.php +++ /dev/null @@ -1,84 +0,0 @@ - - */ -class EditPrices extends BaseAdminController -{ - public function editprices() - { - // Get data & treat - $post = $this->getRequest(); - $operation = $post->get('operation'); - $area = $post->get('area'); - $weight = $post->get('weight'); - $price = $post->get('price'); - - if (preg_match("#^add|delete$#", $operation) && - preg_match("#^\d+$#", $area) && - preg_match("#^\d+\.?\d*$#", $weight) - ) { - // check if area exists in db - $exists = AreaQuery::create() - ->findPK($area); - if ($exists !== null) { - - if (null !== $data = Colissimo::getConfigValue(ColissimoConfigValue::PRICES, null)) { - $json_data = json_decode( - $data, - true - ); - } - if ((float) $weight > 0 && $operation == "add" - && preg_match("#\d+\.?\d*#", $price)) { - $json_data[$area]['slices'][$weight] = $price; - } elseif ($operation == "delete") { - if (isset($json_data[$area]['slices'][$weight])) { - unset($json_data[$area]['slices'][$weight]); - } - } else { - throw new \Exception("Weight must be superior to 0"); - } - ksort($json_data[$area]['slices']); - - Colissimo::setConfigValue(ColissimoConfigValue::PRICES, json_encode($json_data)); - - } else { - throw new \Exception("Area not found"); - } - } else { - throw new \ErrorException("Arguments are missing or invalid"); - } - - return $this->redirectToConfigurationPage(); - } - - /** - * Redirect to the configuration page - */ - protected function redirectToConfigurationPage() - { - return RedirectResponse::create(URL::getInstance()->absoluteUrl('/admin/module/Colissimo')); - } -} diff --git a/local/modules/modules/Colissimo/Controller/Export.php b/local/modules/modules/Colissimo/Controller/Export.php deleted file mode 100644 index ca82a68e..00000000 --- a/local/modules/modules/Colissimo/Controller/Export.php +++ /dev/null @@ -1,166 +0,0 @@ - - */ -class Export extends BaseAdminController -{ - const DEFAULT_PHONE = "0100000000"; - const DEFAULT_CELLPHONE = "0600000000"; - - public function exportAction() - { - if (null !== $response = $this->checkAuth(array(AdminResources::MODULE), array('Colissimo'), AccessManager::UPDATE)) { - return $response; - } - - $form = new FormExport($this->getRequest()); - - try { - $exportForm = $this->validateForm($form); - - // Get new status - $status_id = $exportForm->get('status_id')->getData(); - $status = OrderStatusQuery::create() - ->filterByCode($status_id) - ->findOne(); - - // Get Colissimo orders - $orders = ColissimoQuery::getOrders()->find(); - - $export = ""; - $store_name = ConfigQuery::getStoreName(); - - /** @var $order \Thelia\Model\Order */ - foreach ($orders as $order) { - - $value = $exportForm->get('order_'.$order->getId())->getData(); - - if ($value) { - - // Get order information - $customer = $order->getCustomer(); - $locale = $order->getLang()->getLocale(); - $address = $order->getOrderAddressRelatedByDeliveryOrderAddressId(); - $country = CountryQuery::create()->findPk($address->getCountryId()); - $country->setLocale($locale); - $customerTitle = CustomerTitleQuery::create()->findPk($address->getCustomerTitleId()); - $customerTitle->setLocale($locale); - $weight = $exportForm->get('order_weight_'.$order->getId())->getData(); - - if ($weight == 0) { - /** @var \Thelia\Model\OrderProduct $product */ - foreach ($order->getOrderProducts() as $product) { - $weight += (double)$product->getWeight(); - } - } - - /** - * Get user's phone & cellphone - * First get invoice address phone, - * If empty, try to get default address' phone. - * If still empty, set default value - */ - $phone = $address->getPhone(); - if (empty($phone)) { - $phone = $customer->getDefaultAddress()->getPhone(); - - if (empty($phone)) { - $phone = self::DEFAULT_PHONE; - } - } - - // Cellphone - $cellphone = $customer->getDefaultAddress()->getCellphone(); - - if (empty($cellphone)) { - $cellphone = $customer->getDefaultAddress()->getCellphone(); - - if (empty($cellphone)) { - $cellphone = self::DEFAULT_CELLPHONE; - } - } - - - $export .= - "\"".$order->getRef() - ."\";\"".$address->getLastname() - ."\";\"".$address->getFirstname() - ."\";\"".$address->getAddress1() - ."\";\"".$address->getAddress2() - ."\";\"".$address->getAddress3() - ."\";\"".$address->getZipcode() - ."\";\"".$address->getCity() - ."\";\"".$country->getIsoalpha2() - ."\";\"".$phone - ."\";\"".$cellphone - ."\";\"".$weight - ."\";\"".$customer->getEmail() - ."\";\"\";\"".$store_name - ."\";\"DOM\";\r\n"; - - if ($status) { - $event = new OrderEvent($order); - $event->setStatus($status->getId()); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_UPDATE_STATUS, $event); - } - } - } - - return Response::create( - utf8_decode($export), - 200, - array( - "Content-Encoding"=>"ISO-8889-1", - "Content-Type"=>"application/csv-tab-delimited-table", - "Content-disposition"=>"filename=export.csv" - ) - ); - - } catch (FormValidationException $e) { - $this->setupFormErrorContext( - Translator::getInstance()->trans("colissimo expeditor export", [], Colissimo::DOMAIN_NAME), - $e->getMessage(), - $form, - $e - ); - - return $this->render( - "module-configure", - array( - "module_code" => "Colissimo", - ) - ); - } - } -} diff --git a/local/modules/modules/Colissimo/Controller/FreeShipping.php b/local/modules/modules/Colissimo/Controller/FreeShipping.php deleted file mode 100644 index 10d46e6f..00000000 --- a/local/modules/modules/Colissimo/Controller/FreeShipping.php +++ /dev/null @@ -1,62 +0,0 @@ - - */ -class FreeShipping extends BaseAdminController -{ - public function set() - { - $response = $this->checkAuth(AdminResources::MODULE, [Colissimo::DOMAIN_NAME], AccessManager::UPDATE); - if (null !== $response) { - return $response; - } - - $form = $this->createForm('colissimo.freeshipping.form'); - - - try { - $validateForm = $this->validateForm($form); - $data = $validateForm->getData(); - - Colissimo::setConfigValue(ColissimoConfigValue::FREE_SHIPPING, (int) ($data["freeshipping"])); - return $this->redirectToConfigurationPage(); - - } catch (\Exception $e) { - $response = JsonResponse::create(array("error"=>$e->getMessage()), 500); - } - - return $response; - } - - /** - * Redirect to the configuration page - */ - protected function redirectToConfigurationPage() - { - return RedirectResponse::create(URL::getInstance()->absoluteUrl('/admin/module/Colissimo')); - } -} diff --git a/local/modules/modules/Colissimo/EventListener/AreaDeletedListener.php b/local/modules/modules/Colissimo/EventListener/AreaDeletedListener.php deleted file mode 100644 index c1eb3e41..00000000 --- a/local/modules/modules/Colissimo/EventListener/AreaDeletedListener.php +++ /dev/null @@ -1,53 +0,0 @@ - - */ -class AreaDeletedListener implements EventSubscriberInterface -{ - /** - * @param AreaDeleteEvent $event - */ - public function updateConfig(AreaDeleteEvent $event) - { - if (null !== $data = Colissimo::getConfigValue(ColissimoConfigValue::PRICES, null)) { - $areaId = $event->getAreaId(); - $json_data = json_decode($data, true); - unset($json_data[$areaId]); - - Colissimo::setConfigValue(ColissimoConfigValue::PRICES, json_encode($json_data, true)); - } - } - - /** - * @return array - */ - public static function getSubscribedEvents() - { - return [ - TheliaEvents::AREA_DELETE => [ - 'updateConfig', 128 - ] - ]; - } -} diff --git a/local/modules/modules/Colissimo/Form/Configuration.php b/local/modules/modules/Colissimo/Form/Configuration.php deleted file mode 100644 index bc9c58b3..00000000 --- a/local/modules/modules/Colissimo/Form/Configuration.php +++ /dev/null @@ -1,59 +0,0 @@ - - */ -class Configuration extends BaseForm -{ - - protected function buildForm() - { - $this->formBuilder - ->add( - "enabled", - "checkbox", - array( - "label" => "Enabled", - "label_attr" => [ - "for" => "enabled", - "help" => Translator::getInstance()->trans( - 'Check if you want to activate Colissimo', - [], - Colissimo::DOMAIN_NAME - ) - ], - "required" => false, - "constraints" => array( - ), - "value" => Colissimo::getConfigValue(ColissimoConfigValue::ENABLED, 1), - ) - ); - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "colissimo_enable"; - } -} diff --git a/local/modules/modules/Colissimo/Form/Export.php b/local/modules/modules/Colissimo/Form/Export.php deleted file mode 100644 index 47c8fddf..00000000 --- a/local/modules/modules/Colissimo/Form/Export.php +++ /dev/null @@ -1,122 +0,0 @@ - - */ -class Export extends BaseForm -{ - - /** - * - * in this function you add all the fields you need for your Form. - * Form this you have to call add method on $this->formBuilder attribute : - * - * $this->formBuilder->add("name", "text") - * ->add("email", "email", array( - * "attr" => array( - * "class" => "field" - * ), - * "label" => "email", - * "constraints" => array( - * new \Symfony\Component\Validator\Constraints\NotBlank() - * ) - * ) - * ) - * ->add('age', 'integer'); - * - * @return null - */ - protected function buildForm() - { - $orders = ColissimoQuery::getOrders() - ->find(); - - $this->formBuilder - ->add( - 'status_id', - 'text', - [ - 'constraints' => [ - new NotBlank(), - new Callback( - array("methods" => array(array($this, "verifyValue"))) - ) - ], - 'label' => Translator::getInstance()->trans( - 'Modify status export after export', - [], - Colissimo::DOMAIN_NAME - ), - 'label_attr' => [ - 'for' => 'status_id' - ] - ] - ); - - /** @var \Thelia\Model\Order $order */ - foreach ($orders as $order) { - $this->formBuilder - ->add( - "order_".$order->getId(), - "checkbox", - array( - 'label'=>$order->getRef(), - 'label_attr'=>array( - 'for'=>'export_'.$order->getId() - ) - ) - ) - ->add( - "order_nb_pkg_".$order->getId(), - 'number' - ) - ->add( - "order_weight_".$order->getId(), - 'number' - ); - } - } - - public function verifyValue($value, ExecutionContextInterface $context) - { - if (!preg_match("#^nochange|processing|sent$#", $value)) { - $context->addViolation( - Translator::getInstance()->trans( - 'select a valid status', - [], - Colissimo::DOMAIN_NAME - ) - ); - } - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "colissimo_export"; - } -} diff --git a/local/modules/modules/Colissimo/Form/FreeShipping.php b/local/modules/modules/Colissimo/Form/FreeShipping.php deleted file mode 100644 index baea56e0..00000000 --- a/local/modules/modules/Colissimo/Form/FreeShipping.php +++ /dev/null @@ -1,62 +0,0 @@ -formBuilder attribute : - * - * $this->formBuilder->add("name", "text") - * ->add("email", "email", array( - * "attr" => array( - * "class" => "field" - * ), - * "label" => "email", - * "constraints" => array( - * new \Symfony\Component\Validator\Constraints\NotBlank() - * ) - * ) - * ) - * ->add('age', 'integer'); - * - * @return null - */ - protected function buildForm() - { - $this->formBuilder - ->add( - "freeshipping", - "checkbox", - array( - "label" => Translator::getInstance()->trans("Activate free shipping: ", [], Colissimo::DOMAIN_NAME), - "value" => Colissimo::getConfigValue(ColissimoConfigValue::FREE_SHIPPING, false), - ) - ); - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "colissimofreeshipping"; - } -} diff --git a/local/modules/modules/Colissimo/Hook/HookManager.php b/local/modules/modules/Colissimo/Hook/HookManager.php deleted file mode 100644 index 7c8b15bb..00000000 --- a/local/modules/modules/Colissimo/Hook/HookManager.php +++ /dev/null @@ -1,31 +0,0 @@ - - */ -class HookManager extends BaseHook -{ - public function onModuleConfiguration(HookRenderEvent $event) - { - $module_id = self::getModule()->getModuleId(); - - $event->add($this->render("module_configuration.html", ['module_id' => $module_id])); - } -} diff --git a/local/modules/modules/Colissimo/I18n/backOffice/default/de_DE.php b/local/modules/modules/Colissimo/I18n/backOffice/default/de_DE.php deleted file mode 100644 index 10ed342f..00000000 --- a/local/modules/modules/Colissimo/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,25 +0,0 @@ - '*Wenn Sie diese Option auswählen, sind die exportierten Bestellungen auf dieser Seite nicht mehr verfügbar', - 'Actions' => 'Aktionen', - 'An error occured' => 'Ein Fehler ist aufgetreten', - 'Area : ' => 'Bereich : ', - 'Cancel' => 'Abbrechen', - 'Change orders status after export' => 'Status der Bestellung nach dem Export ändern', - 'Colissimo Module allows to send your products all around the world with La Poste.' => 'Colissimo Modul ermöglicht, Ihre Produkte mit La Poste weltweit zu versenden.', - 'Create' => 'Erstellen', - 'Date' => 'Datum', - 'Delete' => 'Löschen', - 'Do not change' => 'Nicht ändern', - 'Edit' => 'Ändern', - 'Export' => 'Export', - 'Please change the access rights' => 'Bitte ändern Sie die Zugriffsrechte', - 'Price (€)' => 'Preis (€)', - 'Processing' => 'Bearbeitung', - 'REF' => 'REF', - 'Sent' => 'Gesendet', - 'There is currently not orders to export' => 'Es gibt derzeit keine Bestellungen, die exportiert werden können', - 'Total taxed amount' => 'Gesamter besteuerter Betrag', - 'Weight up to ... (kg)' => 'Gewicht bis zu ... (kg)', -]; diff --git a/local/modules/modules/Colissimo/I18n/backOffice/default/en_US.php b/local/modules/modules/Colissimo/I18n/backOffice/default/en_US.php deleted file mode 100644 index 0d48057a..00000000 --- a/local/modules/modules/Colissimo/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,36 +0,0 @@ - '*If you choose this option, the exported orders would not be available on this page anymore', - 'Actions' => 'Actions', - 'An error occured' => 'An error occured', - 'Area : ' => 'Area : ', - 'Cancel' => 'Cancel', - 'Change orders status after export' => 'Change orders status after export', - 'Colissimo Module allows to send your products all around the world with La Poste.' => 'Colissimo Module allows to send your products all around the world with La Poste.', - 'Create' => 'Create', - 'Create a new price slice' => 'Create a new price slice', - 'Create a price slice' => 'Create a price slice', - 'Date' => 'Date', - 'Delete' => 'Delete', - 'Delete a price slice' => 'Delete a price slice', - 'Delete this price slice' => 'Delete this price slice', - 'Do not change' => 'Do not change', - 'Do you really want to delete this slice ?' => 'Do you really want to delete this slice ?', - 'Edit' => 'Edit', - 'Edit a price slice' => 'Edit a price slice', - 'Edit this price slice' => 'Edit this price slice', - 'Export' => 'Export', - 'Export expeditor inet file' => 'Export expeditor inet file', - 'Please change the access rights' => 'Please change the access rights', - 'Price (€)' => 'Price (€)', - 'Price slices' => 'Price slices', - 'Processing' => 'Processing', - 'REF' => 'REF', - 'Sent' => 'Sent', - 'There is currently not orders to export' => 'There is currently no orders to export', - 'Total taxed amount' => 'Total taxed amount', - 'Weight up to ... (kg)' => 'Weight up to ... (kg)', - 'Number of packages' => 'Number of packages', - 'Packages weight' => 'Packages weight' -); diff --git a/local/modules/modules/Colissimo/I18n/backOffice/default/fr_FR.php b/local/modules/modules/Colissimo/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index d7237509..00000000 --- a/local/modules/modules/Colissimo/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,37 +0,0 @@ - '* Si vous choisissez cette option, les commandes exportées ne seront plus affichée sur cette page.', - 'Actions' => 'Actions', - 'An error occured' => 'Une erreur est survenue', - 'Area : ' => 'Zone de livraison : ', - 'Cancel' => 'Annuler', - 'Change orders status after export' => 'Modification du statut des commande après l\'export', - 'Colissimo Module allows to send your products all around the world with La Poste.' => 'Colissimo vous permet d’expédier vos colis dans le monde entier avec La Poste', - 'Create' => 'Créer', - 'Create a new price slice' => 'Créer une nouvelle tranche de prix', - 'Create a price slice' => 'Créer une tranche de prix', - 'Customer' => 'Client', - 'Date' => 'Date', - 'Delete' => 'Supprimer', - 'Delete a price slice' => 'Supprimer une tranche de prix', - 'Delete this price slice' => 'Supprimer cette tranche de prix', - 'Do not change' => 'Ne pas modifier', - 'Do you really want to delete this slice ?' => 'Confirmez-vous la suppression de cette tranche de prix', - 'Edit' => 'Modifier', - 'Edit a price slice' => 'Modifier une tranche de prix', - 'Edit this price slice' => 'Modifier cette tranche de prix', - 'Export' => 'Export', - 'Export expeditor inet file' => 'Exporter le fichier Expeditor INET', - 'Number of packages' => 'Nombre de colis', - 'Packages weight' => 'Poids des colis', - 'Please change the access rights' => 'Merci de modifier les droits d\'accès', - 'Price (€)' => 'Prix (€)', - 'Price slices' => 'Prix et poids', - 'Processing' => 'Traitement', - 'REF' => 'REF', - 'Sent' => 'Envoyée', - 'There is currently not orders to export' => 'Il n\'y a pas de commande à exporter pour le moment', - 'Total taxed amount' => 'Total TTC', - 'Weight up to ... (kg)' => 'Jusqu\'au poids (Kg)', -]; diff --git a/local/modules/modules/Colissimo/I18n/backOffice/default/it_IT.php b/local/modules/modules/Colissimo/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 58e711dc..00000000 --- a/local/modules/modules/Colissimo/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Azioni', - 'Cancel' => 'Annulla', - 'Create' => 'Creare', - 'Date' => 'Data', - 'Delete' => 'Cancellare', - 'Edit' => 'Modifica', - 'Export' => 'Esporta', - 'Number of packages' => 'Numero di pacchetti', - 'Packages weight' => 'Peso pacchi', -]; diff --git a/local/modules/modules/Colissimo/I18n/backOffice/default/tr_TR.php b/local/modules/modules/Colissimo/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index a777927b..00000000 --- a/local/modules/modules/Colissimo/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,34 +0,0 @@ - '* Bu seçeneği seçerseniz, ihracat siparişleri artık bu sayfadaki müsait olmaz', - 'Actions' => 'Eylemler', - 'An error occured' => 'Bir hata meydana geldi', - 'Area : ' => 'Alanı: ', - 'Cancel' => 'Vazgeç', - 'Change orders status after export' => 'İhracat sonra sipariş durumunu değiştir', - 'Colissimo Module allows to send your products all around the world with La Poste.' => 'Colissimo modülü sağlar ürünlerinizi göndermek için La Poste ile dünyanın her yerinden.', - 'Create' => 'Oluştur', - 'Create a new price slice' => 'Yeni fiyat dilimi oluşturmak', - 'Create a price slice' => 'Bir fiyat dilim oluşturma', - 'Date' => 'Tarih', - 'Delete' => 'sil', - 'Delete a price slice' => 'Bir fiyat dilim silmek', - 'Delete this price slice' => 'Bu fiyat dilim silmek', - 'Do not change' => 'Değiştirme', - 'Do you really want to delete this slice ?' => 'Gerçekten bu dosyayı silmek istiyor musunuz ?', - 'Edit' => 'Düzenle', - 'Edit a price slice' => 'Bir fiyat dilim Düzenle', - 'Edit this price slice' => 'Bu fiyat dilim Düzenle', - 'Export' => 'Dışa aktarma', - 'Export expeditor inet file' => 'Expeditor inet dosyası dışa aktarma', - 'Please change the access rights' => 'Lütfen erişim haklarını Değiştir', - 'Price (€)' => 'Fiyat (TL)', - 'Price slices' => 'Fiyat dilimleri', - 'Processing' => 'İşlem devam ediyor', - 'REF' => 'ÜRÜN KODU', - 'Sent' => 'Gönder', - 'There is currently not orders to export' => 'Şu anda hiçbir emir vermek için', - 'Total taxed amount' => 'Toplam Kdvtutarı', - 'Weight up to ... (kg)' => 'Fazla kilo... (kg)', -]; diff --git a/local/modules/modules/Colissimo/I18n/de_DE.php b/local/modules/modules/Colissimo/I18n/de_DE.php deleted file mode 100644 index 5198cfbd..00000000 --- a/local/modules/modules/Colissimo/I18n/de_DE.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Kostenlose Lieferung aktivieren: ', - 'Can\'t read Config directory' => 'Config-Verzeichnis kann nicht gelesen werden', - 'Can\'t read file' => 'Datei kann nicht gelesen werden', - 'Can\'t write Config directory' => 'Config-Verzeichnis kann nicht beschrieben werden', - 'Can\'t write file' => 'Datei kann nicht geschrieben werden', - 'Colissimo delivery unavailable for the delivery country' => 'Eine Lieferung mit Colissimo ist für das Land nicht verfügbar', - 'Colissimo delivery unavailable for this cart weight (%weight kg)' => 'Eine Lieferung mit Colissimo ist für Warenkörbe mit diesem Gewicht (%weight kg) nicht verfügbar', - 'Modify status export after export' => 'Status der Bestellung nach dem Export ändern', - 'colissimo expeditor export' => 'Colissimo expeditor export', - 'select a valid status' => 'Wählen Sie einen gültigen Bestellungsstatus aus', -]; diff --git a/local/modules/modules/Colissimo/I18n/en_US.php b/local/modules/modules/Colissimo/I18n/en_US.php deleted file mode 100644 index c060ae29..00000000 --- a/local/modules/modules/Colissimo/I18n/en_US.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Activate free shipping: ', - 'Can\'t read Config directory' => 'Can\'t read Config directory', - 'Can\'t read file' => 'Can\'t read file', - 'Can\'t write Config directory' => 'Can\'t write Config directory', - 'Can\'t write file' => 'Can\'t write file', - 'Colissimo delivery unavailable for the delivery country' => 'Colissimo delivery unavailable for the delivery country', - 'Colissimo delivery unavailable for this cart weight (%weight kg)' => 'Colissimo delivery unavailable for this cart weight (%weight kg)', - 'Modify status export after export' => 'Change orders status after export', - 'colissimo expeditor export' => 'Colissimo Expeditor export', - 'select a valid status' => 'Select a valid order status', -); diff --git a/local/modules/modules/Colissimo/I18n/fr_FR.php b/local/modules/modules/Colissimo/I18n/fr_FR.php deleted file mode 100644 index 92634b2c..00000000 --- a/local/modules/modules/Colissimo/I18n/fr_FR.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Activer la livraison offerte: ', - 'Can\'t read Config directory' => 'Le dossier Config ne peut être lu', - 'Can\'t read file' => 'Le fichier suivant ne peut être lu', - 'Can\'t write Config directory' => 'Le dossier Config ne peut être écrit', - 'Can\'t write file' => 'Le fichier suivant ne peut être écrit', - 'Colissimo delivery unavailable for the delivery country' => 'La livraison par Colissimo n\'est pas disponible dans ce pays', - 'Colissimo delivery unavailable for this cart weight (%weight kg)' => 'La livraison par Colissimo n\'est pas disponible pour un panier de %weight Kg', - 'Modify status export after export' => 'Modification du statut des commandes après l\'export', - 'colissimo expeditor export' => 'Export pour le logiciel Expeditor', - 'select a valid status' => 'Choisissez un statut de commande valide.', -]; diff --git a/local/modules/modules/Colissimo/I18n/tr_TR.php b/local/modules/modules/Colissimo/I18n/tr_TR.php deleted file mode 100644 index 4d4ef3c5..00000000 --- a/local/modules/modules/Colissimo/I18n/tr_TR.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Ücretsiz nakliye etkinleştirmek için: ', - 'Can\'t read Config directory' => 'Yapılandırma dizini okunamıyor', - 'Can\'t read file' => 'Dosyayı okuyamıyor', - 'Can\'t write Config directory' => 'Dosyayı okuyamıyor', - 'Can\'t write file' => 'Dosyaya yazılamıyor', - 'Colissimo delivery unavailable for the delivery country' => 'Bu Teslimat Bu ülke için kullanılamaz Colissimo teslim', - 'Colissimo delivery unavailable for this cart weight (%weight kg)' => 'Colissimo teslimat için bu sepeti ağırlık (%weight kg) kullanılamaz', - 'Modify status export after export' => 'İhracat sonra sipariş durumunu değiştir', - 'colissimo expeditor export' => 'Colissimo Expeditor verme', - 'select a valid status' => 'Geçerli sipariş durumunu seçin', -]; diff --git a/local/modules/modules/Colissimo/LICENSE.txt b/local/modules/modules/Colissimo/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/Colissimo/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/Colissimo/Listener/SendMail.php b/local/modules/modules/Colissimo/Listener/SendMail.php deleted file mode 100644 index e9db80ae..00000000 --- a/local/modules/modules/Colissimo/Listener/SendMail.php +++ /dev/null @@ -1,104 +0,0 @@ - - */ -class SendMail implements EventSubscriberInterface -{ - - protected $parser; - - protected $mailer; - - public function __construct(ParserInterface $parser, MailerFactory $mailer) - { - $this->parser = $parser; - $this->mailer = $mailer; - } - - public function updateStatus(OrderEvent $event) - { - $order = $event->getOrder(); - $colissimo = new Colissimo(); - - if ($order->isSent() && $order->getDeliveryModuleId() == $colissimo->getModuleModel()->getId()) { - $contact_email = ConfigQuery::getStoreEmail(); - - if ($contact_email) { - $order = $event->getOrder(); - $customer = $order->getCustomer(); - - $this->mailer->sendEmailToCustomer( - 'mail_colissimo', - $customer, - [ - 'customer_id' => $customer->getId(), - 'order_ref' => $order->getRef(), - 'order_date' => $order->getCreatedAt(), - 'update_date' => $order->getUpdatedAt(), - 'package' => $order->getDeliveryRef() - ] - ); - - Tlog::getInstance()->debug("Colissimo shipping message sent to customer ".$customer->getEmail()); - } else { - $customer = $order->getCustomer(); - Tlog::getInstance()->debug("Colissimo shipping message no contact email customer_id", $customer->getId()); - } - } - } - - /** - * Returns an array of event names this subscriber wants to listen to. - * - * The array keys are event names and the value can be: - * - * * The method name to call (priority defaults to 0) - * * An array composed of the method name to call and the priority - * * An array of arrays composed of the method names to call and respective - * priorities, or 0 if unset - * - * For instance: - * - * * array('eventName' => 'methodName') - * * array('eventName' => array('methodName', $priority)) - * * array('eventName' => array(array('methodName1', $priority), array('methodName2')) - * - * @return array The event names to listen to - * - * @api - */ - public static function getSubscribedEvents() - { - return array( - TheliaEvents::ORDER_UPDATE_STATUS => array("updateStatus", 128) - ); - } -} diff --git a/local/modules/modules/Colissimo/Loop/CheckRightsLoop.php b/local/modules/modules/Colissimo/Loop/CheckRightsLoop.php deleted file mode 100644 index d655f1ad..00000000 --- a/local/modules/modules/Colissimo/Loop/CheckRightsLoop.php +++ /dev/null @@ -1,100 +0,0 @@ - - */ -class CheckRightsLoop extends BaseLoop implements ArraySearchLoopInterface -{ - protected function getArgDefinitions() - { - return new ArgumentCollection(); - } - - public function buildArray() - { - $ret = array(); - $dir = __DIR__."/../Config/"; - if (!is_readable($dir)) { - - $ret[] = array( - "ERRMES"=>Translator::getInstance()->trans( - "Can't read Config directory", - [], - Colissimo::DOMAIN_NAME - ), - "ERRFILE"=>"" - ); - } - if (!is_writable($dir)) { - $ret[] = array( - "ERRMES"=>Translator::getInstance()->trans( - "Can't write Config directory", - [], - Colissimo::DOMAIN_NAME - ), - "ERRFILE"=>"" - ); - - } - if ($handle = opendir($dir)) { - while (false !== ($file = readdir($handle))) { - if (strlen($file) > 5 && substr($file, -5) === ".json") { - if (!is_readable($dir.$file)) { - - $ret[] = array( - "ERRMES"=>Translator::getInstance()->trans( - "Can't read file", - [], - Colissimo::DOMAIN_NAME - ), - "ERRFILE"=>"Colissimo/Config/".$file - ); - } - if (!is_writable($dir.$file)) { - $ret[] = array( - "ERRMES"=>Translator::getInstance()->trans( - "Can't write file", - [], - Colissimo::DOMAIN_NAME - ), - "ERRFILE"=>"Colissimo/Config/".$file - ); - - } - } - } - } - return $ret; - } - public function parseResults(LoopResult $loopResult) - { - foreach ($loopResult->getResultDataCollection() as $arr) { - $loopResultRow = new LoopResultRow(); - $loopResultRow->set("ERRMES", $arr["ERRMES"]) - ->set("ERRFILE", $arr["ERRFILE"]); - $loopResult->addRow($loopResultRow); - } - return $loopResult; - } -} diff --git a/local/modules/modules/Colissimo/Loop/NotSendLoop.php b/local/modules/modules/Colissimo/Loop/NotSendLoop.php deleted file mode 100644 index b504924e..00000000 --- a/local/modules/modules/Colissimo/Loop/NotSendLoop.php +++ /dev/null @@ -1,74 +0,0 @@ - - */ -class NotSendLoop extends Order -{ - /** - * - * define all args used in your loop - * - * - * example : - * - * public function getArgDefinitions() - * { - * return new ArgumentCollection( - * Argument::createIntListTypeArgument('id'), - * new Argument( - * 'ref', - * new TypeCollection( - * new Type\AlphaNumStringListType() - * ) - * ), - * Argument::createIntListTypeArgument('category'), - * Argument::createBooleanTypeArgument('new'), - * Argument::createBooleanTypeArgument('promo'), - * Argument::createFloatTypeArgument('min_price'), - * Argument::createFloatTypeArgument('max_price'), - * Argument::createIntTypeArgument('min_stock'), - * Argument::createFloatTypeArgument('min_weight'), - * Argument::createFloatTypeArgument('max_weight'), - * Argument::createBooleanTypeArgument('current'), - * - * ); - * } - * - * @return \Thelia\Core\Template\Loop\Argument\ArgumentCollection - */ - public function getArgDefinitions() - { - return new ArgumentCollection(Argument::createBooleanTypeArgument('with_prev_next_info', false)); - } - - /** - * this method returns a Propel ModelCriteria - * - * @return \Propel\Runtime\ActiveQuery\ModelCriteria - */ - public function buildModelCriteria() - { - return ColissimoQuery::getOrders(); - } -} diff --git a/local/modules/modules/Colissimo/Loop/Price.php b/local/modules/modules/Colissimo/Loop/Price.php deleted file mode 100644 index 014f5eef..00000000 --- a/local/modules/modules/Colissimo/Loop/Price.php +++ /dev/null @@ -1,73 +0,0 @@ - - */ -class Price extends BaseLoop implements ArraySearchLoopInterface -{ - /* set countable to false since we need to preserve keys */ - protected $countable = false; - - /** - * @return ArgumentCollection - */ - protected function getArgDefinitions() - { - return new ArgumentCollection( - Argument::createIntTypeArgument('area', null, true) - ); - } - - public function buildArray() - { - $area = $this->getArea(); - $prices = Colissimo::getPrices(); - - if (!isset($prices[$area]) || !isset($prices[$area]["slices"])) { - return array(); - } - - $areaPrices = $prices[$area]["slices"]; - ksort($areaPrices); - - return $areaPrices; - } - - public function parseResults(LoopResult $loopResult) - { - foreach ($loopResult->getResultDataCollection() as $maxWeight => $price) { - $loopResultRow = new LoopResultRow(); - $loopResultRow->set("MAX_WEIGHT", $maxWeight) - ->set("PRICE", $price); - - $loopResult->addRow($loopResultRow); - } - return $loopResult; - } -} diff --git a/local/modules/modules/Colissimo/Model/ColissimoQuery.php b/local/modules/modules/Colissimo/Model/ColissimoQuery.php deleted file mode 100644 index 2fb634c7..00000000 --- a/local/modules/modules/Colissimo/Model/ColissimoQuery.php +++ /dev/null @@ -1,66 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Colissimo\Model; - -use Colissimo\Colissimo; -use Propel\Runtime\ActiveQuery\Criteria; -use Thelia\Model\OrderQuery; -use Thelia\Model\OrderStatus; -use Thelia\Model\OrderStatusQuery; - -/** - * Class ColissimoQuery - * @package Colissimo\Model - * @author Manuel Raynaud - */ -class ColissimoQuery -{ - /** - * @return OrderQuery - */ - public static function getOrders() - { - $status = OrderStatusQuery::create() - ->filterByCode( - array( - OrderStatus::CODE_PAID, - OrderStatus::CODE_PROCESSING, - ), - Criteria::IN - ) - ->find() - ->toArray("code"); - - $query = OrderQuery::create() - ->filterByDeliveryModuleId((new Colissimo())->getModuleModel()->getId()) - ->filterByStatusId( - array( - $status[OrderStatus::CODE_PAID]['Id'], - $status[OrderStatus::CODE_PROCESSING]['Id']), - Criteria::IN - ); - - return $query; - } -} diff --git a/local/modules/modules/Colissimo/Model/Config/Base/ColissimoConfigValue.php b/local/modules/modules/Colissimo/Model/Config/Base/ColissimoConfigValue.php deleted file mode 100644 index c481a36a..00000000 --- a/local/modules/modules/Colissimo/Model/Config/Base/ColissimoConfigValue.php +++ /dev/null @@ -1,25 +0,0 @@ - - */ -class ColissimoConfigValue -{ - const FREE_SHIPPING = "free_shipping"; - const PRICES = "prices"; - const ENABLED = "enabled"; -} diff --git a/local/modules/modules/Colissimo/Model/Config/ColissimoConfigValue.php b/local/modules/modules/Colissimo/Model/Config/ColissimoConfigValue.php deleted file mode 100644 index d0cb0be1..00000000 --- a/local/modules/modules/Colissimo/Model/Config/ColissimoConfigValue.php +++ /dev/null @@ -1,24 +0,0 @@ - - */ -class ColissimoConfigValue extends BaseColissimoConfigValue -{ -} diff --git a/local/modules/modules/Colissimo/THELIA_INET.FMT b/local/modules/modules/Colissimo/THELIA_INET.FMT deleted file mode 100644 index 97266648..00000000 --- a/local/modules/modules/Colissimo/THELIA_INET.FMT +++ /dev/null @@ -1,23 +0,0 @@ -[GENERAL] -DELIMITE=O -SEPARATEUR=59 -DELIMITEUR=34 -FINDELIGNE=CRLF -Unité poids=KG -[CHAMPS] -ReferenceExpedition=1 -NomDestinataire=2 -Prenom=3 -Adresse1=4 -Adresse2=5 -Adresse3=6 -CodePostal=7 -Commune=8 -CodePays=9 -Telephone=10 -Portable=11 -Poids=12 -Mail=13 -CodePointRetrait=14 -CodeProduit=15 -NomCommercialChargeur=16 diff --git a/local/modules/modules/Colissimo/composer.json b/local/modules/modules/Colissimo/composer.json deleted file mode 100644 index d84be8fd..00000000 --- a/local/modules/modules/Colissimo/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/colissimo-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "Colissimo" - } -} diff --git a/local/modules/modules/Colissimo/documentation/TarifsAvril2013.pdf b/local/modules/modules/Colissimo/documentation/TarifsAvril2013.pdf deleted file mode 100644 index 886a9983c8e494c318b1942a6183152586bb6922..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184810 zcmb@t1z42N*FLTwA*CqN4brhocXxL;EU?5bEZx$Igmeo?hjce0-Q6fsQqoBKU(`>1 zw5Qcoo8mw+$ZicGv`rwt|B4D3}oTJeEwy1WC9ZnNDd%}n%Q6q2(T)GoJ}oE zolVKv;A3j6DyCK-Cvx_m&l(;MAXahsoE_APRSOJq1Hn{aAWIMo1ThCW!PiQFVIXs7 zFciY7z@{by|6qb37I(OJSikWVKoBcuYjQR&ZVpy;7c=KOOdUl9)}P>iC>IiPa)yCS z?J>~=gxwuX&22%>10e3!kdk1^CE9CC>b`U2%cR@;1xFsMy`19Q`D<%0)5ocRLO3}Lsaven#a&agO zM9#^=&TI|<0?E0!Sb!XyTwFjVay9^vjTHd@!^I5b;N#@tW8)_O{h<^>gFgwtEG+rd zB&2?;gZBg}t(~16_*hxp+}v2)*jb=3D^?&cFYg@;8yhoRg4xLf;%w^93~{3R1@Z@u z1jxx826ng$B>5e#sTtJ8S&)+QPSKyA-+tLUC@TJ`3gX1_(@Pd}s6DH@sRJvJ1;A== z&-$NMIytL>{xb4Eu5|jzi5kcW>H;$d!NsZmGmxY!+`8Z1{x5(eT|p4%zg&iUBmgH% zQISs;;^b@!PbFCiAr}|01s?~92gt$3Vb09OZqCCDGUYI3<^h7(n9V?zTmT?DmpMDg zRDkv0*8UZy-?+*!Fg$fk?IfV)F7|NUaQt7%U;#CUs{unSEcm$0IC+4k+#qHP4pUBM zAke~`nFnCT&CCm8W9Mcw<>2JC0Q{lrKj8hF&cEq`8_06!4I2-DheKRUl9LU<#RCNL zhyyt!xPhVoE^z=*LX7(l^uMkAH&iwFegfa+g}9xmlar7G3<|a6bFi@dW9`4p|J!;A z5De@JvXFv7?SE#LgDK1jbjPwFRZ9 z|AY+vKcoGZy8nRppVY!n!@qN60kSl8v2*^z=6{*}3*Zk5|3=ZzljS!Jzp`8g?BooE zdHikSE|7O;ggVIapQC?F*n$6-O#fEoK3N zPT4O3ct)AR4_FY)Nyzdp%S;^{?7-%xKQ9G$X82YEIf1PpcT%C)YPSMmH3~`1!S=0Yv`ajqFcWiTOQ-~GFLWuQ` zg?|kE_a$!DAczqBj$mg7ursp(G=N-u?7Vy&Jd6M!9{_%A{POIl)W3oVu->s}2mU8{ zzefMb=^qL5FFEi_^lw+jA4osb;&0>si>u^+KE?ljGTfc4eB$sc+8HDP|Nc+T|BK{b z0r-ib2(iS{pr7ccMv4PG0v{#hKtJAam!@Kalm5(Y0G?`qcH)hGPv zu4=ujet%c5;!qceGdYk|9&F*H&v{oB8~&S;>hCy8%$hm*YDuOJ)rvH<$3j8>QyY{Qn z|DzbVE9%9ec2Jl)ya)%~b<_dmJa>RXLadVR&eH16@ZAp|mxhn?{!}Eb4umuL`;mXTFvrhz@Nsr>;LqsZ$#akcfBFko3C|vL zb&#_@D?D#lH9+pphO9cuW;XDb4mh-wJskO`w|B1|tQs(|{r?>JpXKcxaewi4r|36t zQeZpyHO4AscX!5t%%K(_*5B_g>;NDK*I%zFGOyCK<)KTpPnLJIt+%RpIC#C$02myP z@V-jo;qf-*(2aA@kJ2>QZ&NOvmVH_|px^2xeCBVSvepA7B@4|K4q1R2_Z=n*hc1LF z!@LjMR@yqN2FRu91;TCOR-yJik~egY-;PXqqf{H01*Bs5Q9#l2L>7oybLccjrf9Q#hh;=kMkY0V1HryTdIA7y!3{U*ot-}SR z-skjcVZ_a??o+eZ_0C?;z*QUBKB=5}9UOC%tk#io`tl=u zj3QhR6s)_&tV*UD*>P7tKgqU~Mqn>OqcL#USiy0NNzjXjhF#T{CP7lG)e;@EU;)P9(9ZMqn}hqYR4pW{b82+2>nh&GJ+(Q? z=A^7dG0lDT*gp5(-1}@-yRTgMujCw*OZ1;tqb(4XXiy5c1k^n4EN{s=|C}dV0Ig zQ`YRb|2AypSY!PFeChjYK&{I)Vxw`EFl1!nL4OZNu$tHA2Z~^`Dg@L3~yi*tyg>vMoyj4im@^HSs z=Fc4DL>EsoNJ#E=XCet28n+Ga8z(nNFftd22{CaxLDP@f4T~8Ve-(qiB|#sIe)fhA zQ4jSz*;yh^KEX$|Qr8k~wSogRBUc+gHdkzxspX?P^|Ox6ug_|!=bk=K&3zSv34SN> z5>1XoEqA8C$3-UIHpNG`5^PCmKF)!Wk%vc+m}fT2(K49C^y~xe7O2*2E|w-WPc{}4 zJTCF__%?}yBp_axdI%mB4tP|Oe??^={AW~*tP~Q^R$@=s^ec8{V-+WI`a(FsloDB= zv1BLsfb=AhGERzBtcqMi3YH2fAuAInY^&oM7^!(P1aMo=sapoMn7qatmh%5^o$4@YY~I_C)O!@*Qt(-BUtV%wxazeM&K$h4V;OeFgIcRlh+MAg<3M`4v3$ru9rM-SteEofcc1-PGX6EYfA= z&-zLkl9|%!l3yyt%F*rYQ79t31R%M{#4)D8830?N{R(9w{;yE>{tBfeJd{u2p``yA zO4Mn`NDiwMT@xLI&t{i)Y(O7K{TrcC#=+CI$?^-62WC^zM0+i`mNBIxkuj7~R_v47 z?yllK57fnc?!mtg)Wm$AISEc`PNIC69uLF^e0y0i^X5k6n1XZIP6m^mOf}mZX&mKZ zE_h?L?bBaJ`|C^975c3?mov-Hhz48 zctTi9TP5X=uf<n{Q#s0wyr%zEMMgn9gtdGMJjD1OCB7U9b2xzE* z^5|uFG*op*9+@qu(b$PK^5XiKA=VD$fugjG6og7F{rUDBXnsao{OJd=&<%@L`opfk zUh7@{a6|X1A(Nf0uO+rTU*EmS6=!=viP+2blJHI3kGLC_?^wrcQFhTU-<6zG=nluU&w_c4@s1IWXKdpVs10}SRc2%xB7BPrMxQ4)I*E^ zMYxKxf*+Wo5X&d?MGBM7OHr-H0O1L))buXuO9f?DCU!hM9SyeD0hCq%Pfco{E0{8WTL*GNHXA~cg8kpBnmxM=T$E@5K|xO??22*b7pmH zi=LVnS{=P_bv8Ds3>M9^bJ;RVmVA&UY}Z<`{G#}YLYH_Rx*4?gIvX&C&ZSBsA6S-+ zJ+8`|?H@f$7T8g@_--gmlY?NuJErJk`M{GikSs@ipL;u3muD7CHk|yWBv&hr6j(v4 zaF;ECJJn1NiLGtMiMO}WEgj7>!(brJc#&3irBZvJhNWID*R%rBgM^yREh121v?k}P z-KqhLbx@;cVN;XA**wwM!K4>&qs*wdDE83e1b6!Nlr*~% z2t+ZWWy6NJSQk^lp16k^h|a~dwX#iULT#@r(R?9Onoc)E!tSIH+G}7p^`!C+^%O8Heg< z3fjh1^f~J47IyPb&Gr2Jw<;ye_k6#)3iIg*ayRPKig1%DS16u&7Ih7LCRRCW!k38B zlUE#86=!#e7xjR#8cO-FRkpsW71FKYAC7u3-pf%*8?R9AXd~w;+GMzf;7Row*#*0d zexG1cruWIqT;PlI$(*hTY)KGmm<|PyMq>LR9m9YVb)^#eM6WpKcjOrtA^z|8&oXbE zyx#dHItjAth8<0e+Wr*%3x zpNd)C=1*!eL#zf<+i7xsaj^XQpUWfdsNG`;qSG9D>y94cs@!)ZB_VoLT98hJ8_ z+*hi08CPv-i!e)HI&^E0rooLG5kc<h4j-OaUu|bsM&bkepbxtp0zGS@7+A6wN{ABCv#D^n(C$#NU{jZ zn248m<&P1s_+2^JV!M~0B$*YKVeA!*ll-gQAU`1hfGCfmiy-hMbM?A0V6bGcs5D}3 zgzJH9gm!$F33VU_U#MP|EJPbOHu*wKaMX7enC#S`OUJ%#kx?GUF(#Ys7vHUxU_312 zY^i(y-p*y3Tk=9ukg_z%kmU_Th=j>^+G5UlV?y_2@qx;f_xSs^e%d;Fb?q`LDHk0z z8ySt|>3(7=&UgO!`^(BUVt5k#-j53D6@9zI)PRCQ-ojSSigdhTCvx$g&LZX?t}Y~qFyvCd zJFC5?5$7y2*?#6b=%jz_U_oo+aho`zt4GKnZ!yi`6)t?flLP~|kdoZkR^RG0()caq zY+mAoX9qdriW^aUGOy@U?UK!1d#f(kIakX!u=KKnZ;4-{gV|ah_cfFfNw(v|BP&cI zPK;@lt_8Qp1L>>+ht45WjFYb-b;C8sB4fBDyK&PP#H(zJ_x8kOCskv}?(M8pRvwC* z%w0A{H8Lfapoj}Ma0qzmWk0tDXB`N=9MeMsbLQroicLieC`$3`7mvGW5>lzJE7dfq z$;&L$wGzJqaJs~CZZMka4V09`5Whd|)fO9cuL6+F^nctiUAI;hVW8)o547>~*HxqG zeIgDrO-T#MOlg!-sTo-h4whukC}3*QVSg|mu4ROpqxilrxc_ilD2YMGSer10#@_rB zsL`3m3#gWoQl4^4%2rAp+FUj;Jx0n!Ho(sCqe$S8Vmt0J0&g@^iHBN&8*kaDF+EO~ zRmKE~`qzL6N=r4 z$}*X_>DpMh2%JXij*vnZoheV3s#yF}rFkWCwb*Rz>>5H_d9E!|2R5sTrHX|_v!s$4 zL^XpbGSUvZgn8ef*e9#hrT2`s0M?1z1okUF-V&!-Mk2did$lAj=MGsBQ|c$G1NUPi zG>y>jWhiIj&4S2MKcD27$c8cKKWxI>?bLbamfJPwq-{=DQ!yGJZ~h$bi6QX^Lh+`P z(k@ADrE47<3&Uzyv*GJ8^SD8Wwq5k->80B5(6IpPTC^ zYv&lkO6At9y7X%LzrY|iR&OhBg)dmuY|nsUV`3#8qq|SCmy{^;QCjf&I6P8j*y02L zPZ=ODCR(sL+;C85(OOVPG?bA12ELx+Klk>qpyna0Q3YNfA!hC@2E@5iOWV-}0D?$b+Md@8c6 zEiy=FD`09ak;+Vfy`M_^q&}1*U|)mJcoB)SbZ=Vv;KgyeRp49uB6=^mUB=fRwZuJz z3doTbazlMrVy2PyI$BXz=sV~HnBq2+H0GW@n0T9mhZ#|U)GoiL`}8dv;WzL1C8oLW zM&&9H>|J5y9B1z)s7z|a^XY2LmPMIHgcJo8U&eD3yyv9SA?wx-Y%_o+)?j)?7vVJ} zPnR75ETYbv^%V&7@F(8y7lx?^20y=kXV_I$HVUgY3}I2`H5)6TD!2C4ex+5; z@-1N?4_%HBeQVVGhaN@qc-A!jq%wWF+37lhTuqRo%W*fO&3ul;YHVz0ZZ1s@MSauh z6Pq$pv&4^IopH0DGxNnRq0Z~*Bg%CsLDZK%3!x4P%Bo89)`3hlQn!V~u7VrnU4r#a zFx8PMZl)|5Z0AIran#VJ15h)pY1^4T3swcJ7iyg~QYq35(!Zi1^Yy^f}FU>%-^7nU8J;|Eiy5B zKa&QKI*l_ndp#_YO?LOY^7NZD_FL8;rdMFNIJl1B+dCkUM0u8epUo|OH7$4nqi|Wa z#(9n$J3BOg04I?$a{g+QUqG_>G>@~@m5SP8wtRqGH1W$7&he;Jwh^G%D>jRQ)z)JUG)7dMX&U5P*UGlWyQw!T%B&fnVVn% zGH#8L6sF7jDa0Q8w3(p*p%A@Y8Ilm8rtXSnkZEOssO!uU&Q_CwkiObnxRj!kWNJR> z$5w4w(V;=}0!O)1LKiaNeEH}absY-1sH+z;5fC2a&lqb)C(z!fuDp1cXMS&N_J|Ui z_TxMvF!vH$-;V{LJ`26}@czsVv2YF9s8`jWY7-{IIIWzS6(EaxjmJEcYtTB2THuI| zGv#}9s3L}|JlYC9M>4o)O#Dr_x)yJk@qVnqsjb9wIyFJw{PF5x8&PHC{x%ea^>YpM zse{XWjD*BM41rIi>beG>+lz;i$$a+Uvn?Vz3*$SPIixTcfI(t7p6ZZ7n`WoAuLVwvG+&Qv>u4!d&IftzV6~Tybu%h4}N|PK9`48jX$ohFzXce z2C^49L%7k9<&&Ds(G(d{uj>4k+|7E%uK}R~STo`*`h((5J!wGT64^bHi%^c z9hv5)01}}LLKto-{)#)AijE69q z|Dx22g@zJUFUDIQSPAr7dH2?g0_0X?K0b=0F&6u6$#& zkT;AmU8Y(=51qEG)=UZezEDM2q>XB9!(xE0EeM#1)cZ&cl)A*0l1YF>Un$bOXeOa? z85X53tT)6Ta1_p{{^NZ2!&C!Oa)Miy4StG? zvo=5HjeAxa0h{sG!b}~L-~tAh1RhD<73VTk1hfG}S@`H_T%JK+>|e?U9HDy*gB;v2u=-c{Al!sF|5m!&-BOu*XrX>AJQ#2b9Ybg_06g)z7+4a zXYGB~_XU9d;bX%I`w<|*;xJl@O{ra_`+iJKx}7UHXsv}@oBDNU3F_00@sZw6j+icK z!akm?7D6DTe+(V+U*=8Ch;>Bmx_=mw>WQ8O7`$P6R7I(fB+t+O*pf!q*McTliDw-p zEm+Ys3>aBL-XvNogBz-gO*5FA5giJqejUXT4Kq;cRB) zm$ZCr|9<^_c-Lt*muJVYKBTbAo}6i?*b)geAU6;>H>6#atYbJx^^;a#R^J@QeGE_&QA%xCuRk zCT8fbvfJk_WVG<4Ob^yn#|| zFSpd=_>>G3QwdO3W55%Zh?{8R8}R~396Ws)uLJwGqD%DTqTVMTCC262rt^SN%U0+B z6H25VJXul5IBi`B6>%pU%-Tq;P6voT9`w-6qBPDaC;{qJd|5UVCKP<>j&!BjKE7pQ z34R(bh2qI1gk0F2OF!V~S;-gHoN#dOY3jy|;x}^W$yr}Mn%cu}ugLSu&F={~*MUWW*1s@$!(%vkbY?0F=u(g?N6!K#O|@_bQm#;>yCs0{e> zR0@5T_ND8)sL;AE--T&FlKUy1E^B<-92*DRys@h>O{3KApkD>TwrdD+67nC6Z=Or; z*@-GI1+aHTjoY|P*LpJ{b1ty1Zu$n_5FS z2NQtTf3#9q5W7Z5-pS0|-P1SuS!QjZ@}Y)$8#mVRO!pzr>p;3NjVw7ix<(5f{gjBy zBlHW|JtT$wH%D|C<@)E7OsTF%=H+oE%-S6mXOq{iIglyO_ZKsKZ$naJ=YrsLs>lPU zBxkHUr4aU5E%?T!KN{5!aO%6r+$Z>8y`wfAIVRp{#i9 z20oqX0EQKP=|8-cS(kpA7B>E+6vk~u-dp0xOc>R!I|o@Pg!EXrm)L4y?o#08%2!mx z*sac58Wi!5@%D0(AhZr^PT|BG(KGZHQ_;LV~AHR?CpbgkaDMdC#M+(9$s`s~3UsiAM~s=2Idd0m$EeePptWtwi` z&@E>+%LOlSp7N~cuEYp^G9)B3El6#kn)k!}aTc;dUOwX+yR=>(`f?NznX%qc9=XqN zjACn3`?t$yam$DggSVaW&h4AiSI>f{YpY8j%Y$1SuCKiIGZBTr+*$!tKU{{m9y1d~ zGuX_!Z?`Z^b_jJ*L-zYDO6nnaygl_~~+JFp(wZGDJ;{c)Q-0%A^noz~)8yWI&#b4E# zJr5suaAN0r`6{W>@#DoMr+!k^n|s$JkDfHLIf-T1y&@tK>0QKTvxKBMN?)vnH%2z; zv6za|AuQ3h?MRFbZ_4iAayb(JCTbnP|_l}2#ilLucu5ZseJFkR| zAm8@C?Z>Mfo}HbYEbZ(oYo32YIalsb18~XvGs@?#9KJ7qhjFq^doGUto{f*yM)_d) zh@aN^!>78D>Kn5b{Y2vzXmWaz{3t@(?IfjiRD&_o&!j|T7nu$&Wm@E@+o6XO{dy}E zUsQxnaYPP>amy4;+z^?0UzH}vi#;6Gd*b}%U3INN%YlLk+B4o(dKnWXmDfAH_>+_7 zJ3jqFZ~Xkb05Xw-)~`}$L<--wi%L_Ds6=BBppm+98CzL&4F~WtZCi4c@j~#eLsAfk zkP`tTqzq^i21*sjr$z=cc9{NMmZxT0n!VqVAoB91`MaJaT%XSyUT}2EPbhupo2YD% z-4ycf^ueVU?9pD7yBk3fVX0?QD63{j)`q@ zrZlH3vH4h1?Jy2mU4V7jBf!SuN%?zmzRfwu3(ZaKRG1uMUNJaW!Oyhn(eNqz|hS}%J^~g8ghucu- z15oH*v1Y0!=1Is|It;>B)7l89dw`Xa=!r}Hhb!g8VV1MmS$KQ%qX)L z6z3z2olanEUV^(}r`7i!l4XJyKd3!ubZ{MEe<$dVV53dGI{&P9)D?-X5#DvsCO2Pv z)(iOlfNk70h=k@nx#0tookymOc#`iD!!hsoNf}e-n~RGbRZvhooO|;o{Ny=Ij*FU_ zmgq@LT^{WdfOiMs-AdYnAfkruh->Zn z(P!5iDO}|?yyw1CENRO=ADM51+GPApUuUIBpcIKU34s{KzB(SVie)7A@PlG{DXUT;OD1+5;RTB!Tye4^|v~$~6EUDpSHR)c8h=5LW>3&got^NfodHiBBawvx}Sg$GjuaDj-3N-IF4To z%Z7vaEx+3Es5N{cR@&|YJl z<{k1Isg673%ztTylVQJXhO7GzHapQ2RWiJn2jmu1Zud3}Ga%jB6G-^G;kD`~p$O$b z!x|x>N8$Wu1N&(*80XGpEStLqWmr?Ik2g*eh6#FRZ5JjQuL%@S3evm_hKm;cT`-6z z>3%i6yz1Xjd2>{MhNj@3O|(zx@5}HoRF&qjw7;9{=s!U4xZYToU6%SG-2p&p@UL zT>oG;^F$NKNm2S#&ff%_jYf+UfE2-yxQ6-`SR|uHuG3sFF5_>~_YRE`DIhqEArL-6 zTXe2Ut`k=fBkgZO{|=3WH$Y6fG;7p9lb!-c^GK&nhpd^wBQkC0T-AY2dF?K=I1Dhj zEyM{-W>|1u!ti+SI0J>J-SHV9H7pvD);TUU2v1<~XsS(kqGT=dt{8yg)5LY3&!}kW z0+#i(G_~%Ju6@zaby+j8iVqNP_$?Rhq(Ze>zKHDvr$yykFE5-jI=7!XgJA`XkC~kq+PgWlNZBuOvB8s?`3v7u_^T*B7P9Ku#V_!loIrEf+J^Lv3t=Z))Vnio#XQ*?Yv zE6o9vvmmow;*@Z|MSI#f`8qI1r#%{GqhdAzWWqXRfg@#wD;RkxZw%w-On!<}ooVB% zbn)8J!u#h(#67l;L7#oP8~p<(iA zWQm5p1(y;te8=+O`0!oQQOoJ}t##>5-e~5hHNvA*u|QvS>rp5g=A~jOMH@ZGSMFfs z8`nJE??k7jT}-@qsv(&)iMiB$n@lwjGz^zJ`ekRgVc# zQG2FTWXG_kzi0%$_)saaI3X|cl{peJCk&%@(kiKVL0O4B1C04AIvsNWP|@a;TE!T;xT;bX(wlwDWiKebCNU3*?y>uWsMwVnof@{75u0T}^2KWd*6SUwN3n}6wh^@pTrM?%v^Qsz=T!$*pK0qP&imG9+WgMvi-|*(p%W~ zrTx#y-t23O(Ccy{mh!!@#8zh-fzLC(1PgC=5KD)9nOco5`G$>2b=;#6cLsqe)jDKg zj$wpBwJ=%O?yuDw3kT^pDVu1L=PUx$wv;bxOMTt@&#ai4 z9ji1mx>_FX)$VW^)qz5huofx)$B zjgw9N5~Iq3^!*Y}Ug2Z~3iM836T{HSR3N}Q= zh9947yU`hxxV}REo=_M){o1U(r@L;3*7(f zB;Pcn5|KyHu+ageZtBv^qs?QOSlGqC=jX^Ayfcm2wCUBs1$`n^{l$dmd3cFJy2#eC z?Q3<{RUV?HkruFnNy=WL@8b^yU%p%Q7CUxVJ>Bqi=E%+}bX=L6+aC=a?!IUP5SN$j zop|cbud_Zv*xuhQ-JFfEs*`Sq21jjeej_m9K`FBGH_^VR@~UdcX4zKGtZ!Fdbo%Mr3@uY34)?)S zn%C^_$cSbcIF9FCXChGc4$nK-{m;5pc;=7q)#e8hhqiyE0;ez&YZJ59&?oa@EDdr6 z`kkX%M%D-n_ax4$s@O~`Hkr)#J(zF=PD=#(`)uU`n8#LM&KxiAIdsQP<&mz<%JE_x z;?Ok+c=k^OCWkGtFrNw8^VB}-`J83MXiUbDDm$Fe+Gf53{yLfA*&yVUacHu#XRt=4 zK%2Xz#r-Ofi7U5O7`*uHI#OP^V`7L1Kf!o~E|lOyzW$=#Ju8D^3(|7|!q<(AOXWL_ zBy`p(DW)FYtkcD1rwmE=7Ko#+7Khn{i%fe8t4~FSPomlv>%!RqW21WH2RjfN@E}#7 zpS(SI8#}(a$0KQGw0m{aayPeFQ=$5uzG$KUhup)3%>?;bu9=}{2>abTZ;T?|=0h;5 z>{Gk=ww*tJy*(&&amlE|)LA93-C=EF*2J5bCsOYI@!G?CaVU@gGl92kY{~4VNRNVa z7|+_)-r(v>&7Q-S>XhgBa%@uhO+8EX07OxK)N8s+x}EMWU+@(1Hom&){Y)*FkTF4~dyJU){?i*xKG9tJNLJOY2R%lP z7asA$DqCym^^@NU;~^KVBxQItksk1W>&4IhG+0vX>Tk_i?DNV7?<<-1eulRFxq(5p z@klYIx~r1Tk~mv?;85fRHG#>ly6AiGS;S>Pi03l$k0+woCPK@lBj{oGP|6JlR!Rdo^>#?Ga0@+)=!Ja7Q5M%bq z+Vd@M2>~xGGggtQd{di8&G(jK9#XVOY&q$g=*MkN`39S3iNv0_!M==*zEgbt3UFHN zLSNqNh}q=gaj8mxSrYvybm%6CGc2z(y5b8bpGMjgVyn3r>{iz&?VQ76(FW?(fPvi_ zYeGML!zQqbbHlm=ilOE$MI764X7R;GdC}=|gwZlm?1w^2FT)@a;;A|fo{Gn2K|R*Z+#W8O4j0UYxK6Ym#F%Um%N!)*<-#JY*zg zKk&c^Mp#QCpZtiWkk$4fvy$nXP`cvSb@PS=(s9#wioskB){pH9riTp8L zeW4a|39h-q6RFtfYjz^Aru{=)*;~U?yQHJ``qka4qs~;R`uG{XVU9145|}w6tbuxz zA`U$RGqBH3<9h^BjPQ&^i_3Ggxmlb|+RrlWW>*Yf88ySSBpFqcX(dwGl&`xhbxMNH zED}F*y*$N1#2gc+SNNE)_aN=yo1vaYMBo(Pb0)*#LFRrW9wUdFnz=8}a2m2=Z4XN$ z@H-_ScIImq+q$K)^~V>ByG44}avDp9c2I;4$Cjo~4}#9@P?+kj>uQj3Fb0FK=Oem2 z%`4Oy-cMg$5YEn?wW}`$dV8!J_cE{+f=W`^&C0lK7KU%3mDP48HNHYKC%3N#u6m;6 z((YBo56SMCXfpUxNbPCmJkc&Znn=}{M&%nDMjjYfzx5S+m$zHQZ1N`ec}>w%!QL;n zTFzz`lKIysdF<_z>8Yezz@ovVA1jgK%g9xY+2MOfe2Yqi5r`p@=+8{25X_TsYJRs(!w}>4}DA?J)xZu*WTChG9;Pwt!j4+7?FR;uG zFTsDN3}DGJOB-uVAF8KdrENwP(yG`He1D-4{Ra4i7>}lq){_Fza{94GC!H$w0DBE96U=j;*W;HIYedQ|m6^Mg63$DQ2`&6EW9!2{1^xM%;(RBTMyK z;TqW{r1+wi3!w{{eD$%RJT!!>*T^)L~! zcq&jV)9h+-osB=Bi*dhn*QAxPNS3hzBMJEG-Zmjd$~B^xKN}_>YQRfb7Mx4yQ~G)i zE5~$-DiIOcd_xb9G*_ORy94@%Wt_>qgY2Vk$=l?91R*ZH>XErhZ^}X~)%qNaJHKh| zVz@p>9CXaz$=+H{1)kuWDTJD@oY;?5%-!lxd--w=8}{$>IAt##3RX#b(dvg!NA*8G zW~7uMv!5i6FO<4Wu8p?Oc;-V&Hj0b0rAmE4=q-=r189<}@ygX;j_{P9xXcY$R|S`s zW!uK3#cprzEA?3`==-#NU}cYH@43&@%?UhsZYyoZTzo&n1h;k~)=7p`Wj`A%wFNCy zaIndxN+#V+tp=D6D&*d)-5#q6T+gE;y{t2rh)^hAeTt<^)Tw|!%<0+y|2<@VE?68GcjnPd0xN_f6Et40{;Y6X3MOx#pR>AN*HO4p<_4wiShEGS%Awd}|{>9yn? zUll)p?Ao4NF=n(Hr`SB?{G64YwtDd9;witgWVrePgjilxlj0q6JANS~B!@@F~A z7kf3|dDN zjrKydr6K`gux zj{Q*d4PMKg8&)MJSyh<2pTNn3=lpZNzj#H+!Zn zywNKAu=K`&`PplgLdN>6mdWkLfkxVi_`LP(Wc0IENqJSmf(F>2FwHjeOuJOG^i$-+ zfJoEF2HiHLhs~R#CEY{;AJRwDFfW9fkw#3_a#f6p{J@33Vb?MQ4LOl@FY|Ny zFnDQV8xhqu_+6`5M`So2)%|+TtP4Y;SKRC1Kq%{1bd0yH)@Kg;gA+z0H5E33=4#T4 zaugE^!e-y3REl6OzO@--wUkAVH;=25TXTc>mby2h9?ttrGApatq&;%gpmlw*rN&E_ zMxdNV5$AUR4o4Zm?JlsT826!g61END4;xK09ZoNBCZ8BT@+7eV=&O1?>wYp=LeLW? z-oP=+S6L(5(@cQAroiR@g7 zM}7XFa6)^KbURkTF7McrWkS{KLM#63Ij()!=5`mCqsXqmiJcs^|3?KtzT(#EDtDFr z`K3|OLHL{SJT=FNzUmSdBV>;v%?w-yH{1CZJ)&X*{z;CgTr2*m*DhF+(Y2%Rd8g3q z{B`#pp$wA_;sCNUJ2Qcj_d<1BM<#<(hMZJpzk#BV!;p74jx|am_nvL~r&K>4m=GX$ zr8+dHRCtVTm-i%aSbXOxXG08*TjnVF+06i65EyH9@Aa%23BOz#0;O5xMNug8;LPMj zif?N<<3LV+jBP2)tA(%5YHV7@v>Bw99?uEazfq6SZ>WPHIRVlZ{V4-M+ibsFr?9< zhr&#}<{y4{$!=1;ik?9buitQY(9s`T7aw{ypZm(JzGy8hgH@)!vf0IrKew-a3ZT7f zH>X;3sPL_*79;3OT2RG@Rtd#rh>J2LvO{1JlOH=W*g8eA$a^2}CA!VwZ2WMYqdyAq z{>jLSH49_rkxSNEe(QruHB_dT17oWd!aRdp7Y5dXmKPUTJa1cfzC2KPX4lOnBXm$O zQ#8<;^0@4Tg3?M@r}Ap%1=@7>T@mE{3{5)ft?YG^qM-y(WG5F z`|X%EAE83iflh>l|Sv_Y$DC=L7B;po>QNvedqV`a~Ur-XfbPb;tHAm z7fo5%Sgw_v^W5X5%yStIEs+%+7L-VKw?6xp;@g4u1(eR|QATuyfu`SkH zSfDhjn6h;L{)4tn&vUIl;=sqRi}*QW)5g_(RD>@&{q&(CjkGCG+{3%;B!nnn)D5FkH2l)0n50d0qCJbh)4-@8LQiGns3H!W2r>Bon z#OQ-55Zz=2V(TTCt?p^F=td==oAA<8vfTf^Mhh$+CJa-eb64+Kt`eVlaGa3kG$){A zJ}oXi3aqj~=w@bo@HQBw!sd#Xpe~YYO1Xly=!a=WMFcE zulVhaYd$^c)C7NGXeQM}W4S<{QC!hSSecSabMGd`{LK^Eo5#$~>&VPl1*=@+s5>5V z2Aa;u)wM3(ds>n%9Ok1TsK{5P4NjZE&hLB*z)vq7rU7AZmqUnp2fCWo?Oq2w=-e?I zN==#PaZ2AUY1GEs$py(a?z5tda>Vxt1|wz zj=5z`xSX}YEwn-sEiC=`S||4;#3uXA|Hs%p28qtBivk{7Yi!%L%{8`d+qP}nwr$(C ztu-@ueS4o%_nfP`ztYu}PUlTmDwTBSeLCtgj(awEA=e4Ixn2EQ| zC-P&{DLrT^+VR_DM)yp|Kr}l3pspIL7mDFP=w;#9j4xNv44OZ_iok{Ot zKzC_^O`5eU5UZjYWF`d#pcflBL9|C8q6If-o4zAwhtRhD!tx$Y-b`v8foSaVmI`sm zV|?R_jcboYMtu@cDvdJFAqMNC*R?At;+vW!@W8ywy#{Xr32r==P9E9aUq>zAC+eQR^xaoY=>|$>r0UcITV+9sG>O*L%Py?#2Tbf82Vr=sc?ub2LMc| zADU8aEI72)6DH$olvVWi!^C_|l{2+wgn;dzIBeVULRCmbp`SCzLH1VDn0-m7~sL!L&RBF?E1t2be!+%%FcH}o^=SWVs!_Wp*;hKN`3qSs-+_ zS&#^1hl%jNpjRWQ{>n(q9;KpW+ios%;8?2@9i16TwNZP%hW%ibAETm}`yg1M{R+kh z1N2zt5kkn~x4wMdWRVTr0PV(L1A-OS7T6>Qj6>!SXO6N)xMtRje42K;$;szu`8z8H z4c9H{&YA*ua|Kc-9v$gF2-QPxOCgMByU(#OdgKCi3+<+gIL>5#2%=}#4TH}2=M$*G z1hyI&B$*a0YyoIKFl#RuoyMx)0s~5uJY>0!KbvZmlH3=LpWV)T;sMbMQTXxZme0rM z`C^mr>*-jR@B8EX(6^_{*M*j^Y+Kf9KQFR>JKz=zwuU3vX-LKAf#eQ z2rebsJV^K39fK3 z;%i7!JD$MZ}ovP+OjEcHGTxxPbUr zEz_m+Ksk5!Wtl^IRLmJ}0{eVZi)buM9o9VAkQ2!+hdWVrRta5}J=>)F{E7`T*X9bg9?SJ?9VPR4_OR3RaM*MbaDPlrb~I8 zi!R&Ri<8TX;#IooXzkFp&LqRHYnbeFQan);5INqW5 zSdPy-CPIV`R@UXk;ervOG=p|-24dDYJ1@s+ncECQ>@;AAwVJJlpXs*QW4o=#;C{wv zIy_G8wEcPbt?l!Diqlf*s>hPQu%iVNr4>+SUz?B8*v{?U^%-=HciD-lTSEt$N8kqe zkQK=H$|?9s>IIINtRjFrcV`RjU+Q^)L^v0=hqtG1Z+&-M7cw0_h-QpD-M~p9j?BogT1JYS>bpji50+xwCp*Nt12F$Toj6Qos6zZ?a%>IrP z>R+*rJ!OD&r^b1UXVN(St$&pLZoTn-x*Pwf2+wbn#n%fynUuie_&rUEbeg+clI{DA z!@<{8kR6S5dK*uptDbw(`T7L>y()?UoKLHcXe9XrB?4xan={gj`VD>sE|W+w>aJTH zaV0=tfHHHjA3=+o+ujcfw5&S!Jr|Kd8hK%d6g#YK^&-^Xl)=he z9w#oV*RDVf<^?{|NdlFkFqdTru=`3@#7ir7b(!i_X~}Kh&k8H00v6=4y`-aBygDoq zd{BrTmlR6yJkNKQN3>a13ZF}!?oB%a0GwPps|$f&W#%S=5CUKcSbchtEnea1_$iZA zjoFqF->gLv>>$$8qf}wb#iVId-3XQ$M0!%nq>=62ap0fonZnfZkk;sS!@qqlhHBg; z`6wv+)TIMjgff8h*gz9pi9p`@tB#kp*-lLn0c@5$$I5%9aLXX`^0^C9{f&>dYi_9f zr=2g24vuZ>>kL%_G>^Jk_BLKcj1Xke`zyOrr$&S}Wq)^DWIR^WIkh$GX zC;M@X+D$t64eSv4Xi?KFLF_6=5eQ~?F$gwGf-X8=caOT%G+Akxw$WYQZLw>2*5tLDWW~Al<9rSKjeU*n2u9&tgxD- zjIJ&eG5wox+|@^#r<__%wG=}|Z8~p72lMd4%OlO z<*9bvi9-z<;6Bj_fRL)`iLByZW7Ic!D`xP8Nu*5+b1vkamjt9aQ=9F<&|_B^7nYWA z>UTO?k2{F+)@9fFGb~BvBoCL?dxj;s&@x?sz;O9!u%kj6ZFXj&sShNiZP z9>*~%abzwj5EvI`G5k$rFDYU4aXYv)1hQ8&{sfRftNn-%Lpz9e?r=WrYJxdxbob?v zs?AMvSsOSst2t}5;M@82TpeEGlN(Y_^u>TcMraiCYi~_>Lb6@Jn|>Z79>eEn9n#?- z$4~g7P|SH~X;Ry^z(B_>`mITQu&w?|m!kHq-OSyxm3>cC3IN#I5cN0GfO5YT>P(^N z*G@bDOJ2=E(|kmr_^%<&&!hqUXbPmhr2)Yat*4UMMxR;+ZLKce~0m2>>%_w0cQa4A9wU~FS8 z>F39gQ?vsXjL)wfyPQJ1}N{fMtx zbKJ(!UA- zV?m<<$gjV_FyHZpxx=4g&udM|l3|0Rtf|bb+Rj*a4~y(6tFgMV^f@Af523!l`k@rd zRnW|Q>yqa>B*JA-)$@yO?6;>?u9{8B*QhyJ=&fQFPp`}mVQUphpxjqe&rPq+*YQVp z!@UW3Bq7e=^zT!S#rZ>2ASWkw4~~sY9Bk<0vcalJ@Qy7^ugXcox5eA!d@58GHs9@^ z`-|mHT|VyZot}^L!$(`Zo-4kuZ?8|gpS!%I#kbDh&dyAoUT-FC0-?ab^UvPKbg-6w z;D%{8pR;dMuVT~FE-#XvtDpA(uw5OoIl)vW>QVR##7JETUB!Er0J?ps6Of?E{ZHgR z4bTHHyS|w7tuWgtAWE;X4s5|3Z9vZA5JR~Kk~vsWdN!{orzJM7+*4w`n*fwWSA6Cg zT$DgrGlKN2yk=;`?EMsEw{JvA9CNl7b-fxAtLq(pd+~=X1IG;5jO*q2WF@K;c+M9g zaNZINF)PT!q0^EviEp=+^&VA+p;rbxzE$Q1l9MYQo$r-=a~p3HJ?(y?IO7eMbF%Ll zwA?}^Xmte3YW$#*AO!f~LI{-0_nKwd(Ntau2j4glfdhMjLb0)P zP}`kYIK6VOvWP~opIJhAxy>~&6>|zkuO6yfDFSxy8YlK|>DPoDmmu5E`8f#HY|LYc zP0Ah{blZ)=UX6;+(e4OTH>u(zpji86>w7g`7_?&JG2=_I85Df8^o5$FDQK`XulG+k zP@T^=F6dSAhaX4MRf6BNRB?0`{BRkv*h0jP9|?Oxc2n_47!MQ0+J*Rv78t9YdKfc2 zQfd&Wgxwo3 zC=~PI(?(QE>g^k6LmPcLswgtqtIz#Tn8>g&O97w-4^0lE$haKM3ujVN1m3Tk--Nw? zx5j5HS2pK;GCwt|uA)uoSsj+`C}I~}AT3KN$n#K882)|VWWa!zEx?fy@Ss8PYot^` z6emk~>X0CeqQF&+H>XLxnm3R&uPrBzfwN{r>aJ#ZCizM_hO;WFf{!x&(wBt74o_=( zZhRR>{Q?8hsCV#4vb&6y9ZqohwX4pH)r3_T3{L1Qy~0x=xs5Pv?1;!X18!*M zE)W|{u4kJ>C%`Rv7=mpEMy_RoUC!cIXjuAE`J`SQdog;Mv&?gz6It(0(N4|BiBSj# z*;>rFBZ|s*UD8>R1BP-{4MOx+;ziJ6_6=d_6jQg}a!LcbQceAw-n%_1jB-8P;AjMX zW(Vw$z$wRxqwrZX%b%oStVCFH29L2R$yO8Z_}Riyv|Ad~e(Z7Yvbrx&2du^{m(&UP zYK<%5p|B$;p+8_tt17IN!YS|Ej!&j0BlQbYE@-JhQ@5XRT)c`9(O9T`YpCRg(3$2` zdS=|yDTi%9qWc#)xNZg(7M13LIqt>ex2gh+H>IW2E__lK9{n!Kr;V>Lk+IL}L zVsiKcO~@)E9SXGrYr9_``{yq&%d&X6zMpr-Kj*Kfo1vef;6`hiot>TM z&zo$E$@FqY_g}MbcwG?LbN)Zu_!QodnWsqBEgDV*7B2NPSn}i^0NKdYVO3JnV=acB z<3pccC~szc2ARK5LluB~ct;@%m^*vDJ3gc#ECla#6XVQz1V+lQ$Y2)u74UiyPZn3H zva#ce6n-3@Z!Tt~ekmZCFD}a*rigu2d5v4x@s5a@aUOwm4F3W$Jm-p_d z9#UK9e2a9uH-Vmfva0@$d`R7%Sz4YM6TA!!M!lABB=I_d6P2hnCzD#j&xyOv_$WQm zc@GO@CdG_-6OoM2oHJ~{YrdH)lXore8J*l`O7-p0fq1xF8gfIM`h(IkqD3qvR08M^ z${0ReuI67@iCIv#{D+=`D3aC*iN^)WX>dbkjx^vwhzs&*EjAN}3U$ih99ejxLSvSF zA-ZiiMKh#CyH1<=Za z5llb%Q(;u+##3rz#@5Q7;3`Bxp)Z!i3C#JQb7YPO@@)FEtD!#HOxNzOW0bIDNSaUS4mZL->q)IfBP_Q#}EZy6L zwUai%x6`^K_iKZ6vlk6X?XZpXEKLWO>M(cHC~l#}V`^i*i>u}{7=AfsMu8-4O=1#j z)$e$u6sd4edevoPK94Up&)e5(<3HgRs>kP_%rhcUa@6EtPvf&3MgF2`Q52V-^ut!% zdIcTy^3%ZbBl~ZJ(HfRmpD@8@4%e9J95&BEeR~r<)sg5lLShbwRd&`B&e1tkgm~%% z=3~xAQY#ke)PmEF=XyUZbYLL;PKV;1RMGR{3Oj5{&DQ}bpoHSGi6O1?;DHIP#&;9c z*)q6k9ICx_VTq`J;CnVOF839XGE%4_L#=5{y@vuFO$l-TV5ENhHq*eB+igEv4v2)A zC<^XorqTrIqFX_tRc;~2b>7Q9YVw$7iidk4N!Vp>x zbp^di7zuvOTXPSKT+RYe=QoEO=UY!fzMs>?+O+C3on@;VR>5^uqU+9Z3mFp1;(0`sYO%=! z3j~7e_bQm%kIyZc891o?O--iW=YWUZIz%k2l0t+7N&)8_M488WisbA9FL={%YTPy| z&*1_6<@Kpo)SZ~QQ5m&(4jEMSv?g%Yh4AMf$dNMc=yz-MJ!Z6uHWj5H=4o32Xy++r-7WD(x)$1*e# zhvS;aUTkgZdC6B0H{ zrX@Z%S90U*4Xg!weF*{rh0}U;7LIpQUHSg}v26Quzxs=$8mPI$?qo(0GfP4NVk-%FEw~+Yt%Tg7Oqwtt)&=*75&{ zRLUkc9XSc)u(|)eLiz>zn7KlMlas!?^#j4wWQm&bvF3*F=z;qzH+LQK<1LbP5JPa1 zIbG03tb$XxHK<@pm{*#XjiA?DJrg?yZtaGNmK+ZWf`)8EHHsq=M+@wtcTHOxW+4|Y z3!({_m@HC#+h6ItJI@Y@4Lb47+Q+@KhH7@RqSxvdvQt|Px7X*F!7UM9v%clZO#87l zgAJ56I~B~edUbcqFG^9OgTd9sGnGyY6NQoDDmh`2FFK(fPx1$mI13@a@AuFbn;K=Ro3X4##xiUii7$a1t^E9$*A1 z!5?Ty+yWD(rx0F0MDf)|5Kr4$>I*`>?s6acCt`5JDJRs(z*;vt)Z`!|a7z#ogIM6~ zO^OWeQYC&vD)&v#S_Uq^5g^K?Dp>M=FGiMHXx$|eb7K5}n7SSMCA$`|+EJq}_Edn2 z04qW;;cX=YaYrPxXdI)OTwz4)k3;e@#8n?A=l19XJ%(aNKUQkl^GuZfskY(7RYH;= zb>ax@up&B-M|~~P*}W7}cC1lACme9HRl*kap469QbDlsBW-K;6Kg@&2iXTv5)pzFb za1EvgPQw8abU<(AwOJ5d71Hn#hSa~9*V_}~2<@b{><0_g&UY#jET$EkE=Tqb=+|o7 zd-_C$V1GDC+K__Jo*flY*dh50SXi59tG~Vhm5GE1<2gH7%>)m@eHm6(P7nCbk@sga z-{F{OU?M1@8t6e_r8g8)RgvKM%o(I2()G!HW+W`)#L>Zm(nkRO`<1=a3CYA$b^Rcp zGc1g-XRuN%f_UpC5_k9Sd=Hd_?U{Aj2Wp*#CCJi-(44&bT%Mq^Ad=DQQYREx*+3ui zB*aTyEPve)BXm_SO{k*i@69F{a}ci0Ue(1E^s1E*V=M;7C-?DW7xr7i0g>-4 zix1wh(%625WuNV;;$*8@gDJjaOmSR>f*7nNK>>-3pFm9IO~B@3g&cdNtuA$*at}{+ z`E%B+Kim%+u6V%lPPAdX>NM|*V8A$&1T2rj34zH4NN9<4=US*4b|dab5&Sup{B&Qa zoG&Hd0PHG$bp zH>=aXtFoJ{^``4&+G(HLS#NSX>$f)m5M`#_^p0ZE7FHcb=Ii`LkvNau;$Zbd!GwLr zLL#7;e{dV}jY?7X@`tvM_IwUXR(8ntqvmB$XVABc{wd(Ti2i)Y`0V|7p+BZX7)rr5 zkZHvd=hmQnOt#Ky8qLk`%v9BUdzFGDxo+PJ7L!c<@Xqy0UxJT16bJK5QNnzeNw%hs zh5g<}auKBE3Pz*}e{eknaMA)iflw@P5QoUS-|5NkR$pt4?-DLu!bGSR^sQW8@cdq_ZzLut$Y>=% zxkmThZ^G|U`3VU+L8&-qb0Pt>H~=EMVC~FxC?3uFBKz+6Uw8>)FXpt)NuRMqWLZo1 zsP1)|ktyGBDUJ!iSZ}La5+i?79#X2RJqqN1Q`W+-Qwm71*+5scc^p-gT3WzfdVxTC zT&}wtI*E3>UW9`9ATyJ1thO}RV;v6`E?6?YR--@vabmaA1$Ej2&fs8ybBUI$eUHO9 z3|K6AEpmGLbf_!B`>ZB>i3ew7l>c#9UYsVI3eL+#s?k@Xft?y+VC6uO-v<9KSZ{64 z9dW-i&XvKt)7=A*h|(#$;W+C_4VHc#BX=Jg@lxgBHf#Jng(thzzs{J_@z-O;d zVY`Al2KEGPU>~g;gJJ_r0Yl<9w^i{^86I zi^Aq2vvqiWm`EnvH>Ld~gPAI(3j+`0aJyO+B}5jR2T0w^8Rgx?n%&yYMu-G=bH8px zoBLeWx|4luG+g^t=Lt;ohP4jMiPpI7Y)ByM9#e?2sD|p@g%Q2oh+Op3)qSm@*UWmXY*P@#joj?2H!61 z*{H~I-<`N#41JSsnQ1fPG3=c3xkE6gwgBhIhndHeZO~gR??b9Y7Ilt%cHknljpozapQM{UabTe7a>W|SO zgg^%E-v8W$=K8{>@_i?4!yCQ=*Z$tIWics1V9+mZYZz#3d3k^kv>8wa2Tu-1d<_2} zl54!bTg8R)zMm{~(ECt7MRo0Z+9;)Z;CW-Wwj=GTM>1)$0eRQFQq_cc3^f!-IpNvP zmP2{|n<+Hl5Fl9DE5DYzi(6+bJ;8XxShfCD_hZ_)&;MQ;Zr`^_butF09d>)Sw#?Yo zkM^>=&ZmWE( zA>y()kcwfsehBHlT!V~Y8hP1h&PN6P)o?y-ivV*Ugk|_dDcs^X9ce_S_;E2rIrL`o z+r8SFrQ8|G#43ym8|Mm(m4+LYbRu}A{`QWl2qtMXYey3rSz;M=9@ACiWVH*L>$V;x z`=ofv^432f?B=yE%H5}JN#HZybI)+OmO79hiYsU52S@&t_`QS^e1Q+KLwFZAUZaL- z`sUx~mvZ4s9KVa8aDXh9eic>z%_K`)B@d;qDAvAq%8_;|-a#fJps2Ah zt3Z%D0t%FjUt-;N-mtGhgB3jl}IfSS;#3$+}~A%)hi&VyCYy~09`F!0vQ(7^YO7* zLK!2BUuBH-<;6T(u56rzs4lzX;+6Ft>|V+=1M_BsKw%ZUA}Z*K55Sj-ExSDM30@kv>o1d z%YMjHfW~(6Vl{wUtL)w!PmY@q+cdCx(JisE%(YWK1=m0^zZ8Ok1WWRTTn3x9*G7F! zL*dSf>{mSVPxg}RT3(H0UJdS%Z7L8)BtSZ^ex2P|5mLkghJsZ5BLfp7iFp%3OP%6Z z^41LD@Wa+ib!!gSnllczVo0_k6FC`N7w2kqfA>^$ldD#$H@JC8b z%;TN)b2m=QJI;rTsU6GA9QqzuY2Q~*st8)D2$IBlkWf@mzyibkYEtKzlqpfO_Jt|s z8g3L{xB@W~vt9p;9?rcKs0;~2>+}`8J{I}4LI7vGpfcQ!+F- z767WL`94fjN8+DG$bop-$RgO(9yptWl&M_+wsrVy>E2gcW%LL}M_w))`=gtsJ5QOX zouje@O)RH+sJSwzFvOQ3zsYol{0=BVWK>R|g9D>B2D00tx_C;H`k^QyhM0~ymvCx? zMIxN|J|Jwu+MM`5Xut+b{VX0(RsD$$RQ<+3aDTE*#W^7)6iC?3HueXBWdhCbvFwC0 z3T)5tEUCn$RLy4XeTEqmi`|b`BTcs`A~hC+O%6|w`M$e-P}8dPytJ_4Y+TyOz!M!+ z=`xr4$dx1*VIZCn@yaD&?hvL8qxh7#ANo?wOQn|A7N#9*lNv2aqjX01&8X|5>LLVx zb$=7Uoyu*Zwx=%HQJY?Qt8a&ZDREU#CkI%hdO>l}HbC?ot5U{iK~7qtx->xf3$CE~ zbLO`feH1DZaAGTS1V8yCFU_DZGS4pvHMR|$lqV>@mFPtu5Nn4UV;*?>N1_OPkqmUh zb?w=ir!^phf!#YCBhxCN^bVgL#}L$e(2XYIsSCs7rEGag2}D%iNsYtT0g{-QRvMVM zJ2-mULez`lAPgu>o>Lnt?QMk}+*rDc3|91K;)fK}{Q&)G2K$}DN-ZS-2a!#nJX(Mm zZJt+tfSf-7QeLCOS8#-%X|OJ}Z)!Kk%>*L5`8j(TO zI^BwPrr2yqk@e}EAFhnOlDdR-pfp=JG5W;-pD{@*m*_PAOFrdnD63MXiGm3ezUgu! z9vREscc&&{PBKbW_$Vn@feSn5V~oZOR~3ziB6j+q@~T1gIz{wunRMH2+nDR80;03^ z^dzjvz;6PM0c~?O7M{-wc~iDm8fuiQT^f%w}ua20vqP||b z{K6n#tUDq#bu3T`YAE@xC_Zg&(?h*^j&*xCFGy$WgKU3EN~uRRi~NQM&6YhEuP{pZ zbBN?houF}p`0zd=br1h)zHK+}z!MRv?I>eXkC3S+Bk75| zuH^_Il?ICQ7z(C>pA$}veuUwZ95^y527D)>RanBM6r*j0T7>W4Evol6Y}$Yd4GSu+5*5rZfVJSJniGrN>SHxS|4mf`@6aO z>+u)W!sZzY$QUA#;}z5fZ5at*3w=j$YX6Xs`}qe3XCdQJBMfu#%Qhf5?uVfdKP0*5 zT;-7;Alf(}aP#5UAAWa11XvZBTsdCZTzVe49C|K4*)nia*)$w-**K_=qbJb!%O}9b z+u@&aS0}t)*)BBt=%;Y-fE0#^HagigIsJib|6dcHW_f12~d!2nb9lqnvU;HJzf z!k2GROP%n63FUo8zjxL@o)@!#9I0Ps|Sk8r2qlFLFk4oQ1L`sDEHd*pHJ zy8z_M!At)=4+PF4j^Ad-3P(D$n>ui@%m+>F(;5pC``sGjYuSGtD`^8~u0|RtbU>A1lKHyK^gprEIKCH}@FBl!2?f0(ft- zDSEOh8&fL;W5JggoV>uQrrqR>oqF}Dxu9DNlf+m-F$OeHNIPIKYnveq38sPcxWA=6 z{CQD!!vf{Z+kMzwFvx79sCI#~xvH#EbU%+WS9ceGHHE}T`(IwzQIvIU=t%}z2u=G1 z%pjL?Dn&+xavsj)RFVzyadBGEMMUW2#aB3-5!$)GxAzQV>raT#f*K+r1yT5r{%#`` ztlQ{eyE)THNY?3-baAE<60OoCC2J&%jn$HhI{PI-_2pD{^^HU8jYzPHv?57T}q`v zfP6UZf9a7aA9~|XKTh8Z$!KlvNIL|wIrjss|H#~hVmUjxI8g0AGFE&~vE(BHxg4IvmsSAsKjJ^kw(aP+Bb`Y-dbMX=j=Fx?(yGx)B*Fb`vR+I!9 z3s`0iJ(<$$pHV<4fss?8iH%kmXW>_G=4OR@_(k32Z~}(+H#ofPO<95)goaTy!~|Hu z^I;GHBwmPOG&E4_HG0@y&NSuG!$JK1H_|bBdixdD$kBFaz4Ijf?BN9c6<||Y??8Q? zkpz7!1W7bfh>SY{a?Lh!v%wJawT1pF^pQ}3kb9XpeW65GPjt1l!8a@zrqP@JBd|e_ zD3ZZ7{3KfGevHK^o#k%4^^=V~Z7~{WVh*{-@ZbY&Pq7I3wa&ZVo_1xY$_?MNs zVo0en3Y3dr5SR;s7sMD55x`=V9;|~i8J7HayT4-(rasOppb`+w;JN}&<3g6*D=-0P zFfBm~MuHAss8Pp2-kpZO92B`wcNx(@OpFzr@OOJegjM_yZ>jK3?sA>nB_K}XYI$WJ z8izBI5O0MrLHF;_djB07#7cja_;_eO%%z@6)zKh6)jH{zBnn*L`dJl^ojqHQdE?St*!)yu~*U)~aeHC3?MPH|HcGs% z@DW<9(&X~}I~wYGeUj_!1%H_0QvX?z+XG z%BDfHaV3jJ!F+_cfqg(nJ2k5`D?7>;_M8j-v1`juHe?8oxJp}Sj@Nxzn|N6P!p0D~MX2g*xVxKZk|HYUofDxotPg$TN<+M}W z>oNocqmCb}zU_YAX;i5UL0W#LvOU8v$DH~&S3|Z<%pjbajZ{RQi3tl$)JvQP6G=2v zT$Z$DYJ^Wqv)s7aRsXyVN*HE%bYJh)@JJYJ6TBq2BcKZiZfW!z>BmqHjTY8-4l9$*es1Y(DDy0kyZ)C-hl^s@xW<{MdX^&c#hy7@i6 zitscygKtQGs-GxTQE<)BQsOv$*@(<_wlK#8hR?Qd zXvCTZ*|4oOHUme0x~|lx5lMau2a-G;r7$VJ_a)1f2K_t-JMIf^a2Bnk#~6+_D2Oo` z0ajY27iV(D7g#8zV0OYva_ndyg+1wB9WQIxx;wck9s;YwowHho(~{fPGBOa_Roj%j zl(UP^XvNQ1bpF@A<9Kp>^Z-Uk59(i#qQUlr^{G4%Lu*rku#6=6HH~p)H>i~2@l+@+ zYvqp`qJtA)3@#MHCjOy?*3M?vUOjvEe{~6Bu-KkWFSy02#t5LGOoBh6TGN&;)(}!!Go#H0Sdd5 zJ$#+q+;%#M4PTOcgw}*RP}tv zH{3ih(1P}w31Fd0Rc=XS+MWpstVr_NDBISJ5p#rt&8|I)+pF-L?HF<4pq^1_(SKp0 z6t5*m6at}?3|(`!4oQuX3)dQXLGJV}%*92Xkq6g0VI%*Zw)Q~LX2gMvry|N$<|Wld zckdy0Ifi`0w@?a>!CApm7>H-GFVw>T6Jyb}Hut1!_1e0^(URjWItO52MCJSXtbo7g z=#`<6735VKtyZ)NKh2F;z8Bc1v(uuo*4O%AKOSx!?{})=0UUJ5!Dpu6tXn2NR+Ma( z4f*O0P!+zs3rNc%>g3iH!cuAPRA_%>>PlcCdV_V(z_WHgaOnuGu z@$GSM^L3lkDBaxLJpXicUHnaTnR>v#()k0(w|ByYd+_xQATpT;F#EVcycS{6&gl~j z>K3>=^}RRtHd}Yg0Wt84T4FGqS883D zOpU(ZomoJ0CtJSH7?@}yYL^g${qzukH-Ryd16tSrRfgVJAk9MpA#T4V#R4SQe@c(# zRFA{dJ8x+#d#8ZeCzvFTCl@Zhp%y#cA+6z1Q({)^IcBgtqaHzz)H`v|Uo$1}8Iiop zA>lg7nGlu{{VNu^x8Bmdj7Y$n>4C{J7(`)cGPa_62j2EAq&i-EC{l!TcKj;fBOL^8xv z5nh+FT5TuCE9+s00v&nEdc4V<0b{UK{mjc^MAN$(b{OxFMMFhdEXa_GXUTs1tsw`G z?cUul$!=zYaasEeQ*z|Vr{~3+(sOfH@7J=@PO&#$o}DjCa1s*f-IDERKE2Q0pUp2Q zB52CPP5X?(;2!wL%hBBPpszIvU zlYws|*e^eLipT*>>-|8O@^~|yM#1m-^5yJ;KW(4(rfZJbJU>`&e-3YcfM5XRPHW9s`ych%bpLm1mW6|fnNCLE$-&%B^B+L?KdImUQr4#Xe`>u9 z{~uiMzvSM(WbS`8dKv$1`2Nf2W&BUX_y6GU{;jh6OT?QS|6>Kq2>msV|Bd^~2r=L@ z{>%3LdtgN~eIs)l)4zKtn*H75U(D~{>i=%{GX6{a{g>UV=xpHRZfE@WgdD8@E3~_% zDi!H83cEd9+jhyXo2qnMZH-vR!0r|=GDhg-voF>+KH$qof|K3Ry7?%uqMvpyubM1b zyviXd#@UJMQ1mx7ob30545!cAtR`3Ji(!$y$+Xy_7wd9ibYtq_?ryjD&&&8~@1Ms( z*Il2l_uN?7o)2oAT%Ygt`=d=5L)m;l;ysstB7%`qv@=>9Ojf|hW_x}utjrRE%UFq&BwA02&e(COXcIR-u9`B!0=Ruj;9HQit zh)d430$P9tzr1az}GY>%ZjGRqeBOx5EsKqvO13 zv%B)}#~kPTT`_5?X!Uk;Pp!(VLPncT@=FyP$!g{h%R1lPs|U)F^7Mo@j?$Jwk~tvjp(tfzaAaTnQ8%&B>C)G0)(Ynvt9#N7>RDUmzowE5x9 z*Vf+G)Fo6(@P*0}bF%p^KTI?p4 zh_^EOebDki5CU58JFqfxYIRF!=JK@OU6n-Iu=KQXtT{bXi;{-8+lTfY^3T0BnX-n! z_wo?$zR2@-gTp5Ba@=0An&YP)Pr`c7Wt;Jb#@6mvI*-+0y~O5~vg9jC^QV%UKy|11 zX^D$&vqyV&bRT{8(pPh$=JsQBG2`~efL8p$2va@Nz|ivkEL=Ic7nWz_t&H?T0Hz+y zB!9xqHWE(B=u3ti(NtFi9I>=wO(SShIHI8f{;Bd|{IFqp`beH$vbqjp%WZ(@Foh%K zDI^DXhJEKuosOov1{+%Eloj6Et_uTyjkIt7*OO?5J{=P-&HR)^kG81D%o^%Tbi)stiv4n};eveU=QFXCxO%%lqr8u?s&__U-hcG!Hh5Sk!S z9~x?Fu&-sLlh}wwj?Q0O#ceC9)W#)>_DsL!*~EpgZyixMHi5twD~;O^C2a2vrmzg> z6I{eZdW~yeMikfSs_a}1Uv>nFo?~(sR}8evo?KKlNMkWYj#d1b%S_*XpZLB8MrRMy zQYU5~v=#ec?5x`u+h#`>qyV#n)NgI-RKK5_J*T867w9Uk>DpNqlJaq`Wp(+Rtj99c z|H>Y+wvZgn?2m@4TqLP+kJ2EJb`P1!< zVk$VEmUK9C1N4%^7nvew-LHakF$3&Tq!M`!wjrAGr8qGrcr3_d&k9)rx&tCC9a~D7 z;7l0@rl#yFYnCj^E>>{x4MxrfkD6>R$M=Uw{LUD+9P)hgJSpMTyP3#E%L7f7oH|Jw z`1Na$Savbm+ZNBdu6V>wxV?KS#Zc?%#6SMfUP_7RBzE(Pl%dj@^)roz43hC9F=0$Y z{$rIOAd6hLu>X${lNh}aDY?Rt2An~Mn22-*)}2GG>=1mH6V@n4QW1Jh<470A$6wLUY8~!!U|qTKh}-zZS_`@O7c}wv%@llI-x5i zN~N@l?KM|&;-;>vMaM8R!>3#(l7PVrS9Tx@Rt9&5p0o{!pXF>koJ>cl3OI64DW|dG z3Ur=|I^FVkF5{#%ZC%#(+qwSsk#m6{!~p~I5t@69WvA*($cB;qX{d4%7NWjFeo0=<_tkpMCU~RV+$F{27a#L^Zp5= zfIo(Y+BBUu`WO`tIrVQ_(M>v4Qn(Td6PfTFFi6Ob;`&VV38bhe9zC2>=71vrwGSo$ zNdW8-a-kKQu?@`lf(-pya1Xl{1TfvtCAPacr zVM}q!+5f@bTSnE@EbXGW6WoKlySqCCcW2@55(rN4;O-Kf;1=B79fG@CaJVaZ^X_kd zcklC!bI$#B$JjMSm>G-JJ!e%{7yZ;z-SbP71!a0m$pJ23bj4CIkr*wk4i@FXci zjMaTBE|56>J?gmhvRR265IP)1c$~t{=z>A{Av}E|v;aUIrDl8_sL4sx4=FShzFRlw zvK5BI+CAKlsiEynfpdczTxM! z{B!|b9y8mkV4c&n0rBcDr}epp=A_E2apI=;v7atqXoVMU z!K%AW-1(XIH$3uVc}01@nv{+~f&WWyca;F=# za6@AgYDNHQhvtZ$Pe7@2`8eo$jn_(X-hGWbe)BD{J*?cQw;oD>Y(W)_cbEb`>AS)^ zvOQid8>pAG3yN=GY6;v}0s4^EfsG<<8ibOwsv{I>(b8lP=iS}Nw`Xk!FYrHd)+Ay| z;h${d@Ys95*N|q{&c;y9e<$I-;xpIx_jDIq4M%K-lJTO}&$OZbS%e-wAyR-xaI0o{t=Whe0Y+9W^AjT8x%@HN?v=@tp=IHn z(tzin6I+${{=VG`CzGvz<@(!ox(C~*w{--WP@|@`*OJ4q(6#7!GaprTmz(#_?6D(Z zOzS@TskEo>%bU!pIyPg>PP_wdKeP7E5(;JgoILP7rR`{Nj3CWmR3XXo^?43U ze{9}4@dwL5?Bj06m9E&${!`{lMorq=WOGf~T5WaeQ}P&zxsG0b0AA3I!F(A&t@8Nu z_!F&H3c<}>VI*}3L>CP`z6WV1z5532upl~2e*7SUS<`a~a zs#gd$&TNOG%!+>Hi&!tTb>uz$B#`Cdv$@$^2>#Y8%veSALeM2-tG6}hBxW2A5a`9i z*oFqluo0K6BG^7^Xv+L4cr2s^oph165w~66MuG%s{}pLqaBDv@Akuj-xLq<)P@c`m zP~SBhwQ|&i6w?orZwkvzo!^!go#eb%Y{$CC$e-;eE^ zjr;2l6If*Iug~en6Xr>#E!`7{8@LC2q@3U1?FfG2dD%r0%w^hob2HL~>+@Pt-wk-b zL1J=wly0!N*IWZ1V5D0Z!4IH&&*|0kc00YVqLUuij&BekvuePwfJ%AI6Lu_5x%MsW zoXegt)a2o6VP7zFG56s1(l{5NzRtJ#UFNQAdlpSy4t*jYTWD4_O2gefxxsx4JMPBi zNAJ>0zDaBAU0t7k%aaEOYE@6^@9>z;`N5uygh}<5TEU_nmzkJfX|S>ZWP!FQHmiwn zM2z_hEjbFDZfcN?d9m*Ubx4G6yEiEq7%$;eCuH%yzQCDSj4)k6+hfg!H@o$ygyJFZ zypM27-P}3VZNJ~!ct7rl-@quphVHPgko)C!jFP=`vao;TSkE`@0@|yr zgr4v1WB7sKTOb<CB23LOazLS(Y*g4sVletLU4P0sH4 zba(nN=Dxo8aLTJ1_9^p&3)~)FXjvEj6c5@VyS%$_?_in@d;NNqkWnewUCpFRE|>BnYeC?}(9l1G zZ;m-<-dAM9cXp%lesJQAA=u#sM8{$TL!88wgEIxFdSbQ^^$_7u!HyG{X4HRGz=?%U zAi_cE!i1pby4k=NqZlXHd4eTl4wMb#`f^4@EX`%e&NlE>L2p^*_-0nA{hEe_ZIK(> z_8om7Y8YPuY&5Luyz2H+CS4-D6iYdQ=pIF#tQ5{EnDTbp1*lBv=-Ln$Jj?~TW>jqW z1S^|IPJDk(E=IIt_=Ns>VU<0(1~VaW~3!Sf)KlyiyWqaLiEp1E6@%L&;KaMt{X=Z&*!igAeyP*f;R@TcYCJP zuT=-eWb6?EYDrY5V9xz9#H}wL%Lz9xjyY)IHXN zys84F@OPpXAlN~=331LcYk`sRYCV$MY=s3?W~D+G?^TDC9I2?ecpt`{*gf4&p_EdI z{SyggmTWa13^kZX>PtTw#E=XwuMkey``)LF8wg~rzj;Kr+zTeCT?iI*eVXyQsUA=3 zxduAl(=8fO-+^x5Y z-4*nP2Fq7OsSJ4Hv;rPcxKm5P+l9qYD-G%{JYDw}-gYZ^=XM1Q@2V$|ycQ(xE_N@> zN=gx^4i!YrVGn1ia+WbP!V%&imK^xH)R`ZL;mk$D>}|oW6}q$wPwJ%th44 zb*a&b0F5Yw?E=0M+^7HIaEYOC}7HD)%b-y2O`3sc3{A^*G+&`%;spA;D^TOso?EFaR4wr|sk1`X;9SCC)?>YQ zW;DL4bYPT_#ZTzfu~jlkYeOja#>3R+z0=0FE>yzd2F^iqt$t(&SQG?qO?G8UWls9g z&gd1!)$Ud*XI|D{k!ebbL9gE}H-o``k(;KNFB6t_?S;VC=^Ndle@-te@OQpn(ArTl z)>PNBklpesr4J6mopa@E1dLa4ak8#c2hNd~^+!4w5bt~#J`7cq6?v%4S)YZT<3 zfxRHZI|`di_#tdbTKylYo;mr3YTS~BSh6b{ixh4heYt~o0kV4jAYuh3Wq^vqR?M}2 z3`N=_Mw@1^C(+Up>8jEt|N2iyk1L9|yrOT4(8dAUWyRlB$ zuJtsFz9>oe+wHS^SW+g5f9Aer?iFX>mHAvM5+Q1;b_->5nJDHF*_?17VjA~!Z8-QH z_Len@ycjB>#RpB?)j;`%X|1#FFs4gNZxu#6ByX|E8+E@+U{UUvjL zQ}WR$Mn@qS0{C)q`|$?Y#?N|MTl^oYPfeMtT_KBgl`%F?Iazq2DV@*yd925bqUiW7 zT$(t_h~j-La1U%5jw+*+2Ou4POp76DizNibuNG60Ynz7jRbYZ3Xo1uvpF>PE=keI=xWe3ho>a{l`Y?w8$I3k z$3-S&2;!PnK0^ggMC52Fx+xdgGL`m{m*-~QNH!b$9++493x|~?I;ukE!hzm0ubhJY z=DfaaP)_fU&!6<$C)BFx9E}F@znCGq?8_VGo)p^T(G1-qt<6R2FeCK*%p$?EARg(k zVED0^?!qv+!bt|WD-`-F%+ ztK4O8rN~3<3JCyTwKd<8Y=5x4LQ;hg*+`ed1~(2wC)RoA(B zq^Y#s_q3)?;>Fh&4eJq6xTB=|KiY5V;;XDmEv>W{cCd4w4o!l2RO3n_BeSbt^F;O5 zY>uX-GvC|HfO?hAA>CqtsKv|$26O4)TO1lKR!IEVxP#ao6{Ms}7t+EEz49va>+i1T z=o^-R5G#PJ7n`|)-zNJO=(SWRsIJNJQ)DqPf0=mv*qW9GCW>H3iCsBi>$>l`!pGKr zjWKIOv#c>G^bERY67@oDku%!fRLx3au=;}pA`K4<7Q(;+{KvfS2$)4OlK5a~v7o)8 zO2jC>BC;+^(ld*xZEqoU)!q+kcBoOo=o~eKgy#dd_b7%St@{QD|4M57PO$$oF~Q2t zz{JGHLBzqqz{$zYPQ=N^z|PFgNyN&=z|FX zAv1ol4*v@lfo6w=V~&-HNsWnPsyrawDGocF(nf$R*hzJ6P38d>7 z)BE3;{+GS}Eukb$WM*XJ3}BS~bN$~Sn0~AH_c&U*IDY^*iQ3yb*xLc@T!^?BMeS|u zom3o*OaMfG85YQ2nb?~GbbgUXEbPEB|F;7x1+X-?a3Nx5Wo4AMa{+b*O({1!P+YF_e;B)jyQnK_r>8?fb8ryaB zNLw;IH^r_+)f%l1YV2bvj-%Ls>HyOS8cUL;94j~paWb75sjg!G@92?MQVj+1m~n`Q zDbLT_VHy7-Mr1)IBW{ZfNP%*Zvik@+V$`9!V# zM8p2fK~5G3e(&)PhjB>oxXpKH%%kLXzsG*nWsXa*7JKJ3C-tEc?Ilr1!eEzTO0C)6 z#e@LGC*i9Y5_zY^XfKR>B3B*`nk<`AcbG>JEXq+GT3$-O2*`}6$KDN^oyZz+@j!5{ z?(n0wiDg|M$dNjH#jN=^KK(aIssnTwQ-BA+^q+`QB4#4i->jkDuZF*z^|yok?|AK> zUL>82Jpb8qft2Sz{8mg<^)H`h{6F(r7A_99f4J?R=ji zkU~%p6p*)GkZBN55KstE$lv$*{R0jb6apFs1PmM!3LY5*1Pl}$5rEP3t3NSObu(Wb=c5!uc_we)z31h)f!OF%hZ*Sw77d!aMbr4L&O?y#n%t|ckusOsU^2kdzz>P5T~d1(xT zZewUv{=!{dU7c@}f0|Zcu*JEE4pOo00!&E6!GSy$odMN%-BhNW*jjAJ&I>uC6Xfa2Bi&+iNSgdGP#X#JI2@p zTcyXMyav0Vuz0M&0eb1nk-6M-8dx-xz?lVlZY`ljX>dx?{(`VPJ1LjwcOY+5zaOXs zU7k{Or~=oibdyXPU2X{nKSuz=twUNq7(J@#2V%s>z{}&l%aYUzWv4#tBgC?gAEElh zEzK;;r#T_D9|O${SV3dO!sMp4(u=E#SxqGUmTQI4wY1L3+X?RL{Z77#g(YSq>uh?I zfbJSv%n)4ZY#t*jfXDT*p&FTgPr5f+m=UtjDG1Nas|7NwkAbS|uAuegsA_DOmMmhf zRmE&2cZy?`X~r@|vZi5yT>j;@j@MSF{7Opb38U!>WT8bgC1gdhv0qN2LEff+Db!L_ zWSI^jy0T2WuK|B6rX&o`q4^n)=N@{0!B$>LXrnomtk25iQ+AEtURoZlOCn~_NoF2r z-^C>1{D>)f6niNHc7?=vyU!yad<-2&CvPLX9!L6XJGE&enN)%j1u1k5RlBE6kyv*c zIT2&5B^;zSW~Xbq^oMZFP92&$@fOprlB7-#jHjKXh#+NBW${tN-k4(FYST6qRU^Bw z8cFRa(ocH#;uru7mxTG^-t-_bb-~W(R~>TCrL9V8It6iKaU3KN zg@Q8AsNn%=Q|#hlTqJ-vyqyQ=6Loohaj~3IGK*?tRux6yp`bNXaWrCb5=cfW+9f$+ zVqwTlWJ;7`JfYCgkcg;U{uY(>Dr%&pVo|ZtgdZNnYaWC@#3_-bl72>+e*>w#DTNyW zT;#}Gq^%#3pTBz+w&+mO`?kWZc6 zf*|Qk{^*q!Uh}}B>>`a+-=C{aNEnuZp#B^EUm4JJWo$cl!lBu`AN z^E~?9-;$6K8)^EK2%)0MphaP>g1ipqZ(1bQ!2ySxtWS*p3_O_JpsX5Gz{aRIw;$wf z-Va?m;d6-MM_wuRqg!EA;Uu}B79m^Tn?!lT;<(jlH?cM3G|3YKs)A}QDn(SWMF}Ds zkvU-uGMLXPhQW&)|ByqeMX`Q5pXEag@_^lVV^?NGWXk2z)UF$y;a@lAerE5YVVsMM zZV<3BCd*8DTkr$4&<}r(pTQG)K9&@BnN>Hns2LWcbOJZoot@O7Lu2PEPS6-F|L{S( zB$lKHLUeU7g#z-Axq&u^EIm|Bm>nHmG_=-vLdq4km{~Bj3X&snBzZ?9E6|JqaJ?cc zl^7yNBOnRBjhNA8#E?%iHzA0&lLL91^y`adDUbA6liZv|mM)=7rHVtl23@l%3hy$s z!$-|HyQjSQv}RG@;bI>b$k9SQG^|Da!C0$o2h^ETHrSOr1h1 zj?x%${nV$V9^>jXSYnIA*rY$D9;2&_mMk`%F6GkiZOX3@__~7P42xCCZS8P4dU4ZX zIc{Qs5BRvlan|JisP+(1Y~n6zmXC4w9~Tbs8mSf>-tKdRm3eDmV`~35(x{T;lhj+e7$PahiTKXrAUV~`5~NW zzqe^WcCvI8Qk>lAIZkfUd z4KfW2l-T#uF!`U_-ayckp_+x|JtQP7d1M6GBxuhKY%1q8Xam{J_O`iVgRp20X^PCu zMo1BUp$!;8*vZ4c3#qz{! z@-F4&G73aH8P`P`bV$sAULz4H^%#1UBnwHdbrum~ZB$gX*YUGayQES{*h#FLQU_-2 z6W|S`P;E=*Ag38v3PDDC`7`FbZoN1_T}^I?lq)s_OSW!qMw%=tNlugZ{rle$r==h@ zCl-gx&{T3nAXBTTtb|M^B#Z=r%9;6?{Dh%xB|}xvD)l)sPb@_c0EQ#1Brl91ej>~( zJBOF@VE(A>bt*5NxP%APXOy1%IV7VpoDxcU)Z!-qYq=baBtu$wTZzPu zFfg%rai{RKTT(!r!%u4B7#C5^*&WBMhTna4nnc zs*$6kOPKkAfquUtSK#-e(zw*v*l+yR1p;AC)$(YzN+v!gotAP>`Gqa8HF(+lILgeJ>CJf_?7p)7s& zx>oWRkS}4HRa%PhWp>u{=P8b*Se})h)eM33VS~9{Zl;i`8eIZRi|S>|y@BX_&~NOX zO=0DV4a8kJTNv4i2ROtwN<@0KT7{1UMNX@-ntBw(OOu+8y8Mchz_E@s z|N7n^Z2DJ8qUx`b!hfU~7)^|Rx3qWotL1+caI*gT`rk-Jl!*0r6(gf0FfH;s>7l|X z=W1(dXYXw3@}~gw7XbdJ=D)uGtNHJW&0m$8fByX!6#CWC-#7SGA^JZjVmSYSdnAB> z9PkJE{FR7d{arNqH!A1k`aep<{KFQ1(k-mNvpT@c$-kysME>7-7S=yGoBuJ-GVPAU z@j;4lkL6c}g^iu9<^vOmh>0k_v#g0TysQeOi3&eBIGPGPE2Ie;zbyQ}rc@aGK)^vB z$KD0~t6%)q{Erd;dyVe@MM~wjHh+)E|CCbs4>YwYsMVo&RJ2NXcGw0vi`F`PPBF_K9@KRwx37&ij-gy0A z19>d@wMf_^aYnGs`svKPvzS|rLQ;f9P2pL`g)c)2?!Ffnlf|KDa(I)=C@qh~eRnRxi-C+}tqt%(+AZgW(cbS#qW5XI^twf{#M^9E8LFqfx(sp(p8AT1}V|=&4 zSr&H1Ct_fF!XE_L1=aTmZI3>aoX|P0j|B>B) zCbKRmArlu)G|()eXxpW~B2sfX?;eFl9|z$DJII*>u3@Lx(dr5&^gJywG^bTfo;7t$ z<(dQgTH>$!6rAChUC5o`&ET=uXUM!K42P38Gay(SWUp$GIv+?32V?1%Y9x3eV_#Z3 z7>v>(H~Thn>7W&AsFMyqwO*dcFTv)_&4$*;R#6e69O|^GInQ*RYK3I)JqFdPWj065`7swxluq0oC)b^gGo0vSslGnad4q~x<0jukV` zR`dGh35}kqq5z;;5MV;cp*=Fac3za3SG*I=wzS`6ZsfzTY#$HKY=YoWL)51-4Wgo9 zzrSKb|L!^Zsa94jU6IOhLUez%8)1BN&Dlx}rwcR)a3W{49EzSb52cn42L=Ly3V<3ck3}J^(DyANa@#kKaVv=fychkWg-d z_SwYsfB*iN5-`JJ{m8>?=~F8nW5g4ME7qxwb62mYHVa8DuW}{r`x}Xgd&@Y3cz*)%&U8!dUT=c?73Wuk{fJzPI$odxFc9tV`rbtyj!>+oxJET3SB{f* zq>Rs-i&$@VENo9(MWfPLOj4g8SV{C-085kpn-)F2X&5gR7$_`cW{G_(ya?t$6ydIM{u+gL~@$ZMvWpim~#%MA>14SD(=JMc;~2{=dUC6GS1C@ddX8k z6_=t%FLHFioxEEl|E6>QxW^afZb~*zWY#*tZbRg2bT4!MPObQQ*WU|CuFtJ>S>2?F zxERII$+~gZ0IYHmaXF88pfiF76}gw-&NKv_ZwX+c_DvkayB4e@)y%d{t9GRKR$WQP z@&;x5Mnx^Gq17#5SSUD0*;Gl{;^35#r?^?`?IJxqqrMsx=~HZ>E;H|1fU3e*pF#^; zY+njr5kJu#Gj8U?=Wwn5k)NZ5)lvuz9kRST6Q72%nrZ_RiK#br-MxCk`EC-D)#wai zvzI?>M{b%BDdG@iA%My<9q7Mc2a1?{t|2sJ?U?BlR4g&wbcon7BU*+>_bRlXpM%f9fL5 z$92HUIZU%@QUeSSEUhDC9}+uxrQ>e2?Xs>G3x-YV6)@kC(qynN2*5-J?g+)%xJSb7 zkZ1eFh(`)Jms(dIW*_G^TGwz(9pimjJI7A@8G;-#*aHIsB18lN;i)*;(aG#cAK)#~ z_wAxRchcP)l4Cc1PRfHTWPb`ystbJ(8?$TiHGT@xQ z)184b?%Hbg9fv-VPKo~d`p(1oC^63KFf~5{I|2(8A~hI!1@!^-m2@AtqwLh&gCY%T z&Zv9Q=6wt%+93L>qFB7Mfv2?BHNyv%@I~cXaLU8MK>PraW;AizTxNXIC{mD(Pg5EO z2+pUpfty>rp~565YxG^KyY_gw4Z%g-*^2b$4+ZditAhfO+%9dv6T;=Z=6*z-jlS^} z>?U6IqAmPjZYUw{I+iw9@9GlQU8Uit(%)Zwesi#*O=~4VHcR{rBO)>jW%e=YLyo_U z)OHZDsh}4Eu#nma&$W%jAYTmn9T;0j#6mBtKst~T9WwoC3XPa(_4ZPy#@ zn)QvgLu@eB4P<(HBwvPr^L-{~ljNUkJ_sQYNn}4O;L9=9R}v?H8}CDkmAhPkZ+`771=4P8oXAJx zS0UAzxa(*E`pa0E%;S3l#&aa`j5cuu8$E0;E;R*~>p?heJtdJ`wKD{}7dOAz*Aq_& z&zK8)krDo^!KgNxa~si(2eC1}+C zu$Gm896C4$d|xB6g0Zu=9JBtshU?7T;!N=<(S(VMS^`iKZrfC1YD9 zREnpT<%qV+3ZDNF47w<3{8)1FR%tyOE77Pdh84SUvCMw@0=B@)2yCML6CZDks$VLYC}K#4>Z1NmOPIMVgU`(}28DqP%ZIRnXv4rT z!j;|Px#Xk@O8S1}bA*D)v`!>p;7rC!Ea#+?yk{k;;-q3CJx0lO7p`fIo(;HjVO*d4 zff2Cn_KJf0E(S^|AQwtB8cF+me@5#CYpzE1#8*gWaXc zXta_TksN3DtQHKV+ahW;088S!6pX^VmKfd>m@7^}Q#-(M zL1&ODWx#8?YHJMrd=Ea42Vjp|EF(X#;2Yk37*+oAVyoE8+oah{ND<&y*lBFYjZE>S z{@#1tg!K{;?!(RFr)DmsgSIgE)X0H`5bR4toZIO6h3GyeWvDKPz*Df5kX^~l9qi}j zlaIUWL-{HNGaKP@k!`rae;0kqH*l`TKz&Lx6zv(wmgV;eH&hUTf-O z!+i5zkS^V>nO#K}OPGMS*z{QSFva~1TeBUrYY@_{pnD&!VDAx9U(<&%EM+3R zBXjB`PSQr!p@D{URM#>}Fxdni4tgAvGR&Yr@hAOxe%$wh+t{zvBysa296vODNG`iw z$YR*6!O*DhMqqcLiGh(H)DUrTxJv#t%q^8Fu(9wd9T%CaL^^ai0Qw?%hbuJ;%s^MV zTzId)qs~vIlY4`#i(d6^1KK1nqPzEU=lil9$zuhP&u13`#U9Qg=(r^H7i1BBCvapg zivWS*q|`XcoVD~H48+$@%UmZ_t&J6Um}dfC?pOH?BQypv52a-*gY9yjRm1VQzs28b zYY;dGIC+?VERBkn&fk0ENqMf6X{Cp2vFMWMf^LYR-dyU@PMfdS))N@(!)ZYI?0OO- ze2sm0gahIimOA^@D<<)#_FTf^_=^%v2hM4CCqLbTdCMK=v6|7$wE_R=51#4FWZt%t z2{G!25n}O`5AjCb1V6S_yWLz)si=_A5pXxK>Wm{%?wut`O=NFm-`BCe5vZ_O@w9eg z!MTxWY5f$we(GQ{#iqV_^CMSej3Lf9HfZT$Se3yspUZFPZloae z)v79WS5l;JJ@>{z$wo^i`ZYozAO?20F-*K2vjRJrwfJM6Kc7r*vjtb=(-q|l!uxG_ zdYzQXaIJ5N+Vz!H@=d3af=L`EFfhKEpKoqfFGXsWJ;OKa-K zd8x{e%a+dGbImufHsucv@Zq7W=27})&cgmVhLa#jJ`e1}Ov))r_;V(YA~S;E+*$y) zk#}7q?IL1{X&v2CI4q6Sbr4{k%i-SDD_Lr$?b`p`zB z=N$6p{URy*^7bu#D$PYaZckQ>IC!beo}WM=D>0t){k4z2GMkE;Dc@;5cn^|IjN5S* z&64#k*Q%2taLiex8xAU~$7!q<5gAegr|3H#)8uVKu9a>jw-0eB)yFT4CvD8x)Y}4q zKj_V9XQ8yfPD`v4B^jfRTF9LPHP(t7tm&V5PCa8#3!Sn=H_sENvbzq*3fj@o%x|#` z>itjF>_3K#stxDU?&q#q5_9jJPod&hC&7RLVHya?modhXuT|FUfR2x@V`Wl36YG_S zW#@53K_vxi*k7Opg$x)!!_T21#Th;E^w{>Xn@-nAUJR?TI<>Ut8f*r@o-PKUI5V1M zx)%c2M15ITTNn7}%*Ezn=7+6*u8X(kl24fc-QetQ zR4U@9a7iLL%{j57hwN}kQ+x9{fF#Q+5q`*ciGnz9B+%t0osL4+E{ScjZ%3ju_b{P$ z@FG_XlEUcfn8AEo&TLwbcKo!k>_+9vadq$~S)oAUD`NND0tV0@KtMV{B6GrzH<;cN zeQm;4OC^2v#lDWlN4zPjHs8WWd~r+R#KeD(^7byvck9c*%8kc9UouaIsFSG@H-6O} z(OH**yIIiF*Mra=X}QyJ_4cspePjj2kl91?J9GI$;tI`HT$4#=hs)=7cr+LQ4=WUijgNlFT@{ z_nzk;?9%s4A~Fku7_;KDWL`~+L2-WE^wjrOKs=KyemqZ5^lO!`TV$GI9-^& z>iPDf2a^9<#KULaunNC(x~b*wQP5~YX!U2axN6?lJ?D@` z3CK)Ji%UnzM8^*O4HaR)mlLEZ6x-CnC%zQ|-!LBxRt2+F;xl$6&~9AF_HJLFbKoRB zn&L2)h`fp1L8p?&DttD2VDE>%Qv6uiXAamt6gN(i7U zL4Xk<&?Tr8Li+YWh7>_%%2V?Ze&D|7V~(%t@>Z971qM~Sh2Rt(jj=N>2i{*#-drF0 z(UGU#Zg1w6@5W{#s7A3ZYPdOU1GzCN3fp`DRKHT`)iJBOjTW>K8O7FJky+U%_4Tw7 zKX@ltX9J#QcP?L_oR4i>C|bMNWb4gPbLAsNz1Y!YiKaOJtcjS|u6^wz!En4`m-V6{ z`>D{3VmMPh12QxcN7BzSa^(#QJ*fd}D?%bf5Fi2lZ$L6O_Ox%052 z%?Y5KHMaG*Z(|j+pvyW(>hB3fCbN=o2sa6rwl=tQ;o|&*h%8N2d&8r;oxNK^Jg70! zq+-%LQ@oMfN>4lh1FkUW z@(fRVANHu?j32Kopp;5iiqW4^%KDbO_Qz3M#`uy|M?jc0@-NWsKm3Z$deNN~mCEvHeACY22S zrCyCQ(^)ugPKTR&usMDivW~Virf07}p)wmjaoom7oH>9NAX*acekm{^K0*vpF)NGc z_r--e*{_K>0dD2CO0Mfq>dBz8W36J>(r+bbrIGzYL~HwiN|KWVzvjwZE+YfI>|F>; zWq#Rv)sXz~1ub||>D$#ESoj4R#1FU~@d5{px$E#u1dcb2c-B;MLiHdCo{{d;1Moa` znWc97{1udGJak2g!SKQQk$gK}%-3(je8(H2)*TL5klJg}t2~I?89Spyr&|x4Z0Mrm z^wJGw4Q0KyTReYRkIJgY%k53?4jy)WEJ0=6XnXq+qhvr6V9y|)%e(0oKp^w^X~L>2gF8rl^*q)W;A|r zB-S|-u8^Iu<6hfdBnUjP?DzA6vFd$NtSBjrQRX!J5AqKj;HLy$efj%i$;*#v%^U#j_6K^ytKc9>J$OG~(84JN`zN=hji9l*Or` zdO7&epSMmPWcdouzGVddX0XHSi1*j*Nhk^LZq$5R^EW2SOq1`ezi54-)P|5+Y8pjw zGnqODqoX_0KP7TU)`X*jPD1Cbi>QoRKTL=#>}Lz9q8iK*+{7y?y(x?g3icHcItM&N zFN#0=br!I&VthAxyJ3lbw8bU+a%ut?Ur_}>ZEby7?$b|YyL%ft`l)Ij3}5@9PF203 zT`TEiZck$<(1^@s*!8^lnS|nOejsUs?h(Ok-k;!xW(Avl6o9{TdkcG|)aJ5SAu7tU zx62OuZ7fEr6`D4TSu)3wHJDQ(uSn8tDw)1psET_q7&{DUM%zIYR&~AWF`g5+Hxa=o`2=_xn zs;{`lyvViHvc%vQ7>j&1 zDD6=AAV2+u9EgGdFN0r}aC?_~(w%FR*cT=1lOF6TxR`JhYTc{apF`RsTT>f0rK`-DpM`arNXpQx87@cIve$F2o_mB%=XWpsch~yo6Si8lSBXA-wdUCg z8i3@T_H#s_TLypx1?_!5O2QBbJJ?8Yyel+`UV;whUCUIW>BWNL_zn@ODpCc|fFAPw zfLdLvpqH)zqgD33t3vqMHd#SP%xF7W44-d?rAEv56Yi$^S-zWSD87ehr5f<1EHzi0 z&1xB%T9HEVW;*ai@uiQmbl>@W`PXxqTikCqYvDn~1&Z+BsmSS6yx}&t!?r)4ov4VM zEsC|T*5&!Pw~H_=dm(1)lP25dl!4|4CFRhQir$!NJHf5ot2ca};tpHZi#JKGclb7v zb9f&-%72ENf-}oI3t@&C3&P46b^^^GQGN@&wy zOXLtgR!iBGw@J*z`ikCTxJ*$eAz)F&WoHf@`JIno8EbM7$UC1=lY1md(^eE~V?eDvEo2KXb=~;8cDr3t& zE>Xr#E zHxWRaemk_!YW49g3W~T(vi1Jw{S26>2Dfkikh;nCdrx87ewv|!5*^uN4s+4&t7)$p zHBjvudAt?Kl_IPy&uXYoRhk_XCT-)IK9OI(sxKY1y(F~5O|;q>@F=-STdA9A*I~e=@96T&iVgeE{cB$yjOok(FMNcv0ErJtSX{_>|y1;&~fqyS&J- z$dPZ+q8$D*&*Lx5BQ zP#HdH4Z+UUJ=al6qU&i4Z*v^`7`}9CLS6!HwS*?jSM_95{HY49J>^&mOY?kk3+p#U z|0|7ck~UrA^tX+mBq#zLLZpc~5*8a0{9Z^*w4=dqH&k8!XfO9qCFXfek{_#}&AM@OC=Hx4n%q6T z7;%KoM2w4B9XQ7?`?1j`2)LUgE+@jy;(Mi%p3Vl&Xz=%O6n$M0WM0+3Fz8T!WxDZadICP!}Trv`Y7#$h-1|(cO%a+Jxp;=Ffe_4*tN((GKE5Pq1n7~;O zREXW*aOSqfWsL zi6c;PM9*b54Eo)Gs`<*ggc4Q^ap$}4PfAW5o85e2Sv_zVV%R8u#ao2%&#Nahvz>Kz zywiug4~h7k--7K$5cmlvuZtC5wp}7^N zf4KW1U5JcF=Wz{Lnz0xhNh0AoiiN-YrvZ1g1)rgl_ms_J&Y~M|L$CZDj8bh)*}LdN z`ByYCEQ*Amqsc(0Cj<5aFwQ%7Gls zEvz|wk69LWuC`h+R~}z@dba`zYA0|eqY{Ub$z^#>C2i)I4~A>DWyGG&C5=(&Fh?Gk zEY&aPTUt%q*P5%WkpUws$Fj_dyo!wDB_%T*?^c{ffB7_4T!EGirN9fjb`m=q$LGvm z`Ay7kBES_O1Skya58awQbxWnxdW+^OlNnb!VoOkX3n64@h1KFFo9iC)A-?$weB%|#rY8Whivr$WF%?bnr6yngjk zQMZ=XsTFu|Hfy4(k4JV-nWH3Kv*gVxCQ{Z`!YKQUVv(D$UbBU1)>b>mtvaUG&aLK@ zjMyFInR5N|mf6;PPniRNDl2gDZNYd{`1~pOtWgx=#@*A!)TEHvQFvqFx`Cbf? zz`OXFZ)HvW%1`n(8V2$V-uqjLXs20mK-a{xb=-HirZid4v?Y<&lZ8pFvU)a<^)5YO zkhgpP!XJ;i5}eM0di1G_o(Kel2uA3hh)6ws`)lj`g0C7e=f*2ud#6vS6!osG$)$&G zUsyqHa8@Yx-0YmXG%p@7I;?InOx?a<<>M-L+zvgwA}vYb!!YJ#KM1bvz9PA{4_q#} z$%awgg)lSBM2;{8I(D$JWuOcJl5|BrwYy=ozp#fAw3qzV>a)&OX26#l%oZe4VQ(<~^#VqE@b~1_K2p`jt~N z0rPQcT$7DI&ErstxZ;}HN?0pG5RbBUgq(M?rk;)L6 z;~MTYWym~a9x@Ntb#ZgKx`Qc^XrLqwBBiLvkSKErAw`meB2%VJnak|I&%Km9z3=n( zd!PUB_w>H`bUOF!z1P}nul-$X@3YQ1dz-}xiWjoBGP);=aW%$PziP}j*qxs(Ve4dy``_G^=hl`bD1Iry+7=eNJ6-`)>jP~{O-l;bBY1&1Si=Z>H1UeX^^V*yu-pe<1$zp==lJh>uM5%Kmxy_Eysbw1VnYYHA*q zBHb&Fr`;4C*+L~8CVW286kduM;&MuM<#d=68t(4=Ad?sxs~T%zR_@^a$^Fn1Tu^sv za~19so!@F*s>Fbf;+ABc?&zFVa~D#wVUiQK?F6)P^HyXh;582EoAnPTi)r;H3>k8C zGBALT_*bmpZn)eP5;}gsk*oVbsy}DEuJ;vJn5W*w{H(h*vwfGD&)YQgPZaNErQr}g zw_Rgy&*=!Wt!t!bANwn|t7YyVZ7k%^)S{Vuv*J+0XB)=kE&N{$`%Q0bVHl_Cz9zJW zScW+8q$)gWHX)-xE+Fn|p!{q8mv3&IVjUyGlFKpW^(kXl9)NY)n-l#W(M^3cdUTsd0G)v)hiS$z6 zwnOsfJ%6h=ue-K|z1eJ=;-qVRy*5T<;y5y6$Sj#~JIMrX8^RNK>%Pr_Fx`aFxw>Te z*ZHe;9M9lG*WamFY28I^PI6Np-?h3dg~v?EY~8t3b{g%}gbVj>a2^xxM?A)8ns~IV zq&J%i=1l6XR+#09iSP1R7yt5goFuG$eYa(**gBRxkpkAcXJ+bMrmh*SSG%P+;%Ky^ zGJxmH_FJXZarYzjccz4@rM!)wKYCr&|FIzZ_RUj4!ts8E6>0cslP8Q0gpp8S1N&~y z>E)+zo%ZG-cog@4%({9+E7SfH?f9w-hTZF5dI?oMGkO<}iq6^rUv*`r&Jz*oWAg|* zDbJ|N`(>JEax@FlO*q@>6F2m_*1MH3MAU`tqC2Ow@3zmwglO}VS?6PeXY=~kvReo0 zNfzLPFES4m$ns8guB9IRiNXcs|D#2T+w()FrlPc57wz1Tqm)yp&uL^GV#Tu1RYhKA~rlrxq=trN9 z+Zkh5cp6#uOof&CqLQ7a!8=<=KQFB0I3IuGhyq87V%z=DAt^)9zcm?Jv^tI;)74 zep{)j_kl6#M(A)tTGqDoEzFKlPsVpw>=eJGLH(fOLZsP@EH0+YNuK>xQNlzjWoWWT5Lc;oTXLNj zlL>RmItJXXM3c{R|K0mO_`VwZ5=EU?rK3G`&~J^s*Q!v}CT6wpy0v0uwdc6cZ&_%@ zP1m)Ld7X0JW0Djf+-v1(1~WR(c?-+a#hxeordGFexzcU7_8C2Y^XT3}?pCG)VZJx^ zHte(ivSu=pPjdEt{^1<+K~3&6I!EY}%ATYi-%W2WBdB?4Utx#YrNg&eb<*>M#p-KYtnv=$zw71tqE=?EL%C#4I_-!HEL(nIIr8e6Taq3 zMh(i=ja{1MgML6g!&5gB!EKw?CmDv?Piee-=?@-tJZ?|Ql-lJv(#&%&^E8SF}}pxC-#jpR=cL?UV>Q>?{6}!h8H0ga!o$a^jnHz1rIo_h`V`_IL-u|+Z6Mf$5caKY)t7^PpU;CFWjsGk)J-XL@-*Xri=n__X5CIWlQ zbGjbC=s9!ScZBXx$F5i>*N!{5_7v*kY_iRjkW@dHQQf`mFzM!~PL^5q z>t=O*-8{*j46Z_`Cl~EBUHfA8Ua+(;Y<6+F$NyGQXn5kjvZcc#r$M*Z??`lO;%>iJ z`oz1JLwSMq5uePL<9QuYlaH_D)E9KHg2$A%oNja^7!SH+KU{sr)m}DwOnEA~Nw8>x z8MP(bn);MWLtP*8rzT?!HQ%(&ii?^YDLvI9n+YR*?m57wz%gpHU0UJz3c48T(zTVv z8oVNRO!rL(C7v;iX(HA{q}$X`%m9Z_Oxwa=H^Kg;5RUC$g{W>27;Mr(s z_Hk_4hfE1X?U9tDVYxix&83hrU^~oR89}W#cp{B?^BNk=+~zfeh;8Gt+eV+5++*=LE-7{}z<3)UQy1{)G)h!kV!Y0G@ZCSs z<$u2{Z=b!z>lpWkMXFP`S8feYnKs3x-B#p~uQ%2T;|t_3VtlJqS!Wa!=#tY`M^Z63 zh@4Bm)yaKc+{lP3{PEon;i{o@`m>itIXG58{kmD4S7^!%`CPO7@{52B&4k_8^)?0S zjkBqm*snYBQr=zaL+|aqx1MLL*b78vb-QUb=<@L;2un$%wD1=p%FjOb-WUFW{|;ty zY(<__gAX|+%^u{<*mpj6BZ!?Y7IPc-8##ZD_%x}hyo1TFYW}_G%R6*Y zMIE#Gk(uzk&yQNQ`5S3ZYmB1@P)4rZc3NpPS-RGT+g|X!ad~$3W-~J9h`3AvHet=E z-fVI_X6qQ{Oz$@ST28l zaoQ&(TsfiXTK*~p@2kfk{b&&)2)V)MQ|W?gp6+~{_Srt9(!fUIrEF8hC~b?-CHos9 z#&3nLaxtt3&|h&pC;PPNkoUc^p~R><>g>vPFX1oehMLW9RYsQ!c^V6 zC$(?mLBZ0f%> z?jginRq~D?&$219#J7b&HZsMVI1cd05oY3e0g@BF-__2*lHf$|R0hL3VeE_sX0 zd1W>CBCt%=Eykdlw$tv=(&fQ6zu>d4n>DE3 zPw#qh&%TH}JDNT4?bys%nm3JE5f%@g9p9__dPF&yJ>^Aa9Lt4JHW>pAYx#R=zGPUQaITGRtRe4)K09IQmZ)Y1}NHh()GY z5OSGuj7NfYmkdia$C-x4$gT_QJRETKK|)gFjz*2FE3`KaYG^|%cDBDwwRSy=XZG$l z?%hJo(|Y!!eRN!(PYJvGSYG7y>c9bXWoE$OqcxXd#PUTnJtebJrMp9Gns#|GBj?#9;=M${HCnE zgpP_}`bUkqXD7XV-_JC8(e0r@8mvA2y1naVx1?HPio#*>JO|hKxnp2CWK{itL9}Oo zP}EH=sWx7R^Ku1xO)8c^-9w8j9$uRQuAYtfbLgw zH0e!35AGGkt!Fx(#wWL(+dSVjq~>f*#fDR^4Ii)j35ZJBxwP5`a~-h#(ht{Yu$wQN z)ay^k&|9Czm(!T;@R>T>dqi(yr)#%!iOVDW>yAj|R!xPyzBv=G1|n z(IJ*9rxs?}5s|s^+{rNJriZSZucZa$t8HRBmc|#P+H>t%+XJQpI5+=27h)tNiw-q% z^;Hyf34Lt#n=Tu?s5-5CSA1@8sAbcV=1uJJ#kE@P(rZhg+W6@up-yJ3B=IE6Mb*J; zeO~Ea#pmmyQ#emvE+{{#&a!76(!eL#&$IvaiYESz7Lm-t#*L*u{*~!Mr;mn4M3*tX zji^jspEc1vQMGDm4I1MHg-^uUQ(OF9lG0Q@V_r3}$l@ZnU5yHcC#>6(*k7;ZU#&l1K6t;pmpFAI5DRKW+7HG{jbfR6c!eI*4<&5bPIjohj?o8%lVq zw}NW*iq78A@josALjKGR`i9POVNniUOR)Nh6Ii(v2{T7yu{clbg$!utJ`Qp6TCyDC z{{EyV(*E_{fmf^$V;+{nwMLMyiXv(MqwNNy-12Iofp1P;Eq{ED;$%n<43L|JKd z35!Kmi)ZVl-^?XRyb)iqausTo^6|Ktt2;R^MO{8`5xe5Drm&!)#$An<`h3DVN_^r+ z1==}pY^b3YUu8{{7T%KYC~_%2Qovx#73!_{fKHvYci;gm80}~H9C5l4y22bLj=~j; zcKU{YR2x|V3oVA$c|j8h9PsZKZ`Dbwm6RPOzAEjLmsIT?7lkiw_ zEe4k#H%XjvwrJks4Ai$Q_qgK=&!cLzsV*te{26+z{R z7$O!;Zspg?$<0;762DJ{_(SqyF_0Q$u)xsdIK70x%B4sWmdGiut*>fpV5@8-E(@a+ z`<|SV`aM^&RNo0eDYZmJi%iH>FG>G1)d7Hf)twtbm<$hL6wVdqg>(mc6Zu|mptOuK z9*rd8@WwbCR-OVHO)Qo~AmX7^4syGe7h9squUTjn@OiMjn23n9kchaDsHCx|qzph6 z94;s#DkCBy3tLul84n$t1IE$&U*WN&PhmijMoSz301&tKUIIy(Qn8(dvsKSDl% zXo&u1WIyac0(m*H#l2TS@o#npK^3T3M@L2lhay3?qNyTJB4He4#1WEeDk9=yqHslN zQBf6DDQQU+H8F&mw6e4cTun-m+&$mZeXm@Qr|Cu@BHd8vMV=05Bm(J(78MeMqtQZe zl!Ta&y#sIn_Gn25QF{k8%H9#!1Vx@Dw142Mg2sczz8%!?I9D>d!5+5+G}K5r&c#+P zHFl_xWHrfPmI<`bNYQ`X$Uo416XqLRhac-seHq5H;mQ2|RD`PH<^{$h!3f6ajW z$ddFwvw6%nd;Kx!mK6A-4_J~Z18H4;5j(Q5KV&Vm>#sBvV}0OG7Y3Cd;++U{clrmm zqJnY#=d=`C0maa61TZ3iA?aJsfDT_6MP1$1|2Z2_|6<=Pm>7^+Mpqw9`Uvu(CR7<@SVrhW z-={8SU@`L01d;-7aPh5LP-01;g}MHpmZRJY{An@r1og+ID5>8I{8a@%Y~-Q_j69J< zlrwp$#-G%|zlenel>mUN%Q)e2BzH*N^5hE991ds>Hxe{d5IBG{=Wr-a1al=KS@NZ& zmn#_3@i&HKUqqQVED(`X{vi?h_5cZ{hkxj}1zG=5=Toww$|>`=pVGiLVzT7m3nHL* zvMxZsx}g@@yd?Pt@-O4z3iiy9hi)Agh{@M~PDX@$x4xmCvZ|5M0wp==&nZy=_444Z zll-?pN>2N8Qdi1-?{ezJl?;U$`7B|4>*+8gk+P8&rsj{Cl{Nf_D0W{uZ&kfR{gS?|&mO5WfyE{ykVM zqyArZ7tmHjOF{YX`HLS7(qEm)LWln2vFXRo=tn%stf1NCkH&Ti!IFE1#X<0A;|CyS z^5eNM$N={a;@{7NL81(Z@9@j#1PWr@Za&c|E_qP zI|fC>aiDNm47iJ+%;*-4fnt`F)c>N0oRpA=n2-peez(RWd*B^^T1){=16xA@XOV)d=WANec^;{1#E+#v9~7=aR& zT$sWwCVk@%;ee6~1)wPLC+WqA(m#nmDT9Fd|84x~cWCL`%o%`fX|U*bXz6!o2|~pG z^1b4+JJo;hR&jBF0*{iRiRqs|==y36lpmBx(2`)HE)IiVxW!zO`kg2IA&dW;VA3*O z{!$^vKLo=5W=K#Y5x_e{zp=0k?%yscw)2-n6(#@D_z@8CuYK?UHZXQ~#(=%df0-!r zuk08k7KC36>i^CB0+`b};D1Bmn;%&I>o4>R@V~cTP$Rh(pZX1j1P3jU@g`B&H56Mx2pTvXs!rM!W-TBjaKtK<+pudIs|D*7rgF`tZe=$Iai+$fAKM4r< zvi|&OKuAh_U;j@6LUiFJIjIFa{mn)T9h?jD*KrPTv46`sAeKStr?DWl>~7{Ku^_$- zi+?jL7~)7yXbv6liuSLA2(e}J@}Kk$e+d2jG$j7O;U_V%ya9hVOpxrMXYJ&n_!kI6 zF4yKS2Zv=2=I@3E$V2=(XjrDq-(dJlUxHS~5W&mg;JyC;8bmA)4*#zY7RvzrH}ei! zq+e*HSfG1&i>fnxcj<2M+-1A`Wl{4@f!{Q3=Id+cp?YN8AtN^b-cs!!T&cP$SY|4 zHLpEsAsv1p-|&k=VYzGjo83_8fR}ci(HtL+#&Teb@1l{UU&lu*zg7Ije8k@z7^<#l zJd*S)If_4oiGLCh%RA(M{T^ev0Dm)Ap@c<~gut2^iz^Wp$zs z1%wE&S_Odv_zD7t1Bt_k365oVJ%2NAp$t~V__ZPu|1KVu^~X;S zAIs?fqtHP16wXLbBnE^2g$KWB4hbI?Qdi(M}{K~tX#t3iUbSy{X&mI|6N@Cf&Moz zmH49_utL8c4k;NBK&c9G_bGg0$WXNJU`EOJ#LB#IGWjHzXq{EwPJk)IeY zeE{$qT5gML`Yy4=Z$H1EQT+j$KRy2aCxc60QP)^cR~78{h{JM#Mc}+Sq&bxTCvP*6 zZ~Tn(^^6yY|HW-&e$~6a@0afQUxpL{?8&%vDVe|7OHe<=6bEI?v!4t({zerM`7ijo zh4Jp+b5wsVswk_if4>dcR~NnDBYvG7PL^zH_~UiomlXJW?UwlK?#&_w?en~_H;WRI zfL6n~5n(Etx4e5;$lH0!WPz7M z0r}#fE=X$Vi~x0!52&uC8UmVvG)&PXCbXd1{P4(fu=2%upEC`*O`^g~Pnbc+Z$#Niy02%rcN1o=Qf zSP_N#9kfndOo~HVib4ss2qIi0CNluU5Cd{LP_s1Da=<_e)JB#L&`U`GjQ~1GBCsRJ zHw=J&CTmXuXavxSi-VQ{LCEw{pmjjY2uO0k7s7xPNQ3g=KyWBc9PCIg4#@;*6x1OB z8Ux`3x)uZ1a0oAeUQ!Zh24E5FKLTU|4TXCD2ZuDsCnEyTLx@;BAT%sJz!o3h&;TK3 z$pOhFfdB`fS$aV2mH_gSbqMwT4-P5Nez-KGOVEZT$08aQ&*Z#CG%P7cP6zc<@*yOB zJKzAF5JJIu>E`gzKJY*CQ#xn|49Rtgo09lbHzoNKZc6H}a#IUnhAf40z$GE90UQ9o zArAT&vN$Qw|8OaQ1qpyR=nPo`WMOb%b)Zk+WXk|LCtDn_Yzbg>P#%O?;C>|}L0^gh z9D}lwK;L2jqvE2JgUlDI50s(!DPS|elPt>fXJ>JMS?HknDZq&G14u3jY+phQpa%4! z1h67VDhT0F3&{RQ8uG@FwSja5Xc_RBQozqhLI?ysEg=S40-Yf%AbVnfR7pq+pd6$n z$XkQfAply%fxm#HhRz6b9>vngNCH|Rw{k%{kVim3mI-MI@PZD=iXm-7nkH)*@^w&o zh?eXLfG>j34|)LVAxSX0AV6E-(6t2c6e6I0aqt_Qp>`ld7yT6YAtnL3510=exCtpp z0ifaJ1DL3&DDc)$>%>7V(opSy0BRBWOeO~72~-R4Jrw@~*@rkN3(kOn6!6?|X&@b- zmx62x&_EJFn)!+W$WMV*N=N|hfpl?5YvdLHddTxa^+{9slKm9K2k>6RqB!sm;tOdA zz#H;0VvzPh88HZ(Q11bHDF|a=xRQeSL;eZs{U03Ckbi*?0hF=yfY7k?kdOkt4;ptt zuP#3z9gzJLKm>$}#RF;|Bp(85>vG?+a4iM$;n2uOwi}?Uh4UgB7SH6-4zf9j-yaUp zk>q+nK2&DmfDi%sY;a!UrvQw<^HYn{CosQpQv_RGf4x@0I69*7XlN^5OHol6(HW0M z!+g+q9E|9RgL%MkZfF<=hK1o^t}qnL4W!AIVC4{~)2UQ>~P0w3g(2UQqYSyls$adIYtIffVvn#~!ZiG2T_5DT)Q zy---BE9?*nM?^c=V_|M2S9|aY7skmA=77UOGfHrU+AlDZ^A?s-Q>IVHz+^m=ilfFsNa<_vIg5at4~;RJc*@n1 znur*z0~%&e0?U697f*+*=%G#{_k%sS6@WQnao|3jk_l z{!fkZX{ zJO%AvuPBbel>`|P5`f6vdBISi7La+Oz`O~VBjjhkQsICC99)smCo_<3e3fuPcsIx@ z@Q^_OB4;Glky7bGBH^oc8zNqC^5`YRpz9V8ilLOjP%2n(AY>cFd@X|}I>W&BX^_F=D8+G<;sM03d07gHii(i4z#Iw8te}aqH91!e>59R6^MPmtKjj*OMMHBS@{}BkJwUs;lYDdXq&;S8AB z!VrlNkz6vOLN^2pBdQt(3mF4w5D~3{hQb=Kh3#!c#YIHr-PbTy<=U;tU);Q)jnZp|Y$=gTnnxv9PSxsBBU-CSA^XK|X54M@HNx$pO zY*nz!mBq^0vnapOS-DJ*hM4K(fWXgAbAhl01@q%xc?{ zJ}1k(Ahie{m%0DRfVYm3l$!bA4qe#kT&5#;2Toa}oxQ`|cg!OFsS|DG_Uqj1`_44f zS)lydyx!knGjn-^y337yQezZWGuXOitnuK@mfF#ts#?v0r)KY91g$CVr{L(iIJQ5M zd-nd>+qO^mdoB;{pX$Dx8}IKI)z@`W@wGz13&iYbg;fnK{ls~{VA6%L{VA7j+1k6B z6j;HyBl_Yx@BOl(P`%6+E`vm>$YCq+IfR`p) zKX>W+(7!F)KGzcqoqPLYu6br;5oR+knCHJwtlQ(6h88>Rkk#}~!?E#NsDp=<$EFGg zrssPunD2gY=$$pz!edMHW$Tg%bp4@O{Fl8v1dXna`<7BXgd8zl*xrzvEk%R<_eZ6t zSZB`qtto&m8(z{Bxa{3bzJ|`J11Up$C%8SYA;&94PSqYVcL|t0*~^TQOZDD4y8c9W zv8-90*~y~xr!wnnVJJDLl(IfyG2?Z!3)sskT)-Ic9{9gIMBvQL}n6ck#7 zR)$Hdmu`0vlThelsXVx6mb%{gmTl|y(6I!Wtf^I1I6sG-(d;e=3IA(Oo$S%9Os$*=m|O94m$ww2u=j)wsZVjugwL(@|9a_iT^&HM zR@brLU-JGlyG=!$fvPm8*E4O}BW9+O_J@QLJK7?~KyI4->mwNUh?*&-ElYTETyuFR(Ti5$I#(D#LcH_)jL-tF(qw8Xfb-R1| zFugvx9;19SjWdFUD~{=Z6#Kz8;gDnhbJr>gM~HtPR#sl>YEz6b`o^Z)ot9;A zE^OYkebtVc_yU&gaN-(1|#l5g3;)1O`U_~*Nwj9=XLvKfAV}hc=a%CkUU2a&8^V=dR}E0 zoenWSGC%lexMat!4qvGURv#yNxWcK61E*HMj=$k%?*8RybLL1<@UFEyCHJ!7bs~F6 zV?mlV_!kmi5YbKOD}53cLRr42D?bQiUAg))=IA@5Sf2J-HY;ah&K@#3=pv6)vx4bKryvmJ`;A-VBH%kTdKpf+XIRV54Em; zMSYb!XT{Yu!i*VIcWEvMxD;+Z)<+{5u!AQ1=!RBd_mejm-mcq5J3__WO7nPy#|lKD z&kdRh8V8m%YQ8n*8?e;;T+de41$YGwt?;Ls+}T=yD5U1tF~R7t)sEU+M`TB&`ZJ4G zTw#6TCOhsz*uXv(JF1YQ#)ZsxXxb77S0)^_DqR0!lbvutw4J;@o$tzis?Wi%R9>y$ z$t6WKq(XPxjC1#TB=y?;yC3&P-TvIY$FCK~9mKbrW3^axjwb)`IYh_VD*fy5>z+qG z)2bZXrkH7+M}@WBPf0$=GVCoAin$U6CWJssU?+Wi|Ew|_Pi z)4i`cV&vsJabhTIh@ERnUHdfOS?AOJTXUsGe6E+s`+p*&REcB!duV!iU(dc~zAy65 z;@t-Cl=pi)pY89c=yd5Y8Ic>ob*guEcbIl~cItI12;3Ml4dTBTLKU(r1YUZ5i`sD$ zgIg132B~lFyiI(YEOkrjZcdWdZEeE?0(*_wOz!qZ$SBY5IjH$&@{Xm!y=k6tp^&p@ zn;DMCOxcQV5{-`(2vtPA*;CX1#+P}oOjdf!9Y2LJ+v<76ojVeO5A&wVHp6UoT;Egx z_w)Bf%{-r|n}}YyE@Qjvd5<$55gy003>$9@Xn(xK5XEp!WKXO_o7a2WrC_UJYs|kexMwg8`SsUeH&bm&~N^U$if@DA*sLhB5}i|Q+l;k6{!XTVs|s# z8Tnl-8hWg~CJi@9k6yiUo$k@`46BjZxRoqnmsrA7Pr`VEM}>o>PW6?YIuREC_`}NL ztI7Rr-S_3+?SD~vHutf3{AFG32p&^y?3L7ve(8=JzK333hnv_;YGOkOp0}DwP(>_2h)(yf5AgEw;f zHP|A&`HGd36V79Ax3j-WOz{agxq4*OT#uXnQ{3r?cj8X@R!tkI2Nxc`K5~EcM&FXe zi|_4{T8CsVw1mV4mKu-WxUf1|iZSMV__eqWB2lz9_#VRP_MNvIrBU3o%DhM3YC3HR zw^VR>9F!W70n3lBPI-^6YPh&7+TJSi(!Dqr#QfRAx&?OkAG`5M^SCq@VCscU2%|}d z2Og!KI9^cSqxJakg!^o$dRQI3B%e96trtD({JFthAt!IMm5-eB`-Hi@#u8(_DK>VX z`M!tZm#m=!pFG#ML|GVHXJZ=WG1DDSFTQym#dWd1lzwmBKuY6>80!pT+c9q~;o$wu zq3D;MPFg2|bEof#t7ezf^w#iQp5ba{a6>@P(e$D)2ec#`(}>UT31&k`Z6o6eahZ20rcTYuPeXJ$DyA zM7=eGG4ErZ3tjf?%0}ND7ET`rI>ovool(D`sEj@}NU)V|S1#YDJvr-!B~5e*F*UB~4U+Zu^g|go&h#tIalgCt zpk+?E6whQa9j!$(_Ih44JNna+cJ|m&FCpC#i$|3YzjzNe%-26ulxt3ZPu)9jwT~{} z|Kcm=?VnbS&eZnWGVJeG*wwtT$M^XK)0>&=D+*>cXqopPej3DN^TPq^WQ+v2(=w6wVW>|T{?;&p^?|4zSyW~IoGb4h=U2= zyy+(+ymi2CpAhw`5`*+TjOGrPSPf|oC9dbQh;MEE%)eHEQDPPKeXe6nf_J#3jF_@R z8u+$sOEIcK>CQaPEjrus!guogBf?-V@0a(7=SJs6cgC}eyxUezb-X|^q`y!}md?$% z#d-dY%2mFY&O%qVyz~QIgOAb5G&a$zTZ^fNv~N7!9VaAdR~&JaSMGH1KE3S;;%ca_ zoOI`5WgaSpTgRY6FO*%SQ7_icAPv!g)d@+nb~8xCu2dZN05OEx*3*>QjWnv*4Q zR7vC4xx$Y6aBZ?Iy!`Oe+nrwKr{2&w?Y;Ka`wb)K+pdhfTlYn*6FR#qqem~P->#a^ zIa8Wwo0_h6qQ$o^VUIRn2xjI(^qXVF5!=f09CEt7BpdE#_q+FmuxelU5Twq54A?uK zu|wM{V(_35?*vEHxQonjrsKu3NqO8QR z%ZfG!d2bPwym@Qu=q?;CYM9_>dAPRgJzwKs0~XcZi{XBOy4xT(J=G9Btx4E4xFdN= zI`|h^+c|V(y!Gi@HucgW-cb7~|a&LJ<7l=J#qo|`}b0*C0Ep^#*l|4~86AGKf z%Pr5`RW(Lw6uy>`e6!t&e;q71XO3$*;x6{{79V;SCqh4{<2tC>3Ypto- zNpCawRvH)4?zI0}QodH;s_B8grmoRva#J*2#X(s-I>E0T_1a~IWtij7hUsp3UGSE` zVX`(+_sy1JlU1dewW^z_l#-FFy6-ilw^%-Q>#IHN=>oGB#+sEd_)oiZq+zQcbgCnG@yErFODBwuvJxZO+6+W#cfGbQQm0<&rMz>; z5UDlSZWrtpUp(AOE3WWOJ>y%tg3c1DtX}ud)OEXJWi2+_9K_+G?!9dGx5x-dMVucirKeU;2%bANC9F-%p3|?tD$y%5ur%5%ygqOfkqmTg5n}Xy^Uxqplkt z2Qr@27D=cVi*i28Xq_gWmio*s#hu5Ri(crX8xQ@SeINE!aQK}&_EC|R%28JGl$Kfk zTGN~OO?(E@Yqib~h034PDxB5ZnWE0$bs>C}+HU_fB*uMQSJKbkV7bS*`o`2g9;!>y z&(1x1cH^WJTDw@tPJi0tBAcT_(5&FN+NX^ivRkMcrCz0rbZ*So;L0yyN?3abb*P-q z@zdu` z=+>R9K7l+Ck;)9~;ja#wF-*y2b1~Cbrm}AIiH!?f^S~tE;dK0gSoQ*!Gs(nd7$YG|p_YJtL>aE;*+mPpLmEo$6lL^i~ z=Sn_GS(v;N#<{G$PiXGR)(y{)J?X9AgUYU}sKQ)0jM2MdFB};1!XHbcwt(_+HvoU4>hM5?x{tQMy?ALGmsBXm?w_@ycwZ|O^%h84~` z1>ZTLKxn!BQ69H7ByI-(zJqP<@P{|+-qMhKij9jiE@R(4e;p?=d2>`)Fu%q)JbYc; z>GNEj!fl)F$u;E92gbN(|JazF6A&G6RU?F{RcMcxzWD9z7IuBYTv4|JuEDP zX~Ma-xTUm=T~~99o#^{p;r8y_^6^|&?b&W!)gw`e$bfe>erXI{Y;AQDUJr97BtDPT z)wO(j^uZ1H2zJO!kFdpN4*!=thodQ=&bYDKNDSrNZw4v!?rBKJfCx`c&w#Ww%XQ%g+-jhz7nb>tD z_T4(cjKVNB%X!~9rKjmuRLt!<+xb=>c!J8iH9Ipd5wjc9_n@g%^v3PvgskDu12Th% zW9wnt(XRxkgX--BsGh{{3^>LgKppvE+Udh;iw~oxH<`{4h|`{I3Dh17YEphv;8E!2 z_Hn?5=|mgvcA;&>#A4#1JVo8WRe?`MS+sZTWa+M5Gw5ZKq5NfDr2pYID*YEMrY!Zv zB6BJQP1){Pc5_`e&23Sq!%eHs5yDpIUEQe?8Cg|y>$bo8I*cIq>svXN726vclYE=v zz9f4luZn(`AtNj8v4(vrDYEiqp8Lp|S9F`5bxNgOxx$X^YSDO_5q_pfV4OeWOYsx- z#6~WWL)&~cZEX()ZQlI$(=FW0!JvclmC}8kQel(C{pSk`p0vO)6&7rR=@p~L+UkxR z!@HjH=zp*z$jZgXnTmK_Vc40bz4=9Kn^;W{!I|6lITF5-@m2MGrygYnX&OJ}cIy1{ ziNQAR#Cmo)i>w&t?SviozKjeN@isa0+lg-KHQg3D^N4QGmY`Rk+;x)})^K_R*I5;P z+^%$W3-7R{Tj0D$T$AfAMr_olgV*WTnbTD>T-o*7Npolr$*a!bbUCAPKmV7F<#i?e zN}2qob{jSl&RX-=th;i$q5t6ItQzd$&Q(;KU!1jkb((2}BrMvP#os?LA6LR6`*K3- z9U6vp$zvVO-r~B7S;rQH)2E4zr1+&U;KvelTMpN%j3cKGjl{S4U6t z9@-|HyD_)==-N|)du)a|RdlT{TB_*NGCXZNw{6u$l$?~k$Tp50!5Z%?T}J3lrt{Wp z7Ie!pEM>RdI5^=qc({HrrSJ^L%5u@x2{Zio+W5DFXXUJ`E9$+ax27mHpImX4Z;-g< zO)YJHzWbXzi*2uDDhH+t_O!>UqD?=6O2zXiGVUe^avg)JB_lmJAf%4qb82*G~&wwitGp z?YppBYQ=5CvuN`tN(v1GoIX*iK<>5Y zQ?S^~yq{@hM{>18w4dBCbG^}Ol>J4D*fIBHJrA2(I_==rfL^9rd{(0^B#WZb7iUm8L(En*)| z?^Adr(8(NixtDoop?c{A?}WSjocBm_yv=#r@t`&n*oWjgEA3MPTLf0>PK0|4#Isx% z=(Bw5qS39zzkXw>G1HmLXBY!`ojQ)191Ud*x~EoTwol=6udA8oX(VjVf#zE8MmpHh zZ7?Kj-W|P$jm-gHdP^nurV&L25AnW~#q+u8KM zzw1=)C3?~3$dfNr_`>dlO%q#MW26z7$;3(8nu|}WYjM?$(fA$NT9f^6-|ZNcTf@}y z1=)>aJhXBft5M-J<0<>xS6^T&GGpxK7_P8L8b3P{RL!BeURgl!1Tt<_HJv2Z?7l;L zCeBNAZ9%cK{c2cL#hX_jMI(o`Lv|^bCNpvy3k2VlKlwI9dP`JdkVAiapw{Y))ltuR zYs8*TwL8RkSsff79dbUSKEqb363_U9b_ zLF;?gKX$mP(sL-dXq1zWdcUEHD6)p`U=U5$u?|w!d9!oTIkGLchSu+z%H}f+bMM1A zo{U{{`eeG}8qBsWRfZeKh3Rf=KCSH^Vi9zN+pqRn$LmeURpc#9)43e#It(KbN}TaA z&s?&G1tN@f{dCOvV)4B$TIbngGIks|I-ax1;hsJ3^>b?lBjwQQj+WKyyG}ZnpTG1< zS;&y_@asSarpuxVk(x7nJlEcO3YO^FS9$d9Wp#eaW>KP^BKNk{Cv-IIt^OI)hLs`% z0j4Lmuq&L{_nrmLBcio(z&&&=E|(kY(T%%%Q~2T*C+p6ss^ijhiYlrX%y(E}v(VGb zs2=$rXb9n}~Vs%J~9D zo0A>(?ytBt*VfkmxVk!}^MEXhdxuHJja(r~^OKgwL!ToZ6kaO8vxy054;*Z35w)3T z=vHz2ViZ+BseUp<;)kSTA6|H!>!Q2YT}9JT=Dd!><`={j=~S*F#?)O$=;qN{n|G7qv`{LEl8 z7@#1lpCK#C=vlNO>+Fe1k9G%P(R6bSY;fO&%%SOf8Kt42k7`H)e0;uNcwW{$Kx-VG zV2dab+<4jl+y!sP10**SgO&B}yJR>_pS?e{d)R%O;VWgcbEDICFVESpzmTMvfu3&8 z(J}30HXbD@zbrrA?9$8>fwP)RZ1zyfxE-?SWUrwge zMJq8q+_Nfuu!nt{)H?;4sqiMTn4)0r$HV1-s6Qi8j)9teE+p7y<8%QNa}${g)Sw<#$cW@+Q|c3|x6ay4oNlETZx%swYghkUsC8;%aQ!g&mvSPd`3# z`#ySVv-t;tM`+2GcOTgTt6iOq?-sq9g(<@~+ud2`+obX4eE`d(o!-Ogt#iJ2EW^3F z?*wn4-TJ=ivsB}q6g?TqoZ($t8$JrB_Gwj5u8VCefBqSkUYB*NfSKuOS($o55TQ+! z{aQ$wg&yvpLFP_Z0a&-*HGvm<+RH;eKfTUaUVQd(wrXkrZutacX#ci*J4YT+e|bXP z@*%o|g##X~x#{Jt{N#h@uSi=D%)^GdQ#h}lJG4jrL$R(;B+GpgUBYLdbT$`J%jixl zcT~nlxlz>z4xb*hZVw&|p~9lw?IKPzW*~U@ES$rYeXe~=>urz z$srnYq9DVqbcbQ@L?%XKDS8-p^{++8g)YsbJI170j*2N<_mZ zVV$+xx0Z$<$M80V-noXYWMcsy)Q<Z6hiaSfP1S!QozYf7{x-NtOvy zb)NSQq2}3Q_g;fLFqIy!2&8U5kYar^H!aFG@8Vc))A z7t67qCT?bpF!QxJ`Z`v3O(cT8^2w$%0?uLkZDwUJ#8e9kYj8BQl;Z9Son7NQ?4}rE zl3Zu%G3@TNz4wM`=W3Ia!;QMO+DYBL>s3vBb{%z${}9NFVp+fGftiD9?4f68o(8gX zhnm5K%sZ;gP}VK)B2l|{9K#p#pwfc{k7LihL%w-SyW@+#-O78&ojyA9w<8PA2(vn! zW>Oa3b9CkIsmS~4!Zk&zN@)zN``Gv{2Zbfpr%i0N&=xa#l_y_)jQ9BC#{CUcI@_9_ z)SPD+&~j_eborvDEB!DcNq&CiocYKoAyXP%_ky|C=3_s%3Ui~)MIB{{v2#sKg6b1z z)lM30%w3_dG4=G}wj|or&y02ovct?1l1%UQWyB`W@#yGd#OTKHk^3c&UqAJtU2sG| z53Xr^-Q-U7(3Pw0Ck1kPo4Jkm1qnzT&=;tQJJ#X6i}hOgxhv(##t%Q29BPrdmJl-f z0rY;7S^JaZTvb};%XTGfI(Z`;;Tqe1KJ1{e z(m}TqS=t-udR#D07r7q^ODJtF6grd=FK~9ysB`UhlLK)|XS-fEPfdhukrz|lG$>@C z>KLb0n*93w7gc=h*}KL~=ApX07cX{P&E*j~;Gq&7UEu;R3u7X@_;PNq$|ou7h5Yg5w6`O4nw$>ThQ9qc1+`1JR;22?M#Y1>ynu_Mnq(ZDzsu za8Jx2T5oRzlkpDMf_3=z+VO;}{O-B;jP=?g@`XrKC5?)MD+ail^)QJ^P2?|KoWAbT zv@4PM0Ia#!-G9S`&ielZTlzVGC?QeEgQTq#H2jLPY)C&;KJvlg3^Y#_(q1Y32#&J|&mgF$jcd*j{+@ z7=$m==Q0sk(rFlCPvJTvN3DmH3rkV zmg&T?6BhdM>Gzmc{R12X1UPtASxrrKRYk?h`7~4HX4VY*`iD5Fjo(4#63;>Na#C1l zVr~X+yK0I;{Y5WNyL1X0O3hd^D~(fO32_@25g3PqnX6CM2+;}=y3kjWciwZKv1Q>* zJwqtct&4fp-uV2~M$*>Yv24=a%W8f{VrZ4U1s}M4RvfeVI}~`D8}!kzXc%BKQXS8I z4QPMCYhpN;%nh8Tgpi)!pFp7;>9pAMU<|7D%Un-pr10kZ^!ZPT_X`f-pO`;D&SzHF z8phqGk@njeDWnh+pcI@JZ_BZ@^$~Q{>=YFG43rh}ayMT3V`v;qIDQMERo}H4?W$fU zvA8#KaJaj%b2Pc9N?BWzX14~4Oln0+mTLFw1z$CxO0HsoDM=KJPC?E7rpsaPL+@2! zwzBzA(E`Jq81k!k8D@$!|BXbrBPsk%pA?GL$x!fR$lx=xy6`p`+v?K^NWDNdt1}+Q zmcoMqw;*Gj&N+)tLY8v>PSIi4VBbG}OxkM!kVjc7H9MUOTaqWULnsE@+}J}fB0^Sr zrPCD*jpGPZS=YU?P>P)Am#U-m6usyOKi7s$$!zTy}qL{eYk z$O)vyp{@K(>xmqQut|foT{dyLv&@~zaB&MfW1juv6*tJTnqwdSM?n7*u;e$8_q9Zh zR3n=1HnA(~l>IDO^VN?;h{V^N2P6XkDT6n8?v1-B;4WX1#hH!{8%j)B!ab?5lFSQ< zfoZE;6(4W5ZIUQ54Eq3&+OlbOaQ)v#+Tl#cY}7I1N4Y=x@frEix$zqJ=TS3SdWo0i zWbHP<%gk^=R`3Y$AicI}MxBhHBZ>kCytSNkf*2UbspFhB!aMpcmaVyUc z6*W6Y0S6B=VKUz$F8uuiN{#?jnbl)ReXmw`M-8dg0posc7@kTYr4`mlv=20G(XgNg zB`1Gq`@y8}lST?sXB#;fA3mr$q^4^Z)a**iDx+v^%cNXN%tFAyH>alK=7aCGT!Blk z4p?vaFw@ES!OtdAgYz{$LcLSr;e0-Tzu)vQ3<$qJ}{-T zOS%8j@0bY8|9#6Yvoy1DtTMFWoUtKg+Rihp!0jS3t05kgGy-|rN9ceD2*|lkL=R1Q z(*q-c%DzPW)nMSze+0arkhi z`my=+)|Er9i|cKS0gsA;F##%yiHSvrerh=_0=lgo&j4-T4?F-p9wdC+cV-CY@@E8g zMLiIw9uL$LbIV@)eI`8_N~f<(0FV`KOsd9($pGWgYjV~&uyC2OSuSu~TtEoQI6paw z(}a&$%F}+hCIdZB#40a^28lT>UuD6CV`sQgOaz8P)daa;Ywt<4wBJ;mS;ru6Y=1b{ z99bibbC&R!c-9FLHJ5X42-ifxgU*3U!vIb)jwaQghMFOtq^hwiI4DgN>!*($cl4LW z{eA!Jyf3%M&lepL%Lu18Xe-G*;mfFgDF@phCXWa>hVbM9WJZi}GX3o_u`?Y{-iy51 z*s!=qlvKCrD?a_8uA8yd3O3V_#$T6sSSXWkZ^f;v#ZH7|DYzoc(mm${AHBUqiA$PwWf z^e0$*My7o|fHEaQSm>l3FOfZZ_6vV8E&ETGLBBf>pzMa5_BkvQ&<+FG!9pH06+Iy6 zy$O=i7rUnNx_b16NULQJ8Oa7&`7fQ|n`?BPjTN`@(47xeYVGt8H z_-?7|c#KlbOH;;L-IuHaw{fsX3lo z(0g;EWnnS*3Cv3HqU1xF-5bBkDWYu>Ei-&@gqAf|zqN7x!jB&{C*dOkf&4+ z4|v*(tr>PO!r9iyUc=r#Ah?!%;~s0!CztM}HO`lMiVr)?yWrul65c9NB!PN{DkP3q zG@*)8N=1!GHNU2xzK{Hnpm2on0}^w*_vb7ht57@zlxjOwj{i2J2; zbBn@BUnmhsH1%hlxw4&37;myFriFrSLuZw#P17|lOAC_6GMMy1Rn>b4EF(Af&%LQt z(8i~mIIk3e(FKP7oA-0Z$Z=EJQ>>LCNqc?MXDelsQ->w%CcZYaocSGA%8u`yIJI zBpO>YdgR@s{kG)T)L`2?KW;|R2lNEW@FQQQH`lr**Gpn0$Sm5a((sVtaV9ul21G8m zy*r=UDitcn?9J~F*HII+7m75EECz#PEmo>cK7#MO4DU|XwkYCQs7+=Rk|ZxVTnk?# z@;`(#dV5e%PV9y#sCZLVde{mEqlO7&ixMPdVk9FClqJ+TFmaOwY16QNVPNLRwdY<7 z5Ws=wn^c0%%XZR-0sy8F1%zUW?&LQh!R|vu?ivz;+ldD3O%%a#0<{AhZiKw7pZ$>>@B<*; z!HB4nd;|RLEzEI-lERsD{^+NsXQk_U{}n&h=-}g1*?|EshbRpA3-OF7RXJkjsH8ec zQ3}b#>-ZiX@eHC57l6h|BL7(7WkD!kA+td~vc~eI zAe9^jGe${5;6#!!mX~-|h53x$wH z;*08Zx?NQ}UDmmVai9yt=>pxEJeJ8$TObs+7J95$X`R($1Q?D``UB_ncJHr3l@xP` z#RTsKvwgbF`=wtjVm_1v2gxmy5*^1RXqB)rg6l-f9NA130;F&DW#3;Ud295sO%%DG z2<0UjOgfE}dTzq^P6gE=HWUt~e9PFeS$(4vhLdNN@pZ-H;dkb37+)l7E(OOHELWm| zdb}h|z@aEf!*>WNa9aMYibA5+&Oa+<>SN%oa1`FLe|*wTV54m*rj^+zC|BNv-9&At zyS8Cq7l+v%m`ixYA7$*eEni}V6#v{Tcx`YyhmKav)NlIwI)Hv^mY&sD@{*BfY|aw0 zzED*1l=+f(K(Lj|zP|6dlj*G&AFyOYU^NLeNqWAS&ea#yeW2~D(ANjP(-{r&CF3^j z$q+r19BpmPI>;csG`N){+;n;KcaK3i7FmOlV%|S4mRBfw+efgo-(@(7&B>0>0n7J& z2Kd7ilNki<5!C%NfRtF^ERHI>sDTB>WB)@@d6VM44+-=D0(cAsq6ZB^1+W*N3OS+@ zAGs1gC}}!jvuM=MwMQ0`Uzozm%`YS0E7KKVI#^vO&!;l-E$LnV4&E#@>?)L>jTi}c z!w}m;+*(;jJ1}40Ra+2cY5rpUWLw;VD8S)E{VSIT0-?jOrNOa@9-mE+puuInxXF^u+3QARSlY{4C(@f5Cc@H}f<>!~ zSHd#U$r!@fj~_a2;E(f%G*U;C9|+?oM>P`|1m0b#GSg@(OhX_W_eBA7(4F=@EU`)o0o9L%{x82kA&R7+EY0RI1Q49y&IEP*B!&_KX_au0NuXsD0nh_HNDcA_5@F8of1jOl2O921SWNJ- zGw!-_4eoRNmW4?v)!%08hod$B5SvAE{YyM?FI~&)vXx8YGk4vH0<|Xd~ zorc5wxAgfk@4amxf3Xd3Oy8WAySirYnJb(*ZYXYaoW(g{40#)n;-onO4j{2nB?>CE zoV`LK2P)oZY;BmTBbFnq*WvcYlDMg--quR>Y+UW9IysSmKnu>D9!+%tK3EZg$mkFP zu8H1H`2C)D&`b38G{6)T%=7 z{HWt+7-2__eH*FA+{A$%U*RIXo**$%%83HqPhD{$S|A)>Xz4k87lm7ED}Ip|k%|rg z0Imx3tb8wpSU3xBu;yk?*eyW=UvKY^MQ=}}v<&sRd2DmkFJ!$R6U+k||IL)>zcM%e zV@mX2=^XzlJpZ{SrT<2PPTx4t_?rp}{Ed(bee*z*Zi{>4hozv-ad z|LjNqO7!@T>;H!z(&BHqRe$eA|1;d`pMz26{{f7$G5%98%FMy|cV6_b zoU8vcYGR_N|9iyrH!ms*4>Hr)74Ypv`On!P&;ef|+~UD@_koPUU4RD?@W-LPyxrbd zrAQ6+M2*W=I8!K-d#$~sVvpuK*FJsPv9pUkpBy;xZ0Fw&_FPiij!qt&Ho;eLWJ5jQ zsy=<))^yp{UiM3-pWf~t-F#ZDaBWEc-e26aIMsd8 z2C!*|Pd?iCq*^{+oL9N;@20Cg$?v9Zn6hHOJazARragT)-aEVXc~na_v?7&hRGTyw zJ(M$)tyP;e7yHX`Rhx3ox>{hJOPl6PiDH*n!kYxL)Zt1ctC~_RXYbsEY1Ggb5-gD| z20tvTT8Hvkn^>Q<^et&T7h=wC)D84t0@2-VKD1u7wPm}j-q?IaH{OXXUbBRyyL(&f zb$M0i=<2$^^=Iez;w#Y|q&`QdpEwz-^({j!sZLTx2*3TP_<#CQ%U6=>l0x0x_PBe= z{e*i-EmM*10NvS|ZPk0KXOs^}pMR$=H4P~FP9PfOgh ztNX9!2`et9L}@JJ`?W5udsUjnF*wQL2Ezw3P1cMAY1Xc+2`j&)Ff)=VjPD$V*XpJ4 zm*|lC7}A6o$xwvXxxN`` zwKVB7&U=EQsoIAz`oQV$%BG%Ap@+yi+$HW9Z_xe+dbnhk>i%uDy}xl$ZKgka&Jo{m z)Ito}e>mQ<)JLAnL!3(XAu`=q?Pb_Ud7jR$YUpq{yTBm&FE09sF?p)>3er^&@8f@E zR>-&LSfOj@eMhvn{Qg_T@NUUl<+JX^eq*Q)Q>OcMeEXYMS2ha1oqA6>&-c?VN>|q`hV|E`-Ju_=IhTnnZ7oC zWqSXY%HU5x-@NV~-DA3Iv{$J2|1Tx%zoJFepIcs3{Q!QD2p^sNzrT(C_FVrzKUx2x z`2UQHCR!>fs^Shl5yWBv(}9x;I^4<4Kmq_xo<03 z%#s(N{=%qJTZqZ^i;W>n7KjWRc^;7G0?{onOrcFtT)PR<(L54dW5FxNJM6D?oNjx| zY`FaVSo+M7#D4@LAf`8-t1&cHtHf1mETeWbYu41!3IkXq$=Gyk3)~9Zu zs^(0wwXd@_@C-NG>HCw>O`kV&;Jnb9#*nRL**0*jqgISt$&NRuP0~8X(5zXp9YGC` zzjjI2EpM2JsR(p&tQokXs$;7}nhP5Q&<^fRO)VCwL0YK{n{BvxCJ!FOWLdc!7jtAi zqH7B(C>Uhgq?3)?P>nS0AJ-?Jk#gc(rnOFaZ4mn(JKQVlH$PcF$z+Wiw4_2&w*?9N zZNv58`Ahe(ZZproGy*>PZ}6kcfO7wE0l)*`^6TVhsfAkx@&d$$hb|lec^BJl=~=T_ z0DR~{2oTMMFawwZ!r|xY71^fiAqn`4i^^<++GTB%_NMfp0c-bIZ{ym9;^RG|(<4y> zuk!=c;w-~0{OAT#`C%#W2MEi55}$-0WCSz-I~RL^Dg^BrX9ShsjTbn=AEZYnuF4O@ z2&e4D=^}{s}Pa57u0Gbhr_}pYQ-5uG`pgFlzpTgwzDr@W=q6eug~) z+lmk}2=5r|LUyR|{8WQ#WTbyXqx+27hm=Q4)LkgFBm*P;R0jAeyM$EY5G#Te31l@ST-?NRDWittN@LeLP27c`_?RqAJCzQ+)lEz{5?K6s{))*7i6V%7oyBcBC zQ>sUHFK_L3_kSsOr+ut{d?Lgl)06ce$syPg=2Fq~UVHc!cUOIhum(sQqcy|^1O$eF z7J+%gH*y_oz~gmLKkxe`0TdDV6UY-B#<37Y6HE*C3yOtK!A`<_;NSC`2^|Of6M;nkEq_)LJu@|9=&rHN{90~d(96x6QP7r;Koen7&|g4Q z5PNd*YVbk&A>iHKCHXa-dY!tTO2Kf#;LhM`=wTpa$Yk&|uo>ZvxQ4`rf9bKF^?TU< zi?Ih@51a{_C5pboIMpcCIMr6oik!KUB?&7Avn$+mcW-xi7;VrtrY71p{42wjRPxuR zq|*|IhD$hhk*e9Lt_bf>ZwE|O2l}&s!_y9kP_fcynDbjT{-OlHJq4j4Qg)HtdKdqm=+0M$ zj`pN%9l5rbNA&ol*&OcRkxdxW;-lF48mN88wDpWFj^jQOKTTG@G`)*r#kaQOwD#6x zXmo!cTCu)Z`Bi=La#i-}(A4wKx96~UCgxRS3^l)C7@aSC@4S*uU@Z&Ajei@O(i1Hb zCuL}KZs1o zaamGxF}HA4R>@J)8E5~Mncju(-g#JgZ+6nvDW?3ecsW5W`^kNQX_(e%p2Osr&BJGz zS5AJ2ugd0I>tCjU|@toez^|2cyoKTcnb}A%??KdvZWsp z3L=1zz^%XmA(pA+D5-M~_E`;{aBqEg=TJ^(uVPaiwwqU;TTdxhAD!Ka;E!eFlnLwp zH6X!yUPcDO;Co&)P>^tydYRaVm%H6af`jOK5^$ySAn%eoqmLu0lyZt^C%~1(wM^R5 zQB4g)HD1~C6mAd?mfaAqM42)$@VcBJ^>|U31|7`ovxBuk8b^BC;x3vnH>xXeFLk&A z!}#p$p-HFAw-(>{@{G zR()l$Q>18-3Q+YwD_Z^Aqh+V?!5gd$Q3Q6V8W8pwoL3fyo7zPNPmUJsGtnExu<{xa z(y>4`Jk;_+7yne)al&ot>oOGpJfYn7z_T?b+0TcjhOS-4625bN-o#$4_g#IRw6Qpz z;S%`(e1c)s^AWIyU;8Ky@z(M+l$3C0~f*(IcbKfg^ILQNMTK$fC-!o)uB9!NYbqf6>@CJiS;$ zTgizzD#R1$JG#@7T}4VGiSc<)O+>j1NAp)Dk> z#g19~TrZFj$OjwG?puoIxo+Q35JR7L5~_k2@b-l%5!LM`lg`DIAWbp#JIP%-NjX)! z{NR}>>e0zuhk(~S@NQB-;L%gW?VRINDaSa5XjTIm6^`*Gj~zWpk;H+T zx_c41F4fqQkB;_aI8Si_1kNs2@H-=K_~7G)-d5tepY^ZS+EmC~#~TA`#tT?5PduwD zO;k`qMOYoFrdbXn#5GC^1|v)myB>1l!U?13WvD-%dk<&JwwfK>z<&l^kBu2>3A#mDGAjn$P!K$GO3~=boYQZYNUD)U+fI0irI|6vzoLOw zjOF0>Ap!VPM=|KNj70^j{r(wq0gr1~yP?PdF7Uhn?J`1@@=FZF%}ux|4FQ_zaLt;C zs0CNLC9^F9%pB8TO>7a9bFB$c_E62=nwj{DJVd97;%IP{Wci17c6Oc zGs9O~HjrklfK}uX)t_zm(paBOm(F3W8ifH9(u;7h-;lD3K2gu50Ap?2*x?L01Iw@k z=fYYUst}Ax%B*k>_zrkOL0%QC28T$91z%F$AG!Pbl7$tXQmIlNX7eJiYc+z}MxT^} zL(+>#D++X&4JBW%V5wvPvyo!8azF7qjt{B8!}Js5WPu_sk_8G8#dgs_Z=WH53hZ%9 zf*e3CF&G0{H0S%e^nwO%tFvJfuw3}{SKgTE9`h)rV|#N5*OO2ZQK&eNCl~W#)2U;*&N~GyBv!QjE)b;oS#BnEmE^RDX3;cPTs$v| zBo+f<dQ)NiIdr5ZOQPlM;Nph-oKnw!>m@kZVvcvn+ep?#76)|-4lqi zZ5s+mLIapVnYb!FYMg9M`qHq(%tsn*40%iZ11?B{r(DC1dj9vw@^H8uqs_ zywgVj#0y?~{`In}{}&m>j3=#_maT zr{{i}3?K6XI=PU+dyxsGK{0R-JnDIn$)B-63T{_29WzqiwHrL|#ALQlNeUk}BVNRJ zPcHrKf;5K^v}@J{ht=Ea1MO_DQi@fB4^ilG51q+!)2~dA+iJC`M>Q?)Pr5#oKW*XX zhajj}7R6ruP8=)JxFu#csFRADX7Kzbx_rIZW0otvtuVBMte2LXMBeMpC5uK@a_(ea znGX0ERlUthtJRg>by`xoG>#|ti;gd5$mgY&Y>*b04(RHQjt)@u1zGP{S@>7*_dJCC zAP%^YC8OQ6ycs8xW-(PFY%U>(ZxYwGW?M5+S@v^Tbr`)^9NfL^+A&vQ!kjowRj0D5 z?d+*W8n@%*Guw*Ge$6XFcg6$lNX$jiM`4Mw}hHubFug0UCPgIR4 zDvJ~>Luy-86z-YmXQ^NgWcm@EgMq2iYJ1q-4n|5Q*68YLyZ|7!#P8|M^_#+Xeq{i4 z(c=ib%svy!*A6%0YLU~=c$^Em^K(W*nQgmy-YPPs>-?U9O4m7)d?J>=hFBhp3FcdV zHeK*Jm;z!1J#0_C)&xhJ6z1oE;rnVsQ!9fGQD2&@!v(hmg|R9Y<8*2JIlU|Jhe!M% z$_`x158k80xT0O@ow+>)?+gVxeg;k->`Y=D)(X-oL0I@ul~jW0EcRsE8+Mbgs9iCZ zlIn7Q>z9-h@EByFiNf~hR{9NB0*sGme}B>DW;%=;MrevTD|)BATcG|G5k$vF6~=Fa zGW2tnPOmTOAY1Wlip>!3G^l_tdYvi(X(M&?fy>R%HH!M;sF@B5%qb_2g(=Ig+qXN~|n5{rzwHr%+{5 zy9r+sshN?oayD=VH=e#Ync~`OkIxNW?eBgKkx75HXOJ;-`3IVix_+TgAmzfpLYKlp z20?({l`rieYeySaGw_ctlP2;Qs-ye+oJ}D{eEQS?IK1s7p#xtB0diTDrvdQ4v9KuK&J^fMdcQ4vD?9I>0(O-c@EPQcF6OD$v+N!dtRqr z?g95SI)ol0Al7s7JIztHkf9~ZPv>gJw8M)Wn&j44vB#O$dgOwz%zz;2?`@*j&s|- zBYqVJN8yHW1mfLi@;P>Wp0OPiIRPwNoOEx*5sAYzk-o}*IH*U43E_X{;xldsw?=VRh6MP%Z; zWBaCjJ|{K@S2*jPcQ1wH>xqDXUkgp>7`R}`krIl45StlJLviLZ;7gzKWk7rJ@!LC0 zYXIAwRv=P82%YAN;hj8ql$LE^NS-7C^9Ke5)XWci_-=k$fLSOG zeFZog&RxzB4vL7dMh1kNCfl9enscPj#c8**5W{g3Lv5eO#N=T%p9A0I}V^_M!vJgSL!j?7j?v@ zPbquVAI>!E=ZxR1ZBVvNjTh!_&1X#+UqO2&7tEPMusRr!$hVyGUWNvXwEC7 z*AFqu*pMy=%QxkBLjO^Mw%s%9S-C>Kpnr2HK2v?4gbN~PXHtlG0_9b|x>Yxm9xe(XCm#Qo9+c${2}7)~K8ZlI6V>ONEEkh|}#&qjdinUe-Qd4LcY3oBU5UrLggA$7y8xJKR?%U#=V6l&h9{L|DYht1!{VvTt z0*8my?T|F8MKP4hwY~9N`*qxzeUn3OX^_@dqn8FvlSRtP9V(h`PsIz8j7;+O5lZNODI~id^`~$m7(->w+{y zltMS9tCG94(!|qJIL%YCJ1aYeBwtw2Tw3h|UF+G$xi5_`bn?^|LLF)~v8RWDg)t$& z8=sKB5~a5pv8IP6Z|FiN_%^ASH)*LMA)vMJ62&t#f#jpI{=@M&(?f zEf_wsLT(~=LKQvq^zrH&)QI2wa1oCm1P2*klFO=--$VWuQDfYNxFYqB^ip-^8Ofb9 z3hT2Yba`5a-liZnlss7@!D8?`Sx57s>UyG|Fw9pV#!-r>q&Xa%oF2%DboLIr$3*#_ zwwK;~tR=}kKR{flLgTdM+&rWR!4`La39&hMcN)9>X0hN6ZL??4>H!PpdQQS|OC@D+ zUEe5+UrI#RFG+DP`5m>uQ=G0_JALzKj=Em8t(d||fM<(EK z3tCaz=g61lhE@1DaI+}pYYdN>Js!qZS&1C}|tqhD% zUOEXXlom5DrEPK60Q*fcdho1DPk%-V;eKK0xPZVa?$(swdXFDjhDnlPTXQg9RlKK+ zz21_4ws)}_imy3c8>h>7gHwlK>wqS446?Jy!A85vWE|x&;!w?+rsjei8@-nVHL0DF zAzo5idP>G1kri3B_%{6Et>(0_EuiAzLCe@!+8#&Km6NL}p+=Uwky8BU5xz1=kQ#J% zceRk=i)1qTlH4s^`B{scXI1IXLIbItWa{YWCc#D{it@ampzy0c!Z)_wCL~nw?`{@F z9eE}U^d@q_ZjG8?d4Wx%3l?^ul!$QeGAi_2A*Pjdg(ijdRQn~7tiQ#9eAxAMsB zoqeW)M3Bov(U#%PldF@gJ7(G4ecu;G&227uJ<}z-3mdv+!tckVv}7Btjg8;JP|yih z7)}5T1(o9rgiG|l^*Ih40D;1^C=s#{jS%4f#1jEE;KPQ3<>C*I9P~tidz!IU6bUML z%28=Nu(&rUyGK*+PcNL6KfP_fy>`~To%wWMnX=(~`13VU&CQZiYR%7#3T##Qv*~A` zt-5S)lVj#`+dlIQbtB4LZ#vB)z4z`UQV2x&f@D77Z|10VbGbY{fS?gHjL0dg2*QiQW znyxNH z@9&j~7!&e29=Eq8WOw7gBi0k{jr2K7m9#U4EG#f(@97bfU~RXhLLj6rntD#YkY+TY z0Q4_RRTMGQi`etmBLXY}p^=rYB)m0fGz%m;;QNGM-m{o>s0Tcgj!;a8M&j^La#dT5 z>*dodoc;8MGN&fS`w6j9%W_CP? z!P3o?$%>N=K}My1TD%MzT`DZZkEx0N%B+yH!=cRY{7?w@H!mF@XRsSyO>c;nD*0yN zyTpO37V>n@G5!t+W5fI;?$k-Ru1%<6J%TkFPH>Z5cxiBPYA1AP_NP>z?@g{ZW#FrdPtBP zgOZ@Q2?e82r}UOU`sI84BaylhqjE(ItMtf&iPVf13>d+6)JlFr?G9Q`LDAc}Gn-*h zrs&reLJI|=p5ItY(%WHx(g+n5qJ0TonuPTn6v5_5f^O!p76`%b1QW*ffg!VgNo?jM z{Jw?_gy$l!kK*4COLg6UJHeQyFg1mfH9eZO$D@@hPv~*@>yn%bT*( zRdJAma`d|Cal!xO*gGw8DQ+8KG) zUdgjIYl5-*uE$k5VG#cTFSj6f({x&m%T>rNGMrL)JO|@arg|F;SRqATTMh%$c8JJD z4O%I;2$xcouQ@||D7(YyhFrdV;dB28b*j8I(;a%sB6ha2$t5f%Y{ydFTe!9!2NbH} z4eti$EhG^UZ{p?CL!F)lJeial8!CHz0$)*)?Oa15NV&&*mKd$wZNZ=`yW*OiMcmDI z!O#)ze&_wto=tmqC2|%@J_PKJRnE4zMxixy@8B) zw$K%(HH%A4Fe82roec;da~oJ6=}n7LH=L(Sh9snwJA(g35iA#smu7RLoI;| zsySoT`{gkyMx>*0T)*rHS*SuMd6O06283~s$=Wf;A7C=Os_UB+N&Rb}UUNTD?KW!b zW$*3ad9nRyNT2()Z{DT1&E*K$sCj?=Zp{nE)wIbSfQb!EfQif39s#fyq={zz0oHDZ z^vbtG8g*qbtAhOV3wAyHvOGCiAWdYpJ!O!&(f-GJ$SB6XXl5^%l98YS@EO4Rk&&39 z0WsOY;#WCXh^NkDBrdG~!az6Mvu{Yy%LtCO8gzJX-tWC3>JZ|n_6E1U@ECJ~gxy85 ze2k-@w^%$j>50bEyTtU?WYqivI{Or4=z6a0i1YZ5W7t}zCN0M1z0%dAtrMi)W&w6) zaI_n)@?h5VEgXIVigJF1Qv7%8b};=QFMp+=a4!H#z-T#EFdvqUP#e5}#pcDpcMIyl zXWfaTIj)f{LljmS1INc!a22TlqN(p3^kkpQrYyl2g}g)~|M}-kkbzVtrrvN|v9bj? zN8rk)5sC4j(^pbrQn?E3xsfd!(wS9nRE4e*DhJqspdhlwKX}7A>UqEoJ=Jsrclb@K zDuNVI>a*xc*Hl%_PGil7WF$8*FVII|jo|Zkmz2n|g50qWJ68U`hIMaJbo=0R!(YJq z#$D%RMrf?`XVdcg9C_%LuE_Qt5m{#Oeg!jm^0H&14vijY*zOYx$!OR{W)8|MGZ@Xk zGSs^V%rtIJoEhM*S9E)4G^jNqZ4V;fWj99=u;n(LVlE{LbHus^g%W_iIpqq#9ZkSTI3RzYO#MU3glu zPM!9%@ObSBN^~{LOu^$iL347(+uPr}*fn_koLZgd<`{5?amGv2>%!{fo4nwWq{`0+ z5;D}3-l;4bUtXQOZxNwlXQovS8Wss<^v7#Sm%6b2*ibD%*3JY@%vmK2fR412+Q_9D zf$G>Ffx3wA$KAIEu!Zb^$8BjHrGUs8SkgE3jdb&&^>2Q-1M(VN@kZ@qwZI~vx&1=a z;pLasa>ph^b49CRb!2K=7@xW*ch;~Lk);wTca3%)U1^cBuiC|%75 zKPA9Ng$D)FggeXMrGC|L@$47<8>(y@WlFZ^DHXJE;8y;nB%`#H65il zbR^2GlO`qk;{zeQ;g4Y>C@vB#F}0Y)|L#3QHzb(bkK34BwrEo>XJV-P7CdUhMvvOdB)h z@-^j0w&g@qNd75h^{id})f9WQ6~r(zBHl0TUSU1On4>;t^CgC8qh?h@ObTAtQ*OsD zLXPUx3Kdfi15A!6W}f_`m<(&UU5e!%I${rs{h@Awo@t)G;%H*>-~)2GWqzw%qifdB zyXmh5q8IZYxG>@`q4{E=5To58FxSle;W28YH24*-X)KTT6Ne-kd z&#jMb{97OB&&u~R&bGa!$0WB=VL%pY1-pBQjJg#j|CEQ_krZ)APfXT-|DPk8+@i=g z_pCbexDS}NxRG&igjsbzvtoZ?0b%<%Oz37br@_8XK9mT3dPBt7d9}fMovzS|;a&@* zQ+{p(cI-^ylZH3NhHnN_W88wJ9ME@2w@J2OM^FgX&2x;+)VdwJ&!Q0x5i4y7>P3Ub zwUu>znPAHRDH9bQXYz6lEiqr8nSlf3?f3C*|0~rk6-M;Ift7%Od2{k?a`7eA_E-Va zN8myI)qMMlui@}-sIABt{rS#_In*PxgJd;TFGsgyzFUbev->A<$LvdV*w72Aj^*{` znkTcpDxCG6VW|*Q(X8-xJsj7a3fee>gB-K!3e$@6??K-OXHTLEJ13sYNYwFo=1Crz z!J)EzM8PKw+W|>U$79g<4e)WPghO6-4@Ha7K;TzykgG~8p@xlSOXMA^1{2E_NRuW) zb4&OoWbp+RrL3-A?uD|f-#;3`hw;DV5l)E`Nu8F_!NESR$+DbL^%3uE8nbI!-VkG; zzoJ%eJSU?)mEoBoAQkLw6!RDn6Rm0X)U3u5+8^acdKzbW|6r{c(!GW#IZI~lSXd7D ztki)|!xYL3#Y0>D)n?X>Rv%b3#G~Pqo{Yev!T_TCtOXrkptZ-KYeH8m{M&-QdLi^_ zzvpW^nVpQ&HkB^gH54k-vo~QZ_qs&!%2J6cwVtGbNQ zwO#HDqBYnJKr7^tA`&C}D#l7ajmYm7cg)P2{ZdG);T9Qm;l)D0HD*~oyCr`t4X@h} z7K*GufD#|1WZ;~v=BYhc;FudGN-2jhPLUcsu#_|n-3)Ovq|h|h~E^k^fXg2)_tRpGFY-4^kqXX7L6&Mkobbp2rJl`Y+6%ZPK*c!+Zf zf$k~F+?@cww$=g-ZTZ@mh&me==KjHxh^p1&fWg-ap7A)99(XMUu|X@{06azqA%k%F zQ5%;fW}dj2b!~BbJVf`-=I)^j+mEZSNHi zqM+m_qt#MbgMFsPld{+u^UI=AcwwHRsm)L*W}zN~F#niQf*)Gk98n$guHba!MC^@5 z2gB?3XDPBzt=hbvtaoilZHdat_Me}1!R<5v5D7~{A-w#*edBO7!Ur~~3g8O2neET^ zVN^+NQpshZEiv6!Kb(XC<%t|a@}hNxW0zOt?EtHK`7C~AEZ<_&jb^I_-2A}_GG!h+ ztdfh-19_JAW3najkVbXrm6!yPfv9d?9o53C-w(rnY0lHv0_jk0J{f zz3#FlGwx<~_HTs>HT3GureBuedPLID_6ZcQ5x1H-UjAGg3voV!sN%e~1SyasHDAcw zvo5Ol<;jyLqeO8K=~AdL!NI{w`uGSEU5Yc)gMN6?z;PXpzYgAO%&LgY%97j~5!byM z5wEGhVJ&kT>3HUUBLUByxTlv`XK)B0evf zk=p!aqkSD#&R1ZqN0;U${uW1b)>?$S$p*Zn*+JzqbwaxNdO$4imcWapNM0mPX}vf`US?10`9_&h-G#KpcgPsVd@20nKsE!^T-F2D^qkCYntB;(tTFn z*6@J}>_S6V%k%NBl=h46yrhp{2yc~dQDolFd$S`w2J_@LU4m(B-xNhzdNh%i(jq!C zaVu`B&EX(wb7k)Ch?#XFu|}J_#=P}D-x$gDJPr)=;|zSS{VFuoxAgOw#AE*{4?oTs zE{6V-{xgjRvk!GMA@hvvBBjy6H_{6~qj#TZ7O#j8clpDLQSMB(t0HP^-iFC{>oHOG zzPyP@{3xw+%lL`$f3f%0aaA>M`>2G3fTW~=h;(eaB&0;TK{_|x-AD^4pdc+JAyR?} zQqmwL-7VcM4QDM-AD-v=<~g79e%{|X{xPgQYt5{gx#wQ@%-Wmly1ZhBcC@U}chIAg zzor@2e|L8c2yk^JM&h%duc>9Vlh@DY=FZOM&f&1q{D}3`UUBZA&TGMA(D1}-K)BDZ zW3H5Pg@GeQt@HB=%Nf#{8pN#02!3~mprmV~T<*IXM{M*;wY`YeXY(SrB4W5@xa+s% z{D=}#UrytxaF%SO)bMmR4f1S>)i-RYVMEW)3)q*9A~g~d6E!>QUE^0+_QPH83VaWN zg~z{!M8GZc_kTUUB2*(Nu6V~t&jL_O6ao|=FEz)61@AC3GC^eJeq522lfDD|53=AL z2Rlb7L{VA~5VDj3RVpu4J6#;a6deEwF^GZQMLlbq%X)u+NSOc9;KhA__N0GG)d4Ls zF>(RIX-uqtZWhou`%jwvRrw#Z&GH9;_Bf5hORV zFIe^;tHXm5!mLc7@GT$=3&{C`Lbe=$7%K}Pe|{l$3ku!>=RrC2%RC@J3yA8n07Buc zpmI1UNDB(r0`k6~k~r6efGrasg$kMpiEl|9c1!#j6kU|F2g*Z0Q53o(Je=L9$GN@qwNB{oyXK;LAy3|+( zZglwpkfP@VMi2H7v;qeUDCrHz^n$$udk*x3184~x<%KLSD2)q@1RNnaI&jpNqX#8* z0Skco#Gn;GDO+H4T!38og>W+{ISky36%=R(dJP^qm_TXiOSxcnP(~flIA#Ooqe01Z zuq-H=3<@{{vcW8%^?<|s^S$gYwnD|M{~4M-EUt8XOlWb`Ojnyyt}^HqhpUWiR>!vE!@5m;ocQf-2IifH8pjpe`~S=r$J$)L>(P5kQv%u3g**Xp9wfW6zs47mps`5I>JUo#E&4;t>Fhe{lrt@DGpR z^(*P(aRO`r9It3C0}|rDuyub5O@Gyd2WH~m1t$=u_n!u*ONIG=9GpOE{im<{NbUudL*%GzKaaBEQM z8`Mq*ANLDQbwGpsQbQfM=Wiu=@L2-2zX6N?k1N3gGYV>#UNrpQDZzu00}NY$Z-7ed zpx^vfg8x5V37+{1cgCNh(@*g6Pcjc6(*4`;1gg&dr{U>RANL=JCl(+;vv7i;0|?M8 zz-REt280#R1%W&mj9IwB&;GCJkQ1r>~X+* zTm)&L9&ls_LK+*eFJc8O!2#?(F6uCY=fF?~hA?1Z0~QrdAS|+gp$+H@nAm`jcF{L5 zM1p%Kpueo(iVpVgKS&q-2gdMY%fxc|fekpr2?S2CCl^Z_5U4qTC58hG8Nl++0W9?# z;3&W)4BTS?d2k8h0(#5|jP&9e&IV|Gur6R# z(Bj|>Tv!~KAx>b+aw(BJ%PO>xHy7daA&jg<@WGzUHx-6FWS7)&7T4OU$Qj;t%3&srxZ*;5d1av z9~4Z$>&#UOCV-_v*hJ4x5$ZsFajPqO>&z^FXU|~2!@vx_0RZm%7vc=CA9ui+zbdy5 z>_IOK`IA25ADaDN^JsAXGae20Ki=^Fn3pTM>i{PP_~i>|QsCw1ml^)K?m7!A+f^D3 z&4}8N`a2kb8~ly8M}?WU=!IGozUYlYKOA3sNR|Cwo_Ri^bh0~|arH^-=K192{mPX| zw+)ufaGdrh1e6Pwb?g=`cb;+G?^K5wh&x$bw!|eSpmG@+d?vY(Rg(^XCjKqH_h!%s zG;$JxYKqX7LxP)=<2La87R+Z;zWl;)5nL)oS26_v?P5A8kHFa`TQ zd-^liek1%?n|}ICibLtfY=8vw?)PLyl0L4u3K^*qyzP+rv239bp@FOjS=l&2odDGb zA2LLSm-)@!Vl}&Zn0KxLoGN#(<8b0m*J z+{8oA0t`58a`GI+N6GeHf>3!Qw}-*L4~sH=Q!_FGd<`VL6y6EhKyAg%tO|XNwe7s* z1-<0;#mz#Jd<|s6U>~~{3dx(gtc4Chdj8jy6&lfA=ze>E+GL=upM0bGn2uEcQoZX%o^@sd_KmpALFBs-=(d4=|mQ^9-ZlV?Mb?Ol5LODCXH)-g%|OEN=Z< z@2KFl4YLNY*0!4yj`bhkpyylvq zk%PfMa8Pji{(Z<``B&oWKSM^8&0j(WnuIi@L!2JAh2|n^)Utd$GoJksHO?w0*$=8$ zZg_CwBp#hc{frtp{|}=E3=%%UC_yX^A$}|Yf!Yw2_r?rd8W20OJ_jZ8I4-+)(KKyH zEyQ_0Jo`lB#-rrrFk{^^^#0roueRxo-fx*L5twSh-LDDpIZ zymz+lEV#7qjCH#IWv5^E+?40_8qT1r)st&**Q}4-%>F(t7cYnZZQNjnh(m0kcBa;b z5F0%^sMRk%w#%#q)W`v%4>5x{I9mf;krogGYfDQ#h_!*Koq?mJkp@oo4P>kp-xaMh?ObuBZxFa1fpkbrw3GagFsD}9+57J48d8$=2s z3V8&Pgh)W3mn}iB4D~U@@k-9f6k>WMYyM9+X293Czn+(W&yD#%J0Jhss5LdwAeS?A z;Q$wo@`o2(&iREeTzZK;)Dn0@_!GJ2|LN44nrM0k(96e8&kmw*2jnh2RL|bP)YQS$ z!VvoZ(dP$Z2Q@aecL0b1?VyGbOFaXSGt&@w41wp>#=_Cw($vb)9t=eGju#Qj?$T3! z1u?)ft&0KcgIs%8CWV#@yow3M1?KsXh>5?MrlF(-;& z#w78}p^9HABmS$5%%zXWUKW+TEGm1YsO*mdziL?i{Bc+gU-3p>~#fR)+c(_CMpZ-sNSzD|PiQo7MYu3q3niD`SWr@N4$ZdHE4?0S~yW zel_+2;T)JldsARVx$K_lWtpoX*z{K!sDlZ_>as!W%i`9T#jmbh);|jTs&zq3`M-{q z68O68Pw&+t;xfO!aQVNvL;f#lDSBCe&4zcL%0OO zW8Z_9IKOT5@U&c~JZo;wWd!xz{oDJc-!)FlyvMaTM)$rohnJ3SAKAF^Td%K|uj#CW zT9>Yf?L+w!lcNg~)<_5I?f8%#$LIFP zS9&a0ppzswS5}%wn@jfyxo0-Q+j_E(jvut2c|4wAtT?qBf2|$ep;hfQ?(7UbEuW;% zsz28zJxUtn=MC#!R_wN1N{s-0dN2t5*hNJ*(BKj^-;v2U@nj>Yti2>5V zck|7Y3IN-rvW9moz&N>4u&Dajn7x%GTl~9xcfotHcX{3qh@lXi(;F*qipJ1GyaLz< zcg+v>?(7Gu6m7(Np;cS$qo07sOr83IrNPY=r}G-{Xnw?g_4Lmy$Q_9=j3->}GudT5 z#kos#fCl`V{*`RUy;JDlxh4~UyIL=mZfYDcoPa!&8IyJYRdz%Dylw+wi8#wJiR*OO zd_}}OawSH5{+ZNu7YOUwnz=_T@U>^oAmS$e8;6OZ zGvl{`^sdc!d-a#0o|%F?MhZP>k5{ZZf}ox;VRQZ#LC*f$Hm%igJ^^_lvRTYvoE0=_{0&l9pgQ&4*~3VE+*jz zCBSKOoLDklX*gE+Pe9@Vk|B!V09zO7dncc>CspXXhzG)>a0le4m}if?{RMhRr^9!} z{+um1KVj?0J>FmnMa9LWXL&60{);YV?Oi`n_`jWyM2*IvXMQa7zCjnc7R!$U{;wx2 zq^{6T{$iv2gPd|5dd=`3Gf;l-`Q#e)uw{2JJk>Qivt`%#z}_77z@A8EbAcW$5@4?U z8~fx+^EV-HpXx51DabC~0m|w1Gca2`A6N}eit;xVs=-&B;psVIL_QU0c){7psqn~L%`73FU#%HLF! zzo{sHQ&Ik=qWn!o`J0OJHx=b?D$3tfl)tGc|Nl)z39y{}0&;*v9{&;N1T%o?w1-$; zMQB<8Ku-q<6arv00dS`sL=U3=6M(4%04N_qL@$vxA^;9k5I|EZ{D2rr13*o20ADE! z5xxL{ssMkvAqIDt*_a_Vz+YAXI_mV#F_c$W9e!XaK?<#_>=pop#V>Y?|2KO5zYQw+ z&w-Kvi1PmrP|1G|l+;A~36)drR2@I(+>d~xRs#HOq$0DxA%yaG7$ zWfK=yF1m1uSAD_XK85dYy|-kkq~;e-d-Sa{|v9Tur@X|(6g|zcK8_- zE>WHT)0j?8G)n+5>j;bw`d6qofc~^~)UyLd4*@=!=vf$DK1n}L+5^)DwFgIjVJg8( z_@LlrP!qi34uY36Blyccf){{BK~aeCPe7ySW#u0c@qZN4sfqT#4AuERjp@9=5nnvg zrcR~+XxjP`-0FBaC61T#c@@v^_-i6vFE0WQI{;q^0q{Fq7YvVD7grzZS(;k7QUkcnKhY&!vhRTiP8mH*CFt|Ar-r^ADCJfD`T4Zs1?QI$4>4I`$5B zP(4eu8;^oPSmz7}{`IM0z0D~;4Zja3h`x2fryoKhy z7Rqy}OnMWeZq?vFvgsmXsb=06HaOrmYwPEx|61OC0M}7htNB@_N}3EWquhczQFwWu zdL20jZPmXYoqEcpm{?iy z^X;O(UCCJJ@(w+aryHIpRRhqSUZT~$I^6|RssI)gz=8hfS@u&xFX`$)ozgQOot!gQ z(;u+UlB!9zA6I${ra{Q)&w@X)jw_@G(ktE<>G`UsIf(fj9}H#otinG+I|=lHt2RAF zuLj|w9y;M*7W@blN+|J~24SNNr?_5pM})<@8V8o6-b&-$BVYG=WsEie>2c5N8l%pH zqbeLPhf7$=;$9!U`)COzkF&gw{c?Cn^@FtM-sqS!rp6Jiv($V1*J*u z#Py2IH_gjvU@xCl>{Hm}ZV~TygDTZihaKV1 zfNS}g^93{M6q0d5jqd|@q0gb^XBiZl7=($9XHp{4-1g&O#S?GIx{Tr zc_Q?5hM6kqbVlzxQ0i<8_)~edo=^+aJ4xEv=sx#3yXKuDP(!+izKM7Qck*9lUz{O% zrwi1PE`@K39g&~>$`*K%Ea_;kJFys?SG*8K2t~prpuhXr@cmQW7qxeN|8{}`K@uq% zpPuZo{(FDj;94x-znSnqfZ-E)XHJZG+`hS4={Lc{d%xvuciZCfx(Ns=J zm5?t+nclkhrG`KXY*v67ra6Gel#=2I3SIO)+52Lp&88#N_i<4qY&p)tYc z>zI@;9x2K7+2Vb~;CvP`6DUt(T#RKMnWeaMPh8rpHCb`Ls(it#blv&$Mxr~iKmQ$n z`1I$JvM$Y0#_3_KxLq4ehD6y= zP|7yIMDMukFWzg{&auy)Fb<7h;ZSEN@d)ksMq3h}_%-RtupUdfR2Ye-iNh!QhvrEX z0+UOO)J)~{P8zB8Nef>cZ>iIB#I&q3sZTO6#XY}ikVG+P!j8K=y5sgWGcK3$4MVe< zNjtmR+Kx2G2O9gSJAOPJYpt&{WLUWwj7FIp-?2B(+E6^>9O;W(b;?n(#OHC4OLKd9 zzuC<8E6ZHAeMrB-8pq)Aht+^(Ti!SI1BwCNBiLR$ImDDXEsJc~Xnxmx(P|i{SasQL za6X|W!mq<5_*mAMPQkp#9D-H4=6&4>Zq$cXmrAaK3c~<*D&|@E6Zso`Fgh^q$b>%i zHMUczU9gE1pROe$GGZ0O^Qs58Z4GG@EQX{I}w1A}{{{lDQ1=3lx*BK8z)k$=-izH+HcaJaAR&$v(fJQb;%0n2+IbR1bs$DK?y~cyg5qvU4ccW zNOW7##p57wvt*N${76hHlse2LboEvl*S1@71HbpWeQqbKsrM565>?M>4_*<|u=?;# z*W59B=P#18ZFAlN&aP!qu+5XP9eEBt&ykZ+H8guoLB`udj z1x)Up#Q0>C%79|c?b9?kg78-a;i5qhs^A^QV6LYt%})cvGe3WWt53{XC0QuqAC_!y z3@iK0ni(S_6-}usWf7lWyvjZMiMqnY#eJMaxi>Y$-Z?#fGrNuTMsDl3Z)F)AaUJr7 zWsjBRK2#pQ-Cb;*A7^jvNGMfRYJ2A#g=?*{R+8TyOAD>ub#N`ayS**l)?8QdiE7s% z@F5?DBa3F=1I)aInkvI4qfo54fz!KIDD`%8N$%rmcNHWNkxdK^s^X+%#GzFoj7E%W zc;nC}!_dVn!gYAo7J3PN8BdCDP0TcCGZj&*ff=vTeZn?U%2pqdM7vVg3+H6Lw8)qt z?aIz|^9e%O-cggKKwD1>t$3UE)T8rQUM#rAJ$btb0o|h^J8De#-P9&e=!&K-kx zjzp0q=xfHlDo8VDKM!-4sn#v}Y(>pYX+BYHI>@MOzw^$0tuj9_pn7mg;AMxm=h6og8d!E6<8gc~@NCDH9vYLI-Di1ho3OWvvC0?AIS)cojvt_}ywy>Q zY}8zZWF-nxvYTyawZBFmrn^7};l3uq>ryE(=bKG%GJQso`hg-5u4ednZqSqDRML4a%meaWLG zQuWP8)VAu=N62`R?oIx<+Le!G>fa!YHf*xp{3P`>%&w z`>^f~%@>!a7cpsN%`J2!?7R}o=sf@QtT9_Bzwlw;q{l!Oy%cqb>B+Z*KHvIi{N{4Q zPYW)bBYCB(HcKJIQjy>M#qQ|&+}|rEl5)un#9+M3y4;YjX{s;N8UXuQT4VGT#gh-U z@%DRY>M^trsNE0cx-p-t$0s=Oa`?swYMW7|I|#W_^$(y#y4Q{z&=6E0&5u!!Zj4wM z%q*Kyv>W7&@EsqGBpi#|V{Q=T9C2qai%I3-pPzeaH*A?dpQ4K4Dx<7-x%h+Mtfx@0wK zJmx%f#VnW@;lq_lBu0k*r*wM{*U|6r;=qh@brmwr zp;tX3uWG=}LV9ap+lr!*;^Q@pqUc{nkSLteI?Vl6km>VYI5s*>gnZ#vsC`OhGta%E+bPyY6v#J55{euBd*4Pl!A2P?0>j=Afq4 z^0eN|eqlCIqr)r{w}^&CE_LN$Mr(7VBKwJ@QkfUUyg{yVO9rI_ZJnl(?xwQw`iy=d z?cNsf4{uVEYcUB6+PUyh8@-@+dwB0#D(Bb~;rpcU0h3Olz*x~45d>B=wcWd)SnOvz z4!rUO0w!0ok0CYZ#=&m`1?(p?7Wu7jg`}O>jm?srxqs`sF$C}ER*hn6emo3}z3lr<}yR#nhtt&n?? z9~i(o&fF3q3=c2HJuvC7pKNRIRMpGmGcQ))Hey&cCM>oeTz^&VrM zWP0GhrQ*{8$M@ZVfywpCZ&uco5ZlMHj;N9id07xVCPJ0X%Dy^HPmT5hxbtP2I(M7ojNl04j(Z1Pc4@r!4*w0ktg z`}K9C*`wr4w)h_6Iy$!g*w{ns>DDJ^{$}SL+$(cj;fD^AFRQETCLyM6>LeS5Z9BeJ zZYWw>4!SKqD4Z^z>N$*V;o+eK1jK|7e$iu5R7|@4Mjq!OF}ms&(QwFS%~;-c-o#d_ zdPIIOPjBI6}t3~qQY;ThPf z)`N{{itIsBKJ}6$JVJY-g8l8yTB>mq8eL}0WmWvxlS&kN9RIF$8<}?)h$)!ll2&jZ*J&OiD4MW6n99{?4!31G|&ir zq*2wqiEbaJMbmpDK6GT&?C|so|%(u~$kINCU>8wf= z8cB7~Hx9fu+y^&uYo6VKYh|7~cx<8ui`)szM^N9_n*JCmT;fSO2#)w!ps#vDgs_VI(rdtBEt z6vCitbwUCo_SSL^T-AI%&N0m>g=L0MrM1yGyB5oMbs|DygOA$`wyCVzz3iAh&;X&zxVVUH*zY&qrRvW*}p`PS3V)6p=J8dz*#n#_qxiG0(gRUb>H zxwugLI>(WWxI2N2x-Dm1YIp{oDO+1f(>z|&=0L7aIr=dIj-z`SE7N`XO-8HE**#JbCd5^=#T&Kph)T5*KbZ zr`s^Wi*E~WP!YjEKMHH%jLWJ|7iA`j{|0-9SD*jr%Xw=<=~J)xF}!`n`JxdRim^e` zl-ML=8gu_LL&JL$a4!N>1s0tb=Rd|fHqv>M&2y%$+wPBqd{j@ZIDQ~dNjrxZ7qg6a zyGE?>fa<`8|IBqeCsX^S&Yu6YGUQv%fTq+_S{zz9nS&Ruw3!6Sv@04z=8qO6Xi(7` zm2jWMJj3##GM;^+{Ny>7f5F4r#}5R)FIzr#4%LIut4#E}j-o)G;6wC?%iqe5pilV3 zC|6^3^f!(5vZEfd?`G%uU+4K(%RMx|_N-SjZ~5V<$1uDjp5do;n0s8r%`b!eDqhYt~Va$j%30LvB*pIEWx80)Ei zS=T<~+Q%f_GmLlwPNgrN{@r)PQH5#g0`=0accXAxJT5Yv`DpFJj8t83qK^QHYwPP; zWRBgE3Lz72%)z2iq7BaD4;l*L#)-@JH(Z_ZlRzj&h-;zhWobH^F-&sNG~3(RG4? zf*mU59ir~QuXBbBULv zNyS7ePxd}x8W!kNB}X99#qvSLj5NAY=YvdIU%u)RW>CO#@9{IljbRpu6+fY-d_Ck$ z*C39lg6*rbU>y+JIOZ)nQx`A+zd+%we?IHolp)j%9lfxri21Z7tn=P5M&TH1%^h_HaH9x{h(@XrXb<>zO;ffyoFoKITw`AT|nd-cA^bk*XP6A#A z#J}IfnG)`$3Ewgr`EX>XfRdHdMn{9`P(CAEMXQLNV|ZV(E&XhIdi8U6ckY}DuK@*- za&bx-1E*S$hSKKuSVMuY0&JxYS?@m>>h!bse|&~=ox;OZP;^~%T|v)olRLE{vZu^k z=Dv-HxDn4wX+!LGhilN%@1*4j(`D`@gzE&9g;?8UT11PHbFJA`*mudVf8^N|$^hK~TRTrn>*mUHdRlCZ!-rx`;==0dec z7Qri#A2*K+iW{Fluk3ZCrKa}Sr~Eqb0s8340ZDWN9eRv+M5L>cilddXJlvoS8P6Tn zFJrd%wrubfx`ZD`>>TTUjnGGpd?#KEJ)Za^tvZLNwBsoJwKZVEd;&MxTJtP>!bzw& zBhCbi4c=ZX)mTJ`daHDbJlADt>{UMcX2(PSQ73Yt=SGue=C2%^%<>R02kz80#jlRg z)&^^1FYB-2#wnJ(cD74nlOEBkx^1%`REUxwgj+#>y>MfR6rXEYfamDNI7?D(FvaJs z)oITzts-R9uFalucYnK`XXr@tbDYUfoQ||Tq2}gVUv6k8)vUecLSmKcK+CGvE#Yt|`hDY9vIM@W$)cgWz~M#^dAHxJhW&e13Xc4Fu2l&x}K zO%!l_nD7#NvE zy5g3?WoppM3j`4?nj?v@Z9+eLW)wk>u+_fVJ3Vi}8D1pu>$Wse%B$@%P6= zG5)A;%!lAmSGMB#)|tm!jTht#Z-Z|l-x?eL&NccrSC)tK(-zsSkwwP*6^ZV{8>!Q+ zE#D!9110Izc(_f?&0<;p_S4LyuS1&EWv$KRKi;;ag)GRvrfsL6X$|?_l#JC{ANILa zv~l$wf0o|!Rs4e6+aF-}>tH9pCCn1sVM`Fl{F+{sWA-whTWjqcvbm6ZH!;GNUhG@F zj9V;0kt0ghceg?kb7qZ%ISY!o;zhn4(GP~}AEpR{H$q@6pfXpYh2Rd!Zz~oq>s7-JCBEAUG+)j#?=kH*QtxpKBZ>TK@j< z^~~t~w{0XcWprhO790tXL&#h|;jP9O0j5;r&)>eb7@*`Lu8`)K`?D z4m^cw1%%yHkMEN#}3%U(T_c}pY){4AjYzzb<|-#qcsVa)IQ~nOzNg% zd~|1IveCMTAq>%D%StdrIcGrCY0Ji#a5+VF4na9+Yg9%@>fORJs;IIX*%PD8Z+=t; z1gMxF9vh0L+J1S~ zR69yqm}56$9G6b)Anaj~JbKwR0rdP(_vv@Y`QNd01$ejc4mfeg|!N31CpP%&(Lkt%CdjQI77i1^kV zrHbzjwv#-svqEu@!_Ab0%&Y=Sq;8@tnVT9%QB*Q=2w~SS*yd)^hHWU$ArUI8qzQ%1_e>le zgy8VAh+=Lq$cq}KNi^p4yxbSHOAX6Y8drNRLlqS@n^;E4pyDKwkkDq%)*Oy&-@YGl zU*sv&CVJ26UVWXDk%)aaGq-EEuakXWq1;#5!ro>v6U~Pz%D0GVW?CIgX`n(vmW}IX z>rG{88l~{_!Ka#>c#ToR z+uns`IW-xW^>9H*%aR<+BL%Oqh*sH>0rF$OmuxJ2yXT z*ks9^!WQi6%pQ{*NYQ&iC*iG@RAPA$TJF?34tdOG2||4V?mRYJUHXxqB1-v+G@K<6zYxn8ADk z)-g@v_C*IG{KaM9H?5*QbYx^Cq`d5cg8aOkoZ;0@*3gO9U0h?Qk0`C4%;gU9&6NyA zJ*|pNN#L(gjZr9CtL3YZj^Vsj&|1R5;EA3LK00O$P^%QqD?BJ5!_}(+|lQnL53BqgF zSGz_=KeV}YV$YUWT2g$p6BZo~cRb>nr1yGCI8<6pFl_Ussm(Jw=uAWS*?UF~-RB8o z6H~o-9im`bUWB>NM+gf^6zcSq6;e~i59`Ai?2NcS3FGDO zlpB6i-Hc*)E#~HSb>ZUv=o%|!X-Sz><|o>r87lc!t6n!?<0G!*2oa)^_?womDBYhR z$y{~#wF+z&R@ZV$(bysbU)2tweWgr0rVy!&3O?4OL}7F=5IStqKTFI{-;Ta*apnN0 z_D1$~)eB;48aEn}HwkSJ$JY>XS=!khMZ0hMvpz3cr9Jv!`II$dlj7-aOY$XF3Wwb` zg}Moagvd${S2-i%aW5b!>$v8oOHuQ^Qni=<`artLlj{h3h>f>GmQBF_5WTkK)@O^z zI66T?GW-rdS8DuHSCiS$VP2#rw0&Ww4ZTp!u8kLKUp7VFU&k9uFJPnJtJwT<^YDZH zdlAj{0$$@N&O;)+9h33^ccc#mis4-rSTbHXsY-!clTSMM-n|ncAbX_EcaVoE!+!St ziHQ~5ipq=QYTo##kJ<1_gKNUv8tOF1(!Ex@r3^dsD4NJt;gf@g&#oe$TGIH24Pw7fmKlkXk;HrwhbN- z)H{RC`UK~>DV{7yiyDBTK zXbENS&PYAYN?a3f=(I>t@$%%HqIgC{VC(DlKD(0(N$-=PRxs-#Cw*AkLdv!JJ1h_I zc}a_BdvOy=Ywr!o$=Zw~Wt)&(A0{Ouz2Py%(Bfc-8j|7H;Hl}L?a$0os8#OUf>^<; zad3*bPdw)Ro+Nj5UQwf}1-5ZM5iRjJWX;FNH){b#l}#;-(tBg%TZ;kR7;MC=af4+k z?6~v-@rs6zlML+m{?XB=T2Iho9#Dn~(I*+&LFe~W?PBA#-V}V3lvTc^IVBUbF5Zod zj!_aDPm+c-Q@Vj9JA zED>&QwX5jnJ&kW!o7(l9d1`t4-y$rA?;-{@iQX~iSWbB6Te?*+&2ak*;b;(i(5Xel zU9tnZj7u3;@O3NjI*E3xKk|?I za$~vft{o{XEYBD@6DsXi4V*j*9IRa@>SD^HOY`>gmM(@#kb}9THC{0S4|Zf_8+5goH#8{AKe_QG_Y27tE-( z_3#a-ZT=#Qbt?vlP6JVZdgKOH=7{;+}3U786CIQ8mJ; z*PPjZ__p5o5u3JtYU^xsiYbozQ=aa-i}$)6Zs4Zy^fZweDY!xG=+yPmB_kMOeHiGO z(n3riEovU(aExjpIU}pm%6-p%{-oPCNfv17w&RDr>JgkL!t)iZI&VPF*GY+PbsQgOmW@zb ze9$U5w0ZGLddqp}{_}E_S0^7cS2ZT}9X5GaZ{^MQnJLHPnA+Xw_b8sWkxWQib7@n9 zQ+@ol#ZJOsQzAyZb-=uBaxKZ+y zwOhp&v&=Udj-l*(J*LH~ksLX(e*H^J_t3cWJp|TBWHar!#X+j??)4()tV2GX*{COu z4Y$4p8`s$lkuf&I*xbCa$eOW-se3F$$&~3F%kS(~8z`+($t84rui@C%ha*`|*4mkO zCIGWsJgXv54T_+7&KWz2Um;mM0XJ%GScm$l-(3q-xja|3 zi0c}cbFfE;ztd67xqUurZSK&zq0yG|rgm#f)6A^r44#ARP|1rnsrJPPkEoW>bD8G3 z1-#ciMI+x%vkxm7&xT6w1f1+V!%S5w!hl__y{++d?h8+OF;@XsMT5|2^pU)r+6S*?XzD2)Q*-^f9Kt z(CsrVJsn1ea*8P;AC|M-GQM&MOMe{##OAElE7l(GY)Gt+&u6XEFq1`&S=BVwcps-~ zVL9Ul>caA?b!bU$o^z{!=b?=1w!WzAx?@SH!ctuj`Ss`YXN9K9Hrh}5qg4sb6s$i~ z8{7@L>7o9@bn^loacergFPc!d2rZyGaRx=mK! z@uq%@4mL*gi8|qM$RWz~&0s^EA-$y2Xy0ovFYFA-tEk73j*p+(chS-~^7Jl9Xt?J( zkJWEHAZls+zMnm(&(Hl34e9V+*F(B@Scxr?Y7`kU6zxZCGo<&ru)OZWs4qo6SSf~A zU*=44w8Ju4d-Wg(!w>fclk=gn5Q?|3NuvN&@w-8Pm1JfU7RkHtkrb`$hc7sATI&}| zG5EivKxiIQz`xvvO-+gRAz)*1M>c{y%6{eBmwqGTQNJ2Q=X2ilXUi0W2!y_S@q*Qf zeCE*(lheI$f22t{!+e*e&Z=EZtLq}N>+mK&(2B;+ zSYYUO`0KhB8iS6N+!uwJZNWRHxYCUHv?(t$F;amC8 zI#FPz#KfDU4=$^y&lMB(KAxY?q3)MRck3y6$jGylycV`xQ&e)7IhVJ?w3bWS+^yM> zsV#ccV9trjVdQ5Nb+FZ$qW4f|kFhRCPY-@ayT#v|ir2U%;o-bwOIh*jxdh5}{cXv+ z6HdoIu3@(pMMu%3*k%_q~s=yBAE-VTOI(9?~e2b}k?NyZIsyFId0*4FY%({t7m zx;5ClHnueN$c)_A?o{nOg%26C(xCK%eJObyM&bQ0I@8H`>CdNb6Z5>TaR1`}u6!KL zLRc%QBxJ+(4yO>=2dCc5kLH|?9$TW#(jJ!Dp`P?;A?DsR?3$nX#myrf9B&*C@RFZ+ zJ;5jOySBO)M`>?#4YO@&p`e|B%=2@sOedZSYt!}d-3;HJwy}PG)m9#xDst-$BX40% zKFZw8IfmG~)vR^NN9lqmn|H|1$t%r-<3s8;^H-8yGzBz#5O{MR!(x^+W9)8=dY~dD z0(*&R7#T7Tk|SB+0}2Ci!MI%X8&L?^?Y^kKQfQ|i(xj0QWqPP>=qTe4wpOZ2S>M|y za)+dm?k6ss2HGbdPwc##k?9Y(c`lj9_A2Jt+h+ysId`|t0N`E)d^BUNI;_PmlXZ`j zEYB8J_7nEEkGeXd#Vpb*F|iu-IMjuyapR((4~%BltX*RU(z>7V3B; zFAVKxtZ-6lj@b;8p3m=m;*6l(ZnH5@=1vka%+rjU!F$cDGBre5Iyy>8d8N^h*7K8_ z9vLqIwz$tOG9LN1o&bpAl}08dXBZNvgjq!g1_wxom{ zQ*9EK9f4E24QBm-1IovYR6ex4I-UTX+R8`7PC&-A!&IV@1ARa4teI|DT41<7vsZuV zJ|+HcB?+d~?#bPdf~FnUTIz+bc0KZC*9OCOtei)mb3D&FT^9~78T6df{xF|*9N(Mm zIWq<4BR1|y=$%};Q&{5JwL#p&i^7Xf+}{IFAa8X&GpdJ-8&0f6iG~g@c_y9Qj*kEN zZ7sCC1@;A^qvnd@tcb7swPm?#NhDhPg>s_4er7z=H5zJy0yjm;LZ1hc-EXfw!};W}b*8B|JALh4j5WJx}{R-Lc~m)Ovbvo8q41=w54QYf%6DzeKZN(INgXu&6>m z#6dwtNU@*zGUZE{-6b&X|7!0oz^dA|{$UX@=mzPKRM^elw3JAvf&!A8hD~=!NJ&Vi zfP^63-GYjQAR;0yAt2H%!nZKa@!+}lfA9af@B4hu_ucKYajmh&9AnNg=9;;Ga~y{$ z1wdWj;Hek@m?{aRI1X4U1H>6s0z!`dKw>EX5keIKsHzx%NBs_tQv-0SQlMi@DiZVq zwPg?bf&H=qkgfn6?puUVeIT5v0}u)ITkO(bqv|;VVMAR&&Obs9GC>f?V{9uQ7-Y!= zLBc?0{}|c&O9Z9NqyO6g)&FaFDgf^O{{%qw{~DeO7~p>-?CAeC zK=nsB(|$|2*m_0t)#Bo(lUH;i)I1jw()HCqFysncCL1 zEOpsQ$La#};0*%^6#)PcHRA#C1A8ty6BAzAM4wh0yhI;5N7IDoJT3GdIuvaX(Q*3ndFFY<&dC10jhE}l z*cic=i7Mm-W+-Ax4%H-Ftn2(mx9Itnn}9cC(?KLdGvSx#06opGThBx*s`w*{yoWDt&Nhd+Xd_Q(6#z1O3oW*MNSb$iwF1`g+?h zb&Si4+m6jzubv+@h=#Gga`)mt*mLMu6B3xfY*h?So06Lkn$s&=yd|uhf-qECRhoaS zyQy{mJ*JW-2WP9>egr}FmTa-ld?-Ak0B^CqE~B@>7)I_@B&M@hYnGoADf-+*VRM88 z@%8Lb;(RsAIYYE^dI7nrv`HKGzC6GrV}j|6WV4_5;-PW6Zsn`&iKa0FzcmUmO4+rjBWh-@gy`-u#X@RREqU zqF)-F)YJT_)acY8gw*84deQre9sjWMFeQy8dHRzBt`z3psn+=B0K%=4;%d>e) zcTzirqFmWGuFoZQvnHBABLt@xc2?c@g%47_h?;XIp050pThXbc4bG~>L;ow~QA_1< zVZd4Cs+{)y*uOFs;-^y{slj?a|CXw7x&)HY654fxCr!>eSFo#cObqoZXKC8-Y zC|ObP?%8Lo#LcDMK8k-y(+hstfU_++ndI}8Xt$u{@SHYB$q`l+aIwh^Tu=5Rhv19FV*Tz?Ci={vF2jFOXBRzaUUQ-1&({r9scB z0q*|}8TA$2YQFL(g!E{8J>p?^oj1nFEKVwcy5MVV)Zb!I7x8FYp?>HyUHEY%S74gg zO1kwfww6UoC0xA1s%cyjs+ZUbwU++{T3QRT+=YF$Vn+XoO8tjG($n6Ln*TA(^!w9= z;#H0P%LlQCxZc^#ZMy%$?a1`iZ=5Sc6rQSUE~Uaa1Zl5$0~v=tZNGcX5c_@uH&tEn zDr>E& zs9*J9%2iGj*s3I_x6LJ@yG_wGuWTwN{Ymq)s#1c5p#39@x9id-UOf@z%OW2~%Xg}q zJqdl@;rSD%wJ+FbaJ;|rY+R+&Jz_Nt8XJLVGs0@8JXV|!>Y$UV@ZW1?a>6ipvIxF`Ysus{{4Ne-sr<8~*Y0Ox$ z%;@|8*Hojw6#$R!h_fg&PEg%sb$Bls53_p0*FOU`(R^;op{c6iWU`6xcSCT&?=H}tGQaEBB9e}qONqLqiM!iyZ?HuY zVeX^knawG|yAmxV>Ey?-RC283yFE;_K8;Mt=R;dKm^utBP~)&xzz9|NILO%QHr2Y#(@(MOt#W zcd`~I-ob0YzmweHMI1)OLn2Jf5i}HZxqa({lP$;eQ%MLqDmcpcZTnnl*!bZ%tnu^s zr^X$(A$R2dnZ1VD=#`Ch-RsRgUzc}wJ~vk#>3RlZYF4x-EGNdA7@B39M_!k{mUx|Z z5V-ehqnUyUSNZHEoB{$)yc)6>XROaRK=jt`CZ*4(XE8Y|>-4b>>)ndFB7KuPKeqBk z>I<*9%QF_UpK%*AG}lm?WDT%g=1p}^PJY%ity<&I+gdmk zQmeYmr1AXWhr@QAkGE?Tmm$)KJ4u=f0dsPN@?Y+4>*sP;SeAIL&VrjuTJ_bQz6~6s z{y?{W$>aKN!)n8-g@k7y1C1Lr7{8O;%g8uFUmF$po$((;boVF_;&da0EPc%0NMZ!DG9tl8q& zX4^`CNOF*>Bh{%by5=lClwM!-<@Qjvd*1XGsb{)~B;%u@PdT3kHqUM4Y(CtNUn^aU z{-Cgy|DoE|SoTR;^8UarkSWU+2Pik7D3eAdBFJq9Zfen0Avl^XrA8QWV@+^3fa?*D z2N_RfMKzrnD$}g##v5_J*aqXw6e4cBS_wp{@lAv(_$5MwOK4Xs}ivN&}qmZkBiDO~L zDT!TyG<`(j7S^(Z#sdL?+WWi@6fZldiB7o>=!kvkKeb;3_O-uW|3Ll@CUIxsGXK{7 zBcFX-l^LNxol7Tpaw({^X2CuspgoKXX>jcpsmQTY$Fzjh}SL{e^ST%I>wl%Vy8 z2nLRlLa#6NOd8(i#*Dn#vc}f1QsC0cy{*>`OGH%M)i@|1J>=3;sPukOpDy72xS;O# zK%esH*xQkXNE{d`DQ=Oo!&1%Lw^fF7*AD8RX3l6HUAF|(+1=R`8L%DM*`TbuqxQ=>LZNa$&TaFi0S7L)?qDSuJuQxOC!MGz@oos{r%+F6}M4To}$5{L7J=z#0H z;HJ3#fp*uiuq&^&{5zj|GkdTnu3h%`Kr6{ICI$(3DHNA#MC8r4*zYLzGl|EGZsHTG zCm-eHEjkWH2-&W0Y;%8Mu=X~aJ%qg+=_C**qKuejkj;DPyi#1CX{D38Qf9MfC=&T5 z=HojN?b6qAjUKO56e=$5%MEB0_INLS$T|?L*si3JtoVG?R_FhA2Yt=7s%4Mr5!Mk~ zabQ%PEOYUg_?>&jvuv|rZ}N8t3U}nA2N>_2+hCQWD6aZ?PVUM5eG(-s#|u=4H%NgO zLfFErCglh@cKq|pSbsJ{=ZJj1w#U-*tqjcfu^=W=oki54GTJ)I_>#fC>!ik4&k?&W zFwN6o-DBex3Gx++LE^uVle_?0t8LQBW8Ez^^9U!gO? z?*zK|=D4&%WKO@!^xvivRqORJ%};I-4d~>)#qsexaac4Y=}TsSfRLk0A2HJeTQP(5 zs&+$%xkH{%#OCd`$RXH#%QIGldDZQU3beF6t)11wa5`!FLrU7f%hadMc$71Z4ZZ0- z2@XiNIYTpF!C#t_s!FmRic`v$E}mLjesKzwJCjVzrak=L$~5Lf9&1Sa9PRc<>$%a+ zrQXk55MANYFEu8v9S1^NL$Fc)HYZt>p%AeZj6+Fn6Kk= zcCNP&*&z)qA4FN7d1kMthH@ctA$iq$joC~0<)aF5M>nyXGNteC47g0CpIOmdx`%j% zYL>q+KF#f{VHBVA=H3XQr6RejX^$KJCkBZH!~9fCnkU}Ie4rkV+C6Vuzj1oJ1`ppc zHmcsQZmTVRwDf+Yy-|z@i(?!!Jx3<=nycqp^`ITpYH~^0n3}l{QEv9ZolLjhwnUZ& zQxD{m3Aq@xVrKA_Z;^B;uq{{c`Bj>~(eNww(;BKZ)SV$1&O{`W)vyZjQ*!u3>#R-f zhiI3MX%D>N@M_*&K{0R~nss)IR^tp(XU~#|9F|LwGrIVGDetX%>Gs5g-!FCjA~R$# zCWU?0dU#tVE=Dt2RfX$q{LKnDy%JoOfbwBUKXtw5!?&2vo%hEOgE{7oLfcF-XBdMy86<1Wb2a*jxg_)CL^MP;R1YRXI!W0RAaj?se86{OSDM%9>DiV5P z3+z!9wk)F*yA# z`R7YYPp{5nG5FIFdC-H;P`ZE7lPx1#!v9nw9jaj% z_<8Ir%^*V3dj<~Fx6Yd@AN3Kz-+FNG7Df=_hgvsW5~Ff{Qu?I+i)2h%`^UI&w*h94 zyz3tjnXS1~eHX1Rru6#2-a+HE=+fl0l1$}xi_6Rd&$8`ACjh*YG z+`EOR%&Ky}Y0&FHT~}w5dpbPEU-N?8Dh6M1lDvocJoV~LNgoz&KlLMM2CPJOF&EYE zrRy(K&KR98Q%7Lx{8XP#NhW4WZfU36tmlfy}DxzkHZTElWjEItLtA|J}&rBZcp^Q zOrnpho)1&HpR)YgdC8JOqbyl?vT86Uy7tCts(ETPNA^3$264~6@KE&IzQeO@b=oD7 z&$0NLKbeUvxSfq@@@mYktuE$j)2LP5BfQv;qo!_GBy{OPo>+pc*`UknM{p0c{Vwa5 zmsXpv54~O<4ij?;U0CYVkPV~wO#hYTUES#OVANWVbH9_myNzK+meP6LZDJL-?bM8p za(5;f^2lDi{7ifwpMbg4<+-@!Wp>Z>mgSDL8^>>M89@Qr6pbxi@e-bar_Xx1^sOy$_Ck-gLIZbPy zEVAdUERx+~^@S-omh1|{58 zN-xS^BjPkWEM?Tb>~Nr#eSP4_;J#|gVZ<7@Psn0J+ZET9{v@Ho83KXgCMpXW1)0US zG_B&7RL>OFln|w>Ts5MwVaa7>3c|B1xxhl`d;WY`P*8g45;1bLgoX_NCG%ar$2?KW zwGoHY{EZl6Z8v#Ed(=}QhNH%#u_pHwj<00rkx5&{IKl}mLz#*%6#9cL_j|)K2?z|7 zlonrbmZ{=EMn2QhGD~7Y`gS*(BYlq)kT=aU?sr55ea#O}j4F(up7Bq^xi%K38r^-$ zeNBhLOJnNGorH8Ecbb+GbkKmfgk~Cj>^^E*v_BWd?jwai5~1Sb8iXASfv#R$eyA!s zUqhmLy`Y6X;8q&xqi~83Z}gKYU$IsWP(OL4NX;6n^>iXnYsF2|zuMGAcnTZL>U7|X z7Ny85uEPbTQYC9`2zs}KS)P7>+o!J>8TAZ4Jj(1E6`YltCDs@Wsk%yI)=Fs8f?6{w zX6m((cY3GPyDX7H%~MuGd&y3fj$|t`bSx>o!zXQq;>o?la?X{is$J`D^3YHBhFJvH z#RuOx;Owc}`5NUu4#HO0j=oH;4bh?RJ)l3=rRpz`9~(Vl5);|`V(mzF5tei+@zvmz z!Ch`v^ry#Qqr_C!WxJIG7K`Y)*Wi2PDiNl;2y&JETF$-tk5S4@aMh$P zxJaBI)jl<oF1jQ(Bhs3MeNv$&;(hIG)*jrr9sXy*nZwm8X0`%Q_2x z{iHJc%3*%vnFL$qhuCK24K|!=)0MiJ>#g-Y3z>?}+-$ZZ%Y~vNIhg(&q4rkXXeAnc zB1&8+6|V|1LTA~dz~9!Jj-{F6dUk8AT7(&KCzp9nOq=UjoO-gJcV4|tWl zjt=Pz8ihb5-0}sXZ`iaI_t?!|2kQhno0BOx7!M|07ewx8kD2RlTfW@G>)(o^a!6hzWs8gXJ4!DP8(s9Y>I_Gl&!RR zVl7zJ~88HZ)XJ+YBYLpE^hlHFlOA<+tkM`xF6Mf+S)yv;_%3?b4 zNck}=&JC3Dpdr@`t}>a4Bl5vQlP%)hWg5#%CMErXU9XldM(?kXUs8kyGP%e{4#TbQ zYW4dRk|#5=-uyYr?n0N*&v?C$wo;c(t3o&esOj!|}uCOsB!sv8n zhlCApoq0y^!A?*APFSu(Ty=yp&Ve7+_EW|6UdDqe*InGkZFMO#6-Ai$hRY~7BreqC z1#Ld%E23^4ccI&%1*rVm7rFwG?(11KG}84PRHYUh+mcgcm2OI$EA>xm_SI$d{dTc? z9(P%oT=t6VNcQ%@OP?xJ66+dMVB9q8;1Oh+h~FU`XCP&7Bh0v(D{pDwo2O(Uup1X} zPzKdbg)xkFuqi_@&q>b((hu$LmlcmUCO0~yw!BYvU^P{KvVyR-7NwxiRK%TTMbcl9 zC7zDRR(IwUBuu%2Vkf8P647kcpkR}V55dM(H%!-XGy6eD7CQ8El3kD>%Crf05?kadrij0qV*lGbg17ch_K6!K}B}<%p<{a6MhwAvBB+6Sz?osbC%bEG~T7hbZEp^yi5vL@}Q5-ezWRbMHxpV=&s$Q``;5NjczHRZ~=S=QGO#t)P?v&aorOxC;M>Y?b8;i9)eHGW#lu zFQ4;8f*6@a^dME6gAz&;b6NQ=^Y-jeTdkT&=_|{9nRTF*prt#8j1O?K+;A@3&7UOv zL?GNA?62|~KNAp@sg(u1`v}SXUv+@H$JT=Eyn~Kjp z-pumc;oH1k+D+tfhCR5u0sO^gx81K@yP8VWe2GcKCM*|^2vrxgv!nEmn4OQ*!c!!5 z#lZTZ#ExTf3eIaZzO;mG;Q}V0XHR!4PW7>vW0}g*EJ!D5`P$ z%(M3MGzuQ(R~VBY#O9M2%I>6CXjGXj%F5jv9c8`6<{=}N$4+%iV$K}ImaHg*`yi4U zb9DMi_NNHM*;jfB%DL|(*=Y=#{VqHaXl(p^gbeTmU5?kW$FY!vtW6R>e`}``_`>n? z5qBsp@iVJRI~~^dY!gFw?ybF{!m5r@SEbXSr*V4`zq5KjEQBmsL8YlxyBJhl*ew?h zB7Qe(cGr{+fq^Ph#^CzwjowvyJ~Hg9LrGC1TDcljmQ_-7!i+B{peddFaCN=#MW z?0##OW(_wN6x!_}ao3_|+3-+rcV^!F026MUGN+W1YiUh>^rGbc8irG{sV9n?{}QFi zYhj!^X)fdJ!YCSX=+R8}^A|ZFVG*XWmGtKhZnz7FSDh$KSH*`u!uitc)0vz}$}FB$ zA@Vv&bK6>EIX@`6lMdiFKAKPqx8;p-^+8BLGE>G z!tYy}C5vQbI3&9Ed(f2%N>wxP7Uq*(<_`UWPf77f%m3DE-{)LBs;tOQ)P1e|<}GuQ zOH8TE$({V>G*6rEI}oyQZp-$O35k7vbJ_J}7DIcx)wuNw68lhK>z80v-b8XXKy~V> znFTth!SYHGoEpdPk%2q?1fdhJgH0$emrQ8HkW`>q5MFe;Qco|XogK95(prAdBFbvK zob5RiP5FH_vYC(i=>9kttOa%FB$G&b_7^6}qIr04%0hQ1TIQPY@fB^;Z+Bcm$LJXi zUu%4F6Ps5)xt9h*(k%l)w>IFFTI77KRy4(H3ey=6_uTn;BTp8_ zw1#}4JEM%iaKF==JdvE3X}deC;H_r|qM;)t-i#z#i`FiDl`0|$q(eHaCB@z?dDN9o z?`IE^pmz7V1ifMVc%IvT8f+mxymI7xp5~z!x#-;^tMjeH&-~5b91$Ka^S7OwoVX8G z!KhM)G)YWoaN5w}L}U(mF;8=bK4eW)qmYuq-c_Vu)>PXhuXeq6`nk#~>UFqklyAe0 zGxz2N>Q*CdC*S#9SZ8su6zjw*9Ic|@v1<(|sp)BASt1sL=EbN??lw-^X3XL$RFYvx zEfg60+HwJmgl{z6?~>Q0icbXwEyBVQzU2Z}`1pi`s-6@UmM*+2oqGrNA#jmN<$NlT z%AJiU@!#-zkQDVuuKNgw&e(i?XI`GmlW08D{FY8*hWg+aImT!F=qjY`0C9Ew_){+5 zjRE~R%Z2_$2_EjKH_y;sk49p(9?KT?nu+fjKbX~eQd&@PfJfm)h-x_yJ1<3Ys2;bp zRYol86Xr{ENgX*b@Ye40Zd2&Y*S6{B>h8)V3rHc?=!5Qfm!NVHw-pxt&JtTrw*(Sz zWp3-!bEGKlY*g-4fP_-BF6c}`ZqS&F`zJ)$+~RZ~&&8>cGkOagX*~5Z=**e<)KNr1VCT&03Qp&ZXrxC$V(Wfyap63+IED7Mzl1 ziZRkArHW-M(T&Og)M72Q4o#e=lhf_-YhH$nyoP*nW==QCA3v!u-?45rg@4YQ%fGx) z*3~|CE8q=+#tG8xCx|j0SCMV@4IItH(P3b~qjYg`;Bnc^&HohHA|m~amMbc-S|Obw z=2h*v;bj~pfr~6PdsC8`9y1Wm_aZo3L1wGcWKZKdhfQe2=d!Qec(*c1kga}poX!QJ zYgG_jM7o&2NW*Kc7xm>LG|^@S#F4=iovhxLGBM%MIG&PrgO}Rg$y#x!K=HaR$EBJ# zuWwM`)Mgu)S=-(W36Mvt;_`i*!L8-LwXg1looJIJGE`Pyb+e$5OVCdCsknWs@QZpO zmubcwa;kkjb4F!Py@?#UCuf7PdDgHPGo&_{Gc~mL?otx0_}yH+Nrr)v^w3+e$e+Q$ z_ZGw1Cw3^$OWm|9ZwV}mL-JKw98&HN)t+7}vGtsE^KVkreqvP;C?_v-hvN!u!&S!7 zlon&e)~;ShhJBZ@LznoaTV6b9)@#C*Cag*XOlAVWg$wAjpOlb$6B-Q z5n4mzYrO8@jajy#Ad^?B1S%?zDGuE2DM>g!IGC(W4nMs?a1(z)lvTd?wDIQCHm`T@ zi|Jf(15sw<4gn>X!b%=oQ>gCw6lk!|yOz$-=iKVY(h=H2v0r<~uIC*4gF~-*Zv>(2 zN@z^ir9EavUm~-HJ$$-S3^#-}Mz&MV?U@g&3aNB}ymAEd_IW7&2vLFfK3*DKfpPTQxseOc9`CEj`CRrS8s&O-iR{oPEh-TnQfoo}rREe}mgMLM zA(SB%1*CJyp!f<5*-70ANkBcSOO zgj^Z?s2)Of!L6YYZDo-1Af-+O7NYdN;^_n4HWnGF&!H0xB2)u)TNfDWXi~`OHMN&f zVs%fAI3`FgYt~L>H@53fJ@4<5@V94X)cWfBq2$f;;k^(LN?UZoV>zbg;LTnFtq@AP zR`g0#r&jHYnyhyTVR3V)N3})oUw0!1*`z|Ul<3K-nMDF3!lbz{Ppr*Fh^f>9%P()2 zpGnBNORX2H%6ky)C)1AC08wh_XJ=l&Muj=sa9+gFs_T4LiE4%VDQ=uIcV+j)xA;vi zKiE{2WZnZ!p-+={#6Ghk53!7 zfXw7j6xWPj-5qYHJ+pdtBCy^0Zt14l>is|;xR&7D0>!KSS+!TU4|Rp}VOJ!fjPn+9 zp|9vIN~0X#w|o_;$rX8ygBN@H)~YmN1^)T_jKrcxjXa4KAGv370Jpce=`4*KynPtcbuf!HlH*ibui?EPPAc6di$rH# zaCIG)O7t*xie*;nE{S2F?Za1hLfk&%*Q$x0>v@(TN#$tTBvJdE64#$#!OI z^N|Bf%scxA*K;zOunag!;gPh@o+j9Q;c7#bJuP3{G0IcY9I&kA++1g?HTVU&D*kHn zf+wA3BBS_z@W@Klj5LNM!1sv~A)kjw%+XRh-|aWO2F6mwT2%^ZM!n<%v|1bPyW>im z@5rlQ?yV7WN6HJ-we{t4YP*H}1PTh*rb*UldV2kr-IZOGY}rM2d77fa>s8;84e@FY zRKWu{&%zK2q4#-0ar>@}GXlq!WZf2k_O6=<(iBpb7J7Q`+z5+s+ZeaHb?cpz{r$=Y zK4-?Nu>x%O2nTb4%kK&4TB@|FU$rMMhTv^}@F@tX>7m(n<9E3(qc|CqZhu;ufFVC& zKVUI{J2Ux7@%m^Q!th{$h{)_Vib0@@+Zz)?oL81_zi2;tlZ1#oC!{xb-0B6gZdUVt zIICSt{$g%Na6%nlQ%`EL87WUEBZlqH^@5Br{wLyI+sh51J7Yn(j4t+TWG;JrzHYvY zVB=0U@bF;&=_jLRXCL#p$a|GTuLxQv_fa;#oqzQT@0AWM`yJiu!-dA4qTWxqJi`*M z2~k7MdfYLXg0ayUmgN%X+0>~(CH13)n3}2G2itOo<99!|U$E^zADd7Eb0%P{$i`gv z4;rBhPIsJ>#XdBuZ#5Qq##oMC1_#|3j&-e*N3IjtevFbWTVKDYlbD!2vIp+IEPdsi zdpo1q&Hhm)<7h08FL7MH?u_`OjlM7y&$c^bR1uus0$yzBcNcXl6TLa${LC_;A)K1C zIf*)rWk}V&*uo@5PYFg5xmiS|S6^pDim9~~iTnPh$+E@uQ!aMrqa5;TN(*YG?90kV z%qh$*!fsHGYwD`1vpSI~S$i%#d!w%Zior^SChg%Dl^adxi^T*gL76OUGEbj9B6EoU zpwB(7=vYZw*ej=oN{~GRjrCz&Hww>P2os#<^XFh(ZO<6cYRn_jD1wo^3g`Ha4IPgj3oUCnEWl6;f1$$zsM=T6ZB{@d^6xV{E>#L7jj z=iYLNN|7#A_V0_k<0Dg~3b7mJ3}neKHasvSdgKD))I)KMDYp>6d|7k0w-#R?T8qZ;?@P(mHcp z1RKJ!*|}&9W5R}F!{$6|`n7jG3@l`;^4X>NyrqgleC@R~V5~=19W0VUZ2hhs zr2R1b`mHia9-rfNL&^U^A2dOz?PxY@ z%k)0=u%n2HX(;0%uBd9-8Y|r%N%%o7^{n&;-a)R-`t+w4wgL)WMR{Yak8jIGq|xP= z-+yANRA{PD7~mBzU+|dS{2sO zByc+V+SNi|O=YDftO=Pzy4?Qk+>7%pBrkC?n=YcR8Km`=Yh)Go7e)$n-h0!@tISca znv0_mUK5Seu2U+!%Gbfm!~6UyNyp7;3#aqrjbRe&HKQ|{A%~0HxAPa^dxTr-LB{%R zry9=etwt?kG2pd~-EdnMrh>~S-roAGlT_sEWR(vVIv7dz5sTqszRCFXxg}2@dyvo5 zjgPv785I}yN+C%JNt$ZD#MBPb&)W&v6-K|hv&EJ z%mSy5tk#L7rK>v3A%3o?qZ+fjlK1KA%f{`=m3dL?Nv#@jGcrE^A;XL{W4(|A|7h;u z+eJp>F&?$&nsO56-n-TJ5%Ky|>^!@B72@)>JGuJ^K-LG zhuL41-&4(y>9O2e6P~U=3yw8~Vkfs;%$PvjZDb`#-{rgBMuN?ejO!%g?n3H+f!`zG z($(}CrP{Y&CdgL2)4bDckMfB?%~}lyyX#P5SXW7fCl!_F^TRiW@r7X~p^s9|)=v#5 zXdz#HcH`dpl15E<;UObZ>ISpfEbB-eBN~Ojo4EbO&(vHB?R0atA^cwOU1isX<1^Fv=>@ERO+9Ud{YiZ2 z@>Mpy@Uubmg!&df?;ylgctP|boQ_Y4yKTSCFOO4I$fl7pZohp{Rg1RM%CIo@O_Am_?g(mc)K@qefl%9R zP0cYCHk~^#TesSSl!K7q+SgpJh_$u#KtIiR-iKpIX}80axB%Dn!LEp7DNm|IP)} z;u0P4xtf*1jlst61?>PnZ`> zxDMY9@Z7b2zRSAx@k;-Moux?gXHCYk1@CG@ zNJZUy)S-40QMHl|297`>Ry=?>e{h}%E;~9JqH!$mqEc!Tg(A&AClTsfTxboaM zl2KX;3kV(b6{1}I`%klhfO3CCX%mxCV=~sa1Oix!EBu7rNQf~(c)=hg71r$>UBmvO^ zAOA0jvC=oQ)&es@0Q{1p^|vsU#|319f)u}%OI6?61bxhVe5WHKqH}E8 z5Y_HjpCn)qPDueM7y<*sfWLe&emLqf7{UPtb8vyaabfH@#eno^CK+o-{1bd& zFc6ja1PuZKYQk+Ep(n}<@6n@l+ zx(nv#10zq`l>fLAozTmV0{>oL_~D2XHh=&@v5%v6|5{%ld=S*h@f2 z`+Ls+dwHS!fU$nl0R^A50q}Ml_h)~x9}IxLo~Q>9z{;qT@(@5@a560)0(SD<0@^yD z#DD4l;xwCCqU{KPUQ5l)4GlEeAXN;;feBz?QU%Fa8)KNh^+CY3q?Qm2&L=L#2Z2k$ z#etRvB_$5$2VWE87ek3dC7}oeTtr9$f#jD0OTopE2rwMNhu}w{U~qA`n7EjP6b#HK zCIa+s1ojRzzqxma0R+Y7h|v*;gpn*zY~F&V_d^o_;ALYU=yf2ygV z%p`%aLo>m7p}Y_tLogi1gn;tGkWeHPb%hBE2J?f!5D)~#13?HN_yk}`rXL>`5nSL( z2na+ipbB)P-xUIP!Yrl^4mJWHkh8NhuQQAnV`l;asxBY~3W7p;01h5|S8E4-7anVS z*6%`o$^p7|Lpw8@<1qo#v0QxvjH81v3(K*hKR!Q7W@V$G@P{gEd){y5^$_dEbkJA1Nf~1^)sNa7U z87Pqu;4TFP0U2wc0$CfPWh6x$9nFjcjNnEv1GF(84-|?<@<5PqV;+<-AC$)k21Xem z(E9u+Ba{&6x3qtn>4#h;;7k@XYkf;ejG?0ypc|0?y*e0S3;{J})<#AGd+0g{Iw4FxKJKF}r_fq&}y8+pI!{6!a#L0&)&9166ya0ziK1b}=; z0fP$(2wV~g5d-r{fFY9N$e+@GN%@;pRbcpNc3dwcfJ0#HMQrRa7-In&BjcZGPdxuE zy(HSs%n5CD%?@Mrt!4p3U3>JgmxWn=y7`Z)_`RkHeXA#cjs9@Wx8eZh;gdp$!=(7Y z|F}HACH*r$$4>wL81TVQryNT*0wkj#P;ox!H8@oKyQTPnzEBb>DK5?rG^COUF(Dvi zJWv}2eo6Xwk}>}=w|`gnH}d{YEfB)~S05RnjrD;eCVuAm#M3_o{B+?jF8bE8{BXnf zT7KQk-T`Ch`pbi3LmsygYG~WPQhz?MH2W7l{X>zx1MoTv=zp8bh!|q5ozOspdZXj) z|3d#W+uu_iEBnrHJb40|ShStJi1BeP1Evu`fbj40DHk5#Rr@||alriL$+s%}n}C0; z#U5kq;H+)w)FD6z!7uP_@+JTVnvL%z`^I%rh!E)5dzNN@b>4UCUw!(sf}E%W-&ud@ zGJZ<>RxN&^{|jBoKX1i6%;8~+bc|1obE8UEo68%I0K zZ^H*8LlD{$ecXfD13fzg^cRO1844I5pMl~a^6M-2?Zx`@(SJIZfcQVM`Inv_cmQM( z_SY-|M1h}c4?hh2``UvL=r3%)xagSvV_ibz+q%Se)}N$*TDI?g0S0Km=n(YB@bKrW z@<$`~KXUPB5&lQSe;4{+CI6Oj|7))Qn(N=Pz`w=(-`e$GbNyQu__vta=ED7R zfeDzk39~o@%SXTOegR8zKi99s>>R`~E?Q79F9KNgheCLfa9}l(4}#!@11q>FJ{T_y z2G;?JTcXiM{|ci7#@gX{JjVnq1p@1G5_TAye@pcx*5@V+ZEU=-EZ`8m{z`7-q zs))#+`*Q$Y8lVH~!9Y@JH3+aj^y3l=oZa_>`x;ONfKeTy3v6>8ul1=OUjw|~H3HWF zGqA+^oel$zr2Tmf2M(tFAp{r~8mgfkv_Qa!5TuTFanJ#2DjArg4Ua`%vjQZ4E3F9d z0XC=1to{`%eOta#);IZO1M7c#-|cvJ<3G3W2Kn1;xGvjpl;fs WodDM!FBboG{TKxYUa%kQ$Nvvb6JS*U diff --git a/local/modules/modules/Colissimo/documentation/readme.txt b/local/modules/modules/Colissimo/documentation/readme.txt deleted file mode 100644 index b673e196..00000000 --- a/local/modules/modules/Colissimo/documentation/readme.txt +++ /dev/null @@ -1,3 +0,0 @@ -Colissimo prices based on April 2013 pdf. -TarifsAvril2013.pdf is available in this module documentation folder. -You may update prices in Config/prices.json file. \ No newline at end of file diff --git a/local/modules/modules/Colissimo/templates/backOffice/default/assets/js/module-configuration-js.html b/local/modules/modules/Colissimo/templates/backOffice/default/assets/js/module-configuration-js.html deleted file mode 100644 index a51dac94..00000000 --- a/local/modules/modules/Colissimo/templates/backOffice/default/assets/js/module-configuration-js.html +++ /dev/null @@ -1,36 +0,0 @@ -{javascripts file="assets/js/bootstrap-switch/bootstrap-switch.js"} - -{/javascripts} - - \ No newline at end of file diff --git a/local/modules/modules/Colissimo/templates/backOffice/default/module_configuration.html b/local/modules/modules/Colissimo/templates/backOffice/default/module_configuration.html deleted file mode 100644 index 3c495353..00000000 --- a/local/modules/modules/Colissimo/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,316 +0,0 @@ -
- - {loop name="checkrights.colissimo" type="colissimo.check.rights"} -
-

{$ERRMES} {$ERRFILE} | {intl d='colissimo.bo.default' l="Please change the access rights"}.

-
- {/loop} -
- -{elseloop rel="checkrights.colissimo"} - -
-

{intl d='colissimo.bo.default' l="Colissimo Module allows to send your products all around the world with La Poste."}

-
- - - -
-
-
- {form name="colissimo.configuration"} - - {form_hidden_fields form=$form} - - {form_field form=$form field="enabled"} -
- - {if ! empty($label_attr.help)} - {$label_attr.help} - {/if} -
- {/form_field} - - - - {/form} -
-
-
- -
-
-
- - - -
- - -
- {form name="colissimo.export.form"} - {if $form_error}
{$form_error_message}
{/if} -
- {form_hidden_fields} -
- -
- {intl d='colissimo.bo.default' l="Change orders status after export"} -
- -
- - {form_field field="status_id"} - - - - - - - - - - - - - {/form_field} -
-   - - -
-   - - -
-   - - -
- - {intl d='colissimo.ai' l="*If you choose this option, the exported orders would not be available on this page anymore"} -
-
- - - - - - - - - - - - - - - {loop name="colissimo.notsend.loop" type="colissimo.notsend.loop"} - - - - - - - - - - {/loop} - {elseloop rel="colissimo.notsend.loop"} - - - - {/elseloop} - -
- {intl d='colissimo.ai' l="REF"} - - {intl d='colissimo.ai' l="Customer"} - - {intl d='colissimo.ai' l="Date"} - - {intl d='colissimo.ai' l="Total taxed amount"} - - {intl d='colissimo.ai' l="Number of packages"} - - {intl d='colissimo.ai' l="Packages weight"} - - {intl d='colissimo.ai' l="Export"} -
- {$REF} - - {loop type='customer' name='colissimo.customer' id=$CUSTOMER current='false'} - {$LASTNAME} {$FIRSTNAME} - {/loop} - - {$CREATE_DATE|date_format} - - {$TOTAL_TAXED_AMOUNT} {loop name="list.socolissimo.getcurrency" type="currency" id=$CURRENCY}{$SYMBOL}{/loop} - - {form_field form=$form field="order_nb_pkg_"|cat:$ID} - - {/form_field} - - {form_field form=$form field="order_weight_"|cat:$ID} - - {/form_field} - - {form_field field="order_"|cat:$ID} - - {/form_field} -
-
-
{intl d='colissimo.ai' l="There is currently not orders to export"}
-
- - {ifloop rel="colissimo.notsend.loop"} - - {/ifloop} -
- {/form} -
- -
- - {assign var="isColissimoFreeShipping" value=0} - {form name="colissimo.freeshipping.form"} -
-
- {form_hidden_fields} - - {form_field field="freeshipping"} - - -
- -
- {/form_field} -
- {/form} - -
-
-
-
-
-{/elseloop} diff --git a/local/modules/modules/FreeOrder/Config/config.xml b/local/modules/modules/FreeOrder/Config/config.xml deleted file mode 100644 index 42d3733f..00000000 --- a/local/modules/modules/FreeOrder/Config/config.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/local/modules/modules/FreeOrder/Config/module.xml b/local/modules/modules/FreeOrder/Config/module.xml deleted file mode 100644 index 362cb923..00000000 --- a/local/modules/modules/FreeOrder/Config/module.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - FreeOrder\FreeOrder - - There's nothing to pay for this order - This is a pseudo-payment module for free orders. - - - Vous n'avez rien à payer pour cette commande - Un pseudo-module de paiement pour les commandes de montant nul - - - en_US - fr_FR - - 2.3.4 - - Franck Allimant - CQFDev - franck@cqfdev.fr - - payment - 2.2.0 - alpha - diff --git a/local/modules/modules/FreeOrder/FreeOrder.php b/local/modules/modules/FreeOrder/FreeOrder.php deleted file mode 100644 index b5d1df02..00000000 --- a/local/modules/modules/FreeOrder/FreeOrder.php +++ /dev/null @@ -1,40 +0,0 @@ -getCurrentOrderTotalAmount() == 0; - } - - public function pay(Order $order) - { - $event = new OrderEvent($order); - $event->setStatus(OrderStatusQuery::getPaidStatus()->getId()); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_UPDATE_STATUS, $event); - } - - public function manageStockOnCreation() - { - return false; - } -} diff --git a/local/modules/modules/FreeOrder/LICENSE.txt b/local/modules/modules/FreeOrder/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/FreeOrder/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/FreeOrder/Readme.md b/local/modules/modules/FreeOrder/Readme.md deleted file mode 100644 index 63333460..00000000 --- a/local/modules/modules/FreeOrder/Readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Free Order - -This module is used to terminate the order process when the order amount is 0,00. In this case, none of the traditional -payment modules applies. - -## Installation - -This module is bundled with Thelia standard distribution. - -### Manually - -* Copy the module into ```/local/modules/``` directory and be sure that the name of the module is FreeOrder. -* Activate it in your thelia administration panel - -### Composer - -Add it in your main thelia composer.json file - -``` -composer require thelia/free-order-module:~1.0 -``` - -## Usage - -The module is displayed as needed in the payment modules list of the order-invoice page. \ No newline at end of file diff --git a/local/modules/modules/Front/Config/config.xml b/local/modules/modules/Front/Config/config.xml deleted file mode 100644 index dc19adf1..00000000 --- a/local/modules/modules/Front/Config/config.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - Front/Config/front.xml - - %kernel.cache_dir% - %kernel.debug% - - - - - - diff --git a/local/modules/modules/Front/Config/front.xml b/local/modules/modules/Front/Config/front.xml deleted file mode 100644 index bec4bdda..00000000 --- a/local/modules/modules/Front/Config/front.xml +++ /dev/null @@ -1,273 +0,0 @@ - - - - - - Thelia\Controller\Front\DefaultController::noAction - includes/mini-cart - - - - Thelia\Controller\Front\DefaultController::noAction - includes/addedToCart - - - - - Front\Controller\CustomerController::viewRegisterAction - - - - Front\Controller\CustomerController::createAction - register - - - - - Front\Controller\CustomerController::viewLoginAction - - - - Front\Controller\CustomerController::loginAction - login - - - - - Front\Controller\CustomerController::newPasswordAction - password - - - - Front\Controller\CustomerController::newPasswordSentAction - password - - - - - Front\Controller\CustomerController::logoutAction - - - - - Front\Controller\CustomerController::confirmCustomerAction - - - - - - Thelia\Controller\Front\DefaultController::noAction - account - - - - Front\Controller\CustomerController::viewAction - account-update - - - - Front\Controller\CustomerController::updateAction - account-update - - - - - Front\Controller\CustomerController::updatePasswordAction - account-password - - - - Thelia\Controller\Front\DefaultController::noAction - account-password - - - - Front\Controller\OrderController::viewAction - \d+ - - - - Front\Controller\OrderController::generateDeliveryPdf - \d+ - - - - Front\Controller\OrderController::generateInvoicePdf - \d+ - - - - Front\Controller\OrderController::downloadVirtualProduct - \d+ - - - - - - Thelia\Controller\Front\DefaultController::noAction - address - - - - Front\Controller\AddressController::createAction - address - - - - Front\Controller\AddressController::updateViewAction - address-update - - - - Front\Controller\AddressController::processUpdateAction - address-update - - - - Front\Controller\AddressController::deleteAction - account - - - - Front\Controller\AddressController::generateModalAction - modal-address - \d+ - - - - Front:Address:makeAddressDefault - \d+ - - - - - - - Thelia\Controller\Front\DefaultController::noAction - cart - - - - Front\Controller\CartController::addItem - - - - Front\Controller\CartController::deleteItem - cart - - - - Front\Controller\CartController::changeItem - cart - - - - Front\Controller\CartController::changeCountry - cart - - - - - - Front\Controller\OrderController::deliver - order-delivery - - - - Front\Controller\OrderController::deliverView - order-delivery - - - - Front\Controller\OrderController::getDeliveryModuleListAjaxAction - - - - Front\Controller\OrderController::invoice - order-invoice - - - - Thelia\Controller\Front\DefaultController::noAction - order-invoice - - - - Front\Controller\CouponController::consumeAction - order-invoice - - - - Front\Controller\CouponController::clearAllCouponsAction - order-invoice - - - - Front\Controller\OrderController::pay - - - - Front\Controller\OrderController::orderPlaced - order-placed - - - - Front\Controller\OrderController::orderFailed - order-failed - - - - - - Front\Controller\ContactController::sendAction - contact - - - - Thelia\Controller\Front\DefaultController::noAction - contact-success - - - - - - Front\Controller\NewsletterController::subscribeAction - newsletter - - - - Front\Controller\NewsletterController::unsubscribeAction - newsletter-unsubscribe - - - - - - - Front\Controller\SitemapController::generateAction - - - - - - Front\Controller\FeedController::generateAction - catalog - - - - - - - - Thelia\Controller\Front\DefaultController::emptyRoute - - - - - Thelia\Controller\Front\DefaultController::noAction - index - ^(?!admin|api)[^/]+ - - diff --git a/local/modules/modules/Front/Config/module.xml b/local/modules/modules/Front/Config/module.xml deleted file mode 100644 index 8b61bb66..00000000 --- a/local/modules/modules/Front/Config/module.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Front\Front - - Front integration - - - - Front office module - - - - en_US - fr_FR - - 2.3.0 - - - Thelia team - info@thelia.net - - - classic - 2.2.0 - alpha - 1 - diff --git a/local/modules/modules/Front/Controller/AddressController.php b/local/modules/modules/Front/Controller/AddressController.php deleted file mode 100644 index 5ef57311..00000000 --- a/local/modules/modules/Front/Controller/AddressController.php +++ /dev/null @@ -1,273 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Front\Controller; - -use Front\Front; -use Symfony\Component\Form\Form; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Address\AddressCreateOrUpdateEvent; -use Thelia\Core\Event\Address\AddressEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\AddressQuery; -use Thelia\Model\Customer; - -/** - * Class AddressController - * @package Thelia\Controller\Front - * @author Manuel Raynaud - */ -class AddressController extends BaseFrontController -{ - - /** - * Controller for generate modal containing update form - * Check if request is a XmlHttpRequest and address owner is the current customer - * - * @param $address_id - */ - public function generateModalAction($address_id) - { - - $this->checkAuth(); - $this->checkXmlHttpRequest(); - - } - - /** - * Create controller. - * Check if customer is logged in - * - * Dispatch TheliaEvents::ADDRESS_CREATE event - */ - public function createAction() - { - $this->checkAuth(); - - $addressCreate = $this->createForm(FrontForm::ADDRESS_CREATE); - - try { - /** @var Customer $customer */ - $customer = $this->getSecurityContext()->getCustomerUser(); - - $form = $this->validateForm($addressCreate, "post"); - $event = $this->createAddressEvent($form); - $event->setCustomer($customer); - - $this->dispatch(TheliaEvents::ADDRESS_CREATE, $event); - - return $this->generateSuccessRedirect($addressCreate); - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans("Please check your input: %s", ['%s' => $e->getMessage()], Front::MESSAGE_DOMAIN); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans("Sorry, an error occured: %s", ['%s' => $e->getMessage()], Front::MESSAGE_DOMAIN); - } - - Tlog::getInstance()->error(sprintf("Error during address creation process : %s", $message)); - - $addressCreate->setErrorMessage($message); - - $this->getParserContext() - ->addForm($addressCreate) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($addressCreate->hasErrorUrl()) { - return $this->generateErrorRedirect($addressCreate); - } - } - - protected function createAddressEvent(Form $form) - { - return new AddressCreateOrUpdateEvent( - $form->get("label")->getData(), - $form->get("title")->getData(), - $form->get("firstname")->getData(), - $form->get("lastname")->getData(), - $form->get("address1")->getData(), - $form->get("address2")->getData(), - $form->get("address3")->getData(), - $form->get("zipcode")->getData(), - $form->get("city")->getData(), - $form->get("country")->getData(), - $form->get("cellphone")->getData(), - $form->get("phone")->getData(), - $form->get("company")->getData(), - $form->get("is_default")->getData(), - $form->get("state")->getData() - ); - } - - public function updateViewAction($address_id) - { - $this->checkAuth(); - - $customer = $this->getSecurityContext()->getCustomerUser(); - $address = AddressQuery::create()->findPk($address_id); - - if (!$address || $customer->getId() != $address->getCustomerId()) { - return $this->generateRedirectFromRoute('default'); - } - - $this->getParserContext()->set("address_id", $address_id); - } - - public function processUpdateAction($address_id) - { - $this->checkAuth(); - - $addressUpdate = $this->createForm(FrontForm::ADDRESS_UPDATE); - - try { - $customer = $this->getSecurityContext()->getCustomerUser(); - - $form = $this->validateForm($addressUpdate); - - $address = AddressQuery::create()->findPk($address_id); - - if (null === $address) { - return $this->generateRedirectFromRoute('default'); - } - - if ($address->getCustomer()->getId() != $customer->getId()) { - return $this->generateRedirectFromRoute('default'); - } - - $event = $this->createAddressEvent($form); - $event->setAddress($address); - - $this->dispatch(TheliaEvents::ADDRESS_UPDATE, $event); - - return $this->generateSuccessRedirect($addressUpdate); - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans("Please check your input: %s", ['%s' => $e->getMessage()], Front::MESSAGE_DOMAIN); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans("Sorry, an error occured: %s", ['%s' => $e->getMessage()], Front::MESSAGE_DOMAIN); - } - - $this->getParserContext()->set("address_id", $address_id); - - Tlog::getInstance()->error(sprintf("Error during address creation process : %s", $message)); - - $addressUpdate->setErrorMessage($message); - - $this->getParserContext() - ->addForm($addressUpdate) - ->setGeneralError($message) - ; - - if ($addressUpdate->hasErrorUrl()) { - return $this->generateErrorRedirect($addressUpdate); - } - } - - public function deleteAction($address_id) - { - $this->checkAuth(); - $error_message = false; - - $customer = $this->getSecurityContext()->getCustomerUser(); - $address = AddressQuery::create()->findPk($address_id); - - if (!$address || $customer->getId() != $address->getCustomerId()) { - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - return $this->jsonResponse( - json_encode( - array( - "success" => false, - "message" => $this->getTranslator()->trans( - "Error during address deletion process", - [], - Front::MESSAGE_DOMAIN - ) - ) - ) - ); - } else { - return $this->generateRedirectFromRoute('default'); - } - } - - try { - $this->dispatch(TheliaEvents::ADDRESS_DELETE, new AddressEvent($address)); - } catch (\Exception $e) { - $error_message = $e->getMessage(); - } - - Tlog::getInstance()->error(sprintf('Error during address deletion : %s', $error_message)); - - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - if ($error_message) { - $response = $this->jsonResponse(json_encode(array( - "success" => false, - "message" => $error_message - ))); - } else { - $response = $this->jsonResponse( - json_encode([ - "success" => true, - "message" => "" - ]) - ); - } - - return $response; - - } else { - return $this->generateRedirectFromRoute('default', array('view'=>'account')); - } - } - - public function makeAddressDefaultAction($addressId) - { - $this->checkAuth(); - - $address = AddressQuery::create() - ->filterByCustomerId($this->getSecurityContext()->getCustomerUser()->getId()) - ->findPk($addressId) - ; - - if (null === $address) { - $this->pageNotFound(); - } - - try { - $event = new AddressEvent($address); - $this->dispatch(TheliaEvents::ADDRESS_DEFAULT, $event); - } catch (\Exception $e) { - $this->getParserContext() - ->setGeneralError($e->getMessage()) - ; - - return $this->render("account"); - } - - return $this->generateRedirectFromRoute('default', array('view'=>'account')); - } -} diff --git a/local/modules/modules/Front/Controller/CartController.php b/local/modules/modules/Front/Controller/CartController.php deleted file mode 100644 index 8cb0efd9..00000000 --- a/local/modules/modules/Front/Controller/CartController.php +++ /dev/null @@ -1,237 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ -namespace Front\Controller; - -use Front\Front; -use Propel\Runtime\Exception\PropelException; -use Symfony\Component\HttpFoundation\Cookie; -use Symfony\Component\HttpFoundation\Request; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Cart\CartEvent; -use Thelia\Core\Event\Order\OrderEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Form\CartAdd; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\AddressQuery; -use Thelia\Model\ConfigQuery; -use Thelia\Model\OrderPostage; -use Thelia\Module\Exception\DeliveryException; -use Thelia\Tools\URL; - -class CartController extends BaseFrontController -{ - public function addItem() - { - $request = $this->getRequest(); - - $cartAdd = $this->getAddCartForm($request); - $message = null; - - try { - $form = $this->validateForm($cartAdd); - - $cartEvent = $this->getCartEvent(); - - $cartEvent->bindForm($form); - - $this->getDispatcher()->dispatch(TheliaEvents::CART_ADDITEM, $cartEvent); - - $this->afterModifyCart(); - - - if ($this->getRequest()->isXmlHttpRequest()) { - $this->changeViewForAjax(); - } elseif (null !== $response = $this->generateSuccessRedirect($cartAdd)) { - return $response; - } - - } catch (PropelException $e) { - Tlog::getInstance()->error(sprintf("Failed to add item to cart with message : %s", $e->getMessage())); - $message = $this->getTranslator()->trans( - "Failed to add this article to your cart, please try again", - [], - Front::MESSAGE_DOMAIN - ); - } catch (FormValidationException $e) { - $message = $e->getMessage(); - } - - if ($message) { - $cartAdd->setErrorMessage($message); - $this->getParserContext()->addForm($cartAdd); - } - } - - public function changeItem() - { - $cartEvent = $this->getCartEvent(); - $cartEvent->setCartItemId($this->getRequest()->get("cart_item")); - $cartEvent->setQuantity($this->getRequest()->get("quantity")); - - try { - $this->getTokenProvider()->checkToken( - $this->getRequest()->query->get('_token') - ); - - $this->dispatch(TheliaEvents::CART_UPDATEITEM, $cartEvent); - - $this->afterModifyCart(); - - if ($this->getRequest()->isXmlHttpRequest()) { - $this->changeViewForAjax(); - } - } catch (\Exception $e) { - Tlog::getInstance()->error(sprintf("Failed to change cart item quantity: %s", $e->getMessage())); - - $this->getParserContext()->setGeneralError($e->getMessage()); - } - } - - public function deleteItem() - { - $cartEvent = $this->getCartEvent(); - $cartEvent->setCartItemId($this->getRequest()->get("cart_item")); - - try { - $this->getTokenProvider()->checkToken( - $this->getRequest()->query->get('_token') - ); - - $this->getDispatcher()->dispatch(TheliaEvents::CART_DELETEITEM, $cartEvent); - - $this->afterModifyCart(); - } catch (\Exception $e) { - Tlog::getInstance()->error(sprintf("error during deleting cartItem with message : %s", $e->getMessage())); - $this->getParserContext()->setGeneralError($e->getMessage()); - } - - $this->changeViewForAjax(); - - if (null != $successUrl = $this->getRequest()->query->get('success_url')) { - $response = $this->generateRedirect( - URL::getInstance()->absoluteUrl($successUrl) - ); - - return $response; - } - } - - protected function changeViewForAjax() - { - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - $request = $this->getRequest(); - - $view = $request->get('ajax-view', "includes/mini-cart"); - - $request->attributes->set('_view', $view); - } - } - - public function changeCountry() - { - $redirectUrl = URL::getInstance()->absoluteUrl("/cart"); - $deliveryId = $this->getRequest()->get("country"); - $cookieName = ConfigQuery::read('front_cart_country_cookie_name', 'fcccn'); - $cookieExpires = ConfigQuery::read('front_cart_country_cookie_expires', 2592000); - $cookieExpires = intval($cookieExpires) ?: 2592000; - - $cookie = new Cookie($cookieName, $deliveryId, time() + $cookieExpires, '/'); - - $response = $this->generateRedirect($redirectUrl); - $response->headers->setCookie($cookie); - - return $response; - } - - /** - * @return \Thelia\Core\Event\Cart\CartEvent - */ - protected function getCartEvent() - { - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - - return new CartEvent($cart); - } - - /** - * Find the good way to construct the cart form - * - * @param Request $request - * @return CartAdd - */ - private function getAddCartForm(Request $request) - { - if ($request->isMethod("post")) { - $cartAdd = $this->createForm(FrontForm::CART_ADD); - } else { - $cartAdd = $this->createForm( - FrontForm::CART_ADD, - "form", - array(), - array( - 'csrf_protection' => false, - ), - $this->container - ); - } - - return $cartAdd; - } - - protected function afterModifyCart() - { - /* recalculate postage amount */ - $order = $this->getSession()->getOrder(); - if (null !== $order) { - $deliveryModule = $order->getModuleRelatedByDeliveryModuleId(); - $deliveryAddress = AddressQuery::create()->findPk($order->getChoosenDeliveryAddress()); - - if (null !== $deliveryModule && null !== $deliveryAddress) { - $moduleInstance = $deliveryModule->getDeliveryModuleInstance($this->container); - - $orderEvent = new OrderEvent($order); - - try { - $postage = OrderPostage::loadFromPostage( - $moduleInstance->getPostage($deliveryAddress->getCountry()) - ); - - $orderEvent->setPostage($postage->getAmount()); - $orderEvent->setPostageTax($postage->getAmountTax()); - $orderEvent->setPostageTaxRuleTitle($postage->getTaxRuleTitle()); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_POSTAGE, $orderEvent); - } catch (DeliveryException $ex) { - // The postage has been chosen, but changes in the cart causes an exception. - // Reset the postage data in the order - $orderEvent->setDeliveryModule(0); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_MODULE, $orderEvent); - } - } - } - } -} diff --git a/local/modules/modules/Front/Controller/ContactController.php b/local/modules/modules/Front/Controller/ContactController.php deleted file mode 100644 index e476a015..00000000 --- a/local/modules/modules/Front/Controller/ContactController.php +++ /dev/null @@ -1,84 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Front\Controller; - -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\ConfigQuery; - -/** - * Class ContactController - * @package Thelia\Controller\Front - * @author Manuel Raynaud - */ -class ContactController extends BaseFrontController -{ - /** - * send contact message - */ - public function sendAction() - { - $contactForm = $this->createForm(FrontForm::CONTACT); - - try { - $form = $this->validateForm($contactForm); - - $this->getMailer()->sendSimpleEmailMessage( - [ ConfigQuery::getStoreEmail() => $form->get('name')->getData() ], - [ ConfigQuery::getStoreEmail() => ConfigQuery::getStoreName() ], - $form->get('subject')->getData(), - '', - $form->get('message')->getData(), - [], - [], - [ $form->get('email')->getData() => $form->get('name')->getData() ] - ); - - if ($contactForm->hasSuccessUrl()) { - return $this->generateSuccessRedirect($contactForm); - } - - return $this->generateRedirectFromRoute('contact.success'); - - } catch (FormValidationException $e) { - $error_message = $e->getMessage(); - } - - Tlog::getInstance()->error(sprintf('Error during sending contact mail : %s', $error_message)); - - $contactForm->setErrorMessage($error_message); - - $this->getParserContext() - ->addForm($contactForm) - ->setGeneralError($error_message) - ; - - // Redirect to error URL if defined - if ($contactForm->hasErrorUrl()) { - return $this->generateErrorRedirect($contactForm); - } - } -} diff --git a/local/modules/modules/Front/Controller/CouponController.php b/local/modules/modules/Front/Controller/CouponController.php deleted file mode 100644 index c21288f9..00000000 --- a/local/modules/modules/Front/Controller/CouponController.php +++ /dev/null @@ -1,159 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ -namespace Front\Controller; - -use Front\Front; -use Propel\Runtime\Exception\PropelException; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Coupon\CouponConsumeEvent; -use Thelia\Core\Event\Order\OrderEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Exception\UnmatchableConditionException; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\AddressQuery; -use Thelia\Model\OrderPostage; -use Thelia\Module\Exception\DeliveryException; - -/** - * Class CouponController - * @package Thelia\Controller\Front - * @author Guillaume MOREL - */ -class CouponController extends BaseFrontController -{ - /** - * Clear all coupons. - */ - public function clearAllCouponsAction() - { - // Dispatch Event to the Action - $this->getDispatcher()->dispatch(TheliaEvents::COUPON_CLEAR_ALL); - } - - /** - * Coupon consuming - */ - public function consumeAction() - { - $this->checkCartNotEmpty(); - - $message = false; - $couponCodeForm = $this->createForm(FrontForm::COUPON_CONSUME); - - try { - $form = $this->validateForm($couponCodeForm, 'post'); - - $couponCode = $form->get('coupon-code')->getData(); - - if (null === $couponCode || empty($couponCode)) { - $message = true; - throw new \Exception( - $this->getTranslator()->trans( - 'Coupon code can\'t be empty', - [], - Front::MESSAGE_DOMAIN - ) - ); - } - - $couponConsumeEvent = new CouponConsumeEvent($couponCode); - - // Dispatch Event to the Action - $this->getDispatcher()->dispatch(TheliaEvents::COUPON_CONSUME, $couponConsumeEvent); - - /* recalculate postage amount */ - $order = $this->getSession()->getOrder(); - - if (null !== $order) { - $deliveryModule = $order->getModuleRelatedByDeliveryModuleId(); - $deliveryAddress = AddressQuery::create()->findPk($order->getChoosenDeliveryAddress()); - - if (null !== $deliveryModule && null !== $deliveryAddress) { - $moduleInstance = $deliveryModule->getDeliveryModuleInstance($this->container); - - $orderEvent = new OrderEvent($order); - - try { - $postage = OrderPostage::loadFromPostage( - $moduleInstance->getPostage($deliveryAddress->getCountry()) - ); - - $orderEvent->setPostage($postage->getAmount()); - $orderEvent->setPostageTax($postage->getAmountTax()); - $orderEvent->setPostageTaxRuleTitle($postage->getTaxRuleTitle()); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_POSTAGE, $orderEvent); - } catch (DeliveryException $ex) { - // The postage has been chosen, but changes dues to coupon causes an exception. - // Reset the postage data in the order - $orderEvent->setDeliveryModule(0); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_MODULE, $orderEvent); - } - } - } - - return $this->generateSuccessRedirect($couponCodeForm); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - 'Please check your coupon code: %message', - ["%message" => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } catch (UnmatchableConditionException $e) { - $message = $this->getTranslator()->trans( - 'You should sign in or register to use this coupon', - [ - '%sign' => $this->retrieveUrlFromRouteId('customer.login.view'), - '%register' => $this->retrieveUrlFromRouteId('customer.create.view'), - ], - Front::MESSAGE_DOMAIN - ); - } catch (PropelException $e) { - $this->getParserContext()->setGeneralError($e->getMessage()); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - 'Sorry, an error occurred: %message', - ["%message" => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } - - if ($message !== false) { - Tlog::getInstance()->error( - sprintf("Error during order delivery process : %s. Exception was %s", $message, $e->getMessage()) - ); - - $couponCodeForm->setErrorMessage($message); - - $this->getParserContext() - ->addForm($couponCodeForm) - ->setGeneralError($message); - } - - return $this->generateErrorRedirect($couponCodeForm); - } -} diff --git a/local/modules/modules/Front/Controller/CustomerController.php b/local/modules/modules/Front/Controller/CustomerController.php deleted file mode 100644 index 9c36aa1a..00000000 --- a/local/modules/modules/Front/Controller/CustomerController.php +++ /dev/null @@ -1,610 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ -namespace Front\Controller; - -use Front\Front; -use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Customer\CustomerCreateOrUpdateEvent; -use Thelia\Core\Event\Customer\CustomerEvent; -use Thelia\Core\Event\Customer\CustomerLoginEvent; -use Thelia\Core\Event\LostPasswordEvent; -use Thelia\Core\Event\Newsletter\NewsletterEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Core\Security\Authentication\CustomerUsernamePasswordFormAuthenticator; -use Thelia\Core\Security\Exception\AuthenticationException; -use Thelia\Core\Security\Exception\CustomerNotConfirmedException; -use Thelia\Core\Security\Exception\UsernameNotFoundException; -use Thelia\Core\Security\Exception\WrongPasswordException; -use Thelia\Form\CustomerLogin; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\ConfigQuery; -use Thelia\Model\Customer; -use Thelia\Model\CustomerQuery; -use Thelia\Model\NewsletterQuery; -use Thelia\Tools\RememberMeTrait; -use Thelia\Tools\URL; - -/** - * Class CustomerController - * @package Thelia\Controller\Front - * @author Manuel Raynaud - */ -class CustomerController extends BaseFrontController -{ - use RememberMeTrait; - - /** - * Display the register template if no customer logged - */ - public function viewLoginAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - // Redirect to home page - return $this->generateRedirect(URL::getInstance()->getIndexPage()); - } - - return $this->render("login"); - } - - /** - * Display the register template if no customer logged - */ - public function viewRegisterAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - // Redirect to home page - return $this->generateRedirect(URL::getInstance()->getIndexPage()); - } - - return $this->render("register"); - } - - public function newPasswordAction() - { - $passwordLost = $this->createForm(FrontForm::CUSTOMER_LOST_PASSWORD); - - if (! $this->getSecurityContext()->hasCustomerUser()) { - try { - $form = $this->validateForm($passwordLost); - - $event = new LostPasswordEvent($form->get("email")->getData()); - - $this->dispatch(TheliaEvents::LOST_PASSWORD, $event); - - return $this->generateSuccessRedirect($passwordLost); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occurred: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } - - if ($message !== false) { - Tlog::getInstance()->error( - sprintf( - "Error during customer creation process : %s. Exception was %s", - $message, - $e->getMessage() - ) - ); - } - } else { - $message = $this->getTranslator()->trans( - "You're currently logged in. Please log out before requesting a new password.", - [], - Front::MESSAGE_DOMAIN - ); - } - - $passwordLost->setErrorMessage($message); - - $this->getParserContext() - ->addForm($passwordLost) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($passwordLost->hasErrorUrl()) { - return $this->generateErrorRedirect($passwordLost); - } - } - - public function newPasswordSentAction() - { - $this->getParser()->assign('password_sent', true); - } - - /** - * Create a new customer. - * On success, redirect to success_url if exists, otherwise, display the same view again. - */ - public function createAction() - { - if (! $this->getSecurityContext()->hasCustomerUser()) { - $customerCreation = $this->createForm(FrontForm::CUSTOMER_CREATE); - - try { - $form = $this->validateForm($customerCreation, "post"); - - $customerCreateEvent = $this->createEventInstance($form->getData()); - - $this->dispatch(TheliaEvents::CUSTOMER_CREATEACCOUNT, $customerCreateEvent); - - $newCustomer = $customerCreateEvent->getCustomer(); - - // Newsletter - if (true === $form->get('newsletter')->getData()) { - $newsletterEmail = $newCustomer->getEmail(); - $nlEvent = new NewsletterEvent( - $newsletterEmail, - $this->getRequest()->getSession()->getLang()->getLocale() - ); - $nlEvent->setFirstname($newCustomer->getFirstname()); - $nlEvent->setLastname($newCustomer->getLastname()); - - // Security : Check if this new Email address already exist - if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($newsletterEmail)) { - $nlEvent->setId($newsletter->getId()); - $this->dispatch(TheliaEvents::NEWSLETTER_UPDATE, $nlEvent); - } else { - $this->dispatch(TheliaEvents::NEWSLETTER_SUBSCRIBE, $nlEvent); - } - } - - if (ConfigQuery::isCustomerEmailConfirmationEnable() && ! $newCustomer->getEnable()) { - $response = $this->generateRedirectFromRoute('customer.login.view'); - } else { - $this->processLogin($customerCreateEvent->getCustomer()); - - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - if ($cart->getCartItems()->count() > 0) { - $response = $this->generateRedirectFromRoute('cart.view'); - } else { - $response = $this->generateSuccessRedirect($customerCreation); - } - } - - return $response; - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } - - Tlog::getInstance()->error( - sprintf( - "Error during customer creation process : %s. Exception was %s", - $message, - $e->getMessage() - ) - ); - - $customerCreation->setErrorMessage($message); - - $this->getParserContext() - ->addForm($customerCreation) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($customerCreation->hasErrorUrl()) { - return $this->generateErrorRedirect($customerCreation); - } - } - } - - /** - * Prepare customer data update. - */ - public function viewAction() - { - $this->checkAuth(); - - /** @var Customer $customer */ - $customer = $this->getSecurityContext()->getCustomerUser(); - $data = array( - 'id' => $customer->getId(), - 'title' => $customer->getTitleId(), - 'firstname' => $customer->getFirstName(), - 'lastname' => $customer->getLastName(), - 'email' => $customer->getEmail(), - 'email_confirm' => $customer->getEmail(), - 'newsletter' => null !== NewsletterQuery::create()->findOneByEmail($customer->getEmail()), - ); - - $customerProfileUpdateForm = $this->createForm(FrontForm::CUSTOMER_PROFILE_UPDATE, 'form', $data); - - // Pass it to the parser - $this->getParserContext()->addForm($customerProfileUpdateForm); - } - - public function updatePasswordAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - $customerPasswordUpdateForm = $this->createForm(FrontForm::CUSTOMER_PASSWORD_UPDATE); - - try { - /** @var Customer $customer */ - $customer = $this->getSecurityContext()->getCustomerUser(); - - $form = $this->validateForm($customerPasswordUpdateForm, "post"); - - $customerChangeEvent = $this->createEventInstance($form->getData()); - $customerChangeEvent->setCustomer($customer); - $this->dispatch(TheliaEvents::CUSTOMER_UPDATEPROFILE, $customerChangeEvent); - - return $this->generateSuccessRedirect($customerPasswordUpdateForm); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } - - Tlog::getInstance()->error( - sprintf( - "Error during customer password modification process : %s.", - $message - ) - ); - - $customerPasswordUpdateForm->setErrorMessage($message); - - $this->getParserContext() - ->addForm($customerPasswordUpdateForm) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($customerPasswordUpdateForm->hasErrorUrl()) { - return $this->generateErrorRedirect($customerPasswordUpdateForm); - } - } - } - - public function updateAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - $customerProfileUpdateForm = $this->createForm(FrontForm::CUSTOMER_PROFILE_UPDATE); - - try { - /** @var Customer $customer */ - $customer = $this->getSecurityContext()->getCustomerUser(); - $newsletterOldEmail = $customer->getEmail(); - - $form = $this->validateForm($customerProfileUpdateForm, "post"); - - $customerChangeEvent = $this->createEventInstance($form->getData()); - $customerChangeEvent->setCustomer($customer); - - $customerChangeEvent->setEmailUpdateAllowed( - (intval(ConfigQuery::read('customer_change_email', 0))) ? true : false - ); - - $this->dispatch(TheliaEvents::CUSTOMER_UPDATEPROFILE, $customerChangeEvent); - - $updatedCustomer = $customerChangeEvent->getCustomer(); - - // Newsletter - if (true === $form->get('newsletter')->getData()) { - $nlEvent = new NewsletterEvent( - $updatedCustomer->getEmail(), - $this->getRequest()->getSession()->getLang()->getLocale() - ); - $nlEvent->setFirstname($updatedCustomer->getFirstname()); - $nlEvent->setLastname($updatedCustomer->getLastname()); - - if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($newsletterOldEmail)) { - $nlEvent->setId($newsletter->getId()); - $this->dispatch(TheliaEvents::NEWSLETTER_UPDATE, $nlEvent); - } else { - $this->dispatch(TheliaEvents::NEWSLETTER_SUBSCRIBE, $nlEvent); - } - } else { - if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($newsletterOldEmail)) { - $nlEvent = new NewsletterEvent( - $updatedCustomer->getEmail(), - $this->getRequest()->getSession()->getLang()->getLocale() - ); - $nlEvent->setId($newsletter->getId()); - $this->dispatch(TheliaEvents::NEWSLETTER_UNSUBSCRIBE, $nlEvent); - } - } - - $this->processLogin($updatedCustomer); - - return $this->generateSuccessRedirect($customerProfileUpdateForm); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } - - Tlog::getInstance()->error(sprintf("Error during customer modification process : %s.", $message)); - - $customerProfileUpdateForm->setErrorMessage($message); - - $this->getParserContext() - ->addForm($customerProfileUpdateForm) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($customerProfileUpdateForm->hasErrorUrl()) { - return $this->generateErrorRedirect($customerProfileUpdateForm); - } - } - } - - /** - * Perform user login. On a successful login, the user is redirected to the URL - * found in the success_url form parameter, or / if none was found. - * - * If login is not successfull, the same view is displayed again. - * - */ - public function loginAction() - { - if (!$this->getSecurityContext()->hasCustomerUser()) { - $request = $this->getRequest(); - $customerLoginForm = new CustomerLogin($request); - - try { - $form = $this->validateForm($customerLoginForm, "post"); - - // If User is a new customer - if ($form->get('account')->getData() == 0 && $form->get("email")->getErrors()->count() == 0) { - return $this->generateRedirectFromRoute( - "customer.create.process", - ["email" => $form->get("email")->getData()] - ); - } else { - try { - $authenticator = new CustomerUsernamePasswordFormAuthenticator($request, $customerLoginForm); - - /** @var Customer $customer */ - $customer = $authenticator->getAuthentifiedUser(); - - $this->processLogin($customer); - - if (intval($form->get('remember_me')->getData()) > 0) { - // If a remember me field if present and set in the form, create - // the cookie thant store "remember me" information - $this->createRememberMeCookie( - $customer, - $this->getRememberMeCookieName(), - $this->getRememberMeCookieExpiration() - ); - } - - return $this->generateSuccessRedirect($customerLoginForm); - - } catch (UsernameNotFoundException $e) { - $message = $this->getTranslator()->trans( - "Wrong email or password. Please try again", - [], - Front::MESSAGE_DOMAIN - ); - } catch (WrongPasswordException $e) { - $message = $this->getTranslator()->trans( - "Wrong email or password. Please try again", - [], - Front::MESSAGE_DOMAIN - ); - } catch (CustomerNotConfirmedException $e) { - if ($e->getUser() !== null) { - // Send the confirmation email again - $this->getDispatcher()->dispatch( - TheliaEvents::SEND_ACCOUNT_CONFIRMATION_EMAIL, - new CustomerEvent($e->getUser()) - ); - } - $message = $this->getTranslator()->trans( - "Your account is not yet confirmed. A confirmation email has been sent to your email address, please check your mailbox", - [], - Front::MESSAGE_DOMAIN - ); - } catch (AuthenticationException $e) { - $message = $this->getTranslator()->trans( - "Wrong email or password. Please try again", - [], - Front::MESSAGE_DOMAIN - ); - } - - } - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } - - Tlog::getInstance()->error( - sprintf( - "Error during customer login process : %s. Exception was %s", - $message, - $e->getMessage() - ) - ); - - $customerLoginForm->setErrorMessage($message); - - $this->getParserContext()->addForm($customerLoginForm); - - if ($customerLoginForm->hasErrorUrl()) { - return $this->generateErrorRedirect($customerLoginForm); - } - } - } - - /** - * Perform customer logout. - */ - public function logoutAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - $this->dispatch(TheliaEvents::CUSTOMER_LOGOUT); - } - - $this->clearRememberMeCookie($this->getRememberMeCookieName()); - - // Redirect to home page - return $this->generateRedirect(URL::getInstance()->getIndexPage()); - } - - /** - * @param $token - * @return \Symfony\Component\HttpFoundation\Response - * @throws \Exception - * @throws \Propel\Runtime\Exception\PropelException - */ - public function confirmCustomerAction($token) - { - /** @var Customer $customer */ - if (null === $customer = CustomerQuery::create()->findOneByConfirmationToken($token)) { - throw new NotFoundHttpException(); - } - - $customer - ->setEnable(true) - ->save() - ; - - // Clear form error context - - return $this->generateRedirectFromRoute('customer.login.view', [ 'validation_done' => 1 ]); - } - - /** - * Dispatch event for customer login action - * - * @param Customer $customer - */ - protected function processLogin(Customer $customer) - { - $this->dispatch(TheliaEvents::CUSTOMER_LOGIN, new CustomerLoginEvent($customer)); - } - - /** - * @param $data - * @return \Thelia\Core\Event\Customer\CustomerCreateOrUpdateEvent - */ - private function createEventInstance($data) - { - $customerCreateEvent = new CustomerCreateOrUpdateEvent( - isset($data["title"])?$data["title"]:null, - isset($data["firstname"])?$data["firstname"]:null, - isset($data["lastname"])?$data["lastname"]:null, - isset($data["address1"])?$data["address1"]:null, - isset($data["address2"])?$data["address2"]:null, - isset($data["address3"])?$data["address3"]:null, - isset($data["phone"])?$data["phone"]:null, - isset($data["cellphone"])?$data["cellphone"]:null, - isset($data["zipcode"])?$data["zipcode"]:null, - isset($data["city"])?$data["city"]:null, - isset($data["country"])?$data["country"]:null, - isset($data["email"])?$data["email"]:null, - isset($data["password"]) ? $data["password"]:null, - $this->getRequest()->getSession()->getLang()->getId(), - isset($data["reseller"])?$data["reseller"]:null, - isset($data["sponsor"])?$data["sponsor"]:null, - isset($data["discount"])?$data["discount"]:null, - isset($data["company"])?$data["company"]:null, - null, - isset($data["state"])?$data["state"]:null - ); - - return $customerCreateEvent; - } - - - protected function getRememberMeCookieName() - { - return ConfigQuery::read('customer_remember_me_cookie_name', 'crmcn'); - } - - protected function getRememberMeCookieExpiration() - { - return ConfigQuery::read('customer_remember_me_cookie_expiration', 2592000 /* 1 month */); - } -} diff --git a/local/modules/modules/Front/Controller/FeedController.php b/local/modules/modules/Front/Controller/FeedController.php deleted file mode 100644 index 5c3f03b6..00000000 --- a/local/modules/modules/Front/Controller/FeedController.php +++ /dev/null @@ -1,202 +0,0 @@ - - */ -class FeedController extends BaseFrontController { - - - /** - * Folder name for feeds cache - */ - const FEED_CACHE_DIR = "feeds"; - - /** - * Key prefix for feed cache - */ - const FEED_CACHE_KEY = "feed"; - - - /** - * render the RSS feed - * - * @param $context string The context of the feed : catalog, content. default: catalog - * @param $lang string The lang of the feed : fr_FR, en_US, ... default: default language of the site - * @param $id string The id of the parent element. The id of the main parent category for catalog context. - * The id of the content folder for content context - * @return Response - * @throws \RuntimeException - */ - public function generateAction($context, $lang, $id) - { - - /** @var Request $request */ - $request = $this->getRequest(); - - // context - if ("" === $context){ - $context = "catalog"; - } else if (! in_array($context, array("catalog", "content", "brand")) ){ - $this->pageNotFound(); - } - - // the locale : fr_FR, en_US, - if ("" !== $lang) { - if (! $this->checkLang($lang)){ - $this->pageNotFound(); - } - } else { - try{ - $lang = Lang::getDefaultLanguage(); - $lang = $lang->getLocale(); - } catch (\RuntimeException $ex){ - // @todo generate error page - throw new \RuntimeException("No default language is defined. Please define one."); - } - } - if (null === $lang = LangQuery::create()->findOneByLocale($lang)){ - $this->pageNotFound(); - } - $lang = $lang->getId(); - - // check if element exists and is visible - if ("" !== $id){ - if (false === $this->checkId($context, $id)){ - $this->pageNotFound(); - } - } - - $flush = $request->query->get("flush", ""); - - // check if feed already in cache - $cacheContent = false; - - $cacheDir = $this->getCacheDir(); - $cacheKey = self::FEED_CACHE_KEY . $lang . $context . $id; - $cacheExpire = intval(ConfigQuery::read("feed_ttl", '7200')) ?: 7200; - - $cacheDriver = new FilesystemCache($cacheDir); - if (!($this->checkAdmin() && "" !== $flush)){ - $cacheContent = $cacheDriver->fetch($cacheKey); - } else { - $cacheDriver->delete($cacheKey); - } - - // if not in cache - if (false === $cacheContent){ - // render the view - $cacheContent = $this->renderRaw( - "feed", - array( - "_context_" => $context, - "_lang_" => $lang, - "_id_" => $id - ) - ); - // save cache - $cacheDriver->save($cacheKey, $cacheContent, $cacheExpire); - } - - $response = new Response(); - $response->setContent($cacheContent); - $response->headers->set('Content-Type', 'application/rss+xml'); - - return $response; - } - - - /** - * get the cache directory for feeds - * - * @return mixed|string - */ - protected function getCacheDir() - { - $cacheDir = $this->container->getParameter("kernel.cache_dir"); - $cacheDir = rtrim($cacheDir, '/'); - $cacheDir .= '/' . self::FEED_CACHE_DIR . '/'; - - return $cacheDir; - } - - /** - * Check if current user has ADMIN role - * - * @return bool - */ - protected function checkAdmin(){ - return $this->getSecurityContext()->hasAdminUser(); - } - - - /** - * Check if a lang is used - * - * @param $lang string The lang code. e.g.: fr - * @return bool true if the language is used, otherwise false - */ - private function checkLang($lang) - { - // load locals - $lang = LangQuery::create() - ->findOneByLocale($lang); - - return (null !== $lang); - } - - - /** - * Check if the element exists and is visible - * - * @param $context string catalog or content - * @param $id string id of the element - * @return bool - */ - private function checkId($context, $id) - { - $ret = false; - if (is_numeric($id)){ - if ("catalog" === $context){ - $cat = CategoryQuery::create()->findPk($id); - $ret = (null !== $cat && $cat->getVisible()); - } elseif ("brand" === $context) { - $brand = BrandQuery::create()->findPk($id); - $ret = (null !== $brand && $brand->getVisible()); - } else { - $folder = FolderQuery::create()->findPk($id); - $ret = (null !== $folder && $folder->getVisible()); - } - } - return $ret; - } -} \ No newline at end of file diff --git a/local/modules/modules/Front/Controller/NewsletterController.php b/local/modules/modules/Front/Controller/NewsletterController.php deleted file mode 100644 index 9e558141..00000000 --- a/local/modules/modules/Front/Controller/NewsletterController.php +++ /dev/null @@ -1,164 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Front\Controller; - -use Front\Front; -use Symfony\Component\HttpFoundation\JsonResponse; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Newsletter\NewsletterEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Form\Definition\FrontForm; -use Thelia\Log\Tlog; -use Thelia\Model\Customer; -use Thelia\Model\NewsletterQuery; - -/** - * Class NewsletterController - * @package Thelia\Controller\Front - * @author Manuel Raynaud , Franck Allimant - */ -class NewsletterController extends BaseFrontController -{ - /** - * @since 2.3.0-alpha2 - */ - public function unsubscribeAction() - { - $errorMessage = false; - - $newsletterForm = $this->createForm(FrontForm::NEWSLETTER_UNSUBSCRIBE); - - try { - $form = $this->validateForm($newsletterForm); - - $email = $form->get('email')->getData(); - - if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($email)) { - $event = new NewsletterEvent( - $email, - $this->getRequest()->getSession()->getLang()->getLocale() - ); - - $event->setId($newsletter->getId()); - - $this->dispatch(TheliaEvents::NEWSLETTER_UNSUBSCRIBE, $event); - - // If a success URL is defined in the form, redirect to it, otherwise use the defaut view - if ($newsletterForm->hasSuccessUrl() && !$this->getRequest()->isXmlHttpRequest()) { - return $this->generateSuccessRedirect($newsletterForm); - } - } - } catch (\Exception $e) { - $errorMessage = $e->getMessage(); - - Tlog::getInstance()->error(sprintf('Error during newsletter unsubscription : %s', $errorMessage)); - - $newsletterForm->setErrorMessage($errorMessage); - } - - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - return new JsonResponse([ - "success" => ($errorMessage) ? false : true, - "message" => ($errorMessage) ? $errorMessage : $this->getTranslator()->trans( - "Your subscription to our newsletter has been canceled.", - [], - Front::MESSAGE_DOMAIN - ) - ], ($errorMessage) ? 500 : 200); - } - - $this->getParserContext() - ->setGeneralError($errorMessage) - ->addForm($newsletterForm); - - // If an error URL is defined in the form, redirect to it, otherwise use the defaut view - if ($errorMessage && $newsletterForm->hasErrorUrl()) { - return $this->generateErrorRedirect($newsletterForm); - } - } - - public function subscribeAction() - { - $errorMessage = false; - - $newsletterForm = $this->createForm(FrontForm::NEWSLETTER); - - try { - $form = $this->validateForm($newsletterForm); - - $event = new NewsletterEvent( - $form->get('email')->getData(), - $this->getRequest()->getSession()->getLang()->getLocale() - ); - - /** @var Customer $customer */ - if (null !== $customer = $this->getSecurityContext()->getCustomerUser()) { - $event - ->setFirstname($customer->getFirstname()) - ->setLastname($customer->getLastname()) - ; - } else { - $event - ->setFirstname($form->get('firstname')->getData()) - ->setLastname($form->get('lastname')->getData()) - ; - } - - $this->dispatch(TheliaEvents::NEWSLETTER_SUBSCRIBE, $event); - - // If a success URL is defined in the form, redirect to it, otherwise use the defaut view - if ($newsletterForm->hasSuccessUrl() && ! $this->getRequest()->isXmlHttpRequest()) { - return $this->generateSuccessRedirect($newsletterForm); - } - } catch (\Exception $e) { - $errorMessage = $e->getMessage(); - - Tlog::getInstance()->error(sprintf('Error during newsletter subscription : %s', $errorMessage)); - - $newsletterForm->setErrorMessage($errorMessage); - } - - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - return new JsonResponse([ - "success" => ($errorMessage) ? false : true, - "message" => ($errorMessage) ? $errorMessage : $this->getTranslator()->trans( - "Thanks for signing up! We'll keep you posted whenever we have any new updates.", - [], - Front::MESSAGE_DOMAIN - ) - ], ($errorMessage) ? 500 : 200); - } - - $this->getParserContext() - ->setGeneralError($errorMessage) - ->addForm($newsletterForm); - - // If an error URL is defined in the form, redirect to it, otherwise use the defaut view - if ($errorMessage && $newsletterForm->hasErrorUrl()) { - return $this->generateErrorRedirect($newsletterForm); - } - } -} diff --git a/local/modules/modules/Front/Controller/OrderController.php b/local/modules/modules/Front/Controller/OrderController.php deleted file mode 100644 index 34ad4139..00000000 --- a/local/modules/modules/Front/Controller/OrderController.php +++ /dev/null @@ -1,604 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ -namespace Front\Controller; - -use Front\Front; -use Propel\Runtime\ActiveQuery\Criteria; -use Propel\Runtime\Exception\PropelException; -use Symfony\Component\HttpFoundation\Response as BaseResponse; -use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Delivery\DeliveryPostageEvent; -use Thelia\Core\Event\Order\OrderEvent; -use Thelia\Core\Event\Product\VirtualProductOrderDownloadResponseEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Core\HttpFoundation\Request; -use Thelia\Exception\TheliaProcessException; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\Address; -use Thelia\Model\AddressQuery; -use Thelia\Model\AreaDeliveryModuleQuery; -use Thelia\Model\ConfigQuery; -use Thelia\Model\ModuleQuery; -use Thelia\Model\Order; -use Thelia\Model\OrderProductQuery; -use Thelia\Model\OrderQuery; -use Thelia\Module\AbstractDeliveryModule; -use Thelia\Module\Exception\DeliveryException; - -/** - * Class OrderController - * @package Thelia\Controller\Front - * @author Etienne Roudeix - */ -class OrderController extends BaseFrontController -{ - /** - * Check if the cart contains only virtual products. - */ - public function deliverView() - { - $this->checkAuth(); - $this->checkCartNotEmpty(); - - // check if the cart contains only virtual products - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - - $deliveryAddress = $this->getCustomerAddress(); - - if ($cart->isVirtual()) { - if (null !== $deliveryAddress) { - $deliveryModule = ModuleQuery::create()->retrieveVirtualProductDelivery($this->container); - - if (false === $deliveryModule) { - Tlog::getInstance()->error( - $this->getTranslator()->trans( - "To enable the virtual product feature, the VirtualProductDelivery module should be activated", - [], - Front::MESSAGE_DOMAIN - ) - ); - } elseif (count($deliveryModule) == 1) { - return $this->registerVirtualProductDelivery($deliveryModule[0], $deliveryAddress); - } - } - } - - return $this->render( - 'order-delivery', - [ - 'delivery_address_id' => (null !== $deliveryAddress) ? $deliveryAddress->getId() : null - ] - ); - } - - /** - * @param AbstractDeliveryModule $moduleInstance - * @param Address $deliveryAddress - * @return \Symfony\Component\HttpFoundation\Response - */ - private function registerVirtualProductDelivery($moduleInstance, $deliveryAddress) - { - /* get postage amount */ - $deliveryModule = $moduleInstance->getModuleModel(); - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - $deliveryPostageEvent = new DeliveryPostageEvent($moduleInstance, $cart, $deliveryAddress); - - $this->getDispatcher()->dispatch( - TheliaEvents::MODULE_DELIVERY_GET_POSTAGE, - $deliveryPostageEvent - ); - - $postage = $deliveryPostageEvent->getPostage(); - - $orderEvent = $this->getOrderEvent(); - $orderEvent->setDeliveryAddress($deliveryAddress->getId()); - $orderEvent->setDeliveryModule($deliveryModule->getId()); - $orderEvent->setPostage($postage->getAmount()); - $orderEvent->setPostageTax($postage->getAmountTax()); - $orderEvent->setPostageTaxRuleTitle($postage->getTaxRuleTitle()); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_ADDRESS, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_MODULE, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_POSTAGE, $orderEvent); - - return $this->generateRedirectFromRoute("order.invoice"); - } - - /** - * set delivery address - * set delivery module - */ - public function deliver() - { - $this->checkAuth(); - $this->checkCartNotEmpty(); - - $message = false; - - $orderDelivery = $this->createForm(FrontForm::ORDER_DELIVER); - - try { - $form = $this->validateForm($orderDelivery, "post"); - - $deliveryAddressId = $form->get("delivery-address")->getData(); - $deliveryModuleId = $form->get("delivery-module")->getData(); - $deliveryAddress = AddressQuery::create()->findPk($deliveryAddressId); - $deliveryModule = ModuleQuery::create()->findPk($deliveryModuleId); - - /* check that the delivery address belongs to the current customer */ - if ($deliveryAddress->getCustomerId() !== $this->getSecurityContext()->getCustomerUser()->getId()) { - throw new \Exception( - $this->getTranslator()->trans( - "Delivery address does not belong to the current customer", - [], - Front::MESSAGE_DOMAIN - ) - ); - } - - /* check that the delivery module fetches the delivery address area */ - if (null === AreaDeliveryModuleQuery::create()->findByCountryAndModule( - $deliveryAddress->getCountry(), - $deliveryModule - )) { - throw new \Exception( - $this->getTranslator()->trans( - "Delivery module cannot be use with selected delivery address", - [], - Front::MESSAGE_DOMAIN - ) - ); - } - - /* get postage amount */ - $moduleInstance = $deliveryModule->getDeliveryModuleInstance($this->container); - - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - $deliveryPostageEvent = new DeliveryPostageEvent($moduleInstance, $cart, $deliveryAddress); - - $this->getDispatcher()->dispatch( - TheliaEvents::MODULE_DELIVERY_GET_POSTAGE, - $deliveryPostageEvent - ); - - if (!$deliveryPostageEvent->isValidModule() || null === $deliveryPostageEvent->getPostage()) { - throw new DeliveryException( - $this->getTranslator()->trans('The delivery module is not valid.', [], Front::MESSAGE_DOMAIN) - ); - } - - $postage = $deliveryPostageEvent->getPostage(); - - $orderEvent = $this->getOrderEvent(); - $orderEvent->setDeliveryAddress($deliveryAddressId); - $orderEvent->setDeliveryModule($deliveryModuleId); - $orderEvent->setPostage($postage->getAmount()); - $orderEvent->setPostageTax($postage->getAmountTax()); - $orderEvent->setPostageTaxRuleTitle($postage->getTaxRuleTitle()); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_ADDRESS, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_MODULE, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_POSTAGE, $orderEvent); - - return $this->generateRedirectFromRoute("order.invoice"); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } catch (PropelException $e) { - $this->getParserContext()->setGeneralError($e->getMessage()); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } - - if ($message !== false) { - Tlog::getInstance()->error( - sprintf("Error during order delivery process : %s. Exception was %s", $message, $e->getMessage()) - ); - - $orderDelivery->setErrorMessage($message); - - $this->getParserContext() - ->addForm($orderDelivery) - ->setGeneralError($message) - ; - } - } - - /** - * set invoice address - * set payment module - */ - public function invoice() - { - $this->checkAuth(); - $this->checkCartNotEmpty(); - $this->checkValidDelivery(); - - $message = false; - - $orderPayment = $this->createForm(FrontForm::ORDER_PAYMENT); - - try { - $form = $this->validateForm($orderPayment, "post"); - - $invoiceAddressId = $form->get("invoice-address")->getData(); - $paymentModuleId = $form->get("payment-module")->getData(); - - /* check that the invoice address belongs to the current customer */ - $invoiceAddress = AddressQuery::create()->findPk($invoiceAddressId); - if ($invoiceAddress->getCustomerId() !== $this->getSecurityContext()->getCustomerUser()->getId()) { - throw new \Exception( - $this->getTranslator()->trans( - "Invoice address does not belong to the current customer", - [], - Front::MESSAGE_DOMAIN - ) - ); - } - - $orderEvent = $this->getOrderEvent(); - $orderEvent->setInvoiceAddress($invoiceAddressId); - $orderEvent->setPaymentModule($paymentModuleId); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_INVOICE_ADDRESS, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_PAYMENT_MODULE, $orderEvent); - - return $this->generateRedirectFromRoute("order.payment.process"); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } catch (PropelException $e) { - $this->getParserContext()->setGeneralError($e->getMessage()); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } - - if ($message !== false) { - Tlog::getInstance()->error( - sprintf("Error during order payment process : %s. Exception was %s", $message, $e->getMessage()) - ); - - $orderPayment->setErrorMessage($message); - - $this->getParserContext() - ->addForm($orderPayment) - ->setGeneralError($message) - ; - } - - return $this->generateErrorRedirect($orderPayment); - } - - public function pay() - { - /* check customer */ - $this->checkAuth(); - - /* check cart count */ - $this->checkCartNotEmpty(); - - /* check stock not empty */ - if (true === ConfigQuery::checkAvailableStock()) { - if (null !== $response = $this->checkStockNotEmpty()) { - return $response; - } - } - - /* check delivery address and module */ - $this->checkValidDelivery(); - - /* check invoice address and payment module */ - $this->checkValidInvoice(); - - $orderEvent = $this->getOrderEvent(); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_PAY, $orderEvent); - - $placedOrder = $orderEvent->getPlacedOrder(); - - if (null !== $placedOrder && null !== $placedOrder->getId()) { - /* order has been placed */ - if ($orderEvent->hasResponse()) { - return $orderEvent->getResponse(); - } else { - return $this->generateRedirectFromRoute( - 'order.placed', - [], - ['order_id' => $orderEvent->getPlacedOrder()->getId()] - ); - } - } else { - /* order has not been placed */ - return $this->generateRedirectFromRoute('cart.view'); - } - } - - public function orderPlaced($order_id) - { - /* check if the placed order matched the customer */ - $placedOrder = OrderQuery::create()->findPk( - $this->getRequest()->attributes->get('order_id') - ); - - if (null === $placedOrder) { - throw new TheliaProcessException( - $this->getTranslator()->trans( - "No placed order", - [], - Front::MESSAGE_DOMAIN - ), - TheliaProcessException::NO_PLACED_ORDER, - $placedOrder - ); - } - - $customer = $this->getSecurityContext()->getCustomerUser(); - - if (null === $customer || $placedOrder->getCustomerId() !== $customer->getId()) { - throw new TheliaProcessException( - $this->getTranslator()->trans( - "Received placed order id does not belong to the current customer", - [], - Front::MESSAGE_DOMAIN - ), - TheliaProcessException::PLACED_ORDER_ID_BAD_CURRENT_CUSTOMER, - $placedOrder - ); - } - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_CART_CLEAR, $this->getOrderEvent()); - - $this->getParserContext()->set("placed_order_id", $placedOrder->getId()); - } - - - public function orderFailed($order_id, $message) - { - if (empty($order_id)) { - // Fallback to request parameter if the method parameter is empty. - $order_id = $this->getRequest()->get('order_id'); - } - - $failedOrder = OrderQuery::create()->findPk($order_id); - - if (null !== $failedOrder) { - $customer = $this->getSecurityContext()->getCustomerUser(); - - if (null === $customer || $failedOrder->getCustomerId() !== $customer->getId()) { - throw new TheliaProcessException( - $this->getTranslator()->trans( - "Received failed order id does not belong to the current customer", - [], - Front::MESSAGE_DOMAIN - ), - TheliaProcessException::PLACED_ORDER_ID_BAD_CURRENT_CUSTOMER, - $failedOrder - ); - } - } else { - Tlog::getInstance()->warning("Failed order ID '$order_id' not found."); - } - - $this->getParserContext() - ->set("failed_order_id", $order_id) - ->set("failed_order_message", $message) - ; - } - - protected function getOrderEvent() - { - $order = $this->getOrder($this->getRequest()); - - return new OrderEvent($order); - } - - public function getOrder(Request $request) - { - $session = $request->getSession(); - - if (null !== $order = $session->getOrder()) { - return $order; - } - - $order = new Order(); - - $session->setOrder($order); - - return $order; - } - - - public function viewAction($order_id) - { - $this->checkOrderCustomer($order_id); - - return $this->render('account-order', ['order_id' => $order_id]); - } - - public function generateInvoicePdf($order_id) - { - $this->checkOrderCustomer($order_id); - - - return $this->generateOrderPdf($order_id, ConfigQuery::read('pdf_invoice_file', 'invoice')); - } - - public function generateDeliveryPdf($order_id) - { - $this->checkOrderCustomer($order_id); - - return $this->generateOrderPdf($order_id, ConfigQuery::read('pdf_delivery_file', 'delivery')); - } - - public function downloadVirtualProduct($order_product_id) - { - if (null !== $orderProduct = OrderProductQuery::create()->findPk($order_product_id)) { - $order = $orderProduct->getOrder(); - - if ($order->isPaid(false)) { - // check customer - $this->checkOrderCustomer($order->getId()); - - $virtualProductEvent = new VirtualProductOrderDownloadResponseEvent($orderProduct); - $this->getDispatcher()->dispatch( - TheliaEvents::VIRTUAL_PRODUCT_ORDER_DOWNLOAD_RESPONSE, - $virtualProductEvent - ); - - $response = $virtualProductEvent->getResponse(); - - if (!$response instanceof BaseResponse) { - throw new \RuntimeException('A Response must be added in the event TheliaEvents::VIRTUAL_PRODUCT_ORDER_DOWNLOAD_RESPONSE'); - } - - return $response; - } - } - - throw new AccessDeniedHttpException(); - - } - - private function checkOrderCustomer($order_id) - { - $this->checkAuth(); - - $order = OrderQuery::create()->findPk($order_id); - $valid = true; - if ($order) { - $customerOrder = $order->getCustomer(); - $customer = $this->getSecurityContext()->getCustomerUser(); - - if ($customerOrder->getId() != $customer->getId()) { - $valid = false; - } - } else { - $valid = false; - } - - if (false === $valid) { - throw new AccessDeniedHttpException(); - } - } - - public function getDeliveryModuleListAjaxAction() - { - $this->checkXmlHttpRequest(); - - // Change the delivery address if customer has changed it - $address = null; - $session = $this->getSession(); - $addressId = $this->getRequest()->get('address_id', null); - if (null !== $addressId && $addressId !== $session->getOrder()->getChoosenDeliveryAddress()) { - $address = AddressQuery::create()->findPk($addressId); - if (null !== $address && $address->getCustomerId() === $session->getCustomerUser()->getId()) { - $session->getOrder()->setChoosenDeliveryAddress($addressId); - } - } - - $address = AddressQuery::create()->findPk($session->getOrder()->getChoosenDeliveryAddress()); - - $countryId = $address->getCountryId(); - $stateId = $address->getStateId(); - - $args = array( - 'country' => $countryId, - 'state' => $stateId, - 'address' => $session->getOrder()->getChoosenDeliveryAddress() - ); - - return $this->render('ajax/order-delivery-module-list', $args); - } - - /** - * Redirect to cart view if at least one non product is out of stock - * - * @return null|BaseResponse - */ - private function checkStockNotEmpty() - { - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - - $cartItems = $cart->getCartItems(); - - foreach ($cartItems as $cartItem) { - $pse = $cartItem->getProductSaleElements(); - - $product = $cartItem->getProduct(); - - if ($pse->getQuantity() <= 0 && $product->getVirtual() !== 1) { - return $this->generateRedirectFromRoute('cart.view'); - } - } - - return null; - } - - /** - * Retrieve the chosen delivery address for a cart or the default customer address if not exists - * - * @return null|Address - */ - protected function getCustomerAddress() - { - $deliveryAddress = null; - $addressId = $this->getSession()->getOrder()->getChoosenDeliveryAddress(); - if (null === $addressId) { - $customer = $this->getSecurityContext()->getCustomerUser(); - - $deliveryAddress = AddressQuery::create() - ->filterByCustomerId($customer->getId()) - ->orderByIsDefault(Criteria::DESC) - ->findOne(); - - if (null !== $deliveryAddress) { - $this->getSession()->getOrder()->setChoosenDeliveryAddress( - $deliveryAddress->getId() - ); - } - } else { - $deliveryAddress = AddressQuery::create()->findPk($addressId); - } - - return $deliveryAddress; - } -} diff --git a/local/modules/modules/Front/Controller/SitemapController.php b/local/modules/modules/Front/Controller/SitemapController.php deleted file mode 100644 index c9c10986..00000000 --- a/local/modules/modules/Front/Controller/SitemapController.php +++ /dev/null @@ -1,150 +0,0 @@ - - */ -class SitemapController extends BaseFrontController { - - - /** - * Folder name for sitemap cache - */ - const SITEMAP_CACHE_DIR = "sitemap"; - - /** - * Key prefix for sitemap cache - */ - const SITEMAP_CACHE_KEY = "sitemap"; - - /** - * @return Response - */ - public function generateAction() - { - /** @var Request $request */ - $request = $this->getRequest(); - - // the locale : fr, en, - $lang = $request->query->get("lang", ""); - if ("" !== $lang) { - if (! $this->checkLang($lang)){ - $this->pageNotFound(); - } - } - // specific content : product, category, cms - $context = $request->query->get("context", ""); - if (! in_array($context, array("", "catalog", "content")) ){ - $this->pageNotFound(); - } - - $flush = $request->query->get("flush", ""); - - // check if sitemap already in cache - $cacheContent = false; - - $cacheDir = $this->getCacheDir(); - $cacheKey = self::SITEMAP_CACHE_KEY . $lang . $context; - $cacheExpire = intval(ConfigQuery::read("sitemap_ttl", '7200')) ?: 7200; - - $cacheDriver = new FilesystemCache($cacheDir); - if (!($this->checkAdmin() && "" !== $flush)){ - $cacheContent = $cacheDriver->fetch($cacheKey); - } else { - $cacheDriver->delete($cacheKey); - } - - // if not in cache - if (false === $cacheContent){ - // render the view - $cacheContent = $this->renderRaw( - "sitemap", - array( - "_lang_" => $lang, - "_context_" => $context - ) - ); - // save cache - $cacheDriver->save($cacheKey, $cacheContent, $cacheExpire); - } - - $response = new Response(); - $response->setContent($cacheContent); - $response->headers->set('Content-Type', 'application/xml'); - - return $response; - } - - - /** - * get the cache directory for sitemap - * - * @return mixed|string - */ - protected function getCacheDir() - { - $cacheDir = $this->container->getParameter("kernel.cache_dir"); - $cacheDir = rtrim($cacheDir, '/'); - $cacheDir .= '/' . self::SITEMAP_CACHE_DIR . '/'; - - return $cacheDir; - } - - /** - * Check if current user has ADMIN role - * - * @return bool - */ - protected function checkAdmin(){ - return $this->getSecurityContext()->hasAdminUser(); - } - - - /** - * Check if a lang is used - * - * @param $lang The lang code. e.g.: fr - * @return bool true if the language is used, otherwise false - */ - private function checkLang($lang) - { - // load locals - $lang = LangQuery::create() - ->findOneByCode($lang); - - return (null !== $lang); - } - -} \ No newline at end of file diff --git a/local/modules/modules/Front/Front.php b/local/modules/modules/Front/Front.php deleted file mode 100644 index c085f27f..00000000 --- a/local/modules/modules/Front/Front.php +++ /dev/null @@ -1,31 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Front; - -use Thelia\Module\BaseModule; - -class Front extends BaseModule -{ - const MESSAGE_DOMAIN = 'front'; -} diff --git a/local/modules/modules/Front/I18n/de_DE.php b/local/modules/modules/Front/I18n/de_DE.php deleted file mode 100644 index bf641783..00000000 --- a/local/modules/modules/Front/I18n/de_DE.php +++ /dev/null @@ -1,22 +0,0 @@ - 'Gutschein-Code darf nicht leer sein', - 'Delivery address does not belong to the current customer' => 'Lieferadresse gehört nicht zum aktuellen Kunden', - 'Delivery module cannot be use with selected delivery address' => 'Lieferung-Modul kann nicht mit ausgewählten Lieferadresse verwendet werden', - 'Error during address deletion process' => 'Fehler beim Löschen der Adresse', - 'Failed to add this article to your cart, please try again' => 'Der Artikel konnte nicht zum Warenkorb hinzugefügt werden, bitte versuchen Sie es erneut', - 'Invoice address does not belong to the current customer' => 'Rechnungsadresse gehört nicht zum aktuellen Kunden', - 'No placed order' => 'Keine Bestellungen', - 'Please check your coupon code: %message' => 'Bitte überprüfen Sie Ihren Gutschein-Code: %message', - 'Please check your input: %s' => 'Bitte überprüfen Sie Ihre Eingabe: %s', - 'Received failed order id does not belong to the current customer' => 'Empfangene Id einer fehlgeschlagenen Bestellung gehört nicht zum aktuellen Kunden', - 'Received placed order id does not belong to the current customer' => 'Empfangene Bestellungs-Id gehört nicht zum aktuellen Kunden', - 'Sorry, an error occured: %s' => 'Leider ist ein Fehler aufgetreten: %s', - 'Sorry, an error occurred: %message' => 'Leider ist ein Fehler aufgetreten: %message', - 'Sorry, an error occurred: %s' => 'Es tut uns Leid, aber ein Fehler ist aufgetreten: %s', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Vielen Dank für Ihre Anmeldung! Wir halten Ihnen auf dem Laufenden über neuen Updates.', - 'To enable the virtual product feature, the VirtualProductDelivery module should be activated' => 'Um das virtuelle Produkt-Feature zu aktivieren, sollte das VirtualProductDelivery-Modul aktiviert werden', - 'Wrong email or password. Please try again' => 'E-Mail oder Passwort falsch. Bitte erneut versuchen', - 'You\'re currently logged in. Please log out before requesting a new password.' => 'Sie sind derzeit angemeldet. Bitte melden Sie sich ab, bevor Sie ein neues Passwort anfordern.', -]; diff --git a/local/modules/modules/Front/I18n/en_US.php b/local/modules/modules/Front/I18n/en_US.php deleted file mode 100644 index 1db05104..00000000 --- a/local/modules/modules/Front/I18n/en_US.php +++ /dev/null @@ -1,24 +0,0 @@ - 'Coupon code can\'t be empty', - 'Delivery address does not belong to the current customer' => 'Delivery address does not belong to the current customer', - 'Delivery module cannot be use with selected delivery address' => 'Delivery module cannot be use with selected delivery address', - 'Error during address deletion process' => 'Error during address deletion process', - 'Failed to add this article to your cart, please try again' => 'Failed to add this article to your cart, please try again', - 'Invoice address does not belong to the current customer' => 'Invoice address does not belong to the current customer', - 'No placed order' => 'No placed order', - 'Please check your coupon code: %message' => 'Please check your coupon code: %message', - 'Please check your input: %s' => 'Please check your input: %s', - 'Received failed order id does not belong to the current customer' => 'Received failed order id does not belong to the current customer', - 'Received placed order id does not belong to the current customer' => 'Received placed order id does not belong to the current customer', - 'Sorry, an error occured: %s' => 'Sorry, an error occured: %s', - 'Sorry, an error occurred: %message' => 'Sorry, an error occurred: %message', - 'Sorry, an error occurred: %s' => 'Sorry, an error occurred: %s', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.', - 'To enable the virtual product feature, the VirtualProductDelivery module should be activated' => 'To enable the virtual product feature, the VirtualProductDelivery module should be activated', - 'Wrong email or password. Please try again' => 'Wrong email or password. Please try again', - 'You should sign in or register to use this coupon' => 'You should sign in or register to use this coupon', - 'You\'re currently logged in. Please log out before requesting a new password.' => 'You\'re currently logged in. Please log out before requesting a new password.', - 'Your account is not yet confirmed check out your mailbox' => 'Your account is not yet confirmed check out your mailbox', -); diff --git a/local/modules/modules/Front/I18n/fr_FR.php b/local/modules/modules/Front/I18n/fr_FR.php deleted file mode 100644 index 35405e3e..00000000 --- a/local/modules/modules/Front/I18n/fr_FR.php +++ /dev/null @@ -1,23 +0,0 @@ - 'Le code promo ne peut être vide', - 'Delivery address does not belong to the current customer' => 'L\'adresse de livraison n\'appartient pas au client en cours', - 'Delivery module cannot be use with selected delivery address' => 'Le module de livraison ne peut pas être utilisé avec cette adresse de livraison', - 'Error during address deletion process' => 'Désolé. Une erreur s\'est produite lors de la suppression de l\'adresse', - 'Failed to add this article to your cart, please try again' => 'Impossible d\'ajouter cet article à votre panier. Merci de ré-essayer.', - 'Invoice address does not belong to the current customer' => 'L\'adresse de facturation n\'appartient pas au client en cours', - 'No placed order' => 'Aucune commande passée', - 'Please check your coupon code: %message' => 'Merci de vérifier votre code promo : %message', - 'Please check your input: %s' => 'Merci de vérifier les informations indiquées : %s', - 'Received failed order id does not belong to the current customer' => 'L\'id de commande refusée n\'appartient pas au client en cours', - 'Received placed order id does not belong to the current customer' => 'L\'id de commande passée n\'appartient pas au client en cours', - 'Sorry, an error occured: %s' => 'Désolé. Une erreur s\'est produite : %s', - 'Sorry, an error occurred: %message' => 'Désolé. Une erreur s\'est produite : %message', - 'Sorry, an error occurred: %s' => 'Désolé, une erreur est survenue : %s', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Merci de votre inscription ! Nous vous tiendrons informé dès qu\'il y aura des nouveautés.', - 'To enable the virtual product feature, the VirtualProductDelivery module should be activated' => 'Pour activer les produits virtuels, le module VirtualProductDelivery doit être activé', - 'Wrong email or password. Please try again' => 'Adresse email ou mot de passe incorrect. Merci de ré-essayer.', - 'You should sign in or register to use this coupon' => 'Vous devez vous connecter ou vous inscrire pour utiliser ce coupon', - 'You\'re currently logged in. Please log out before requesting a new password.' => 'Vous être actuellement connecté au site. Vous devez vous déconnecter pour demander un nouveau mot de passe.', -]; diff --git a/local/modules/modules/Front/I18n/it_IT.php b/local/modules/modules/Front/I18n/it_IT.php deleted file mode 100644 index 041021bb..00000000 --- a/local/modules/modules/Front/I18n/it_IT.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Il codice di sconto non può essere vuoto', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Grazie per l\'inscrizione! Ti terremo aggiornato ogni volta che abbiamo eventuali nuovi aggiornamenti.', - 'You should sign in or register to use this coupon' => 'Dovresti accedere o registrarti per utilizzare questo coupon', -]; diff --git a/local/modules/modules/Front/I18n/tr_TR.php b/local/modules/modules/Front/I18n/tr_TR.php deleted file mode 100644 index 47004a8b..00000000 --- a/local/modules/modules/Front/I18n/tr_TR.php +++ /dev/null @@ -1,22 +0,0 @@ - 'Kupon şifre boş olamaz', - 'Delivery address does not belong to the current customer' => 'Teslimat adresi geçerli müşteriye ait değil', - 'Delivery module cannot be use with selected delivery address' => 'Teslim modülü seçili teslimat adresi kullanılamaz', - 'Error during address deletion process' => 'Adres silme işlemi sırasında bir hata oluştu', - 'Failed to add this article to your cart, please try again' => 'Sepetinize Bu ürün eklenemedi, lütfen tekrar deneyin', - 'Invoice address does not belong to the current customer' => 'Fatura adresi geçerli müşteriye ait değil', - 'No placed order' => 'Yerleştirilen hiçbir sipariş', - 'Please check your coupon code: %message' => 'Kupon kodunuzu gözden geçirin: %message', - 'Please check your input: %s' => 'Lütfen girişinizi denetleyin: %s', - 'Received failed order id does not belong to the current customer' => 'Alınan başarısız sipariş kimliği geçerli müşteriye ait değil', - 'Received placed order id does not belong to the current customer' => 'Alınmış yerleştirilmiş sipariş kimliği geçerli müşteriye ait değil', - 'Sorry, an error occured: %s' => 'Üzgünüz, bir hata oluştu: %s', - 'Sorry, an error occurred: %message' => 'Üzgünüz, bir hata oluştu: %message', - 'Sorry, an error occurred: %s' => 'Üzgünüz, bir hata oluştu: %s', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Teşekkürler. Yeni güncelleştirmeler olduğunda sizi haberdar edeceğiz.', - 'To enable the virtual product feature, the VirtualProductDelivery module should be activated' => 'Sanal ürün özelliği etkinleştirmek için VirtualProductDelivery modülü etkinleştirilmesi', - 'Wrong email or password. Please try again' => 'Email adresi veya şifre hatalı. Lütfen tekrar deneyiniz', - 'You\'re currently logged in. Please log out before requesting a new password.' => 'Şu anda logged içinde. Lütfen yeni bir parola istemeden önce çıkış.', -]; diff --git a/local/modules/modules/Front/LICENSE.txt b/local/modules/modules/Front/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/Front/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/Front/composer.json b/local/modules/modules/Front/composer.json deleted file mode 100644 index b916b7bb..00000000 --- a/local/modules/modules/Front/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/front-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "Front" - } -} diff --git a/local/modules/modules/HookAdminHome/Config/config.xml b/local/modules/modules/HookAdminHome/Config/config.xml deleted file mode 100644 index ad256c63..00000000 --- a/local/modules/modules/HookAdminHome/Config/config.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/local/modules/modules/HookAdminHome/Config/routing.xml b/local/modules/modules/HookAdminHome/Config/routing.xml deleted file mode 100644 index a36010d7..00000000 --- a/local/modules/modules/HookAdminHome/Config/routing.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - HookAdminHome\Controller\HomeController::loadStatsAjaxAction - - - - HookAdminHome\Controller\HomeController::blockMonthSalesStatistics - \d+ - \d+ - - - - HookAdminHome\Controller\HomeController::processTemplateAction - ajax/thelia_news_feed - 1 - - - diff --git a/local/modules/modules/HookAdminHome/Controller/HomeController.php b/local/modules/modules/HookAdminHome/Controller/HomeController.php deleted file mode 100644 index e3fdde8b..00000000 --- a/local/modules/modules/HookAdminHome/Controller/HomeController.php +++ /dev/null @@ -1,154 +0,0 @@ - - */ -class HomeController extends BaseAdminController -{ - /** - * Key prefix for stats cache - */ - const STATS_CACHE_KEY = "stats"; - - const RESOURCE_CODE = "admin.home"; - - public function loadStatsAjaxAction() - { - if (null !== $response = $this->checkAuth(self::RESOURCE_CODE, array(), AccessManager::VIEW)) { - return $response; - } - - $cacheExpire = ConfigQuery::getAdminCacheHomeStatsTTL(); - - /** @var AdapterInterface $cacheAdapter */ - $cacheAdapter = $this->container->get('thelia.cache'); - - $month = (int) $this->getRequest()->query->get('month', date('m')); - $year = (int) $this->getRequest()->query->get('year', date('Y')); - - $cacheKey = self::STATS_CACHE_KEY . "_" . $month . "_" . $year; - - $cacheItem = $cacheAdapter->getItem($cacheKey); - - // force flush - if ($this->getRequest()->query->get('flush', "0")) { - $cacheAdapter->deleteItem($cacheItem); - } - - if (!$cacheItem->isHit()) { - $data = $this->getStatus($month, $year); - - $cacheItem->set(json_encode($data)); - $cacheItem->expiresAfter($cacheExpire); - - if ($cacheExpire) { - $cacheAdapter->save($cacheItem); - } - } - - return $this->jsonResponse($cacheItem->get()); - } - - public function blockMonthSalesStatistics($month, $year) - { - $baseDate = sprintf("%04d-%02d", $year, $month); - - $startDate = "$baseDate-01"; - $endDate = date("Y-m-t", strtotime($startDate)); - - $prevMonthStartDate = date('Y-m-01', strtotime("$baseDate -1 month")); - $prevMonthEndDate = date("Y-m-t", strtotime($prevMonthStartDate)); - - return $this->render('block-month-sales-statistics', [ - 'startDate' => $startDate, - 'endDate' => $endDate, - 'prevMonthStartDate' => $prevMonthStartDate, - 'prevMonthEndDate' => $prevMonthEndDate, - ]); - } - - /** - * @param int $month - * @param int $year - * @return \stdClass - */ - protected function getStatus($month, $year) - { - $data = new \stdClass(); - - $data->title = $this->getTranslator()->trans( - "Stats on %month/%year", - ['%month' => $month, '%year' => $year], - HookAdminHome::DOMAIN_NAME - ); - - $data->series = []; - - /* sales */ - $data->series[] = $saleSeries = new \stdClass(); - $saleSeries->color = self::testHexColor('sales_color', '#adadad'); - $saleSeries->data = OrderQuery::getMonthlySaleStats($month, $year); - $saleSeries->valueFormat = "%1.2f " . Currency::getDefaultCurrency()->getSymbol(); - - /* new customers */ - $data->series[] = $newCustomerSeries = new \stdClass(); - $newCustomerSeries->color = self::testHexColor('customers_color', '#f39922'); - $newCustomerSeries->data = CustomerQuery::getMonthlyNewCustomersStats($month, $year); - $newCustomerSeries->valueFormat = "%d"; - - /* orders */ - $data->series[] = $orderSeries = new \stdClass(); - $orderSeries->color = self::testHexColor('orders_color', '#5cb85c'); - $orderSeries->data = OrderQuery::getMonthlyOrdersStats($month, $year); - $orderSeries->valueFormat = "%d"; - - /* first order */ - $data->series[] = $firstOrderSeries = new \stdClass(); - $firstOrderSeries->color = self::testHexColor('first_orders_color', '#5bc0de'); - $firstOrderSeries->data = OrderQuery::getFirstOrdersStats($month, $year); - $firstOrderSeries->valueFormat = "%d"; - - /* cancelled orders */ - $data->series[] = $cancelledOrderSeries = new \stdClass(); - $cancelledOrderSeries->color = self::testHexColor('cancelled_orders_color', '#d9534f'); - $cancelledOrderSeries->data = OrderQuery::getMonthlyOrdersStats($month, $year, array(5)); - $cancelledOrderSeries->valueFormat = "%d"; - - return $data; - } - - /** - * @param string $key - * @param string $default - * @return string hexadecimal color or default argument - */ - protected function testHexColor($key, $default) - { - $hexColor = $this->getRequest()->query->get($key, $default); - - return preg_match('/^#[a-f0-9]{6}$/i', $hexColor) ? $hexColor : $default; - } -} diff --git a/local/modules/modules/HookAdminHome/Hook/AdminHook.php b/local/modules/modules/HookAdminHome/Hook/AdminHook.php deleted file mode 100644 index 309b6297..00000000 --- a/local/modules/modules/HookAdminHome/Hook/AdminHook.php +++ /dev/null @@ -1,71 +0,0 @@ - - */ -class AdminHook extends BaseHook -{ - public function blockStatistics(HookRenderEvent $event) - { - $event->add($this->render('block-statistics.html')); - } - - public function blockStatisticsJs(HookRenderEvent $event) - { - $event->add($this->render('block-statistics-js.html')); - } - - public function blockSalesStatistics(HookRenderBlockEvent $event) - { - $content = trim($this->render("block-sales-statistics.html")); - if (!empty($content)) { - $event->add([ - "id" => "block-sales-statistics", - "title" => $this->trans("Sales statistics", [], HookAdminHome::DOMAIN_NAME), - "content" => $content - ]); - } - } - - public function blockNews(HookRenderBlockEvent $event) - { - $content = trim($this->render("block-news.html")); - if (!empty($content)) { - $event->add([ - "id" => "block-news", - "content" => $content - ]); - } - } - - public function blockTheliaInformation(HookRenderBlockEvent $event) - { - $content = trim($this->render("block-thelia-information.html")); - if (!empty($content)) { - $event->add([ - "id" => "block-thelia-information", - "title" => $this->trans("Thelia informations", [], HookAdminHome::DOMAIN_NAME), - "content" => $content - ]); - } - } -} diff --git a/local/modules/modules/HookAdminHome/I18n/ar_SA.php b/local/modules/modules/HookAdminHome/I18n/ar_SA.php deleted file mode 100644 index 26fc119c..00000000 --- a/local/modules/modules/HookAdminHome/I18n/ar_SA.php +++ /dev/null @@ -1,5 +0,0 @@ - 'إحصائيات عن الشهر و السنة %month/%year', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/ar_SA.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/ar_SA.php deleted file mode 100644 index dafa0a35..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/ar_SA.php +++ /dev/null @@ -1,11 +0,0 @@ - 'تم إحباط الطلبات', - 'Average cart' => 'متوسط العربة', - 'Categories' => 'الفئات', - 'Click here' => 'انقر هنا', - 'Current version' => 'النسخة الحالية', - 'Customers' => 'العملاء', - 'Dashboard' => 'لوحة المعلومات', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/cs_CZ.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/cs_CZ.php deleted file mode 100644 index b1fe273d..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/cs_CZ.php +++ /dev/null @@ -1,31 +0,0 @@ - 'Aborted orders', - 'Average cart' => 'Average cart', - 'Categories' => 'Categories', - 'Click here' => 'Click here', - 'Current version' => 'Current version', - 'Customers' => 'Customers', - 'Dashboard' => 'Dashboard', - 'First orders' => 'First orders', - 'Latest version available' => 'Latest version available', - 'Lire la suite' => 'Lire la suite', - 'Loading Thelia lastest news...' => 'Loading Thelia lastest news...', - 'Loading...' => 'Loading...', - 'New customers' => 'New customers', - 'News' => 'News', - 'Offline products' => 'Offline products', - 'Online products' => 'Online products', - 'Orders' => 'Orders', - 'Overall sales' => 'Overall sales', - 'Previous month sales' => 'Previous month sales', - 'Previous year sales' => 'Previous year sales', - 'Products' => 'Products', - 'Sales' => 'Sales', - 'Sales excluding shipping' => 'Sales excluding shipping', - 'This month' => 'This month', - 'This year' => 'This year', - 'Today' => 'Today', - 'Yesterday sales' => 'Yesterday sales', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/de_DE.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/de_DE.php deleted file mode 100644 index 07620ee9..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,30 +0,0 @@ - 'Abgebrochene Bestellungen', - 'Average cart' => 'Durchschnittlichen Warenkorb', - 'Categories' => 'Kategorien', - 'Click here' => 'Hier Klicken', - 'Current version' => 'Aktuelle Version', - 'Customers' => 'Kunden', - 'Dashboard' => 'Dashboard', - 'First orders' => 'Erste Bestellungen', - 'Latest version available' => 'Neueste Version verfügbar', - 'Lire la suite' => 'Weiterlesen', - 'Loading Thelia lastest news...' => 'THELIAs neuesten Nachrichten Laden ...', - 'Loading...' => 'Laden...', - 'New customers' => 'Neue Kunde', - 'Offline products' => 'Offline Produkte', - 'Online products' => 'Online Produkte', - 'Orders' => 'Bestellungen', - 'Overall sales' => 'Gesamtverkäufe', - 'Previous month sales' => 'Vorheriger Monat Verkäufe', - 'Previous year sales' => 'Vorheriges Jahr Verkäufe', - 'Products' => 'Produkte', - 'Sales' => 'Verkäufe', - 'Sales excluding shipping' => 'Verkäufe ohne Lieferung', - 'This month' => 'Diesen Monat', - 'This year' => 'Dieses Jahr', - 'Today' => 'Heute', - 'Yesterday sales' => 'Verkäufe von Gestern', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/en_US.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/en_US.php deleted file mode 100644 index 5f375765..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,33 +0,0 @@ - 'Aborted orders', - 'An error occurred while reading from JSON file' => 'An error occurred while reading from JSON file', - 'Average cart' => 'Average cart', - 'Categories' => 'Categories', - 'Click here' => 'Click here', - 'Current version' => 'Current version', - 'Customers' => 'Customers', - 'Dashboard' => 'Dashboard', - 'First orders' => 'First orders', - 'Latest version available' => 'Latest version available', - 'Loading Thelia lastest news...' => 'Loading Thelia lastest news...', - 'Loading...' => 'Loading...', - 'New customers' => 'New customers', - 'News' => 'News', - 'Offline products' => 'Offline products', - 'Online products' => 'Online products', - 'Orders' => 'Orders', - 'Overall sales' => 'Overall sales', - 'Previous month sales' => 'Previous month sales', - 'Previous year sales' => 'Previous year sales', - 'Products' => 'Products', - 'Read more' => 'Read more', - 'Sales' => 'Sales', - 'Sales excluding shipping' => 'Sales excluding shipping', - 'This month' => 'This month', - 'This year' => 'This year', - 'Today' => 'Today', - 'YYYY-MM' => 'YYYY-MM', - 'Yesterday sales' => 'Yesterday sales', -); diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/es_ES.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/es_ES.php deleted file mode 100644 index 6537481f..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/es_ES.php +++ /dev/null @@ -1,31 +0,0 @@ - 'Pedidos abandonados', - 'Average cart' => 'Carrito medio', - 'Categories' => 'Categorías', - 'Click here' => 'Haz clic aquí', - 'Current version' => 'Versión actual', - 'Customers' => 'Clientes', - 'Dashboard' => 'Panel de Control', - 'First orders' => 'Primeros pedidos', - 'Latest version available' => 'Última versión disponible', - 'Lire la suite' => 'Leer más', - 'Loading Thelia lastest news...' => 'Carregant Thelia últimes notícies ...', - 'Loading...' => 'Carregant ...', - 'New customers' => 'Nuevos clientes', - 'News' => 'Noticias', - 'Offline products' => 'Productos fuera de línea', - 'Online products' => 'Productos en línea', - 'Orders' => 'Pedidos', - 'Overall sales' => 'Ventas totales', - 'Previous month sales' => 'Ventas del mes anterior', - 'Previous year sales' => 'Ventas del año anterior', - 'Products' => 'Productos', - 'Sales' => 'Ventas', - 'Sales excluding shipping' => 'Ventas sin el envio', - 'This month' => 'Este mes', - 'This year' => 'Este año', - 'Today' => 'Hoy', - 'Yesterday sales' => 'Ventas de ayer', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/fr_FR.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 0d04da9d..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,33 +0,0 @@ - 'Paniers abandonnés', - 'An error occurred while reading from JSON file' => 'Désolé, une erreur s\'est produite pendant la récupération des données.', - 'Average cart' => 'Panier moyen', - 'Categories' => 'Rubriques', - 'Click here' => 'Cliquez ici', - 'Current version' => 'Version en cours', - 'Customers' => 'Clients', - 'Dashboard' => 'Tableau de bord', - 'First orders' => 'Premières commandes', - 'Latest version available' => 'Dernière version disponible', - 'Loading Thelia lastest news...' => 'Chargement des dernières information Thelia...', - 'Loading...' => 'Chargement...', - 'New customers' => 'Nouveaux clients', - 'News' => 'Actualités', - 'Offline products' => 'Produits hors ligne', - 'Online products' => 'Produits en ligne', - 'Orders' => 'Commandes', - 'Overall sales' => 'Total des ventes', - 'Previous month sales' => 'Ventes du mois précédent', - 'Previous year sales' => 'Ventes de l\'année précédente', - 'Products' => 'Produits', - 'Read more' => 'Lire la suite', - 'Sales' => 'Ventes', - 'Sales excluding shipping' => 'Ventes hors frais de port', - 'This month' => 'Ce mois', - 'This year' => 'Cette année', - 'Today' => 'Aujourd\'hui', - 'YYYY-MM' => 'MM/YYYY', - 'Yesterday sales' => 'Ventes de la veille', -); diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/it_IT.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/it_IT.php deleted file mode 100644 index de57bcf8..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,32 +0,0 @@ - 'Ordini annullati', - 'Average cart' => 'Carrello medio', - 'Categories' => 'Categorie', - 'Click here' => 'Clicca qui', - 'Current version' => 'Versione attuale', - 'Customers' => 'Clienti', - 'Dashboard' => 'Dashboard', - 'First orders' => 'Primi ordini', - 'Latest version available' => 'Ultima versione disponibile', - 'Lire la suite' => 'Per saperne di più', - 'Loading Thelia lastest news...' => 'Caricamento delle ultime notizie su Thelia...', - 'Loading...' => 'Caricamento...', - 'New customers' => 'Nuovi clienti', - 'News' => 'Notizie', - 'Offline products' => 'Prodotti non in linea', - 'Online products' => 'Prodotti online', - 'Orders' => 'Ordini', - 'Overall sales' => 'Vendite complessive', - 'Previous month sales' => 'Vendite del mese precedente', - 'Previous year sales' => 'Vendite dell\'anno precedente', - 'Products' => 'Prodotti', - 'Read more' => 'Per saperne di più', - 'Sales' => 'Vendite', - 'Sales excluding shipping' => 'Vendite escluse spese di spedizione', - 'This month' => 'Questo mese', - 'This year' => 'Quest\'anno', - 'Today' => 'Oggi', - 'Yesterday sales' => 'Vendite di ieri', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/pt_BR.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/pt_BR.php deleted file mode 100644 index 7daaaee4..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/pt_BR.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Ordens abortadas', - 'Click here' => 'Clique aqui', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/ru_RU.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/ru_RU.php deleted file mode 100644 index b1fe273d..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/ru_RU.php +++ /dev/null @@ -1,31 +0,0 @@ - 'Aborted orders', - 'Average cart' => 'Average cart', - 'Categories' => 'Categories', - 'Click here' => 'Click here', - 'Current version' => 'Current version', - 'Customers' => 'Customers', - 'Dashboard' => 'Dashboard', - 'First orders' => 'First orders', - 'Latest version available' => 'Latest version available', - 'Lire la suite' => 'Lire la suite', - 'Loading Thelia lastest news...' => 'Loading Thelia lastest news...', - 'Loading...' => 'Loading...', - 'New customers' => 'New customers', - 'News' => 'News', - 'Offline products' => 'Offline products', - 'Online products' => 'Online products', - 'Orders' => 'Orders', - 'Overall sales' => 'Overall sales', - 'Previous month sales' => 'Previous month sales', - 'Previous year sales' => 'Previous year sales', - 'Products' => 'Products', - 'Sales' => 'Sales', - 'Sales excluding shipping' => 'Sales excluding shipping', - 'This month' => 'This month', - 'This year' => 'This year', - 'Today' => 'Today', - 'Yesterday sales' => 'Yesterday sales', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/tr_TR.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index 6fcb84a3..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,31 +0,0 @@ - 'İptal edilen siparişler', - 'Average cart' => 'Sepet Ortalaması', - 'Categories' => 'Katogoriler', - 'Click here' => 'Buraya tıklayın', - 'Current version' => 'Güncel Sürüm', - 'Customers' => 'müşteriler', - 'Dashboard' => 'Kontrol paneli', - 'First orders' => 'İlk emir', - 'Latest version available' => 'En son yorum elde edilebilir', - 'Lire la suite' => 'Devamını okuyun', - 'Loading Thelia lastest news...' => 'Thelia yükleme son haberler...', - 'Loading...' => 'Yükleneniyor…...', - 'New customers' => 'Yeni Müşteriler', - 'News' => 'Yeni Haberler', - 'Offline products' => 'Çevrimdışı ürünler', - 'Online products' => 'Online Ürünler', - 'Orders' => 'siparişler', - 'Overall sales' => 'Genel satış', - 'Previous month sales' => 'Önceki ay satış', - 'Previous year sales' => 'Önceki yılın satış', - 'Products' => 'ürün', - 'Sales' => 'Satış', - 'Sales excluding shipping' => 'Nakliye hariç satış', - 'This month' => 'Bu Ay', - 'This year' => 'Bu yıl', - 'Today' => 'bugün', - 'Yesterday sales' => 'Dün satış', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/cs_CZ.php b/local/modules/modules/HookAdminHome/I18n/cs_CZ.php deleted file mode 100644 index 2ff4e47b..00000000 --- a/local/modules/modules/HookAdminHome/I18n/cs_CZ.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Sales statistics', - 'Stats on %month/%year' => 'Stats on %month/%year', - 'Thelia informations' => 'Thelia information', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/de_DE.php b/local/modules/modules/HookAdminHome/I18n/de_DE.php deleted file mode 100644 index 4405c981..00000000 --- a/local/modules/modules/HookAdminHome/I18n/de_DE.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Verkaufsstatistiken', - 'Stats on %month/%year' => 'Statistiken für %month/%year', - 'Thelia informations' => 'Thelias Informationen', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/en_US.php b/local/modules/modules/HookAdminHome/I18n/en_US.php deleted file mode 100644 index a4d812ee..00000000 --- a/local/modules/modules/HookAdminHome/I18n/en_US.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Stats on %month/%year', - 'Thelia informations' => 'Thelia information', - 'Sales statistics' => 'Sales statistics', -); diff --git a/local/modules/modules/HookAdminHome/I18n/es_ES.php b/local/modules/modules/HookAdminHome/I18n/es_ES.php deleted file mode 100644 index fabace8e..00000000 --- a/local/modules/modules/HookAdminHome/I18n/es_ES.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Estadísticas de ventas', - 'Thelia informations' => 'información sobre Thelia', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/fr_FR.php b/local/modules/modules/HookAdminHome/I18n/fr_FR.php deleted file mode 100644 index 1fe9d72d..00000000 --- a/local/modules/modules/HookAdminHome/I18n/fr_FR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Statistiques de vente', - 'Stats on %month/%year' => 'Statistiques pour %month/%year', - 'Thelia informations' => 'Informations Thelia', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/id_ID.php b/local/modules/modules/HookAdminHome/I18n/id_ID.php deleted file mode 100644 index 8cbc43ab..00000000 --- a/local/modules/modules/HookAdminHome/I18n/id_ID.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Stats on %month/%year', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/it_IT.php b/local/modules/modules/HookAdminHome/I18n/it_IT.php deleted file mode 100644 index dcab80d9..00000000 --- a/local/modules/modules/HookAdminHome/I18n/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Statistiche di vendita', - 'Thelia informations' => 'Thelia informazioni', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/ru_RU.php b/local/modules/modules/HookAdminHome/I18n/ru_RU.php deleted file mode 100644 index 2ff4e47b..00000000 --- a/local/modules/modules/HookAdminHome/I18n/ru_RU.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Sales statistics', - 'Stats on %month/%year' => 'Stats on %month/%year', - 'Thelia informations' => 'Thelia information', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/tr_TR.php b/local/modules/modules/HookAdminHome/I18n/tr_TR.php deleted file mode 100644 index b8d17e2e..00000000 --- a/local/modules/modules/HookAdminHome/I18n/tr_TR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Satış istatistikleri', - 'Stats on %month/%year' => '%month/%year istatistikleri', - 'Thelia informations' => 'Thelia bilgi', -]; diff --git a/local/modules/modules/HookAdminHome/LICENSE.txt b/local/modules/modules/HookAdminHome/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookAdminHome/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/ajax/thelia_news_feed.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/ajax/thelia_news_feed.html deleted file mode 100644 index 59aa6ee5..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/ajax/thelia_news_feed.html +++ /dev/null @@ -1,29 +0,0 @@ -{* this template is loaded via Ajax in the login page, to prevent login page slowdown *} - -{* Set the default translation domain, that will be used by intl when the 'd' parameter is not set *} -{default_translation_domain domain='hookadminhome.bo.default'} - -
- {loop type="feed" name="thelia_feeds" url="http://thelia.net/feeds/?lang={$lang_code}" limit="3"} - -
- -
-
- {* we use unescape:"htmlall" to unescape var before truncate, to prevent a cut in the middel of an HTML entity, eg &ea... *} -

{$DESCRIPTION|strip_tags|unescape:"htmlall"|truncate:250:"...":true nofilter}

-
- -
-
- - {/loop} -
\ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/assets/css/home.css b/local/modules/modules/HookAdminHome/templates/backOffice/default/assets/css/home.css deleted file mode 100644 index 611f6228..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/assets/css/home.css +++ /dev/null @@ -1 +0,0 @@ -#block-information a{color:#8A8A8A}.stats{border-right:1px solid #f0f0f0;text-align:center}.stats:last-child{border-right:none}.stats h2{margin-top:0;margin-bottom:5px;font-size:30px}.stats p{margin-top:0;text-transform:uppercase;font-size:12px}@media (max-width:991px){.stats{margin-bottom:10px}.stats:nth-child(3){border-right:none}}.homepage #date-picker{text-align:center;} \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/assets/less/home.less b/local/modules/modules/HookAdminHome/templates/backOffice/default/assets/less/home.less deleted file mode 100644 index a87eaab0..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/assets/less/home.less +++ /dev/null @@ -1,45 +0,0 @@ -@import "../../../../../../../../templates/backOffice/default/assets/less/bootstrap/variables.less"; -@import "../../../../../../../../templates/backOffice/default/assets/less/thelia/variables.less"; - -#block-information { - a { - color: #8A8A8A; - } -} - -.stats { - border-right: 1px solid @table-border-color; - text-align: center; - - &:last-child { - border-right: none; - } - - h2 { - margin-top: 0; - margin-bottom: 5px; - font-size: 30px; - } - - p { - margin-top: 0; - text-transform: uppercase; - font-size: @font-size-base - 1; // 12px - } -} - -@media (max-width: @screen-sm-max) { - .stats { - margin-bottom: 10px; - - &:nth-child(3) { - border-right: none; - } - } -} - -.homepage { - #date-picker { - text-align: center; - } -} \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-information.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/block-information.html deleted file mode 100644 index 25f09269..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-information.html +++ /dev/null @@ -1,59 +0,0 @@ -{* Do not display shop information block if user none of the required authorizations *} - -{capture name="shop_information_block_content"} - {loop type="auth" name="can_view" role="ADMIN" resource="admin.customer" access="VIEW"} - - {/loop} - - {loop type="auth" name="can_view" role="ADMIN" resource="admin.category" access="VIEW"} - - {/loop} - - {loop type="auth" name="can_view" role="ADMIN" resource="admin.product" access="VIEW"} - - - - {/loop} - - {loop type="auth" name="can_view" role="ADMIN" resource="admin.order" access="VIEW"} - - {/loop} -{/capture} - -{if trim($smarty.capture.shop_information_block_content) ne ""} -
-
- {$smarty.capture.shop_information_block_content nofilter} -
-
-{/if} \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-month-sales-statistics.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/block-month-sales-statistics.html deleted file mode 100644 index 57f72a60..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-month-sales-statistics.html +++ /dev/null @@ -1,48 +0,0 @@ -{loop type="currency" name="default-currency" default_only="1"} -{$defaultCurrency = $SYMBOL} -{/loop} - -{if empty($startDate)}{$startDate = 'this_month'}{/if} -{if empty($startDate)}{$startDate = 'this_month'}{/if} - -{if empty($prevMonthStartDate)}{$prevMonthStartDate = 'last_month'}{/if} -{if empty($prevMonthEndDate)}{$prevMonthEndDate = 'last_month'}{/if} - -
- - - - - - - - - - - - - - - - - - - - - - - -
{intl l="Overall sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate=$startDate endDate=$endDate} symbol=$defaultCurrency}
{intl l="Sales excluding shipping" d='hookadminhome.bo.default'} - {$salesNoShipping = {stats key="sales" startDate=$startDate endDate=$endDate includeShipping="false"}} - {format_money number=$salesNoShipping symbol=$defaultCurrency} -
{intl l="Previous month sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate=$prevMonthStartDate endDate=$prevMonthEndDate} symbol=$defaultCurrency}
{intl l="Orders" d='hookadminhome.bo.default'} - {$orderCount = {stats key="orders" startDate=$startDate endDate=$endDate}} - {$orderCount} -
{intl l="Average cart" d='hookadminhome.bo.default'} - {if $orderCount == 0} - {format_money number=0 symbol=$defaultCurrency} - {else} - {format_money number={($salesNoShipping/$orderCount)|round:"2"} symbol=$defaultCurrency} - {/if} -
-
\ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-news-js.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/block-news-js.html deleted file mode 100644 index d18e1f92..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-news-js.html +++ /dev/null @@ -1,7 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" module="HookAdminHome" access="VIEW"} - -{/loop} \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-news.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/block-news.html deleted file mode 100644 index 97bd6f99..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-news.html +++ /dev/null @@ -1,5 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" module="HookAdminHome" access="VIEW"} -
-
{intl l="Loading Thelia lastest news..." d='hookadminhome.bo.default'}
-
-{/loop} \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-sales-statistics.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/block-sales-statistics.html deleted file mode 100644 index 753173f8..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-sales-statistics.html +++ /dev/null @@ -1,100 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" resource="admin.order" access="VIEW"} - -{loop type="currency" name="default-currency" default_only="1"} -{$defaultCurrency = $SYMBOL} -{/loop} -
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
{intl l="Overall sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate="today" endDate="today"} symbol=$defaultCurrency}
{intl l="Sales excluding shipping" d='hookadminhome.bo.default'} - {$salesNoShipping = {stats key="sales" startDate="today" endDate="today" includeShipping="false"}} - {format_money number=$salesNoShipping symbol=$defaultCurrency} -
{intl l="Yesterday sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate="yesterday" endDate="yesterday"} symbol=$defaultCurrency}
{intl l="Orders" d='hookadminhome.bo.default'} - {$orderCount = {stats key="orders" startDate="today" endDate="today"}} - {$orderCount} -
{intl l="Average cart" d='hookadminhome.bo.default'} - {if $orderCount == 0} - {format_money number=0 symbol=$defaultCurrency} - {else} - {format_money number={($salesNoShipping/$orderCount)|round:"2"} symbol=$defaultCurrency} - {/if} -
-
-
- -
- {include file="block-month-sales-statistics.html"} -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - -
{intl l="Overall sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate="this_year" endDate="this_year"} symbol=$defaultCurrency}
{intl l="Sales excluding shipping" d='hookadminhome.bo.default'} - {$salesNoShipping = {stats key="sales" startDate="this_year" endDate="this_year" includeShipping="false"}} - {format_money number=$salesNoShipping symbol=$defaultCurrency} -
{intl l="Previous year sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate="last_year" endDate="last_year"} symbol=$defaultCurrency}
{intl l="Orders" d='hookadminhome.bo.default'} - {$orderCount = {stats key="orders" startDate="this_year" endDate="this_year"}} - {$orderCount} -
{intl l="Average cart" d='hookadminhome.bo.default'} - {if $orderCount == 0} - {format_money number=0 symbol=$defaultCurrency} - {else} - {format_money number={($salesNoShipping/$orderCount)|round:"2"} symbol=$defaultCurrency} - {/if} -
-
-
-
-{/loop} \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-statistics-js.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/block-statistics-js.html deleted file mode 100644 index b346c47d..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-statistics-js.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-statistics.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/block-statistics.html deleted file mode 100644 index e29e7135..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-statistics.html +++ /dev/null @@ -1,34 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" resource="admin.order" access="VIEW"} -
- -
- {intl l='Dashboard' d='hookadminhome.bo.default'} -
- - - - - - - -
-
- -
-
- - - - - -
-
- -
- -
-
-
- -
-{/loop} \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-thelia-information.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/block-thelia-information.html deleted file mode 100644 index d31df8b4..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-thelia-information.html +++ /dev/null @@ -1,20 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" module="HookAdminHome" access="VIEW"} -
- - - - - - - - - - - - - - - -
{intl l="Current version" d='hookadminhome.bo.default'}{$THELIA_VERSION}
{intl l="Latest version available"}{intl l="Loading..." d='hookadminhome.bo.default'}
{intl l="News"}{intl l="Click here" d='hookadminhome.bo.default'}
-
-{/loop} \ No newline at end of file diff --git a/local/modules/modules/HookAnalytics/Config/config.xml b/local/modules/modules/HookAnalytics/Config/config.xml deleted file mode 100644 index 57a6cb0f..00000000 --- a/local/modules/modules/HookAnalytics/Config/config.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -
- - - - - - - - - - - - - \ No newline at end of file diff --git a/local/modules/modules/HookAnalytics/Config/module.xml b/local/modules/modules/HookAnalytics/Config/module.xml deleted file mode 100644 index fddad541..00000000 --- a/local/modules/modules/HookAnalytics/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookAnalytics\HookAnalytics - - Analytics (Google) - - - Statistiques (Google) - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookAnalytics/Config/routing.xml b/local/modules/modules/HookAnalytics/Config/routing.xml deleted file mode 100644 index 269697d7..00000000 --- a/local/modules/modules/HookAnalytics/Config/routing.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - HookAnalytics\Controller\Configuration::saveAction - - - diff --git a/local/modules/modules/HookAnalytics/Controller/Configuration.php b/local/modules/modules/HookAnalytics/Controller/Configuration.php deleted file mode 100644 index dc083f55..00000000 --- a/local/modules/modules/HookAnalytics/Controller/Configuration.php +++ /dev/null @@ -1,57 +0,0 @@ - - */ -class Configuration extends BaseAdminController { - - public function saveAction() - { - - if (null !== $response = $this->checkAuth(array(AdminResources::MODULE), array('hookanalytics'), AccessManager::UPDATE)) { - return $response; - } - - $form = new \HookAnalytics\Form\Configuration($this->getRequest()); - $resp = array( - "error" => 0, - "message" => "" - ); - $response=null; - - try { - $vform = $this->validateForm($form); - $data = $vform->getData(); - - ConfigQuery::write("hookanalytics_trackingcode", $data["trackingcode"], false, true); - - } catch (\Exception $e) { - $resp["error"] = 1; - $resp["message"] = $e->getMessage(); - } - - return JsonResponse::create($resp); - } - -} \ No newline at end of file diff --git a/local/modules/modules/HookAnalytics/Form/Configuration.php b/local/modules/modules/HookAnalytics/Form/Configuration.php deleted file mode 100644 index 01db6191..00000000 --- a/local/modules/modules/HookAnalytics/Form/Configuration.php +++ /dev/null @@ -1,54 +0,0 @@ - - */ -class Configuration extends BaseForm { - - protected function buildForm() - { - $form = $this->formBuilder; - - $value = ConfigQuery::read("hookanalytics_trackingcode", ""); - $form->add( - "trackingcode", - "text", - array( - 'data' => $value, - 'label' => Translator::getInstance()->trans("Tracking Code"), - 'label_attr' => array( - 'for' => "trackingcode" - ), - ) - ); - - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "hookanalytics"; - } - - -} \ No newline at end of file diff --git a/local/modules/modules/HookAnalytics/Hook/FrontHook.php b/local/modules/modules/HookAnalytics/Hook/FrontHook.php deleted file mode 100644 index 11bd3c6c..00000000 --- a/local/modules/modules/HookAnalytics/Hook/FrontHook.php +++ /dev/null @@ -1,33 +0,0 @@ - - */ -class FrontHook extends BaseHook { - - public function onMainHeadBottom(HookRenderEvent $event) - { - $value = trim(ConfigQuery::read("hookanalytics_trackingcode", "")); - if ("" != $value){ - $event->add($value); - } - } -} \ No newline at end of file diff --git a/local/modules/modules/HookAnalytics/HookAnalytics.php b/local/modules/modules/HookAnalytics/HookAnalytics.php deleted file mode 100644 index 2636e381..00000000 --- a/local/modules/modules/HookAnalytics/HookAnalytics.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Ein Fehler ist aufgetreten', - 'Edit your analytics configuration.' => 'Analytics-Konfiguration bearbeiten.', - 'Save' => 'Speichern', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/backOffice/default/en_US.php b/local/modules/modules/HookAnalytics/I18n/backOffice/default/en_US.php deleted file mode 100644 index ef8b1f98..00000000 --- a/local/modules/modules/HookAnalytics/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,7 +0,0 @@ - 'An error occured', - 'Edit your analytics configuration.' => 'Edit your analytics configuration.', - 'Save' => 'Save', -); diff --git a/local/modules/modules/HookAnalytics/I18n/backOffice/default/fr_FR.php b/local/modules/modules/HookAnalytics/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 56712bd3..00000000 --- a/local/modules/modules/HookAnalytics/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Une erreur est survenue', - 'Edit your analytics configuration.' => 'Modifier la configuration des statistiques', - 'Save' => ' Enregistrer', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/backOffice/default/it_IT.php b/local/modules/modules/HookAnalytics/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 0c59bda5..00000000 --- a/local/modules/modules/HookAnalytics/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Salvare', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/backOffice/default/tr_TR.php b/local/modules/modules/HookAnalytics/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index 8e913080..00000000 --- a/local/modules/modules/HookAnalytics/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Bir hata meydana geldi', - 'Edit your analytics configuration.' => 'Analytics yapılandırmanızı düzenleyin.', - 'Save' => 'kaydet', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/de_DE.php b/local/modules/modules/HookAnalytics/I18n/de_DE.php deleted file mode 100644 index e1b30511..00000000 --- a/local/modules/modules/HookAnalytics/I18n/de_DE.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Tracking-Code', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/en_US.php b/local/modules/modules/HookAnalytics/I18n/en_US.php deleted file mode 100644 index ba8939d7..00000000 --- a/local/modules/modules/HookAnalytics/I18n/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Tracking Code', -); diff --git a/local/modules/modules/HookAnalytics/I18n/fr_FR.php b/local/modules/modules/HookAnalytics/I18n/fr_FR.php deleted file mode 100644 index ab7c10b8..00000000 --- a/local/modules/modules/HookAnalytics/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Code de suivi', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/de_DE.php b/local/modules/modules/HookAnalytics/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 938a9f4a..00000000 --- a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS-Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'YouTube', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookAnalytics/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 534a4d03..00000000 --- a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -); diff --git a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookAnalytics/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 7b64f075..00000000 --- a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'Flux RSS', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookAnalytics/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 15298b70..00000000 --- a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google +', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookAnalytics/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index b951272b..00000000 --- a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google +', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Beslemesi', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/it_IT.php b/local/modules/modules/HookAnalytics/I18n/it_IT.php deleted file mode 100644 index bcce8768..00000000 --- a/local/modules/modules/HookAnalytics/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Codice di monitoraggio', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/tr_TR.php b/local/modules/modules/HookAnalytics/I18n/tr_TR.php deleted file mode 100644 index 3e16a023..00000000 --- a/local/modules/modules/HookAnalytics/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'İzleme Kodu', -]; diff --git a/local/modules/modules/HookAnalytics/LICENSE.txt b/local/modules/modules/HookAnalytics/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookAnalytics/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/HookAnalytics/composer.json b/local/modules/modules/HookAnalytics/composer.json deleted file mode 100644 index efe5231d..00000000 --- a/local/modules/modules/HookAnalytics/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-analytics-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookAnalytics" - } -} diff --git a/local/modules/modules/HookAnalytics/templates/backOffice/default/assets/js/module-configuration.js b/local/modules/modules/HookAnalytics/templates/backOffice/default/assets/js/module-configuration.js deleted file mode 100644 index fe180bb7..00000000 --- a/local/modules/modules/HookAnalytics/templates/backOffice/default/assets/js/module-configuration.js +++ /dev/null @@ -1,29 +0,0 @@ -$(document).ready(function() { - $("#hookanalytics-form").on("submit", function(e, data){ - e.preventDefault(); - var form = $(this); - - $('body').append(''); - - $.ajax({ - url: form.attr('action'), - type: form.attr('method'), - data: form.serialize() - }).done(function(){ - $("#loading-event").remove(); - }) - .success(function(data) { - if (data.error != 0) { - $("#loading-event").remove(); - $('#hookanalytics-failed-body').html(data.message); - $("#hookanalytics-failed").modal("show"); - } - }) - .fail(function(jqXHR, textStatus, errorThrown){ - $("#loading-event").remove(); - $('#hookanalytics-failed-body').html(jqXHR.responseJSON.message); - $("#hookanalytics-failed").modal("show"); - }); - - }); -}); \ No newline at end of file diff --git a/local/modules/modules/HookAnalytics/templates/backOffice/default/module_configuration.html b/local/modules/modules/HookAnalytics/templates/backOffice/default/module_configuration.html deleted file mode 100644 index c80b88ab..00000000 --- a/local/modules/modules/HookAnalytics/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -
-
- -
- {intl l='Edit your analytics configuration.'} -
- -
-
- - {form name="hookanalytics.configuration.form"} - - - {form_hidden_fields} - - {form_field field='trackingcode'} -
- - -
- {/form_field} - - - - {/form} - -
- -
- -
-
- - - - diff --git a/local/modules/modules/HookCart/Config/config.xml b/local/modules/modules/HookCart/Config/config.xml deleted file mode 100644 index f8c3dce8..00000000 --- a/local/modules/modules/HookCart/Config/config.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/local/modules/modules/HookCart/Config/module.xml b/local/modules/modules/HookCart/Config/module.xml deleted file mode 100644 index d01aadf0..00000000 --- a/local/modules/modules/HookCart/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookCart\HookCart - - Block Cart - - - Bloc Panier - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookCart/HookCart.php b/local/modules/modules/HookCart/HookCart.php deleted file mode 100644 index da8d0e9a..00000000 --- a/local/modules/modules/HookCart/HookCart.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Warenkorb', - 'Checkout' => 'Zur Kasse', - 'Remove' => 'Entfernen', - 'View Cart' => 'Warenkorb anzeigen', - 'You have no items in your shopping cart.' => 'Sie haben keine Produkte im Warenkorb', -]; diff --git a/local/modules/modules/HookCart/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookCart/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 3f99d2c5..00000000 --- a/local/modules/modules/HookCart/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Cart', - 'Checkout' => 'Checkout', - 'Remove' => 'Remove', - 'View Cart' => 'View Cart', - 'You have no items in your shopping cart.' => 'You have no items in your shopping cart.', -); diff --git a/local/modules/modules/HookCart/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookCart/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 088f21ef..00000000 --- a/local/modules/modules/HookCart/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Panier', - 'Checkout' => 'Commande', - 'Remove' => 'Supprimer', - 'View Cart' => 'Voir le panier', - 'You have no items in your shopping cart.' => 'Vous n\'avez pas de produit dans votre panier.', -]; diff --git a/local/modules/modules/HookCart/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookCart/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index dac05d5d..00000000 --- a/local/modules/modules/HookCart/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Carrello', - 'Checkout' => 'Procedi all\'acquisto', - 'Remove' => 'Rimuovi', - 'View Cart' => 'Visualizza il carrello', - 'You have no items in your shopping cart.' => 'Non hai nessun prodotto nel tuo carrello.', -]; diff --git a/local/modules/modules/HookCart/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookCart/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 04f4cc85..00000000 --- a/local/modules/modules/HookCart/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Sepet', - 'Checkout' => 'Ödeme yap', - 'Remove' => 'Kaldır', - 'View Cart' => 'Sepeti Görüntüle', - 'You have no items in your shopping cart.' => 'Sepetinizde hiç ürün yok.', -]; diff --git a/local/modules/modules/HookCart/LICENSE.txt b/local/modules/modules/HookCart/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookCart/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/HookCart/composer.json b/local/modules/modules/HookCart/composer.json deleted file mode 100644 index f56a5cb6..00000000 --- a/local/modules/modules/HookCart/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-cart-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookCart" - } -} diff --git a/local/modules/modules/HookCart/templates/frontOffice/default/assets/css/styles.css b/local/modules/modules/HookCart/templates/frontOffice/default/assets/css/styles.css deleted file mode 100644 index e69de29b..00000000 diff --git a/local/modules/modules/HookCart/templates/frontOffice/default/main-navbar-secondary.html b/local/modules/modules/HookCart/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index a5df3814..00000000 --- a/local/modules/modules/HookCart/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,3 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/HookCart/templates/frontOffice/default/mini-cart.html b/local/modules/modules/HookCart/templates/frontOffice/default/mini-cart.html deleted file mode 100644 index aa128a08..00000000 --- a/local/modules/modules/HookCart/templates/frontOffice/default/mini-cart.html +++ /dev/null @@ -1,81 +0,0 @@ -{ifloop rel="cartloop"} - -{/ifloop} -{elseloop rel="cartloop"} - -{/elseloop} diff --git a/local/modules/modules/HookContact/Config/config.xml b/local/modules/modules/HookContact/Config/config.xml deleted file mode 100644 index 5c54bc9c..00000000 --- a/local/modules/modules/HookContact/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/modules/modules/HookContact/Config/module.xml b/local/modules/modules/HookContact/Config/module.xml deleted file mode 100644 index e5e2b1da..00000000 --- a/local/modules/modules/HookContact/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookContact\HookContact - - Block Contact - - - Bloc Contact - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookContact/Hook/FrontHook.php b/local/modules/modules/HookContact/Hook/FrontHook.php deleted file mode 100644 index 8ed956f5..00000000 --- a/local/modules/modules/HookContact/Hook/FrontHook.php +++ /dev/null @@ -1,39 +0,0 @@ - - */ -class FrontHook extends BaseHook -{ - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $content = trim($this->render("main-footer-body.html")); - if ("" != $content) { - $event->add( - array( - "id" => "contact-footer-body", - "class" => "contact", - "title" => $this->trans("Contact", array(), "hookcontact"), - "content" => $content - ) - ); - } - } -} diff --git a/local/modules/modules/HookContact/HookContact.php b/local/modules/modules/HookContact/HookContact.php deleted file mode 100644 index 2b8df283..00000000 --- a/local/modules/modules/HookContact/HookContact.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Kontakt', -]; diff --git a/local/modules/modules/HookContact/I18n/en_US.php b/local/modules/modules/HookContact/I18n/en_US.php deleted file mode 100644 index 55aea96d..00000000 --- a/local/modules/modules/HookContact/I18n/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Contact', -); diff --git a/local/modules/modules/HookContact/I18n/fr_FR.php b/local/modules/modules/HookContact/I18n/fr_FR.php deleted file mode 100644 index 896efb7c..00000000 --- a/local/modules/modules/HookContact/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Contact', -]; diff --git a/local/modules/modules/HookContact/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookContact/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index d8eb50ed..00000000 --- a/local/modules/modules/HookContact/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Nous trouver, Nous contacter', -]; diff --git a/local/modules/modules/HookContact/I18n/it_IT.php b/local/modules/modules/HookContact/I18n/it_IT.php deleted file mode 100644 index 11ee0ec2..00000000 --- a/local/modules/modules/HookContact/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Contatta', -]; diff --git a/local/modules/modules/HookContact/I18n/tr_TR.php b/local/modules/modules/HookContact/I18n/tr_TR.php deleted file mode 100644 index 31680df5..00000000 --- a/local/modules/modules/HookContact/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'İletişim', -]; diff --git a/local/modules/modules/HookContact/LICENSE.txt b/local/modules/modules/HookContact/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookContact/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/HookContact/composer.json b/local/modules/modules/HookContact/composer.json deleted file mode 100644 index 2ecdb22a..00000000 --- a/local/modules/modules/HookContact/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-contact-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookContact" - } -} diff --git a/local/modules/modules/HookContact/templates/frontOffice/default/main-footer-body.html b/local/modules/modules/HookContact/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index 9eea38b6..00000000 --- a/local/modules/modules/HookContact/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,25 +0,0 @@ -
- -
    -
  • -
    - {config key="store_address1"} {config key="store_address2"} {config key="store_address3"}
    - {config key="store_zipcode"} - - {config key="store_city"} - {if {config key="store_country"} } - {loop type="country" name="address.country.title" id={config key="store_country"}}, {$TITLE}{/loop} - {/if} - -
    -
  • - {if {config key="store_phone"} } -
  • - {config key="store_phone"} -
  • - {/if} -
  • - {intl l="Find us, Contact us" d="hookcontact.fo.default"} -
  • -
-
diff --git a/local/modules/modules/HookCurrency/Config/config.xml b/local/modules/modules/HookCurrency/Config/config.xml deleted file mode 100644 index 1b5deb78..00000000 --- a/local/modules/modules/HookCurrency/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/modules/modules/HookCurrency/Config/module.xml b/local/modules/modules/HookCurrency/Config/module.xml deleted file mode 100644 index e71a5278..00000000 --- a/local/modules/modules/HookCurrency/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookCurrency\HookCurrency - - Block Currency - - - Bloc Devise - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookCurrency/HookCurrency.php b/local/modules/modules/HookCurrency/HookCurrency.php deleted file mode 100644 index 63d66296..00000000 --- a/local/modules/modules/HookCurrency/HookCurrency.php +++ /dev/null @@ -1,20 +0,0 @@ - - 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. diff --git a/local/modules/modules/HookCurrency/composer.json b/local/modules/modules/HookCurrency/composer.json deleted file mode 100644 index 58767943..00000000 --- a/local/modules/modules/HookCurrency/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-currency-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookCurrency" - } -} diff --git a/local/modules/modules/HookCurrency/templates/frontOffice/default/main-navbar-secondary.html b/local/modules/modules/HookCurrency/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index 0a8faad9..00000000 --- a/local/modules/modules/HookCurrency/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/HookCustomer/Config/config.xml b/local/modules/modules/HookCustomer/Config/config.xml deleted file mode 100644 index 63a29ce5..00000000 --- a/local/modules/modules/HookCustomer/Config/config.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - diff --git a/local/modules/modules/HookCustomer/Config/module.xml b/local/modules/modules/HookCustomer/Config/module.xml deleted file mode 100644 index d4673f06..00000000 --- a/local/modules/modules/HookCustomer/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookCustomer\HookCustomer - - Block Customer - - - Bloc Client - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookCustomer/HookCustomer.php b/local/modules/modules/HookCustomer/HookCustomer.php deleted file mode 100644 index eab3f96a..00000000 --- a/local/modules/modules/HookCustomer/HookCustomer.php +++ /dev/null @@ -1,20 +0,0 @@ - 'E-mail Adresse', - 'Forgot your Password?' => 'Haben sir Ihr Passwort vergessen ?', - 'Log In!' => 'Log In!', - 'Log out!' => 'Log out!', - 'My Account' => 'Mein Kundenkonto', - 'Password' => 'Passwort', - 'Register' => 'Registrieren', - 'Register!' => 'Registrieren!', - 'Sign In' => 'Registrieren', -]; diff --git a/local/modules/modules/HookCustomer/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookCustomer/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 102c3129..00000000 --- a/local/modules/modules/HookCustomer/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Email address', - 'Forgot your Password?' => 'Forgot your Password?', - 'Log In!' => 'Log In!', - 'Log out!' => 'Log out!', - 'My Account' => 'My Account', - 'Password' => 'Password', - 'Register' => 'Register', - 'Register!' => 'Register!', - 'Sign In' => 'Sign In', -); diff --git a/local/modules/modules/HookCustomer/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookCustomer/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 8a899390..00000000 --- a/local/modules/modules/HookCustomer/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Adresse e-mail', - 'Forgot your Password?' => 'Mot de passe oublié ?', - 'Log In!' => 'Se connecter', - 'Log out!' => 'Se déconnecter', - 'My Account' => 'Mon compte', - 'Password' => 'Mot de passe', - 'Register' => 'S\'inscrire', - 'Register!' => 'Enregistrez-vous !', - 'Sign In' => 'Se connecter', -]; diff --git a/local/modules/modules/HookCustomer/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookCustomer/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index aba7ec5d..00000000 --- a/local/modules/modules/HookCustomer/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Indirizzo email', - 'Forgot your Password?' => 'Hai dimenticato la password?', - 'Log In!' => 'Accedi!', - 'Log out!' => 'Esci!', - 'My Account' => 'Mio account', - 'Password' => 'Password', - 'Register' => 'Registrati', - 'Register!' => 'Registrati!', - 'Sign In' => 'Accedi', -]; diff --git a/local/modules/modules/HookCustomer/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookCustomer/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 83c6b6fd..00000000 --- a/local/modules/modules/HookCustomer/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Eposta adresi', - 'Forgot your Password?' => 'Parolanızı mı unuttunuz?', - 'Log In!' => 'Oturum aç!', - 'Log out!' => 'Çıkış Yap!', - 'My Account' => 'Hesabım', - 'Password' => 'Parola', - 'Register' => 'Kaydol', - 'Register!' => 'Kayıt ol!', - 'Sign In' => 'Oturum Aç', -]; diff --git a/local/modules/modules/HookCustomer/LICENSE.txt b/local/modules/modules/HookCustomer/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookCustomer/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/HookCustomer/composer.json b/local/modules/modules/HookCustomer/composer.json deleted file mode 100644 index d081b403..00000000 --- a/local/modules/modules/HookCustomer/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-customer-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookCustomer" - } -} diff --git a/local/modules/modules/HookCustomer/templates/frontOffice/default/assets/css/styles.css b/local/modules/modules/HookCustomer/templates/frontOffice/default/assets/css/styles.css deleted file mode 100644 index e69de29b..00000000 diff --git a/local/modules/modules/HookCustomer/templates/frontOffice/default/main-navbar-secondary.html b/local/modules/modules/HookCustomer/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index 13d84fd5..00000000 --- a/local/modules/modules/HookCustomer/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,43 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/HookLang/Config/config.xml b/local/modules/modules/HookLang/Config/config.xml deleted file mode 100644 index d30cb542..00000000 --- a/local/modules/modules/HookLang/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/modules/modules/HookLang/Config/module.xml b/local/modules/modules/HookLang/Config/module.xml deleted file mode 100644 index a6be2dcc..00000000 --- a/local/modules/modules/HookLang/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookLang\HookLang - - Block Languages - - - Bloc langages - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookLang/HookLang.php b/local/modules/modules/HookLang/HookLang.php deleted file mode 100644 index 2ab93ac2..00000000 --- a/local/modules/modules/HookLang/HookLang.php +++ /dev/null @@ -1,20 +0,0 @@ - - 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. diff --git a/local/modules/modules/HookLang/composer.json b/local/modules/modules/HookLang/composer.json deleted file mode 100644 index c5338646..00000000 --- a/local/modules/modules/HookLang/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-lang-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookLang" - } -} diff --git a/local/modules/modules/HookLang/templates/frontOffice/default/main-navbar-secondary.html b/local/modules/modules/HookLang/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index a61a7a1e..00000000 --- a/local/modules/modules/HookLang/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/HookLinks/Config/config.xml b/local/modules/modules/HookLinks/Config/config.xml deleted file mode 100644 index 6036b5d0..00000000 --- a/local/modules/modules/HookLinks/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/modules/modules/HookLinks/Config/module.xml b/local/modules/modules/HookLinks/Config/module.xml deleted file mode 100644 index 09605839..00000000 --- a/local/modules/modules/HookLinks/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookLinks\HookLinks - - Block Useful links - - - Bloc Liens utiles - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookLinks/Hook/FrontHook.php b/local/modules/modules/HookLinks/Hook/FrontHook.php deleted file mode 100644 index 3f0a4829..00000000 --- a/local/modules/modules/HookLinks/Hook/FrontHook.php +++ /dev/null @@ -1,38 +0,0 @@ - - */ -class FrontHook extends BaseHook { - - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $content = trim($this->render("main-footer-body.html")); - if ("" != $content){ - $event->add(array( - "id" => "links-footer-body", - "class" => "default", - "title" => $this->trans("Useful links", array(), "hooklinks"), - "content" => $content - )); - } - } - -} \ No newline at end of file diff --git a/local/modules/modules/HookLinks/HookLinks.php b/local/modules/modules/HookLinks/HookLinks.php deleted file mode 100644 index 28e00f98..00000000 --- a/local/modules/modules/HookLinks/HookLinks.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Nützliche Links', -]; diff --git a/local/modules/modules/HookLinks/I18n/en_US.php b/local/modules/modules/HookLinks/I18n/en_US.php deleted file mode 100644 index 531cd8a6..00000000 --- a/local/modules/modules/HookLinks/I18n/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Useful links', -); diff --git a/local/modules/modules/HookLinks/I18n/fr_FR.php b/local/modules/modules/HookLinks/I18n/fr_FR.php deleted file mode 100644 index 95d22cf1..00000000 --- a/local/modules/modules/HookLinks/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Liens utiles', -]; diff --git a/local/modules/modules/HookLinks/I18n/frontOffice/default/de_DE.php b/local/modules/modules/HookLinks/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 1dc47f8d..00000000 --- a/local/modules/modules/HookLinks/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Warenkorb', - 'Checkout' => 'Zur Kasse', - 'Log out!' => 'Log out!', - 'Login' => 'Anmeldung', - 'My Account' => 'Mein Kundenkonto', - 'Register' => 'Registrieren', -]; diff --git a/local/modules/modules/HookLinks/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookLinks/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 33a0bb71..00000000 --- a/local/modules/modules/HookLinks/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Cart', - 'Checkout' => 'Checkout', - 'Log out!' => 'Log out!', - 'Login' => 'Login', - 'My Account' => 'My Account', - 'Register' => 'Register', -); diff --git a/local/modules/modules/HookLinks/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookLinks/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 8b8c6bf4..00000000 --- a/local/modules/modules/HookLinks/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Panier', - 'Checkout' => 'Commander', - 'Log out!' => 'Se déconnecter', - 'Login' => 'Connexion', - 'My Account' => 'Mon compte', - 'Register' => 'S\'inscrire', -]; diff --git a/local/modules/modules/HookLinks/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookLinks/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index fca67d76..00000000 --- a/local/modules/modules/HookLinks/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Carrello', - 'Checkout' => 'Procedi all\'acquisto', - 'Log out!' => 'Esci!', - 'Login' => 'Login', - 'My Account' => 'Mio account', - 'Register' => 'Registrati', -]; diff --git a/local/modules/modules/HookLinks/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookLinks/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 88c01521..00000000 --- a/local/modules/modules/HookLinks/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Sepet', - 'Checkout' => 'Ödeme yap', - 'Log out!' => 'Çıkış Yap!', - 'Login' => 'Giriş yap', - 'My Account' => 'Hesabım', - 'Register' => 'Kaydol', -]; diff --git a/local/modules/modules/HookLinks/I18n/it_IT.php b/local/modules/modules/HookLinks/I18n/it_IT.php deleted file mode 100644 index 6120aafa..00000000 --- a/local/modules/modules/HookLinks/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Link utili', -]; diff --git a/local/modules/modules/HookLinks/I18n/tr_TR.php b/local/modules/modules/HookLinks/I18n/tr_TR.php deleted file mode 100644 index 3f99d1ee..00000000 --- a/local/modules/modules/HookLinks/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Faydalı Linkler', -]; diff --git a/local/modules/modules/HookLinks/LICENSE.txt b/local/modules/modules/HookLinks/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookLinks/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/HookLinks/composer.json b/local/modules/modules/HookLinks/composer.json deleted file mode 100644 index 23abd78e..00000000 --- a/local/modules/modules/HookLinks/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-links-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookLinks" - } -} diff --git a/local/modules/modules/HookLinks/templates/frontOffice/default/main-footer-body.html b/local/modules/modules/HookLinks/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index 08607f06..00000000 --- a/local/modules/modules/HookLinks/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,15 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/HookNavigation/Config/config.xml b/local/modules/modules/HookNavigation/Config/config.xml deleted file mode 100644 index 1da4b2b4..00000000 --- a/local/modules/modules/HookNavigation/Config/config.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - -
- - - - - - - - - - - diff --git a/local/modules/modules/HookNavigation/Config/module.xml b/local/modules/modules/HookNavigation/Config/module.xml deleted file mode 100644 index dc090ec9..00000000 --- a/local/modules/modules/HookNavigation/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookNavigation\HookNavigation - - Block Navigation - - - Bloc Menu - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookNavigation/Config/routing.xml b/local/modules/modules/HookNavigation/Config/routing.xml deleted file mode 100644 index 2182aa3c..00000000 --- a/local/modules/modules/HookNavigation/Config/routing.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - HookNavigation:HookNavigationConfig:default - - - HookNavigation:HookNavigationConfig:save - - diff --git a/local/modules/modules/HookNavigation/Controller/HookNavigationConfigController.php b/local/modules/modules/HookNavigation/Controller/HookNavigationConfigController.php deleted file mode 100644 index 04b7ca5f..00000000 --- a/local/modules/modules/HookNavigation/Controller/HookNavigationConfigController.php +++ /dev/null @@ -1,75 +0,0 @@ - - OpenStudio - */ -class HookNavigationConfigController extends BaseAdminController -{ - public function defaultAction() - { - $bodyConfig = HookNavigation::getConfigValue(HookNavigationConfigValue::FOOTER_BODY_FOLDER_ID); - $bottomConfig = HookNavigation::getConfigValue(HookNavigationConfigValue::FOOTER_BOTTOM_FOLDER_ID); - - $this->getSession()->getFlashBag()->set('bodyConfig', $bodyConfig); - $this->getSession()->getFlashBag()->set('bottomConfig', $bottomConfig); - - return $this->render('hooknavigation-configuration'); - } - - public function saveAction() - { - $baseForm = $this->createForm('hooknavigation.configuration'); - - $errorMessage = null; - - try { - $form = $this->validateForm($baseForm); - $data = $form->getData(); - - HookNavigation::setConfigValue(HookNavigationConfigValue::FOOTER_BODY_FOLDER_ID, is_bool($data['footer_body_folder_id']) ? (int) ($data['footer_body_folder_id']) : $data['footer_body_folder_id']); - HookNavigation::setConfigValue(HookNavigationConfigValue::FOOTER_BOTTOM_FOLDER_ID, is_bool($data['footer_bottom_folder_id']) ? (int) ($data['footer_bottom_folder_id']) : $data['footer_bottom_folder_id']); - } catch (FormValidationException $ex) { - // Invalid data entered - $errorMessage = $this->createStandardFormValidationErrorMessage($ex); - } catch (\Exception $ex) { - // Any other error - $errorMessage = $this->getTranslator()->trans('Sorry, an error occurred: %err', ['%err' => $ex->getMessage()], [], HookNavigation::MESSAGE_DOMAIN); - } - - if (null !== $errorMessage) { - // Mark the form as with error - $baseForm->setErrorMessage($errorMessage); - - // Send the form and the error to the parser - $this->getParserContext() - ->addForm($baseForm) - ->setGeneralError($errorMessage) - ; - } else { - $this->getParserContext() - ->set('success', true) - ; - } - - return $this->defaultAction(); - } -} diff --git a/local/modules/modules/HookNavigation/Form/HookNavigationConfigForm.php b/local/modules/modules/HookNavigation/Form/HookNavigationConfigForm.php deleted file mode 100644 index 84221749..00000000 --- a/local/modules/modules/HookNavigation/Form/HookNavigationConfigForm.php +++ /dev/null @@ -1,55 +0,0 @@ - - OpenStudio - */ -class HookNavigationConfigForm extends BaseForm -{ - public function getName() - { - return 'hooknavigation_configuration'; - } - - protected function buildForm() - { - $this->formBuilder - ->add( - 'footer_body_folder_id', - 'number', - [ - 'constraints' => [ - new NotBlank(), - ], - 'label' => $this->translator->trans('Folder in footer body', [], HookNavigation::MESSAGE_DOMAIN), - ] - ) - ->add( - 'footer_bottom_folder_id', - 'number', - [ - 'constraints' => [ - new NotBlank(), - ], - 'label' => $this->translator->trans('Folder in footer bottom', [], HookNavigation::MESSAGE_DOMAIN), - ] - ); - } -} diff --git a/local/modules/modules/HookNavigation/Hook/FrontHook.php b/local/modules/modules/HookNavigation/Hook/FrontHook.php deleted file mode 100644 index a108f3a0..00000000 --- a/local/modules/modules/HookNavigation/Hook/FrontHook.php +++ /dev/null @@ -1,51 +0,0 @@ -, Etienne PERRIERE - OpenStudio - */ -class FrontHook extends BaseHook -{ - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $bodyConfig = HookNavigation::getConfigValue(HookNavigationConfigValue::FOOTER_BODY_FOLDER_ID); - - $content = trim($this->render('main-footer-body.html', ['bodyFolderId' => $bodyConfig])); - if ('' != $content) { - $event->add(array( - 'id' => 'navigation-footer-body', - 'class' => 'links', - 'title' => $this->trans('Latest articles', array(), HookNavigation::MESSAGE_DOMAIN), - 'content' => $content, - )); - } - } - - public function onMainFooterBottom(HookRenderEvent $event) - { - $bottomConfig = HookNavigation::getConfigValue(HookNavigationConfigValue::FOOTER_BOTTOM_FOLDER_ID); - - $content = $this->render('main-footer-bottom.html', ['bottomFolderId' => $bottomConfig]); - $event->add($content); - } -} diff --git a/local/modules/modules/HookNavigation/HookNavigation.php b/local/modules/modules/HookNavigation/HookNavigation.php deleted file mode 100644 index a878b090..00000000 --- a/local/modules/modules/HookNavigation/HookNavigation.php +++ /dev/null @@ -1,24 +0,0 @@ - 'Kategorien', - 'Folder in footer body' => 'Ordner in Fußzeile', - 'Folder in footer bottom' => 'Ordner in Fußzeile', - 'Home' => 'Startseite', - 'HookNavigation configuration' => 'HookNavigation Konfiguration', - 'No articles currently' => 'Zur Zeit keine Artikel', - 'Toggle navigation' => 'Navigation umschalten', -]; diff --git a/local/modules/modules/HookNavigation/I18n/backOffice/default/en_US.php b/local/modules/modules/HookNavigation/I18n/backOffice/default/en_US.php deleted file mode 100644 index 88e66b06..00000000 --- a/local/modules/modules/HookNavigation/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Configuration correctly saved', - 'Configure hooknavigation' => 'Configure hooknavigation', - 'Home' => 'Home', - 'HookNavigation configuration' => 'HookNavigation configuration', - 'Modules' => 'Modules', - 'Select a folder' => 'Select a folder', -); diff --git a/local/modules/modules/HookNavigation/I18n/backOffice/default/fr_FR.php b/local/modules/modules/HookNavigation/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 04211f37..00000000 --- a/local/modules/modules/HookNavigation/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Configuration sauvegardée correctement', - 'Configure hooknavigation' => 'Configurer Bloc Menu', - 'Home' => 'Accueil', - 'HookNavigation configuration' => 'Configuration de Block Menu', - 'Modules' => 'Modules', - 'Select a folder' => 'Sélectionner un dossier', -]; diff --git a/local/modules/modules/HookNavigation/I18n/backOffice/default/it_IT.php b/local/modules/modules/HookNavigation/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 7b04d958..00000000 --- a/local/modules/modules/HookNavigation/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Home', - 'Modules' => 'Moduli', - 'Select a folder' => 'Seleziona una cartella', -]; diff --git a/local/modules/modules/HookNavigation/I18n/backOffice/default/tr_TR.php b/local/modules/modules/HookNavigation/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index 6816d794..00000000 --- a/local/modules/modules/HookNavigation/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Katogoriler', - 'Folder in footer body' => 'Altbilgi vücut klasöründe', - 'Folder in footer bottom' => 'Altbilgi alt klasöründe', - 'Home' => 'Ana sayfa', - 'HookNavigation configuration' => 'HookNavigation yapılandırma', - 'No articles currently' => 'Hiç makale yok', - 'Toggle navigation' => 'Navigasyonu değiştir', -]; diff --git a/local/modules/modules/HookNavigation/I18n/en_US.php b/local/modules/modules/HookNavigation/I18n/en_US.php deleted file mode 100644 index cfcc1fe2..00000000 --- a/local/modules/modules/HookNavigation/I18n/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Folder in footer body', - 'Folder in footer bottom' => 'Folder in footer bottom', - 'Latest articles' => 'Latest articles', - 'Sorry, an error occurred: %err' => 'Sorry, an error occurred: %err', -); diff --git a/local/modules/modules/HookNavigation/I18n/fr_FR.php b/local/modules/modules/HookNavigation/I18n/fr_FR.php deleted file mode 100644 index 28b686ad..00000000 --- a/local/modules/modules/HookNavigation/I18n/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Dossier du pied de page', - 'Folder in footer bottom' => 'Dossier sous le pied de page', - 'Latest articles' => 'Derniers articles', - 'Sorry, an error occurred: %err' => 'Désolé, une erreur est survenue: %err', -]; diff --git a/local/modules/modules/HookNavigation/I18n/frontOffice/default/de_DE.php b/local/modules/modules/HookNavigation/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index c32bbb2a..00000000 --- a/local/modules/modules/HookNavigation/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Neueste Artikel', - 'No articles currently' => 'Zur Zeit keine Artikel', -]; diff --git a/local/modules/modules/HookNavigation/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookNavigation/I18n/frontOffice/default/en_US.php deleted file mode 100644 index d63a3877..00000000 --- a/local/modules/modules/HookNavigation/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Categories', - 'Home' => 'Home', - 'No articles currently' => 'No articles currently', - 'Toggle navigation' => 'Toggle navigation', -); diff --git a/local/modules/modules/HookNavigation/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookNavigation/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 6d26f6f9..00000000 --- a/local/modules/modules/HookNavigation/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Rubriques', - 'Home' => 'Accueil', - 'No articles currently' => 'Aucun article pour le moment', - 'Toggle navigation' => 'Basculer la navigation', -]; diff --git a/local/modules/modules/HookNavigation/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookNavigation/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index c7165516..00000000 --- a/local/modules/modules/HookNavigation/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Categorie', - 'Home' => 'Home', - 'No articles currently' => 'Attualmente non sono presenti articoli', - 'Toggle navigation' => 'Toggle navigation', -]; diff --git a/local/modules/modules/HookNavigation/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookNavigation/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index a76a2b01..00000000 --- a/local/modules/modules/HookNavigation/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Son Makaleler', - 'No articles currently' => 'Hiç makale yok', -]; diff --git a/local/modules/modules/HookNavigation/I18n/it_IT.php b/local/modules/modules/HookNavigation/I18n/it_IT.php deleted file mode 100644 index 8ae2a7f1..00000000 --- a/local/modules/modules/HookNavigation/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Ultimi articoli', -]; diff --git a/local/modules/modules/HookNavigation/LICENSE.txt b/local/modules/modules/HookNavigation/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookNavigation/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/HookNavigation/Model/Config/Base/HookNavigationConfigValue.php b/local/modules/modules/HookNavigation/Model/Config/Base/HookNavigationConfigValue.php deleted file mode 100644 index 925f6c5e..00000000 --- a/local/modules/modules/HookNavigation/Model/Config/Base/HookNavigationConfigValue.php +++ /dev/null @@ -1,23 +0,0 @@ - - - -
-
- {intl l="Configure hooknavigation" d="hooknavigation.bo.default"} -
- -
-
- {if $success} -
- {intl l="Configuration correctly saved" d="hooknavigation.bo.default"} -
- {/if} - - {form name="hooknavigation.configuration"} - - {include "includes/inner-form-toolbar.html" hide_flags = 1 close_url={url path='/admin/modules'}} -
- - {form_field form=$form field="success_url"} - - {/form_field} - - {form_hidden_fields form=$form} - - {flash type="bodyConfig"} - {assign var='bodyConfig' value=$MESSAGE} - {/flash} - {flash type="bottomConfig"} - {assign var='bottomConfig' value=$MESSAGE} - {/flash} - - {form_field form=$form field="footer_body_folder_id"} -
- - - - - {if ! empty($label_attr.help)} - {$label_attr.help} - {/if} -
- {/form_field} - - {form_field form=$form field="footer_bottom_folder_id"} -
- - - - - {if ! empty($label_attr.help)} - {$label_attr.help} - {/if} -
- {/form_field} - - {include "includes/inner-form-toolbar.html" hide_flags = 1 close_url={url path='/admin/modules'} page_bottom = 1} - - {/form} -
-
-
- -{/block} - -{block name="javascript-initialization"} -{/block} \ No newline at end of file diff --git a/local/modules/modules/HookNavigation/templates/frontOffice/default/main-footer-body.html b/local/modules/modules/HookNavigation/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index 4834c61d..00000000 --- a/local/modules/modules/HookNavigation/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,17 +0,0 @@ -{ifloop rel="blog.articles"} - -{/ifloop} -{elseloop rel="blog.articles"} -
    -
  • {intl l="No articles currently" d="hooknavigation.fo.default"}
  • -
-{/elseloop} \ No newline at end of file diff --git a/local/modules/modules/HookNavigation/templates/frontOffice/default/main-footer-bottom.html b/local/modules/modules/HookNavigation/templates/frontOffice/default/main-footer-bottom.html deleted file mode 100644 index 80b298ef..00000000 --- a/local/modules/modules/HookNavigation/templates/frontOffice/default/main-footer-bottom.html +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/HookNavigation/templates/frontOffice/default/main-navbar-primary.html b/local/modules/modules/HookNavigation/templates/frontOffice/default/main-navbar-primary.html deleted file mode 100644 index 62514618..00000000 --- a/local/modules/modules/HookNavigation/templates/frontOffice/default/main-navbar-primary.html +++ /dev/null @@ -1,56 +0,0 @@ - - -{* classic navbar without dropdown - -*} \ No newline at end of file diff --git a/local/modules/modules/HookNewsletter/Config/config.xml b/local/modules/modules/HookNewsletter/Config/config.xml deleted file mode 100644 index 9d66a2fe..00000000 --- a/local/modules/modules/HookNewsletter/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/modules/modules/HookNewsletter/Config/module.xml b/local/modules/modules/HookNewsletter/Config/module.xml deleted file mode 100644 index 19c5c441..00000000 --- a/local/modules/modules/HookNewsletter/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookNewsletter\HookNewsletter - - Block Newsletter - - - Bloc Newsletter - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookNewsletter/Hook/FrontHook.php b/local/modules/modules/HookNewsletter/Hook/FrontHook.php deleted file mode 100644 index 0d1b9688..00000000 --- a/local/modules/modules/HookNewsletter/Hook/FrontHook.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -class FrontHook extends BaseHook { - - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $content = trim($this->render("main-footer-body.html")); - if ("" != $content){ - $event->add(array( - "id" => "newsletter-footer-body", - "class" => "newsletter", - "title" => $this->trans("Newsletter", array(), "hooknewsletter"), - "content" => $content - )); - } - } -} \ No newline at end of file diff --git a/local/modules/modules/HookNewsletter/HookNewsletter.php b/local/modules/modules/HookNewsletter/HookNewsletter.php deleted file mode 100644 index 887b4a07..00000000 --- a/local/modules/modules/HookNewsletter/HookNewsletter.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Newsletter', -]; diff --git a/local/modules/modules/HookNewsletter/I18n/en_US.php b/local/modules/modules/HookNewsletter/I18n/en_US.php deleted file mode 100644 index eeea5e3d..00000000 --- a/local/modules/modules/HookNewsletter/I18n/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Newsletter', -); diff --git a/local/modules/modules/HookNewsletter/I18n/fr_FR.php b/local/modules/modules/HookNewsletter/I18n/fr_FR.php deleted file mode 100644 index 67c6b531..00000000 --- a/local/modules/modules/HookNewsletter/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Lettre d\'information', -]; diff --git a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/de_DE.php b/local/modules/modules/HookNewsletter/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 9de40b6a..00000000 --- a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,8 +0,0 @@ - 'E-mail Adresse', - 'Sign up to receive our latest news.' => 'Abonnieren Sie unseren Newsletter.', - 'Subscribe' => 'Abonnieren', - 'Your email address' => 'Ihre E-Mail-Adresse', -]; diff --git a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookNewsletter/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 68f5056a..00000000 --- a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Email address', - 'Sign up to receive our latest news.' => 'Sign up to receive our latest news.', - 'Subscribe' => 'Subscribe', - 'Your email address' => 'Your email address', -); diff --git a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookNewsletter/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 17819d1f..00000000 --- a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Adresse e-mail', - 'Sign up to receive our latest news.' => 'Enregistrez vous pour recevoir nos dernières nouvelles.', - 'Subscribe' => 'Inscription', - 'Your email address' => 'Votre adresse email', -]; diff --git a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookNewsletter/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 563e28bd..00000000 --- a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Indirizzo email', - 'Subscribe' => 'Abbonati', -]; diff --git a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookNewsletter/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index dcc2918f..00000000 --- a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Eposta adresi', - 'Sign up to receive our latest news.' => 'En yeni haberleri almak için kaydolun.', - 'Subscribe' => 'Abone Ol', - 'Your email address' => 'E-posta adresiniz', -]; diff --git a/local/modules/modules/HookNewsletter/I18n/it_IT.php b/local/modules/modules/HookNewsletter/I18n/it_IT.php deleted file mode 100644 index 8e9757db..00000000 --- a/local/modules/modules/HookNewsletter/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Newsletter', -]; diff --git a/local/modules/modules/HookNewsletter/I18n/tr_TR.php b/local/modules/modules/HookNewsletter/I18n/tr_TR.php deleted file mode 100644 index 6d9159e5..00000000 --- a/local/modules/modules/HookNewsletter/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'E-Bülten', -]; diff --git a/local/modules/modules/HookNewsletter/LICENSE.txt b/local/modules/modules/HookNewsletter/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookNewsletter/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/HookNewsletter/composer.json b/local/modules/modules/HookNewsletter/composer.json deleted file mode 100644 index 230b69d6..00000000 --- a/local/modules/modules/HookNewsletter/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-newsletter-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookNewsletter" - } -} diff --git a/local/modules/modules/HookNewsletter/templates/frontOffice/default/main-footer-body.html b/local/modules/modules/HookNewsletter/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index f60e082e..00000000 --- a/local/modules/modules/HookNewsletter/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,13 +0,0 @@ -

{intl l="Sign up to receive our latest news." d="hooknewsletter.fo.default"}

-{form name="thelia.front.newsletter"} -
-{form_hidden_fields} -{form_field field="email"} -
- - -
-{/form_field} - -
-{/form} \ No newline at end of file diff --git a/local/modules/modules/HookProductsNew/Config/config.xml b/local/modules/modules/HookProductsNew/Config/config.xml deleted file mode 100644 index 42df6539..00000000 --- a/local/modules/modules/HookProductsNew/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/modules/modules/HookProductsNew/Config/module.xml b/local/modules/modules/HookProductsNew/Config/module.xml deleted file mode 100644 index 0926cf41..00000000 --- a/local/modules/modules/HookProductsNew/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookProductsNew\HookProductsNew - - Block New Products - - - Bloc Nouveaux Produits - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookProductsNew/HookProductsNew.php b/local/modules/modules/HookProductsNew/HookProductsNew.php deleted file mode 100644 index 16a92d08..00000000 --- a/local/modules/modules/HookProductsNew/HookProductsNew.php +++ /dev/null @@ -1,20 +0,0 @@ - '+ Alle anzeigen', - 'Latest' => 'Neuigkeiten', -]; diff --git a/local/modules/modules/HookProductsNew/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookProductsNew/I18n/frontOffice/default/en_US.php deleted file mode 100644 index bd7cd7c7..00000000 --- a/local/modules/modules/HookProductsNew/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ View All', - 'Latest' => 'Latest', -); diff --git a/local/modules/modules/HookProductsNew/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookProductsNew/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 297a7334..00000000 --- a/local/modules/modules/HookProductsNew/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Tout voir', - 'Latest' => 'Nouveautés', -]; diff --git a/local/modules/modules/HookProductsNew/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookProductsNew/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index f8284b5d..00000000 --- a/local/modules/modules/HookProductsNew/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Mostra tutto', - 'Latest' => 'Ultimi', -]; diff --git a/local/modules/modules/HookProductsNew/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookProductsNew/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 035d01d9..00000000 --- a/local/modules/modules/HookProductsNew/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Hepsini gör', - 'Latest' => 'En son', -]; diff --git a/local/modules/modules/HookProductsNew/LICENSE.txt b/local/modules/modules/HookProductsNew/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookProductsNew/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/HookProductsNew/composer.json b/local/modules/modules/HookProductsNew/composer.json deleted file mode 100644 index 37573922..00000000 --- a/local/modules/modules/HookProductsNew/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-products-new-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookProductsNew" - } -} diff --git a/local/modules/modules/HookProductsNew/templates/frontOffice/default/home-body.html b/local/modules/modules/HookProductsNew/templates/frontOffice/default/home-body.html deleted file mode 100644 index 11f6004a..00000000 --- a/local/modules/modules/HookProductsNew/templates/frontOffice/default/home-body.html +++ /dev/null @@ -1,59 +0,0 @@ -{ifloop rel="product_new"} -
-
-

{intl l="Latest" d="hookproductsnew.fo.default"} {intl l="+ View All" d="hookproductsnew.fo.default"}

-
-
- -
-
-{/ifloop} diff --git a/local/modules/modules/HookProductsOffer/Config/config.xml b/local/modules/modules/HookProductsOffer/Config/config.xml deleted file mode 100644 index 00e4ebb5..00000000 --- a/local/modules/modules/HookProductsOffer/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/modules/modules/HookProductsOffer/Config/module.xml b/local/modules/modules/HookProductsOffer/Config/module.xml deleted file mode 100644 index 4fe1d504..00000000 --- a/local/modules/modules/HookProductsOffer/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookProductsOffer\HookProductsOffer - - Block Promo Products - - - Bloc Produits en promo - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookProductsOffer/HookProductsOffer.php b/local/modules/modules/HookProductsOffer/HookProductsOffer.php deleted file mode 100644 index 2b04e7f8..00000000 --- a/local/modules/modules/HookProductsOffer/HookProductsOffer.php +++ /dev/null @@ -1,20 +0,0 @@ - '+ Alle sehen', - 'Offers' => 'Angebote', -]; diff --git a/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 9b4a1c61..00000000 --- a/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ View All', - 'Offers' => 'Offers', -); diff --git a/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 3dbf4a11..00000000 --- a/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Tout voir', - 'Offers' => 'Promotions', -]; diff --git a/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index ba350c21..00000000 --- a/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Mostra tutto', - 'Offers' => 'Offerte', -]; diff --git a/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index bc9c3e6b..00000000 --- a/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Hepsini gör', - 'Offers' => 'Teklifler', -]; diff --git a/local/modules/modules/HookProductsOffer/LICENSE.txt b/local/modules/modules/HookProductsOffer/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookProductsOffer/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/HookProductsOffer/composer.json b/local/modules/modules/HookProductsOffer/composer.json deleted file mode 100644 index 8329abdb..00000000 --- a/local/modules/modules/HookProductsOffer/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-products-offer-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookProductsOffer" - } -} diff --git a/local/modules/modules/HookProductsOffer/templates/frontOffice/default/home-body.html b/local/modules/modules/HookProductsOffer/templates/frontOffice/default/home-body.html deleted file mode 100644 index 462e775a..00000000 --- a/local/modules/modules/HookProductsOffer/templates/frontOffice/default/home-body.html +++ /dev/null @@ -1,39 +0,0 @@ -{ifloop rel="current-sales"} -
- {loop name="current-sales" type="sale" limit="2"} -
- - -
-
    - {loop name="products_in_sale" type="product" limit="4" sale=$ID} - {include file="includes/single-product.html" colClass="col-md-3 col-sm-4" product_id=$ID hasBtn=false hasDescription=false width="218" height="146"} - {/loop} -
-
-
- {/loop} -
-{/ifloop} -{* Display "regular" promos, if any, only if we don't have active sales *} - -{elseloop rel="current-sales"} -{ifloop rel="product_promo"} -
-
-

{intl l="Offers" d="hookproductsoffer.fo.default"} {intl l="+ View All" d="hookproductsoffer.fo.default"}

-
- -
-
    - {loop name="product_promo" type="product" limit="4" promo="yes"} - {include file="includes/single-product.html" colClass="col-md-3 col-sm-4" product_id=$ID hasBtn=false hasDescription=false width="218" height="146"} - {/loop} -
-
-
-{/ifloop} -{/elseloop} diff --git a/local/modules/modules/HookSearch/Config/config.xml b/local/modules/modules/HookSearch/Config/config.xml deleted file mode 100644 index b5d60c60..00000000 --- a/local/modules/modules/HookSearch/Config/config.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/local/modules/modules/HookSearch/Config/module.xml b/local/modules/modules/HookSearch/Config/module.xml deleted file mode 100644 index 3ffe27ce..00000000 --- a/local/modules/modules/HookSearch/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookSearch\HookSearch - - Block Search - - - Bloc Recherche - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookSearch/HookSearch.php b/local/modules/modules/HookSearch/HookSearch.php deleted file mode 100644 index bbe6d752..00000000 --- a/local/modules/modules/HookSearch/HookSearch.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Mindestens 2 Zeichen.', - 'Search' => 'Suchen', - 'Search a product' => 'Ein Produkt suchen', - 'Search...' => 'Suchen ...', -]; diff --git a/local/modules/modules/HookSearch/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookSearch/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 5d94b36c..00000000 --- a/local/modules/modules/HookSearch/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Minimum 2 characters.', - 'Search' => 'Search', - 'Search a product' => 'Search a product', - 'Search...' => 'Search...', -); diff --git a/local/modules/modules/HookSearch/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookSearch/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index c115fb42..00000000 --- a/local/modules/modules/HookSearch/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - '2 caractères minimum.', - 'Search' => 'Recherche', - 'Search a product' => 'Rechercher un produit', - 'Search...' => 'Rechercher...', -]; diff --git a/local/modules/modules/HookSearch/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookSearch/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 65ad8706..00000000 --- a/local/modules/modules/HookSearch/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Minimo 2 caratteri.', - 'Search' => 'Ricerca', - 'Search a product' => 'Ricerca un prodotto', - 'Search...' => 'Ricerca...', -]; diff --git a/local/modules/modules/HookSearch/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookSearch/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index e9d75686..00000000 --- a/local/modules/modules/HookSearch/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'En az 2 karakter.', - 'Search' => 'Arama', - 'Search a product' => 'Ürün ara', - 'Search...' => 'Arama...', -]; diff --git a/local/modules/modules/HookSearch/LICENSE.txt b/local/modules/modules/HookSearch/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookSearch/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/HookSearch/composer.json b/local/modules/modules/HookSearch/composer.json deleted file mode 100644 index 9dfdcaf1..00000000 --- a/local/modules/modules/HookSearch/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-search-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookSearch" - } -} diff --git a/local/modules/modules/HookSearch/templates/frontOffice/default/assets/css/styles.css b/local/modules/modules/HookSearch/templates/frontOffice/default/assets/css/styles.css deleted file mode 100644 index 74b18399..00000000 --- a/local/modules/modules/HookSearch/templates/frontOffice/default/assets/css/styles.css +++ /dev/null @@ -1,11 +0,0 @@ -.header-container .search-container label, -.header-container .search-container .btn-search>span { - position:absolute; - width:1px; - height:1px; - margin:-1px; - padding:0; - overflow:hidden; - clip:rect(0 0 0 0); - border:0 -} \ No newline at end of file diff --git a/local/modules/modules/HookSearch/templates/frontOffice/default/main-navbar-primary.html b/local/modules/modules/HookSearch/templates/frontOffice/default/main-navbar-primary.html deleted file mode 100644 index 31c6afd2..00000000 --- a/local/modules/modules/HookSearch/templates/frontOffice/default/main-navbar-primary.html +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/HookSearch/templates/frontOffice/default/main-navbar-secondary.html b/local/modules/modules/HookSearch/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index 40ba03a6..00000000 --- a/local/modules/modules/HookSearch/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/HookSocial/Config/config.xml b/local/modules/modules/HookSocial/Config/config.xml deleted file mode 100644 index f151f07c..00000000 --- a/local/modules/modules/HookSocial/Config/config.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -
- - - - - - - - - - - - - diff --git a/local/modules/modules/HookSocial/Config/module.xml b/local/modules/modules/HookSocial/Config/module.xml deleted file mode 100644 index e2a69379..00000000 --- a/local/modules/modules/HookSocial/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookSocial\HookSocial - - Block Social - - - Bloc Social - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookSocial/Config/routing.xml b/local/modules/modules/HookSocial/Config/routing.xml deleted file mode 100644 index 769a2c4a..00000000 --- a/local/modules/modules/HookSocial/Config/routing.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - HookSocial\Controller\Configuration::saveAction - - - diff --git a/local/modules/modules/HookSocial/Controller/Configuration.php b/local/modules/modules/HookSocial/Controller/Configuration.php deleted file mode 100644 index 9fef4bfa..00000000 --- a/local/modules/modules/HookSocial/Controller/Configuration.php +++ /dev/null @@ -1,61 +0,0 @@ - - */ -class Configuration extends BaseAdminController -{ - public function saveAction() - { - - if (null !== $response = $this->checkAuth(array(AdminResources::MODULE), array('hooksocial'), AccessManager::UPDATE)) { - return $response; - } - - $form = new \HookSocial\Form\Configuration($this->getRequest()); - $resp = array( - "error" => 0, - "message" => "" - ); - $response=null; - - try { - $vform = $this->validateForm($form); - $data = $vform->getData(); - - foreach ($data as $name => $value) { - if (! $form->isTemplateDefinedHiddenFieldName($name)) { - ConfigQuery::write("hooksocial_" . $name, $value, false, true); - } - - Tlog::getInstance()->debug(sprintf("%s => %s", $name, $value)); - } - } catch (\Exception $e) { - $resp["error"] = 1; - $resp["message"] = $e->getMessage(); - } - - return JsonResponse::create($resp); - } -} \ No newline at end of file diff --git a/local/modules/modules/HookSocial/Form/Configuration.php b/local/modules/modules/HookSocial/Form/Configuration.php deleted file mode 100644 index 82d7418b..00000000 --- a/local/modules/modules/HookSocial/Form/Configuration.php +++ /dev/null @@ -1,86 +0,0 @@ - - */ -class Configuration extends BaseForm { - - protected function buildForm() - { - $form = $this->formBuilder; - - $definitions = array( - array( - "id" => "twitter", - "label" => Translator::getInstance()->trans("Twitter username", array(), 'hooksocial') - ), - array( - "id" => "facebook", - "label" => Translator::getInstance()->trans("Facebook username", array(), 'hooksocial') - ), - array( - "id" => "google", - "label" => Translator::getInstance()->trans("Google + username", array(), 'hooksocial') - ), - array( - "id" => "instagram", - "label" => Translator::getInstance()->trans("Instagram username", array(), 'hooksocial') - ), - array( - "id" => "pinterest", - "label" => Translator::getInstance()->trans("Pinterest username", array(), 'hooksocial') - ), - array( - "id" => "youtube", - "label" => Translator::getInstance()->trans("Youtube URL", array(), 'hooksocial') - ), - array( - "id" => "rss", - "label" => Translator::getInstance()->trans("RSS URL", array(), 'hooksocial') - ) - ); - - foreach ($definitions as $field){ - $value = ConfigQuery::read("hooksocial_" . $field["id"], ""); - $form->add( - $field["id"], - "text", - array( - 'data' => $value, - 'label' => $field["label"], - 'label_attr' => array( - 'for' => $field["id"] - ), - ) - ); - } - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "hooksocial"; - } - - -} \ No newline at end of file diff --git a/local/modules/modules/HookSocial/Hook/FrontHook.php b/local/modules/modules/HookSocial/Hook/FrontHook.php deleted file mode 100644 index 770c2178..00000000 --- a/local/modules/modules/HookSocial/Hook/FrontHook.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -class FrontHook extends BaseHook { - - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $content = trim($this->render("main-footer-body.html")); - if ("" != $content){ - $event->add(array( - "id" => "social-footer-body", - "class" => "social", - "title" => $this->trans("Follow us", array(), "hooksocial"), - "content" => $content - )); - } - } -} \ No newline at end of file diff --git a/local/modules/modules/HookSocial/HookSocial.php b/local/modules/modules/HookSocial/HookSocial.php deleted file mode 100644 index 030e814d..00000000 --- a/local/modules/modules/HookSocial/HookSocial.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Ein Fehler ist aufgetreten', - 'Save' => 'Speichern', -]; diff --git a/local/modules/modules/HookSocial/I18n/backOffice/default/en_US.php b/local/modules/modules/HookSocial/I18n/backOffice/default/en_US.php deleted file mode 100644 index 4ce9a282..00000000 --- a/local/modules/modules/HookSocial/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,7 +0,0 @@ - 'An error occured', - 'Edit your social accounts.' => 'Edit your social accounts.', - 'Save' => 'Save', -); diff --git a/local/modules/modules/HookSocial/I18n/backOffice/default/fr_FR.php b/local/modules/modules/HookSocial/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index e08beb6c..00000000 --- a/local/modules/modules/HookSocial/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Une erreur est survenue', - 'Edit your social accounts.' => 'Modifier vos paramètres de réseaux sociaux.', - 'Save' => ' Enregistrer', -]; diff --git a/local/modules/modules/HookSocial/I18n/backOffice/default/it_IT.php b/local/modules/modules/HookSocial/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 3099d7ba..00000000 --- a/local/modules/modules/HookSocial/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Modifica i tuoi account social.', - 'Save' => 'Salvare', -]; diff --git a/local/modules/modules/HookSocial/I18n/backOffice/default/tr_TR.php b/local/modules/modules/HookSocial/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index f4d5e02c..00000000 --- a/local/modules/modules/HookSocial/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Bir hata meydana geldi', - 'Edit your social accounts.' => 'Sosyal hesaplarınızı düzenleyin.', - 'Save' => 'kaydet', -]; diff --git a/local/modules/modules/HookSocial/I18n/de_DE.php b/local/modules/modules/HookSocial/I18n/de_DE.php deleted file mode 100644 index e6c7fb51..00000000 --- a/local/modules/modules/HookSocial/I18n/de_DE.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Facebook Benutzername', - 'Follow us' => 'Folgen Sie uns', - 'Google + username' => 'Google+ Benutzername', - 'Instagram username' => 'Instagram Benutzername', - 'Pinterest username' => 'Pinterest Benutzername', - 'RSS URL' => 'RSS-URL', - 'Twitter username' => 'Twitter Benutzername', - 'Youtube URL' => 'YouTube-URL', -]; diff --git a/local/modules/modules/HookSocial/I18n/en_US.php b/local/modules/modules/HookSocial/I18n/en_US.php deleted file mode 100644 index dfb8eff8..00000000 --- a/local/modules/modules/HookSocial/I18n/en_US.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Facebook username', - 'Follow us' => 'Follow us', - 'Google + username' => 'Google + username', - 'Instagram username' => 'Instagram username', - 'Pinterest username' => 'Pinterest username', - 'RSS URL' => 'RSS URL', - 'Twitter username' => 'Twitter username', - 'Youtube URL' => 'Youtube URL', -); diff --git a/local/modules/modules/HookSocial/I18n/fr_FR.php b/local/modules/modules/HookSocial/I18n/fr_FR.php deleted file mode 100644 index 6f08ba6f..00000000 --- a/local/modules/modules/HookSocial/I18n/fr_FR.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Nom d\'utilisateur Facebook', - 'Follow us' => 'Suivez-nous', - 'Google + username' => 'Nom d\'utilisateur Google +', - 'Instagram username' => 'Nom d\'utilisateur Instagram', - 'Pinterest username' => 'Nom d\'utilisateur Pinterest', - 'RSS URL' => 'URL du flux RSS', - 'Twitter username' => 'Nom d\'utilisateur Twitter', - 'Youtube URL' => 'URL Youtube', -]; diff --git a/local/modules/modules/HookSocial/I18n/frontOffice/default/de_DE.php b/local/modules/modules/HookSocial/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 938a9f4a..00000000 --- a/local/modules/modules/HookSocial/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS-Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'YouTube', -]; diff --git a/local/modules/modules/HookSocial/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookSocial/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 534a4d03..00000000 --- a/local/modules/modules/HookSocial/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -); diff --git a/local/modules/modules/HookSocial/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookSocial/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 7b64f075..00000000 --- a/local/modules/modules/HookSocial/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'Flux RSS', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/modules/modules/HookSocial/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookSocial/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 15298b70..00000000 --- a/local/modules/modules/HookSocial/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google +', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/modules/modules/HookSocial/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookSocial/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index b951272b..00000000 --- a/local/modules/modules/HookSocial/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google +', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Beslemesi', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/modules/modules/HookSocial/I18n/it_IT.php b/local/modules/modules/HookSocial/I18n/it_IT.php deleted file mode 100644 index e1fd072a..00000000 --- a/local/modules/modules/HookSocial/I18n/it_IT.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Nome utente Facebook', - 'Follow us' => 'Seguici', - 'Google + username' => 'Nome utente Google +', - 'Instagram username' => 'Nome utente Instagram', - 'Pinterest username' => 'Nome utente Pinterest', - 'RSS URL' => 'RSS URL', - 'Twitter username' => 'Nome utente Twitter', - 'Youtube URL' => 'Youtube URL', -]; diff --git a/local/modules/modules/HookSocial/I18n/tr_TR.php b/local/modules/modules/HookSocial/I18n/tr_TR.php deleted file mode 100644 index c5ea54f4..00000000 --- a/local/modules/modules/HookSocial/I18n/tr_TR.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Facebook kullanıcı adı', - 'Follow us' => 'Bizi takip edin', - 'Google + username' => 'Google + kullanıcı adı', - 'Instagram username' => 'Google + kullanıcı adı', - 'Pinterest username' => 'Pinterest kullanıcı adı', - 'RSS URL' => 'RSS URL', - 'Twitter username' => 'Twitter kullanıcı adı', - 'Youtube URL' => 'YouTube URL', -]; diff --git a/local/modules/modules/HookSocial/LICENSE.txt b/local/modules/modules/HookSocial/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookSocial/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/HookSocial/composer.json b/local/modules/modules/HookSocial/composer.json deleted file mode 100644 index 4a18288a..00000000 --- a/local/modules/modules/HookSocial/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-social-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookSocial" - } -} diff --git a/local/modules/modules/HookSocial/templates/backOffice/default/assets/js/module-configuration.js b/local/modules/modules/HookSocial/templates/backOffice/default/assets/js/module-configuration.js deleted file mode 100644 index 5bf3dfcc..00000000 --- a/local/modules/modules/HookSocial/templates/backOffice/default/assets/js/module-configuration.js +++ /dev/null @@ -1,28 +0,0 @@ -$(document).ready(function() { - $("#hooksocial-form").on("submit", function(e, data){ - e.preventDefault(); - var form = $(this); - - $('body').append(''); - - $.ajax({ - url: form.attr('action'), - type: form.attr('method'), - data: form.serialize() - }).done(function(){ - $("#loading-event").remove(); - }) - .success(function(data) { - if (data.error != 0) { - $("#loading-event").remove(); - $('#hooksocial-failed-body').html(data.message); - $("#hooksocial-failed").modal("show"); - } - }) - .fail(function(jqXHR, textStatus, errorThrown){ - $("#loading-event").remove(); - $('#hooksocial-failed-body').html(jqXHR.responseJSON.message); - $("#hooksocial-failed").modal("show"); - }); - }); -}); \ No newline at end of file diff --git a/local/modules/modules/HookSocial/templates/backOffice/default/module_configuration.html b/local/modules/modules/HookSocial/templates/backOffice/default/module_configuration.html deleted file mode 100644 index 61a48c13..00000000 --- a/local/modules/modules/HookSocial/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -
-
- -
- {intl d='hooksocial.bo.default' l='Edit your social accounts.'} -
- -
-
- - {form name="hooksocial.configuration.form"} - - - {form_hidden_fields} - - {form_field field='twitter'} -
- - -
- {/form_field} - - {form_field field='facebook'} -
- - -
- {/form_field} - - {form_field field='google'} -
- - -
- {/form_field} - - {form_field field='instagram'} -
- - -
- {/form_field} - - {form_field field='pinterest'} -
- - -
- {/form_field} - - {form_field field='youtube'} -
- - -
- {/form_field} - - {form_field field='rss'} -
- - -
- {/form_field} - - - - {/form} - -
- -
- -
-
- - - - diff --git a/local/modules/modules/HookSocial/templates/frontOffice/default/assets/css/styles.css b/local/modules/modules/HookSocial/templates/frontOffice/default/assets/css/styles.css deleted file mode 100644 index e69de29b..00000000 diff --git a/local/modules/modules/HookSocial/templates/frontOffice/default/main-footer-body.html b/local/modules/modules/HookSocial/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index 095d7832..00000000 --- a/local/modules/modules/HookSocial/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,86 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/TheliaMigrateCountry/Config/config.xml b/local/modules/modules/TheliaMigrateCountry/Config/config.xml deleted file mode 100644 index 9a63718e..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Config/config.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - -
- - - - - - - - - - - - - - - - - - - diff --git a/local/modules/modules/TheliaMigrateCountry/Config/module.xml b/local/modules/modules/TheliaMigrateCountry/Config/module.xml deleted file mode 100644 index eba7cb69..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Config/module.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - TheliaMigrateCountry\TheliaMigrateCountry - - Countries/states migration tool - - - Utilitaire de migration des pays/états - - - en_US - fr_FR - - 2.3.4 - - - Julien Chanséaume - julien@thelia.net - - - classic - 2.3.0 - alpha - diff --git a/local/modules/modules/TheliaMigrateCountry/Config/routing.xml b/local/modules/modules/TheliaMigrateCountry/Config/routing.xml deleted file mode 100644 index 111b7cb7..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Config/routing.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - TheliaMigrateCountry\Controller\MigrateController::migrateSystemAction - - - - TheliaMigrateCountry\Controller\MigrateController::doMigrateSystemAction - - - diff --git a/local/modules/modules/TheliaMigrateCountry/Controller/MigrateController.php b/local/modules/modules/TheliaMigrateCountry/Controller/MigrateController.php deleted file mode 100644 index 9b582845..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Controller/MigrateController.php +++ /dev/null @@ -1,175 +0,0 @@ - - */ -class MigrateController extends BaseAdminController -{ - protected $useFallbackTemplate = true; - - public function migrateSystemAction() - { - $response = $this->checkAuth(AdminResources::COUNTRY, array(), AccessManager::UPDATE); - if (null !== $response) { - return $response; - } - - // load country not migrated - $dataForm = []; - - $migratedCountries = json_decode(ConfigQuery::read('thelia_country_state_migration', '[]'), true); - - $countries = CountryQuery::create() - ->filterByHasStates(1) - ; - - /** @var Country $country */ - foreach ($countries as $country) { - $oldCountries = CountryQuery::create() - ->filterByHasStates(0) - ->filterByIsocode($country->getIsoCode()) - ->find() - ; - /** @var Country $oldCountry */ - foreach ($oldCountries as $oldCountry) { - if (!isset($migratedCountries[$oldCountry->getId()])) { - $dataForm[] = [ - 'migrate' => false, - 'country' => $oldCountry->getId(), - 'new_country' => $country->getId(), - 'new_state' => null - ]; - } - } - } - - // prepare form - $form = $this->createForm('thelia.admin.country.state.migration', 'form', ['migrations' => $dataForm]); - $this->getParserContext()->addForm($form); - - return $this->render( - 'countries-migrate', - [ - 'countriesMigrated' => $migratedCountries, - 'showForm' => count($dataForm) != 0 - ] - ); - } - - public function doMigrateSystemAction() - { - $response = $this->checkAuth(AdminResources::COUNTRY, array(), AccessManager::UPDATE); - if (null !== $response) { - return $response; - } - - $changeForm = $this->createForm('thelia.admin.country.state.migration', 'form'); - - try { - // Check the form against constraints violations - $form = $this->validateForm($changeForm, "POST"); - - // Get the form field values - $data = $form->getData(); - - foreach ($data['migrations'] as $migration) { - - if (!$migration['migrate']) { - continue; - } - - $changeEvent = new MigrateCountryEvent( - $migration['country'], - $migration['new_country'], - $migration['new_state'] - ); - - $this->dispatch(MigrateCountryEvents::MIGRATE_COUNTRY, $changeEvent); - - // memorize the migration - $migratedCountries = json_decode(ConfigQuery::read('thelia_country_state_migration', '[]'), true); - $migratedCountries[$changeEvent->getCountry()] = [ - 'country' => $changeEvent->getNewCountry(), - 'state' => $changeEvent->getNewState(), - 'counter' => $changeEvent->getCounter() - ]; - ConfigQuery::write('thelia_country_state_migration', json_encode($migratedCountries)); - - // message - $message = $this->getTranslator()->trans( - 'Country %id migrated to country (ID %country) and state (ID %state) (address: %address, tax rules: %tax, shipping zones: %zone)', - [ - '%id' => $changeEvent->getCountry(), - '%country' => $changeEvent->getNewCountry(), - '%state' => $changeEvent->getNewState(), - '%address' => $changeEvent->getCounter()[AddressTableMap::TABLE_NAME], - '%tax' => $changeEvent->getCounter()[TaxRuleCountryTableMap::TABLE_NAME], - '%zone' => $changeEvent->getCounter()[CountryAreaTableMap::TABLE_NAME] - ] - ); - - // add flash message - $this->getSession()->getFlashBag()->add('migrate', $message); - - // Log migration - $this->adminLogAppend( - AdminResources::COUNTRY, - AccessManager::UPDATE, - $message, - $changeEvent->getCountry() - ); - - } - - return $this->generateSuccessRedirect($changeForm); - } catch (FormValidationException $ex) { - // Form cannot be validated - $error_msg = $this->createStandardFormValidationErrorMessage($ex); - } - - if (false !== $error_msg) { - $this->setupFormErrorContext( - $this->getTranslator()->trans("Country migration"), - $error_msg, - $changeForm, - $ex - ); - - return $this->render( - 'countries-migrate', - [ - 'countriesMigrated' => $migratedCountries, - 'showForm' => true - ] - ); - } - } -} diff --git a/local/modules/modules/TheliaMigrateCountry/EventListeners/MigrateCountryListener.php b/local/modules/modules/TheliaMigrateCountry/EventListeners/MigrateCountryListener.php deleted file mode 100644 index 9271e117..00000000 --- a/local/modules/modules/TheliaMigrateCountry/EventListeners/MigrateCountryListener.php +++ /dev/null @@ -1,155 +0,0 @@ - - */ -class MigrateCountryListener implements EventSubscriberInterface -{ - - public function migrateCountry(MigrateCountryEvent $event) - { - $counter = []; - - // update address - $counter[AddressTableMap::TABLE_NAME] = $this->migrateAddress($event); - - // tax rules - $counter[TaxRuleCountryTableMap::TABLE_NAME] = $this->migrateAddress($event); - - // shipping zone - $counter[CountryAreaTableMap::TABLE_NAME] = $this->migrateAddress($event); - - // if it succeeds we toggle the visibility of old country and new - $this->setCountriesVisibility($event); - - $event->setCounter($counter); - - } - - protected function migrateAddress(MigrateCountryEvent $event) - { - $con = Propel::getWriteConnection(AddressTableMap::DATABASE_NAME); - $con->beginTransaction(); - try { - $updatedRows = AddressQuery::create() - ->filterByCountryId($event->getCountry()) - ->update( - [ - 'CountryId' => $event->getNewCountry(), - 'StateId' => $event->getNewState(), - ] - ); - - $con->commit(); - - return $updatedRows; - } catch (PropelException $e) { - $con->rollback(); - throw $e; - } - } - - protected function migrateTaxRules(MigrateCountryEvent $event) - { - $con = Propel::getWriteConnection(TaxRuleCountryTableMap::DATABASE_NAME); - $con->beginTransaction(); - try { - $updatedRows = TaxRuleCountryQuery::create() - ->filterByCountryId($event->getCountry()) - ->update( - [ - 'CountryId' => $event->getNewCountry(), - 'StateId' => $event->getNewState(), - ] - ); - - $con->commit(); - - return $updatedRows; - } catch (PropelException $e) { - $con->rollback(); - throw $e; - } - } - - protected function migrateShippingZones(MigrateCountryEvent $event) - { - $con = Propel::getWriteConnection(CountryAreaTableMap::DATABASE_NAME); - $con->beginTransaction(); - try { - $updatedRows = CountryAreaQuery::create() - ->filterByCountryId($event->getCountry()) - ->update( - [ - 'CountryId' => $event->getNewCountry(), - 'StateId' => $event->getNewState(), - ] - ); - - $con->commit(); - - return $updatedRows; - } catch (PropelException $e) { - $con->rollback(); - throw $e; - } - } - - private function setCountriesVisibility(MigrateCountryEvent $event) - { - $oldCountry = CountryQuery::create()->findPk($event->getCountry()); - - if (null !== $oldCountry) { - $oldCountry - ->setVisible(0) - ->save() - ; - } - - $newCountry = CountryQuery::create()->findPk($event->getNewCountry()); - if (null !== $newCountry) { - $newCountry - ->setVisible(1) - ->save() - ; - } - } - - /** - * @inheritdoc - */ - public static function getSubscribedEvents() - { - return [ - MigrateCountryEvents::MIGRATE_COUNTRY => 'migrateCountry' - ]; - } -} diff --git a/local/modules/modules/TheliaMigrateCountry/Events/MigrateCountryEvent.php b/local/modules/modules/TheliaMigrateCountry/Events/MigrateCountryEvent.php deleted file mode 100644 index 53613b09..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Events/MigrateCountryEvent.php +++ /dev/null @@ -1,117 +0,0 @@ - - */ -class MigrateCountryEvent extends ActionEvent -{ - /** @var int Old country Id */ - protected $country; - - /** @var int New country Id */ - protected $newCountry; - - /** @var int New state Id */ - protected $newState; - - /** @var array counter */ - protected $counter = []; - - /** - * MigrateCountryEvent constructor. - * @param $country - * @param int $newCountry - * @param int $newState - */ - public function __construct($country, $newCountry, $newState) - { - $this->country = $country; - $this->newCountry = $newCountry; - $this->newState = $newState; - } - - /** - * @return mixed - */ - public function getCountry() - { - return $this->country; - } - - /** - * @param mixed $country - */ - public function setCountry($country) - { - $this->country = $country; - return $this; - } - - /** - * @return int - */ - public function getNewCountry() - { - return $this->newCountry; - } - - /** - * @param int $newCountry - */ - public function setNewCountry($newCountry) - { - $this->newCountry = $newCountry; - return $this; - } - - /** - * @return int - */ - public function getNewState() - { - return $this->newState; - } - - /** - * @param int $newState - */ - public function setNewState($newState) - { - $this->newState = $newState; - return $this; - } - - /** - * @return array - */ - public function getCounter() - { - return $this->counter; - } - - /** - * @param array $counter - */ - public function setCounter($counter) - { - $this->counter = $counter; - return $this; - } -} diff --git a/local/modules/modules/TheliaMigrateCountry/Events/MigrateCountryEvents.php b/local/modules/modules/TheliaMigrateCountry/Events/MigrateCountryEvents.php deleted file mode 100644 index 3a1cdcb0..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Events/MigrateCountryEvents.php +++ /dev/null @@ -1,24 +0,0 @@ - - */ -class MigrateCountryEvents -{ - const MIGRATE_COUNTRY = 'action.migrate-country.migrate'; -} diff --git a/local/modules/modules/TheliaMigrateCountry/Form/CountryStateMigrationForm.php b/local/modules/modules/TheliaMigrateCountry/Form/CountryStateMigrationForm.php deleted file mode 100644 index 9a352af9..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Form/CountryStateMigrationForm.php +++ /dev/null @@ -1,54 +0,0 @@ - - */ -class CountryStateMigrationForm extends BaseForm -{ - - /** - * @inheritdocs - */ - protected function buildForm() - { - $this->formBuilder - ->add( - 'migrations', - 'collection', - [ - "type" => "country_state_migration", - "allow_add" => true, - "required" => true, - "cascade_validation" => true, - "constraints" => array( - new Count(["min" => 1]), - ), - ] - ) - ; - } - - public function getName() - { - return "thelia_country_state_migration"; - } -} diff --git a/local/modules/modules/TheliaMigrateCountry/Form/Type/CountryStateMigrationType.php b/local/modules/modules/TheliaMigrateCountry/Form/Type/CountryStateMigrationType.php deleted file mode 100644 index acbf43fa..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Form/Type/CountryStateMigrationType.php +++ /dev/null @@ -1,114 +0,0 @@ - - */ -class CountryStateMigrationType extends AbstractTheliaType -{ - public function configureOptions(OptionsResolver $resolver) - { - $resolver->setDefaults( - [ - "cascade_validation" => true, - "constraints" => array( - new Callback([ - "methods" => array( - [$this, "checkStateId"], - ), - ]), - ), - ] - ); - } - - public function buildForm(FormBuilderInterface $builder, array $options) - { - $builder - ->add("migrate", "checkbox") - ->add( - "country", - "country_id" - ) - ->add( - "new_country", - "country_id" - ) - ->add( - "new_state", - "state_id", - [ - "constraints" => [], - ] - ) - ; - } - - public function checkStateId($value, ExecutionContextInterface $context) - { - - if ($value['migrate']) { - if (null !== $state = StateQuery::create()->findPk($value['new_state'])) { - if ($state->getCountryId() !== $value['new_country']) { - $context->addViolation( - Translator::getInstance()->trans( - "The state id '%id' does not belong to country id '%id_country'", - [ - '%id' => $value['new_state'], - '%id_country' => $value['new_country'] - ] - ) - ); - } - } else { - $context->addViolation( - Translator::getInstance()->trans( - "The state id '%id' doesn't exist", - ['%id' => $value['new_state']] - ) - ); - } - } - - } - - private function getRowData(ExecutionContextInterface $context) - { - $propertyPath = $context->getPropertyPath(); - $data = $this->getRowData($context); - - - } - - /** - * Returns the name of this type. - * - * @return string The name of this type - */ - public function getName() - { - return 'country_state_migration'; - } -} diff --git a/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/en_US.php b/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/en_US.php deleted file mode 100644 index 35906899..00000000 --- a/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,31 +0,0 @@ - ' country ', - ' migrated to ' => ' migrated to ', - ' state ' => ' state ', - 'After the migration the old country will be hide and the new one shown' => 'After the migration the old country will be hide and the new one shown', - 'All States' => 'All States', - 'All countries have been migrated' => 'All countries have been migrated', - 'Configuration' => 'Configuration', - 'Countries' => 'Countries', - 'Countries migrated' => 'Countries migrated', - 'Countries to migrate' => 'Countries to migrate', - 'Country ' => 'Country ', - 'Country migration' => 'Country migration', - 'For USA and Canada the states already exists as countries, so you have to select the right state.' => 'For USA and Canada the states already exists as countries, so you have to select the right state.', - 'For other countries, you should decide to use state or not. ' => 'For other countries, you should decide to use state or not. ', - 'Home' => 'Home', - 'If you want to use the new country with its states, you have to check the migrate checkbox and select a state.' => 'If you want to use the new country with its states, you have to check the migrate checkbox and select a state.', - 'In version 2.3 of Thelia, the system of country has changed.' => 'In version 2.3 of Thelia, the system of country has changed.', - 'Migrate ?' => 'Migrate ?', - 'Migrate countries' => 'Migrate countries', - 'New country' => 'New country', - 'Now, countries has been splited in countries and states.' => 'Now, countries has been splited in countries and states.', - 'Old country' => 'Old country', - 'State' => 'State', - 'The migration proccess is tricky and couldn\'t be automated.' => 'The migration proccess is tricky and couldn\'t be automated.', - 'The migration will change the address, tax rules and shipping zones to match with the new system.' => 'The migration will change the address, tax rules and shipping zones to match with the new system.', - 'The update proccess has created new countries (even if it exists) and associated states.' => 'The update proccess has created new countries (even if it exists) and associated states.', - 'We added a \'default\' state with a blank name as a fallback. Customer will have the possibility to change it later.' => 'We added a \'default\' state with a blank name as a fallback. Customer will have the possibility to change it later.', -); diff --git a/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/fr_FR.php b/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 70b7092b..00000000 --- a/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,31 +0,0 @@ - ' le pays', - ' migrated to ' => 'migré vers', - ' state ' => ' état ', - 'After the migration the old country will be hide and the new one shown' => 'Après la migration l\'ancien pays sera caché et le nouveau sera activé.', - 'All States' => 'Tous les états', - 'All countries have been migrated' => 'Tous les pays ont été migré', - 'Configuration' => 'Configuration', - 'Countries' => 'Pays', - 'Countries migrated' => 'Pays migrés', - 'Countries to migrate' => 'Pays à migrer.', - 'Country ' => 'Le pays', - 'Country migration' => 'Migration pays', - 'For USA and Canada the states already exists as countries, so you have to select the right state.' => 'Pour les USA et le Canada les états étaient déjà présents mais en tant que pays. Vous devrez donc choisir l\'état correspondant.', - 'For other countries, you should decide to use state or not. ' => 'Pour les autres pays, vous devrez choisir d\'utiliser ou pas les états.', - 'Home' => 'Accueil', - 'If you want to use the new country with its states, you have to check the migrate checkbox and select a state.' => 'Si vous voulez utiliser les nouveaux pays avec les états, vous devrez cocher la boîte à cocher \'migrer\' et sélectionner un état.', - 'In version 2.3 of Thelia, the system of country has changed.' => 'En version 2.3 de Thelia, le sysème des pays a changé.', - 'Migrate ?' => 'Migrer ?', - 'Migrate countries' => 'Migrer les pays', - 'New country' => 'Nouveau pays', - 'Now, countries has been splited in countries and states.' => 'Les pays ont été séparé en pays et états.', - 'Old country' => 'Ancien pays', - 'State' => 'État/région', - 'The migration proccess is tricky and couldn\'t be automated.' => 'Le processus de migration est compliqué et ne peux pas être automatisé', - 'The migration will change the address, tax rules and shipping zones to match with the new system.' => 'La migration changera les adresses, les règles de taxe et les zones de livraisons pour fonctionner avec le nouveau système.', - 'The update proccess has created new countries (even if it exists) and associated states.' => 'Le processus de mise à jour a créé de nouveaux pays (même si il existait) et associé des états.', - 'We added a \'default\' state with a blank name as a fallback. Customer will have the possibility to change it later.' => 'Nous avons ajouté un état par \'défaut\' avec un nom vide. Par la suite, le client pourra le changer.', -]; diff --git a/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/it_IT.php b/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 8aaa7bfe..00000000 --- a/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,19 +0,0 @@ - 'paese', - ' migrated to ' => ' migrato a ', - ' state ' => ' stato ', - 'All States' => 'Tutti gli Stati', - 'Configuration' => 'Impostazione', - 'Countries' => 'Paesi', - 'Country ' => 'Paese', - 'Country migration' => 'Migrazione del paese', - 'Home' => 'Home', - 'Migrate countries' => 'Migrazione dei paesi', - 'New country' => 'Nuovo paese', - 'Now, countries has been splited in countries and states.' => 'Ora, i paesi sono stati divisi in paesi e stati.', - 'State' => 'Stato', - 'The update proccess has created new countries (even if it exists) and associated states.' => 'Il processo di aggiornamento ha creato nuovi paesi (anche esistenti) e stati associati.', - 'We added a \'default\' state with a blank name as a fallback. Customer will have the possibility to change it later.' => 'Abbiamo aggiunto uno stato di \'default\' con un nome vuoto come fallback. Il cliente avrà la possibilità di modificarlo in seguito.', -]; diff --git a/local/modules/modules/TheliaMigrateCountry/I18n/en_US.php b/local/modules/modules/TheliaMigrateCountry/I18n/en_US.php deleted file mode 100644 index 582bf0dc..00000000 --- a/local/modules/modules/TheliaMigrateCountry/I18n/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Country %id migrated to country (ID %country) and state (ID %state) (address: %address, tax rules: %tax, shipping zones: %zone)', - 'Country migration' => 'Country migration', - 'The state id \'%id\' does not belong to country id \'%id_country\'' => 'The state id \'%id\' does not belong to country id \'%id_country\'', - 'The state id \'%id\' doesn\'t exist' => 'The state id \'%id\' doesn\'t exist', -); diff --git a/local/modules/modules/TheliaMigrateCountry/I18n/fr_FR.php b/local/modules/modules/TheliaMigrateCountry/I18n/fr_FR.php deleted file mode 100644 index e36af4c7..00000000 --- a/local/modules/modules/TheliaMigrateCountry/I18n/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Le pays %id migré vers le pays (ID %country) et état (ID %state) (adresses: %address, règles de taxe: %tax, zones de livraison: %zone)', - 'Country migration' => 'Migration pays', - 'The state id \'%id\' does not belong to country id \'%id_country\'' => 'L\'état id \'%id\' n\'appartient pas au pays id \'%id_country\'', - 'The state id \'%id\' doesn\'t exist' => 'L\'état id \'%id\' n\'existe pas', -]; diff --git a/local/modules/modules/TheliaMigrateCountry/I18n/it_IT.php b/local/modules/modules/TheliaMigrateCountry/I18n/it_IT.php deleted file mode 100644 index ebcb746f..00000000 --- a/local/modules/modules/TheliaMigrateCountry/I18n/it_IT.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Paese %id migrato a paese (ID %country) e stato (ID %state) (Indirizzo: %address, norme fiscali: %tax, zone di spedizione: %zone)', - 'Country migration' => 'Migrazione del paese', - 'The state id \'%id\' does not belong to country id \'%id_country\'' => 'L\'id dello stato \'%id\' non appartiene a id paese \'%id_country\'', - 'The state id \'%id\' doesn\'t exist' => 'L\'id dello stato \'%id\' non esiste', -]; diff --git a/local/modules/modules/TheliaMigrateCountry/LICENSE.txt b/local/modules/modules/TheliaMigrateCountry/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/TheliaMigrateCountry/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/TheliaMigrateCountry/Readme.md b/local/modules/modules/TheliaMigrateCountry/Readme.md deleted file mode 100644 index ae6aee51..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Readme.md +++ /dev/null @@ -1,18 +0,0 @@ -# Thelia Migrate Country - -This module allow you to migrate the system of country from Thelia version <= 2.2.* to version >= 2.3.0-alpha1. - -## Installation - -### Manually - -* Copy the module into ```/local/modules/``` directory and be sure that the name of the module is TheliaMigrateCountry. -* Activate it in your thelia administration panel - -### Composer - -Add it in your main thelia composer.json file - -``` -composer require your-vendor/thelia-migrate-country-module:~1.0 -``` diff --git a/local/modules/modules/TheliaMigrateCountry/TheliaMigrateCountry.php b/local/modules/modules/TheliaMigrateCountry/TheliaMigrateCountry.php deleted file mode 100644 index b8772687..00000000 --- a/local/modules/modules/TheliaMigrateCountry/TheliaMigrateCountry.php +++ /dev/null @@ -1,28 +0,0 @@ - - {intl l='Migrate countries'} - - -{/loop} \ No newline at end of file diff --git a/local/modules/modules/TheliaMigrateCountry/templates/backOffice/default/countries-migrate.html b/local/modules/modules/TheliaMigrateCountry/templates/backOffice/default/countries-migrate.html deleted file mode 100644 index 79b068a9..00000000 --- a/local/modules/modules/TheliaMigrateCountry/templates/backOffice/default/countries-migrate.html +++ /dev/null @@ -1,299 +0,0 @@ -{extends file="admin-layout.tpl"} - -{block name="no-return-functions"} - {$admin_current_location = 'configuration'} -{/block} - -{block name="page-title"}{intl l='Country migration'}{/block} - -{block name="check-resource"}admin.configuration.country{/block} -{block name="check-access"}update{/block} - -{block name="main-content"} -
- -
- - - -
-
-
- -
- {intl l='Migrate countries'} -
- -
-
- {intl l='In version 2.3 of Thelia, the system of country has changed.'} - {intl l='Now, countries has been split in countries and states.'}
- {intl l="The migration process is tricky and couldn't be automated."}

- {intl l="The update process has created new countries (even if it exists) and associated states."}
- {intl l="The migration will change the address, tax rules and shipping zones to match with the new system."}
- {intl l="After the migration the old country will be hide and the new one shown"}

- {intl l="For USA and Canada the states already exists as countries, so you have to select the right state."}
- {intl l="For other countries, you should decide to use state or not. "} - {intl l="If you want to use the new country with its states, you have to check the migrate checkbox and select a state."} - {intl l="We added a 'default' state with a blank name as a fallback. Customer will have the possibility to change it later."} -
-
- - {if $showForm} -
-
- - {form name="thelia.admin.country.state.migration"} - - {include - file = "includes/inner-form-toolbar.html" - hide_submit_buttons = false - - page_url = {url path="/admin/configuration/countries/migrate"} - close_url = {url path="/admin/configuration/countries"} - } - - {form_hidden_fields exclude="locale"} - - {render_form_field field='success_url' value={url path="/admin/configuration/countries/migrate"}} - - {if $form_error}
{$form_error_message}
{/if} - - {if {hasflash type="migrate"}} -
- {flash type="migrate"} -
{$MESSAGE}
- {/flash} -
- {/if} - -
- - - - - - - - - - - - {form_collection form=$form collection="migrations"} - {$newCountryId=0} - {$countryId=0} - - - - - - - {/form_collection} - -
- {intl l='Countries to migrate'} -
{intl l="Migrate ?"}{intl l="Old country"}{intl l="New country"}{intl l="State"}
- {form_collection_field form=$form row=$row field="migrate"} - - {/form_collection_field} - - {form_collection_field form=$form row=$row field="country"} - {$countryId={$value}} - - - {/form_collection_field} - - {form_collection_field form=$form row=$row field="new_country"} - {$newCountryId={$value}} - - - {/form_collection_field} - - {form_collection_field form=$form row=$row field="new_state"} - {$ref[]={$label_attr.for}} - - - {/form_collection_field} -
-
- - - {/form} - -
-
- {else} -
- {intl l="All countries have been migrated"} -
- {/if} - -
-
- - {if count($countriesMigrated) > 0 } -
-
-
- {intl l='Countries migrated'} -
-
- - {foreach $countriesMigrated as $country => $new} -
-
- {intl l='Country '} - {intl l=' migrated to '} - {intl l=' country '} - - {intl l=' state '} - -
-
- {/foreach} -
- {/if} - -
- -
-
-{/block} - -{block name="javascript-initialization"} - {javascripts file='assets/js/bootstrap-select/bootstrap-select.js'} - - {/javascripts} - - {javascripts file='assets/js/libs/underscore-min.js'} - - {/javascripts} - - - - -{/block} - -{block name="javascript-last-call"} - {hook name="wysiwyg.js" location="wysiwyg-country-edit-js" } -{/block} \ No newline at end of file diff --git a/local/modules/modules/TheliaSmarty/CREDITS.md b/local/modules/modules/TheliaSmarty/CREDITS.md deleted file mode 100644 index 3e89e239..00000000 --- a/local/modules/modules/TheliaSmarty/CREDITS.md +++ /dev/null @@ -1,40 +0,0 @@ -# Credits - -## Yii framework - -TheliaSmarty module uses a function that comes from [Yii framework](http://www.yiiframework.com/) - -License : - -The Yii framework is free software. It is released under the terms of -the following BSD License. - -Copyright © 2008 by Yii Software LLC (http://www.yiisoft.com) -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - * Neither the name of Yii Software LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/local/modules/modules/TheliaSmarty/Compiler/RegisterParserPluginPass.php b/local/modules/modules/TheliaSmarty/Compiler/RegisterParserPluginPass.php deleted file mode 100644 index 76514fff..00000000 --- a/local/modules/modules/TheliaSmarty/Compiler/RegisterParserPluginPass.php +++ /dev/null @@ -1,48 +0,0 @@ - - */ -class RegisterParserPluginPass implements CompilerPassInterface -{ - /** - * You can modify the container here before it is dumped to PHP code. - * - * @param ContainerBuilder $container - * - * @api - */ - public function process(ContainerBuilder $container) - { - if (!$container->hasDefinition("thelia.parser")) { - return; - } - - $smarty = $container->getDefinition("thelia.parser"); - - foreach ($container->findTaggedServiceIds("thelia.parser.register_plugin") as $id => $plugin) { - $smarty->addMethodCall("addPlugins", array(new Reference($id))); - } - - $smarty->addMethodCall("registerPlugins"); - } -} diff --git a/local/modules/modules/TheliaSmarty/Config/config.xml b/local/modules/modules/TheliaSmarty/Config/config.xml deleted file mode 100644 index 11f008fb..00000000 --- a/local/modules/modules/TheliaSmarty/Config/config.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - %kernel.environment% - %kernel.debug% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %thelia.parser.loops% - - - - - - - - - - - - - - - - - - - - - - - - - - - - %thelia.parser.forms% - - - - - - - - - - %kernel.debug% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %kernel.debug% - - - - - - - - %kernel.debug% - - - - - diff --git a/local/modules/modules/TheliaSmarty/Config/module.xml b/local/modules/modules/TheliaSmarty/Config/module.xml deleted file mode 100644 index b6708542..00000000 --- a/local/modules/modules/TheliaSmarty/Config/module.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - TheliaSmarty\TheliaSmarty - - Smarty template engine integration - - - Intégration du moteur de template Smarty - - - en_US - fr_FR - - 2.3.4 - - - Manuel Raynaud - manu@raynaud.io - - - classic - 2.2.0 - alpha - 1 - 1 - diff --git a/local/modules/modules/TheliaSmarty/I18n/en_US.php b/local/modules/modules/TheliaSmarty/I18n/en_US.php deleted file mode 100644 index 173d397f..00000000 --- a/local/modules/modules/TheliaSmarty/I18n/en_US.php +++ /dev/null @@ -1,21 +0,0 @@ - '\'%type\' loop class should extends Thelia\Core\Template\Element\BaseLoop', - 'A loop named \'%name\' already exists in the current scope.' => 'A loop named \'%name\' already exists in the current scope.', - 'Loop type \'%type\' is not defined.' => 'Loop type \'%type\' is not defined.', - 'Missing \'name\' parameter in loop arguments' => 'Missing \'name\' parameter in loop arguments', - 'Missing \'rel\' parameter in forHook arguments' => 'Missing \'rel\' parameter in forHook arguments', - 'Missing \'rel\' parameter in ifhook/elsehook arguments' => 'Missing \'rel\' parameter in ifhook/elsehook arguments', - 'Missing \'rel\' parameter in ifloop/elseloop arguments' => 'Missing \'rel\' parameter in ifloop/elseloop arguments', - 'Missing \'rel\' parameter in page loop' => 'Missing \'rel\' parameter in page loop', - 'Missing \'type\' parameter in loop arguments' => 'Missing \'type\' parameter in loop arguments', - 'Missing \'type\' parameter in {count} loop arguments' => 'Missing \'type\' parameter in {count} loop arguments', - 'Missing \'type\' parameter in {hasflash} function arguments' => 'Missing \'type\' parameter in {hasflash} function arguments', - 'No pagination currently defined for loop name \'%name\'' => 'No pagination currently defined for loop name \'%name\'', - 'Please specify either \'path\' or \'file\' parameter in {url} function.' => 'Please specify either \'path\' or \'file\' parameter in {url} function.', - 'Related hook name \'%name\' is not defined.' => 'Related hook name \'%name\' is not defined.', - 'Related loop name \'%name\'\' is not defined.' => 'Related loop name \'%name\'\' is not defined.', - 'Template file %file cannot be found.' => 'Template file %file cannot be found.', - 'The loop name \'%name\' is already defined in %className class' => 'The loop name \'%name\' is already defined in %className class', -); diff --git a/local/modules/modules/TheliaSmarty/I18n/fr_FR.php b/local/modules/modules/TheliaSmarty/I18n/fr_FR.php deleted file mode 100644 index 67b516db..00000000 --- a/local/modules/modules/TheliaSmarty/I18n/fr_FR.php +++ /dev/null @@ -1,21 +0,0 @@ - 'La loop "%type" doit étendre la class Thelia\Core\Template\Element\BaseLoop', - 'A loop named \'%name\' already exists in the current scope.' => 'une loop avec comme nom \'%name\' existe déjà dans le scope courant', - 'Loop type \'%type\' is not defined.' => 'La loop de type "%type" n\'est pas défini', - 'Missing \'name\' parameter in loop arguments' => 'Le paramètre \'name\' est manquant dans la liste des arguments', - 'Missing \'rel\' parameter in forHook arguments' => 'Le paramètre \'rel\' est manquant dans les arguments de forHook', - 'Missing \'rel\' parameter in ifhook/elsehook arguments' => 'Le paramètre \'rel\' est manquant des arguments ifhook/elsehook', - 'Missing \'rel\' parameter in ifloop/elseloop arguments' => 'Paramètre \'rel\' manquant dans la liste des arguments d\'une loop ifloop/elseloop', - 'Missing \'rel\' parameter in page loop' => 'Paramètre \'rel\' manquant dans la loop page', - 'Missing \'type\' parameter in loop arguments' => 'Le paramètre \'type\' est manquant dans la liste des arguments', - 'Missing \'type\' parameter in {count} loop arguments' => 'Le paramètre \'type\' dans la loop {count} est manquant', - 'Missing \'type\' parameter in {hasflash} function arguments' => 'Le paramètre \'type\' est manquant dans', - 'No pagination currently defined for loop name \'%name\'' => 'Il n\'y a pas de pagination définie pour la loop \'%name\'', - 'Please specify either \'path\' or \'file\' parameter in {url} function.' => 'Merci de spécifier le \'path\' ou le \'file\'.parameter dans la fonction {url}', - 'Related hook name \'%name\' is not defined.' => 'le hook ayat pour nom "%name" n\'est pas défini', - 'Related loop name \'%name\'\' is not defined.' => 'La loop ayant pour nom "%name" n\'est pas défini', - 'Template file %file cannot be found.' => 'Le fichier %s ne semble pas présent', - 'The loop name \'%name\' is already defined in %className class' => 'La loop "%name" est déjà définie dans la class %className', -]; diff --git a/local/modules/modules/TheliaSmarty/I18n/tr_TR.php b/local/modules/modules/TheliaSmarty/I18n/tr_TR.php deleted file mode 100644 index 05f834a0..00000000 --- a/local/modules/modules/TheliaSmarty/I18n/tr_TR.php +++ /dev/null @@ -1,21 +0,0 @@ - '\'%type\' döngü sınıfını genişleten Thelia\Core\Template\Element\BaseLoop', - 'A loop named \'%name\' already exists in the current scope.' => '\'%name\' adlı bir döngü geçerli etki alanında bulunmaktadır.', - 'Loop type \'%type\' is not defined.' => 'Döngü türü \'%type\' tanımlı değil.', - 'Missing \'name\' parameter in loop arguments' => 'Döngü değişkenlerde \'ad\' parametresi eksik', - 'Missing \'rel\' parameter in forHook arguments' => 'ForHook değişkenlerde \'rel\' parametresi eksik', - 'Missing \'rel\' parameter in ifhook/elsehook arguments' => 'İfhook/elsehook bağımsız değişkenleri \'rel\' parametresi eksik', - 'Missing \'rel\' parameter in ifloop/elseloop arguments' => 'İfloop/elseloop bağımsız değişkenleri \'rel\' parametresi eksik', - 'Missing \'rel\' parameter in page loop' => 'Sayfa döngü içinde \'rel\' parametresi eksik', - 'Missing \'type\' parameter in loop arguments' => '\'Tür\' parametresinde döngü bağımsız değişkenleri eksik', - 'Missing \'type\' parameter in {count} loop arguments' => '{count} döngü değişkenlerde \'type\' parametresi eksik', - 'Missing \'type\' parameter in {hasflash} function arguments' => '\'Tür\' parametresinde {hasflash} fonksiyon bağımsız değişkenleri eksik', - 'No pagination currently defined for loop name \'%name\'' => 'Şu anda döngü adı \'%name\' tanımlı hiçbir pagination', - 'Please specify either \'path\' or \'file\' parameter in {url} function.' => 'Lütfen \'yol\' ya da \'dosya\' parametre {url} işlevinde belirtin.', - 'Related hook name \'%name\' is not defined.' => 'İlgili kanca adı \'%name\' tanımlı değil.', - 'Related loop name \'%name\'\' is not defined.' => 'İlgili kanca adı \'%name\' tanımlı değil.', - 'Template file %file cannot be found.' => 'Şablon dosyası %file bulunamadı.', - 'The loop name \'%name\' is already defined in %className class' => 'Döngü adı \'%name\' zaten %className sınıfında tanımlanmış', -]; diff --git a/local/modules/modules/TheliaSmarty/LICENSE.txt b/local/modules/modules/TheliaSmarty/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/TheliaSmarty/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/TheliaSmarty/Readme.md b/local/modules/modules/TheliaSmarty/Readme.md deleted file mode 100644 index 96b8b328..00000000 --- a/local/modules/modules/TheliaSmarty/Readme.md +++ /dev/null @@ -1,2 +0,0 @@ -## Smarty for Thelia - diff --git a/local/modules/modules/TheliaSmarty/Template/AbstractSmartyPlugin.php b/local/modules/modules/TheliaSmarty/Template/AbstractSmartyPlugin.php deleted file mode 100644 index 92c54a5c..00000000 --- a/local/modules/modules/TheliaSmarty/Template/AbstractSmartyPlugin.php +++ /dev/null @@ -1,97 +0,0 @@ -getParam($params, $name, $default); - - if (is_string($value)) { - $value = strtolower(trim($value)); - } - return $value; - } - - /** - * Get a function or block parameter value - * - * @param array $params the parameters array - * @param mixed $name as single parameter name, or an array of names. In this case, the first defined parameter is returned. Use this for aliases (context, ctx, c) - * @param mixed $default the defaut value if parameter is missing (default to null) - * @return mixed the parameter value, or the default value if it is not found. - */ - public function getParam($params, $name, $default = null) - { - if (is_array($name)) { - foreach ($name as $test) { - if (isset($params[$test])) { - return $params[$test]; - } - } - } elseif (isset($params[$name])) { - return $params[$name]; - } - - return $default; - } - - /** - * @return SmartyPluginDescriptor[] an array of SmartyPluginDescriptor - */ - abstract public function getPluginDescriptors(); -} diff --git a/local/modules/modules/TheliaSmarty/Template/Assets/SmartyAssetsManager.php b/local/modules/modules/TheliaSmarty/Template/Assets/SmartyAssetsManager.php deleted file mode 100644 index 64ec3db6..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Assets/SmartyAssetsManager.php +++ /dev/null @@ -1,268 +0,0 @@ -web_root = $web_root; - $this->path_relative_to_web_root = $path_relative_to_web_root; - - $this->assetsManager = $assetsManager; - $this->assetsResolver = $assetsResolver; - } - - - /** - * Prepare current template assets - * - * @param string $assets_directory the assets directory in the template - * @param \Smarty_Internal_Template $smarty the smarty parser - */ - public function prepareAssets($assets_directory, \Smarty_Internal_Template $smarty) - { - // Be sure to use the proper path separator - if (DS != '/') { - $assets_directory = str_replace('/', DS, $assets_directory); - } - - // Set the current template assets directory - self::$assetsDirectory = $assets_directory; - - /** @var SmartyParser $smartyParser */ - $smartyParser = $smarty->smarty; - - $this->prepareTemplateAssets($smartyParser->getTemplateDefinition(), $assets_directory, $smartyParser); - } - - /** - * Prepare template assets - * - * @param TemplateDefinition $templateDefinition the template to process - * @param string $assets_directory the assets directory in the template - * @param \TheliaSmarty\Template\SmartyParser $smartyParser the current parser. - */ - protected function prepareTemplateAssets( - TemplateDefinition $templateDefinition, - $assets_directory, - SmartyParser $smartyParser - ) { - // Get the registered template directories for the current template path - $templateDirectories = $smartyParser->getTemplateDirectories($templateDefinition->getType()); - - if (isset($templateDirectories[$templateDefinition->getName()])) { - /* create assets foreach registered directory : main @ modules */ - foreach ($templateDirectories[$templateDefinition->getName()] as $key => $directory) { - // This is the assets directory in the template's tree - $tpl_path = $directory . DS . $assets_directory; - - $asset_dir_absolute_path = realpath($tpl_path); - - if (false !== $asset_dir_absolute_path) { - // If we're processing template assets (not module assets), - // we will use the $assets_directory as the assets parent dir. - if (SmartyParser::TEMPLATE_ASSETS_KEY == $key && ! null !== $assets_directory) { - $assetsWebDir = SmartyParser::TEMPLATE_ASSETS_KEY . DS . $assets_directory; - } else { - $assetsWebDir = $key; - } - - Tlog::getInstance()->addDebug( - "Preparing assets: source assets directory $asset_dir_absolute_path, " - . "web assets dir base: " . $this->web_root . $this->path_relative_to_web_root . ", " - . "template: ".$templateDefinition->getPath().", " - . "web asset key: $assetsWebDir (key=$key)" - ); - - $this->assetsManager->prepareAssets( - $asset_dir_absolute_path, - $this->web_root . $this->path_relative_to_web_root, - $templateDefinition->getPath(), - $key . DS . $assets_directory - ); - } - } - } - } - - /** - * Retrieve asset URL - * - * @param string $assetType js|css|image - * @param array $params Parameters - * - file File path in the default template - * - source module asset - * - filters filter to apply - * - debug - * - template if you want to load asset from another template - * @param \Smarty_Internal_Template $template Smarty Template - * - * @param bool $allowFilters if false, the 'filters' parameter is ignored - * @return string - */ - public function computeAssetUrl($assetType, $params, \Smarty_Internal_Template $template, $allowFilters = true) - { - $assetUrl = ""; - - $file = $params['file']; - - // The 'file' parameter is mandatory - if (empty($file)) { - throw new \InvalidArgumentException( - "The 'file' parameter is missing in an asset directive (type is '$assetType')" - ); - } - - $assetOrigin = isset($params['source']) ? $params['source'] : SmartyParser::TEMPLATE_ASSETS_KEY; - $filters = $allowFilters && isset($params['filters']) ? $params['filters'] : ''; - $debug = isset($params['debug']) ? trim(strtolower($params['debug'])) == 'true' : false; - $templateName = isset($params['template']) ? $params['template'] : false; - $failsafe = isset($params['failsafe']) ? $params['failsafe'] : false; - - Tlog::getInstance()->debug("Searching asset $file in source $assetOrigin, with template $templateName"); - - /** @var \TheliaSmarty\Template\SmartyParser $smartyParser */ - $smartyParser = $template->smarty; - - if (false !== $templateName) { - // We have to be sure that this external template assets have been properly prepared. - // We will assume the following: - // 1) this template have the same type as the current template, - // 2) this template assets have the same structure as the current template - // (which is in self::$assetsDirectory) - $currentTemplate = $smartyParser->getTemplateDefinition(); - - $templateDefinition = new TemplateDefinition( - $templateName, - $currentTemplate->getType() - ); - - /* Add this templates directory to the current list */ - $smartyParser->addTemplateDirectory( - $templateDefinition->getType(), - $templateDefinition->getName(), - THELIA_TEMPLATE_DIR . $templateDefinition->getPath(), - SmartyParser::TEMPLATE_ASSETS_KEY - ); - - $this->prepareTemplateAssets($templateDefinition, self::$assetsDirectory, $smartyParser); - } - - $assetSource = $this->assetsResolver->resolveAssetSourcePath($assetOrigin, $templateName, $file, $smartyParser); - - if (null !== $assetSource) { - $assetUrl = $this->assetsResolver->resolveAssetURL( - $assetOrigin, - $file, - $assetType, - $smartyParser, - $filters, - $debug, - self::$assetsDirectory, - $templateName - ); - } else { - // Log the problem - if ($failsafe) { - // The asset URL will be '' - Tlog::getInstance()->addWarning("Failed to find asset source file " . $params['file']); - } else { - throw new TheliaProcessException("Failed to find asset source file " . $params['file']); - } - } - - return $assetUrl; - } - - public function processSmartyPluginCall( - $assetType, - $params, - $content, - \Smarty_Internal_Template $template, - &$repeat - ) { - // Opening tag (first call only) - if ($repeat) { - $isfailsafe = false; - - $url = ''; - try { - // Check if we're in failsafe mode - if (isset($params['failsafe'])) { - $isfailsafe = $params['failsafe']; - } - - $url = $this->computeAssetUrl($assetType, $params, $template); - - if (empty($url)) { - $message = sprintf("Failed to get real path of asset %s without exception", $params['file']); - - Tlog::getInstance()->addWarning($message); - - // In debug mode, throw exception - if ($this->assetsManager->isDebugMode() && ! $isfailsafe) { - throw new TheliaProcessException($message); - } - } - } catch (\Exception $ex) { - Tlog::getInstance()->addWarning( - sprintf( - "Failed to get real path of asset %s with exception: %s", - $params['file'], - $ex->getMessage() - ) - ); - - // If we're in development mode, just retrow the exception, so that it will be displayed - if ($this->assetsManager->isDebugMode() && ! $isfailsafe) { - throw $ex; - } - } - $template->assign('asset_url', $url); - } elseif (isset($content)) { - return $content; - } - - return null; - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Assets/SmartyAssetsResolver.php b/local/modules/modules/TheliaSmarty/Template/Assets/SmartyAssetsResolver.php deleted file mode 100644 index 34c248c5..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Assets/SmartyAssetsResolver.php +++ /dev/null @@ -1,223 +0,0 @@ -path_relative_to_web_root = ConfigQuery::read('asset_dir_from_web_root', 'assets'); - - $this->assetsManager = $assetsManager; - } - - /** - * Generate an asset URL - * - * @param string $source a module code, or SmartyParser::TEMPLATE_ASSETS_KEY - * @param string $file the file path, relative to a template base directory (e.g. assets/css/style.css) - * @param string $type the asset type, either 'css' or ' - * @param ParserInterface $parserInterface the current template parser - * @param array $filters the filters to pass to the asset manager - * @param bool $debug the debug mode - * @param string $declaredAssetsDirectory if not null, this is the assets directory declared in the {declare_assets} function of a template. - * @param mixed $sourceTemplateName A template name, of false. If provided, the assets will be searched in this template directory instead of the current one. - * @return mixed - */ - public function resolveAssetURL($source, $file, $type, ParserInterface $parserInterface, $filters = [], $debug = false, $declaredAssetsDirectory = null, $sourceTemplateName = false) - { - $url = ""; - - // Normalize path separator - $file = $this->fixPathSeparator($file); - - $fileRoot = $this->resolveAssetSourcePath($source, $sourceTemplateName, $file, $parserInterface); - - if (null !== $fileRoot) { - $templateDefinition = $parserInterface->getTemplateDefinition($sourceTemplateName); - - $url = $this->assetsManager->processAsset( - $fileRoot . DS . $file, - $fileRoot, - THELIA_WEB_DIR . $this->path_relative_to_web_root, - $templateDefinition->getPath(), - $source, // $this->getBaseWebAssetDirectory($source, $declaredAssetsDirectory), - URL::getInstance()->absoluteUrl($this->path_relative_to_web_root, null, URL::PATH_TO_FILE /* path only */), - $type, - $filters, - $debug - ); - } else { - Tlog::getInstance()->addError("Asset $file (type $type) was not found."); - } - - return $url; - } - - - /** - * Return an asset source file path. - * - * A system of fallback enables file overriding. It will look for the template : - * - in the current template in directory /modules/{module code}/ - * - in the module in the current template if it exists - * - in the module in the default template - * - * @param string $source a module code, or or SmartyParser::TEMPLATE_ASSETS_KEY - * @param string $templateName a template name, or false to use the current template - * @param string $fileName the filename - * @param ParserInterface $parserInterface the current template parser - * - * @return mixed the path to directory containing the file, or null if the file doesn't exists. - */ - public function resolveAssetSourcePath($source, $templateName, $fileName, ParserInterface $parserInterface) - { - $filePath = null; - - $templateDefinition = $parserInterface->getTemplateDefinition(false); - - // Get all possible directories to search - $paths = $this->getPossibleAssetSources( - $parserInterface->getTemplateDirectories($templateDefinition->getType()), - $templateName ?: $templateDefinition->getName(), - $source - ); - - // Normalize path separator if required (e.g., / becomes \ on windows) - $fileName = $this->fixPathSeparator($fileName); - - /* Absolute paths are not allowed. This may be a mistake, such as '/assets/...' instead of 'assets/...'. Forgive it. */ - $fileName = ltrim($fileName, DS); - - /* Navigating in the server's directory tree is not allowed :) */ - if (preg_match('!\.\.\\'.DS.'!', $fileName)) { - // This time, we will not forgive. - throw new \InvalidArgumentException("Relative paths are not allowed in assets names."); - } - - // Find the first occurrence of the file in the directories lists - foreach ($paths as $path) { - if ($this->filesExist($path, $fileName)) { - // Got it ! - $filePath = $path; - break; - } - } - - return $filePath; - } - - - /** - * Be sure that the pat separator of a pathname is always the platform path separator. - * - * @param string $path the iput path - * @return string the fixed path - */ - protected function fixPathSeparator($path) - { - if (DS != '/') { - $path = str_replace('/', DS, $path); - } - - return $path; - } - - /** - * Check if a file(s) exists in a directory - * - * @param string $dir the directory path - * @param string $file the file path. It can contain wildcard. eg: /path/*.css - * @return bool true if file(s) - */ - protected function filesExist($dir, $file) - { - if (!file_exists($dir)) { - return false; - } - - $full_path = rtrim($dir, DS) . DS . ltrim($file, DS); - - try { - $files = glob($full_path); - - $files_found = ! empty($files); - } catch (\Exception $ex) { - Tlog::getInstance()->addError($ex->getMessage()); - - $files_found = false; - } - - return $files_found; - } - - /** - * Get all possible directories from which the asset can be found. - * It returns an array of directories ordered by priority. - * - * @param array $directories all directories source available for the template type - * @param string $template the name of the template - * @param string $source the module code or SmartyParser::TEMPLATE_ASSETS_KEY - * @return array possible directories - */ - protected function getPossibleAssetSources($directories, $template, $source) - { - $paths = []; - - if (SmartyParser::TEMPLATE_ASSETS_KEY !== $source) { - // We're in a module. - - // First look into the current template in the right scope : frontOffice, backOffice, ... - // template should be overridden in : {template_path}/modules/{module_code}/{template_name} - if (isset($directories[$template][SmartyParser::TEMPLATE_ASSETS_KEY])) { - $paths[] = - $directories[$template][SmartyParser::TEMPLATE_ASSETS_KEY] - . DS - . self::MODULE_OVERRIDE_DIRECTORY_NAME . DS - . $source; - } - - // then in the implementation for the current template used in the module directory - if (isset($directories[$template][$source])) { - $paths[] = $directories[$template][$source]; - } - - // then in the default theme in the module itself - if (isset($directories[self::DEFAULT_TEMPLATE_NAME][$source])) { - $paths[] = $directories[self::DEFAULT_TEMPLATE_NAME][$source]; - } - } else { - $paths[] = $directories[$template][SmartyParser::TEMPLATE_ASSETS_KEY]; - } - - return $paths; - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Exception/SmartyPluginException.php b/local/modules/modules/TheliaSmarty/Template/Exception/SmartyPluginException.php deleted file mode 100644 index 41119ecf..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Exception/SmartyPluginException.php +++ /dev/null @@ -1,22 +0,0 @@ - - */ -class SmartyPluginException extends \SmartyException -{ -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/AdminUtilities.php b/local/modules/modules/TheliaSmarty/Template/Plugins/AdminUtilities.php deleted file mode 100644 index ed7b5125..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/AdminUtilities.php +++ /dev/null @@ -1,172 +0,0 @@ - - */ -class AdminUtilities extends AbstractSmartyPlugin -{ - private $securityContext; - private $templateHelper; - - public function __construct(SecurityContext $securityContext, TemplateHelperInterface $templateHelper) - { - $this->securityContext = $securityContext; - $this->templateHelper = $templateHelper; - } - - protected function fetchSnippet($smarty, $templateName, $variablesArray) - { - $data = ''; - - $snippet_path = sprintf( - '%s/%s/%s.html', - THELIA_TEMPLATE_DIR, - $this->templateHelper->getActiveAdminTemplate()->getPath(), - $templateName - ); - - if (false !== $snippet_content = file_get_contents($snippet_path)) { - $smarty->assign($variablesArray); - - $data = $smarty->fetch(sprintf('string:%s', $snippet_content)); - } - - return $data; - } - - public function optionOffsetGenerator($params, &$smarty) - { - $label = $this->getParam($params, 'label', null); - - if (null !== $level = $this->getParam($params, [ 'l', 'level'], null)) { - $label = str_repeat(' ', 4 * $level) . $label; - } - - return $label; - } - - public function generatePositionChangeBlock($params, &$smarty) - { - // The required permissions - $resource = $this->getParam($params, 'resource'); - $module = $this->getParam($params, 'module'); - $access = $this->getParam($params, 'access'); - - // The base position change path - $path = $this->getParam($params, 'path'); - - // The URL parameter the object ID is assigned - $url_parameter = $this->getParam($params, 'url_parameter'); - - // The current object position - $position = $this->getParam($params, 'position'); - - // The object ID - $id = $this->getParam($params, 'id'); - - // The in place dition class - $in_place_edit_class = $this->getParam($params, 'in_place_edit_class'); - - /* - - {$POSITION} - - */ - - if ($this->securityContext->isGranted( - array("ADMIN"), - $resource === null ? array() : array($resource), - $module === null ? array() : array($module), - array($access) - ) - ) { - return $this->fetchSnippet($smarty, 'includes/admin-utilities-position-block', array( - 'admin_utilities_go_up_url' => URL::getInstance()->absoluteUrl($path, array('mode' => 'up', $url_parameter => $id)), - 'admin_utilities_in_place_edit_class' => $in_place_edit_class, - 'admin_utilities_object_id' => $id, - 'admin_utilities_current_position' => $position, - 'admin_utilities_go_down_url' => URL::getInstance()->absoluteUrl($path, array('mode' => 'down', $url_parameter => $id)) - )); - } else { - return $position; - } - } - - /** - * Generates the link of a sortable column header - * - * @param array $params - * @param unknown $smarty - * @return string no text is returned. - */ - public function generateSortableColumnHeader($params, &$smarty) - { - // The current order of the table - $current_order = $this->getParam($params, 'current_order'); - - // The column ascending order - $order = $this->getParam($params, 'order'); - - // The column descending order label - $reverse_order = $this->getParam($params, 'reverse_order'); - - // The order change path - $path = $this->getParam($params, 'path'); - - // The column label - $label = $this->getParam($params, 'label'); - - // The request parameter - $request_parameter_name = $this->getParam($params, 'request_parameter_name', 'order'); - - if ($current_order == $order) { - $sort_direction = 'up'; - $order_change = $reverse_order; - } elseif ($current_order == $reverse_order) { - $sort_direction = 'down'; - $order_change = $order; - } else { - $order_change = $order; - } - - return $this->fetchSnippet($smarty, 'includes/admin-utilities-sortable-column-header', array( - 'admin_utilities_sort_direction' => $sort_direction, - 'admin_utilities_sorting_url' => URL::getInstance()->absoluteUrl($path, array($request_parameter_name => $order_change)), - 'admin_utilities_header_text' => $label - )); - } - - /** - * Define the various smarty plugins handled by this class - * - * @return array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'admin_sortable_header', $this, 'generateSortableColumnHeader'), - new SmartyPluginDescriptor('function', 'admin_position_block', $this, 'generatePositionChangeBlock'), - new SmartyPluginDescriptor('function', 'option_offset', $this, 'optionOffsetGenerator'), - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Assets.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Assets.php deleted file mode 100644 index a64578dd..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Assets.php +++ /dev/null @@ -1,106 +0,0 @@ -assetManager = new SmartyAssetsManager( - $assetsManager, - $assetsResolver, - THELIA_WEB_DIR, - $asset_dir_from_web_root - ); - } - - public function declareAssets($params, \Smarty_Internal_Template $template) - { - if (false !== $asset_dir = $this->getParam($params, 'directory', false)) { - $this->assetManager->prepareAssets($asset_dir, $template); - - return ''; - } - - throw new \InvalidArgumentException('declare_assets: parameter "directory" is required'); - } - - public function blockJavascripts($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - return $this->assetManager->processSmartyPluginCall('js', $params, $content, $template, $repeat); - } - - public function blockImages($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - return $this - ->assetManager - ->processSmartyPluginCall(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $content, $template, $repeat); - } - - public function blockStylesheets($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - return $this->assetManager->processSmartyPluginCall('css', $params, $content, $template, $repeat); - } - - public function functionImage($params, \Smarty_Internal_Template $template) - { - return $this->assetManager->computeAssetUrl(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $template); - } - - public function functionAsset($params, \Smarty_Internal_Template $template) - { - return $this->assetManager->computeAssetUrl(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $template, false); - } - - public function functionJavascript($params, \Smarty_Internal_Template $template) - { - return $this->assetManager->computeAssetUrl(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $template); - } - - public function functionStylesheet($params, \Smarty_Internal_Template $template) - { - return $this->assetManager->computeAssetUrl('css', $params, $template); - } - - /** - * Define the various smarty plugins hendled by this class - * - * @return array an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('block', 'stylesheets', $this, 'blockStylesheets'), - new SmartyPluginDescriptor('block', 'javascripts', $this, 'blockJavascripts'), - new SmartyPluginDescriptor('block', 'images', $this, 'blockImages'), - - new SmartyPluginDescriptor('function', 'asset', $this, 'functionAsset'), - new SmartyPluginDescriptor('function', 'image', $this, 'functionImage'), - new SmartyPluginDescriptor('function', 'javascript', $this, 'functionJavascript'), - new SmartyPluginDescriptor('function', 'stylesheet', $this, 'functionStylesheet'), - - new SmartyPluginDescriptor('function', 'declare_assets', $this, 'declareAssets') - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Cache.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Cache.php deleted file mode 100644 index 9a01272b..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Cache.php +++ /dev/null @@ -1,124 +0,0 @@ - - */ -class Cache extends AbstractSmartyPlugin -{ - /** @var AdapterInterface */ - protected $adapter; - - /** @var RequestStack */ - protected $requestStack; - - /** @var bool */ - protected $debug; - - /** - * Cache constructor. - * @param AdapterInterface $esiFragmentRenderer - * @param RequestStack $requestStack - * @param bool $debug - */ - public function __construct(AdapterInterface $esiFragmentRenderer, RequestStack $requestStack, $debug) - { - $this->adapter = $esiFragmentRenderer; - $this->requestStack = $requestStack; - $this->debug = $debug; - } - - public function cache(array $params, $content, $template, &$repeat) - { - $key = $this->getParam($params, 'key'); - if (null === $key || empty($key)) { - throw new \InvalidArgumentException( - "Missing 'key' parameter in cache arguments" - ); - } - - $ttl = (int) $this->getParam($params, 'ttl'); - if (null === $ttl) { - throw new \InvalidArgumentException( - "Missing 'ttl' parameter in cache arguments" - ); - } - - if ($this->debug || $ttl < 1) { - if (null !== $content) { - $repeat = false; - return $content; - } - return null; - } - - /** @var CacheItemInterface $cacheItem */ - $cacheItem = $this->adapter->getItem( - $this->generateKey($params) - ); - - if ($cacheItem->isHit()) { - $repeat = false; - return $cacheItem->get(); - } - - if ($content !== null) { - $cacheItem - ->expiresAfter((int) $params['ttl']) - ->set($content); - - $this->adapter->save($cacheItem); - $repeat = false; - return $cacheItem->get(); - } - } - - /** - * @param array $params - * @return string - */ - protected function generateKey(array $params) - { - /** @var Session $session */ - if (null !== $session = $this->requestStack->getCurrentRequest()->getSession()) { - if (!isset($params['lang'])) { - $params['lang'] = $session->getLang(true)->getId(); - } - if (!isset($params['currency'])) { - $params['currency'] = $session->getCurrency(true)->getId(); - } - } - - return 'smarty_cache_' . md5(json_encode($params)); - } - - /** - * @return array an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('block', 'cache', $this, 'cache') - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/CartPostage.php b/local/modules/modules/TheliaSmarty/Template/Plugins/CartPostage.php deleted file mode 100644 index b760060d..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/CartPostage.php +++ /dev/null @@ -1,251 +0,0 @@ -container = $container; - - $this->requestStack = $container->get('request_stack'); - - $this->request = $this->getCurrentRequest(); - - $this->dispatcher = $container->get('event_dispatcher'); - } - - /** - * Get postage amount for cart - * - * @param array $params Block parameters - * @param mixed $content Block content - * @param \Smarty_Internal_Template $template Template - * @param bool $repeat Control how many times - * the block is displayed - * - * @return mixed - */ - public function postage($params, $content, $template, &$repeat) - { - if (!$repeat) { - return (null !== $this->countryId) ? $content : ""; - } - - $customer = $this->getCurrentRequest()->getSession()->getCustomerUser(); - /** @var Address $address */ - /** @var Country $country */ - list($address, $country, $state) = $this->getDeliveryInformation($customer); - - if (null !== $country) { - $this->countryId = $country->getId(); - // try to get the cheapest delivery for this country - $this->getCheapestDelivery($address, $country); - } - - $template->assign('country_id', $this->countryId); - $template->assign('delivery_id', $this->deliveryId); - $template->assign('postage', $this->postage ?: 0.0); - $template->assign('postage_tax', $this->postageTax ?: 0.0); - $template->assign('postage_title', $this->postageTaxRuleTitle ?: 0.0); - $template->assign('is_customizable', $this->isCustomizable); - } - - /** - * Retrieve the delivery country for a customer - * - * The rules : - * - the country of the delivery address of the customer related to the - * cart if it exists - * - the country saved in cookie if customer have changed - * the default country - * - the default country for the shop if it exists - * - * - * @param \Thelia\Model\Customer $customer - * @return \Thelia\Model\Country - */ - protected function getDeliveryInformation(Customer $customer = null) - { - $address = null; - // get the selected delivery address - if (null !== $addressId = $this->getCurrentRequest()->getSession()->getOrder()->getChoosenDeliveryAddress()) { - if (null !== $address = AddressQuery::create()->findPk($addressId)) { - $this->isCustomizable = false; - return [$address, $address->getCountry(), null]; - } - } - - // get country from customer addresses - if (null !== $customer) { - $address = AddressQuery::create() - ->filterByCustomerId($customer->getId()) - ->filterByIsDefault(1) - ->findOne() - ; - - if (null !== $address) { - $this->isCustomizable = false; - - return [$address, $address->getCountry(), null]; - } - } - - // get country from cookie - $cookieName = ConfigQuery::read('front_cart_country_cookie_name', 'fcccn'); - if ($this->getCurrentRequest()->cookies->has($cookieName)) { - $cookieVal = $this->getCurrentRequest()->cookies->getInt($cookieName, 0); - if (0 !== $cookieVal) { - $country = CountryQuery::create()->findPk($cookieVal); - if (null !== $country) { - return [null, $country, null]; - } - } - } - - // get default country for store. - try { - $country = Country::getDefaultCountry(); - - return [null, $country, null]; - } catch (\LogicException $e) { - ; - } - - return [null, null, null]; - } - - /** - * Retrieve the cheapest delivery for country - * - * @param Address $address - * @param \Thelia\Model\Country $country - * @return DeliveryModuleInterface - */ - protected function getCheapestDelivery(Address $address = null, Country $country = null) - { - $cart = $this->getCurrentRequest()->getSession()->getSessionCart(); - - $deliveryModules = ModuleQuery::create() - ->filterByActivate(1) - ->filterByType(BaseModule::DELIVERY_MODULE_TYPE, Criteria::EQUAL) - ->find() - ; - - /** @var \Thelia\Model\Module $deliveryModule */ - foreach ($deliveryModules as $deliveryModule) { - $moduleInstance = $deliveryModule->getDeliveryModuleInstance($this->container); - - try { - $deliveryPostageEvent = new DeliveryPostageEvent($moduleInstance, $cart, $address, $country, $state); - $this->dispatcher->dispatch( - TheliaEvents::MODULE_DELIVERY_GET_POSTAGE, - $deliveryPostageEvent - ); - - if ($deliveryPostageEvent->isValidModule()) { - $postage = $deliveryPostageEvent->getPostage(); - - if (null === $this->postage || $this->postage > $postage->getAmount()) { - $this->postage = $postage->getAmount(); - $this->postageTax = $postage->getAmountTax(); - $this->postageTaxRuleTitle = $postage->getTaxRuleTitle(); - $this->deliveryId = $deliveryModule->getId(); - } - } - } catch (DeliveryException $ex) { - // Module is not available - } - } - } - - /** - * Defines the various smarty plugins handled by this class - * - * @return \TheliaSmarty\Template\SmartyPluginDescriptor[] smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('block', 'postage', $this, 'postage') - ); - } - - /** - * @return null|Request - */ - protected function getCurrentRequest() - { - return $this->requestStack->getCurrentRequest(); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/DataAccessFunctions.php b/local/modules/modules/TheliaSmarty/Template/Plugins/DataAccessFunctions.php deleted file mode 100644 index 0dd8fc90..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/DataAccessFunctions.php +++ /dev/null @@ -1,961 +0,0 @@ - - * - */ -class DataAccessFunctions extends AbstractSmartyPlugin -{ - /** @var SecurityContext */ - private $securityContext; - - /** @var ParserContext */ - protected $parserContext; - - /** @var RequestStack */ - protected $requestStack; - - /** @var EventDispatcherInterface */ - protected $dispatcher; - - /** @var TaxEngine */ - protected $taxEngine; - - /** @var CouponManager */ - protected $couponManager; - - private static $dataAccessCache = array(); - - public function __construct( - RequestStack $requestStack, - SecurityContext $securityContext, - TaxEngine $taxEngine, - ParserContext $parserContext, - EventDispatcherInterface $dispatcher, - CouponManager $couponManager - ) { - $this->securityContext = $securityContext; - $this->parserContext = $parserContext; - $this->requestStack = $requestStack; - $this->dispatcher = $dispatcher; - $this->taxEngine = $taxEngine; - $this->couponManager = $couponManager; - } - - /** - * Provides access to the current logged administrator attributes using the accessors. - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function adminDataAccess($params, &$smarty) - { - return $this->dataAccess("Admin User", $params, $this->securityContext->getAdminUser()); - } - - /** - * Provides access to the current logged customer attributes thought the accessor - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function customerDataAccess($params, &$smarty) - { - return $this->dataAccess("Customer User", $params, $this->securityContext->getCustomerUser()); - } - - /** - * Provides access to an attribute of the current product - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function productDataAccess($params, &$smarty) - { - $productId = $this->getRequest()->get('product_id'); - - if ($productId !== null) { - return $this->dataAccessWithI18n( - "Product", - $params, - ProductQuery::create()->filterByPrimaryKey($productId) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the current category - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function categoryDataAccess($params, &$smarty) - { - $categoryId = $this->getRequest()->get('category_id'); - - if ($categoryId === null) { - $productId = $this->getRequest()->get('product_id'); - - if ($productId !== null) { - if (null !== $product = ProductQuery::create()->findPk($productId)) { - $categoryId = $product->getDefaultCategoryId(); - } - } - } - - if ($categoryId !== null) { - return $this->dataAccessWithI18n( - "Category", - $params, - CategoryQuery::create()->filterByPrimaryKey($categoryId) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the current content - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function contentDataAccess($params, &$smarty) - { - $contentId = $this->getRequest()->get('content_id'); - - if ($contentId !== null) { - return $this->dataAccessWithI18n( - "Content", - $params, - ContentQuery::create()->filterByPrimaryKey($contentId) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the current folder - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function folderDataAccess($params, &$smarty) - { - $folderId = $this->getRequest()->get('folder_id'); - - if ($folderId === null) { - $contentId = $this->getRequest()->get('content_id'); - - if ($contentId !== null) { - if (null !== $content = ContentQuery::create()->findPk($contentId)) { - $folderId = $content->getDefaultFolderId(); - } - } - } - - if ($folderId !== null) { - return $this->dataAccessWithI18n( - "Folder", - $params, - FolderQuery::create()->filterByPrimaryKey($folderId) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the current brand - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function brandDataAccess($params, &$smarty) - { - $brandId = $this->getRequest()->get('brand_id'); - - if ($brandId === null) { - $productId = $this->getRequest()->get('product_id'); - - if ($productId !== null) { - if (null !== $product = ProductQuery::create()->findPk($productId)) { - $brandId = $product->getBrandId(); - } - } - } - - if ($brandId !== null) { - return $this->dataAccessWithI18n( - "Brand", - $params, - BrandQuery::create()->filterByPrimaryKey($brandId) - ); - } - - return ''; - } - - - /** - * Provides access to an attribute of the current currency - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function currencyDataAccess($params, $smarty) - { - $currency = $this->getSession()->getCurrency(); - - if ($currency) { - return $this->dataAccessWithI18n( - "Currency", - $params, - CurrencyQuery::create()->filterByPrimaryKey($currency->getId()), - array("NAME") - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the default country - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function countryDataAccess($params, $smarty) - { - switch ($params["ask"]) { - case "default": - return $this->dataAccessWithI18n( - "defaultCountry", - $params, - CountryQuery::create()->filterByByDefault(1)->limit(1) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the cart - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function cartDataAccess($params, $smarty) - { - /** @var Country $taxCountry */ - if (array_key_exists('currentCountry', self::$dataAccessCache)) { - $taxCountry = self::$dataAccessCache['currentCountry']; - } else { - $taxCountry = $this->taxEngine->getDeliveryCountry(); - self::$dataAccessCache['currentCountry'] = $taxCountry; - } - - /** @var State $taxState */ - if (array_key_exists('currentState', self::$dataAccessCache)) { - $taxState = self::$dataAccessCache['currentState']; - } else { - $taxState = $this->taxEngine->getDeliveryState(); - self::$dataAccessCache['currentState'] = $taxState; - } - - /** @var Cart $cart */ - $cart = $this->getSession()->getSessionCart($this->dispatcher); - - $result = ""; - switch ($params["attr"]) { - case "count_product": - case "product_count": - $result = $cart->getCartItems()->count(); - break; - case "count_item": - case "item_count": - $count_allitem = 0; - foreach ($cart->getCartItems() as $cartItem) { - $count_allitem += $cartItem->getQuantity(); - } - $result = $count_allitem; - break; - case "total_price": - case "total_price_with_discount": - $result = $cart->getTotalAmount(true); - break; - case "total_price_without_discount": - $result = $cart->getTotalAmount(false); - break; - case "total_taxed_price": - case "total_taxed_price_with_discount": - $result = $cart->getTaxedAmount($taxCountry, true, $taxState); - break; - case "total_taxed_price_without_discount": - $result = $cart->getTaxedAmount($taxCountry, false, $taxState); - break; - case "is_virtual": - case "contains_virtual_product": - $result = $cart->isVirtual(); - break; - case "total_vat": - case 'total_tax_amount': - $result = $cart->getTotalVAT($taxCountry); - break; - case "weight": - $result = $cart->getWeight(); - break; - } - - return $result; - } - - public function couponDataAccess($params, &$smarty) - { - /** @var Order $order */ - $order = $this->getSession()->getOrder(); - $attribute = $this->getNormalizedParam($params, array('attribute', 'attrib', 'attr')); - - switch ($attribute) { - case 'has_coupons': - return count($this->couponManager->getCouponsKept()) > 0; - case 'coupon_count': - return count($this->couponManager->getCouponsKept()); - case 'coupon_list': - $orderCoupons = []; - /** @var CouponInterface $coupon */ - foreach($this->couponManager->getCouponsKept() as $coupon) { - $orderCoupons[] = $coupon->getCode(); - } - return $orderCoupons; - case 'is_delivery_free': - return $this->couponManager->isCouponRemovingPostage($order); - } - - throw new \InvalidArgumentException(sprintf("%s has no '%s' attribute", 'Order', $attribute)); - } - - /** - * Provides access to an attribute of the current order - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function orderDataAccess($params, &$smarty) - { - /** @var Order $order */ - $order = $this->getSession()->getOrder(); - $attribute = $this->getNormalizedParam($params, array('attribute', 'attrib', 'attr')); - switch ($attribute) { - case 'untaxed_postage': - return $order->getUntaxedPostage(); - case 'postage': - return $order->getPostage(); - case 'postage_tax': - return $order->getPostageTax(); - case 'discount': - return $order->getDiscount(); - case 'delivery_address': - return $order->getChoosenDeliveryAddress(); - case 'invoice_address': - return $order->getChoosenInvoiceAddress(); - case 'delivery_module': - return $order->getDeliveryModuleId(); - case 'payment_module': - return $order->getPaymentModuleId(); - case 'has_virtual_product': - return $order->hasVirtualProduct(); - - } - - throw new \InvalidArgumentException(sprintf("%s has no '%s' attribute", 'Order', $attribute)); - } - - /** - * Provides access to an attribute of the current language - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - - public function langDataAccess($params, $smarty) - { - return $this->dataAccess("Lang", $params, $this->getSession()->getLang()); - } - - public function configDataAccess($params, $smarty) - { - $key = $this->getParam($params, 'key', false); - - if ($key === false) { - return null; - } - - $default = $this->getParam($params, 'default', ''); - - return ConfigQuery::read($key, $default); - } - - /** - * Provides access to a module configuration value - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the configuration value - */ - - public function moduleConfigDataAccess($params, $smarty) - { - $key = $this->getParam($params, 'key', false); - $moduleCode = $this->getParam($params, 'module', false); - $locale = $this->getParam($params, 'locale'); - - if (null === $locale) { - $locale = $this->getSession()->getLang()->getLocale(); - } - - if ($key === false || $moduleCode === false) { - return null; - } - - $default = $this->getParam($params, 'default', ''); - - if (null !== $module = ModuleQuery::create()->findOneByCode($moduleCode)) { - return ModuleConfigQuery::create() - ->getConfigValue( - $module->getId(), - $key, - $default, - $locale - ); - } else { - Tlog::getInstance()->addWarning( - sprintf( - "Module code '%s' not found in module-config Smarty function", - $moduleCode - ) - ); - - $value = $default; - } - - return $value; - } - - /** - * Provides access to sales statistics - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - - public function statsAccess($params, $smarty) - { - if (false === array_key_exists("key", $params)) { - throw new \InvalidArgumentException(sprintf("missing key attribute in stats access function")); - } - if (false === array_key_exists("startDate", $params) || $params['startDate'] === '') { - throw new \InvalidArgumentException(sprintf("missing startDate attribute in stats access function")); - } - if (false === array_key_exists("endDate", $params) || $params['endDate'] === '') { - throw new \InvalidArgumentException(sprintf("missing endDate attribute in stats access function")); - } - - if (false !== array_key_exists("includeShipping", $params) && $params['includeShipping'] == 'false') { - $includeShipping = false; - } else { - $includeShipping = true; - } - - if ($params['startDate'] == 'today') { - $startDate = new \DateTime(); - $startDate->setTime(0, 0, 0); - } elseif ($params['startDate'] == 'yesterday') { - $startDate = new \DateTime(); - $startDate->setTime(0, 0, 0); - $startDate->modify('-1 day'); - } elseif ($params['startDate'] == 'this_month') { - $startDate = new \DateTime(); - $startDate->modify('first day of this month'); - $startDate->setTime(0, 0, 0); - } elseif ($params['startDate'] == 'last_month') { - $startDate = new \DateTime(); - $startDate->modify('first day of last month'); - $startDate->setTime(0, 0, 0); - } elseif ($params['startDate'] == 'this_year') { - $startDate = new \DateTime(); - $startDate->modify('first day of January this year'); - $startDate->setTime(0, 0, 0); - } elseif ($params['startDate'] == 'last_year') { - $startDate = new \DateTime(); - $startDate->modify('first day of January last year'); - $startDate->setTime(0, 0, 0); - } else { - try { - $startDate = new \DateTime($params['startDate']); - } catch (\Exception $e) { - throw new \InvalidArgumentException( - sprintf("invalid startDate attribute '%s' in stats access function", $params['startDate']) - ); - } - } - - if ($params['endDate'] == 'today') { - $endDate = new \DateTime(); - $endDate->setTime(0, 0, 0); - } elseif ($params['endDate'] == 'yesterday') { - $endDate = new \DateTime(); - $endDate->setTime(0, 0, 0); - $endDate->modify('-1 day'); - } elseif ($params['endDate'] == 'this_month') { - $endDate = new \DateTime(); - $endDate->modify('last day of this month'); - $endDate->setTime(0, 0, 0); - } elseif ($params['endDate'] == 'last_month') { - $endDate = new \DateTime(); - $endDate->modify('last day of last month'); - $endDate->setTime(0, 0, 0); - } elseif ($params['endDate'] == 'this_year') { - $endDate = new \DateTime(); - $endDate->modify('last day of December this year'); - $endDate->setTime(0, 0, 0); - } elseif ($params['endDate'] == 'last_year') { - $endDate = new \DateTime(); - $endDate->modify('last day of December last year'); - $endDate->setTime(0, 0, 0); - } else { - try { - $endDate = new \DateTime($params['endDate']); - } catch (\Exception $e) { - throw new \InvalidArgumentException( - sprintf("invalid endDate attribute '%s' in stats access function", $params['endDate']) - ); - } - } - - switch ($params['key']) { - case 'sales': - return OrderQuery::getSaleStats($startDate, $endDate, $includeShipping); - break; - case 'orders': - return OrderQuery::getOrderStats($startDate, $endDate, array(1,2,3,4)); - break; - } - - throw new \InvalidArgumentException( - sprintf("invalid key attribute '%s' in stats access function", $params['key']) - ); - } - - /** - * Retrieve meta data associated to an element - * - * params should contain at least key an id attributes. Thus it will return - * an array of associated data. - * - * If meta argument is specified then it will return an unique value. - * - * @param array $params - * @param \Smarty $smarty - * - * @throws \InvalidArgumentException - * - * @return string|array|null - */ - public function metaAccess($params, $smarty) - { - $meta = $this->getParam($params, 'meta', null); - $key = $this->getParam($params, 'key', null); - $id = $this->getParam($params, 'id', null); - - $cacheKey = sprintf('meta_%s_%s_%s', $meta, $key, $id); - - $out = null; - - if (array_key_exists($cacheKey, self::$dataAccessCache)) { - return self::$dataAccessCache[$cacheKey]; - } - - if ($key !== null && $id !== null) { - if ($meta === null) { - $out = MetaDataQuery::getAllVal($key, (int) $id); - } else { - $out = MetaDataQuery::getVal($meta, $key, (int) $id); - } - } else { - throw new \InvalidArgumentException("key and id arguments are required in meta access function"); - } - - self::$dataAccessCache[$cacheKey] = $out; - - if (!empty($params['out'])) { - $smarty->assign($params['out'], $out); - - return $out !== null ? true : false; - } else { - if (is_array($out)) { - throw new \InvalidArgumentException('The argument "out" is required if the meta value is an array'); - } - - return $out; - } - } - - /** - * @param $objectLabel - * @param $params - * @param ModelCriteria $search - * @param array $columns - * @param null $foreignTable - * @param string $foreignKey - * - * @return string - */ - protected function dataAccessWithI18n( - $objectLabel, - $params, - ModelCriteria $search, - $columns = array('TITLE', 'CHAPO', 'DESCRIPTION', 'POSTSCRIPTUM'), - $foreignTable = null, - $foreignKey = 'ID' - ) { - if (array_key_exists('data_' . $objectLabel, self::$dataAccessCache)) { - $data = self::$dataAccessCache['data_' . $objectLabel]; - } else { - $lang = $this->getNormalizedParam($params, array('lang')); - if ($lang === null) { - $lang = $this->getSession()->getLang()->getId(); - } - - ModelCriteriaTools::getI18n( - false, - $lang, - $search, - $this->getSession()->getLang()->getLocale(), - $columns, - $foreignTable, - $foreignKey, - true - ); - - $data = $search->findOne(); - - self::$dataAccessCache['data_' . $objectLabel] = $data; - } - - if ($data !== null) { - $noGetterData = array(); - - foreach ($columns as $column) { - $noGetterData[$column] = $data->getVirtualColumn('i18n_' . $column); - } - - return $this->dataAccess($objectLabel, $params, $data, $noGetterData); - } else { - throw new NotFoundHttpException(); - } - } - - /** - * @param $objectLabel - * @param $params - * @param $data - * @param array $noGetterData - * - * @return string - * @throws \InvalidArgumentException - */ - protected function dataAccess($objectLabel, $params, $data, $noGetterData = array()) - { - $attribute = $this->getNormalizedParam($params, array('attribute', 'attrib', 'attr')); - - if (!empty($attribute)) { - if (null != $data) { - $keyAttribute = strtoupper($attribute); - if (array_key_exists($keyAttribute, $noGetterData)) { - return $noGetterData[$keyAttribute]; - } - - $getter = sprintf("get%s", $this->underscoreToCamelcase($attribute)); - if (method_exists($data, $getter)) { - $return = $data->$getter(); - - if ($return instanceof \DateTime) { - if (array_key_exists("format", $params)) { - $format = $params["format"]; - } else { - $format = DateTimeFormat::getInstance($this->getRequest())->getFormat( - array_key_exists("output", $params) ? $params["output"] : null - ); - } - - $return = $return->format($format); - } - - return $return; - } - - throw new \InvalidArgumentException(sprintf("%s has no '%s' attribute", $objectLabel, $attribute)); - } - } - - return ''; - } - - /** - * Transcode an underscored string into a camel-cased string, eg. default_folder into DefaultFolder - * - * @param string $str the string to convert from underscore to camel-case - * - * @return string the camel cased string. - */ - private function underscoreToCamelcase($str) - { - // Split string in words. - $words = explode('_', strtolower($str)); - - $return = ''; - - foreach ($words as $word) { - $return .= ucfirst(trim($word)); - } - - return $return; - } - - - - - /** - * Provides access to the uploaded store-related images (such as logo or favicon) - * - * @param array $params - * @param string $content - * @param \Smarty_Internal_Template $template - * @param boolean $repeat - * @return string|null - */ - public function storeMediaDataAccess($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - $type = $this->getParam($params, 'type', null); - $allowedTypes = ['favicon', 'logo', 'banner']; - - - if ($type !== null && in_array($type, $allowedTypes)) { - switch ($type) { - case 'favicon': - $configKey = 'favicon_file'; - $defaultImageName = 'favicon.png'; - break; - case 'logo': - $configKey = 'logo_file'; - $defaultImageName = 'logo.png'; - break; - case 'banner': - $configKey = 'banner_file'; - $defaultImageName = 'banner.jpg'; - break; - } - - $uploadDir = ConfigQuery::read('images_library_path'); - - if ($uploadDir === null) { - $uploadDir = THELIA_LOCAL_DIR . 'media' . DS . 'images'; - } else { - $uploadDir = THELIA_ROOT . $uploadDir; - } - - $uploadDir .= DS . 'store'; - - - $imageFileName = ConfigQuery::read($configKey); - - $skipImageTransform = false; - - // If we couldn't find the image path in the config table or if it doesn't exist, we take the default image provided. - if ($imageFileName == null) { - $imageSourcePath = $uploadDir . DS . $defaultImageName; - } else { - $imageSourcePath = $uploadDir . DS . $imageFileName; - - if (!file_exists($imageSourcePath)) { - Tlog::getInstance()->error(sprintf('Source image file %s does not exists.', $imageSourcePath)); - $imageSourcePath = $uploadDir . DS . $defaultImageName; - } - - if ($type == 'favicon') { - $extension = pathinfo($imageSourcePath, PATHINFO_EXTENSION); - if ($extension == 'ico') { - $mime_type = 'image/x-icon'; - - // If the media is a .ico favicon file, we skip the image transformations, - // as transformations on .ico file are not supported by Thelia. - $skipImageTransform = true; - } else { - $mime_type = 'image/png'; - } - - $template->assign('MEDIA_MIME_TYPE', $mime_type); - } - } - - $event = new ImageEvent(); - $event->setSourceFilepath($imageSourcePath) - ->setCacheSubdirectory('store'); - - - if (!$skipImageTransform) { - switch ($this->getParam($params, 'resize_mode', null)) { - case 'crop': - $resize_mode = \Thelia\Action\Image::EXACT_RATIO_WITH_CROP; - break; - - case 'borders': - $resize_mode = \Thelia\Action\Image::EXACT_RATIO_WITH_BORDERS; - break; - - case 'none': - default: - $resize_mode = \Thelia\Action\Image::KEEP_IMAGE_RATIO; - } - - // Prepare transformations - $width = $this->getParam($params, 'width', null); - $height = $this->getParam($params, 'height', null); - $rotation = $this->getParam($params, 'rotation', null); - - if (!is_null($width)) { - $event->setWidth($width); - } - if (!is_null($height)) { - $event->setHeight($height); - } - $event->setResizeMode($resize_mode); - if (!is_null($rotation)) { - $event->setRotation($rotation); - } - } - - $this->dispatcher->dispatch(TheliaEvents::IMAGE_PROCESS, $event); - - $template->assign('MEDIA_URL', $event->getFileUrl()); - } - - if (isset($content)) { - return $content; - } - - return null; - } - - - - - /** - * @inheritdoc - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'admin', $this, 'adminDataAccess'), - new SmartyPluginDescriptor('function', 'customer', $this, 'customerDataAccess'), - new SmartyPluginDescriptor('function', 'product', $this, 'productDataAccess'), - new SmartyPluginDescriptor('function', 'category', $this, 'categoryDataAccess'), - new SmartyPluginDescriptor('function', 'content', $this, 'contentDataAccess'), - new SmartyPluginDescriptor('function', 'folder', $this, 'folderDataAccess'), - new SmartyPluginDescriptor('function', 'brand', $this, 'brandDataAccess'), - new SmartyPluginDescriptor('function', 'currency', $this, 'currencyDataAccess'), - new SmartyPluginDescriptor('function', 'country', $this, 'countryDataAccess'), - new SmartyPluginDescriptor('function', 'lang', $this, 'langDataAccess'), - new SmartyPluginDescriptor('function', 'cart', $this, 'cartDataAccess'), - new SmartyPluginDescriptor('function', 'order', $this, 'orderDataAccess'), - new SmartyPluginDescriptor('function', 'config', $this, 'configDataAccess'), - new SmartyPluginDescriptor('function', 'stats', $this, 'statsAccess'), - new SmartyPluginDescriptor('function', 'meta', $this, 'metaAccess'), - new SmartyPluginDescriptor('function', 'module_config', $this, 'moduleConfigDataAccess'), - new SmartyPluginDescriptor('function', 'coupon', $this, 'couponDataAccess'), - - new SmartyPluginDescriptor('block', 'local_media', $this, 'storeMediaDataAccess'), - ); - } - - /** - * @return Request - */ - protected function getRequest() - { - return $this->requestStack->getCurrentRequest(); - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->getRequest()->getSession(); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Esi.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Esi.php deleted file mode 100644 index 6bee285c..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Esi.php +++ /dev/null @@ -1,73 +0,0 @@ - - */ -class Esi extends AbstractSmartyPlugin -{ - /** @var EsiFragmentRenderer */ - protected $esiFragmentRender; - - /** @var RequestStack */ - protected $requestStack; - - public function __construct(EsiFragmentRenderer $esiFragmentRenderer, RequestStack $requestStack) - { - $this->esiFragmentRender = $esiFragmentRenderer; - $this->requestStack = $requestStack; - } - - public function renderEsi($params, $template = null) - { - $path = $this->getParam($params, 'path'); - $alt = $this->getParam($params, 'alt'); - $ignore_errors = $this->getParam($params, 'ignore_errors'); - $comment = $this->getParam($params, 'comment'); - - if (null === $path) { - return; - } - - $response = $this->esiFragmentRender->render($path, $this->requestStack->getCurrentRequest(), array( - 'alt' => $alt, - 'ignore_errors' => $ignore_errors, - 'comment' => $comment - )); - - if (!$response->isSuccessful()) { - return null; - } - - return $response->getContent(); - } - - /** - * @return array an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'render_esi', $this, 'renderEsi') - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/FlashMessage.php b/local/modules/modules/TheliaSmarty/Template/Plugins/FlashMessage.php deleted file mode 100644 index 7ad9a5a2..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/FlashMessage.php +++ /dev/null @@ -1,155 +0,0 @@ -{$MESSAGE} - * {/flash} - * ``` - * Class Form - * - * @package Thelia\Core\Template\Smarty\Plugins - * @author Guillaume MOREL - * @author Julien Chanséaume - */ -class FlashMessage extends AbstractSmartyPlugin -{ - /** @var RequestStack Request service */ - protected $requestStack; - - /** @var FlashMessageBag $results */ - protected $results; - - /** @var Translator */ - protected $translator; - - public function __construct(RequestStack $requestStack, Translator $translator) - { - $this->requestStack = $requestStack; - $this->translator = $translator; - } - - /** - * Process the count function: executes a loop and return the number of items found - * - * @param array $params parameters array - * @param \Smarty_Internal_Template $template - * - * @return int the item count - * @throws \InvalidArgumentException if a parameter is missing - * - */ - public function hasFlashMessage( - $params, - /** @noinspection PhpUnusedParameterInspection */ - $template - ) { - $type = $this->getParam($params, 'type', null); - - if (null == $type) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'type' parameter in {hasflash} function arguments") - ); - } - - return $this->getSession()->getFlashBag()->has($type); - } - - /** - * Get FlashMessage - * And clean session from this key - * - * @param array $params Block parameters - * @param mixed $content Block content - * @param \Smarty_Internal_Template $template Template - * @param bool $repeat Control how many times - * the block is displayed - * - * @return mixed - */ - public function getFlashMessage($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - $type = $this->getParam($params, 'type', false); - - if (null === $content) { - $this->results = new FlashMessageBag(); - - if (false === $type) { - $this->results->addAll($this->getSession()->getFlashBag()->all()); - } else { - $this->results->add( - $type, - $this->getSession()->getFlashBag()->get($type, []) - ); - } - - if ($this->results->isEmpty()) { - $repeat = false; - } - } else { - $this->results->next(); - } - - if ($this->results->valid()) { - $message = $this->results->current(); - $template->assign("TYPE", $message["type"]); - $template->assign("MESSAGE", $message["message"]); - - $repeat = true; - } - - if ($content !== null) { - if ($this->results->isEmpty()) { - $content = ""; - } - - return $content; - } - - return ''; - } - - /** - * @return array an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return [ - new SmartyPluginDescriptor("function", "hasflash", $this, "hasFlashMessage"), - new SmartyPluginDescriptor("block", "flash", $this, "getFlashMessage") - ]; - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->requestStack->getCurrentRequest()->getSession(); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Form.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Form.php deleted file mode 100644 index 335b79a4..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Form.php +++ /dev/null @@ -1,1029 +0,0 @@ - find form named myForm, - * create an instance and assign this instanciation into smarty variable. Form must be declare into - * config using tag - * - * - {form_field form=$form.fieldName} {/form_field} This block find info into the Form field containing by - * the form paramter. This field must be an instance of FormView. fieldName is the name of your field. This block - * can output these info : - * * $name => name of yout input - * * $value => value for your input - * * $label => label for your input - * * $error => boolean for know if there is error for this field - * * $attr => all your attribute for your input (define when you construct programmatically you form) - * - * - {form_error form=$form.fieldName} ... {/form_error} Display this block if there are errors on this field. - * fieldName is the name of your field - * - * Class Form - * @package Thelia\Core\Template\Smarty\Plugins - */ -class Form extends AbstractSmartyPlugin -{ - const COLLECTION_TYPE_NAME = "collection"; - - private static $taggedFieldsStack = null; - private static $taggedFieldsStackPosition = null; - - /** @var ContainerInterface */ - protected $container; - - /** @var ParserContext $parserContext */ - protected $parserContext; - - /** @var ParserInterface $parser */ - protected $parser; - - protected $formDefinition = array(); - - /** @var array|TheliaFormFactoryInterface */ - protected $formFactory = array(); - - /** @var array The form collection stack */ - protected $formCollectionStack = array(); - - /** @var array Counts collection loop in page */ - protected $formCollectionCount = array(); - - public function __construct( - TheliaFormFactoryInterface $formFactory, - ParserContext $parserContext, - ParserInterface $parser - ) { - $this->formFactory = $formFactory; - $this->parserContext = $parserContext; - $this->parser = $parser; - } - - public function setFormDefinition($formDefinition) - { - foreach ($formDefinition as $name => $className) { - if (array_key_exists($name, $this->formDefinition)) { - throw new \InvalidArgumentException( - sprintf("%s form name already exists for %s class", $name, $className) - ); - } - - $this->formDefinition[$name] = $className; - } - } - - public function generateForm($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - if ($repeat) { - $name = $this->getParam($params, 'name'); - $formType = $this->getParam($params, 'type', 'form'); - - if (null == $name) { - $name = "thelia.empty"; - } - - if (!isset($this->formDefinition[$name])) { - throw new ElementNotFoundException(sprintf("%s form does not exists", $name)); - } - - $formClass = $this->formDefinition[$name]; - - // Check if parser context contains our form - $instance = $this->parserContext->getForm($name, $formClass, $formType); - - if (null === $instance) { - // If not, create a new instance - $instance = $this->formFactory->createForm($name); - } - - // Set the current form - $this->parserContext->pushCurrentForm($instance); - - $instance->createView(); - - $template->assign("form", $instance); - $template->assign("form_name", $instance->getName()); - - $template->assign("form_error", $instance->hasError() ? true : false); - $template->assign("form_error_message", $instance->getErrorMessage()); - } else { - $this->parserContext->popCurrentForm(); - - return $content; - } - } - - /** - * @param \Smarty_Internal_Template $template - * @param string $fieldName - * @param string $fieldValue - * @param string $fieldType - * @param array $fieldVars - * @param int $total_value_count - */ - protected function assignFieldValues( - $template, - $fieldName, - $fieldValue, - $fieldType, - $fieldVars, - $total_value_count = 1 - ) { - $template->assign("name", $fieldName); - $template->assign("value", $fieldValue); - $template->assign("data", $fieldVars['data']); - - $template->assign("type", $fieldType); - - $template->assign("checked", isset($fieldVars['data']) ? $fieldVars['data'] : false); - $template->assign("choices", isset($fieldVars['choices']) ? $fieldVars['choices'] : false); - $template->assign("multiple", isset($fieldVars['multiple']) ? $fieldVars['multiple'] : false); - $template->assign("disabled", isset($fieldVars['disabled']) ? $fieldVars['disabled'] : false); - $template->assign("read_only", isset($fieldVars['read_only']) ? $fieldVars['read_only'] : false); - $template->assign("max_length", isset($fieldVars['max_length']) ? $fieldVars['max_length'] : false); - $template->assign('required', isset($fieldVars['required']) ? $fieldVars['required'] : false); - - $template->assign("label", $fieldVars["label"]); - $template->assign("label_attr", $fieldVars["label_attr"]); - - $template->assign('total_value_count', $total_value_count); - - /** @var FormErrorIterator $errors */ - $errors = $fieldVars["errors"]; - if ($errors) { - $template->assign("error", $errors->count() ? true : false); - $this->assignFieldErrorVars($template, $errors); - } - - $attr = array(); - - foreach ($fieldVars["attr"] as $key => $value) { - $attr[] = sprintf('%s="%s"', $key, $value); - } - - $template->assign("attr", implode(" ", $attr)); - $template->assign("attr_list", $fieldVars["attr"]); - } - - /** - * @param \Smarty_Internal_Template $template - * @param FormConfigInterface $formFieldConfig - * @param FormView $formFieldView - */ - protected function assignFormTypeValues($template, $formFieldConfig, $formFieldView) - { - $formFieldType = $formFieldConfig->getType()->getInnerType(); - - /* access to choices */ - if ($formFieldType instanceof ChoiceType) { - $template->assign("choices", $formFieldView->vars['choices']); - } - - /* access to collections */ - if ($formFieldType instanceof CollectionType) { - if (true === $formFieldConfig->getOption('prototype')) { - } else { - /* access to choices */ - if (isset($formFieldView->vars['choices'])) { - $template->assign("choices", $formFieldView->vars['choices']); - } - } - } - - /* access to date */ - if ($formFieldType instanceof DateType || $formFieldType instanceof DateTimeType || $formFieldType instanceof BirthdayType) { - if ('choice' === $formFieldConfig->getOption('widget')) { - /* access to years */ - if ($formFieldConfig->getOption('years')) { - $formFieldView->vars['years'] = $formFieldConfig->getOption('years'); - $template->assign("years", $formFieldView->vars['years']); - } - - /* access to month */ - if ($formFieldConfig->getOption('months')) { - $formFieldView->vars['months'] = $formFieldConfig->getOption('months'); - $template->assign("months", $formFieldView->vars['months']); - } - - /* access to days */ - if ($formFieldConfig->getOption('days')) { - $formFieldView->vars['days'] = $formFieldConfig->getOption('days'); - $template->assign("days", $formFieldView->vars['days']); - } - - /* access to empty_value */ - if ($formFieldConfig->getOption('empty_value')) { - $formFieldView->vars['empty_value'] = $formFieldConfig->getOption('empty_value'); - $template->assign("empty_value", $formFieldView->vars['empty_value']); - } - } - } - - /* access to thelia type */ - if ($formFieldType instanceof TheliaType) { - $template->assign("formType", $formFieldView->vars['type']); - - switch ($formFieldView->vars['type']) { - case "choice": - if (!isset($formFieldView->vars['options']['choices']) || - !is_array($formFieldView->vars['options']['choices']) - ) { - //throw new - } - $choices = array(); - foreach ($formFieldView->vars['options']['choices'] as $value => $choice) { - $choices[] = new ChoiceView($value, $value, $choice); - } - $template->assign("choices", $choices); - break; - } - } - } - - /** - * @param array $params - * @param \Smarty_Internal_Template $template - */ - protected function processFormField($params, $template) - { - $formFieldView = $this->getFormFieldView($params); - $formFieldConfig = $this->getFormFieldConfig($params); - - $formFieldType = $formFieldConfig->getType()->getName(); - - $this->assignFormTypeValues($template, $formFieldConfig, $formFieldView); - - $value = $formFieldView->vars["value"]; - - $key = $this->getParam($params, 'value_key', null); - - // We (may) have a collection - if ($key !== null) { - // Force array - if (!is_array($value)) { - $value = array(); - } - - // If the field is not found, use an empty value - $name = sprintf("%s[%s]", $formFieldView->vars["full_name"], $key); - - $val = $value[$key]; - - // For collection types, the type of field is defined in the 'type' option. - // We will use this instead of the 'collection' type - $formFieldType = $formFieldConfig->getType()->getInnerType(); - - if ($formFieldType instanceof CollectionType) { - $formFieldType = $formFieldConfig->getOption('type'); - } - - $this->assignFieldValues( - $template, - $name, - $val, - $formFieldType, - $formFieldView->vars, - count($formFieldView->children) - ); - } else { - $this->assignFieldValues( - $template, - $formFieldView->vars["full_name"], - $formFieldView->vars["value"], - $formFieldType, - $formFieldView->vars - ); - } - - $formFieldView->setRendered(); - } - - public function renderFormField($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - if ($repeat) { - $this->processFormField($params, $template); - } else { - return $content; - } - } - - /** - * @param array $params - * @param string $content - * @param string $templateFile - * @param \Smarty_Internal_Template $template - * @return string - */ - protected function automaticFormFieldRendering($params, $content, $template, $templateFile) - { - $data = ''; - - $templateStyle = $this->getParam($params, 'template', 'standard'); - - $snippet_path = sprintf( - '%s' . DS . 'forms' . DS . '%s' . DS . '%s.html', - $this->parser->getTemplateDefinition()->getAbsolutePath(), - $templateStyle, - $templateFile - ); - - if (false !== $snippet_content = file_get_contents($snippet_path)) { - $this->processFormField($params, $template); - - if (null === $form = $this->getParam($params, 'form', null)) { - $form = $this->parserContext->getCurrentForm(); - } - - $field_name = $this->getParam($params, 'field', false); - $field_extra_class = $this->getParam($params, 'extra_class', ''); - $field_extra_class = $this->getParam($params, 'extra_classes', $field_extra_class); - $field_no_standard_classes = $this->getParam($params, 'no_standard_classes', false); - $field_value = $this->getParam($params, 'value', ''); - $show_label = $this->getParam($params, 'show_label', true); - $value_key = $this->getParam($params, 'value_key', false); - - $template->assign([ - 'content' => trim($content), - 'form' => $form, - 'field_name' => $field_name, - 'field_extra_class' => $field_extra_class, - 'field_no_standard_classes' => $field_no_standard_classes, - 'field_value' => $field_value, - 'field_template' => $templateStyle, - 'value_key' => $value_key, - 'show_label' => $show_label, - ]); - - $data = $template->fetch(sprintf('string:%s', $snippet_content)); - } - - return $data; - } - - /** - * @param $params - * @param $content - * @param \Smarty_Internal_Template $template - * @param $repeat - * @return mixed - */ - public function customFormFieldRendering($params, $content, $template, &$repeat) - { - if (!$repeat) { - return $this->automaticFormFieldRendering($params, $content, $template, 'form-field-renderer'); - } - } - - public function standardFormFieldRendering($params, \Smarty_Internal_Template $template) - { - return $this->automaticFormFieldRendering($params, '', $template, 'form-field-renderer'); - } - - public function standardFormFieldAttributes($params, \Smarty_Internal_Template $template) - { - return $this->automaticFormFieldRendering($params, '', $template, 'form-field-attributes-renderer'); - } - - public function renderTaggedFormFields($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - if (null === $content) { - self::$taggedFieldsStack = $this->getFormFieldsFromTag($params); - self::$taggedFieldsStackPosition = 0; - } else { - self::$taggedFieldsStackPosition++; - } - - if (isset(self::$taggedFieldsStack[self::$taggedFieldsStackPosition])) { - $field = self::$taggedFieldsStack[self::$taggedFieldsStackPosition]; - - $this->assignFieldValues( - $template, - $field['view']->vars["full_name"], - $field['view']->vars["value"], - $field['config']->getType()->getName(), - $field['view']->vars - ); - - $this->assignFormTypeValues($template, $field['config'], $field['view']); - - $field['view']->setRendered(); - - $repeat = true; - } - - if (!$repeat) { - self::$taggedFieldsStack = null; - self::$taggedFieldsStackPosition = null; - } - - if (null !== $content) { - return $content; - } - } - - public function renderHiddenFormField($params, \Smarty_Internal_Template $template) - { - $attrFormat = '%s="%s"'; - $field = ''; - - $baseFormInstance = $this->getInstanceFromParams($params); - - $formView = $baseFormInstance->getView(); - - $return = ""; - - $exclude = explode(',', $this->getParam($params, 'exclude', '')); - - /** @var FormView $row */ - foreach ($formView->getIterator() as $row) { - // We have to exclude the fields for which value is defined in the template. - if ($baseFormInstance->isTemplateDefinedHiddenField($row) - || - in_array($row->vars['name'], $exclude) - ) { - continue; - } - - if ($this->isHidden($row) && $row->isRendered() === false) { - $attributeList = array(); - if (isset($row->vars["attr"])) { - foreach ($row->vars["attr"] as $attrKey => $attrValue) { - $attributeList[] = sprintf($attrFormat, $attrKey, $attrValue); - } - } - $return .= sprintf($field, $row->vars["full_name"], $row->vars["value"], implode(' ', $attributeList)); - } - } - - return $return; - } - - public function formEnctype($params, \Smarty_Internal_Template $template) - { - $instance = $this->getInstanceFromParams($params); - - $formView = $instance->getView(); - - if ($formView->vars["multipart"]) { - return sprintf('%s="%s"', "enctype", "multipart/form-data"); - } - } - - public function formError($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - $formFieldView = $this->getFormFieldView($params); - - /** @var FormErrorIterator $errors */ - $errors = $formFieldView->vars["errors"]; - - if (!$errors->count()) { - return ""; - } - - if ($repeat) { - $this->assignFieldErrorVars($template, $errors); - } else { - return $content; - } - } - - protected function assignFieldErrorVars(\Smarty_Internal_Template $template, FormErrorIterator $errors) - { - if ($errors->count()) { - $template->assign("message", $errors[0]->getMessage()); - $template->assign("parameters", $errors[0]->getMessageParameters()); - $template->assign("pluralization", $errors[0]->getMessagePluralization()); - } - } - - protected function isHidden(FormView $formView) - { - return array_search("hidden", $formView->vars["block_prefixes"]); - } - - /** - * @param $params - * @return FormView - * @throws \InvalidArgumentException - */ - protected function getFormFieldView($params) - { - $instance = $this->getInstanceFromParams($params); - - $fieldName = $this->getParam($params, 'field'); - - if (null == $fieldName) { - throw new \InvalidArgumentException("'field' parameter is missing"); - } - - $view = $this->retrieveField( - $fieldName, - $instance->getView(), - $instance->getName() - ); - - return $view; - } - - protected function getFormFieldsFromTag($params) - { - $instance = $this->getInstanceFromParams($params); - - $tag = $this->getParam($params, 'tag'); - - if (null == $tag) { - throw new \InvalidArgumentException("'tag' parameter is missing"); - } - - $viewList = array(); - foreach ($instance->getView() as $view) { - if (isset($view->vars['attr']['tag']) && $tag == $view->vars['attr']['tag']) { - $fieldData = $instance->getForm()->all()[$view->vars['name']]; - $viewList[] = array( - 'view' => $view, - 'config' => $fieldData->getConfig(), - ); - } - } - - return $viewList; - } - - /** - * @param $params - * @return FormConfigInterface - * @throws \InvalidArgumentException - */ - protected function getFormFieldConfig($params) - { - $instance = $this->getInstanceFromParams($params); - - $fieldName = $this->getParam($params, 'field'); - - if (null == $fieldName) { - throw new \InvalidArgumentException("'field' parameter is missing"); - } - - $fieldData = $this->retrieveField( - $fieldName, - $instance->getForm()->all(), - $instance->getName() - ); - - if (empty($fieldData)) { - throw new \InvalidArgumentException( - sprintf( - "Field name '%s' not found in form %s children", - $fieldName, - $instance->getName() - ) - ); - } - - return $fieldData->getConfig(); - } - - /** - * @param $params - * @return BaseForm - * @throws \InvalidArgumentException - */ - protected function getInstanceFromParams($params) - { - if (null === $instance = $this->getParam($params, 'form')) { - $instance = $this->parserContext->getCurrentForm(); - } - - if (null == $instance) { - throw new \InvalidArgumentException( - "Missing 'form' parameter in form arguments, and no current form was found." - ); - } - - if (!$instance instanceof BaseForm) { - throw new \InvalidArgumentException( - sprintf( - "form parameter in form_field block must be an instance of " . - "\Thelia\Form\BaseForm, instance of %s found", - get_class($instance) - ) - ); - } - - return $instance; - } - - /** - * @param $needle - * @param $haystack - * @param $formName - * @return \Symfony\Component\Form\Form - */ - protected function retrieveField($needle, $haystack, $formName) - { - $splitName = explode(".", $needle); - - foreach ($splitName as $level) { - if (empty($haystack[$level])) { - throw new \InvalidArgumentException( - sprintf("Field name '%s' not found in form %s", $needle, $formName) - ); - } - $haystack = $haystack[$level]; - } - - return $haystack; - } - - /** - * @param $params - * @param $name - * @param bool $throwException - * @return mixed|null - * - * Get a symfony form object form a function/block parameter - */ - protected function getSymfonyFormFromParams($params, $name, $throwException = false) - { - $sfForm = $this->getParam($params, $name); - - if (null === $sfForm && false === $throwException) { - return null; - } - - if (!$sfForm instanceof SymfonyForm) { - throw new \InvalidArgumentException( - sprintf( - "%s parameter must be an instance of " . - "\Symfony\Component\Form\Form, instance of %s found", - $name, - is_object($sfForm) ? get_class($sfForm) : gettype($sfForm) - ) - ); - } - - return $sfForm; - } - - /** - * @param $params - * @param $content - * @param \Smarty_Internal_Template $template - * @param $repeat - * @return mixed - * - * Loops around a form collection entries and assigns values to template - */ - public function renderFormCollection($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - /** - * Get parameters - */ - $form = $this->getInstanceFromParams($params); - $row = $this->getSymfonyFormFromParams($params, "row"); - $collection = $this->resolveCollection($this->getParam($params, "collection"), $form); - - $hash = $this->initializeCollection($form, $collection, $row); - - $limit = $this->getParam($params, "limit", -1); - - /** - * Check if it has a limit - */ - if (!preg_match("#^\-?\d+$#", $limit)) { - throw new \InvalidArgumentException( - sprintf( - "Invalid value for 'limit' parameter in 'form_collection'. '%s' given, integer expected", - $limit - ) - ); - } - - /** - * Then load stack and create the stack count - */ - $limit = (int)$limit; - $hasLimit = $limit >= 0; - - /** - * If we have reached the limit, stop - */ - $collectionLimit = $this->formCollectionCount[$hash]["limit"]; - - if (($hasLimit && $limit === $collectionLimit) || - null === $row = array_shift($this->formCollectionStack[$hash]) - ) { - $repeat = false; - - /** - * Reload stack limit - */ - $this->formCollectionCount[$hash]["limit"] = 0; - - return $content; - } - - /** - * Assign variables into the template - */ - $template->assign("row", $row); - $template->assign("collection_current", $this->formCollectionCount[$hash]["count"]++); - $template->assign("collection_count", $this->formCollectionCount[$hash]["total_count"]); - - /** - * Increment the current limit state - * Force the repeat - */ - $this->formCollectionCount[$hash]["limit"]++; - $repeat = true; - - /** - * ANd return the content - */ - - return $content; - } - - /** - * @param BaseForm $form - * @param SymfonyForm $field - * @return string - * - * Get definition, return hash - */ - protected function getFormStackHash(BaseForm $form, SymfonyForm $field = null) - { - $build = get_class($form) . ":" . $form->getType(); - - if (null !== $field) { - $build .= ":" . $this->buildFieldName($field); - } - - return md5($build); - } - - /** - * @param $collection - * @param BaseForm $form - * @return SymfonyForm - * - * Extract the collection object from the form - */ - protected function resolveCollection($collection, BaseForm $form) - { - if (null === $collection) { - throw new \InvalidArgumentException( - "Missing parameter 'collection' in 'form_collection" - ); - } - - $sfForm = $form->getForm(); - - if (!$sfForm->has($collection)) { - throw new \InvalidArgumentException( - sprintf( - "Field name '%s' not found in form %s children", - $collection, - $form->getName() - ) - ); - } - - /** - * Check that the field is a "collection" type - */ - $collectionConfig = $this->retrieveField( - $collection, - $sfForm->all(), - $form->getName() - ); - - $fieldType = $collectionConfig->getConfig()->getType(); - - if ($fieldType->getName() !== static::COLLECTION_TYPE_NAME) { - $baseFieldType = $fieldType; - $resolved = false; - - while (null !== $fieldType && !$resolved) { - if ($fieldType->getName() !== static::COLLECTION_TYPE_NAME) { - $fieldType = $fieldType->getParent(); - } - } - - if (!$resolved) { - throw new \LogicException( - sprintf( - "The field '%s' is not a collection, it's a '%s'." . - "You can't use it with the function 'form_collection' in form '%s'", - $collection, - $baseFieldType->getName(), - $form->getName() - ) - ); - } - } - - return $collectionConfig; - } - - /** - * @param $params - * @param $content - * @param \Smarty_Internal_Template $template - * @param $repeat - * @return string - * - * Injects a collection field variables into the parser - */ - public function renderFormCollectionField($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - if (!$repeat) { - return $content; - } - - $form = $this->getInstanceFromParams($params); - /** @var \Symfony\Component\Form\Form $row */ - $row = $this->getSymfonyFormFromParams($params, "row", true); - $field = $this->getParam($params, "field"); - - $formField = $this->retrieveField($field, $row->all(), $form->getName()); - - $formFieldConfig = $formField->getConfig(); - - $this->assignFieldValues( - $template, - $this->buildFieldName($formField), - $formField->getViewData(), - $formFieldConfig->getType(), - $this->findCollectionFieldFormView($form->getView(), $formField) - ); - - return ''; - } - - /** - * @param FormView $formView - * @param SymfonyForm $formField - * @return array - */ - protected function findCollectionFieldFormView(FormView $formView, SymfonyForm $formField) - { - $formFieldParentList = []; - - do { - // don't need to set first form name child - if (null === $formField->getParent()) { - break; - } - - $formFieldParentList[] = $formField->getConfig()->getName(); - - } while (null !== $formField = $formField->getParent()); - - $formFieldParentList = array_reverse($formFieldParentList); - - foreach ($formFieldParentList as $val) { - $formView = $formView->children[$val]; - } - - return $formView->vars; - } - - /** - * @param FormInterface $form - * @param array $tree - * @return string - * - * Tail recursive method that builds the field full name - */ - protected function buildFieldName(FormInterface $form, array &$tree = array()) - { - $config = $form->getConfig(); - $parent = $form->getParent(); - $hasParent = null !== $parent; - - if (null !== $proprietyPath = $config->getPropertyPath()) { - $name = (string)$proprietyPath; - } else { - $name = $config->getName(); - - if ($name === null) { - $name = ''; - } elseif ($name !== '' && $hasParent) { - $name = "[$name]"; - } - } - - array_unshift($tree, $name); - - if (!$hasParent) { - return implode("", $tree); - } - - return $this->buildFieldName($parent, $tree); - } - - /** - * @param $params - * @param \Smarty_Internal_Template $template - * @return mixed - * - * Counts collection entries - */ - public function formCollectionCount($params, \Smarty_Internal_Template $template) - { - /** - * Get parameters - */ - $form = $this->getInstanceFromParams($params); - $row = $this->getSymfonyFormFromParams($params, "row"); - $collection = $this->resolveCollection($this->getParam($params, "collection"), $form); - - $hash = $this->initializeCollection($form, $collection, $row); - - return $this->formCollectionCount[$hash]["total_count"]; - } - - /** - * @param BaseForm $form - * @param SymfonyForm $collection - * @param SymfonyForm $row - * @return string - * - * Initialize a collection into this class ( values stack, counting table ) - */ - protected function initializeCollection(BaseForm $form, SymfonyForm $collection, SymfonyForm $row = null) - { - $hash = $this->getFormStackHash($form, $collection); - - if (!isset($this->formCollectionStack[$hash])) { - $this->formCollectionStack[$hash] = $collection->all(); - } - - if (!isset($this->formCollectionCount[$hash])) { - $this->formCollectionCount[$hash] = [ - "count" => 0, - "limit" => 0, - "total_count" => count($this->formCollectionStack[$hash]), - ]; - } - - return $hash; - } - - /** - * @return array an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor("block", "form", $this, "generateForm"), - new SmartyPluginDescriptor("block", "form_field", $this, "renderFormField"), - new SmartyPluginDescriptor("block", "form_tagged_fields", $this, "renderTaggedFormFields"), - new SmartyPluginDescriptor("function", "form_hidden_fields", $this, "renderHiddenFormField"), - new SmartyPluginDescriptor("function", "form_enctype", $this, "formEnctype"), - new SmartyPluginDescriptor("block", "form_error", $this, "formError"), - new SmartyPluginDescriptor("function", "form_field_attributes", $this, "standardFormFieldAttributes"), - new SmartyPluginDescriptor("function", "render_form_field", $this, "standardFormFieldRendering"), - new SmartyPluginDescriptor("block", "custom_render_form_field", $this, "customFormFieldRendering"), - new SmartyPluginDescriptor("block", "form_collection", $this, "renderFormCollection"), - new SmartyPluginDescriptor("block", "form_collection_field", $this, "renderFormCollectionField"), - new SmartyPluginDescriptor("function", "form_collection_count", $this, "formCollectionCount"), - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Format.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Format.php deleted file mode 100644 index 97220fde..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Format.php +++ /dev/null @@ -1,496 +0,0 @@ - - * @author Benjamin Perche - */ -class Format extends AbstractSmartyPlugin -{ - private static $dateKeys = ["day", "month", "year"]; - private static $timeKeys = ["hour", "minute", "second"]; - - /** @var RequestStack */ - protected $requestStack; - - public function __construct(RequestStack $requestStack) - { - $this->requestStack = $requestStack; - } - - /** - * return date in expected format - * - * available parameters : - * date => DateTime object (mandatory) - * format => expected format - * output => list of default system format. Values available : - * date => date format - * time => time format - * datetime => datetime format (default) - * - * ex : - * {format_date date=$dateTimeObject format="Y-m-d H:i:s"} will output the format with specific format - * {format_date date=$dateTimeObject format="l F j" locale="fr_FR"} will output the format with specific format (see date() function) - * {format_date date=$dateTimeObject output="date"} will output the date using the default date system format - * {format_date date=$dateTimeObject} will output with the default datetime system format - * - * @param array $params - * @param null $template - * @throws \TheliaSmarty\Template\Exception\SmartyPluginException - * @return string - */ - public function formatDate($params, $template = null) - { - $date = $this->getParam($params, "date", false); - - if ($date === false) { - // Check if we have a timestamp - $timestamp = $this->getParam($params, "timestamp", false); - - if ($timestamp === false) { - // No timestamp => error - throw new SmartyPluginException("Either date or timestamp is a mandatory parameter in format_date function"); - } else { - $date = new \DateTime(); - $date->setTimestamp($timestamp); - } - } elseif (is_array($date)) { - $keys = array_keys($date); - - $isDate = $this->arrayContains(static::$dateKeys, $keys); - $isTime = $this->arrayContains(static::$timeKeys, $keys); - - // If this is not a date, fallback on today - // If this is not a time, fallback on midnight - $dateFormat = $isDate ? sprintf("%d-%d-%d", $date["year"], $date["month"], $date["day"]) : (new \DateTime())->format("Y-m-d"); - $timeFormat = $isTime ? sprintf("%d:%d:%d", $date["hour"], $date["minute"], $date["second"]) : "0:0:0"; - - $date = new \DateTime(sprintf("%s %s", $dateFormat, $timeFormat)); - } - - if (!($date instanceof \DateTime)) { - try { - $date = new \DateTime($date); - } catch (\Exception $e) { - return ""; - } - } - - $format = $this->getParam($params, "format", false); - - if ($format === false) { - $format = DateTimeFormat::getInstance($this->requestStack->getCurrentRequest())->getFormat($this->getParam($params, "output", null)); - } - - $locale = $this->getParam($params, 'locale', false); - - if (false === $locale) { - $value = $date->format($format); - } else { - $value = $this->formatDateWithLocale($date, $locale, $format); - } - - return $value; - } - - private function formatDateWithLocale(\DateTime $date, $locale, $format) - { - if (false === strpos($format, '%')) { - $formatter = new IntlDateFormatter($locale, IntlDateFormatter::FULL, IntlDateFormatter::FULL); - - $icuFormat = $this->convertDatePhpToIcu($format); - $formatter->setPattern($icuFormat); - - $localizedDate = $formatter->format($date); - } else { - // for backward compatibility - if (function_exists('setlocale')) { - // Save the current locale - $systemLocale = setlocale(LC_TIME, 0); - setlocale(LC_TIME, $locale); - $localizedDate = strftime($format, $date->getTimestamp()); - // Restore the locale - setlocale(LC_TIME, $systemLocale); - } else { - // setlocale() function not available => error - throw new SmartyPluginException("The setlocale() function is not available on your system."); - } - } - - return $localizedDate; - } - - /** - * - * display numbers in expected format - * - * available parameters : - * number => int or float number - * decimals => how many decimals format expected - * dec_point => separator for the decimal point - * thousands_sep => thousands separator - * - * ex : {format_number number="1246.12" decimals="1" dec_point="," thousands_sep=" "} will output "1 246,1" - * - * @param $params - * @param null $template - * @throws \TheliaSmarty\Template\Exception\SmartyPluginException - * @return string the expected number formatted - */ - public function formatNumber($params, $template = null) - { - $number = $this->getParam($params, "number", false); - - if ($number === false || $number === '') { - return ""; - } - - return NumberFormat::getInstance($this->requestStack->getCurrentRequest())->format( - $number, - $this->getParam($params, "decimals", null), - $this->getParam($params, "dec_point", null), - $this->getParam($params, "thousands_sep", null) - ); - } - - /** - * - * display a amount in expected format - * - * available parameters : - * number => int or float number - * decimals => how many decimals format expected - * dec_point => separator for the decimal point - * thousands_sep => thousands separator - * symbol => Currency symbol - * - * ex : {format_money number="1246.12" decimals="1" dec_point="," thousands_sep=" " symbol="€"} will output "1 246,1 €" - * - * @param $params - * @param null $template - * @throws \TheliaSmarty\Template\Exception\SmartyPluginException - * @return string the expected number formatted - */ - public function formatMoney($params, $template = null) - { - $number = $this->getParam($params, "number", false); - - if ($number === false || $number === '') { - return ""; - } - - if ($this->getParam($params, "symbol", null) === null) { - return MoneyFormat::getInstance($this->requestStack->getCurrentRequest())->formatByCurrency( - $number, - $this->getParam($params, "decimals", null), - $this->getParam($params, "dec_point", null), - $this->getParam($params, "thousands_sep", null), - $this->getParam($params, "currency_id", null) - ); - } - - return MoneyFormat::getInstance($this->requestStack->getCurrentRequest())->format( - $number, - $this->getParam($params, "decimals", null), - $this->getParam($params, "dec_point", null), - $this->getParam($params, "thousands_sep", null), - $this->getParam($params, "symbol", null) - ); - } - - - /** - * return two-dimensional arrays in string - * - * available parameters : - * values => array 2D ['key A' => ['value 1', 'value 2'], 'key B' => ['value 3', 'value 4']] - * separators => ['key value separator', 'value value separator', 'key key separator'] - * - * ex : - * {format_array_2d values=['Colors' => ['Green', 'Yellow', 'Red'], 'Material' => ['Wood']] separators=[' : ', ' / ', ' | ']} - * will output the format with specific format : "Colors : Green / Yellow / Red | Material : Wood" - * - * @param $params - * @return string - */ - public function formatTwoDimensionalArray($params) - { - $output = ''; - $values = $this->getParam($params, "values", null); - $separators = $this->getParam($params, "separators", [' : ', ' / ', ' | ']); - - if (!is_array($values)) { - return $output; - } - - foreach ($values as $key => $value) { - if ($output !== '') { - $output .= $separators[2]; - } - - $output .= $key . $separators[0]; - - if (!is_array($value)) { - $output .= $value; - continue; - } - - $output .= implode($separators[1], $value); - } - return $output; - } - - protected function arrayContains(array $expected, array $hayStack) - { - foreach ($expected as $value) { - if (!in_array($value, $hayStack)) { - return false; - } - } - - return true; - } - - /** - * This function comes from [Yii framework](http://www.yiiframework.com/) - * - * - * Converts a date format pattern from [php date() function format][] to [ICU format][]. - * - * The conversion is limited to date patterns that do not use escaped characters. - * Patterns like `jS \o\f F Y` which will result in a date like `1st of December 2014` may not be converted correctly - * because of the use of escaped characters. - * - * Pattern constructs that are not supported by the ICU format will be removed. - * - * [php date() function format]: http://php.net/manual/en/function.date.php - * [ICU format]: http://userguide.icu-project.org/formatparse/datetime#TOC-Date-Time-Format-Syntax - * - * @param string $pattern date format pattern in php date()-function format. - * @return string The converted date format pattern. - */ - protected function convertDatePhpToIcu($pattern) - { - // http://php.net/manual/en/function.date.php - return strtr( - $pattern, - [ - // Day - 'd' => 'dd', // Day of the month, 2 digits with leading zeros 01 to 31 - 'D' => 'eee', // A textual representation of a day, three letters Mon through Sun - 'j' => 'd', // Day of the month without leading zeros 1 to 31 - 'l' => 'eeee', // A full textual representation of the day of the week Sunday through Saturday - 'N' => 'e', // ISO-8601 numeric representation of the day of the week, 1 (for Monday) through 7 (for Sunday) - 'S' => '', // English ordinal suffix for the day of the month, 2 characters st, nd, rd or th. Works well with j - 'w' => '', // Numeric representation of the day of the week 0 (for Sunday) through 6 (for Saturday) - 'z' => 'D', // The day of the year (starting from 0) 0 through 365 - // Week - 'W' => 'w', // ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0) Example: 42 (the 42nd week in the year) - // Month - 'F' => 'MMMM', // A full textual representation of a month, January through December - 'm' => 'MM', // Numeric representation of a month, with leading zeros 01 through 12 - 'M' => 'MMM', // A short textual representation of a month, three letters Jan through Dec - 'n' => 'M', // Numeric representation of a month, without leading zeros 1 through 12, not supported by ICU but we fallback to "with leading zero" - 't' => '', // Number of days in the given month 28 through 31 - // Year - 'L' => '', // Whether it's a leap year, 1 if it is a leap year, 0 otherwise. - 'o' => 'Y', // ISO-8601 year number. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead. - 'Y' => 'yyyy', // A full numeric representation of a year, 4 digits Examples: 1999 or 2003 - 'y' => 'yy', // A two digit representation of a year Examples: 99 or 03 - // Time - 'a' => 'a', // Lowercase Ante meridiem and Post meridiem, am or pm - 'A' => 'a', // Uppercase Ante meridiem and Post meridiem, AM or PM, not supported by ICU but we fallback to lowercase - 'B' => '', // Swatch Internet time 000 through 999 - 'g' => 'h', // 12-hour format of an hour without leading zeros 1 through 12 - 'G' => 'H', // 24-hour format of an hour without leading zeros 0 to 23h - 'h' => 'hh', // 12-hour format of an hour with leading zeros, 01 to 12 h - 'H' => 'HH', // 24-hour format of an hour with leading zeros, 00 to 23 h - 'i' => 'mm', // Minutes with leading zeros 00 to 59 - 's' => 'ss', // Seconds, with leading zeros 00 through 59 - 'u' => '', // Microseconds. Example: 654321 - // Timezone - 'e' => 'VV', // Timezone identifier. Examples: UTC, GMT, Atlantic/Azores - 'I' => '', // Whether or not the date is in daylight saving time, 1 if Daylight Saving Time, 0 otherwise. - 'O' => 'xx', // Difference to Greenwich time (GMT) in hours, Example: +0200 - 'P' => 'xxx', // Difference to Greenwich time (GMT) with colon between hours and minutes, Example: +02:00 - 'T' => 'zzz', // Timezone abbreviation, Examples: EST, MDT ... - 'Z' => '', // Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. -43200 through 50400 - // Full Date/Time - 'c' => 'yyyy-MM-dd\'T\'HH:mm:ssxxx', // ISO 8601 date, e.g. 2004-02-12T15:19:21+00:00 - 'r' => 'eee, dd MMM yyyy HH:mm:ss xx', // RFC 2822 formatted date, Example: Thu, 21 Dec 2000 16:01:07 +0200 - 'U' => '', // Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) - ] - ); - } - - /** - * - * display an address in expected format - * - * available parameters : - * address => the id of the address to display - * order_address => the id of the order address to display - * from_country_id => the country id - * dec_point => separator for the decimal point - * thousands_sep => thousands separator - * symbol => Currency symbol - * - * ex : {format_money number="1246.12" decimals="1" dec_point="," thousands_sep=" " symbol="€"} will output "1 246,1 €" - * - * @param $params - * @param null $template - * @throws \TheliaSmarty\Template\Exception\SmartyPluginException - * @return string the expected number formatted - */ - public function formatAddress($params, $template = null) - { - $postal = filter_var( - $this->getParam($params, "postal", null), - FILTER_VALIDATE_BOOLEAN - ); - - $html = filter_var( - $this->getParam($params, "html", true), - FILTER_VALIDATE_BOOLEAN - ); - - $htmlTag = $this->getParam($params, "html_tag", "p"); - $originCountry = $this->getParam($params, "origin_country", null); - $locale = $this->getParam($params, "locale", $this->getSession()->getLang()->getLocale()); - - // extract html attributes - $htmlAttributes = []; - foreach ($params as $k => $v) { - if (strpos($k, 'html_') !== false && $k !== 'html_tag') { - $htmlAttributes[substr($k, 5)] = $v; - } - } - - // get address or order address - $address = null; - if (null !== $id = $this->getParam($params, "address", null)) { - if (null === $address = AddressQuery::create()->findPk($id)) { - return ''; - } - } elseif (null !== $id = $this->getParam($params, "order_address", null)) { - if (null === $address = OrderAddressQuery::create()->findPk($id)) { - return ''; - } - } else { - // try to parse arguments to build address - $address = $this->getAddressFormParams($params); - } - - if (null === $address) { - throw new SmartyPluginException( - "Either address, order_address or full list of address fields should be provided" - ); - } - - $addressFormat = AddressFormat::getInstance(); - if ($postal) { - if ($address instanceof Address) { - $formattedAddress = $addressFormat->postalLabelFormat($address, $locale, $originCountry); - } else { - $formattedAddress = $addressFormat->postalLabelFormatTheliaAddress($address, $locale, $originCountry); - } - } else { - if ($address instanceof Address) { - $formattedAddress = $addressFormat->format($address, $locale, $html, $htmlTag, $htmlAttributes); - } else { - $formattedAddress = $addressFormat->formatTheliaAddress($address, $locale, $html, $htmlTag, $htmlAttributes); - } - } - - return $formattedAddress; - } - - protected function getAddressFormParams($params) - { - // Check if there is arguments - $addressArgs = [ - 'country_code', - 'administrative_area', - 'locality', - 'dependent_locality', - 'postal_code', - 'sorting_code', - 'address_line1', - 'address_line2', - 'organization', - 'recipient', - 'locale' - ]; - $valid = false; - - $address = new Address(); - - foreach ($addressArgs as $arg) { - if (null !== $argVal = $this->getParam($params, $arg, null)) { - $valid = true; - $functionName = 'with' . Container::camelize($arg); - $address = $address->$functionName($argVal); - } - } - - if (false === $valid) { - return null; - } - - return $address; - } - - /** - * @return SmartyPluginDescriptor[] - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor("function", "format_date", $this, "formatDate"), - new SmartyPluginDescriptor("function", "format_number", $this, "formatNumber"), - new SmartyPluginDescriptor("function", "format_money", $this, "formatMoney"), - new SmartyPluginDescriptor("function", "format_array_2d", $this, "formatTwoDimensionalArray"), - new SmartyPluginDescriptor("function", "format_address", $this, "formatAddress"), - ); - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->requestStack->getCurrentRequest()->getSession(); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Hook.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Hook.php deleted file mode 100644 index c9edadc2..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Hook.php +++ /dev/null @@ -1,476 +0,0 @@ - - */ -class Hook extends AbstractSmartyPlugin -{ - private $dispatcher; - - /** @var Translator */ - protected $translator; - - /** @var Module */ - protected $smartyPluginModule = null; - - /** @var array */ - protected $hookResults = array(); - - /** @var array */ - protected $varstack = array(); - - /** @var bool debug */ - protected $debug = false; - - public function __construct($debug, ContainerAwareEventDispatcher $dispatcher) - { - $this->debug = $debug; - $this->dispatcher = $dispatcher; - $this->translator = $dispatcher->getContainer()->get("thelia.translator"); - $this->hookResults = array(); - } - - /** - * Generates the content of the hook - * - * {hook name="hook_code" var1="value1" var2="value2" ... } - * - * This function create an event, feed it with the custom variables passed to the function (var1, var2, ...) and - * dispatch it to the hooks that respond to it. - * - * The name of the event is `hook.{context}.{hook_code}` where : - * * context : the id of the context of the smarty render : 1: frontoffice, 2: backoffice, 3: email, 4: pdf - * * hook_code : the code of the hook - * - * The event collects all the fragments of text rendered in each modules functions that listen to this event. - * Finally, this fragments are concatenated and injected in the template - * - * @param array $params the params passed in the smarty function - * @param \TheliaSmarty\Template\SmartyParser $smarty the smarty parser - * - * @return string the contents generated by modules - */ - public function processHookFunction($params, &$smarty) - { - $hookName = $this->getParam($params, 'name'); - $module = intval($this->getParam($params, 'module', 0)); - $moduleCode = $this->getParam($params, 'modulecode', ""); - - $type = $smarty->getTemplateDefinition()->getType(); - - $event = new HookRenderEvent($hookName, $params); - - $event->setArguments($this->getArgumentsFromParams($params)); - - $eventName = sprintf('hook.%s.%s', $type, $hookName); - - // this is a hook specific to a module - if (0 === $module && "" !== $moduleCode) { - if (null !== $mod = ModuleQuery::create()->findOneByCode($moduleCode)) { - $module = $mod->getId(); - } - } - if (0 !== $module) { - $eventName .= '.' . $module; - } - - $this->getDispatcher()->dispatch($eventName, $event); - - $content = trim($event->dump()); - - if ($this->debug && $smarty->getRequest()->get('SHOW_HOOK')) { - $content = self::showHook($hookName, $params) . $content; - } - - $this->hookResults[$hookName] = $content; - - // support for compatibility with module_include - if ($type === TemplateDefinition::BACK_OFFICE) { - $content .= $this->moduleIncludeCompat($params, $smarty); - } - - return $content; - } - - /** - * Call the plugin function module_include for backward compatibility. - * - * @param array $params the params passed in the smarty function - * @param \TheliaSmarty\Template\SmartyParser $smarty the smarty parser - * - * @return string the contents generated by module_include function - */ - protected function moduleIncludeCompat($params, &$smarty) - { - $plugin = $this->getSmartyPluginModule(); - $params = array( - "location" => $this->getParam($params, 'location', null), - "module" => $this->getParam($params, 'modulecode', null), - "countvar" => $this->getParam($params, 'countvar', null) - ); - - return $plugin->theliaModule($params, $smarty); - } - - /** - * get the smarty plugin Module - * - * @return Module the smarty plugin Module - */ - protected function getSmartyPluginModule() - { - if (null === $this->smartyPluginModule) { - $this->smartyPluginModule = $this->dispatcher->getContainer()->get("smarty.plugin.module"); - } - - return $this->smartyPluginModule; - } - - protected function showHook($hookName, $params) - { - $content = '
' . $hookName; - - foreach ($params as $name => $value) { - if ($name !== 'location' && $name !== "name") { - $type = ''; - if (is_object($value)) { - $value = get_class($value); - $type = 'object'; - } elseif (is_array($value)) { - $value = implode(',', $value); - $type = 'array'; - } elseif (is_int($value)) { - $type = 'float'; - } elseif (is_int($value)) { - $type = 'int'; - } elseif (is_string($value)) { - $value = (strlen($value) > 30) ? substr($value, 0, 30) . '...' : $value; - $type = 'string'; - } - - if ($type !== '') { - $type = '' . $type . ' '; - } - - $content .= '' . $name . ' = ' . $type . $value . ''; - } - } - - return $content . '
'; - } - - /** - * Process the content of the hook block. - * - * {hookblock name="hook_code" var1="value1" var2="value2" ... } - * - * This function create an event, feed it with the custom variables passed to the function (var1, var2, ...) and - * dispatch it to the hooks that respond to it. - * - * The name of the event is `hook.{context}.{hook_code}` where : - * * context : the id of the context of the smarty render : 1: frontoffice, 2: backoffice, 3: email, 4: pdf - * * hook_code : the code of the hook - * - * The event collects all the fragments generated by modules that listen to this event and add it to a fragmentBag. - * This fragmentBag is not used directly. This is the forhook block that iterates over the fragmentBag to inject - * data in the template. - * - * @param array $params - * @param string $content - * @param \TheliaSmarty\Template\SmartyParser $smarty - * @param bool $repeat - * - * @return string the generated content - */ - public function processHookBlock($params, $content, $smarty, &$repeat) - { - $hookName = $this->getParam($params, 'name'); - $module = intval($this->getParam($params, 'module', 0)); - // explicit definition of variable that can be returned - $fields = preg_replace( - '|[^a-zA-Z0-9,\-_]|', - '', - $this->getParam($params, 'fields', '') - ); - $fields = ('' !== $fields) ? explode(",", $fields) : []; - - if (!$repeat) { - if ($this->debug && $smarty->getRequest()->get('SHOW_HOOK')) { - $content = self::showHook($hookName, $params) . $content; - } - - return $content; - } - - $type = $smarty->getTemplateDefinition()->getType(); - - $event = new HookRenderBlockEvent($hookName, $params, $fields); - - $event->setArguments($this->getArgumentsFromParams($params)); - - $eventName = sprintf('hook.%s.%s', $type, $hookName); - - // this is a hook specific to a module - if (0 !== $module) { - $eventName .= '.' . $module; - } - - $this->getDispatcher()->dispatch($eventName, $event); - - // save results so we can use it in forHook block - $this->hookResults[$hookName] = $event->get(); - } - - /** - * Process a {forhook rel="hookname"} ... {/forhook} - * - * The forhook iterates over the results return by a hookblock : - * - * {hookblock name="product.additional"} - * {forhook rel="product.additional"} - *
- *

{$title}

- *

{$content}

- *
- * {/forhook} - * {/hookblock} - * - * @param array $params - * @param string $content - * @param \TheliaSmarty\Template\SmartyParser $smarty - * @param bool $repeat - * - * @throws \InvalidArgumentException - * @return string the generated content - */ - public function processForHookBlock($params, $content, $smarty, &$repeat) - { - $rel = $this->getParam($params, 'rel'); - if (null == $rel) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'rel' parameter in forHook arguments") - ); - } - - /** @var FragmentBag $fragments */ - $fragments = null; - - // first call - if ($content === null) { - if (!array_key_exists($rel, $this->hookResults)) { - throw new \InvalidArgumentException( - $this->translator->trans("Related hook name '%name' is not defined.", ['%name' => $rel]) - ); - } - - $fragments = $this->hookResults[$rel]; - $fragments->rewind(); - - if ($fragments->isEmpty()) { - $repeat = false; - } - } else { - $fragments = $this->hookResults[$rel]; - $fragments->next(); - } - - if ($fragments->valid()) { - /** @var Fragment $fragment */ - $fragment = $fragments->current(); - - // On first iteration, save variables that may be overwritten by this hook - if (!isset($this->varstack[$rel])) { - $saved_vars = array(); - - $varlist = $fragment->getVars(); - - foreach ($varlist as $var) { - $saved_vars[$var] = $smarty->getTemplateVars($var); - } - - $this->varstack[$rel] = $saved_vars; - } - - foreach ($fragment->getVarVal() as $var => $val) { - $smarty->assign($var, $val); - } - // continue iteration - $repeat = true; - } - - // end - if (!$repeat) { - // Restore previous variables values before terminating - if (isset($this->varstack[$rel])) { - foreach ($this->varstack[$rel] as $var => $value) { - $smarty->assign($var, $value); - } - - unset($this->varstack[$rel]); - } - } - - if ($content !== null) { - if ($fragments->isEmpty()) { - $content = ""; - } - - return $content; - } - - return ''; - } - - /** - * Process {elsehook rel="hookname"} ... {/elsehook} block - * - * @param array $params hook parameters - * @param string $content hook text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * - * @return string the hook output - */ - public function elseHook( - $params, - $content, - /** @noinspection PhpUnusedParameterInspection */ $template, - &$repeat - ) { - // When encountering close tag, check if hook has results. - if ($repeat === false) { - return $this->checkEmptyHook($params) ? $content : ''; - } - - return ''; - } - - /** - * Process {ifhook rel="hookname"} ... {/ifhook} block - * - * @param array $params hook parameters - * @param string $content hook text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * - * @return string the hook output - */ - public function ifHook($params, $content, /** @noinspection PhpUnusedParameterInspection */ $template, &$repeat) - { - // When encountering close tag, check if hook has results. - if ($repeat === false) { - return $this->checkEmptyHook($params) ? '' : $content; - } - - return ''; - } - - /** - * Check if a hook has returned results. The hook should have been executed before, or an - * InvalidArgumentException is thrown - * - * @param array $params - * - * @return boolean true if the hook is empty - * @throws \InvalidArgumentException - */ - protected function checkEmptyHook($params) - { - $hookName = $this->getParam($params, 'rel'); - - if (null == $hookName) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'rel' parameter in ifhook/elsehook arguments") - ); - } - - if (!isset($this->hookResults[$hookName])) { - throw new \InvalidArgumentException( - $this->translator->trans("Related hook name '%name' is not defined.", ['%name' => $hookName]) - ); - } - - return (is_string($this->hookResults[$hookName]) && '' === $this->hookResults[$hookName] - || !is_string($this->hookResults[$hookName]) && $this->hookResults[$hookName]->isEmpty() - ); - } - - /** - * Clean the params of the params passed to the hook function or block to feed the arguments of the event - * with relevant arguments. - * - * @param $params - * - * @return array - */ - protected function getArgumentsFromParams($params) - { - $args = array(); - $excludes = array("name", "before", "separator", "after", "fields"); - - if (is_array($params)) { - foreach ($params as $key => $value) { - if (!in_array($key, $excludes)) { - $args[$key] = $value; - } - } - } - - return $args; - } - - /** - * Define the various smarty plugins handled by this class - * - * @return array an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'hook', $this, 'processHookFunction'), - new SmartyPluginDescriptor('block', 'hookblock', $this, 'processHookBlock'), - new SmartyPluginDescriptor('block', 'forhook', $this, 'processForHookBlock'), - new SmartyPluginDescriptor('block', 'elsehook', $this, 'elseHook'), - new SmartyPluginDescriptor('block', 'ifhook', $this, 'ifHook'), - ); - } - - /** - * Return the event dispatcher, - * - * @return \Symfony\Component\EventDispatcher\EventDispatcher - */ - public function getDispatcher() - { - return $this->dispatcher; - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Module.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Module.php deleted file mode 100644 index b0c8123a..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Module.php +++ /dev/null @@ -1,104 +0,0 @@ -debug = $debug; - $this->requestStack = $requestStack; - } - /** - * Process theliaModule template inclusion function - * - * This function accepts two parameters: - * - * - location : this is the location in the admin template. Example: folder-edit'. The function will search for - * AdminIncludes/.html file, and fetch it as a Smarty template. - * - countvar : this is the name of a template variable where the number of found modules includes will be assigned. - * - * @param array $params - * @param \Smarty_Internal_Template $template - * @internal param \Thelia\Core\Template\Smarty\Plugins\unknown $smarty - * - * @return string - */ - public function theliaModule($params, \Smarty_Internal_Template $template) - { - $content = null; - $count = 0; - if (false !== $location = $this->getParam($params, 'location', false)) { - if ($this->debug === true && $this->requestStack->getCurrentRequest()->get('SHOW_INCLUDE')) { - echo sprintf('
%s
', $location); - } - - $moduleLimit = $this->getParam($params, 'module', null); - - $modules = ModuleQuery::getActivated(); - - /** @var \Thelia\Model\Module $module */ - foreach ($modules as $module) { - if (null !== $moduleLimit && $moduleLimit != $module->getCode()) { - continue; - } - - $file = $module->getAbsoluteAdminIncludesPath() . DS . $location . '.html'; - - if (file_exists($file)) { - $output = trim(file_get_contents($file)); - - if (! empty($output)) { - $content .= $output; - - $count++; - } - } - } - } - - if (false !== $countvarname = $this->getParam($params, 'countvar', false)) { - $template->assign($countvarname, $count); - } - - if (! empty($content)) { - return $template->fetch(sprintf("string:%s", $content)); - } - - return ""; - } - - /** - * Define the various smarty plugins hendled by this class - * - * @return an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'module_include', $this, 'theliaModule'), - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Render.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Render.php deleted file mode 100644 index 2f7abd3d..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Render.php +++ /dev/null @@ -1,167 +0,0 @@ - - */ -class Render extends AbstractSmartyPlugin -{ - /** @var ControllerResolver */ - protected $controllerResolver; - - /** @var RequestStack */ - protected $requestStack; - - /** @var Container */ - protected $container; - - /** - * @param ControllerResolver $controllerResolver - * @param RequestStack $requestStack - * @param Container $container - */ - public function __construct(ControllerResolver $controllerResolver, RequestStack $requestStack, Container $container) - { - $this->controllerResolver = $controllerResolver; - $this->requestStack = $requestStack; - $this->container = $container; - } - - /** - * @param $params - * @return mixed|string - * @throws SmartyPluginException - */ - public function processRender($params) - { - if (null === $params["action"]) { - throw new SmartyPluginException( - "You must declare the 'action' parameter in the 'render' smarty function" - ); - } - - $request = $this->prepareRequest($params); - - $this->requestStack->push($request); - - $controller = $this->controllerResolver->getController($request); - $controllerParameters = $this->controllerResolver->getArguments($request, $controller); - - $response = call_user_func_array($controller, $controllerParameters); - - $this->requestStack->pop(); - - if ($response instanceof Response) { - return $response->getContent(); - } - - return $response; - } - - protected function prepareRequest(array $params) - { - // Get action - $action = $this->popParameter($params, "action"); - - // Then get and filter query, request and method - $query = $this->popParameter($params, "query"); - $query = $this->filterArrayStrParam($query); - $request = $this->popParameter($params, "request"); - $request = $this->filterArrayStrParam($request); - $method = strtoupper($this->popParameter($params, "method", "GET")); - - // Then build the request - $requestObject = clone $this->requestStack->getCurrentRequest(); - $requestObject->query = new ParameterBag($query); - $requestObject->request = new ParameterBag($request); - $requestObject->attributes = new ParameterBag(["_controller" => $action]); - - // Apply the method - if (!empty($request) && "GET" === $method) { - $requestObject->setMethod("POST"); - } else { - $requestObject->setMethod($method); - } - - // Then all the attribute parameters - foreach ($params as $key => $attribute) { - $requestObject->attributes->set($key, $attribute); - } - - return $requestObject; - } - - /** - * @param $param - * @return array - * - * If $param is an array, return it. - * Else parser it to translate a=b&c=d&e[]=f&g[h]=i to - * ["a"=>"b","c"=>"d","e"=>["f"],"g"=>["h"=>"i"] - */ - protected function filterArrayStrParam($param) - { - if (is_array($param)) { - return $param; - } - - parse_str($param, $param); - - if (false === $param) { - return []; - } - - return $param; - } - - /** - * @param array $params - * @param $name - * @param null $default - * @return mixed - * - * Get a parameter then unset it - */ - protected function popParameter(array $params, $name, $default = null) - { - $param = $this->getParam($params, $name, $default); - - if (array_key_exists($name, $params)) { - unset($params[$name]); - } - - return $param; - } - - /** - * @return SmartyPluginDescriptor[] an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'render', $this, 'processRender'), - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Security.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Security.php deleted file mode 100644 index bd14bfdc..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Security.php +++ /dev/null @@ -1,146 +0,0 @@ -securityContext = $securityContext; - $this->requestStack = $requestStack; - $this->dispatcher = $dispatcher; - } - - /** - * Process security check function - * - * @param array $params - * @param \Smarty $smarty - * @return string no text is returned. - * @throws \Thelia\Core\Security\Exception\AuthenticationException - * @throws AuthenticationException - * @throws AuthorizationException - */ - public function checkAuthFunction($params, &$smarty) - { - $roles = $this->explode($this->getParam($params, 'role')); - $resources = $this->explode($this->getParam($params, 'resource')); - $modules = $this->explode($this->getParam($params, 'module')); - $accesses = $this->explode($this->getParam($params, 'access')); - - if (! $this->securityContext->isGranted($roles, $resources, $modules, $accesses)) { - if (null === $this->securityContext->checkRole($roles)) { - // The current user is not logged-in. - $ex = new AuthenticationException( - sprintf( - "User not granted for roles '%s', to access resources '%s' with %s.", - implode(',', $roles), - implode(',', $resources), - implode(',', $accesses) - ) - ); - - $loginTpl = $this->getParam($params, 'login_tpl'); - - if (null != $loginTpl) { - $ex->setLoginTemplate($loginTpl); - } - } else { - // We have a logged-in user, who do not have the proper permission. Issue an AuthorizationException. - $ex = new AuthorizationException( - sprintf( - "User not granted for roles '%s', to access resources '%s' with %s.", - implode(',', $roles), - implode(',', $resources), - implode(',', $accesses) - ) - ); - } - - throw $ex; - } - - return ''; - } - - public function checkCartNotEmptyFunction($params, &$smarty) - { - $cart = $this->getSession()->getSessionCart($this->dispatcher); - if ($cart===null || $cart->countCartItems() == 0) { - throw new OrderException('Cart must not be empty', OrderException::CART_EMPTY, array('empty' => 1)); - } - - return ""; - } - - public function checkValidDeliveryFunction($params, &$smarty) - { - $order = $this->getSession()->getOrder(); - /* Does address and module still exists ? We assume address owner can't change neither module type */ - if ($order !== null) { - $checkAddress = AddressQuery::create()->findPk($order->getChoosenDeliveryAddress()); - $checkModule = ModuleQuery::create()->findPk($order->getDeliveryModuleId()); - } else { - $checkAddress = $checkModule = null; - } - - if (null === $order || null == $checkAddress || null === $checkModule) { - throw new OrderException('Delivery must be defined', OrderException::UNDEFINED_DELIVERY, array('missing' => 1)); - } - - return ""; - } - - /** - * Define the various smarty plugins handled by this class - * - * @return array an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'check_auth', $this, 'checkAuthFunction'), - new SmartyPluginDescriptor('function', 'check_cart_not_empty', $this, 'checkCartNotEmptyFunction'), - new SmartyPluginDescriptor('function', 'check_valid_delivery', $this, 'checkValidDeliveryFunction'), - ); - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->requestStack->getCurrentRequest()->getSession(); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/TheliaLoop.php b/local/modules/modules/TheliaSmarty/Template/Plugins/TheliaLoop.php deleted file mode 100644 index f2bb5ad8..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/TheliaLoop.php +++ /dev/null @@ -1,463 +0,0 @@ -container = $container; - $this->request = $container->get('request_stack')->getCurrentRequest(); - $this->dispatcher = $container->get('event_dispatcher'); - $this->securityContext = $container->get('thelia.securityContext'); - $this->translator = $container->get("thelia.translator"); - } - - /** - * @param string $loopName - * @return PropelModelPager - * @throws \InvalidArgumentException if no pagination was found for loop - */ - public static function getPagination($loopName) - { - if (array_key_exists($loopName, self::$pagination)) { - return self::$pagination[$loopName]; - } else { - throw new \InvalidArgumentException( - Translator::getInstance()->trans("No pagination currently defined for loop name '%name'", ['%name' => $loopName ]) - ); - } - } - - /** - * Process the count function: executes a loop and return the number of items found - * - * @param array $params parameters array - * @param \Smarty_Internal_Template $template - * - * @return int the item count - * @throws \InvalidArgumentException if a parameter is missing - * - */ - public function theliaCount($params, /** @noinspection PhpUnusedParameterInspection */ $template) - { - $type = $this->getParam($params, 'type'); - - if (null == $type) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'type' parameter in {count} loop arguments") - ); - } - - $loop = $this->createLoopInstance($params); - - return $loop->count(); - } - - /** - * Process {loop name="loop name" type="loop type" ... } ... {/loop} block - * - * @param array $params - * @param string $content - * @param \Smarty_Internal_Template $template - * @param boolean $repeat - * - * @throws \InvalidArgumentException - * - * @return void|string - */ - public function theliaLoop($params, $content, $template, &$repeat) - { - $name = $this->getParam($params, 'name'); - - if (null == $name) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'name' parameter in loop arguments") - ); - } - - $type = $this->getParam($params, 'type'); - - if (null == $type) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'type' parameter in loop arguments") - ); - } - - if ($content === null) { - // Check if a loop with the same name exists in the current scope, and abort if it's the case. - if (array_key_exists($name, $this->varstack)) { - throw new \InvalidArgumentException( - $this->translator->trans("A loop named '%name' already exists in the current scope.", ['%name' => $name]) - ); - } - - $loop = $this->createLoopInstance($params); - - self::$pagination[$name] = null; - - // We have to clone the result, as exec() returns a cached LoopResult object, which may cause side effects - // if loops with the same argument set are nested (see https://github.com/thelia/thelia/issues/2213) - $loopResults = clone($loop->exec(self::$pagination[$name])); - - $loopResults->rewind(); - - $this->loopstack[$name] = $loopResults; - - // No results ? The loop is terminated, do not evaluate loop text. - if ($loopResults->isEmpty()) { - $repeat = false; - } - } else { - $loopResults = $this->loopstack[$name]; - - $loopResults->next(); - } - - if ($loopResults->valid()) { - $loopResultRow = $loopResults->current(); - - // On first iteration, save variables that may be overwritten by this loop - if (! isset($this->varstack[$name])) { - $saved_vars = array(); - - $varlist = $loopResultRow->getVars(); - - foreach ($varlist as $var) { - $saved_vars[$var] = $template->getTemplateVars($var); - } - - $this->varstack[$name] = $saved_vars; - } - - foreach ($loopResultRow->getVarVal() as $var => $val) { - $template->assign($var, $val); - } - - $repeat = true; - } - - // Loop is terminated. Cleanup. - if (! $repeat) { - // Restore previous variables values before terminating - if (isset($this->varstack[$name])) { - foreach ($this->varstack[$name] as $var => $value) { - $template->assign($var, $value); - } - - unset($this->varstack[$name]); - } - } - - if ($content !== null) { - if ($loopResults->isEmpty()) { - $content = ""; - } - - return $content; - } - - return ''; - } - - /** - * Process {elseloop rel="loopname"} ... {/elseloop} block - * - * @param array $params loop parameters - * @param string $content loop text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * @return string the loop output - */ - public function theliaElseloop($params, $content, /** @noinspection PhpUnusedParameterInspection */ $template, &$repeat) - { - //Block the smarty interpretation in the elseloop - if ($content === null) { - if (! $this->checkEmptyLoop($params)) { - $repeat = false; - - return ''; - } - } - - return $content; - } - - /** - * Process {ifloop rel="loopname"} ... {/ifloop} block - * - * @param array $params loop parameters - * @param string $content loop text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * @return string the loop output - */ - public function theliaIfLoop($params, $content, /** @noinspection PhpUnusedParameterInspection */ $template, &$repeat) - { - // When encountering close tag, check if loop has results. - if ($repeat === false) { - return $this->checkEmptyLoop($params) ? '' : $content; - } - - return ''; - } - - /** - * Process {pageloop rel="loopname"} ... {/pageloop} block - * - * @param array $params loop parameters - * @param string $content loop text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * @return string the loop output - * @throws \InvalidArgumentException - */ - public function theliaPageLoop($params, $content, $template, &$repeat) - { - $loopName = $this->getParam($params, 'rel'); - - if (null == $loopName) { - throw new \InvalidArgumentException($this->translator->trans("Missing 'rel' parameter in page loop")); - } - - // Find pagination - $pagination = self::getPagination($loopName); - - if ($pagination === null || $pagination->getNbResults() == 0) { - // No need to paginate - return ''; - } - - $startPage = intval($this->getParam($params, 'start-page', 1)); - $displayedPageCount = intval($this->getParam($params, 'limit', 10)); - - if (intval($displayedPageCount) == 0) { - $displayedPageCount = PHP_INT_MAX; - } - - $totalPageCount = $pagination->getLastPage(); - - if ($content === null) { - // The current page - $currentPage = $pagination->getPage(); - - // Get the start page. - if ($totalPageCount > $displayedPageCount) { - $startPage = $currentPage - round($displayedPageCount / 2); - - if ($startPage <= 0) { - $startPage = 1; - } - } - - // This is the iterative page number, the one we're going to increment in this loop - $iterationPage = $startPage; - - // The last displayed page number - $endPage = $startPage + $displayedPageCount - 1; - - if ($endPage > $totalPageCount) { - $endPage = $totalPageCount; - } - - // The first displayed page number - $template->assign('START', $startPage); - // The previous page number - $template->assign('PREV', $currentPage > 1 ? $currentPage-1 : $currentPage); - // The next page number - $template->assign('NEXT', $currentPage < $totalPageCount ? $currentPage+1 : $totalPageCount); - // The last displayed page number - $template->assign('END', $endPage); - // The overall last page - $template->assign('LAST', $totalPageCount); - } else { - $iterationPage = $template->getTemplateVars('PAGE'); - - $iterationPage++; - } - - if ($iterationPage <= $template->getTemplateVars('END')) { - // The iterative page number - $template->assign('PAGE', $iterationPage); - - // The overall current page number - $template->assign('CURRENT', $pagination->getPage()); - - $repeat = true; - } - - if ($content !== null) { - return $content; - } - - return ''; - } - - /** - * Check if a loop has returned results. The loop shoud have been executed before, or an - * InvalidArgumentException is thrown - * - * @param array $params - * - * @return boolean true if the loop is empty - * @throws \InvalidArgumentException - */ - protected function checkEmptyLoop($params) - { - $loopName = $this->getParam($params, 'rel'); - - if (null == $loopName) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'rel' parameter in ifloop/elseloop arguments") - ); - } - - if (! isset($this->loopstack[$loopName])) { - throw new \InvalidArgumentException( - $this->translator->trans("Related loop name '%name'' is not defined.", ['%name' => $loopName]) - ); - } - - return $this->loopstack[$loopName]->isEmpty(); - } - - /** - * @param $smartyParams - * - * @return BaseLoop - * @throws \Thelia\Core\Template\Element\Exception\InvalidElementException - * @throws \Thelia\Core\Template\Element\Exception\ElementNotFoundException - */ - protected function createLoopInstance($smartyParams) - { - $type = strtolower($smartyParams['type']); - - if (! isset($this->loopDefinition[$type])) { - throw new ElementNotFoundException( - $this->translator->trans("Loop type '%type' is not defined.", ['%type' => $type]) - ); - } - - $class = new \ReflectionClass($this->loopDefinition[$type]); - - if ($class->isSubclassOf("Thelia\Core\Template\Element\BaseLoop") === false) { - throw new InvalidElementException( - $this->translator->trans("'%type' loop class should extends Thelia\Core\Template\Element\BaseLoop", ['%type' => $type]) - ); - } - - $loop = $class->newInstance( - $this->container - ); - - $loop->initializeArgs($smartyParams); - - return $loop; - } - - /** - * - * Injects an associative array containing information for loop execution - * - * key is loop name - * value is the class implementing/extending base loop classes - * - * ex : - * - * $loop = array( - * "product" => "Thelia\Loop\Product", - * "category" => "Thelia\Loop\Category", - * "myLoop" => "My\Own\Loop" - * ); - * - * @param array $loopDefinition - * @throws \InvalidArgumentException if loop name already exists - */ - public function setLoopList(array $loopDefinition) - { - foreach ($loopDefinition as $name => $className) { - if (array_key_exists($name, $this->loopDefinition)) { - throw new \InvalidArgumentException( - $this->translator->trans("The loop name '%name' is already defined in %className class", [ - '%name' => $name, - '%className' => $className - ]) - ); - } - - $this->loopDefinition[$name] = $className; - } - } - - /** - * Defines the various smarty plugins hendled by this class - * - * @return \TheliaSmarty\Template\SmartyPluginDescriptor[] smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - - new SmartyPluginDescriptor('function', 'count', $this, 'theliaCount'), - new SmartyPluginDescriptor('block', 'loop', $this, 'theliaLoop'), - new SmartyPluginDescriptor('block', 'elseloop', $this, 'theliaElseloop'), - new SmartyPluginDescriptor('block', 'ifloop', $this, 'theliaIfLoop'), - new SmartyPluginDescriptor('block', 'pageloop', $this, 'theliaPageLoop'), - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Translation.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Translation.php deleted file mode 100644 index 6eb83652..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Translation.php +++ /dev/null @@ -1,125 +0,0 @@ -translator = $translator; - } - - /** - * Set the default translation domain - * - * @param array $params - * @param \Smarty_Internal_Template $smarty - * @return string - */ - public function setDefaultTranslationDomain($params, &$smarty) - { - $this->defaultTranslationDomain = $this->getParam($params, 'domain'); - } - - /** - * Set the default locale - * - * @param array $params - * @param \Smarty_Internal_Template $smarty - * @return string - */ - public function setDefaultLocale($params, &$smarty) - { - $this->defaultLocale = $this->getParam($params, 'locale'); - } - - /** - * Process translate function - * - * @param array $params - * @param \Smarty_Internal_Template $smarty - * @return string - */ - public function translate($params, &$smarty) - { - // All parameters other than 'l' and 'd' and 'js' are supposed to be variables. Build an array of var => value pairs - // and pass it to the translator - $vars = array(); - - foreach ($params as $name => $value) { - if (!in_array($name, $this->protectedParams)) { - $vars["%$name"] = $value; - } - } - - $str = $this->translator->trans( - $this->getParam($params, 'l'), - $vars, - $this->getParam($params, 'd', $this->defaultTranslationDomain), - $this->getParam($params, 'locale', $this->defaultLocale), - $this->getBoolean($this->getParam($params, 'default', true), true), - $this->getBoolean($this->getParam($params, 'fallback', true), true) - ); - - if ($this->getParam($params, 'js', 0)) { - $str = preg_replace("/(['\"])/", "\\\\$1", $str); - } - - return $str; - } - - protected function getBoolean($value, $default = false) - { - $val = filter_var($value, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE); - if (null === $val) { - $val = $default; - } - - return $val; - } - - /** - * Define the various smarty plugins handled by this class - * - * @return \TheliaSmarty\Template\SmartyPluginDescriptor[] an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'intl', $this, 'translate'), - new SmartyPluginDescriptor('function', 'default_translation_domain', $this, 'setDefaultTranslationDomain'), - new SmartyPluginDescriptor('function', 'default_locale', $this, 'setDefaultLocale'), - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Type.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Type.php deleted file mode 100644 index 9140a13d..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Type.php +++ /dev/null @@ -1,47 +0,0 @@ -isValid($value)) { - return ''; - } - - return $value; - } - - /** - * Define the various smarty plugins handled by this class - * - * @return an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('modifier', 'assertType', $this, 'assertTypeModifier'), - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/UrlGenerator.php b/local/modules/modules/TheliaSmarty/Template/Plugins/UrlGenerator.php deleted file mode 100644 index 988a7202..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/UrlGenerator.php +++ /dev/null @@ -1,395 +0,0 @@ -requestStack = $requestStack; - $this->tokenProvider = $tokenProvider; - $this->container = $container; - } - - /** - * Process url generator function - * - * @param array $params - * @param \Smarty $smarty - * @return string no text is returned. - */ - public function generateUrlFunction($params, &$smarty) - { - // the path to process - $current = $this->getParam($params, 'current', false); - $path = $this->getParam($params, 'path', null); - // Do not invoke index.php in URL (get a static file in web space - $file = $this->getParam($params, 'file', null); - $routeId = $this->getParam($params, 'route_id', null); - // select default router - if ($this->getRequest()->fromAdmin()) { - $defaultRouter = 'admin'; - } elseif ($this->getRequest()->fromFront()) { - $defaultRouter = 'front'; - } else { - $defaultRouter = null; - } - $routerId = $this->getParam($params, 'router', $defaultRouter); - - if ($current) { - $path = $this->getRequest()->getPathInfo(); - unset($params["current"]); // Delete the current param, so it isn't included in the url - - // build the query variables - $params = array_merge( - $this->getRequest()->query->all(), - $params - ); - } - - if ($routeId !== null && $routerId !== null) { - $routerId = 'router.' . $routerId; - - // test if the router exists - if (!$this->container->has($routerId)) { - throw new \InvalidArgumentException( - 'The router "' . $routerId . '" not found.' - ); - } - // get url by router and id - /** @var Router $router */ - $router = $this->container->get($routerId); - - $url = $router->generate( - $routeId, - $this->getArgsFromParam($params, ['route_id', 'router']), - Router::ABSOLUTE_URL - ); - } else { - if ($file !== null) { - $path = $file; - $mode = URL::PATH_TO_FILE; - } elseif ($path !== null) { - $mode = URL::WITH_INDEX_PAGE; - } else { - throw new \InvalidArgumentException( - "Please specify either 'path', 'file' or router and route_id on parameters in {url} function." - ); - } - - $excludeParams = $this->resolvePath($params, $path, $smarty); - - $url = URL::getInstance()->absoluteUrl( - $path, - $this->getArgsFromParam($params, array_merge(['noamp', 'path', 'file', 'target'], $excludeParams)), - $mode - ); - - $request = $this->getRequest(); - $requestedLangCodeOrLocale = $params["lang"]; - $view = $request->attributes->get('_view', null); - $viewId = $view === null ? null : $request->query->get($view . '_id', null); - - if (null !== $requestedLangCodeOrLocale) { - if (strlen($requestedLangCodeOrLocale) > 2) { - $lang = LangQuery::create()->findOneByLocale($requestedLangCodeOrLocale); - } else { - $lang = LangQuery::create()->findOneByCode($requestedLangCodeOrLocale); - } - - if (ConfigQuery::isMultiDomainActivated()) { - $urlRewrite = RewritingUrlQuery::create() - ->filterByView($view) - ->filterByViewId($viewId) - ->filterByViewLocale($lang->getLocale()) - ->findOneByRedirected(null) - ; - - $path = ''; - if (null != $urlRewrite) { - $path = "/".$urlRewrite->getUrl(); - } - $url = rtrim($lang->getUrl(), "/").$request->getBaseUrl().$path; - } - - } - } - return $this->applyNoAmpAndTarget($params, $url); - } - - /** - * - * find placeholders in the path and replace them by the given value - * - * @param $params - * @param $path - * @param $smarty - * @return array the placeholders found - */ - protected function resolvePath(&$params, &$path, $smarty) - { - $placeholder = []; - - foreach ($params as $key => $value) { - if (false !== strpos($path, "%$key")) { - $placeholder["%$key"] = SmartyParser::theliaEscape($value, $smarty); - unset($params[$key]); - } - } - - $path = strtr($path, $placeholder); - $keys = array_keys($placeholder); - array_walk($keys, function(&$item, $key) { - $item = str_replace('%', '', $item); - }); - - return $keys; - } - - /** - * Process view url generator function - * - * @param array $params - * @param \Smarty $smarty - * @return string no text is returned. - */ - public function generateFrontViewUrlFunction($params, &$smarty) - { - return $this->generateViewUrlFunction($params, false); - } - - /** - * Process administration view url generator function - * - * @param array $params - * @param \Smarty $smarty - * @return string no text is returned. - */ - public function generateAdminViewUrlFunction($params, &$smarty) - { - return $this->generateViewUrlFunction($params, true); - } - - - public function navigateToUrlFunction($params, &$smarty) - { - $to = $this->getParam($params, 'to', null); - - $toMethod = $this->getNavigateToMethod($to); - - $url = URL::getInstance()->absoluteUrl( - $this->$toMethod(), - $this->getArgsFromParam($params, ['noamp', 'to', 'target']), - URL::WITH_INDEX_PAGE - ); - - return $this->applyNoAmpAndTarget($params, $url); - } - - protected function generateViewUrlFunction($params, $forAdmin) - { - // the view name (without .html) - $view = $this->getParam($params, 'view'); - - $args = $this->getArgsFromParam($params, array('view', 'noamp', 'target')); - - $url = $forAdmin ? URL::getInstance()->adminViewUrl($view, $args) : URL::getInstance()->viewUrl($view, $args); - - return $this->applyNoAmpAndTarget($params, $url); - } - - /** - * Get URL parameters array from parameters. - * - * @param array $params Smarty function params - * @param array $exclude Smarty function exclude params - * @return array the parameters array (either emply, of valued) - */ - private function getArgsFromParam($params, $exclude = array()) - { - $pairs = array(); - - foreach ($params as $name => $value) { - if (in_array($name, $exclude)) { - continue; - } - - $pairs[$name] = $value; - } - - return $pairs; - } - - public function generateUrlWithToken($params, &$smarty) - { - /** - * Compute the url - */ - $url = $this->generateUrlFunction($params, $smarty); - - $urlTokenParam = $this->getParam($params, "url_param", "_token"); - - /** - * Add the token - */ - $token = $this->tokenProvider->assignToken(); - - $newUrl = URL::getInstance()->absoluteUrl( - $url, - [ - $urlTokenParam => $token - ] - ); - - return $this->applyNoAmpAndTarget($params, $newUrl); - } - - protected function applyNoAmpAndTarget($params, $url) - { - $noamp = $this->getParam($params, 'noamp', null); // Do not change & in & - $target = $this->getParam($params, 'target', null); - - if (!$noamp) { - $url = str_replace('&', '&', $url); - } - - if ($target != null) { - $url .= '#'.$target; - } - - return $url; - } - - /** - * Set the _previous_url request attribute, to define the previous URL, or - * prevent saving the current URL as the previous one. - * - * @param array $params - * @param \Smarty_Internal_Template $smarty - */ - public function setPreviousUrlFunction($params, &$smarty) - { - $ignore_current = $this->getParam($params, 'ignore_current', false); - - if ($ignore_current !== false) { - $this->getRequest()->attributes->set('_previous_url', 'dont-save'); - } else { - $this->getRequest()->attributes->set('_previous_url', $this->generateUrlFunction($params, $smarty)); - } - } - - /** - * Define the various smarty plugins handled by this class - * - * @return array an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'url', $this, 'generateUrlFunction'), - new SmartyPluginDescriptor('function', 'token_url', $this, 'generateUrlWithToken'), - new SmartyPluginDescriptor('function', 'viewurl', $this, 'generateFrontViewUrlFunction'), - new SmartyPluginDescriptor('function', 'admin_viewurl', $this, 'generateAdminViewUrlFunction'), - new SmartyPluginDescriptor('function', 'navigate', $this, 'navigateToUrlFunction'), - new SmartyPluginDescriptor('function', 'set_previous_url', $this, 'setPreviousUrlFunction') - ); - } - - /** - * @return array sur le format "to_value" => "method_name" - */ - protected function getNavigateToValues() - { - return array( - "current" => "getCurrentUrl", - "previous" => "getPreviousUrl", - "index" => "getIndexUrl", - ); - } - - protected function getNavigateToMethod($to) - { - if ($to === null) { - throw new \InvalidArgumentException("Missing 'to' parameter in `navigate` substitution."); - } - - $navigateToValues = $this->getNavigateToValues(); - - if (!array_key_exists($to, $navigateToValues)) { - throw new \InvalidArgumentException( - sprintf("Incorrect value `%s` for parameter `to` in `navigate` substitution.", $to) - ); - } - - return $navigateToValues[$to]; - } - - protected function getCurrentUrl() - { - return $this->getRequest()->getUri(); - } - - protected function getPreviousUrl() - { - return URL::getInstance()->absoluteUrl($this->getSession()->getReturnToUrl()); - } - - protected function getIndexUrl() - { - return URL::getInstance()->getIndexPage(); - } - - /** - * @return Request - */ - protected function getRequest() - { - return $this->requestStack->getCurrentRequest(); - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->getRequest()->getSession(); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/SmartyHelper.php b/local/modules/modules/TheliaSmarty/Template/SmartyHelper.php deleted file mode 100644 index 2bed38f8..00000000 --- a/local/modules/modules/TheliaSmarty/Template/SmartyHelper.php +++ /dev/null @@ -1,178 +0,0 @@ - - */ -class SmartyHelper implements ParserHelperInterface -{ - /** - * Parse a string and get all smarty function and block with theirs arguments. - * some smarty functions are not supported : if, for, ... - * - * - * - * @param string $content the template content - * @param array $functions the only functions we want to parse - * - * @return array array of functions with 2 index name and attributes an array of name, value - */ - public function getFunctionsDefinition($content, array $functions = array()) - { - $strlen = strlen($content); - - // init - $buffer = ''; - $name = ''; - $attributeName = ''; - $waitfor = ''; - - $inFunction = false; - $hasName = false; - $inAttribute = false; - $inInnerFunction = false; - - $ldelim = '{'; - $rdelim = '}'; - $skipFunctions = array("if", "for"); - $skipCharacters = array("\t", "\r", "\n"); - - $store = array(); - $attributes = array(); - - for ($pos = 0; $pos < $strlen; $pos++) { - $char = $content[$pos]; - - if (in_array($char, $skipCharacters)) { - continue; - } - - if (!$inFunction) { - if ($char === $ldelim) { - $inFunction = true; - $inInnerFunction = false; - } - continue; - } - - // get function name - if (!$hasName) { - if ($char === " " || $char === $rdelim) { - $name = $buffer; - // we catch this name ? - $hasName = $inFunction = (!in_array($name, $skipFunctions) && (0 === count($functions) || in_array($name, $functions))); - $buffer = ""; - continue; - } else { - // skip { - if (in_array($char, array("/", "$", "#", "'", "\""))) { - $inFunction = false; - } else { - $buffer .= $char; - } - continue; - } - } - - // inner Function ? - if ($char === $ldelim) { - $inInnerFunction = true; - $buffer .= $char; - continue; - } - - // end ? - if ($char === $rdelim) { - if ($inInnerFunction) { - $inInnerFunction = false; - $buffer .= $char; - } else { - if ($inAttribute) { - if ("" === $attributeName) { - $attributes[trim($buffer)] = ""; - } else { - $attributes[$attributeName] = $buffer; - } - $inAttribute = false; - } - $store[] = array( - "name" => $name, - "attributes" => $attributes - ); - $inFunction = false; - $inAttribute = false; - $inInnerFunction = false; - $hasName = false; - $name = ""; - $buffer = ""; - $waitfor = ""; - $attributes = array(); - } - continue; - } - - // attributes - if (!$inAttribute) { - if ($char !== " ") { - $inAttribute = true; - $buffer = $char; - $attributeName = ""; - } - } else { - if ("" === $attributeName) { - if (in_array($char, array(" ", "="))) { - $attributeName = trim($buffer); - if (" " === $char) { - $attributes[$attributeName] = ""; - $inAttribute = false; - } - $buffer = ""; - } else { - $buffer .= $char; - } - } else { - if ("" === $waitfor) { - if (in_array($char, array("'", "\""))) { - $waitfor = $char; - } else { - $waitfor = " "; - $buffer .= $char; - } - continue; - } - if ($inInnerFunction) { - $buffer .= $char; - } else { - // end of attribute ? - if ($char === $waitfor) { - $attributes[$attributeName] = $buffer; - $inAttribute = false; - $waitfor = ""; - } else { - $buffer .= $char; - } - } - } - } - } - - return $store; - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/SmartyParser.php b/local/modules/modules/TheliaSmarty/Template/SmartyParser.php deleted file mode 100644 index 679dbbff..00000000 --- a/local/modules/modules/TheliaSmarty/Template/SmartyParser.php +++ /dev/null @@ -1,514 +0,0 @@ - - * @author Etienne Roudeix - */ -class SmartyParser extends Smarty implements ParserInterface -{ - public $plugins = array(); - - /** @var EventDispatcherInterface */ - protected $dispatcher; - - /** @var ParserContext */ - protected $parserContext; - - /** @var TemplateHelperInterface */ - protected $templateHelper; - - /** @var RequestStack */ - protected $requestStack; - - protected $backOfficeTemplateDirectories = array(); - protected $frontOfficeTemplateDirectories = array(); - - protected $templateDirectories = array(); - - /** @var TemplateDefinition */ - protected $templateDefinition; - - /** @var int */ - protected $status = 200; - - /** @var string */ - protected $env; - - /** @var bool */ - protected $debug; - - /** - * @param RequestStack $requestStack - * @param EventDispatcherInterface $dispatcher - * @param ParserContext $parserContext - * @param TemplateHelperInterface $templateHelper - * @param string $env - * @param bool $debug - */ - public function __construct( - RequestStack $requestStack, - EventDispatcherInterface $dispatcher, - ParserContext $parserContext, - TemplateHelperInterface $templateHelper, - $env = "prod", - $debug = false - ) { - parent::__construct(); - - $this->requestStack = $requestStack; - $this->dispatcher = $dispatcher; - $this->parserContext = $parserContext; - $this->templateHelper = $templateHelper; - $this->env = $env; - $this->debug = $debug; - - // Configure basic Smarty parameters - - $compile_dir = THELIA_ROOT . 'cache'. DS . $env . DS . 'smarty' . DS . 'compile'; - if (! is_dir($compile_dir)) { - @mkdir($compile_dir, 0777, true); - } - - $cache_dir = THELIA_ROOT . 'cache'. DS . $env . DS . 'smarty' . DS . 'cache'; - if (! is_dir($cache_dir)) { - @mkdir($cache_dir, 0777, true); - } - - $this->setCompileDir($compile_dir); - $this->setCacheDir($cache_dir); - $this->inheritance_merge_compiled_includes = false; - - // Prevent smarty ErrorException: Notice: Undefined index bla bla bla... - $this->error_reporting = E_ALL ^ E_NOTICE; - - // The default HTTP status - $this->status = 200; - - $this->registerFilter('output', array($this, "trimWhitespaces")); - $this->registerFilter('variable', array(__CLASS__, "theliaEscape")); - } - - /** - * Return the current request or null if no request exists - * - * @return Request|null - */ - public function getRequest() - { - return $this->requestStack->getCurrentRequest(); - } - - /** - * Trim whitespaces from the HTML output, preserving required ones in pre, textarea, javascript. - * This methois uses 3 levels of trimming : - * - * - 0 : whitespaces are not trimmed, code remains as is. - * - 1 : only blank lines are trimmed, code remains indented and human-readable (the default) - * - 2 or more : all unnecessary whitespace are removed. Code is very hard to read. - * - * The trim level is defined by the configuration variable html_output_trim_level - * - * @param string $source the HTML source - * @param \Smarty_Internal_Template $template - * @return string - */ - public function trimWhitespaces($source, /** @noinspection PhpUnusedParameterInspection */ \Smarty_Internal_Template $template) - { - $compressionMode = ConfigQuery::read('html_output_trim_level', 1); - - if ($compressionMode == 0) { - return $source; - } - - $store = array(); - $_store = 0; - $_offset = 0; - - // Unify Line-Breaks to \n - $source = preg_replace("/\015\012|\015|\012/", "\n", $source); - - // capture Internet Explorer Conditional Comments - if ($compressionMode == 1) { - $expressions = array( - // remove spaces between attributes (but not in attribute values!) - '#(([a-z0-9]\s*=\s*(["\'])[^\3]*?\3)|<[a-z0-9_]+)\s+([a-z/>])#is' => '\1 \4', - '/(^[\n]*|[\n]+)[\s\t]*[\n]+/' => "\n" - ); - } elseif ($compressionMode >= 2) { - if (preg_match_all('##is', $source, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER)) { - foreach ($matches as $match) { - $store[] = $match[0][0]; - $_length = strlen($match[0][0]); - $replace = '@!@SMARTY:' . $_store . ':SMARTY@!@'; - $source = substr_replace($source, $replace, $match[0][1] - $_offset, $_length); - - $_offset += $_length - strlen($replace); - $_store++; - } - } - - // Strip all HTML-Comments - // yes, even the ones in - - - - - - \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/config/.htaccess b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/config/.htaccess deleted file mode 100644 index 14249c50..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/config/.htaccess +++ /dev/null @@ -1 +0,0 @@ -Deny from all \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/config/config.php b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/config/config.php deleted file mode 100644 index ef7eef7e..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/config/config.php +++ /dev/null @@ -1,349 +0,0 @@ -exists($webMediaEnvPath)) { - $fileSystem->mkdir($webMediaEnvPath.DS.'upload'); - $fileSystem->mkdir($webMediaEnvPath.DS.'thumbs'); - } - } else { - if (false === $fileSystem->exists($webMediaPath)) { - $fileSystem->mkdir($webMediaPath.DS.'upload'); - $fileSystem->mkdir($webMediaPath.DS.'thumbs'); - } - } -} - -$env = getenv('THELIA_ENV') ?: 'prod'; - -if (file_exists(__DIR__.'/../../../../../../../../core/vendor/autoload.php')) { - // Symlinked with std install - require_once __DIR__.'/../../../../../../../../core/vendor/autoload.php'; -} elseif (file_exists(__DIR__.'/../../../../core/vendor/autoload.php')) { - // Hard copy with std install - require_once __DIR__.'/../../../../core/vendor/autoload.php'; -} elseif (file_exists(__DIR__.'/../../../../../../../../bootstrap.php')) { - // Symlinked with thelia-project - require_once __DIR__.'/../../../../../../../../bootstrap.php'; -} elseif (file_exists(__DIR__.'/../../../../bootstrap.php')) { - // Hard copy with thelia-project - require_once __DIR__.'/../../../../bootstrap.php'; -} - -/** @var Request $request */ -$request = Request::createFromGlobals(); - -$thelia = new Thelia($env, false); - -$thelia->boot(); - -/** @var \Symfony\Component\DependencyInjection\ContainerInterface $container */ -$container = $thelia->getContainer(); - -$eventDispatcher = $container->get('event_dispatcher'); -$container->get('thelia.translator'); -$container->get('thelia.url.manager'); -$container->set('request', $request); -$container->get('request_stack')->push($request); -$event = new \Thelia\Core\Event\SessionEvent(THELIA_CACHE_DIR.$env, false, $env); - -$eventDispatcher->dispatch(\Thelia\Core\TheliaKernelEvents::SESSION, $event); -$session = $event->getSession(); -$session->start(); -$request->setSession($session); - -/** @var \Thelia\Core\Security\SecurityContext $securityContext */ -$securityContext = $container->get('thelia.securityContext'); - -// We just check the current user has the ADMIN role. -$isGranted = $securityContext->isGranted(['ADMIN'], [], [], []); - -if (false === $isGranted) { - echo "Sorry, it seems that you're not allowed to use this function. ADMIN role is required."; - - exit; -} - -//------------------------------------------------------------------------------ -// DO NOT COPY THESE VARIABLES IN FOLDERS config.php FILES -//------------------------------------------------------------------------------ - -//********************** -//Path configuration -//********************** - -// In this configuration the media folder is located in the /web directory. - -// base url of site (without final /). if you prefer relative urls leave empty. -$base_url = rtrim(ConfigQuery::getConfiguredShopUrl(), '/'); - -// Argh, url_site is not defined ?! -if (empty($base_url)) { - // A we did not used the router to access this dialog, we cannot use the URL class. Use the good old method. - $base_url = $request->getSchemeAndHttpHost().preg_replace('!/tinymce/filemanager/dialog.php.*$!', '', $_SERVER['REQUEST_URI']); -} - -//Check for backward compatibility -if ($env !== "prod") { - // path from base_url to base of upload folder for current env (with start and final /) - $upload_dir = '/media/'.$env.'/upload/'; - - // path from base_url to base of upload folder for current env (with start and final /) - $thumbs_dir = '/media/'.$env.'/thumbs/'; - - // path to file manager folder to upload folder for current env (with final /) - $current_path = THELIA_WEB_DIR.'media'.DS.$env.DS.'upload'.DS; - - // path to file manager folder to thumbs folder for current env (with final /) - // WARNING: thumbs folder should not be inside the upload folder - $thumbs_base_path = THELIA_WEB_DIR.'media'.DS.$env.DS.'thumbs'.DS; -} else { - // path from base_url to base of upload folder (with start and final /) - $upload_dir = '/media/upload/'; - - // path from base_url to base of upload folder (with start and final /) - $thumbs_dir = '/media/thumbs/'; - - // path to file manager folder to upload folder (with final /) - $current_path = THELIA_WEB_DIR.'media'.DS.'upload'.DS; - - // path to file manager folder to thumbs folder (with final /) - // WARNING: thumbs folder should not be inside the upload folder - $thumbs_base_path = THELIA_WEB_DIR.'media'.DS.'thumbs'.DS; -} - -generateFolder($env); - -// path from base_url to filemanager folder (with start and final /) -$filemanager_dir = '/tinymce/filemanager/'; - -// Set the language to the back-office current language, if it is available -$current_locale = $request->getSession()->getLang()->getLocale(); - -if (file_exists(__DIR__.DS.'..'.DS.'lang.'.DS.$current_locale.'.php')) { - $default_language = $current_locale; -} else { - $default_language = 'en_EN'; -} - -// OPTIONAL SECURITY -// if set to true only those will access RF whose url contains the access key(akey) like: -// -// in tinymce a new parameter added: filemanager_access_key:"myPrivateKey" -// example tinymce config: -// tiny init ... -// -// external_filemanager_path:"../filemanager/", -// filemanager_title:"Filemanager" , -// filemanager_access_key:"myPrivateKey" , -// ... -define('USE_ACCESS_KEYS', false); // TRUE or FALSE - -// add access keys eg: array('myPrivateKey', 'someoneElseKey'); -// keys should only containt (a-z A-Z 0-9 \ . _ -) characters -// if you are integrating lets say to a cms for admins, i recommend making keys randomized something like this: -// $username = 'Admin'; -// $salt = 'dsflFWR9u2xQa' (a hard coded string) -// $akey = md5($username.$salt); -// DO NOT use 'key' as access key! -// Keys are CASE SENSITIVE! -$access_keys = array('myPrivateKey', 'someoneElseKey'); - -//-------------------------------------------------------------------------------------------------------- -// YOU CAN COPY AND CHANGE THESE VARIABLES INTO FOLDERS config.php FILES TO CUSTOMIZE EACH FOLDER OPTIONS -//-------------------------------------------------------------------------------------------------------- - -$MaxSizeUpload = 100; //Mb - -// SERVER OVERRIDE -if ((int) (ini_get('post_max_size')) < $MaxSizeUpload) { - $MaxSizeUpload = (int) (ini_get('post_max_size')); -} - -// $default_language = "en_EN"; //default language file name -$icon_theme = "ico"; //ico or ico_dark you can cusatomize just putting a folder inside filemanager/img -$show_folder_size = true; //Show or not show folder size in list view feature in filemanager (is possible, if there is a large folder, to greatly increase the calculations) -$show_sorting_bar = true; //Show or not show sorting feature in filemanager -$loading_bar = true; //Show or not show loading bar -$transliteration = false; //active or deactive the transliteration (mean convert all strange characters in A..Za..z0..9 characters) - -//******************************************* -//Images limit and resizing configuration -//******************************************* - -// set maximum pixel width and/or maximum pixel height for all images -// If you set a maximum width or height, oversized images are converted to those limits. Images smaller than the limit(s) are unaffected -// if you don't need a limit set both to 0 -$image_max_width = 0; -$image_max_height = 0; - -//Automatic resizing // -// If you set $image_resizing to TRUE the script converts all uploaded images exactly to image_resizing_width x image_resizing_height dimension -// If you set width or height to 0 the script automatically calculates the other dimension -// Is possible that if you upload very big images the script not work to overcome this increase the php configuration of memory and time limit -$image_resizing = false; -$image_resizing_width = 0; -$image_resizing_height = 0; - -//****************** -// Default layout setting -// -// 0 => boxes -// 1 => detailed list (1 column) -// 2 => columns list (multiple columns depending on the width of the page) -// YOU CAN ALSO PASS THIS PARAMETERS USING SESSION VAR => $_SESSION['RF']["VIEW"]= -// -//****************** -$default_view = 0; - -//set if the filename is truncated when overflow first row -$ellipsis_title_after_first_row = true; - -//************************* -//Permissions configuration -//****************** -$delete_files = true; -$create_folders = true; -$delete_folders = true; -$upload_files = true; -$rename_files = true; -$rename_folders = true; -$duplicate_files = true; -$copy_cut_files = true; // for copy/cut files -$copy_cut_dirs = true; // for copy/cut directories - - -// defines size limit for paste in MB / operation -// set 'FALSE' for no limit -$copy_cut_max_size = 100; -// defines file count limit for paste / operation -// set 'FALSE' for no limit -$copy_cut_max_count = 200; -//IF any of these limits reached, operation won't start and generate warning - -//********************** -//Allowed extensions (lowercase insert) -//********************** -$ext_img = array('jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg'); //Images -$ext_file = array( - 'doc', - 'docx', - 'rtf', - 'pdf', - 'xls', - 'xlsx', - 'txt', - 'csv', - 'html', - 'xhtml', - 'psd', - 'sql', - 'log', - 'fla', - 'xml', - 'ade', - 'adp', - 'mdb', - 'accdb', - 'ppt', - 'pptx', - 'odt', - 'ots', - 'ott', - 'odb', - 'odg', - 'otp', - 'otg', - 'odf', - 'ods', - 'odp', - 'css', - 'ai', -); //Files -$ext_video = array('mov', 'mpeg', 'mp4', 'avi', 'mpg', 'wma', "flv", "webm"); //Video -$ext_music = array('mp3', 'm4a', 'ac3', 'aiff', 'mid', 'ogg', 'wav'); //Audio -$ext_misc = array('zip', 'rar', 'gz', 'tar', 'iso', 'dmg'); //Archives - -$ext = array_merge($ext_img, $ext_file, $ext_misc, $ext_video, $ext_music); //allowed extensions - -/****************** - * AVIARY config - *******************/ -$aviary_active = false; -$aviary_key = "dvh8qudbp6yx2bnp"; -$aviary_secret = "m6xaym5q42rpw433"; -$aviary_version = 3; -$aviary_language = 'en'; - -//The filter and sorter are managed through both javascript and php scripts because if you have a lot of -//file in a folder the javascript script can't sort all or filter all, so the filemanager switch to php script. -//The plugin automatic swich javascript to php when the current folder exceeds the below limit of files number -$file_number_limit_js = 500; - -//********************** -// Hidden files and folders -//********************** -// set the names of any folders you want hidden (eg "hidden_folder1", "hidden_folder2" ) Remember all folders with these names will be hidden (you can set any exceptions in config.php files on folders) -$hidden_folders = array(); -// set the names of any files you want hidden. Remember these names will be hidden in all folders (eg "this_document.pdf", "that_image.jpg" ) -$hidden_files = array('config.php'); - -/******************* - * JAVA upload - *******************/ -$java_upload = true; -$JAVAMaxSizeUpload = 200; //Gb - - -//************************************ -//Thumbnail for external use creation -//************************************ - - -// New image resized creation with fixed path from filemanager folder after uploading (thumbnails in fixed mode) -// If you want create images resized out of upload folder for use with external script you can choose this method, -// You can create also more than one image at a time just simply add a value in the array -// Remember than the image creation respect the folder hierarchy so if you are inside source/test/test1/ the new image will create at -// path_from_filemanager/test/test1/ -// PS if there isn't write permission in your destination folder you must set it -$fixed_image_creation = false; //activate or not the creation of one or more image resized with fixed path from filemanager folder -$fixed_path_from_filemanager = array( - '../test/', - '../test1/', -); //fixed path of the image folder from the current position on upload folder -$fixed_image_creation_name_to_prepend = array('', 'test_'); //name to prepend on filename -$fixed_image_creation_to_append = array('_test', ''); //name to appendon filename -$fixed_image_creation_width = array(300, 400); //width of image (you can leave empty if you set height) -$fixed_image_creation_height = array(200, ''); //height of image (you can leave empty if you set width) - - -// New image resized creation with relative path inside to upload folder after uploading (thumbnails in relative mode) -// With Responsive filemanager you can create automatically resized image inside the upload folder, also more than one at a time -// just simply add a value in the array -// The image creation path is always relative so if i'm inside source/test/test1 and I upload an image, the path start from here -$relative_image_creation = false; //activate or not the creation of one or more image resized with relative path from upload folder -$relative_path_from_current_pos = array( - 'thumb/', - 'thumb/', -); //relative path of the image folder from the current position on upload folder -$relative_image_creation_name_to_prepend = array('', 'test_'); //name to prepend on filename -$relative_image_creation_name_to_append = array('_test', ''); //name to append on filename -$relative_image_creation_width = array(300, 400); //width of image (you can leave empty if you set height) -$relative_image_creation_height = array(200, ''); //height of image (you can leave empty if you set width) -; diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-lightbox.min.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-lightbox.min.css deleted file mode 100644 index 70414368..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-lightbox.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! -* bootstrap-lightbox.css v0.6.0 -* Copyright 2013 Jason Butz -* http://www.apache.org/licenses/LICENSE-2.0.txt -*/ -.lightbox{position:relative;top:70px;z-index:1050;line-height:0;text-align:center;background-color:transparent;outline:0}.lightbox .hide{display:none}.lightbox .in{display:block}.lightbox-content{display:inline-block;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.lightbox-content .lightbox-caption{position:absolute;right:12px;bottom:11px;left:11px;padding:2%;font-size:14px;line-height:18px;color:white;text-align:center;text-shadow:0 -1px 0 #000;text-shadow:0 -1px 0 rgba(0,0,0,0.3);background:#000;background:rgba(0,0,0,0.6)}.lightbox-header .close{margin-top:-16px;margin-right:-16px;font-size:2em;color:white;opacity:.8;filter:alpha(opacity=80)}.lightbox-header .close :hover{opacity:.4;filter:alpha(opacity=40)} diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-modal.min.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-modal.min.css deleted file mode 100644 index 373c1b6b..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-modal.min.css +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * Bootstrap Modal - * - * Copyright Jordan Schroter - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - */.modal-open{overflow:hidden}.modal-open.page-overflow .page-container,.modal-open.page-overflow .page-container .navbar-fixed-top,.modal-open.page-overflow .page-container .navbar-fixed-bottom,.modal-open.page-overflow .modal-scrollable{overflow-y:scroll}@media (max-width:840px){.modal-open.page-overflow .page-container .navbar-fixed-top,.modal-open.page-overflow .page-container .navbar-fixed-bottom{overflow-y:visible}}.modal-scrollable{position:fixed;top:0;bottom:0;left:0;right:0;overflow:auto}.modal{outline:0;position:absolute;margin-top:0;top:50%;overflow:visible}.modal.fade{top:-100%;-webkit-transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out;transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out}.modal.fade.in{top:50%}.modal-body{max-height:none;overflow:visible}.modal.modal-absolute{position:absolute;z-index:950}.modal .loading-mask{position:absolute;top:0;bottom:0;left:0;right:0;background:#fff;border-radius:6px}.modal-backdrop.modal-absolute{position:absolute;z-index:940}.modal-backdrop,.modal-backdrop.fade.in{opacity:.85;filter:alpha(opacity=85);background:#eee}.modal.container{width:940px;margin-left:-470px}.modal-overflow.modal{top:1%}.modal-overflow.modal.fade{top:-100%}.modal-overflow.modal.fade.in{top:1%}.modal-overflow .modal-body{overflow:auto;-webkit-overflow-scrolling:touch}@media (min-width:1200px){.modal.container{width:1170px;margin-left:-585px}}@media (max-width:840px){.modal,.modal.container,.modal.modal-overflow{top:1%;right:1%;left:1%;bottom:auto;width:auto!important;height:auto!important;margin:0!important;padding:0!important}.modal.fade.in,.modal.container.fade.in,.modal.modal-overflow.fade.in{top:1%;bottom:auto}.modal-body,.modal-overflow .modal-body{position:static;margin:0;height:auto!important;max-height:none!important;overflow:visible!important}.modal-footer,.modal-overflow .modal-footer{position:static}}.loading-spinner{position:absolute;top:50%;left:50%;margin:-12px 0 0 -12px}.animated{-webkit-animation-duration:1s;-moz-animation-duration:1s;-o-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px)}}@-moz-keyframes shake{0%,100%{-moz-transform:translateX(0)}10%,30%,50%,70%,90%{-moz-transform:translateX(-10px)}20%,40%,60%,80%{-moz-transform:translateX(10px)}}@-o-keyframes shake{0%,100%{-o-transform:translateX(0)}10%,30%,50%,70%,90%{-o-transform:translateX(-10px)}20%,40%,60%,80%{-o-transform:translateX(10px)}}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}.shake{-webkit-animation-name:shake;-moz-animation-name:shake;-o-animation-name:shake;animation-name:shake} \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-responsive.min.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-responsive.min.css deleted file mode 100644 index 0de1c5db..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-responsive.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Bootstrap Responsive v2.3.1 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:839px) and (max-width:839px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:839px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:839px) and (max-width:839px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:839px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:839px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:840px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap.min.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap.min.css deleted file mode 100644 index c10c7f41..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Bootstrap v2.3.1 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.css deleted file mode 100644 index bb839c21..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.css +++ /dev/null @@ -1,410 +0,0 @@ -/* The MIT License */ -.dropzone, -.dropzone *, -.dropzone-previews, -.dropzone-previews * { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.dropzone { - position: relative; - border: 1px solid rgba(0,0,0,0.08); - background: rgba(0,0,0,0.02); - padding: 1em; -} -.dropzone.dz-clickable { - cursor: pointer; -} -.dropzone.dz-clickable .dz-message, -.dropzone.dz-clickable .dz-message span { - cursor: pointer; -} -.dropzone.dz-clickable * { - cursor: default; -} -.dropzone .dz-message { - opacity: 1; - -ms-filter: none; - filter: none; -} -.dropzone.dz-drag-hover { - border-color: rgba(0,0,0,0.15); - background: rgba(0,0,0,0.04); -} -.dropzone.dz-started .dz-message { - display: none; -} -.dropzone .dz-preview, -.dropzone-previews .dz-preview { - background: rgba(255,255,255,0.8); - position: relative; - display: inline-block; - margin: 17px; - vertical-align: top; - border: 1px solid #acacac; - padding: 6px 6px 6px 6px; -} -.dropzone .dz-preview.dz-file-preview [data-dz-thumbnail], -.dropzone-previews .dz-preview.dz-file-preview [data-dz-thumbnail] { - display: none; -} -.dropzone .dz-preview .dz-details, -.dropzone-previews .dz-preview .dz-details { - width: 100px; - height: 100px; - position: relative; - background: #ebebeb; - padding: 5px; - margin-bottom: 22px; -} -.dropzone .dz-preview .dz-details .dz-filename, -.dropzone-previews .dz-preview .dz-details .dz-filename { - overflow: hidden; - height: 100%; -} -.dropzone .dz-preview .dz-details img, -.dropzone-previews .dz-preview .dz-details img { - position: absolute; - top: 0; - left: 0; - width: 100px; - height: 100px; -} -.dropzone .dz-preview .dz-details .dz-size, -.dropzone-previews .dz-preview .dz-details .dz-size { - position: absolute; - bottom: -28px; - left: 3px; - height: 28px; - line-height: 28px; -} -.dropzone .dz-preview.dz-error .dz-error-mark, -.dropzone-previews .dz-preview.dz-error .dz-error-mark { - display: block; -} -.dropzone .dz-preview.dz-success .dz-success-mark, -.dropzone-previews .dz-preview.dz-success .dz-success-mark { - display: block; -} -.dropzone .dz-preview:hover .dz-details img, -.dropzone-previews .dz-preview:hover .dz-details img { - display: none; -} -.dropzone .dz-preview .dz-success-mark, -.dropzone-previews .dz-preview .dz-success-mark, -.dropzone .dz-preview .dz-error-mark, -.dropzone-previews .dz-preview .dz-error-mark { - display: none; - position: absolute; - width: 40px; - height: 40px; - font-size: 30px; - text-align: center; - right: -10px; - top: -10px; -} -.dropzone .dz-preview .dz-success-mark, -.dropzone-previews .dz-preview .dz-success-mark { - color: #8cc657; -} -.dropzone .dz-preview .dz-error-mark, -.dropzone-previews .dz-preview .dz-error-mark { - color: #ee162d; -} -.dropzone .dz-preview .dz-progress, -.dropzone-previews .dz-preview .dz-progress { - position: absolute; - top: 100px; - left: 6px; - right: 6px; - height: 6px; - background: #d7d7d7; - display: none; -} -.dropzone .dz-preview .dz-progress .dz-upload, -.dropzone-previews .dz-preview .dz-progress .dz-upload { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 0%; - background-color: #8cc657; -} -.dropzone .dz-preview.dz-processing .dz-progress, -.dropzone-previews .dz-preview.dz-processing .dz-progress { - display: block; -} -.dropzone .dz-preview .dz-error-message, -.dropzone-previews .dz-preview .dz-error-message { - display: none; - position: absolute; - top: -5px; - left: -20px; - background: rgba(245,245,245,0.8); - padding: 8px 10px; - color: #800; - min-width: 140px; - max-width: 500px; - z-index: 500; -} -.dropzone .dz-preview:hover.dz-error .dz-error-message, -.dropzone-previews .dz-preview:hover.dz-error .dz-error-message { - display: block; -} -.dropzone { - border: 1px solid rgba(0,0,0,0.03); - min-height: 360px; - -webkit-border-radius: 3px; - border-radius: 3px; - background: rgba(0,0,0,0.03); - padding: 23px; -} -.dropzone .dz-default.dz-message { - opacity: 1; - -ms-filter: none; - filter: none; - -webkit-transition: opacity 0.3s ease-in-out; - -moz-transition: opacity 0.3s ease-in-out; - -o-transition: opacity 0.3s ease-in-out; - -ms-transition: opacity 0.3s ease-in-out; - transition: opacity 0.3s ease-in-out; - /*background-image: url("../img/spritemap.png");*/ - background-repeat: no-repeat; - background-position: 0 0; - position: absolute; - width: 428px; - height: 123px; - margin-left: -214px; - margin-top: -61.5px; - top: 50%; - left: 50%; -} -@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) { - .dropzone .dz-default.dz-message { - /*background-image: url("../img/spritemap@2x.png");*/ - -webkit-background-size: 428px 406px; - -moz-background-size: 428px 406px; - background-size: 428px 406px; - } -} -.dropzone .dz-default.dz-message span { - display: none; -} -.dropzone.dz-square .dz-default.dz-message { - background-position: 0 -123px; - width: 268px; - margin-left: -134px; - height: 174px; - margin-top: -87px; -} -.dropzone.dz-drag-hover .dz-message { - opacity: 0.15; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=15)"; - filter: alpha(opacity=15); -} -.dropzone.dz-started .dz-message { - display: block; - opacity: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); -} -.dropzone .dz-preview, -.dropzone-previews .dz-preview { - -webkit-box-shadow: 1px 1px 4px rgba(0,0,0,0.16); - box-shadow: 1px 1px 4px rgba(0,0,0,0.16); - font-size: 14px; -} -.dropzone .dz-preview.dz-image-preview:hover .dz-details img, -.dropzone-previews .dz-preview.dz-image-preview:hover .dz-details img { - display: block; - opacity: 0.1; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; - filter: alpha(opacity=10); -} -.dropzone .dz-preview.dz-success .dz-success-mark, -.dropzone-previews .dz-preview.dz-success .dz-success-mark { - opacity: 1; - -ms-filter: none; - filter: none; -} -.dropzone .dz-preview.dz-error .dz-error-mark, -.dropzone-previews .dz-preview.dz-error .dz-error-mark { - opacity: 1; - -ms-filter: none; - filter: none; -} -.dropzone .dz-preview.dz-error .dz-progress .dz-upload, -.dropzone-previews .dz-preview.dz-error .dz-progress .dz-upload { - background: #ee1e2d; -} -.dropzone .dz-preview .dz-error-mark, -.dropzone-previews .dz-preview .dz-error-mark, -.dropzone .dz-preview .dz-success-mark, -.dropzone-previews .dz-preview .dz-success-mark { - display: block; - opacity: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -webkit-transition: opacity 0.4s ease-in-out; - -moz-transition: opacity 0.4s ease-in-out; - -o-transition: opacity 0.4s ease-in-out; - -ms-transition: opacity 0.4s ease-in-out; - transition: opacity 0.4s ease-in-out; - /*background-image: url("../img/spritemap.png");*/ - background-repeat: no-repeat; -} -@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) { - .dropzone .dz-preview .dz-error-mark, - .dropzone-previews .dz-preview .dz-error-mark, - .dropzone .dz-preview .dz-success-mark, - .dropzone-previews .dz-preview .dz-success-mark { - /*background-image: url("../img/spritemap@2x.png");*/ - -webkit-background-size: 428px 406px; - -moz-background-size: 428px 406px; - background-size: 428px 406px; - } -} -.dropzone .dz-preview .dz-error-mark span, -.dropzone-previews .dz-preview .dz-error-mark span, -.dropzone .dz-preview .dz-success-mark span, -.dropzone-previews .dz-preview .dz-success-mark span { - display: none; -} -.dropzone .dz-preview .dz-error-mark, -.dropzone-previews .dz-preview .dz-error-mark { - background-position: -268px -123px; -} -.dropzone .dz-preview .dz-success-mark, -.dropzone-previews .dz-preview .dz-success-mark { - background-position: -268px -163px; -} -.dropzone .dz-preview .dz-progress .dz-upload, -.dropzone-previews .dz-preview .dz-progress .dz-upload { - -webkit-animation: loading 0.4s linear infinite; - -moz-animation: loading 0.4s linear infinite; - -o-animation: loading 0.4s linear infinite; - -ms-animation: loading 0.4s linear infinite; - animation: loading 0.4s linear infinite; - -webkit-transition: width 0.3s ease-in-out; - -moz-transition: width 0.3s ease-in-out; - -o-transition: width 0.3s ease-in-out; - -ms-transition: width 0.3s ease-in-out; - transition: width 0.3s ease-in-out; - -webkit-border-radius: 2px; - border-radius: 2px; - position: absolute; - top: 0; - left: 0; - width: 0%; - height: 100%; - /*background-image: url("../img/spritemap.png");*/ - background-repeat: repeat-x; - background-position: 0px -400px; -} -@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) { - .dropzone .dz-preview .dz-progress .dz-upload, - .dropzone-previews .dz-preview .dz-progress .dz-upload { - /*background-image: url("../img/spritemap@2x.png");*/ - -webkit-background-size: 428px 406px; - -moz-background-size: 428px 406px; - background-size: 428px 406px; - } -} -.dropzone .dz-preview.dz-success .dz-progress, -.dropzone-previews .dz-preview.dz-success .dz-progress { - display: block; - opacity: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -webkit-transition: opacity 0.4s ease-in-out; - -moz-transition: opacity 0.4s ease-in-out; - -o-transition: opacity 0.4s ease-in-out; - -ms-transition: opacity 0.4s ease-in-out; - transition: opacity 0.4s ease-in-out; -} -.dropzone .dz-preview .dz-error-message, -.dropzone-previews .dz-preview .dz-error-message { - display: block; - opacity: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -webkit-transition: opacity 0.3s ease-in-out; - -moz-transition: opacity 0.3s ease-in-out; - -o-transition: opacity 0.3s ease-in-out; - -ms-transition: opacity 0.3s ease-in-out; - transition: opacity 0.3s ease-in-out; -} -.dropzone .dz-preview:hover.dz-error .dz-error-message, -.dropzone-previews .dz-preview:hover.dz-error .dz-error-message { - opacity: 1; - -ms-filter: none; - filter: none; -} -.dropzone a.dz-remove, -.dropzone-previews a.dz-remove { - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fafafa), color-stop(1, #eee)); - background-image: -webkit-linear-gradient(top, #fafafa 0, #eee 100%); - background-image: -moz-linear-gradient(top, #fafafa 0, #eee 100%); - background-image: -o-linear-gradient(top, #fafafa 0, #eee 100%); - background-image: -ms-linear-gradient(top, #fafafa 0, #eee 100%); - background-image: linear-gradient(top, #fafafa 0, #eee 100%); - -webkit-border-radius: 2px; - border-radius: 2px; - border: 1px solid #eee; - text-decoration: none; - display: block; - padding: 4px 5px; - text-align: center; - color: #aaa; - margin-top: 26px; -} -.dropzone a.dz-remove:hover, -.dropzone-previews a.dz-remove:hover { - color: #666; -} -@-moz-keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} -@-webkit-keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} -@-o-keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} -@-ms-keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} -@keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.min.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.min.css deleted file mode 100644 index f9abb126..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.min.css +++ /dev/null @@ -1 +0,0 @@ -.dropzone,.dropzone *,.dropzone-previews,.dropzone-previews *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.dropzone{position:relative;border:1px solid rgba(0,0,0,.08);background:rgba(0,0,0,.02);padding:1em}.dropzone.dz-clickable{cursor:pointer}.dropzone.dz-clickable .dz-message,.dropzone.dz-clickable .dz-message span{cursor:pointer}.dropzone.dz-clickable *{cursor:default}.dropzone .dz-message{opacity:1;-ms-filter:none;filter:none}.dropzone.dz-drag-hover{border-color:rgba(0,0,0,.15);background:rgba(0,0,0,.04)}.dropzone.dz-started .dz-message{display:none}.dropzone .dz-preview,.dropzone-previews .dz-preview{background:rgba(255,255,255,.8);position:relative;display:inline-block;margin:17px;vertical-align:top;border:1px solid #acacac;padding:6px}.dropzone .dz-preview.dz-file-preview [data-dz-thumbnail],.dropzone-previews .dz-preview.dz-file-preview [data-dz-thumbnail]{display:none}.dropzone .dz-preview .dz-details,.dropzone-previews .dz-preview .dz-details{width:100px;height:100px;position:relative;background:#ebebeb;padding:5px;margin-bottom:22px}.dropzone .dz-preview .dz-details .dz-filename,.dropzone-previews .dz-preview .dz-details .dz-filename{overflow:hidden;height:100%}.dropzone .dz-preview .dz-details img,.dropzone-previews .dz-preview .dz-details img{position:absolute;top:0;left:0;width:100px;height:100px}.dropzone .dz-preview .dz-details .dz-size,.dropzone-previews .dz-preview .dz-details .dz-size{position:absolute;bottom:-28px;left:3px;height:28px;line-height:28px}.dropzone .dz-preview.dz-error .dz-error-mark,.dropzone-previews .dz-preview.dz-error .dz-error-mark{display:block}.dropzone .dz-preview.dz-success .dz-success-mark,.dropzone-previews .dz-preview.dz-success .dz-success-mark{display:block}.dropzone .dz-preview:hover .dz-details img,.dropzone-previews .dz-preview:hover .dz-details img{display:none}.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark,.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark{display:none;position:absolute;width:40px;height:40px;font-size:30px;text-align:center;right:-10px;top:-10px}.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{color:#8cc657}.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark{color:#ee162d}.dropzone .dz-preview .dz-progress,.dropzone-previews .dz-preview .dz-progress{position:absolute;top:100px;left:6px;right:6px;height:6px;background:#d7d7d7;display:none}.dropzone .dz-preview .dz-progress .dz-upload,.dropzone-previews .dz-preview .dz-progress .dz-upload{position:absolute;top:0;bottom:0;left:0;width:0;background-color:#8cc657}.dropzone .dz-preview.dz-processing .dz-progress,.dropzone-previews .dz-preview.dz-processing .dz-progress{display:block}.dropzone .dz-preview .dz-error-message,.dropzone-previews .dz-preview .dz-error-message{display:none;position:absolute;top:-5px;left:-20px;background:rgba(245,245,245,.8);padding:8px 10px;color:#800;min-width:140px;max-width:500px;z-index:500}.dropzone .dz-preview:hover.dz-error .dz-error-message,.dropzone-previews .dz-preview:hover.dz-error .dz-error-message{display:block}.dropzone{border:1px solid rgba(0,0,0,.03);min-height:360px;-webkit-border-radius:3px;border-radius:3px;background:rgba(0,0,0,.03);padding:23px}.dropzone .dz-default.dz-message{opacity:1;-ms-filter:none;filter:none;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;background-image:url(../img/spritemap.png);background-repeat:no-repeat;background-position:0 0;position:absolute;width:428px;height:123px;margin-left:-214px;margin-top:-61.5px;top:50%;left:50%}@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx){.dropzone .dz-default.dz-message{background-image:url(../img/spritemap@2x.png);-webkit-background-size:428px 406px;-moz-background-size:428px 406px;background-size:428px 406px}}.dropzone .dz-default.dz-message span{display:none}.dropzone.dz-square .dz-default.dz-message{background-position:0 -123px;width:268px;margin-left:-134px;height:174px;margin-top:-87px}.dropzone.dz-drag-hover .dz-message{opacity:.15;-ms-filter:"alpha(Opacity=15)";filter:alpha(opacity=15)}.dropzone.dz-started .dz-message{display:block;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0)}.dropzone .dz-preview,.dropzone-previews .dz-preview{-webkit-box-shadow:1px 1px 4px rgba(0,0,0,.16);box-shadow:1px 1px 4px rgba(0,0,0,.16);font-size:14px}.dropzone .dz-preview.dz-image-preview:hover .dz-details img,.dropzone-previews .dz-preview.dz-image-preview:hover .dz-details img{display:block;opacity:.1;-ms-filter:"alpha(Opacity=10)";filter:alpha(opacity=10)}.dropzone .dz-preview.dz-success .dz-success-mark,.dropzone-previews .dz-preview.dz-success .dz-success-mark{opacity:1;-ms-filter:none;filter:none}.dropzone .dz-preview.dz-error .dz-error-mark,.dropzone-previews .dz-preview.dz-error .dz-error-mark{opacity:1;-ms-filter:none;filter:none}.dropzone .dz-preview.dz-error .dz-progress .dz-upload,.dropzone-previews .dz-preview.dz-error .dz-progress .dz-upload{background:#ee1e2d}.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark,.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{display:block;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transition:opacity .4s ease-in-out;-moz-transition:opacity .4s ease-in-out;-o-transition:opacity .4s ease-in-out;-ms-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;background-image:url(../img/spritemap.png);background-repeat:no-repeat}@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx){.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark,.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{background-image:url(../img/spritemap@2x.png);-webkit-background-size:428px 406px;-moz-background-size:428px 406px;background-size:428px 406px}}.dropzone .dz-preview .dz-error-mark span,.dropzone-previews .dz-preview .dz-error-mark span,.dropzone .dz-preview .dz-success-mark span,.dropzone-previews .dz-preview .dz-success-mark span{display:none}.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark{background-position:-268px -123px}.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{background-position:-268px -163px}.dropzone .dz-preview .dz-progress .dz-upload,.dropzone-previews .dz-preview .dz-progress .dz-upload{-webkit-animation:loading .4s linear infinite;-moz-animation:loading .4s linear infinite;-o-animation:loading .4s linear infinite;-ms-animation:loading .4s linear infinite;animation:loading .4s linear infinite;-webkit-transition:width .3s ease-in-out;-moz-transition:width .3s ease-in-out;-o-transition:width .3s ease-in-out;-ms-transition:width .3s ease-in-out;transition:width .3s ease-in-out;-webkit-border-radius:2px;border-radius:2px;position:absolute;top:0;left:0;width:0;height:100%;background-image:url(../img/spritemap.png);background-repeat:repeat-x;background-position:0 -400px}@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx){.dropzone .dz-preview .dz-progress .dz-upload,.dropzone-previews .dz-preview .dz-progress .dz-upload{background-image:url(../img/spritemap@2x.png);-webkit-background-size:428px 406px;-moz-background-size:428px 406px;background-size:428px 406px}}.dropzone .dz-preview.dz-success .dz-progress,.dropzone-previews .dz-preview.dz-success .dz-progress{display:block;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transition:opacity .4s ease-in-out;-moz-transition:opacity .4s ease-in-out;-o-transition:opacity .4s ease-in-out;-ms-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out}.dropzone .dz-preview .dz-error-message,.dropzone-previews .dz-preview .dz-error-message{display:block;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.dropzone .dz-preview:hover.dz-error .dz-error-message,.dropzone-previews .dz-preview:hover.dz-error .dz-error-message{opacity:1;-ms-filter:none;filter:none}.dropzone a.dz-remove,.dropzone-previews a.dz-remove{background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fafafa),color-stop(1,#eee));background-image:-webkit-linear-gradient(top,#fafafa 0,#eee 100%);background-image:-moz-linear-gradient(top,#fafafa 0,#eee 100%);background-image:-o-linear-gradient(top,#fafafa 0,#eee 100%);background-image:-ms-linear-gradient(top,#fafafa 0,#eee 100%);background-image:linear-gradient(top,#fafafa 0,#eee 100%);-webkit-border-radius:2px;border-radius:2px;border:1px solid #eee;text-decoration:none;display:block;padding:4px 5px;text-align:center;color:#aaa;margin-top:26px}.dropzone a.dz-remove:hover,.dropzone-previews a.dz-remove:hover{color:#666}@-moz-keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}}@-webkit-keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}}@-o-keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}}@-ms-keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}}@keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}} \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/jquery.contextMenu.min.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/jquery.contextMenu.min.css deleted file mode 100644 index 21d6805d..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/jquery.contextMenu.min.css +++ /dev/null @@ -1,38 +0,0 @@ -.context-menu-list{font-family:'Open Sans', sans-serif;width:200px;display:inline-block;position:absolute;list-style-type:none;border:1px solid #DDD;background:#fff;font-size:12px;margin:0;padding:5px} -.context-menu-item{background-color:#fff;position:relative;height:auto;word-wrap:break-word;-webkit-user-select:none;-moz-user-select:0;-ms-user-select:none;user-select:none;padding:5px 5px 5px 30px} -.context-menu-item:last-child{border:none} -.context-menu-separator{padding-bottom:0;border-bottom:1px solid #DDD} -.context-menu-item > label > input,.context-menu-item > label > textarea{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text} -.context-menu-item.hover{cursor:pointer;background-color:#DDD} -.context-menu-item.disabled{color:#666} -.context-menu-input.hover,.context-menu-item.disabled.hover{cursor:default;background-color:#EEE} -.context-menu-submenu:after{content:">";color:#666;position:absolute;top:0;right:3px;z-index:1} -.context-menu-item.icon{min-height:18px;vertical-align:middle;background-repeat:no-repeat;background-position:4px 5px;width:auto;display:list-item} -.context-menu-item.icon-edit{background-image:url(../img/page_white_edit.png)} -.context-menu-item.icon-cut{background-image:url(../img/cut.png)} -.context-menu-item.icon-copy{background-image:url(../img/copy.png)} -.context-menu-item.icon-rename{background-image:url(../img/rename.png)} -.context-menu-item.icon-preview{background-image:url(../img/preview.png)} -.context-menu-item.icon-dimension{background-image:url(../img/dimension.png)} -.context-menu-item.icon-date{background-image:url(../img/date.png)} -.context-menu-item.icon-label{background-image:url(../img/label.png)} -.context-menu-item.icon-size{background-image:url(../img/size.png)} -.context-menu-item.icon-download{background-image:url(../img/download.png)} -.context-menu-item.icon-paste{background-image:url(../img/page_white_paste.png)} -.context-menu-item.icon-clipboard-apply {background-image:url(../img/clipboard_apply.png)} -.context-menu-item.icon-delete{background-image:url(../img/page_white_delete.png)} -.context-menu-item.icon-add{background-image:url(../img/page_white_add.png)} -.context-menu-item.icon-quit{background-image:url(../img/door.png)} -.context-menu-item.icon-info{background-image:url(../img/info.png)} -.context-menu-item.icon-extract{background-image:url(../img/zip.png)} -.context-menu-item.icon-url{background-image:url(../img/url.png)} -.context-menu-item.icon-edit_img{background-image:url(../img/edit_img.png)} -.context-menu-item.icon-duplicate{background-image:url(../img/duplicate.png)} -.context-menu-input > label > *{vertical-align:top} -.context-menu-input > label > input[type=checkbox],.context-menu-input > label > input[type=radio]{margin-left:-17px} -.context-menu-input > label > span{margin-left:5px} -.context-menu-input > label,.context-menu-input > label > input[type=text],.context-menu-input > label > textarea,.context-menu-input > label > select{display:block;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box} -.context-menu-input > label > textarea{height:100px} -.context-menu-item > .context-menu-list{display:none;right:-5px;top:5px} -.context-menu-item.hover > .context-menu-list{display:block} -.context-menu-accesskey{text-decoration:underline} \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.css deleted file mode 100644 index 061ef75b..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.css +++ /dev/null @@ -1 +0,0 @@ -*,*:after,*:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body,html{font-family:'Open Sans',sans-serif;font-size:100%;padding:0;margin:0}body{padding-top:32px;font-weight:200;background:#ececec;overflow:-moz-scrollbars-vertical}#qLpercentage{font-family:'Open Sans',sans-serif;font-size:40px;line-height:40px;color:#bbb;font-weight:200;height:60px;-webkit-border-radius:10px;border-radius:10px;padding:10px;text-shadow:1px 1px 2px #fff;filter:dropshadow(color=#fff, offx=1, offy=1)}#qLbar{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZ3JhZC11Y2dnLWdlbmVyYXRlZCkiIC8+Cjwvc3ZnPg==);background:-moz-linear-gradient(top, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(122,122,122,0.4)), color-stop(100%, rgba(122,122,122,0.4)));background:-webkit-linear-gradient(top, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);background:-o-linear-gradient(top, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);background:-ms-linear-gradient(top, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);background:linear-gradient(to bottom, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#667a7a7a', endColorstr='#667a7a7a', GradientType=0);z-index:200;margin:0;overflow:hidden}[class^="rficon-"],[class*=" rficon-"]{display:inline-block;width:16px;height:16px;margin-top:1px;*margin-right:.3em;line-height:16px;vertical-align:text-top;background-position:0 0;background-repeat:no-repeat}.rficon-clipboard-apply{background-image:url(../img/clipboard_apply.png)}.rficon-clipboard-clear{background-image:url(../img/clipboard_clear.png)}.btn{-webkit-border-radius:0;border-radius:0}.container-fluid{padding-right:0 !important;margin-top:10px !important}.img-precontainer{margin:auto;width:100%;text-align:center;background:#fff;border:none}.img-container{height:91px;width:122px;padding:0;border:none;overflow:hidden;display:table-cell;text-align:center;vertical-align:middle;margin:auto}ul.breadcrumb{margin-bottom:5px;-webkit-border-radius:0;border-radius:0;padding-bottom:4px;padding-top:6px;background:#f0f0f0;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065);border-bottom:1px solid #bbb}ul.breadcrumb .pull-left i{margin-top:2px}.alert{padding:8px 35px 8px 14px;margin-bottom:2px;border:1px solid #aaa;color:#666;font-weight:200;font-size:13px;-webkit-border-radius:0;border-radius:0;background:#fff}.img-container *,.img-container-mini *{vertical-align:middle}#help{display:none}iframe{overflow:auto;-webkit-overflow-scrolling:touch}.upload-tabbable{margin-left:5px;margin-right:5px}.upload-tabbable .upload-help{font-size:11px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff;text-align:center}.upload-tabbable .nav{margin:0}.upload-tabbable .nav li a{font-size:13px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.upload-tabbable .tab-content{padding:5px;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-rigth:1px solid #ddd;background:#fff;margin-bottom:5px}input#filter-input{margin:0;width:84px;height:26px;vertical-align:bottom;margin-bottom:2px;-webkit-border-radius:0;border-radius:0;font-size:12px;font-weight:200;position:relative;left:1px}.qq-uploader .span9{margin-left:14px !important;width:690px !important}.space10{clear:both;height:10px}h4{font-size:12px;font-weight:200;margin:0;text-align:center;padding:0;margin-top:6px;line-height:18px}h3{font-size:14px;font-weight:200}.boxes{border:1px solid #ccc;word-wrap:break-word;background:#fff;-webkit-box-shadow:1px 1px 2px 0 rgba(0,0,0,0.2);box-shadow:1px 1px 2px 0 rgba(0,0,0,0.2);min-height:115px;text-align:center}.container-fluid{padding:0 10px !important}body .avpw .avpw_primary_button,body .avpw .avpw_primary_button:link,body .avpw .avpw_primary_button:visited,body .avpw .avpw_primary_button:active{background-color:#999;color:#fff;background-image:none;border:none}body .avpw .avpw_primary_button:hover{border:none;background-color:#666}.uploader{position:fixed;top:50px;left:14px;margin:auto;width:100%;z-index:9999;overflow:hidden;background:#eee;padding-top:20px;border:1px solid #ccc;display:none;-webkit-box-shadow:0 0 10px 0 rgba(1,1,1,0.5);box-shadow:0 0 10px 0 rgba(1,1,1,0.5)}.download-form{margin-bottom:25px}.grid li i{margin-left:2px;margin-right:2px;z-index:0}.box,.boxx{text-align:center;word-wrap:break-word;vertical-align:top;text-align:left;position:relative;border:none;box-shadow:none;z-index:100;padding:4px}.box .btn{width:100%;background:none;box-shadow:none;border:none;z-index:200}.navbar{margin-bottom:0;border-bottom:1px solid #bbb}.navbar .navbar-inner{border:none;min-height:35px;-webkit-border-radius:0;border-radius:0;padding-bottom:2px;margin:0;padding-right:8px;padding-left:8px}.navbar .navbar-inner .container-fluid{margin:0;margin-top:0 !important;padding:0}.navbar .navbar-inner .container-fluid .brand{display:none}.navbar .navbar-inner .container-fluid .filters span{margin-top:0;font-size:13px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}ul.sorting{position:absolute;left:-25px;top:20px;min-width:0;background:#eee}ul.sorting li a:hover{background:#aaa}.btn-group .dropdown-toggle.sorting-btn{background:none;border:none;box-shadow:none;position:relative;-webkit-box-shadow:none;top:-5px;font-size:13px}.btn-group .dropdown-toggle.sorting-btn:hover{background:none;border:none;box-shadow:none;-webkit-box-shadow:none}ul.sorting.dropdown-menu>li>a{font-size:12px;text-shadow:none}ul.sorting.dropdown-menu>li>a.ascending{background-image:url(../img/down.png);background-repeat:no-repeat;background-position:6px 8px}ul.sorting.dropdown-menu>li>a.descending{background-image:url(../img/up.png);background-repeat:no-repeat;background-position:6px 8px}.sorter-container{margin-top:5px;margin-bottom:0;-webkit-border-radius:0;border-radius:0;padding-bottom:4px;padding-top:6px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065);background-color:#f5f5f5;position:relative;border-bottom:1px solid #bbb;height:24px}.sorter-container a.sorter{color:#000}.sorter-container a.ascending{padding-left:9px;background-image:url(../img/down.png);background-repeat:no-repeat;background-position:0 3px}.sorter-container a.descending{padding-left:9px;background-image:url(../img/up.png);background-repeat:no-repeat;background-position:0 4px}.sorter-container .img-dimension,.sorter-container .file-date,.sorter-container .file-size,.sorter-container .file-extension,.sorter-container .file-name,.sorter-container .file-operations{display:block;position:absolute;top:0;z-index:100;-webkit-box-shadow:none;box-shadow:none;text-align:left;font-size:13px;margin-top:1px;color:#999}.sorter-container .file-operations{width:110px;right:0}.sorter-container .img-dimension{width:65px;right:123px}.sorter-container .file-date{width:70px;right:188px}.sorter-container .file-size{width:55px;right:258px}.sorter-container .file-extension{width:40px;right:313px}.sorter-container .file-name{width:50px;left:52px}.img-dimension,.file-date,.file-size,.file-extension,.file-name,.file-operations{font-size:12px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff;display:none}.view-controller{text-align:left}.view-controller .btn-group>.btn:first-child,.view-controller .btn-group>.btn:last-child{-webkit-border-radius:0;border-radius:0}.navbar .filters .btn{margin-bottom:2px;padding-top:2px;padding-bottom:2px;padding-left:8px;padding-right:8px;margin-top:5px}.filters .types{text-align:right}@media (max-width:780px){#view2{display:none}}@media (max-width:839px){body{padding-top:0}.filters .types{text-align:left}.navbar .navbar-inner .container-fluid .brand{display:block}.navbar .navbar-inner{padding-bottom:4px}.filters div.span3.half,.filters div.half.span6{float:none;width:100%}.container-fluid{margin:0 !important;padding:0}#qLbar{height:50px !important}}@media (min-width:400px) and (max-width:839px){.filters .row-fluid .half{width:48.61878453038674%;*width:48.56559304102504%;float:left}}.tooltip.in{z-index:10000;opacity:1;filter:alpha(opacity=1);font-weight:bold}.tooltip{font-weight:bold;z-index:10000}.grid{padding:0 0;margin:0 auto;list-style:none;-webkit-overflow-scrolling:touch}.grid li{display:inline-block;width:124px;border:none;margin:4px;margin-bottom:8px;padding:0;vertical-align:top}.grid figure{margin:0;position:relative;display:block;width:122px;margin:auto}.grid figure:hover{background:#e0e0e0 !important}.list-view1.grid li{width:100%}.list-view1.grid li figure{width:100%}.grid figcaption{text-align:center;padding:2px;padding-top:8px;color:#fff;height:30px;width:122px;margin-left:0;margin-right:0;position:absolute;top:auto;bottom:0;-webkit-box-shadow:inset 0 0 8px 0 rgba(41,41,41,0.5);box-shadow:inset 0 0 8px 0 rgba(41,41,41,0.5)}.grid figcaption a{margin:0;padding:3px}.grid figcaption h3{margin:0;padding:0;color:#fff}.grid h4{text-align:center;color:#000;padding:0;margin-bottom:4px;margin-top:4px}.grid figure .box{box-sizing:content-box}.list-view0.grid figure .box,.list-view1.grid figure .box,.list-view2.grid figure .box{max-width:100%;display:block;position:relative;overflow:hidden;z-index:1}.list-view0.grid figure .box h4.ellipsis,.list-view1.grid figure .box h4.ellipsis,.list-view2.grid figure .box h4.ellipsis{height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-view0.grid figure .box h4,.list-view1.grid figure .box h4,.list-view2.grid figure .box h4{z-index:1}.list-view0.grid figure .box h4 a,.list-view1.grid figure .box h4 a,.list-view2.grid figure .box h4 a{z-index:1}.list-view0.grid .selected,.list-view1.grid .selected,.list-view2.grid .selected{-webkit-box-shadow:0 0 10px 5px rgba(0,0,0,0.25);box-shadow:0 0 10px 5px rgba(0,0,0,0.25)}.no-touch .list-view0 figure .box{z-index:1;-webkit-transition:-webkit-transform .3s;-moz-transition:-moz-transform .3s;transition:transform .3s}.ui-state-highlight{border:1px solid #f00}.no-touch .list-view0 figure:hover .box,.no-touch .list-view0 figure.cs-hover .box{-webkit-box-shadow:0 0 4px 0 rgba(1,1,1,0.5);box-shadow:0 0 4px 0 rgba(1,1,1,0.5);-webkit-transform:translateY(-26px);-moz-transform:translateY(-26px);-ms-transform:translateY(-26px);transform:translateY(-26px)}.list-view0 figure:hover .box.no-effect,.list-view0 figure.cs-hover .box.no-effect,.no-effect{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none}.list-view0 .img-precontainer-mini{display:none;background:none}a,a:hover{color:#000;text-decoration:none}.back-directory .img-precontainer,.back-directory .img-precontainer-mini,.back-directory .box{background:none}form{margin:0;padding:0}.modal-body form,.modal-body input{margin:0}.modal-header h3{font-weight:300;font-size:20px}.list-view1.sorter-container{display:block}.list-view0.sorter-container,.list-view2.sorter-container{display:none}.list-view0.grid .img-precontainer .img-container img{max-width:122px !important;max-height:91px !important}.list-view0.grid .img-precontainer .img-container img.icon{width:122px;margin-top:0}.list-view0.grid .img-precontainer .filetype{position:absolute;top:0;width:120px;text-align:center;color:#fff;font-size:13px;line-height:22px}.list-view0.grid .cover{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjI1Ii8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMC4yNSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);background:-moz-linear-gradient(top, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(255,255,255,0.25)), color-stop(100%, rgba(255,255,255,0.25)));background:-webkit-linear-gradient(top, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);background:-o-linear-gradient(top, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);background:-ms-linear-gradient(top, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);background:linear-gradient(to bottom, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#40ffffff', endColorstr='#40ffffff', GradientType=0);width:122px;position:absolute;top:22px;right:0;height:69px}.list-view0.grid .box{background:#fff}.list-view0.grid .directory{background:#ddd}.list-view0.grid figure.back-directory .directory{background:#bbb}.list-view0.grid figcaption{background:#fff}.list-view1.grid li,.list-view2.grid li{margin:0}.list-view1.grid li.back figure.back-directory,.list-view2.grid li.back figure.back-directory{height:34px}.list-view1.grid li:nth-child(odd) figure,.list-view2.grid li:nth-child(odd) figure{background:#f9f9f9}.list-view1.grid li:nth-child(odd) figure.directory,.list-view2.grid li:nth-child(odd) figure.directory{background:#eaeaea}.list-view1.grid li figure,.list-view2.grid li figure{border-bottom:1px solid #ccc;background:#fff}.list-view1.grid li figure.back-directory,.list-view2.grid li figure.back-directory{background:#bbb}.list-view1.grid li figure.back-directory .box,.list-view2.grid li figure.back-directory .box{background:none}.list-view1.grid li figure.directory,.list-view2.grid li figure.directory{background:#efefef}.list-view1.grid li figure.directory box,.list-view2.grid li figure.directory box{padding:0;min-height:10px}.list-view1.grid li figure .box,.list-view2.grid li figure .box{margin-left:50px;-webkit-transition:none;-moz-transition:none;transition:none}.list-view1.grid li figure .box h4,.list-view2.grid li figure .box h4{padding-top:1px;font-size:13px;text-align:left}.list-view1.grid .img-precontainer-mini,.list-view2.grid .img-precontainer-mini{display:block;position:absolute;width:45px;height:34px;overflow:hidden;text-align:center}.list-view1.grid .img-precontainer-mini img,.list-view2.grid .img-precontainer-mini img{height:34px}.list-view1.grid .img-precontainer-mini .filetype,.list-view2.grid .img-precontainer-mini .filetype{position:absolute;top:5px;text-align:center;left:5px;padding:1px 2px;font-size:13px;line-height:22px;width:34px;height:24px;color:#fff;background:#333}.list-view1.grid .cover,.list-view2.grid .cover{display:none}.list-view1.grid .img-container-mini,.list-view2.grid .img-container-mini{width:45px;height:34px;border:none;overflow:hidden;display:table-cell;text-align:center;vertical-align:middle;margin:auto}.list-view1.grid .img-precontainer-mini.original-thumb,.list-view2.grid .img-precontainer-mini.original-thumb{padding:0}.list-view1.grid .img-precontainer-mini.original-thumb img,.list-view2.grid .img-precontainer-mini.original-thumb img{width:auto;margin:0;height:34px}.list-view1.grid .img-precontainer-mini.original-thumb img.original,.list-view2.grid .img-precontainer-mini.original-thumb img.original{width:auto;height:auto}.list-view1.grid .img-precontainer,.list-view2.grid .img-precontainer{display:none}.list-view1.grid figcaption,.list-view2.grid figcaption{background:none;width:120px;position:absolute;right:0;top:0;z-index:1;bottom:0;-webkit-box-shadow:none;box-shadow:none;text-align:right}.list-view1.grid .selected,.list-view2.grid .selected{-webkit-box-shadow:0 0 3px 2px rgba(0,0,0,0.2);box-shadow:0 0 3px 2px rgba(0,0,0,0.2)}.list-view1.grid .img-dimension,.list-view1.grid .file-date,.list-view1.grid .file-size,.list-view1.grid .file-extension{overflow:hidden;display:block;position:absolute;top:0;z-index:1;-webkit-box-shadow:none;box-shadow:none;text-align:left;margin-top:7px}.list-view1.grid .img-dimension{width:65px;right:120px}.list-view1.grid .file-date{width:70px;right:185px}.list-view1.grid .file-size{width:55px;right:255px}.list-view1.grid .file-extension{width:40px;right:310px}.list-view1.grid figure .box{padding-right:352px}.list-view2.grid figure .box{padding-right:115px}@media (max-width:610px){.list-view1.grid figure .box{padding-right:312px}.list-view1.grid figure .file-extension{display:none}.sorter-container .file-extension{display:none}}@media (max-width:565px){.list-view1.grid figure .box{padding-right:257px}.list-view1.grid figure .file-size{display:none}.sorter-container .file-size{display:none}}@media (max-width:495px){.list-view1.grid figure .box{padding-right:187px}.list-view1.grid figure .file-date{display:none}.sorter-container .file-date{display:none}}@media (max-width:430px){.list-view1.grid figure .box{padding-right:115px}.list-view1.grid figure .img-dimension{display:none}.sorter-container .img-dimension{display:none}.breadcrumb{margin-left:0;margin-right:0}}.list-view2.grid .img-precontainer-mini .filetype.pdf,.list-view1.grid .img-precontainer-mini .filetype.pdf{background:#cb0011}.list-view2.grid .img-precontainer-mini .filetype.css,.list-view1.grid .img-precontainer-mini .filetype.css{background:#d10698}.list-view2.grid .img-precontainer-mini .filetype.ai,.list-view1.grid .img-precontainer-mini .filetype.ai{background:#d6772f}.list-view2.grid .img-precontainer-mini .filetype.psd,.list-view1.grid .img-precontainer-mini .filetype.psd{background:#0960a4}.list-view2.grid .img-precontainer-mini .filetype.html,.list-view1.grid .img-precontainer-mini .filetype.html,.list-view2.grid .img-precontainer-mini .filetype.xhtml,.list-view1.grid .img-precontainer-mini .filetype.xhtml{background:#035bc4}.list-view2.grid .img-precontainer-mini .filetype.fla,.list-view1.grid .img-precontainer-mini .filetype.fla,.list-view2.grid .img-precontainer-mini .filetype.flv,.list-view1.grid .img-precontainer-mini .filetype.flv{background:#cf302e}.list-view2.grid .img-precontainer-mini .filetype.ppt,.list-view1.grid .img-precontainer-mini .filetype.ppt,.list-view2.grid .img-precontainer-mini .filetype.pptx,.list-view1.grid .img-precontainer-mini .filetype.pptx{background:#da5b00}.list-view2.grid .img-precontainer-mini .filetype.xls,.list-view1.grid .img-precontainer-mini .filetype.xls,.list-view2.grid .img-precontainer-mini .filetype.xlsx,.list-view1.grid .img-precontainer-mini .filetype.xlsx,.list-view2.grid .img-precontainer-mini .filetype.css,.list-view1.grid .img-precontainer-mini .filetype.css{background:#1a712c}.list-view2.grid .img-precontainer-mini .filetype.rts,.list-view1.grid .img-precontainer-mini .filetype.rts,.list-view2.grid .img-precontainer-mini .filetype.doc,.list-view1.grid .img-precontainer-mini .filetype.doc,.list-view2.grid .img-precontainer-mini .filetype.docx,.list-view1.grid .img-precontainer-mini .filetype.docx{background:#002093}.list-view2.grid .img-precontainer-mini .filetype.rar,.list-view1.grid .img-precontainer-mini .filetype.rar,.list-view2.grid .img-precontainer-mini .filetype.zip,.list-view1.grid .img-precontainer-mini .filetype.zip,.list-view2.grid .img-precontainer-mini .filetype.gzip,.list-view1.grid .img-precontainer-mini .filetype.gzip{background:#fe9221}.list-view2.grid .img-precontainer-mini .filetype.mp4,.list-view1.grid .img-precontainer-mini .filetype.mp4,.list-view2.grid .img-precontainer-mini .filetype.mpeg,.list-view1.grid .img-precontainer-mini .filetype.mpeg,.list-view2.grid .img-precontainer-mini .filetype.mov,.list-view1.grid .img-precontainer-mini .filetype.mov,.list-view2.grid .img-precontainer-mini .filetype.avi,.list-view1.grid .img-precontainer-mini .filetype.avi,.list-view2.grid .img-precontainer-mini .filetype.mpg,.list-view1.grid .img-precontainer-mini .filetype.mpg,.list-view2.grid .img-precontainer-mini .filetype.wma,.list-view1.grid .img-precontainer-mini .filetype.wma,.list-view2.grid .img-precontainer-mini .filetype.webm,.list-view1.grid .img-precontainer-mini .filetype.webm{background:#31231e}.list-view2.grid .img-precontainer-mini .filetype.mp3,.list-view1.grid .img-precontainer-mini .filetype.mp3,.list-view2.grid .img-precontainer-mini .filetype.m4a,.list-view1.grid .img-precontainer-mini .filetype.m4a,.list-view2.grid .img-precontainer-mini .filetype.ac3,.list-view1.grid .img-precontainer-mini .filetype.ac3,.list-view2.grid .img-precontainer-mini .filetype.aiff,.list-view1.grid .img-precontainer-mini .filetype.aiff,.list-view2.grid .img-precontainer-mini .filetype.mid,.list-view1.grid .img-precontainer-mini .filetype.mid,.list-view2.grid .img-precontainer-mini .filetype.ogg,.list-view1.grid .img-precontainer-mini .filetype.ogg,.list-view2.grid .img-precontainer-mini .filetype.wav,.list-view1.grid .img-precontainer-mini .filetype.wav{background:#9f008b}.list-view2.grid .img-precontainer-mini .filetype.odt,.list-view1.grid .img-precontainer-mini .filetype.odt,.list-view2.grid .img-precontainer-mini .filetype.ots,.list-view1.grid .img-precontainer-mini .filetype.ots,.list-view2.grid .img-precontainer-mini .filetype.ott,.list-view1.grid .img-precontainer-mini .filetype.ott,.list-view2.grid .img-precontainer-mini .filetype.odb,.list-view1.grid .img-precontainer-mini .filetype.odb,.list-view2.grid .img-precontainer-mini .filetype.odg,.list-view1.grid .img-precontainer-mini .filetype.odg,.list-view2.grid .img-precontainer-mini .filetype.otp,.list-view1.grid .img-precontainer-mini .filetype.otp,.list-view2.grid .img-precontainer-mini .filetype.otg,.list-view1.grid .img-precontainer-mini .filetype.otg,.list-view2.grid .img-precontainer-mini .filetype.odf,.list-view1.grid .img-precontainer-mini .filetype.odf,.list-view2.grid .img-precontainer-mini .filetype.ods,.list-view1.grid .img-precontainer-mini .filetype.ods,.list-view2.grid .img-precontainer-mini .filetype.odp,.list-view1.grid .img-precontainer-mini .filetype.odp{background:#367bbe}.list-view2.grid .img-precontainer-mini .filetype.jpg,.list-view1.grid .img-precontainer-mini .filetype.jpg,.list-view2.grid .img-precontainer-mini .filetype.jpeg,.list-view1.grid .img-precontainer-mini .filetype.jpeg,.list-view2.grid .img-precontainer-mini .filetype.png,.list-view1.grid .img-precontainer-mini .filetype.png,.list-view2.grid .img-precontainer-mini .filetype.bmp,.list-view1.grid .img-precontainer-mini .filetype.bmp,.list-view2.grid .img-precontainer-mini .filetype.gif,.list-view1.grid .img-precontainer-mini .filetype.gif,.list-view2.grid .img-precontainer-mini .filetype.tiff,.list-view1.grid .img-precontainer-mini .filetype.tiff,.list-view2.grid .img-precontainer-mini .filetype.svg,.list-view1.grid .img-precontainer-mini .filetype.svg{background:#cfa554}.list-view2.grid .img-precontainer-mini .filetype.txt,.list-view1.grid .img-precontainer-mini .filetype.txt,.list-view2.grid .img-precontainer-mini .filetype.sql,.list-view1.grid .img-precontainer-mini .filetype.sql,.list-view2.grid .img-precontainer-mini .filetype.xml,.list-view1.grid .img-precontainer-mini .filetype.xml,.list-view2.grid .img-precontainer-mini .filetype.log,.list-view1.grid .img-precontainer-mini .filetype.log,.list-view2.grid .img-precontainer-mini .filetype.iso,.list-view1.grid .img-precontainer-mini .filetype.iso,.list-view2.grid .img-precontainer-mini .filetype.dmg,.list-view1.grid .img-precontainer-mini .filetype.dmg{background:#cacaca}.list-view2.grid .img-precontainer-mini .filetype.ade,.list-view1.grid .img-precontainer-mini .filetype.ade,.list-view2.grid .img-precontainer-mini .filetype.adp,.list-view1.grid .img-precontainer-mini .filetype.adp,.list-view2.grid .img-precontainer-mini .filetype.mdb,.list-view1.grid .img-precontainer-mini .filetype.mdb,.list-view2.grid .img-precontainer-mini .filetype.accdb,.list-view1.grid .img-precontainer-mini .filetype.accdb{background:#b61c19} \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.less b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.less deleted file mode 100644 index 74d25b12..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.less +++ /dev/null @@ -1,926 +0,0 @@ -*, *:after, *:before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } -body, html { - font-family: 'Open Sans', sans-serif; - font-size: 100%; padding: 0; margin: 0;} -body{ - padding-top: 32px; - font-weight:200; - background:#ececec; - overflow: -moz-scrollbars-vertical; -} - -#qLpercentage{ - font-family: 'Open Sans', sans-serif; - font-size: 40px; - line-height: 40px; - color:#bbbbbb; - font-weight: 200; - height: 60px; - -webkit-border-radius: 10px; - border-radius: 10px; - padding: 10px; - text-shadow: 1px 1px 2px #ffffff; - filter: dropshadow(color=#ffffff, offx=1, offy=1); -} -#qLbar{ - /* IE9 SVG, needs conditional override of 'filter' to 'none' */ - background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZ3JhZC11Y2dnLWdlbmVyYXRlZCkiIC8+Cjwvc3ZnPg==); - background: -moz-linear-gradient(top, rgba(122,122,122,0.4) 0%, rgba(122,122,122,0.4) 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(122,122,122,0.4)), color-stop(100%,rgba(122,122,122,0.4))); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* IE10+ */ - background: linear-gradient(to bottom, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#667a7a7a', endColorstr='#667a7a7a',GradientType=0 ); /* IE6-8 */ - - z-index:200; - margin:0px; - overflow: hidden; -} - - -[class^="rficon-"],[class*=" rficon-"] { - display:inline-block; - width:16px; - height:16px; - margin-top:1px; - *margin-right:.3em; - line-height:16px; - vertical-align:text-top; - background-position: 0 0; - background-repeat:no-repeat -} - -.rficon-clipboard-apply { - background-image:url(../img/clipboard_apply.png); -} - -.rficon-clipboard-clear { - background-image:url(../img/clipboard_clear.png); -} - -.btn{ - -webkit-border-radius: 0px; - border-radius: 0px; -} -.container-fluid{padding-right:0 !important;margin-top:10px !important;} -.img-precontainer{ - margin: auto; - width: 100%; - text-align: center; - background: white; - border:none; -} -.img-container{ - height: 91px; - width: 122px; - padding: 0px; - border:none; - overflow: hidden; - display: table-cell; - text-align: center; - vertical-align: middle; - margin: auto; -} -ul.breadcrumb{ - margin-bottom:5px; - -webkit-border-radius: 0px; - border-radius: 0px; - padding-bottom: 4px; - padding-top: 6px; - background: #f0f0f0; - -webkit-box-shadow: 0 1px 4px rgba(0,0,0,0.065); - -moz-box-shadow: 0 1px 4px rgba(0,0,0,0.065); - box-shadow: 0 1px 4px rgba(0,0,0,0.065); - border-bottom: 1px solid #bbbbbb; - - .pull-left i{ margin-top:2px;} -} - -.alert { - padding: 8px 35px 8px 14px; - margin-bottom:2px; - border: 1px solid #aaaaaa; - color:#666666; - font-weight: 200; - font-size: 13px; - -webkit-border-radius: 0px; - border-radius: 0px; - background: white; -} -.img-container * ,.img-container-mini * { - vertical-align: middle; -} -#help{ - display: none; -} - -/*\*//*/ -.img-container,.img-container-mini { - display: block; -} -.img-container span, .img-container-mini span { - display: inline-block; - height: 100%; - width: 1px; -} -/**/ - -iframe{ - overflow: auto; - -webkit-overflow-scrolling:touch; -} -.upload-tabbable{ - margin-left: 5px; - margin-right: 5px; - - .upload-help{ - font-size: 11px; - font-weight: 200; - color: #777; - text-shadow: 0 1px 0 #fff; - text-align: center; - } - .nav{ - margin:0px; - li a{ - font-size: 13px; - font-weight: 200; - color: #777; - text-shadow: 0 1px 0 #fff; - } - } - .tab-content{ - padding: 5px; - border-bottom: 1px solid #dddddd; - border-left: 1px solid #dddddd; - border-rigth: 1px solid #dddddd; - background: white; - margin-bottom: 5px; - } -} -input#filter-input{ - margin:0px; - width: 84px; - height: 26px; - vertical-align: bottom; - margin-bottom: 2px; - -webkit-border-radius: 0; - border-radius: 0; - font-size: 12px; - font-weight:200; - position:relative; - left:1px; -} - -.qq-uploader .span9{margin-left:14px !important;width:690px !important;} -.space10{ clear:both; height:10px; } - -h4{ font-size:12px; font-weight:200; margin: 0px; text-align: center; padding: 0px; margin-top:6px; line-height: 18px; } -h3{ font-size:14px; font-weight:200;} -.boxes{ border:1px solid #CCCCCC; word-wrap: break-word; background:white; --webkit-box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.2);box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.2); min-height:115px; -text-align: center;} -.container-fluid{ padding:0px 10px !important;} - -body .avpw .avpw_primary_button, -body .avpw .avpw_primary_button:link, -body .avpw .avpw_primary_button:visited, -body .avpw .avpw_primary_button:active { - background-color: #999999; - color: #ffffff; - background-image:none; - border:none; -} - -body .avpw .avpw_primary_button:hover{ - border:none; - background-color: #666666; -} - -.uploader{ - position:fixed; - top:50px; - left:14px; - margin:auto; - width:100%; - z-index:9999; - overflow: hidden; - background:#eeeeee; - padding-top:20px; - border:1px solid #cccccc; - display:none; - -webkit-box-shadow: 0px 0px 10px 0px rgba(1, 1, 1, 0.5); - box-shadow: 0px 0px 10px 0px rgba(1, 1, 1, 0.5); -} -.download-form{ - margin-bottom:25px; -} - -.grid li i{ - margin-left:2px; - margin-right: 2px; - z-index:0; -} -.box,.boxx{ - text-align: center; - word-wrap: break-word; - vertical-align: top; - text-align: left; - position: relative; - border: none; - box-shadow: none; - z-index: 100; - padding: 4px; -} -.box .btn{ - width: 100%; - background: none; - box-shadow: none; - border:none; - z-index: 200; -} -.navbar{ - margin-bottom: 0px; - border-bottom: 1px solid #bbbbbb; - .navbar-inner{ - border: none; - min-height: 35px; - -webkit-border-radius: 0px; - border-radius: 0px; - padding-bottom: 2px; - margin: 0px; - padding-right: 8px; - padding-left: 8px; - .container-fluid{ - margin: 0px; - margin-top: 0px !important; - padding: 0px; - .brand{ - display: none; - } - .filters span{ - margin-top:0px; - font-size:13px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff; } - } - } -} - -ul.sorting{ - position: absolute; - left: -25px; - top:20px; - min-width: 0px; - background: #eeeeee; - li a:hover{ - background: #aaaaaa; - } -} -.btn-group .dropdown-toggle.sorting-btn{ - background: none; - border: none; - box-shadow: none; - position: relative; - -webkit-box-shadow:none; - top:-5px; - font-size: 13px; -} -.btn-group .dropdown-toggle.sorting-btn:hover{ - background: none; - border: none; - box-shadow: none; - -webkit-box-shadow:none; -} -ul.sorting.dropdown-menu>li>a{ - font-size: 12px; - text-shadow: none; - &.ascending{ - background-image: url(../img/down.png); - background-repeat: no-repeat; - background-position: 6px 8px; - } - &.descending{ - background-image: url(../img/up.png); - background-repeat: no-repeat; - background-position: 6px 8px; - } -} - -.sorter-container{ - a.sorter{ - color:black; - } - - a.ascending{ - padding-left:9px; - background-image: url(../img/down.png); - background-repeat: no-repeat; - background-position: 0px 3px; - } - a.descending{ - padding-left:9px; - background-image: url(../img/up.png); - background-repeat: no-repeat; - background-position: 0px 4px; - } - margin-top:5px; - margin-bottom:0px; - -webkit-border-radius: 0px; - border-radius: 0px; - padding-bottom: 4px; - padding-top: 6px; - -webkit-box-shadow: 0 1px 4px rgba(0,0,0,0.065); - -moz-box-shadow: 0 1px 4px rgba(0,0,0,0.065); - box-shadow: 0 1px 4px rgba(0,0,0,0.065); - background-color: #f5f5f5; - position: relative; - border-bottom: 1px solid #bbbbbb; - height: 24px; - .img-dimension,.file-date,.file-size,.file-extension,.file-name,.file-operations{ - display: block;position: absolute; - top: 0px; - z-index: 100; - -webkit-box-shadow: none; - box-shadow: none; - text-align: left; - font-size: 13px; - margin-top: 1px; - color:#999999; - } - .file-operations{ - width: 110px; - right:0px; - } - .img-dimension{ - width: 65px; - right: 123px; - } - .file-date{ - width: 70px; - right: 188px; - } - .file-size{ - width: 55px; - right: 258px; - } - - .file-extension{ - width: 40px; - right: 313px; - } - - .file-name{ - width: 50px; - left: 52px; - } -} - -.img-dimension,.file-date,.file-size,.file-extension,.file-name,.file-operations{ - font-size:12px; - font-weight:200; - color:#777;text-shadow:0 1px 0 #fff; - display: none; -} - - -.view-controller{ - text-align: left; - .btn-group>.btn:first-child,.btn-group>.btn:last-child{ - -webkit-border-radius: 0px; - border-radius: 0px; - } -} - -.navbar .filters .btn { - margin-bottom: 2px; - padding-top:2px; - padding-bottom:2px; - padding-left: 8px; - padding-right: 8px; - margin-top:5px; -} -.filters .types{ - text-align: right; -} - - -@media(max-width:780px){ - #view2{ - display: none; - } -} -@media(max-width:839px){ - body{ - padding-top: 0px; - } - .filters .types{ - text-align: left; - } - .navbar .navbar-inner .container-fluid .brand{ - display: block; - } - .navbar .navbar-inner{ - padding-bottom: 4px; - } - .filters{ - div.span3.half,div.half.span6{ - float:none; - width:100%; - - } - } - - .container-fluid{ - margin:0px !important; - padding: 0px; - } - #qLbar{ - height:50px !important; - } -} -@media(min-width:400px) and (max-width:839px){ - .filters .row-fluid .half{ - width:48.61878453038674%;*width:48.56559304102504%; float:left; - } -} -.tooltip.in{ - z-index: 10000; - opacity:1; - filter:alpha(opacity=1); - font-weight: bold; -} - -.tooltip{ - font-weight: bold; - z-index: 10000; -} - -/* GRID */ -.grid { - padding: 0px 0px; - margin: 0 auto; - list-style: none; - -webkit-overflow-scrolling: touch; -} - -.grid li { - display: inline-block; - width: 124px; - border:none; - margin: 4px; - margin-bottom:8px; - padding: 0px; - vertical-align: top; -} - -.grid figure { - margin: 0; - position: relative; - display: block; - width: 122px; - margin: auto; - - &:hover{ background: #e0e0e0 !important;} -} -.list-view1.grid li{ - width:100%; - figure{ - width:100%; - } -} - -.grid figcaption { - text-align: center; - padding: 2px; - padding-top: 8px; - color: white; - height: 30px; - width: 122px; - margin-left:0px; - margin-right: 0px; - position: absolute; - top: auto; - bottom: 0; - -webkit-box-shadow: inset 0px 0px 8px 0px rgba(41, 41, 41, 0.5); - box-shadow: inset 0px 0px 8px 0px rgba(41, 41, 41, 0.5); - - a{ - margin: 0px; - padding: 3px; - } - h3 { - margin: 0; - padding: 0; - color: #fff; - } -} - - -.grid h4{ - text-align: center; - color: black; - padding: 0px; - margin-bottom: 4px; - margin-top: 4px; -} - - -/* Individual Caption Styles */ - - -/* Caption Style 2 */ - -.grid figure .box { - box-sizing: content-box; -} - -.list-view0.grid,.list-view1.grid,.list-view2.grid{ - figure{ - .box{ - max-width: 100%; - display: block; - position: relative; - overflow: hidden; - z-index: 1; - h4.ellipsis{ - height:18px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - h4{ - z-index: 1; - a{ - z-index: 1; - } - } - } - } - - .selected{ - -webkit-box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, 0.25); - box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, 0.25); - - //border: 1px solid #777777; - } -} - -.no-touch .list-view0 figure .box{ - z-index: 1; - -webkit-transition: -webkit-transform 0.3s; - -moz-transition: -moz-transform 0.3s; - transition: transform 0.3s; -} -.ui-state-highlight{ - border:1px solid red; -} - -.no-touch .list-view0 figure:hover .box, -.no-touch .list-view0 figure.cs-hover .box { - -webkit-box-shadow: 0px 0px 4px 0px rgba(1, 1, 1, 0.5); - box-shadow: 0px 0px 4px 0px rgba(1, 1, 1, 0.5); - -webkit-transform: translateY(-26px); - -moz-transform: translateY(-26px); - -ms-transform: translateY(-26px); - transform: translateY(-26px); -} -.list-view0 figure:hover .box.no-effect, -.list-view0 figure.cs-hover .box.no-effect,.no-effect{ - - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transform: none; - -moz-transform: none; - -ms-transform: none; - transform: none; -} - - -.list-view0 .img-precontainer-mini{ - display: none; - background: none; -} -a,a:hover{ - color:black; - text-decoration: none; -} - -.back-directory{ - .img-precontainer,.img-precontainer-mini,.box{ - background: none; - } -} -form{ - margin:0px; - padding: 0px; -} -.modal-body{ - form,input{ - margin:0px; - } -} - -.modal-header h3{ - font-weight: 300; - font-size: 20px; -} - -/* LIST VIEW */ -.list-view1.sorter-container{ - display: block; -} - -.list-view0.sorter-container, .list-view2.sorter-container{ - display: none; -} -.list-view0.grid{ - .img-precontainer{ - .img-container{ - - img{ - max-width:122px !important; - max-height:91px !important; - } - img.icon{ - width: 122px; - margin-top:0px; - } - } - .filetype{ - position:absolute; - top:0px; - width:120px; - text-align:center; - color:white; - font-size: 13px; - line-height: 22px; - - } - } - .cover{ -/* IE9 SVG, needs conditional override of 'filter' to 'none' */ -background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjI1Ii8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMC4yNSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); -background: -moz-linear-gradient(top, rgba(255,255,255,0.25) 0%, rgba(255,255,255,0.25) 100%); /* FF3.6+ */ -background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.25)), color-stop(100%,rgba(255,255,255,0.25))); /* Chrome,Safari4+ */ -background: -webkit-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* Chrome10+,Safari5.1+ */ -background: -o-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* Opera 11.10+ */ -background: -ms-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* IE10+ */ -background: linear-gradient(to bottom, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* W3C */ -filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#40ffffff', endColorstr='#40ffffff',GradientType=0 ); /* IE6-8 */ - - - width: 122px; - position:absolute; - top:22px; - right:0px; - height: 69px; - } - .box{ - background: white; - } - .directory{ - background: #dddddd; - } - figure.back-directory{ - .directory{ - background: #bbbbbb; - } - } - - figcaption{ - background:#ffffff; - } -} - -.list-view1.grid , .list-view2.grid { - li{ - margin: 0px; - &.back{ - figure.back-directory{ - height: 34px; - } - } - } - li:nth-child(odd) figure {background: #f9f9f9; } - li:nth-child(odd) figure.directory {background: #eaeaea; } - - li figure{ - border-bottom: 1px solid #cccccc; - background: white; - &.back-directory{ - background: #bbbbbb; - .box{ - background: none; - } - } - &.directory{ - background: #efefef; - box{ - padding: 0px; - min-height: 10px; - } - } - .box{ - h4{ - padding-top:1px; - font-size: 13px; - text-align: left; - } - margin-left: 50px; - -webkit-transition: none; - -moz-transition: none; - transition: none; - } - } - .img-precontainer-mini{ - display: block; - position: absolute; - width: 45px; - height: 34px; - overflow: hidden; - text-align: center; - img{ - height: 34px; - } - .filetype{ - position:absolute; - top:5px; - text-align: center; - left:5px; - padding:1px 2px; - font-size: 13px; - line-height: 22px; - width:34px; - height: 24px; - color:white; - background: #333333; - } - } - .cover{ - display: none; - } - .img-container-mini{ - width: 45px; - height: 34px; - border:none; - overflow: hidden; - display: table-cell; - text-align: center; - vertical-align: middle; - margin: auto; - - } - .img-precontainer-mini.original-thumb{ - padding: 0px; - img{ - width: auto; - margin: 0px; - height: 34px; - } - - img.original{ - width: auto; - width: auto; - height: auto; - } - } - - .img-precontainer{ - display: none; - } - - figcaption{ - background:none; - width: 120px; - position: absolute; - right: 0px; - top: 0px; - z-index: 1; - bottom: 0; - -webkit-box-shadow: none; - box-shadow: none; - text-align: right; - - } - .selected{ - -webkit-box-shadow: 0px 0px 3px 2px rgba(0, 0, 0, 0.2); - box-shadow: 0px 0px 3px 2px rgba(0, 0, 0, 0.2); - } -} - -.list-view1.grid{ - .img-dimension,.file-date,.file-size,.file-extension{ - overflow: hidden; - display: block;position: absolute; - top: 0px; - z-index: 1; - -webkit-box-shadow: none; - box-shadow: none; - text-align: left; - margin-top:7px; - } - .img-dimension{ - width: 65px; - right: 120px; - } - .file-date{ - width: 70px; - right: 185px; - } - .file-size{ - width: 55px; - right: 255px; - } - .file-extension{ - width: 40px; - right: 310px; - } - figure .box{ - padding-right: 352px; - } -} -.list-view2.grid{ - figure{ - .box{ - padding-right: 115px; - } - } -} - - -@media(max-width:610px){ - .list-view1.grid figure{ - .box{ - padding-right: 312px; - } - .file-extension{ - display: none; - } - } - .sorter-container .file-extension{ - display: none; - } -} - -@media(max-width:565px){ - .list-view1.grid figure{ - .box{ - padding-right: 257px; - } - .file-size{ - display: none; - } - } - .sorter-container .file-size{ - display: none; - } -} - -@media(max-width:495px){ - .list-view1.grid figure{ - .box{ - padding-right: 187px; - } - .file-date{ - display: none; - } - } - .sorter-container .file-date{ - display: none; - } -} - -@media(max-width:430px){ - .list-view1.grid figure{ - .box{ - padding-right: 115px; - } - .img-dimension{ - display: none; - } - } - .sorter-container .img-dimension{ - display: none; - } - .breadcrumb{ - margin-left:0px; - margin-right:0px; - } -} - -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.pdf{ background:#CB0011; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.css{ background:#D10698; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.ai{ background:#D6772F; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.psd{ background:#0960A4; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.html,&.xhtml{ background:#035BC4; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.fla,&.flv{ background:#CF302E; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.ppt,&.pptx{ background:#DA5B00; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.xls,&.xlsx,&.css{ background:#1A712C; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.rts,&.doc,&.docx{ background:#002093; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.rar,&.zip,&.gzip{ background:#FE9221; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.mp4,&.mpeg,&.mov,&.avi,&.mpg,&.wma,&.webm{ background:#31231E; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.mp3,&.m4a,&.ac3,&.aiff,&.mid,&.ogg,&.wav{ background:#9F008B; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.odt,&.ots,&.ott,&.odb,&.odg,&.otp,&.otg,&.odf,&.ods,&.odp{ background:#367BBE; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.jpg,&.jpeg,&.png,&.bmp,&.gif,&.tiff,&.svg{ background:#CFA554; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.txt,&.sql,&.xml,&.log,&.iso,&.dmg{ background:#CACACA; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.ade,&.adp,&.mdb,&.accdb{ background:#B61C19; }}} diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/dialog.php b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/dialog.php deleted file mode 100644 index 75563e40..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/dialog.php +++ /dev/null @@ -1,901 +0,0 @@ -console.log('The ".$lang." language file is not readable! Falling back...');"; - } - } - -// add lang file to session for easy include - $_SESSION['RF']['language_file'] = $language_file; - require_once $language_file; - - if(!isset($_GET['type'])) $_GET['type']=0; - if(!isset($_GET['field_id'])) $_GET['field_id']=''; - - $field_id=isset($_GET['field_id']) ? fix_get_params($_GET['field_id']) : ''; - $type_param=fix_get_params($_GET['type']); - - $get_params = http_build_query(array( - 'type' => $type_param, - 'lang' => $lang, - 'popup' => $popup, - 'field_id' => $field_id, - 'akey' => (isset($_GET['akey']) && $_GET['akey'] != '' ? $_GET['akey'] : 'key'), - 'fldr' => '' - )); - ?> - - - - - - - - - Responsive FileManager - - - - - - - console.log("Error: Spritemap not found!");'; - // exit(); - } - } - ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " /> - - " /> - - - - - - - - - - - - - - - - - " /> - - - -
-
-
-
- - -
-
- -
- - -
- :
- - - - - - - - - - -
-
- -
-
-
-
- -
-
-
- -
- - - -
- - $file){ - if($file==".") $current_folder=array('file'=>$file); - elseif($file=="..") $prev_folder=array('file'=>$file); - elseif(is_dir($current_path.$rfm_subfolder.$subdir.$file)){ - $date=filemtime($current_path.$rfm_subfolder.$subdir. $file); - $size=foldersize($current_path.$rfm_subfolder.$subdir. $file); - $file_ext=lang_Type_dir; - $sorted[$k]=array('file'=>$file,'date'=>$date,'size'=>$size,'extension'=>$file_ext); - }else{ - $file_path=$current_path.$rfm_subfolder.$subdir.$file; - $date=filemtime($file_path); - $size=filesize($file_path); - $file_ext = substr(strrchr($file,'.'),1); - $sorted[$k]=array('file'=>$file,'date'=>$date,'size'=>$size,'extension'=>$file_ext); - } - } - - function filenameSort($x, $y) { - return $x['file'] < $y['file']; - } - function dateSort($x, $y) { - return $x['date'] < $y['date']; - } - function sizeSort($x, $y) { - return $x['size'] - $y['size']; - } - function extensionSort($x, $y) { - return $x['extension'] < $y['extension']; - } - - switch($sort_by){ - case 'name': - usort($sorted, 'filenameSort'); - break; - case 'date': - usort($sorted, 'dateSort'); - break; - case 'size': - usort($sorted, 'sizeSort'); - break; - case 'extension': - usort($sorted, 'extensionSort'); - break; - default: - break; - - } - - if($descending){ - $sorted=array_reverse($sorted); - } - - $files=array_merge(array($prev_folder),array($current_folder),$sorted); - ?> - - - - - - - - - -
-
- -
-
There is an error! The upload folder there isn't. Check your config.php file.
- -

- -
- - - - - - - - -
    " id="main-item-container"> - -
  • >
    directory" data-type=""> - "> -
    -
    - .jpg" alt="folder" /> -
    -
    -
    -
    - - .png" alt="folder" /> -
    -
    - -
    -

    -
    -
    - - - -
    -

    ">">

    -
    - - - - -
    -
    -
    -
    - " title="" data-path="" data-thumb=""> - - " title="" data-confirm="" data-path="" data-thumb=""> - - -
    - -
    -
  • - $file_array) { - $file=$file_array['file']; - - if($file == '.' || $file == '..' || is_dir($current_path.$rfm_subfolder.$subdir.$file) || in_array($file, $hidden_files) || !in_array(fix_strtolower($file_array['extension']), $ext) || ($filter!='' && strpos($file,$filter)===false)) - continue; - - $file_path=$current_path.$rfm_subfolder.$subdir.$file; - //check if file have illegal caracter - - $filename=substr($file, 0, '-' . (strlen($file_array['extension']) + 1)); - - if($file!=fix_filename($file,$transliteration)){ - $file1=fix_filename($file,$transliteration); - $file_path1=($current_path.$rfm_subfolder.$subdir.$file1); - if(file_exists($file_path1)){ - $i = 1; - $info=pathinfo($file1); - while(file_exists($current_path.$rfm_subfolder.$subdir.$info['filename'].".[".$i."].".$info['extension'])) { - $i++; - } - $file1=$info['filename'].".[".$i."].".$info['extension']; - $file_path1=($current_path.$rfm_subfolder.$subdir.$file1); - } - - $filename=substr($file1, 0, '-' . (strlen($file_array['extension']) + 1)); - rename_file($file_path,fix_filename($filename,$transliteration),$transliteration); - $file=$file1; - $file_array['extension']=fix_filename($file_array['extension'],$transliteration); - $file_path=$file_path1; - } - - $is_img=false; - $is_video=false; - $is_audio=false; - $show_original=false; - $show_original_mini=false; - $mini_src=""; - $src_thumb=""; - $src_thumb_url=""; - $extension_lower=fix_strtolower($file_array['extension']); - if(in_array($extension_lower, $ext_img)){ - $src = $base_url . $cur_dir . rawurlencode($file); - $mini_src = $src_thumb = $thumbs_path.$subdir. $file; - $src_thumb_url = $base_url . $cur_thumbs_dir.$subdir. $file; - $mini_src_url = $base_url .$thumbs_dir.$subdir. $file; - //add in thumbs folder if not exist - if(!file_exists($src_thumb)){ - try { - create_img_gd($file_path, $src_thumb, 122, 91); - new_thumbnails_creation($current_path.$rfm_subfolder.$subdir,$file_path,$file,$current_path,$relative_image_creation,$relative_path_from_current_pos,$relative_image_creation_name_to_prepend,$relative_image_creation_name_to_append,$relative_image_creation_width,$relative_image_creation_height,$fixed_image_creation,$fixed_path_from_filemanager,$fixed_image_creation_name_to_prepend,$fixed_image_creation_to_append,$fixed_image_creation_width,$fixed_image_creation_height); - } catch (Exception $e) { - $src_thumb=$mini_src=$src_thumb_url=""; - } - } - $is_img=true; - //check if is smaller than thumb - list($img_width, $img_height, $img_type, $attr)=getimagesize($file_path); - if($img_width<122 && $img_height<91){ - $src_thumb=$current_path.$rfm_subfolder.$subdir.$file; - $show_original=true; - } - - if($img_width<45 && $img_height<38){ - $mini_src=$current_path.$rfm_subfolder.$subdir.$file; - $mini_src_url= $base_url.$upload_dir.$rfm_subfolder.$subdir.$file; - $show_original_mini=true; - } - } - - $is_icon_thumb=false; - $is_icon_thumb_mini=false; - $no_thumb=false; - if($src_thumb==""){ - $no_thumb=true; - if(file_exists('img/'.$icon_theme.'/'.$extension_lower.".jpg")){ - $src_thumb ='img/'.$icon_theme.'/'.$extension_lower.".jpg"; - }else{ - $src_thumb = "img/".$icon_theme."/default.jpg"; - } - - $src_thumb_url = $base_url . $filemanager_dir . $src_thumb; - - $is_icon_thumb=true; - } - if($mini_src==""){ - $is_icon_thumb_mini=false; - } - - $class_ext=0; - if (in_array($extension_lower, $ext_video)) { - $class_ext = 4; - $is_video=true; - }elseif (in_array($extension_lower, $ext_img)) { - $class_ext = 2; - }elseif (in_array($extension_lower, $ext_music)) { - $class_ext = 5; - $is_audio=true; - }elseif (in_array($extension_lower, $ext_misc)) { - $class_ext = 3; - }else{ - $class_ext = 1; - } - if((!($_GET['type']==1 && !$is_img) && !(($_GET['type']==3 && !$is_video) && ($_GET['type']==3 && !$is_audio))) && $class_ext>0){ - ?> -
  • "> - -
    -
    -
    - - <?php echo $filename." class=" " src=""> -
    -
    -
    -
    ">
    -
    - - - <?php echo $filename." class=" " src=""> - -
    -
    - -
    - -
    -
    -

    "> -

    -
    - - - - -
    -
    -
    -
    -
    -
    - - - - - - - - " - title="" data-url="ajax_calls.php?action=media_preview&title=&file=" - href="javascript:void('');" > - - - - " title="" data-path="" data-thumb=""> - - - " title="" data-confirm="" data-path="" data-thumb=""> - - -
    -
    -
    -
  • -
- - -
-
- - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/execute.php b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/execute.php deleted file mode 100644 index 5f924283..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/execute.php +++ /dev/null @@ -1,280 +0,0 @@ -$path) - { - if ($path!="" && $path[strlen($path)-1]!="/") $path.="/"; - - if (file_exists($info['dirname']."/".$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension'])) - { - unlink($info['dirname']."/".$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension']); - } - } - } - - if ($fixed_image_creation) - { - foreach($fixed_path_from_filemanager as $k=>$path) - { - if ($path!="" && $path[strlen($path)-1] != "/") $path.="/"; - - $base_dir=$path.substr_replace($info['dirname']."/", '', 0, strlen($current_path)); - if (file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'])) - { - unlink($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension']); - } - } - } - } - break; - case 'delete_folder': - if ($delete_folders){ - if (is_dir($path_thumb)) - { - deleteDir($path_thumb); - } - - if (is_dir($path)) - { - deleteDir($path); - if ($fixed_image_creation) - { - foreach($fixed_path_from_filemanager as $k=>$paths){ - if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.="/"; - - $base_dir=$paths.substr_replace($path, '', 0, strlen($current_path)); - if (is_dir($base_dir)) deleteDir($base_dir); - } - } - } - } - break; - case 'create_folder': - if ($create_folders) - { - create_folder(fix_path($path,$transliteration),fix_path($path_thumb,$transliteration)); - } - break; - case 'rename_folder': - if ($rename_folders){ - $name=fix_filename($name,$transliteration); - $name=str_replace('.','',$name); - - if (!empty($name)){ - if (!rename_folder($path,$name,$transliteration)) die(lang_Rename_existing_folder); - - rename_folder($path_thumb,$name,$transliteration); - if ($fixed_image_creation){ - foreach($fixed_path_from_filemanager as $k=>$paths){ - if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.="/"; - - $base_dir=$paths.substr_replace($path, '', 0, strlen($current_path)); - rename_folder($base_dir,$name,$transliteration); - } - } - } - else { - die(lang_Empty_name); - } - } - break; - case 'rename_file': - if ($rename_files){ - $name=fix_filename($name,$transliteration); - if (!empty($name)) - { - if (!rename_file($path,$name,$transliteration)) die(lang_Rename_existing_file); - - rename_file($path_thumb,$name,$transliteration); - - if ($fixed_image_creation) - { - $info=pathinfo($path); - - foreach($fixed_path_from_filemanager as $k=>$paths) - { - if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.="/"; - - $base_dir = $paths.substr_replace($info['dirname']."/", '', 0, strlen($current_path)); - if (file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'])) - { - rename_file($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'],$fixed_image_creation_name_to_prepend[$k].$name.$fixed_image_creation_to_append[$k],$transliteration); - } - } - } - } - else { - die(lang_Empty_name); - } - } - break; - case 'duplicate_file': - if ($duplicate_files) - { - $name = fix_filename($name,$transliteration); - if (!empty($name)) - { - if (!duplicate_file($path,$name)) die(lang_Rename_existing_file); - - duplicate_file($path_thumb,$name); - - if ($fixed_image_creation) - { - $info=pathinfo($path); - foreach($fixed_path_from_filemanager as $k=>$paths) - { - if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.= "/"; - - $base_dir=$paths.substr_replace($info['dirname']."/", '', 0, strlen($current_path)); - - if (file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'])) - { - duplicate_file($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'],$fixed_image_creation_name_to_prepend[$k].$name.$fixed_image_creation_to_append[$k]); - } - } - } - } - else - { - die(lang_Empty_name); - } - } - break; - case 'paste_clipboard': - if ( ! isset($_SESSION['RF']['clipboard_action'], $_SESSION['RF']['clipboard']['path'], $_SESSION['RF']['clipboard']['path_thumb']) - || $_SESSION['RF']['clipboard_action'] == '' - || $_SESSION['RF']['clipboard']['path'] == '' - || $_SESSION['RF']['clipboard']['path_thumb'] == '') - { - die(); - } - - $action = $_SESSION['RF']['clipboard_action']; - $data = $_SESSION['RF']['clipboard']; - $data['path'] = $current_path.$data['path']; - $pinfo = pathinfo($data['path']); - - // user wants to paste to the same dir. nothing to do here... - if ($pinfo['dirname'] == rtrim($path, '/')) { - die(); - } - - // user wants to paste folder to it's own sub folder.. baaaah. - if (is_dir($data['path']) && strpos($path, $data['path']) !== FALSE){ - die(); - } - - // something terribly gone wrong - if ($action != 'copy' && $action != 'cut'){ - die('no action'); - } - - // check for writability - if (is_really_writable($path) === FALSE || is_really_writable($path_thumb) === FALSE){ - die($path.'--'.$path_thumb.'--'.lang_Dir_No_Write); - } - - // check if server disables copy or rename - if (is_function_callable(($action == 'copy' ? 'copy' : 'rename')) === FALSE){ - die(sprintf(lang_Function_Disabled, ($action == 'copy' ? lcfirst(lang_Copy) : lcfirst(lang_Cut)))); - } - - if ($action == 'copy') - { - rcopy($data['path'], $path); - rcopy($data['path_thumb'], $path_thumb); - } - elseif ($action == 'cut') - { - rrename($data['path'], $path); - rrename($data['path_thumb'], $path_thumb); - - // cleanup - if (is_dir($data['path']) === TRUE){ - rrename_after_cleaner($data['path']); - rrename_after_cleaner($data['path_thumb']); - } - } - - // cleanup - $_SESSION['RF']['clipboard']['path'] = NULL; - $_SESSION['RF']['clipboard']['path_thumb'] = NULL; - $_SESSION['RF']['clipboard_action'] = NULL; - - break; - default: - die('wrong action'); - } -} - -?> \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/force_download.php b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/force_download.php deleted file mode 100644 index 5edcf481..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/force_download.php +++ /dev/null @@ -1,30 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_apply.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_apply.png deleted file mode 100644 index 84a0447b2a39ff5014f468970f51590166707825..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18029 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_clear.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_clear.png deleted file mode 100644 index 4afd1bd04b25c50ab93be091648fa4ebec74d791..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17840 zcmeI3c{tST`^P_yvL>{Uq%)R~%*xP=F_y7r3nL>cV>T1Bn3=M4a;PjVCrL%bQJqpm zMJb_>s1#`rQ6Z^A-$RZz{63b@r<&jSUBB=5kMDKOT-Pl3b3ga{d7jsEKlglQuIsaX zrMsh&!a@ZA0F<1a?7YBtmC>i14EXwU{|FU)ljl462?0QH?&wnrNI$dy02DmfB+|;2 z!8{R97|i3toJk}YU%+FsLm2=N(Uj@UB71kMSq`?ovvo;~+2_LZnlA_QvfUXoFInG6 zTV7>FqW0k@^F1q7?d@l1Ue8XH-n~0!*L+XoSvwRS%XVlV*}e5>;*Oi2o^LuD@~~|1 zsSRnJ~;0py0&mgR|Y%U|w4hXgYPBpCBVGmGH zz&xf)H4b&k?DF%~j0oZ%x&dS?W$ zRm|QnxRY6^Y<(Wc?r!q!=Z~_nKfI^p$&=2Gj>jviZT+b?eK!xYs@7Hb4uyV*CVU{b3L}GVXyqQpq7_Oj-M|mj(pa-r&H}5R6;SD*X}tdY`0zd zu71oho$a=JmtI?PcZB|;&G?fvu?-8HSx=POlng(yh9>>Di-8J7RPkaE0QyRKmG=$h zq+^1&K5qygd22P~n7ssuVLI;(1Aw)5dI<8(BCA?C0IS4Z=i+QjzVb(^ zTvnxFS*-jFo9l9OsoG76Qb9W?y1V7n55~RMu5_9)XQv+QM&dkA9hYRR6WVJB8Rp}p z)n_UA36~Jya4Fg1I)K^oIljyhy)U-V)AIhT^Q4j!<_otu98tVO7opRW)Uq?~2+l3E z++}vS>rP&S7xwiYvwavC|3IB0W>pCV6vt>201>20AGxT+ZoVQvFc9AP9p_ zpg0-pKAe*@7pbx-kyLH2H)lHuV^Ff^C+D+&knhg9>u{IrrQ2E2JCVEJr zEN-7MY}xg=j?9j$9VQ)`9ol{V3YkIHVSl{$eqrc!bNvd9PL)p6P8miT#>VGpy4TYa zhsmngq}8_hhl{;VdnTNiYq}vFcYCXvv&*skBm3_y3|0>wWS@Q|x}^Ga|6=#lJHB`8 zx*cDozLI_yK1(Tn{?^(=mZ3(*0@(#DjqnAh(_D{h+}o*9OGcTa-=uXNR6fY_p%@h# z{W3rKro#Re`}Oy08X?IibC2h?<|_L1`_z$>POkOdT;Ski;@y5y{{DeHpWMuqZ@e|V zStl({B;>MA@W@twMEebGm+`ymdewvUhiCTLb?s#}Fh!b1QG~H}h*DnshFEO1{@L44 ze%WYLnl_|Wy3;cEc6mSXeww3@ zqvmFbA1FZNh8)v8Txu77g`3lxmUVe;OqMGzr!}&?>*J!$$RY9&=VQ)*<1C6y(JVcg z=2`U%2-mP-Jc1Uow)rnl(weK*q+`_m)YRwOl1my1M;|!+=AgWbT@%o**UqWo)Ew29 z(bv{@aeM97o9^XSa(wA=3s(!*+S|8oAG!VTAU4Ai{Rq>Q(UtKiqwPZA>WJ0G#V3j{ zGMo!LRv-84EiU86t;YEsqxh^|Q{<4JnZM*=X?|&rYEFrJihEwxL)O(Ze-+;-K6ydo zOy^^n=7M5Q@n$M3NS$@zTEW%cl=76#mp1=4WGSnZ@MLzL)@rS2;W@!P{3?8Fdi|kZ ztIgNm9q2}~C=DtNk4@T(=hiK)W@mb5+;e29vr2?p`xAF=ciB>hNF^dNG;5w-FYj0( z8VFnSJnHU1W=2s)RnLj$)4gWB?B0Zy-*1`zzBJ3vM0n@wb<#7>&PFT6-}j?J+D=7# zkUU~p=eu-~G-R@G{-ZM&j)mtAQs1f*|0W84Zzr}B%v&+7e(P?TS6sM$q0ZwfFKb;~ z8|hcw5&B5fNF$IFvqXv|y*<_@*8itZ@1uUvzOvg2-^}>C@JWx&uIv(<`8G*g^0#zW z=4%IE|8q~i_Fz|9eR4f}cHGM7R}b&VQeRScUX7k*5SI|=8*jCnpGaBQh)%_ZH@1+3 zZFV2+4%oG3u+Sd3)9@8oBVsOMJ)z0`lIbO@8U)kt)&oi=#W~bv5e{KgV8#u--1fPr zKjB5@3&r+L>S@U9Yxt3e>#N?y<*1!R%rV9vuy##!U%u~OHY!FZ)OIcDn;X7lw?br< zRuxMJ*=W|7_?Q%6wAj7R$;d5g@1MzK*hsx=CdZ6BOST!D+*9VN*!n_a^TNv(43ZODSf(X1!!?tUJYsD;&PY-FX4Ic)#q8kfJ@OX8OSuifxa-BCj@l zWF%Y2V)!zz+}?f@cOWlo+3lWNMK_!Gm>+uk`$*56syWa179Wdu@r7$qUY4I)k1HgE zMK&w6&!4$0ewEBA!o?lMMw|y8c|E?V1<~dDQEnlzYb$SVsXQ+g@bNKRp)vJ{xh8%|22-ZV#9b7@wR!6%ASyY|rg}f8Y~m zO};xPtfyA`uJn+s?(E`6CHEg_-L)ipB|TjB#&LG-&zFZY--g4L%#?h7J5=*Rmv0x@ z(LE^NHn>;`-?VYprc=*l@BO?{i=~BJZ=2qi?vUY~{>eYc|B}ZoV&lWttx=yHn}1e5 zWJ>UhT+vUy!EWl_axaC|*RU&df9B?B#D|u^<|Dy>$LFR6&0-?bmv*=12? zQ6JEEQPfx1+&S0xqHp?X{5sBS(QCqR$~}+T(nF=`1tkF?CB0GQ=QlA2yEU`S>z}?W zkNit*JxW$WHq_t-okJxzFEnp;u`x{#v2W8^6HVh{ZBq@_-CLK(wi&u(&leL_P!@aN)40V6bAvMq&^t055 zj||rpsH-8P-#>WssJ=0+@o;KiYRVPPFUN*nSG>_U-CR>uv-t9j2ov<$cdI`2RED>N zYrQ?%rtH!23+z|Jk>C$!2fXj(d`i(sNg0_To!0-EW&&>p0Q_7wnIfXNx#DR&4uVSO z1u+m296op<3IGJF2tJh-!VtlN7%Vo|Qs-^y6&)CxZmHvobwj!FNsM5&Q{;=Sw~ zCWZqoOPyemh>u4i!^6W7;U);4fQ3Zka5y9igT!FqU=O%3k}IM{z_~)*agi@Nb_^j+ zz~+nCJT7chmm0*|AhOia869ZyF|jTVe{vwMaDp935g9?{Bhd&H@&`d~ZsNl@obN^o zMfMxPnM|zgy8{Zzk$eWyiy`D~5YQO*8yQ@Y?)N4^r%mecHwZ$<_|R!cMks>=h6usQ zqrW=^{+C}Mli^=YW77S@)r;87sm=K+cGUC3Fh&IX2VtY0@vyN}7~dfRn16VZfI$`U z1Y{mBlsKMcQ@@|UpHGIqY%ZM_E?i1LLVHhb^^_39jw)gh!BjMbqrf~gC8JI7SR5W> zz6^!NqfpaC#(P3E+`zP_Q$^H&qViQ=s1A?LW=8%am8qUzYq+`Low-60l}lqd+Y!OF zBiL*@9!oVd!D7tOa5@TW3O7ZWqToR&8Wv8)FwIP{K{zZk2tBsQufxBQw&T$@jONgU zG#!*?n3>U-K_)?Pw0RH{jzXE5!-JU1F>oplN24>$F-+WY>=)^2;onGm2-si|qJ~cE zGdlbK>k!|O`DQ35wh&C6$Z07BCe~P)@n(d5-TK85${s5he5ydm7(IoSI$w_AWPO<| zAEPm2rx{PBjTRarZ8TRIbOQ3L)~RVtMoxsWzumxpMtNL+TKJF02oGj(#U=c>)L5?{ ziwJp4Q8-n=uwj8Y@xL6yalx-6pvnZ~XiW}f{|EL!NZt7V+kt;}g#O!iU@CWM!Bj4b zK_?==r0ti6f3|7kTlw{Q`cekIJ%0o`4bS8WI8+gl&7rawNIsWEKu$GIjY*jN7Q&Nw zp*(>bkIo>P5Rl(%{%#cb=i18g|JH~?FGpLLvpvZSjWaWYV-R2ooRXQ=Z<@~N_ZS|m zF<`z^$Idnw^GzGHKV`I5gl-t?Z;nBM4xX1Q!H|cvFH)JRgWx zf(rsfyeYvYo)5$;!36;#-jv`H&j;d_;DP`VZ%S~9=L7Lda6y2GHzl~l^MQCJxFA5p zn-W~&`9Qo9To54QO$jdXd>~#4E(j3urUaLGJ`k@27X*lSQ-Vu8ABb0i3j##EDZwS4 z55z0M1py-7l;9H22jZ3Bf&dY3N^pti1My05L4b%iCAh@%fp{gjAV9>M5?tc>K)e!M z5Fp}BvA7hb?(}4E!P`5-!TUIUnk|0=?*WC;oV?rsAZiH!#B2qC4|5q+XG4x?I^)t!2$E1Wv~FXpai=YN=)7%clQsXf5OLNYf0O_S6jz)ZC= zXfLPsbw~38>Bq>Kc61B}HVm<=8?jc;1{2Hty8 z)n5}3yWwZm@>MIPyRT_>kYk4wRSm3e#qdt6)<0X2ut){hcY`P6Pv5t_(F|BF3oQO< VYf+aauL-ULaJF~1E3ggR@;~!~i{1bL diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/copy.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/copy.png deleted file mode 100644 index f037a6f3390677c543b6147d6766afefd5278c98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18072 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 aMZnAM9VZMvW~)Kd1RQN$Z3?W{ZuvJ|!`n0f diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/cut.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/cut.png deleted file mode 100644 index b2abe89f1a2cd8594ecc56850023e54a871b47aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17849 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/dimension.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/dimension.png deleted file mode 100644 index cb46270fda38fe201013a235545332a5bc5baded..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2076 zcmah}2{@bC8V)M9)>3ONBMr)ElUPcKM5q*@wpdEhGzfwuL=e@q+R;HwYm|1zQl^&L zu5Gkc`!b5L)Y{wF%c!N8QcE+nP15P~-aGR=cmC%&|M|}Mzvunl_dCyj5*_WWj)*FX z0sw#`SZfT9J4^D0Fp&FJ-8dj{r$YhecIE&;MHgIWfIcy!+bxf<&hgqMSnHU@c8TLBRs~&W>LYzLo!h;(KJ*w* z8!wnFTpY)s@TA8X$6OQcm6qS{SHGKDD3_LP#~P|0u@x98U9yLy^z<^PVE zb(AsKsfn^bjuyE+puH?xCfoo-Hn9C+H3YnXLRadHD@Cae?4MFyc85UgpMfQZ)#x5b zKrP+-^nVd^?fRlICXN{r702p^6{qfnr$V%q83ZICdf(tFm#2Vq3X0*e1}P& zTCl?7%Veg2Q-U#rp@m|0J3$e;G0F;6gIgNQ-*>4Qy^IJrTAeQ+`__%~i0!+WQq<*4 zdPR8EYQro^$7h7O&BsmlR9{H%wEUKHDyG1G&n@K$RX?<-|d<)wGy13kG@s>(3iabbw;J_$xStf0o~J{tI{AL z>A(p1kZECXFnUEC*$u4cJYQ`J4yNyhZQPnnB6k{AQaYZrao81AkXWCqYk{M?tQl@1uAG<|F$tlgB??WCrD4SyaQhZ=NM=@ z+jqyz$-hq9ZP@)0sZ=Rbi~l0EaISG}MP$40@SaMe0$sE^$nJ3rWc`rBX$cMBec;Ou zmuGRMbUBaloYaRn!>$hYrdna7SJvx$ECwQ*rD>h`Hp!vAb5@_fCcA-ik#nN*p}^LD zst-8k9g*@vyV2U%Ma(YK)$#!;7fW1EGjAr8l?}V(gI+*#>U1l9X*(y9)yd4ghx~81O|i> zuJ#AXpF9|1xG#+qN+(e%ARaHlhZ;dgfx)~&pPx@U$)TSMQNlmD;`)Oz2%#`ts1EEi zGj}7B>k(l=BNFITnhTX0VrtH70tibc1Q2mVf?qTe_E*HGl1La&$A9ViXqrd)m;68J zrIY;s)0zJf%=_|p#k?%Sfkq;7JH_jVsV)-sx7_~~`G<7w(U^*I?frSorlPlT;%@)| zzGy7Q+{H*LBDK-R!d%i4o)N3%22@HCCP8FcbF3<>Q-1iibHFlA#{5jX)w;n54&Nek zA@OEz0+@zc@Q0U+h-XcVrc({8tKYk^a)oPMb$p1D@6)n+d<~*0E_sFzELBTejh{;H z1@+#|aI&MlQ=b)3XbHevL%+139b}_NiluJNYcBw98vPH{)H=o6>H*2 zKcL!9_5Ng-iCjMwa0jv0OLmV}Vqez?#BAP5cg~A6N@e46S_D?EtDI8m*Odzo8rk+G zFIKGyLswk8L@Sg5qXe$Yq>jO45TrfaYLMOddY7ct?GRFVDK>H nz;C@j0q3cl-WP5WA&f4)AfJ%@FUjwD{~z|OJ*NE3r5nEkohN_3 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/door.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/door.png deleted file mode 100644 index 369fc46ed259191014664e8a16bea76e7513f8b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412 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 XcBN<`LPe9Xd+}JF#9>QLcwYG()C&G_ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/duplicate.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/duplicate.png deleted file mode 100644 index 71bfac6f859f8737ec8f98ebc2d7359c2d46d949..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17917 zcmeI4dpML^`^O)foKJ~T(jJFOGDqVu(-_P+hJ+D1kD14qn1h+AaoCAUbl4;n5nHuI zL`5l~kf;>tTuv1dZM>UGC;SE#J=Og7@A|#(AMbU|T$h=-*S+rVTI;j!b?)`Xt?pLGkLIX*JaPn&c7}wcmx~sU;8dB<+sUOk7~B zr=Y$xPVdNLEsx6S_VzM5*D~Xzw+ zFCbF}SYJo;ZwHpcf%OZwytoTQrN28AAqA}3ucsxInFzpUfN^#};1b|u!-`$@fG-Nr z3~;H&0gvDS%GoEt2{?TosHj(0Dg@+}0hC8v%pyQ00$6{|z#tUZehAQX81Nzdy|_TV z%UDF}P$8kj5N98~N**2}=i`HzXH@SzYq6#|^%rWY4WcUS&}>XJR_*EFO#sMD)Do?B za5%JHwV=M;MVRaQrouo*Qn#)_i=;T(C(T-cEb&b~}@7d^LD?9>sBym*{Ro)j=t+;9*sPY+= zMrF|oGPc*`XHfN?#7X(@@->K;pLHnaonEDrjK*$5*!4I~4}F(JGbgm?E(*-sNq4}C z_X{p|wZp~4CD#DV)=xXi9MSuu3q7pvDW4;kD;HeG;DO_-UPcAIy0j@2IX zBVD)i0@a=*5XrTuikI4Qrq#hHM9me_8A}s|BwF1W{gcXhHFHj{I4NDa^9`-xj8H}+ z+P*@;Tt-NOQRmq@`MUZpd*qY@n`?-j{zSn-L3+DK)k6KG9G9~TE>3@6t?iFN$ND;% z7(CEOn1NJ}h$B~97;5Y!V-}X|{l)prpOiZqcO34pJq@}|PNZR-<`^Vhe?ku`l*8>e zfi1ok(~;hBrNgvCr$cXGm14TTO~{|`yq+6*-q^5ocBgtLwo?{N!Pt5qOZ9BYIYOCk zmavkPf27#+lt*mN4D7~K+^uahon5l>j~=)?CvaBa5cAYa!Nut<2j(qHzU_0TuG{ft z@=NL0LS>a5TH9*l7)G(9$0Wd#~4XDk$XJ1HCM@d(7TS3aAK|3<^l(AQ?K?D3il4?dFQ4tf90j)#W=Af zCpMRn!=YIJ8R<8?Q`YZ_>lJtMpB|ZK*0q<_z?5jSi$YEGf>iQ$Y>YOmUU25tirFVHf_G-yi%%16H zg@03k$PLQUIZ|pTyv)w-OUbyjHY&rFlieCt-t}SbX5=tsnDrt1jia)!Y>~2|Y?E@m zHsPvS2#27HtZn++gS_U74LOT?fSUYldtyl=;n;nL-yPKUFl$z~8@97*ST)BM$S%-Z z;NsTf)|cw(R&spN@g=THTx)OLymj=}gF|L%R_KSAuC%VShiPr+*RKp+X;Pe1d;xSW z>{xl+udld_9kUYWm*wlda!rv#etQ1=2c`L?+0(O2mL)CA%Xq-Ja{BM$>%}L|&pzGx zNVchAzQ;B`7ny0%`Hg$8uNQQ5Ndcz~r_Tm|Ji>jIFUTJq78M7EA{B47AyLY;5twSUe5otO#E!WCBmI~g4 zta%oG=S_NAQCd}RPSdGA^FC%@Z1W#Cv41Se@H6G#zH*KH)T6V}TIr7isGzo!k?v&o zXvVoN10)TZ=#&5O^!Y4d?hv(q7V#~S_eVRionX<5Y4uxo)1u=1wexlES2!8#V%o@C z3`Xgr;iHW}cGP?+hV;&8+vrule0&%Fo8IMkYkU*%X+$s1{Gh<>dVguoc#YOBz>l#FW-_85J>AudvE^~1R;{tPb@TIm-y@RpO z)1ND~N6bn=UR%QrJ5pcuIwpJO3513T{-BL(+%n7k|FTs#&Y8Jq{=f|3{CLH%D%~oE zKC;ogG42t0weh@V15U7;fcLvt}3oAY50tpsheOdj1|5d zy=`CO-Vjo*o?B8eqlfV#U{l>mFs5+iDtq^N9#^PJOH;ZmG?X@`E|Ho*rMwQ01eZ^TjTzufVzAws8Zom~1Lc*F9 z+qI@G-myaVB;mrYVq?~Q_q<-8tT%(Q7MjY^^*e74%BUTd^}{^Q-2Ey=&Zk zk$!FGs2_Hu>kzee?kdo1nw6}z<&jZyXs1pr=f>qj&HK-u$g3`)Hw4@X=zh@(&se2; zFgN){vMO8U@sqPEZ7a_9zIkikgiO9=)Kt2ym|Sw~GT}lQn0>we))H&VpOn{>4;1sh zJ1ys^58tsH`*b48-eUi{-?XZ1Xqb5YQj@oox7+=I``}0Ck3~b)1v_)Q-yQtOT9dzw z71CQPeMfp&&Oo*JVadJwx_7K7o(T^Yzj9Qq{q@pFdcP2^Vy@!-`{A1B23)(aj_x6a zwxM|{_$Qn8M4WskclXy#x(r?922$!kszaJr>c>_7t1i0VBsMuIsT<}RfgiUn_k<;Av zFoV-jXe`VEhd`U5v6g5P7zTwlMWRfRXj3>EgGb@;XfxR7hdxnJ^p3!z2jD&J96k>x zvaIw21p+P}i4+Qj2%#y0!($-PI2;a%!XPmixTpu5AI26?L*Z<`!Gy>c9XpUu<1x7c zCWj3h)1~@zHVUlt^~VPK`uMyq7WeBwZ2o6IY!`;XW9_K@+A;DmfB?{q-CXfE% z6u4i$fqV`BW*T4JKV7|m88Epy-^7l2ei{abGJg^_=9vf^PlbscB8c)2Pv(JC0f$H7 zaDs^wSvL9oN%Zx}$cM?MbAseW5xWIx`^bAE`|C{8q!w4e!k63#e=w=xj$6tsTK+ z((x#oDcS;y34oiUKor~phqZ)TqAkruPiW8#hqJ_*gW&igzYYIR+KxlpIF>`7rRgGR z491d5Gc`rQsTfm#INcO$0k`x=q2XpAI=~;a0MTfF^cU$V;onKS^O&L{L=B$OXKeQW z*CBo&^W9KROui^}!ltB@D6z)Nj29U4ZR;0DFmt?IaH%{#ICcuH^uHX#ul40?`522C zKh1b5ZLH7`X=Awx(h10KS|_LVHS%*9^ZO0_XOt)Or-c7}3}GP17MJi7QscdTF2d&o z2!vD~Xv+}g#Q$;(Cj`HZfGQJ^V>LOL`5)K=K6TUoZwLO_5&Cc6fyvyZ1yb1zkWNH? zN!u?C|7_DHw({Ha^rZ}ZfBpz`8a{x-V^IY}CX31dkz6)|fShcc9Fy?%QwUGy1ao+9 z96CreB_My){KF{Gk88^(ep@5*Jsn9fXM3_a8fR_}#~?&?YEouOzbQInpJRAYjS=NL zb^L6LV!msG_V*pD6~PWCq8tl8yY$p>CI*eh?vi#L7JyT zjeXcoK=l$`7lK65(x6Sy-piSxV6d+pQ}mg@AFFg|^UpC*#}5Pjeik^z@i}lJou*v9 zjhBdtR?)Sg=&}^~^}6)C>hZO{{yX1HuIS&X3el1b0s$i4l;9H22jZ3Bf&dY3N^pti z1My05L4b%iCAh@%fp{gjAV9>M5?tc>K)e!M5Fp}B2`=$`AYKVB2oUk61ebU|5U&Im z1c-Q3f=fIfh*yFO0z|wi!6lv##4EuC0V3X%;1bUV;+5cn01r2mv}x9uLKtah}c*IIf|ljnsv$Ec)34EV8Qm6>S7sEJe#_pmlK+ZLi(-dg8WtlDxd0_H?wqKS_RlKxqG#cw$6z zwYKoNW&G0DGP$`L(+~5{hh>~GsT*>cb{BhOKPgMI$J<<4TGX7c5pldmd#H|A-yo~b z`gp3g5eYns75x{HEQ-sbf3?z5kLT4q=*4))#A)Z{s%QarGB=wIyAG#yVfZZ(%a>MO zEN~-n%DOH*#>4f0e`XoIm=!Xp`lfKJFvn+Y)3IFRl#<*YcI%}CT(M($TR-wL&h+6R t_OFHa92RBe=Dy4yeg4*<$99V}fXhDr*I7>Ev9Y^oo$Z&|6_D0%{U2oWw7>uW diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/edit_img.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/edit_img.png deleted file mode 100644 index 658ef62333af213b6f23e5f8dc1c353b2ef4b1bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2154 zcmah}2Urv777Z;_VFf9INJwacBoqyh1P}?*r1wRP0Rluw0g@0(q{xE6?y?BFih@si z`RFJhO;CXcQU#?*eN+KumoDukEbIE*_q{jYH#2w6f9}2Ko_}WItSya?@k#Ol0Dxnr zCTLsc{X5pl17u!hRu8ZM0H++@(9qh{&=6!DK=Q)-;Q#>b<3BizlSb@M=*5w2v&8g4 z&c?CvuSy*3Tx+Bxi&}uD$=SpQFVh}uqrHuL!vEt(t#-T4D6LuQFI#{&^-xD^siDs5Q09St}VIUbl!QGUE@(L z6gQ@_Vc!s^|L)1!sTK25Oi7I?Hk@lK@pE4oJ6*pl_c5vdjRu-|B~PU62>qkk+H zuUE~m$ws!8kQ@J5=B#fw#I`HrUa_Pms`sx|mviO0MN(Im*l7eGLWD!*YUt*_Qu zQSHSLme#-TUSKHQvgsQ7B>A~BaX%)t)Ldl^V%4L5&UIM?#4X}O)#}sB_4UC}FzePld@a4TaJ<{ zJyC->ot!&ezp});(J8PeT`xi5tGI6QBvkb`PKk3u^1w9UyB7Ob(S;N-myt)wIkxb& zmccbhF73+0nY;0HM0&iUN!+IdtCy`)n(S5Sbz4`r6iRbA*7uV|)DVaX!r9C6ZJJYQ z2!BVTH9pFNo=&$Lz;VG0(?Z%?c)O_6P)R|_8Q!q=Y7Msm<5G+QHg89@arK*=6vFXsQh(^k2NgfnyNg^@e1F>G*s=f=rpYA86BEtM_@RChj z0s#PiX3Q_b21tD<0RXW3;_aO&&K8#u9wY)3>q&CQLFoiClMMi%=m=&=z)`RuI>C<^ zh@k6&4;ct%%z|NH&>@B5s|$9vum%~D0&t-7P<5yVSdR|`0-*vty%4tOOGoL&4HDZm@1uA`#^Q`3NHXs9w7s)4~o3YM-)421kq2T%bn)o=m}$ zh#*#7tUHNH(FKE9jlLX5Itk=2jfjCqQ!(d*(XnKhI#dnzr7|-S#hejg7=Xi4NCEaF zlAoRd%LI@q0qc#k#bG^zQLt|rM=en>mX5D<9S+SZ`3?U6^iuF%e>w9Xf>|qnSIj~Y zF1ENpk{^}jhn|)O3idbfFJn-LYgPex9Mjsv1ob2S*Vwmw=l|B=Yw&;C@P|3f&DY~& z8u;gnq{lb8UJeBS*r=vx1AFb`*~u0vXd8)$xqsXXn}*2q^YL$sJJQONgwI!8^T6U| z&4-3Z%F0Spzy}v?^x(9!w>$+})=^b~xw3Y4V<92qtLdvZ#)u}je|t25t6Yv zCKsHZFAd-K90=Rwox4hT!Asu;!d3)k=x?2(g0}L0bD8L05+MU?OF8zgaorrwSVoFS zro<{bN3drVxl-XDJw!wKLv-KW+yToi2&$#Zc0=F4fGc%XN5X!QGbr*;k793itxTIO z=Nwk3i8hpo;fMnE8da*oUhtf4R;atE>`09k9WnYollGC(v#>7m2s3!pfLYlLWJ!-a^2A-(Mxm+O6&_jPY7=@oW@`I5!D%eF z!e}(IA%>d=7(67XN#^JxT;!;TzvrMnEBM}U>}?ueC};BY4X0P@hG%_lL$x=gc3^8{ v39dpoSd8}A2_JO{{Goo^wr~v;fk3 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ac3.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ac3.jpg deleted file mode 100644 index 0b7fcdd8c550d8109a74e77c06de696485728876..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1737 zcmb7EdpJ~S9RAK_&N*YqjG3%k%wSa{GgRcVW+>u`=t*s>n4vsw%L;3-Hlq~PuC!&5 zgi1tiZ4{3}Qqj{+Dk-v*McVcex~%fdelr{O@BYs1JLh-4^S;0L_kKsws~7}KPd5)Y zfFJ-Ma07}VAY3aA3jx5(3z!1{D1ht_12`PPEYO1o0B8|9|0Jmhn;-itlZrmz3Qz=5 z?kL=0U^Gk_1dd}gk|0TvAPACT&`C;-A_%$$U5&v|S63(L8VfYk7r-Gy`4Qz@Of{Fr zpa_cbzeCXmSQPLFNf=@bP!@u*5JfvMfQ6tKz?57+21#K!fzs&8EK~x;5Tzb-fzWV* zL@`S77^q_~%fy&ajOtSrKW5CmqPpTTquze|ft*VL(e{fRMvn&vhK-4=VXC(FSXNn2 zkvDnez?7xEq4d@r&43m_+f$w6c_sh#j@PdYWgX9lw_iTnom`YsCxkP)GBW6g0S5W- zm;k|*LZ~2=Cj!H1B+5sqRklDVhNLJ+7NMaZoFeHb($-o%xY)hssMouLv&|t>zeN0* zDq-BB9PWGdMdsN*>WN<6IGabV8s6n|&Y%8#Hu%^NL*AV8f&2x5@$YSRV%tjst@EWN zC%aB~bL!s2Pqv4cz0}=&hgDN`v(?O6^TE-ShV-c$Mi(Hlr7VEJ?vS*3r4SUu0gc5I zXt6n5YmtQD3tft9RRp1+&d9rjOhzXCq5n8q6d09_8Ws#Jt9ZGua92^x?bxKWA^o(( z6N7!%*2h+ayA1wzOugQH^0+XJN0;yV4R$C&1fM{mw|&y_35ko(&TMpeU}!m}`o% zbQYj#@dY9_hvzGaiH)mmWg45<2wlWMvh3oIT_T*(8KX@1B{CP?MK6=p*+)i}+GOSU z-MymmRf_k-l^1_SovJ$7WW?InHC$R){PgXiCc^A&QT#K{M&F7_4@T67pmk@prM=}n zzdy;!=m>k97-W9C)RiMYo@P63u&GB_V5A$xtQI)LANa>lz0~ZHNm9joyCab^v~`7O z@v&=+{@CCZFC8z|^^A-g=A>qYe827n5`_3A0{v#)s{NK{8m9dHTnjJlGjG#1by(Q= zooQN$w##xIyL!|0^*bu7jBjQiPj`-Kzqqh6U~6uZVQf`h6Y}s?Ae6+E2|bA62tMyq zgavp4zQ|Wn%M{9r#WC4)PIcyeFwpnb!nJLqw^+1JNX!~0_zic+!0C*Y`JcWx`MrjY5n`In=)(z0iUE30Lb;}R>gq*YyoV%;rrX?QQE)r9ZFa_$t& z(!khss89BLqKa?X&(rQ+J5z3MhsSy>m_4$Gb)EaR(DzsWbCg}>XukqLE~=%h`U}9- z{CS}FYv3*Isq!>-NSRUA1Zy;6!Nm_NoHsl`pxFUeNt%p8-4wuA+@$PdRoYk1^BU*3;-EPkLjXcyJR} zJiy+`SfN)e8e%pNmUy2j7_@M@5kN(i^>h_;J+6-tY2tG0jjSb!OLsfo-0WWaaL=Nh z+k}J8-BGRMR{kIy&C{b?V;|{jzrXD0N{OBDQDi zQoZ;@W<_Mmw!VmE3)5r$$DMeh0w2yrL5% E0q%7y&;S4c diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/accdb.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/accdb.jpg deleted file mode 100644 index d21abb8c699f30bbd9f01b0f3e5b9a7de21de834..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3082 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/aiff.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/aiff.jpg deleted file mode 100644 index 774905c6c381828fe373f995eacd5ae9c2da3fca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1778 zcmb7EdpuNG96$FlcV^6Bu162i8njy;g@}^OD6f$$MI<#-i_f&AQSxZf(28D6A?e`} zwW&x-QmO6z_DnLXP?S7Uv1rrmxmvdUbAR`q&pn^>JLmkqzwht+yNX6d3*ZPGT^s>| z0D!;;C|Uu}AyOO&fSVgI1OPAqvRw>tID=lG1qT3V4m!RPor8_f{V1nG4i*9wL8upn zFEosXQAXf6MxzsSI-MX0I)lZeGn5zv!Bl1{u~=+2o6b~LQD&>aDT}&gCeVS2P&ZRp|1p9=qa#cd!=YOnQh{O!MaY<8bOfgn zC_~W%*ckM3Fb-s+IIm#@e!nqx;sQVIIZlgKWhy{gQN=rV-PodA%r%xKhsj*ooyn$)==*se4;MNc6&JSZW%nF8nm4)oSh0Vh{%8g z5DZ5!+IT1eg?KUClmRT}XlPF02_Z5DM2yhT&o-`M&CRnUYbrCFj5pJ~t7lot+S$%8 zwb%KJ_J+9F+c9S~(mF05d$+ej?jee~-tD%wwb#Ll(ETvMbL!Fvxqgk|!3^`WYf>%@ z+~1NmXe$$kp^KYb@#R+HTyV(4F1iW= znFfKNI8GnO0YwOh_~cIfcb`94EIsV%{42Q1${UG-E& zDKxOu-?!?!eUG}FhAYp<3g*9^n^l)`Nxx!Szs99sYI6Nv&ItIT5~-EWoYzFRaVm6I z?m79v}ao(JtwQSXg$}Isf1V;C2Nbx)9l;~zezy$=KS#^$xeSgzkSeH?RME8H}<;G zPkS~-l|G!AaVfv-(i?XHwT|ii&)`Qet0mj;D>7shSu3)$i{RIlpn%C&~g3| z5^yORL=tHqr-mn#<(B;ZeoUx#++m$srE-E9dmbe0CRS$L@e(K9Dr_GqzI-HWgZ(o% zhgIvM+MKZrbfnY6{6={9+rfLC#YTCVrFZSiPVFa~@*b_xS!Hn`cgbg(&x<)juEgcu zoljG@P0ETn{A9;XwTSSDerLJioG-K7`*aJ~E;m${IR%P*OA8EreT=I$L>Co66+84i z^eRDf-Wyo@-VOpA?QK96^S^BkCK{Z9i|P!j>qE9t`cj7jCe0;b(l~;T2>|*@pvx8U z%{(MBp0s3K@tmO;QFRpUSX-|TgFPc*&ztOX{r9A`E@2K^bc`F8w)T|@ZtP_JCiGo+3&m5T7 z@|aS#K2=MY*1u6kgYZpZEoB^@Q2Mox;3hlHXB`bI@0#w33#O;|3V&-0x)&ZOc)xz@ zG+XeoNS0B?n3k%B&5m|)+Kub|_>;k8GrpFQz^1o4pm}3a11|EzuVO~(AtCnXiX?%Bt!IxIN2+@k%XxqF?Ux5P6p^qJz>--EAA AYXATM diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/avi.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/avi.jpg deleted file mode 100644 index 2c57cb7f81d144230b75ffebab18ce2073eb5ae1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1603 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 Ze(sV+FIiD+Y@W9>aGO)ejqrAT$6vJS{YU@+ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/doc.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/doc.jpg deleted file mode 100644 index d9ebcf8a85f0db8b682a9aa047b5072c19d9be9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3006 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⋙sb_t}i=urH0#t&a(Lt=z?RE&k=<4 z>fO0+KgZ{A@2Ph3Bp(|sAGqSC%}LVRS=u`_`%?QJ3r;<2@d3{x;%0`Xk1ONhLjDtF}JgDAv3`fkvTC(A2KjDkc}!S;k3yYYP6GV zl)sHf*y^o_(d%I(g`=>T|J;8>M#EZyscD4gJg-R2;AZpW?<|LrTwlsC-u;!_7#le3 zw(vg%%0>1ahw`y`&Y_yO+wtmFulwFqJoHP7`gqHcxy9SLc7%SYC~m6c%deKBHsx*U z7BfQdptA5Z1m7L-O;7iWDu-N0bXlGrDxt7We`~K-L7x&k&l7(Qva4Z9mRSsQ6Y?H& zcal|fh^f&RP&#ReYM1M-&oA@gkaH<=j8LT)b{}@dWxD^&NdI*>aZzK~`At`!wvM%9 z7kz&8puAb%9RJcr1)X)dl#70$;cC0m^$$?AfBz}}?O!_;>D)L9YYeaM)$^p|Fh_Kh z8e=uu0f(oMKn{|2h`dQvopnoDw2b4utkjP*HM_N2{z&j#mgJ?GO)ZBUPn~ptX#6gx z6UWqxed|F*eGnYlf{Pms$*g!~=JIf53liv}C9Lj1t89`%Sz0b*K6|Jw*lO;SqSKv! zNe}s{`2zLeLVGN+eg3F6I8c9)!!<>=;O=?WwU4Fl{A7Q0Sc&h#_Co6?^08ei>hq%g L!wpLA2nYTR(JHTH diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/docx.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/docx.jpg deleted file mode 100644 index d9ebcf8a85f0db8b682a9aa047b5072c19d9be9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3006 zcmb7GcUV)&7N46&Fad9X5J7>EKokqTNeiKAC?Z8S3X2qVQIKMJLUidxSS$#*(u82B zA`r?_EEEe!*Z?*^KRJHx8M8TKX2~bZ_b@F<^0b4?l~ju7Y+f~)`o2Z zAP4{md4O;jm|KS&ItYM+1K0=vzym1$5WpZ3q6PBE3jit?^}UCii~cUViIl=8z!IP! zNK{csMG6{=78M)@gT{*C#KgpKIGh-sATEYqg~#EzMFOEgjYY{D? z{D&5xQ5dWkgcA+|A{x=cXc%$EjM1hKLZE!O@b+MlYzej`@^J3nBH29e+cNtskHkC& zR22Yl_ILY!AGV&;?_n^6!128hus>e0yvA?bc6g3B_C*Nx&j(~@F8+)T^EK7Oj_>bu zI6WzvPV)|2VwRigje6|6nmt}FyDVusRmgrK|7rZK&$#Jg?#EPlzXz8y7N2go9XDuo z_r*uMx$51M!IiJtrT_@BBVg{3g2Q(-y01)EXEN(-X?G z5xi;$7z_rB`G-TWI57x?(L&>4X>AgPsxKp}scep*$0J^WuqYwG`1Gue4hoQHt~0<5 zJ^f3pFZ~kE;W)N-lxJ;TKT_hhNo*snCo4yGD5|uMZyPn=s9F$cY;TWLN*mEtbw@=- z&bj2OaK$ql6SIu$jiNVlZ7KLi{I1Hy_eGptbV0(iMytoN($hWq$5tKG?XYV&nI!N( zFRP@X)~%i`b$5B8U!zy=HAeD9o*zMcVPdV6Ow)XB$4xD=-Nl}#dt)2EUb&qwHy>}f zHRhTvrlWQ|qopOx$foNPk6b`F^QPj-OMkL)A=}R5`7&9OJQ35)w){S3b|EcU-BqAw za%uQcZj)}Hv1g`2g+qMA+;3$mB8V+YZK>+#&ak4#3k)3>En32urJI?ED^*AULg63` z`WvrAOhdyYEo~=h3{}~Sl{~!SMa0!i$d6E3my>^YS$+LPFw-t!$=&f$uFvy;Tpz~q zKPQ~C?gL+vgwiT1Z<>ArEoUXWc9n#?_`KDSZ{7h>hgN5hqDzE?t`%1)yoBLwuv6>u zso3*g4Tu#QB;@Zyp>dGJH#3kgfPqO;SY<7iS8^~;no85uwRDQit85-wF$nopnGne6 z@nc_SREwHs!&8{y*w<-m*`xdSXv@u@c(-oWUD3a2V^;C@kFqysC;6TYe8mlERRy6# z63Q=b{!7I>OLL$Sl1WjDdiSguJ&F3Q&F+Ud^3de|B`NLY-t^kp2mID6r?V5Tr%c|t z*GNwcYWdjn<~dvMDsXJ;tu9x+Yu!IdFLPTAe(&@&Pt(UFzTo_8H#OTQ#QSdjpS**2 zta;!QxJfLe*$mx{VB97mEfP?0;^eD{E@$vjj3;!6#C?wJn^J(|CDR z%`lCwqN<~7U~c8);_B&r^ms~T%go=D#xYT!&kT&jcgp8ZXqR}jjWu`{nG+}dr(1i( z;o|rLRONFi&%uTQW&z`Dzw)LOMjplbK3=ByKo5;nE*su{Hl*sStM1K-s*mN}tpTqj zn=QupX`fMw{Z6oK&AR(C!@b{Xl%^LZylM-m8izB-!nQlQ;v%>jKO5>?sC{@;{!4 zWA_d0DCXe9Tz*(crJm9C&YaKC)TnXYvA9d01xv+cfx=%{{#|*Bt%xLG-jv>BO>R4IRx@VTu*1Fj}(OmzH zV};yx9qU&oPE=KT<&bF43*q?oaD-7CV1Q%+Bw?Yk-xvi*TCj33kIHh2Ox85_5;S*D zO@E7mOy$pno>o7F(timC|Euw(tY({4hw!udXSTK`vYk1~OO0{s0C>0U&}8|mWbPX4 z*)0>%+v72uJDbn%1Y85M>O;AAVPEL?R7%^h(pXiVpUz?;u{#14HPd-HttOTA_M|+I z!cZ!m?7puX!cR-5#4ZYcv)wiX)cpycPfI(0{Ynu6!C*ZzC}6w0+R4z3{R+t0FO0~W zINNqc4AGzAmtDxUbzpbOh&O1024-TG`f1}g-uv`i&D6{87_0fPvTjDi4wEaRR!^~$ z?2l*RCgXGVwJ~&CIY>7yYAC3_v38_&P4~--yI-1fn@7l`<{P;nASMhtPFUwIm{8IJjZkz3c9x6$;Ip?DH#^fF!G&#*d24CjI1-XkD zLn9%UAXgL!`|Yj(k$|$67tEq+It54ardF⋙sb_t}i=urH0#t&a(Lt=z?RE&k=<4 z>fO0+KgZ{A@2Ph3Bp(|sAGqSC%}LVRS=u`_`%?QJ3r;<2@d3{x;%0`Xk1ONhLjDtF}JgDAv3`fkvTC(A2KjDkc}!S;k3yYYP6GV zl)sHf*y^o_(d%I(g`=>T|J;8>M#EZyscD4gJg-R2;AZpW?<|LrTwlsC-u;!_7#le3 zw(vg%%0>1ahw`y`&Y_yO+wtmFulwFqJoHP7`gqHcxy9SLc7%SYC~m6c%deKBHsx*U z7BfQdptA5Z1m7L-O;7iWDu-N0bXlGrDxt7We`~K-L7x&k&l7(Qva4Z9mRSsQ6Y?H& zcal|fh^f&RP&#ReYM1M-&oA@gkaH<=j8LT)b{}@dWxD^&NdI*>aZzK~`At`!wvM%9 z7kz&8puAb%9RJcr1)X)dl#70$;cC0m^$$?AfBz}}?O!_;>D)L9YYeaM)$^p|Fh_Kh z8e=uu0f(oMKn{|2h`dQvopnoDw2b4utkjP*HM_N2{z&j#mgJ?GO)ZBUPn~ptX#6gx z6UWqxed|F*eGnYlf{Pms$*g!~=JIf53liv}C9Lj1t89`%Sz0b*K6|Jw*lO;SqSKv! zNe}s{`2zLeLVGN+eg3F6I8c9)!!<>=;O=?WwU4Fl{A7Q0Sc&h#_Co6?^08ei>hq%g L!wpLA2nYTR(JHTH diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/favicon.ico b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/favicon.ico deleted file mode 100644 index 73837074b18ff48735fcf5a33cc8c6a09498853c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmbu-O(;ZB6u|NO=J|@vNGT~7>yF5rQH494Viy&5I&Gh8V}RNt4k7#Ky=XkK>*W2- zO72CiAJ>p`7qO02Ea1U$oT%-W-*A8$w4oi%*u;)^PtB=^>5tj|M&_4z#U9qM4cW8L z)8jBtJa=M*{xi?KoBRnCcF$b$Ki`|I)f!Rz^<8&TyGM!b*K;zdWh2W*egE?*&X@1c zulJiSvMxlwe5-m+5BW1%QG^PVB`LS{eBuT!p!eTE{(=Ww;Rf>Vyrd@NS$|>+dVUUh R2Z9KsF=E#Y5-ahq@dHtmFyR0I diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/fla.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/fla.jpg deleted file mode 100644 index f7033678d5ee67051eaa8d57848d350ce65d27de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2208 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gif.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gif.jpg deleted file mode 100644 index d15216fce7dd84df0d512e9fe5fb41948403a01b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2239 zcmb7Edpwls7k}Q%yfci;3<+s##-%2?-&SfE*Fwpp7;@d#wPw+l#gD=wv{|G?Zj(#o zE~HSoq(!$;ew0hmDAm?VN%7g{_YSiA@9(_N`+lDHInQ~{^F8N#j&Ml$3{dQBY;6Dp z0RZ6-5RL7?DWCFpNkdixElUBn%Ui6cZVvoh-EILGFi!9m_ z$RvzJ{=Y@o0jMOfA4DRMGJvTNLWP7~I0OhFkO=UK5HKQ2LU5fDz6|5a6%7Cg3c8aNgay;4Fgq1VfiN$ z8=pQksXsbz8ue0P`?aWB{TV#|ef~@DD)BV{e&}3K*DzT2{;Ju*V9tU-sx?OlFwah{ zlt(jW)IAa*<4dkYH&mej2tf!qf^Y6I1SJ5-2qvzUr%~h_z44opa0Czm{wn#aoNB(; zAzw`o-;Mts&cllKqi>j@e=*}H)5qug>?JK4#WbIJsp|H&#ZR8HKO?K5qrbN?NN%lT z{@$0|2M6UXzR*+m{kc&?P?+@WINT?F$&UNo zx=bfErKx>h$;OXLhScD)@gCgNbs|)-vpC0k>*PRRMV5-f)T1Ljjqg=(b3goSuEnhb7Ka5cGIX%cd;ApXqrxvJD|dhyRy}r-R1sv z?|bKGHx!iwj8`Wq8Z4)qh{IF-WF!1!7(r2S^0$cLzW}8YWMt{O=AjwbDmmI7r@Hq3 z31uAvmKED4HjY2N=nQAD88oLD)>+LXx>BwhJ>VaQT%eNRQ+W#AnXgml&gzz!6tzvB zNb5a!D^S&cm*GI|&#G;_wxT8(!N`*{%KVSETcRg=>)dm)8R6_r59d>V2fuA?Vua`tR?;5Nzen>wx;4Y}A1i%$*vcqkp(Y{P9@^;{+)H;}W}v=x;M zs4UL=5D}P_>0IGHlbRAxGWsR!s(NFR*;(R<%7Ck-XN@V0H8`{PGo+f{^pVYtZgd5< zy|3-tIpZiP1P`0fDmJtFClRrikS^89?;>zF{gdHbdM#5T_;+(Y@3+4=IH z?rsj+9I2IWSWrUZCNOWT&tOeH2;j8dNFJEYyYoW)xGn9^fdNO;@pYGa*UUytQw%SZ zY(G`#Pu}d}W8D0zdHQrhQ$kF!W|x|MaK?`Qyg`+F4jV>S8_F2eJh2d$8+On#S+W~D zTdCRfOr5!J)15O}^ecHL?#_&o?bqh2LprAY$F6pg+Y2IJN@!!zZ*p~76_=MUFwYzo ze6PRVGP!eA@to(Z?$o8O;nZ?l=7GR6xjJ6kZ&gnTLirgw|jfUQ@ zcZ0^NwH~+s`gd{0Y~pJAZ}%qzZ%Y>U8T3duB)_jxs(JS^%b+E}pGrSrANk~QX=zVS z&U(L*$EdVEKV_8bn)s=TTar^=yK&^h{cW=kCC`&uFm-;7Li**8UO1G+h6oUxgLqH; zN1**T;WPjRoYBL-zM4ic%PKrd8y0I3`$k(_0RbxAXPl$S{BCP19z@p4eAmk98Zz2cM2OHyYhMN_$}LlzHRx$l6TCy*pEq{3E+A%6b-f?JobM z+VP`@iLqHh&+busQjc%4SnE!Q(%jckqr@70m&fcwN>r#2Yxo?-&kFu4wlBu_h(#q& zY=;;}wQax5Cx)7(!C0)7%9<_ePD912*^jvT$A8DKr7EHc3K8($wj7nEYfV#h*goxx zG+E&Y<}}m8mbH$xp9XJy^0UTKA56v26qiV7#tXJg})D^R08@+SZK3)(qX# zWv477dK+TCqubTSS2?30wZ83T2mg|&Mkd|syU6M2@6bDBz7GgW456i^&^h=KkOYHo?qP3 z7VG9XrG5SU%u8%&aDg0%=a$xYYQLhKbL|_CIr!3NU3~qUv`e?6bwhMICmXE=HPdpi zx7=?7W(&?f>UrAC>a2Ht&$u|NBL|U#-?dxk4|-qfs(z-suPbPjIiom=6_)@s8jJ%% zu0!_5kQoJ|qu4TefKaG3l80hApkoOES>~>#sgy#xoUvHzZueZ8Y7# zP1ft@Yx!1PE4Ci(&$xQ`Xif;h?+Nrv_fE+^vp&9|R@D1qn`Fp9xjl6_GIe!!YMRXp zX?=~b&xmx6PWP@Z98b4DV2QY#^WA*sG>{c(GTMT6qpvg-47nr>K9169%MnIUfKjLf ziK}w>j*=*8$po8cVJSS6-m=6KLlApp%GvK``xpFzur#MU&SksJWr;ieQm+JRTf>klhCE{OI=7vgGUzMcm0#*!&Y*jb?ofblQAZufW*4O$fgGyYR`e}U?(2&fLF((z?=D1uQ)K&Yy5R_gOC zC5NJG)cFE$p9}*>CsDw@vw1DgCO>8jZja7sj8N9;WDa_5tIA(!5&YAgtJ@vEXGFza z;MG0yX4oy+*VVu(vZe9Y%Fgf&J@Wks=k zy7pZt*D@E(bp(r!U2AZ+5qv+Gx+|MCZxue9vsY=fQ02>tFj}&2(D=zyM8w}D@tK?K z4?B*Z=j!SBCv=L+Y_6JXdJSoz>d9D|uS=%ni!xgI%iMWo6%~Y=(jj z2$*VA3hX4y*GZ5Z9^cVhG65XeQc+aNr-HEOEU1M7i+MY#?An#HNh-azXuF|D{EymC z1=4q1tyvvs&@@YXgKmaqb7 zt|LV&0hNk)AOTIQlvH2!L_knG{tZd6E zHKF~Eo$rd&f6i6@QQ-4@{Zr4JV0Oa)ZGZb>=2sDY6>}yMWwE>Y&d)Eqo)2yvk`}8wbpAb#W#Pf0 zwvue3Q0w!5{QGwAScg6J#E#Yr$7-AOqqSwH_F3fI+Oo8($v!MbH{M8nQ0-I}Ym*cc zVR8>5!-_2O=$kQjmDM6^{(y-dX-7ZY%IS2SGdtwboOhsSop20jmoIsHj&c{QNGkok!#Zv$P diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/html.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/html.jpg deleted file mode 100644 index b915c599ff690fb623a653b955afe02f64cd6f38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2153 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 KTFy9&yZ;M%z7mxH diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpg.jpg deleted file mode 100644 index d15216fce7dd84df0d512e9fe5fb41948403a01b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2239 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/m4a.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/m4a.jpg deleted file mode 100644 index 6be612bee490403f1168f4828d37b94b959693ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1685 zcmb7EdpuNG96$FlcV@hr@rWd5yxJ&+-PMcCh(sPuit?yI@+fIki28WcRwx=OufoVK zwY8Fp-Xo75RLV+vEK?q#)u=uwYWCduEZe{PyZ79C?)jZ_zu)gUzu!;(Ox^_;uFG7O z0R#a6fftZV0oN%md=mif?!XKHKm*8uaDc-e^a5Sj06>e;sgd|%Y^v`^I^{3GQh*`| zd86=#hEXum2pq>KRDw#S5(Gh|DbuMmB^p7{Rq0B~$|@=f9LZB2X zhSTKFfeHqfGB5@lEOPe#!uoC&0QyzkZ9})*KWpr4IPA2Q9y&eYE%Ymm)|=UBxmtIg z>K%D%(dYItfoBbX`HV$3+I-H={S-Pd-!%POLXLjktGc-oIR8cYLHZGZK`O=&hJqvb ze_RlpLQqkR#$htlt!*^80!WDl2_qDA!gh^zoAJqjM(o!uXT|wZ1~1aSZO+rlJ$Q56 zG~2q;alx$Iir(Ro%fU5G^MnpP+L;lcdu8A#miAIj;uVw^H@?0(=5W)Q7UYg|q~vN} zM`rXo&C+BqOZU?r+l|u-0)nH@-Ll(rD-`lFXF^`^TmaPGl`81Lowi3l#EwQ-3rg-D(lP2iH+n6bH#>axtAaLN&$VyrM~ORvGbStXj*x`| zn)yxvHKyB+FuoMiXwv%ET{;Fa?I$+t^&h*EkW!pwGBH|uuZpEzmI`^8FabO_0-;Rt zKoJZF6s9_4VP(kS@}x2a0~m?+$Vja7L)&2C&4GE1eoBighc^_)=D8gWj#RZ87vsWG z^+6@ay2E`w5xyI;PBp~vyYXVZlGK4jh-1kB2nr*YpiTlo9DqX{Hixj{@hce`4m(n6 zH4T5{3Iav{9tmNOPUvrR4VLB|cU)y2;4LfTos0bk0eMQ^rxxTMtRsq9KC4gKBwQ$mAtv%%Vk=)x5n?@7A4hMf+$`t^(a zcYN5la1Ir@@POVa(jM1hKcCLO`58mSY{U0ynYl}@mieAdx;n2Yrfy@-in288cjb&t z>6|?~Jw*O-CaHQ}VUO76vg^S<9krV~b(cOVu#h!BTC_m8Kd60ZLc03nnx~hotIfZ* zlUvMy!G%&V%2cu-Ou*(q(aC{AF@q}*$tovf(4IYJ>#}9G2@pC)_VwG@wl060(*3eg zHW-{z&8S0r+^n1(JtCubl?Gd-OWVh04mddYC1ySSb9)J|rEdAYbF;Q((I1zJAFIsw zuaI=6HS&+l@Y#|PhSR1wnyy{knf6TWF5~3>#7kOIu~B^7yJ@k7eNJrGo&f*wo}p)> z8z2oub}CXAX3qDf(G0&3bch9?uaiiR5o}PO0Tb%OVKE@b6h`W^;;{m`e34k8j0|6f z>~#xEQomRAd~3c1j)`k$vEKg?f2qaBJ-qnh4;f5N$DixV&6djeiC((-VP@5V8BIK& zOfcrmQ4vBEHj^wi-v=s0VL_NcA(x*ls#V~SLCW|PR&TvzWnEqWJ$g))OYg$RtsW@> zCj{5Z>B9#xGtTAXQA0&H{B?Y~e|s2n6zh@wUqRkwdr z6U9q{aFDb+=z&y-UbGp>2-?1Wr{tK$L*0fPb!ox diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mdb.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mdb.jpg deleted file mode 100644 index d21abb8c699f30bbd9f01b0f3e5b9a7de21de834..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3082 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 U3qHG>t1h`)UsF|@q0v3~2RD!WW&i*H diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp3.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp3.jpg deleted file mode 100644 index 2123bf123eb81aa749dc2721348c8374745d2895..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1589 zcmb7EdpML?7(d_r8)KNEsgyLMY@(i>A=Gx687-m2h*ql@x##liv|UJHl(e}-i>S6z zQmq=7q=&XAdfId$Y3PDd+jgBLJuDVAdp<4o@BY5?o#*||`IF1n%Nl_F@k`&EmQM4XSk}M8OkImNC*QZz<1CG7{6xoasW-m6nmtfN* z&HmreT?ITE_0u3{vj)9~R3MW{M5*7l*m}-oJpfH?7XjQ_$2M&XTFEt#qfO|FqS!JIJT$FXpcJ>zuO9EqLxKWlw6M{1+G zlK`*~#|)bpddG7lCE7OsvrfHf23o^7#sUNeLzu}02!e%{AM`Id`zl+-QCx73% zbS>LyWo^o=_9|)iyIlSSJKtbg^X2YV(uC;jW@p*l2~wXfy5nfk|Mo#^z$qAqB@f1d z;y5)P2ZCZa;1Nc~Vp3ou6N;pArK))}7FaO}(ieO7q-@Xg*ByFwgUQRgEeaY#tlrp{ zEgD(2M6|n?s5{agaJ?YJus(cFbk2v&2w}*{H=BLiUtO?OHRXLQi0Z7CRNkAHl@lL# z6nYmh-tjL_0z*(Efb+zJAW$S7^$Hm#K}NP-_xoW{Mw?HnrPpF=V?)^T&b(?PzpRa} zLEhrZps3y{tgK?iMH`(002{}NEcf9cRw)N?9-we{}{8dsG?6jhsysO=JWm2G!O>)NrC z7bBQD$)IRo4ek@FMgUOK&Zi&=`1R-K$8iNp=7)CuxYT0!yxocK&D z1n`6+CP}5L$5WAA_iT(-5@G-RNGC_1^`%~Biz{TW=n^#SQB9&%cysb9j9XcuMh2VC zKbwEN$J+YWc+1esn@y*du-vtJZN)XVSCyfU!-HGCnYNq%xCQH<8%exZR!7~Pyl!|? ze2V$`(18yP(Fq}Yl8;_?IXpDwpbrCSi=&fYz< zJ-7)Pd0q#u|6=u`i^aRh+U>>#pS&;>p+5Hlga?E&$UZS7es*EcI0w0}>nm8Zay?F@ z@65k)TN~SOW2IP{tZ=?bzqJSoYVhlFksd1CSyTG5s@8C=2Q)3gblKGO1}o14RG$WQnF)@9$(l7@#9MY}XkPY2T9N7Blq z5RTr!AU`<8&VECNQn9K2;w`J$lOEWf>v8yc{Xt8W*P$hGMSUG?n=9XUhH^B=q`8OH zK5e~8d=Twlo@A60enNZ8|3Hz$8EyEmDoSP&!YmL0Jffx4i diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp4.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp4.jpg deleted file mode 100644 index ccb45d807d958840501829019d07ef71b1dd7899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1544 zcmb7Edr%Wc9NxQ2?k*&eJ8*p9)FxmMV$>vpHi|q11#zeW6?CvbG($W^aGDzx}>%zg<(4 zsU1*(%a$(#2m$~CFJO8Myq6}Zq5%jB0zv=)36K;OV89m40tfg2faamrp2R%N+734- zO^<*tKoP`zqwt1-F)?%C3 z+sd6TJQH4#5vwyxjV1s~c*0d+Uv{eT8RF$Q4Ld^<<6&z9u#7jepdBF`yU9lte4 zH$x&_A`gjDY}k{3p~lehUOL!_6G7$(1I z?>XI?ATrw9-e~ge-xs-XURbQ5sM)Z%PwGQ-i9( zw78k;q?_2})m$Wc9v`?HYSaBS5ymm!-0X^|Pk!LG-VO_@A$al|4$rz$WKJ&!%~=(b(pZWex*FeOBe!$r zEolQSPIrG=px3t^6OO7fN`Gq<$wcFwhp#z0SMv476&|`?<5)PM5Rof9$ijI~!uTI$uWl{(|^xDMsiG1W{KCEaSUmUEEcqD*OwCm-jrhD}twadVT71tZR`Jbyg}3+TWX;ZUplKz&Hn&3+wkH5 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpeg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpeg.jpg deleted file mode 100644 index 7a861479ec1e055a0e474fc1ac4d5847c1374dd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1613 zcmb7EX;c$e6n-z0$qa;LhRrC5VNo;{O>hHjC9GC3m_?BaD#40uMH48Z7Gx6&dcY{M ziLxjNic%CeTq?K=EftC@T2L#tr3&^~kQUN6v><pOwi8g^UQ4_H zgaANv0c{r$d&Y%@03eY70RVsmFg*;gk%p{b5?TPTN?2n%TT8GpJ%BN49|L#5f{?jc z=thF!7$Y1u8^Z|>K@c1chakB+1gT4MI6C?|x?HZFo*tp2Z=kPdfK)C+!eFrxEY2l4 zB=>)dwh_=I2mo6#Xbo62#Av9!1}sn@h?t3HR0tB+fh>%JtUNd(qZa0gENtx~pobtV z3Zu|Q)uE=>(KOmkx z1iCv!KLGGxMQ*DWeB$`}h-t;sT>m%KmDMp9>q2v;CH~8b{IEsmpse8^++^b@XUG>o z32Ec`3#38FClb{S;;g^RmK{T;L}KX83u=g~zH_g-i}JiW zIo|0)Pm0O&h4xL3(hgz&l^4BywC>{qpzGd*1oE)m_dPXLMWCo-Fjwo~Rl!6FTP% zEBg7KCIwENlABvKyPj@N?oo+aDRu ztt&&FBpdv0+0F|$BL;aF=`$9?nJAYw6f+u-4ae#MX)7R73SDKIBx#VUw05-TT&(_* zcQy8zr;{p2{i2?n{-BIt*-3FCchKrj+73=+`e77K4Y<8|dUeIbNEG#&dbtWUg z?zepIa+~6!nnALLf1gfRc_KF@C1G}?u-H&$v%$yXl4ZIt8QU80%e7YHzU#RUw^!cC z$%D}Y_%r*g`epC7H1ye8z=+TJSw|`|<&L%6z1Jd#Mg|jLsQjoE#tC*)C}dujqNNw+ z!Dn^xrdI5PbS?*XiFOX z-p02+fHVS&5L&4kfin$DJ=Ak`ekM(x6D7dUuigz5&2pPJ%Mjd_LPLuPSj6b*2yP`3 zx~gPJlr%`G8JA^hP!X}mVJ`Rj;n0};6yG(`?gQ%YKdK$-I_4R_&nLdOVrlydcvO1f z(|XlFdourLgGAGYSaUK_W6mZ|~XL-)bNJ1BCqV5&!@I diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpg.jpg deleted file mode 100644 index 0f1901e7a4fe91ddef080b73df643c7b5d231685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1606 zcmb7DeKb^Q7=Q1*Gk0dp;NGD~$_%PWwlhOg`Y=O{HI59ObV3Yb$xwqSY{^K8+FGI1 z_Ax&9aH>t(zVt;-+RfLZvQbNI%10m6I&#$Pd#5G;?sMOJ?t9(F%r zLMHW;0t5j7fe+C20P*Ui=tuy(y@4G7fC-SyXh4HA=mi$=1pw8elPf7&Y;qn*Idz@D z9iRw84HOP&7#*Vwr_nGv17|Q8IF2)zY!-uQz{GKuA0{|^CeCF4Z`0KRk_iGq3Wit%lteHR(bWMy)zz~$c2)IyQeDuoH9hhL#_s3hRhCbXjcF(${S)t(x0CKtf;@sG_y6L|6J&hYj zpO}|Dn)_37BEAg(<$K4zgwsB=+D8M_eUZ^kd0B_N)V`i>QC~2PVH!5@7&;B6Ie831 zqvH&KVoXBln`+*yNVcD)1F5x~w!w;Gxa`(jQKwe+g3z|v83A;HBprAfh zP~CdizTi|renixrD7UfBX>Pw~j-{mv;)7h*!R)L_ND7Y7CzGQn#R!ti6PXAd#J-{W z+#6I<~Z4W)(Nrpl579V(L9TJ5dK94v(Z7h4mE%a?9mWNG3v&SfWRP z8(fjT)j8@j+z*!W@UeGQ8p`PUTJ)g@?xq>tfz}dv-8G*;6eGPwj0IQv^y5N zw#}C2Uy=%X>h~2nH=JRowhw*rmDI^f{7YBuZ8KUlH251+LM9FM?62RM>(d%_<)!(& zw|neLWt>ExOQS!h&RLhZIJEy@qs7kZ^sdz=_Rj2Dm(9N%cNE8eOg~wkO}2$Z4Eb9w z^1r{qzT!wo&-UbSr;v5KAd9vH)B>PmU#}8@3<^b(&_Z8Tj$EOsd^gc(uKbZAZQYvw z7Wb_jj(y^iL-tp#R*CP8cvmy6a?ZyLFAIvKDW0V5J@ByB^rX!UQS$S}W@G+^PK_Gh zXu$roO6jgldVMG*S(0XPPLgHmCz55+J=`oY{wDEO#a$EC(S*ZqYckSG;^ZeyYi@+a zmo;>!;^*<;`3q|byYI~JI@n^U1E*y$9la6(B@L*ODTZe9gzz`*01p5TNt6*+~IOcUeseMt*uULCY)atiWlmoob9+J|Mljbqo9Yd@NGU#Fk__7$r`&dnh` z7!K_VGR|+lMytS4uF6d8rp`BCKie-xHo%g4BLdb&d~|l13tLIP-cq0u+2+<}oSC2N z_3JRf>Ix`}iu5BFMWMIsic3WWd+r$zq+iJUN4ub9O>lE2qxDF~(wV&q@hj_*C4WEV eTQ_WvkZPXpNP5{cT+BzSzZsjR?i~C}_vgO^&-g?D diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odb.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odb.jpg deleted file mode 100644 index 19efd7227e2bb5a8c01348a16b285d6fdb5d6d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1997 zcmb7EX;@QN8a_8SD@kY)c2FRKve}X#(kc%UMCf1%O%&P!3Skim4%oohqN0ctP%L5y z64@+)iY&r30%GC=>#Ts!yfp!zo#J ziS8`Ad=^J0;)&${TeM0*CxTFL3`I5o3>`t~h_(Y*KtoUjijM4x;P3=2f+0esnQk5Z zlL`PVq(IOP018~j&`=t5L~U-^4E+8{iq#q|I2-#Ysb_z|_J;HBlb)M}VceawGKzd< z7xHOVQy2HA@2oDq*e__^{n<=?vpUt?JNWH|jAyN#)V4b-+aLuS8bGiZ1jVggkHer? zJVF3O29IvdVhbP{BBY7nFiWhsu|f2k#%eQ%;tKyC{LIB{XL)^q->v~aQCE+9(A50F z=JebiM%(b5gjzn>aqHo?@}ABvvSDxk)SW7yYr?Z-oh=t<-`L#0Ep=rZ#T!WreZQ&y zQqW`1Z#hylSn|`87KcEB)IF}WShcUaj^`Gv?ymmb?RjhR(5q~IF=dcEYy~Mh(P6+b z7(986GJ;|N9mmERFj*oo!-cbxACV?gs7IEmL+^Vcui}cLe#v+fui={;+^}dLI`P0p z_I~t6o4Z#Mew$>PwOmI3UH-~*Lq$(Pi3=Lu+cI@EvZm{AIk!~oqW0rR`{xk$Z8|_O z*uTJHU^3$947LG;Rj3V_8(g+%}G`RPikViZ{aepw?^+} z2=85`D72~e(iSro{z2!?{+bx6BO|=OojZ{sH)#GC zQt*Jmf=NmwQdh$Te*u<`W8e*#8`xeVv5gCVPlQaarWqPp+iqmJdh;R^)AkCYlgj@W zM!YBHO-^E`RP-<5c1G#fW9Kas?nTdtnsa&C-HrhVClj--aT4x}i{f{?nn_RJpqmt5 zAFrMRmme6FG#q4z|7ntZ#K-7DPT1Xxu47YS4R)J8@%$jOxU7O?rfH)*Y~JNGQ}dQ& zuk)syK zE0QO;Jrgk^o7te!7Uh2B)xO7xqvpMCwQbIxw)gse4ehpTROU?|$o?)T<*OO&(^*wz zZ)^Q^`ZoDU^GkGI&SKKZEd$V_KNksH;@9{Smyrpquqf+4J?7(xe3G24qT zN|Qyf&g@ymLANLbN zroZeZ_wV6O>-QZG_%)o_R2i+dFVKXztS9K%+R1Y__vjr>$$v+Xv<$Y1whRUv;%Zx7 zHjV8SAxdM3Wh;?i3q0+OnY@Z{W7xl?t|#TCe#4copJ7W=9O(y)qpY3NVq*g(QA=lP z=g|h@Mt0fhZe{(^S;=0C!MWn{qt*O%r-Uc`(|_xI$B=(0zumGRRz%_$%GBcnwf8Hl z`xFV;48|AhcZgmu-kBwj7R1@*`UpN!)MkG>%iARQp$?>Uw+E#U6o;hteX+z(d~KRb zsb^HECYU#AE@b{cve)6Go)|fr&}5#ayWBS;_{Xg64tlod%4xHX@fJ~2 ITA+ROU#oP*oB#j- diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odf.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odf.jpg deleted file mode 100644 index bf3af96fd94b05bf8305115f378cbd0b68a39b21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2016 zcmb7Ed0bOh7QQbpD@h;$L<=q?>=Z(fC1_Q`4v|f?fPl#20wQV<1cFwA2n@2wVgrhm zq(x+%hN^Tjpam?Twp0w3MWUb}2>ub{+sje{k`+AV)p^y;{(hA07QUf#{w+WpcUxC2>_-Nv%DgxM3?nYl~MT+ zxBv`-s0IcOC@2n92_B0@aRfYpK)~bi1R|M4AgU4ZcoLPQMkZ4z6atB=PNk?rm8|-S z>MZ*HERIaX6UqO#DBA&@2tt7XMVJ6XM^HMVyan{&MKGx9!pnlgBUl0vg~m@1Xh8pJ z16T-wpd11exQwBpG#H4w!tgox{)-IWklPzc?z+p8x@+fpnk%30e0pcQf2*mB1^3Tg zyb~K;ODF&3dS|Y&c6jmS#Ky_*eJ$OaLSJa8Pw3lE!%h3)R6#JL0eEi!aJWBD0)WL~ z2ndP?bWMFWgX`oU0nrd4P6UVfeHFKv{m97sUAJD~4HTRIt))y`$J-Nz3%yNC7s)L~K_cS&yH8QPE`FZ|oB$$5T<;Kdz>gua@WSI@Ya z$O(2LQ<+t2m2=83@-1WEWPK9K$_h#3DJG51vihTbDfzztjoxQzJGS^)&Fov!zUjz1 zIx+7Eft%9-g2AGA!bjZj6Xph;p~V(zuCQKjGs@*BWQcoTy@wAOa713kN2pgNX4)7p z6*pZ9is6^LCdmAnTTDUxmv;|dkjYZXOU|6bX!C1ox2IvW$h>fz>^u1@8n9%cK(kTVazHj#Q&CM+H z>+N0DyW6rZn}oG`r*D3orRlXYe|1M;o`vMb9!1Z}Az7!#@Mp0h2Lcc2N){EAo!?b! z$xV{O7~hyl-OT?P+u;F$Y^DJOg&D803B@@L{VgN% zz}X&MwBexm7NA3oHee?HotGUVgPdO9#+^qw$TlmkL5a0b8ucsRBkM*B>anve8 zVjQKG_4k9~lSPsv76RK#{La3TrS$8sYoqDIUzRRf;>LJ|Evcq<8J$9;bkWQu`P%N? z4{J(O0;jC2)ZLmzyjY7T+_tj~!ZL;0R8YPSGe4PArv6|Z{pHt<;|`cDqN z^@9O7p}~R#SUiIJSg#16GpwD2+amczVkujn>p%KxxmFw*NCe%efY; zn471qeVko8cQL!B`_VeW58?N|8yFEi3+Jq<7d-XpCVOD4)(p%FsjfN4Or5{T*NbCM z&3a5`KOs|eM}PY@bwB~aPdT8MMRmtoytgD^OMF|K($-2Y3apOXuHA7ug%YO(EN_AH zu6Qj6yMpoa7k4FzW+hkaV10dPKmc|I@ZY@$Y_JUYnEa(zc7$GJdHVF)FIX$T+sW~I8%*B0gN_gOO4bO{e0~?YGEljKJ$|`qy>}&MMDp3fUanJ-v~9We zXm8@%LbWJ1VT3B-O?G6Xtx0qG7F~x7|op?2}>ZskFt;VTNBYAVVoGSgp!MfG)YWA*Hjrt%_1eNoY^f(t36%0Y9yXMUg^d**g(kj^gYy_QxM(iN69&7&~a&E zQXvcsIa*GhF*Y0;p8mnrpytFqC9p3!Sd=W%J~3eVj%b*l5vbFc(`MUdmepfi-}knh hdYiiKN3rcc3SJCdNSd47`?G;RufDE!;;o}{@DGS8&yoND diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odg.jpg deleted file mode 100644 index 19efd7227e2bb5a8c01348a16b285d6fdb5d6d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1997 zcmb7EX;@QN8a_8SD@kY)c2FRKve}X#(kc%UMCf1%O%&P!3Skim4%oohqN0ctP%L5y z64@+)iY&r30%GC=>#Ts!yfp!zo#J ziS8`Ad=^J0;)&${TeM0*CxTFL3`I5o3>`t~h_(Y*KtoUjijM4x;P3=2f+0esnQk5Z zlL`PVq(IOP018~j&`=t5L~U-^4E+8{iq#q|I2-#Ysb_z|_J;HBlb)M}VceawGKzd< z7xHOVQy2HA@2oDq*e__^{n<=?vpUt?JNWH|jAyN#)V4b-+aLuS8bGiZ1jVggkHer? zJVF3O29IvdVhbP{BBY7nFiWhsu|f2k#%eQ%;tKyC{LIB{XL)^q->v~aQCE+9(A50F z=JebiM%(b5gjzn>aqHo?@}ABvvSDxk)SW7yYr?Z-oh=t<-`L#0Ep=rZ#T!WreZQ&y zQqW`1Z#hylSn|`87KcEB)IF}WShcUaj^`Gv?ymmb?RjhR(5q~IF=dcEYy~Mh(P6+b z7(986GJ;|N9mmERFj*oo!-cbxACV?gs7IEmL+^Vcui}cLe#v+fui={;+^}dLI`P0p z_I~t6o4Z#Mew$>PwOmI3UH-~*Lq$(Pi3=Lu+cI@EvZm{AIk!~oqW0rR`{xk$Z8|_O z*uTJHU^3$947LG;Rj3V_8(g+%}G`RPikViZ{aepw?^+} z2=85`D72~e(iSro{z2!?{+bx6BO|=OojZ{sH)#GC zQt*Jmf=NmwQdh$Te*u<`W8e*#8`xeVv5gCVPlQaarWqPp+iqmJdh;R^)AkCYlgj@W zM!YBHO-^E`RP-<5c1G#fW9Kas?nTdtnsa&C-HrhVClj--aT4x}i{f{?nn_RJpqmt5 zAFrMRmme6FG#q4z|7ntZ#K-7DPT1Xxu47YS4R)J8@%$jOxU7O?rfH)*Y~JNGQ}dQ& zuk)syK zE0QO;Jrgk^o7te!7Uh2B)xO7xqvpMCwQbIxw)gse4ehpTROU?|$o?)T<*OO&(^*wz zZ)^Q^`ZoDU^GkGI&SKKZEd$V_KNksH;@9{Smyrpquqf+4J?7(xe3G24qT zN|Qyf&g@ymLANLbN zroZeZ_wV6O>-QZG_%)o_R2i+dFVKXztS9K%+R1Y__vjr>$$v+Xv<$Y1whRUv;%Zx7 zHjV8SAxdM3Wh;?i3q0+OnY@Z{W7xl?t|#TCe#4copJ7W=9O(y)qpY3NVq*g(QA=lP z=g|h@Mt0fhZe{(^S;=0C!MWn{qt*O%r-Uc`(|_xI$B=(0zumGRRz%_$%GBcnwf8Hl z`xFV;48|AhcZgmu-kBwj7R1@*`UpN!)MkG>%iARQp$?>Uw+E#U6o;hteX+z(d~KRb zsb^HECYU#AE@b{cve)6Go)|fr&}5#ayWBS;_{Xg64tlod%4xHX@fJ~2 ITA+ROU#oP*oB#j- diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odp.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odp.jpg deleted file mode 100644 index bf3af96fd94b05bf8305115f378cbd0b68a39b21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2016 zcmb7Ed0bOh7QQbpD@h;$L<=q?>=Z(fC1_Q`4v|f?fPl#20wQV<1cFwA2n@2wVgrhm zq(x+%hN^Tjpam?Twp0w3MWUb}2>ub{+sje{k`+AV)p^y;{(hA07QUf#{w+WpcUxC2>_-Nv%DgxM3?nYl~MT+ zxBv`-s0IcOC@2n92_B0@aRfYpK)~bi1R|M4AgU4ZcoLPQMkZ4z6atB=PNk?rm8|-S z>MZ*HERIaX6UqO#DBA&@2tt7XMVJ6XM^HMVyan{&MKGx9!pnlgBUl0vg~m@1Xh8pJ z16T-wpd11exQwBpG#H4w!tgox{)-IWklPzc?z+p8x@+fpnk%30e0pcQf2*mB1^3Tg zyb~K;ODF&3dS|Y&c6jmS#Ky_*eJ$OaLSJa8Pw3lE!%h3)R6#JL0eEi!aJWBD0)WL~ z2ndP?bWMFWgX`oU0nrd4P6UVfeHFKv{m97sUAJD~4HTRIt))y`$J-Nz3%yNC7s)L~K_cS&yH8QPE`FZ|oB$$5T<;Kdz>gua@WSI@Ya z$O(2LQ<+t2m2=83@-1WEWPK9K$_h#3DJG51vihTbDfzztjoxQzJGS^)&Fov!zUjz1 zIx+7Eft%9-g2AGA!bjZj6Xph;p~V(zuCQKjGs@*BWQcoTy@wAOa713kN2pgNX4)7p z6*pZ9is6^LCdmAnTTDUxmv;|dkjYZXOU|6bX!C1ox2IvW$h>fz>^u1@8n9%cK(kTVazHj#Q&CM+H z>+N0DyW6rZn}oG`r*D3orRlXYe|1M;o`vMb9!1Z}Az7!#@Mp0h2Lcc2N){EAo!?b! z$xV{O7~hyl-OT?P+u;F$Y^DJOg&D803B@@L{VgN% zz}X&MwBexm7NA3oHee?HotGUVgPdO9#+^qw$TlmkL5a0b8ucsRBkM*B>anve8 zVjQKG_4k9~lSPsv76RK#{La3TrS$8sYoqDIUzRRf;>LJ|Evcq<8J$9;bkWQu`P%N? z4{J(O0;jC2)ZLmzyjY7T+_tj~!ZL;0R8YPSGe4PArv6|Z{pHt<;|`cDqN z^@9O7p}~R#SUiIJSg#16GpwD2+amczVkujn>p%KxxmFw*NCe%efY; zn471qeVko8cQL!B`_VeW58?N|8yFEi3+Jq<7d-XpCVOD4)(p%FsjfN4Or5{T*NbCM z&3a5`KOs|eM}PY@bwB~aPdT8MMRmtoytgD^OMF|K($-2Y3apOXuHA7ug%YO(EN_AH zu6Qj6yMpoa7k4FzW+hkaV10dPKmc|I@ZY@$Y_JUYnEa(zc7$GJdHVF)FIX$T+sW~I8%*B0gN_gOO4bO{e0~?YGEljKJ$|`qy>}&MMDp3fUanJ-v~9We zXm8@%LbWJ1VT3B-O?G6Xtx0qG7F~x7|op?2}>ZskFt;VTNBYAVVoGSgp!MfG)YWA*Hjrt%_1eNoY^f(t36%0Y9yXMUg^d**g(kj^gYy_QxM(iN69&7&~a&E zQXvcsIa*GhF*Y0;p8mnrpytFqC9p3!Sd=W%J~3eVj%b*l5vbFc(`MUdmepfi-}knh hdYiiKN3rcc3SJCdNSd47`?G;RufDE!;;o}{@DGS8&yoND diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ods.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ods.jpg deleted file mode 100644 index 19efd7227e2bb5a8c01348a16b285d6fdb5d6d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1997 zcmb7EX;@QN8a_8SD@kY)c2FRKve}X#(kc%UMCf1%O%&P!3Skim4%oohqN0ctP%L5y z64@+)iY&r30%GC=>#Ts!yfp!zo#J ziS8`Ad=^J0;)&${TeM0*CxTFL3`I5o3>`t~h_(Y*KtoUjijM4x;P3=2f+0esnQk5Z zlL`PVq(IOP018~j&`=t5L~U-^4E+8{iq#q|I2-#Ysb_z|_J;HBlb)M}VceawGKzd< z7xHOVQy2HA@2oDq*e__^{n<=?vpUt?JNWH|jAyN#)V4b-+aLuS8bGiZ1jVggkHer? zJVF3O29IvdVhbP{BBY7nFiWhsu|f2k#%eQ%;tKyC{LIB{XL)^q->v~aQCE+9(A50F z=JebiM%(b5gjzn>aqHo?@}ABvvSDxk)SW7yYr?Z-oh=t<-`L#0Ep=rZ#T!WreZQ&y zQqW`1Z#hylSn|`87KcEB)IF}WShcUaj^`Gv?ymmb?RjhR(5q~IF=dcEYy~Mh(P6+b z7(986GJ;|N9mmERFj*oo!-cbxACV?gs7IEmL+^Vcui}cLe#v+fui={;+^}dLI`P0p z_I~t6o4Z#Mew$>PwOmI3UH-~*Lq$(Pi3=Lu+cI@EvZm{AIk!~oqW0rR`{xk$Z8|_O z*uTJHU^3$947LG;Rj3V_8(g+%}G`RPikViZ{aepw?^+} z2=85`D72~e(iSro{z2!?{+bx6BO|=OojZ{sH)#GC zQt*Jmf=NmwQdh$Te*u<`W8e*#8`xeVv5gCVPlQaarWqPp+iqmJdh;R^)AkCYlgj@W zM!YBHO-^E`RP-<5c1G#fW9Kas?nTdtnsa&C-HrhVClj--aT4x}i{f{?nn_RJpqmt5 zAFrMRmme6FG#q4z|7ntZ#K-7DPT1Xxu47YS4R)J8@%$jOxU7O?rfH)*Y~JNGQ}dQ& zuk)syK zE0QO;Jrgk^o7te!7Uh2B)xO7xqvpMCwQbIxw)gse4ehpTROU?|$o?)T<*OO&(^*wz zZ)^Q^`ZoDU^GkGI&SKKZEd$V_KNksH;@9{Smyrpquqf+4J?7(xe3G24qT zN|Qyf&g@ymLANLbN zroZeZ_wV6O>-QZG_%)o_R2i+dFVKXztS9K%+R1Y__vjr>$$v+Xv<$Y1whRUv;%Zx7 zHjV8SAxdM3Wh;?i3q0+OnY@Z{W7xl?t|#TCe#4copJ7W=9O(y)qpY3NVq*g(QA=lP z=g|h@Mt0fhZe{(^S;=0C!MWn{qt*O%r-Uc`(|_xI$B=(0zumGRRz%_$%GBcnwf8Hl z`xFV;48|AhcZgmu-kBwj7R1@*`UpN!)MkG>%iARQp$?>Uw+E#U6o;hteX+z(d~KRb zsb^HECYU#AE@b{cve)6Go)|fr&}5#ayWBS;_{Xg64tlod%4xHX@fJ~2 ITA+ROU#oP*oB#j- diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odt.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odt.jpg deleted file mode 100644 index 19efd7227e2bb5a8c01348a16b285d6fdb5d6d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1997 zcmb7EX;@QN8a_8SD@kY)c2FRKve}X#(kc%UMCf1%O%&P!3Skim4%oohqN0ctP%L5y z64@+)iY&r30%GC=>#Ts!yfp!zo#J ziS8`Ad=^J0;)&${TeM0*CxTFL3`I5o3>`t~h_(Y*KtoUjijM4x;P3=2f+0esnQk5Z zlL`PVq(IOP018~j&`=t5L~U-^4E+8{iq#q|I2-#Ysb_z|_J;HBlb)M}VceawGKzd< z7xHOVQy2HA@2oDq*e__^{n<=?vpUt?JNWH|jAyN#)V4b-+aLuS8bGiZ1jVggkHer? zJVF3O29IvdVhbP{BBY7nFiWhsu|f2k#%eQ%;tKyC{LIB{XL)^q->v~aQCE+9(A50F z=JebiM%(b5gjzn>aqHo?@}ABvvSDxk)SW7yYr?Z-oh=t<-`L#0Ep=rZ#T!WreZQ&y zQqW`1Z#hylSn|`87KcEB)IF}WShcUaj^`Gv?ymmb?RjhR(5q~IF=dcEYy~Mh(P6+b z7(986GJ;|N9mmERFj*oo!-cbxACV?gs7IEmL+^Vcui}cLe#v+fui={;+^}dLI`P0p z_I~t6o4Z#Mew$>PwOmI3UH-~*Lq$(Pi3=Lu+cI@EvZm{AIk!~oqW0rR`{xk$Z8|_O z*uTJHU^3$947LG;Rj3V_8(g+%}G`RPikViZ{aepw?^+} z2=85`D72~e(iSro{z2!?{+bx6BO|=OojZ{sH)#GC zQt*Jmf=NmwQdh$Te*u<`W8e*#8`xeVv5gCVPlQaarWqPp+iqmJdh;R^)AkCYlgj@W zM!YBHO-^E`RP-<5c1G#fW9Kas?nTdtnsa&C-HrhVClj--aT4x}i{f{?nn_RJpqmt5 zAFrMRmme6FG#q4z|7ntZ#K-7DPT1Xxu47YS4R)J8@%$jOxU7O?rfH)*Y~JNGQ}dQ& zuk)syK zE0QO;Jrgk^o7te!7Uh2B)xO7xqvpMCwQbIxw)gse4ehpTROU?|$o?)T<*OO&(^*wz zZ)^Q^`ZoDU^GkGI&SKKZEd$V_KNksH;@9{Smyrpquqf+4J?7(xe3G24qT zN|Qyf&g@ymLANLbN zroZeZ_wV6O>-QZG_%)o_R2i+dFVKXztS9K%+R1Y__vjr>$$v+Xv<$Y1whRUv;%Zx7 zHjV8SAxdM3Wh;?i3q0+OnY@Z{W7xl?t|#TCe#4copJ7W=9O(y)qpY3NVq*g(QA=lP z=g|h@Mt0fhZe{(^S;=0C!MWn{qt*O%r-Uc`(|_xI$B=(0zumGRRz%_$%GBcnwf8Hl z`xFV;48|AhcZgmu-kBwj7R1@*`UpN!)MkG>%iARQp$?>Uw+E#U6o;hteX+z(d~KRb zsb^HECYU#AE@b{cve)6Go)|fr&}5#ayWBS;_{Xg64tlod%4xHX@fJ~2 ITA+ROU#oP*oB#j- diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ogg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ogg.jpg deleted file mode 100644 index 3105040045de41ed43a20da73e85dae8f4930afa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1705 zcmb7EeKeF=7{BlP&b%{YX6l_8M@nWHh0vN|WQh=qSY@=LNWM-R`Ph-KtT2^Q$yp~W zIxD91rNxrfE)gwTYqKJuVo540(y%_Jn7yMlyZh(<-us^OocrA8KELPdDtZ(HfN*o( zb(rg{nryaT=4RMyE3v3<{08gvnR}MY{45r7gB# zOQutCD*b;$aSO1hzz-y02oInv1Y;qJCZGia!2qU=W)YAK^g~lBVIojWnGF?46qJl( zRK+8}fJP{R5ik{P=ep!Nsv}B)V;EV>)i~L@<9vDEz_{5~jaMd~ZTH~OsPTFWn`a?~ zu^L}ZpVrIb#7lDn0s5wRt?QZo3;tK-^Ys_6JtGg#cCGGY>!*FVlLD#e5CFl*O0J8* zQ8ER=NL0Qh@C<}}sE{W@M&H|{n4Lmj&xL$Zx7$9Wx52oJKKU>>+&@L8XI8bz_xbq} zb;A*|JgOxL_5R#2Cu_ucm%wo6cufO|F{rt#@~or-r&k69`6KzuqDQ-3^;^&RPhE}mPS*_Fbv&dAGFim}u)8pnvX~rzpco0T z*aEVSI^Rra?;u_v0lUx+nThYcO|P7gwp7;~HZ&0bBv|PxJ$b`Ap zYF-Hu8L&Q@wxTwpZo9S?ySm}1|COaj)Aj5e??Qj3%4(n}P9rZm{NRtw=IHVTA_>lO z@Cp*g9;_tP%~Zv~?a+BHmn;7*vc9bH$U7vdTHDCac(AN4Y&F7LzHX^r!UnB~^?h%J zorWwgd5iFbk$0*4&(=;Y!L_SG+rR5uvVTQBk~H6Ui=CL&TBbcVbB0?WRAXjzF)j6o zZXIE6SN&Xid6oOyJcdia3vH|D7HM0yk@2WS@{?shK6vVQ|5CX3vCO*;oAWN!M_=}& zYGA{~)lq&yVANgK;iIup7$v!pcrPw<8_(hO4q5h{j{9jQ!R%=Rg8`dXTT}LS@rwuf zE`NRm!(UCnRzu0ke*7B<3&6k~g2bY1Dd8E|I4)W2NITsbYbnW{IRArH+Uth1YqvFX z?)1F;MOK0?BR zc%WV19im8memYNgB1OzvIBW<{8ZgAwmkyE-)$ErHrU-%clTxEVBZu1)7 zZ{+1wsgTFQq%KSj9M*q>=;13LvWsvJaVuWbzyNhw%3;DVRe1rz(gmU*9f1SiUM!KS zI+~b@9tw?j$}0RgWKYCrmaUcrlOW)dVKx9Q9B{>?c>0`{x3qSaS?nvlA)2&RXKt~iL=G!|+8dc3pOm+-YZ4Pabjy(y9 zF`eC{o>pL8XpZVfGfO9YCNIy}H(uHh{CHwzQ}coJgD!iIZ}Uo<9)b>d%8HRtr<&E?em|7bcyvmWJ`{qoGh>#W@ z!Al@5C*?^4+MRBe7A6mu+h#j)c>1iq4dX4z$9|n_)6^mRAvFo1wljNoroW^-Hqb~r z&Da-^u;u&agU^GtBsFSYHXNX7%P_Rg?+qA;x$WXE7#t0WJRx>&yk>k0nG!{(dlXb4 Uow?uoTsP8Rilp7+wksa~1symlBme*a diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otg.jpg deleted file mode 100644 index 2c8f4b621503934cb1b6eed7ef55a1b8bd06fce4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1980 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ots.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ots.jpg deleted file mode 100644 index 19efd7227e2bb5a8c01348a16b285d6fdb5d6d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1997 zcmb7EX;@QN8a_8SD@kY)c2FRKve}X#(kc%UMCf1%O%&P!3Skim4%oohqN0ctP%L5y z64@+)iY&r30%GC=>#Ts!yfp!zo#J ziS8`Ad=^J0;)&${TeM0*CxTFL3`I5o3>`t~h_(Y*KtoUjijM4x;P3=2f+0esnQk5Z zlL`PVq(IOP018~j&`=t5L~U-^4E+8{iq#q|I2-#Ysb_z|_J;HBlb)M}VceawGKzd< z7xHOVQy2HA@2oDq*e__^{n<=?vpUt?JNWH|jAyN#)V4b-+aLuS8bGiZ1jVggkHer? zJVF3O29IvdVhbP{BBY7nFiWhsu|f2k#%eQ%;tKyC{LIB{XL)^q->v~aQCE+9(A50F z=JebiM%(b5gjzn>aqHo?@}ABvvSDxk)SW7yYr?Z-oh=t<-`L#0Ep=rZ#T!WreZQ&y zQqW`1Z#hylSn|`87KcEB)IF}WShcUaj^`Gv?ymmb?RjhR(5q~IF=dcEYy~Mh(P6+b z7(986GJ;|N9mmERFj*oo!-cbxACV?gs7IEmL+^Vcui}cLe#v+fui={;+^}dLI`P0p z_I~t6o4Z#Mew$>PwOmI3UH-~*Lq$(Pi3=Lu+cI@EvZm{AIk!~oqW0rR`{xk$Z8|_O z*uTJHU^3$947LG;Rj3V_8(g+%}G`RPikViZ{aepw?^+} z2=85`D72~e(iSro{z2!?{+bx6BO|=OojZ{sH)#GC zQt*Jmf=NmwQdh$Te*u<`W8e*#8`xeVv5gCVPlQaarWqPp+iqmJdh;R^)AkCYlgj@W zM!YBHO-^E`RP-<5c1G#fW9Kas?nTdtnsa&C-HrhVClj--aT4x}i{f{?nn_RJpqmt5 zAFrMRmme6FG#q4z|7ntZ#K-7DPT1Xxu47YS4R)J8@%$jOxU7O?rfH)*Y~JNGQ}dQ& zuk)syK zE0QO;Jrgk^o7te!7Uh2B)xO7xqvpMCwQbIxw)gse4ehpTROU?|$o?)T<*OO&(^*wz zZ)^Q^`ZoDU^GkGI&SKKZEd$V_KNksH;@9{Smyrpquqf+4J?7(xe3G24qT zN|Qyf&g@ymLANLbN zroZeZ_wV6O>-QZG_%)o_R2i+dFVKXztS9K%+R1Y__vjr>$$v+Xv<$Y1whRUv;%Zx7 zHjV8SAxdM3Wh;?i3q0+OnY@Z{W7xl?t|#TCe#4copJ7W=9O(y)qpY3NVq*g(QA=lP z=g|h@Mt0fhZe{(^S;=0C!MWn{qt*O%r-Uc`(|_xI$B=(0zumGRRz%_$%GBcnwf8Hl z`xFV;48|AhcZgmu-kBwj7R1@*`UpN!)MkG>%iARQp$?>Uw+E#U6o;hteX+z(d~KRb zsb^HECYU#AE@b{cve)6Go)|fr&}5#ayWBS;_{Xg64tlod%4xHX@fJ~2 ITA+ROU#oP*oB#j- diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ott.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ott.jpg deleted file mode 100644 index 19efd7227e2bb5a8c01348a16b285d6fdb5d6d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1997 zcmb7EX;@QN8a_8SD@kY)c2FRKve}X#(kc%UMCf1%O%&P!3Skim4%oohqN0ctP%L5y z64@+)iY&r30%GC=>#Ts!yfp!zo#J ziS8`Ad=^J0;)&${TeM0*CxTFL3`I5o3>`t~h_(Y*KtoUjijM4x;P3=2f+0esnQk5Z zlL`PVq(IOP018~j&`=t5L~U-^4E+8{iq#q|I2-#Ysb_z|_J;HBlb)M}VceawGKzd< z7xHOVQy2HA@2oDq*e__^{n<=?vpUt?JNWH|jAyN#)V4b-+aLuS8bGiZ1jVggkHer? zJVF3O29IvdVhbP{BBY7nFiWhsu|f2k#%eQ%;tKyC{LIB{XL)^q->v~aQCE+9(A50F z=JebiM%(b5gjzn>aqHo?@}ABvvSDxk)SW7yYr?Z-oh=t<-`L#0Ep=rZ#T!WreZQ&y zQqW`1Z#hylSn|`87KcEB)IF}WShcUaj^`Gv?ymmb?RjhR(5q~IF=dcEYy~Mh(P6+b z7(986GJ;|N9mmERFj*oo!-cbxACV?gs7IEmL+^Vcui}cLe#v+fui={;+^}dLI`P0p z_I~t6o4Z#Mew$>PwOmI3UH-~*Lq$(Pi3=Lu+cI@EvZm{AIk!~oqW0rR`{xk$Z8|_O z*uTJHU^3$947LG;Rj3V_8(g+%}G`RPikViZ{aepw?^+} z2=85`D72~e(iSro{z2!?{+bx6BO|=OojZ{sH)#GC zQt*Jmf=NmwQdh$Te*u<`W8e*#8`xeVv5gCVPlQaarWqPp+iqmJdh;R^)AkCYlgj@W zM!YBHO-^E`RP-<5c1G#fW9Kas?nTdtnsa&C-HrhVClj--aT4x}i{f{?nn_RJpqmt5 zAFrMRmme6FG#q4z|7ntZ#K-7DPT1Xxu47YS4R)J8@%$jOxU7O?rfH)*Y~JNGQ}dQ& zuk)syK zE0QO;Jrgk^o7te!7Uh2B)xO7xqvpMCwQbIxw)gse4ehpTROU?|$o?)T<*OO&(^*wz zZ)^Q^`ZoDU^GkGI&SKKZEd$V_KNksH;@9{Smyrpquqf+4J?7(xe3G24qT zN|Qyf&g@ymLANLbN zroZeZ_wV6O>-QZG_%)o_R2i+dFVKXztS9K%+R1Y__vjr>$$v+Xv<$Y1whRUv;%Zx7 zHjV8SAxdM3Wh;?i3q0+OnY@Z{W7xl?t|#TCe#4copJ7W=9O(y)qpY3NVq*g(QA=lP z=g|h@Mt0fhZe{(^S;=0C!MWn{qt*O%r-Uc`(|_xI$B=(0zumGRRz%_$%GBcnwf8Hl z`xFV;48|AhcZgmu-kBwj7R1@*`UpN!)MkG>%iARQp$?>Uw+E#U6o;hteX+z(d~KRb zsb^HECYU#AE@b{cve)6Go)|fr&}5#ayWBS;_{Xg64tlod%4xHX@fJ~2 ITA+ROU#oP*oB#j- diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pdf.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pdf.jpg deleted file mode 100644 index 2aa417eb7366fe1f5028c2ec498a3dacd97d321a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2089 zcmb7FX;c$g7JijIB+!WgWDy|*8bm>sh>oHpAe$q!AVFkD3>{@@!eS5vff-h%AwdLb zK%y+ti0mLj6Hsti%t!=LaI{&PO&zwQeIj@!Q(;=h`8l_$-nsSedG)^U-gm!}y_8J? z(lL7{djLTIK=1`*Q-EO?doCCNXJ=pp0Kfq#{Tx8S9vlT4@B;v%46!v6SBBj3z2!mK zD_{!{5G215@C_Rhjg%V(g+ijS7%Ucx!CZxDxsbOC}4A<2-e7p4G{Mal_p84iubV^DBx2Rsd- z|0jks-;N)D(x)DH{saJQ zGd8#j020QdLxSM|I1O7{VPH6DEY1{CQDy|dm~fkj5ufR5S@p%mbe8dWH;Yve>SUB| zB)tD(4ObQ0q_fofw#4Olu)dyNdb3s7!)f2fu^-wx&{3yx4rO+#^T$jpLG;OPs zKGj|@_H!B-ZLJB*5KP-`*Y}g!ZERTD9ya~Sc7*!uR#siia{>EMhxoVWj17Mn;9fF- z8W0$nB507T{!w;}HDcrH5OKMaGZDqA5V&yOid8k8s~&qU`W&e4xJfu_ zBN7p(=suEjtzmP#2|fDU_2f=c#fN%N%9uJZRux1SF`LF>0S$E zXs?sgzM-E{;zQzEhV+0H-f}on>NTc6X!OY;Yu)2nrb>6PPD%b$V(xT#ZN4F1vilw9 z@^w<_P;qm~$f)P3TT6AR4R7#k^isoTh&cY~#gZ2{{@Rxj_;^yXJJrJ7-OJ>u9dBy1 zm-pJ(xlJ5KIne1^bSm{{&BFL>{YYgoE9P`hyI^WLe&I*!^2;4m(Y}ljg=yyZbA5*` z-knYF5{w1Y<~0-w%-pM1IXBp&`9xrsm7IUl%_N%aoX1p-vwR}Kbym-C97CEThTU4R zl(eG$ycM68)xEzDnB;1)>nm9F4W@L>S#;L0|K4Ef{IUDi;r`xmIld*q%`ev}^wwD> z1FD&+YceyC&lNT>0(vAXUs}$Zx}jm3$s=LKMyI38XuAzYHY&@#h(`Vz{lDqG7hLiP zbs2M8x-sN8(v%qF(`IGbur93il4!B2}kH2bSq|x$lm!WY?JhPe~ZV*2p zvUD*aOEOd@lJ+w7N422XmgbiRwDlj(_>Bg0|Ha?$XcPC|^`nt@RIfNO*8L)yn`W#X zdHY9_D1zH{?NTTgO-8tl9Q6Gazy1y4|E>=XYL1cFgo5g)$FNb^c&erPBO89`!?TvSq?`S# z6P_3B&(@e3|>kLLhqZYAN zL%kkC=Bc=6lV3TZVPBD@+nu(El8~{_6WsI?zacGz4_DaDQC*;SFlX2b_JXZ zLX9OJMG>bHQ-ou}H$0OjY!|YzcV#BNE<*q1=Y2sF^<_*8-?X7yb!S%EC-nT@=V@Ec OrroqO?Gn|=#{UgR8|hU5 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/png.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/png.jpg deleted file mode 100644 index d15216fce7dd84df0d512e9fe5fb41948403a01b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2239 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 UkxpD0A=)+-TH~0z(|mpSA8u7l8UO$Q diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pptx.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pptx.jpg deleted file mode 100644 index 4a0ad1a1ce1b46936875a9e00247d1ee5db28bf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2893 zcmb7Fc{r478-HdW49y^+p&7<{9GS@$V$iXZU8qx8BTKfDB4aDdi9sjIu{X9-lu(*v ziE_%8QNh2R+)iA10qc++5T6odzXgreJ_00IWtW)Rwp zfg_OEjS+xDzyKVNz(cjTll5tOC7fck_xqBU+a=NouniI2%`3~Zh9srRT&uQb!LJ40 z>uX{^&&71m+(-27??g>Cs@}`-4=k!$xMoy6X6^XIM;@F!v?qM0&P&%l+m}sN((2e+ z4?bynat79nUFJqe&TbXoQVA{e>!vDXS<-E}6`gfdguf8$vrZutFQq29H=d`zW z{AlZO&Wni#)`QV?l*Z7|l5`A13c_+0VkV0RFa+{{nWGR$G=O6WYB0QpCVlHRh#?jt z4nx5|Mz~#fu5zjz@UP=Jha3!T3SLyYkZusea1<*~75%Mc&Q!w^|IsM-o_=imqq8~+ z*2VO0*;f2}(eaa2meayvDNP+X;{k`3b@~WUYgJU7^owBnScDql!YW58N95LV75? zw`R20it3UxnN;P^{BJoa{Ip^-#~{Z!qj8uJFllRdTq2_hwf5yFQ+_M!KJoyLCA}y) zICk{yoHcuQhfIuH`ILOiSoLw0XC5EZjkUbZ5=KQ*-4LrR0r|=4_|n7pxC1*ooP0VP zYD;0WB9`-ParTO5_PL9MyIzW-0(4u|Hw6%38UYgi--HPOi6^7b!W3!<&Cu=$vqnS| zVyymOzR>S$0Q=}??wXJ?dHzwi(R`N=ernX_aQK6|z?U4|Ce!ff%9*Cv`lrPwD9MS@ z(J$GSF_$|NDO^X@hs+wXW^BH-Oh zF>#M@-tu(b`_QWNOwY?3fQa6CbcSoGiFYE@o7zeulfRq1MrQ>(-EF7l^MuuhHRfBt}5+KML~%1_YEa zS&bSlBTIq!)}rwuGz}vUW>!(JC`nG8Zfoxu63WQ@t~Csx4d83zJtb_eK_ap*W68of z-b1J-f_Zh{WlpK)C0dbKUHj^gWPf+TpJ9^+l5k$q1?Zg%)z~`AT?$i5;Z4^jGzzzK zXKyG@#dLkCz`pT0({ABiJTFx5b>*z&HLZx?TE+VFPt&^MpV~L;R|*;zNCZhGch}#i z{q%xqbBRJ~(DRxtEfF<)@_^9BwWti5nXM8WbAOc*q@J3f&vJLVGdxn#+44ttQTvRN zYa^!oxdKbLjK-mS8q{RT*%-e(HX}!LKXrSqtVE0>H{If^yF1c|^~T2k=GXwcv$Qd( zOfMl)W+d>;lUbJCZ>H3dfYTgM98!sL{^@u} z?+%)0&BS%H5Ke^xEj)F-ZsvnQZH$JFvo7(`VdLYz_DPlR25;}!JJP66mTArP)&4M~ z5~R*p3oVF@CRreJsM#>{&Sc*aB@&(X|`wrT!jgvo$S9aYZ~dwcyY= zgCl+@P5>k_6%raBvPfqzi_~f!PQLpw-wenrXoDO;=vhJa(`kMeq8(-*_Na6$iebbZ zjBK;t)`^=3nYJkl2^Q&F`6G=Frvy0WJ#PL>V_hgt_Q4kIn+^3ft1uhWpP#?b1pHHB z+zUq~bL?bI{6yxm;-5)LOD=yo;QkjefCzB*w4QP$yx?WJ_f?fxc00L1E-$OhKMf_z z(2C3&Z`uIc#8$8T(G^RUoZfG@CndL4!@fFOWxVR%&)a>o>7t%(nMV|E#$NuGaC9jz z%^oXT9XnU6E44$(dHwPju5ICCL#*U-!R+rOpUGGC((ylTHNdMJUXc`sCBhO|0Uo&@tQg? zm9ne>*oRk4=S)ME?|=1gEyT60N)Y+8bm&?ZEk_%~t-|^UtBJ3P)+0KP&tKK1Sk;f| z@t5OWQP)FrbyHh!e2CC5#K2C;KB%iO2$LYL1Gkz)I9tKl{fD2jaDoNrR*o( z4R6cacE&cOTv*3MqdzA)I^O5LPrv!)#DhoHdF{=Am-sXXi%U!;b{KC{bt#atS?qjz z$}}tInb69%PQFNmMRt$8vRrDiREB$rU|9>IiK;7fN^<_|d_`0OYxvpt(pL^%lRsUI zn&!!Ud9wHO4&N24Jhhdt@bzhC<-OC>TZjJUjWG(ZsgeJ}jVDt>NDy*0Ce+qHh82W- z9b62pc6!q2qRcr^^~3dWKbzYh_&Fo++A(@`XCk?*i2=9-ks$}x=$J?TPf4+okJU2# z>jSKAeQLK-pL;IDo_Ezx*fL+HGn}rJmyDR|Iii2Hk8bFN4%vmXeSFfo{vPWE3R6I{ z&*96GxM5pEc_h4I>2)x-v`6%D{dLDbXV&?#SaZ_uH!d@g6~%9^1fR5S5MRqHy-aFp z`Az5}O7N5>UlRG+oY+*tYm;AJ)uHfNco8erb!8cW+a@N>r5B!mN#Ck|us`q(w;neZ z5k^$^f@9RXC@u3MgWC9gX%_v)Zv&aS#bNvMknkr}v3mXC^}GA3IfTTVHjPix%17@( z%=&`_pM7mrW}uzgd=^qe!{TBYIBKQGcH~|v$Jc3dm!+S0f?0gR@jnn(ON}Nh%q|2B zFt77bylcDaBvrY0z5JxUqy&C9&)XsKxJ<@; M_$XB5;Elij0bef`wub(Pfb`FbaYwh*Xtg zA(la!6i1vOs0c~~K?KFsLui5+WPq_|UR-27d-k9G-o5AEcfWVv`F&OLRPqv#T^(H< z0R#a6ArFwe0-W^+cZC74aU(DU0N??1WEVgqJ46fAkO=^)47Gd`Uj{Gl1EfmHGhh!; z5F{NaWFP`#V5wlyXc&XT;&3=D7K_6Z2{^nA9*ZT&5@d)(5{ZN($jZr*PsTx3P`e%{W<6Fx%W$t&yRT1p2B zw6FUVkf`UAQ9jfUZ8p^whlQe+?W~sOJ5@Je{||cWTHP8WE$9BsI+hs-0CQmOOtY#* z`~j|I^$FqD7h4p8Ztqw|)zu);%D;>`M zG;BGQGEkzrA!6)etpwOO3aHN+*B&UdDCXjZ68_Mge&(=~l83HYo6d0-bC`Acqb%IC zro{20qrfA|CTB*(GPErCg|W)>=J6h!)kKW@^*aC3dqU?O6vAMJNnGd#_aBXnD;(}J z9pzfQxK%U}?KjKuvcy00ACe>>9I?to9zaOI(K5?cLC71x$ZL5~s5Db7SwUNe!Q|NY zc$e3FH4ljs8(Q$Rw(2BPbwjU>M(MMUFC@O+m(Q#FGFmuYjRwo7#q8X<7`Xg%>yHWRD^zCAYkyhD_Blv-1uP<;B#tikDIc%SL^| zuc}s3oGbpoU!nUtnRnVtf16K!72NBb9hcOkY1%DZgzx@1_~qrn)_1JH17G5-*m;3R zEj9A#8HcJARf9#3j@QvQRn7Gi>8+GhXIA2QQPU)TFy5H65OA5k=&Dv z{D%vC5*Z7)-#0ZfMvj$iavG@gT^G9B@q9z-K3D5Uu{;%*A`zkC%9QMkG5w0qPkTRC zI@O8VSjEjpxuJxPJfuQQA2Qm_U+Pgw!iQHPV ztt(_^Gnw3m&tqEyMy4~eoHPqv$6R-g)Gw0R{TWy7_L$$g+BZ+($MHpM2Ny5DK7OWb9Ae(s6LK>BDB@6<55^F?Fs z8NAbkRl~*V%1vF<#TQ(%ye^gawio9f(0_7aOhfek*9Qj9n~$b?SR;|rCnGfqqcAY$ zTg!puwM=b+7mX2;lEWz%lX*3*J`}&1@(B-ZZA6{>#QG|4Wm^j!o9FL@x(ogx-$F2(R4OzL1YjvXqr5HuK?}W+*6716YAM-&K1;; zbMf6j-8T1Au0@SpzI^DVzj^GY?S%%O11awx7+kS zPYN;>1Iy15lCooM7Dt7Y7Vi(S-4|je^%p5I>6e8`j2mY7D&qrX|>-; zT$=_5$!h@>IU|YF7|5c7OvH<;vfIXSkgu@LMUFjER!Z zkB!#6E5zSgn5$fK0~>byv_`I=Gg2iZD~rB^exy3dV1z>55r4C{Jw~#O1fwAs^F5L+ z&D1NThRhMC()<&mhiThj#-}$<(zN#Zdw8iGB%;t2pwul~6I) zPMKM6H(PEK@;oLUJEG;-?$R;u5ZO4LQ?frvWAZ%+5zRK|G%+%}JKo6NE0!(okbs@9 z;9#1~VLm8V8%sq|KfmmKXOF5$>e`S%&AU2gg0@Nj`t>cZ263+~dOe=5KAE4EC>VA( z(d{T>btLEoM+K@-w5=U3UW;?U(K54+3R<@3tvkz)L+7fZ$?B=xd&!OSccPpQeu?BEbjOdD@7PVe);Z!uPm5}vvMsTnz!Vp^T=yqa2^#QgOxE$voV zUbGcTq&i!jr_fSE$5%|dX=$g)Xq!s_)Px=!4Dt!dRZj4O&KRD)NLE*j_;^h+_&3Co BS)u>{ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rar.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rar.jpg deleted file mode 100644 index 950cad388157196b3cd5d2502a95afc93e644002..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1995 zcmb7EeLPg@9)Hd`GiOFK!#U)w=+1b(UZ!S-aaVb_UP}$7MtU(Jv{%Sh=%b7-W~JSP zYRiVw&8oFX?o|=3+$?d)dXFthg!PuCWcC@Az5m|tdCv2BKF{y`&h!2Lp5N~$@09-v z2v1iJSAZY@An*b5XTZTFCTu?dUS7Zy06+&wN*JKP6|{m?@C5+PMVEKta2?30wZ83T2mg|&Mkd|syU6M2@6bDBz7GgW456i^&^h=KkOYHo?qP3 z7VG9XrG5SU%u8%&aDg0%=a$xYYQLhKbL|_CIr!3NU3~qUv`e?6bwhMICmXE=HPdpi zx7=?7W(&?f>UrAC>a2Ht&$u|NBL|U#-?dxk4|-qfs(z-suPbPjIiom=6_)@s8jJ%% zu0!_5kQoJ|qu4TefKaG3l80hApkoOES>~>#sgy#xoUvHzZueZ8Y7# zP1ft@Yx!1PE4Ci(&$xQ`Xif;h?+Nrv_fE+^vp&9|R@D1qn`Fp9xjl6_GIe!!YMRXp zX?=~b&xmx6PWP@Z98b4DV2QY#^WA*sG>{c(GTMT6qpvg-47nr>K9169%MnIUfKjLf ziK}w>j*=*8$po8cVJSS6-m=6KLlApp%GvK``xpFzur#MU&SksJWr;ieQm+JRTf>klhCE{OI=7vgGUzMcm0#*!&Y*jb?ofblQAZufW*4O$fgGyYR`e}U?(2&fLF((z?=D1uQ)K&Yy5R_gOC zC5NJG)cFE$p9}*>CsDw@vw1DgCO>8jZja7sj8N9;WDa_5tIA(!5&YAgtJ@vEXGFza z;MG0yX4oy+*VVu(vZe9Y%Fgf&J@Wks=k zy7pZt*D@E(bp(r!U2AZ+5qv+Gx+|MCZxue9vsY=fQ02>tFj}&2(D=zyM8w}D@tK?K z4?B*Z=j!SBCv=L+Y_6JXdJSoz>d9D|uS=%ni!xgI%iMWo6%~Y=(jj z2$*VA3hX4y*GZ5Z9^cVhG65XeQc+aNr-HEOEU1M7i+MY#?An#HNh-azXuF|D{EymC z1=4q1tyvvs&@@YXgKmaqb7 zt|LV&0hNk)AOTIQlvH2!L_knG{tZd6E zHKF~Eo$rd&f6i6@QQ-4@{Zr4JV0Oa)ZGZb>=2sDY6>}yMWwE>Y&d)Eqo)2yvk`}8wbpAb#W#Pf0 zwvue3Q0w!5{QGwAScg6J#E#Yr$7-AOqqSwH_F3fI+Oo8($v!MbH{M8nQ0-I}Ym*cc zVR8>5!-_2O=$kQjmDM6^{(y-dX-7ZY%IS2SGdtwboOhsSop20jmoIsHj&c{QNGkok!#Zv$P diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rtf.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rtf.jpg deleted file mode 100644 index d9ebcf8a85f0db8b682a9aa047b5072c19d9be9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3006 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⋙sb_t}i=urH0#t&a(Lt=z?RE&k=<4 z>fO0+KgZ{A@2Ph3Bp(|sAGqSC%}LVRS=u`_`%?QJ3r;<2@d3{x;%0`Xk1ONhLjDtF}JgDAv3`fkvTC(A2KjDkc}!S;k3yYYP6GV zl)sHf*y^o_(d%I(g`=>T|J;8>M#EZyscD4gJg-R2;AZpW?<|LrTwlsC-u;!_7#le3 zw(vg%%0>1ahw`y`&Y_yO+wtmFulwFqJoHP7`gqHcxy9SLc7%SYC~m6c%deKBHsx*U z7BfQdptA5Z1m7L-O;7iWDu-N0bXlGrDxt7We`~K-L7x&k&l7(Qva4Z9mRSsQ6Y?H& zcal|fh^f&RP&#ReYM1M-&oA@gkaH<=j8LT)b{}@dWxD^&NdI*>aZzK~`At`!wvM%9 z7kz&8puAb%9RJcr1)X)dl#70$;cC0m^$$?AfBz}}?O!_;>D)L9YYeaM)$^p|Fh_Kh z8e=uu0f(oMKn{|2h`dQvopnoDw2b4utkjP*HM_N2{z&j#mgJ?GO)ZBUPn~ptX#6gx z6UWqxed|F*eGnYlf{Pms$*g!~=JIf53liv}C9Lj1t89`%Sz0b*K6|Jw*lO;SqSKv! zNe}s{`2zLeLVGN+eg3F6I8c9)!!<>=;O=?WwU4Fl{A7Q0Sc&h#_Co6?^08ei>hq%g L!wpLA2nYTR(JHTH diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/sql.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/sql.jpg deleted file mode 100644 index c0556dec554881b35572099d148a22e0e6c1afbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1843 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 Px#3d77TwAF^0xm1W>7bc diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/txt.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/txt.jpg deleted file mode 100644 index 333a8d9b48d9f903de7c59d45ead56003c9b8c52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1817 zcmb7Edo)yA7~f~k%$zgExHHozX-vjjk)c9V2EACR8IP{e!$>8ohf&C-#-peVv0~Bn zyqEDvk)@`Gii(iNqi!YD(3^B4j~lw?o-yk7S9jgt-e;e0f8V$F`u6wz_EtPrbOWmE zDwkCNf&hT91{6JjyD}nZI{*Pf1yDi|z+)0-1=`pL04^W*O%s_9f0KQcMnxBJ z1~>>(b{y6*zyw$cA|4MD5F&ygL?RJE$s`0-Ly1HZg``F%tE;OcB#H(_T>}%z%1xAO z;i0mef_%*yyqJ#AGy z0qQUWa8#IzC82d-T5Zr_v@epNeAoo}|H8vuCc z`S6{Iq2kVA+YR=gn|O^Tx!%WW0U)*u{%mJGb3s{}?_}P26^+=gv($1=jONFVyPv}* z4p=aTQ~==!co@K#VhTh80w5S~gG04ARK_eimxo1%VlhJm++<1DqIG`hcbvUn7L>yU^vs|%j1_4voHzcV$x7}Kdi56(Z&J7`S-9&&&Vc8cJ?qv- zZoM!rS0N`kptxX0|$&>DhE5PEEut16d_G#3Btj6K%^1qGuZn%i#r&4 zmR63bY3WpJe#oizmxuwE=P!tf{cSpRL(^E_NhkAwin{s z_YLbzz7zRKQ;uOO=j1C}-fe0x)Oq)bQ^O96r~^%M9bxz#4p$&}n76|si2PH|lZ>vy z>??kKW!yuldotblY9yh|X6OcI^-a-qv^>-EfMGkPS0{@Tc>xN$CB$`sCat6UTu z<#{>6O~!hX`89I#lEeO1Ug3x)!&da*4Xq?)t*~i()2@5>+Kt#C*m1bU=YId|5A0}T z`mkt~e!8Xn+}yC;eytPYelxpj^UxPdBJ#@$N?jBCJ3AMYZ_E8e?@8r_B)E@yE=Y>3 z-jX~X(${{-zPGOV)Fr3PdMY&Q0#E?zg#wP*{L6l!tecY}otV#uv7+l!F-pTq=6_`e zL<4L-$I@|t>OZK<7M3{=QEF+N~%Qm`o-I#Gcus{ zK4Vz>6;3_fA6hIAEHGsmAJHSRhYn3l%xB=xWvus=vb^Yw#H3L!^L6$?L4ENvh6uHo zIbWqF^}MMNEnSHZN6cCRmeY5i#zoOj4usZ+&A$J!>VfD?+nOe?-*xkw1s^Mx9o;|C zf1O`w$n=qnaP{)Kg+u4xrINYxyeZ;^lg&~q@zcz#ip#}M+b7!!4NoQI7M3#W%$OnK zxDf^T`pisSc8t<0sB^GC-at<|W7aB1DiC2Bz{OtLAKxD8f8Cxb2LmkAI0#nedKwUo z4LFv3s{eqlV@MsB*ZwWl)W6FJ$#1vkpir98>NXReq+G2^v)1LarLb3Y#0jS_2#TdH zDEDGI>84QLrblD_bzEk=@vB-|%$L(~-dP>jjyulg9`UGXjpz9^Rt{*Vx%##`+~Ng4 zTwo$5qm`+&O^$Jr8q@2S++>pIq1J&1+UMPeP$MB1*41hmb%?uI=djFT^Vz{Zt;HJM zxP_R*oQ-3_>^h_Hefl+9V@KHWkEB~1Zg~fX8QC}`uzU8yo<0+a&wp0Ga;)mHBZpNR qRA5EuccSOx)v`7x@`_96pQJ!5(R8CR>CNlQE)DOrFPpScbp8Xu{&q+J diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wav.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wav.jpg deleted file mode 100644 index 3105040045de41ed43a20da73e85dae8f4930afa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1705 zcmb7EeKeF=7{BlP&b%{YX6l_8M@nWHh0vN|WQh=qSY@=LNWM-R`Ph-KtT2^Q$yp~W zIxD91rNxrfE)gwTYqKJuVo540(y%_Jn7yMlyZh(<-us^OocrA8KELPdDtZ(HfN*o( zb(rg{nryaT=4RMyE3v3<{08gvnR}MY{45r7gB# zOQutCD*b;$aSO1hzz-y02oInv1Y;qJCZGia!2qU=W)YAK^g~lBVIojWnGF?46qJl( zRK+8}fJP{R5ik{P=ep!Nsv}B)V;EV>)i~L@<9vDEz_{5~jaMd~ZTH~OsPTFWn`a?~ zu^L}ZpVrIb#7lDn0s5wRt?QZo3;tK-^Ys_6JtGg#cCGGY>!*FVlLD#e5CFl*O0J8* zQ8ER=NL0Qh@C<}}sE{W@M&H|{n4Lmj&xL$Zx7$9Wx52oJKKU>>+&@L8XI8bz_xbq} zb;A*|JgOxL_5R#2Cu_ucm%wo6cufO|F{rt#@~or-r&k69`6KzuqDQ-3^;^&RPhE}mPS*_Fbv&dAGFim}u)8pnvX~rzpco0T z*aEVSI^Rra?;u_v0lUx+nThYcO|P7gwp7;~HZ&0bBv|PxJ$b`Ap zYF-Hu8L&Q@wxTwpZo9S?ySm}1|COaj)Aj5e??Qj3%4(n}P9rZm{NRtw=IHVTA_>lO z@Cp*g9;_tP%~Zv~?a+BHmn;7*vc9bH$U7vdTHDCac(AN4Y&F7LzHX^r!UnB~^?h%J zorWwgd5iFbk$0*4&(=;Y!L_SG+rR5uvVTQBk~H6Ui=CL&TBbcVbB0?WRAXjzF)j6o zZXIE6SN&Xid6oOyJcdia3vH|D7HM0yk@2WS@{?shK6vVQ|5CX3vCO*;oAWN!M_=}& zYGA{~)lq&yVANgK;iIup7$v!pcrPw<8_(hO4q5h{j{9jQ!R%=Rg8`dXTT}LS@rwuf zE`NRm!(UCnRzu0ke*7B<3&6k~g2bY1Dd8E|I4)W2NITsbYbnW{IRArH+Uth1YqvFX z?)1F;MOK0?BR zc%WV19im8memYNgB1OzvIBW<{8ZgAwmkyE-)$ErHrU-%clTxEVBZu1)7 zZ{+1wsgTFQq%KSj9M*q>=;13LvWsvJaVuWbzyNhw%3;DVRe1rz(gmU*9f1SiUM!KS zI+~b@9tw?j$}0RgWKYCrmaUcrlOW)dVKx9Q9B{>?c>0`{x3qSaS?nvlA)2&RXKt~iL=G!|+8dc3pOm+-YZ4Pabjy(y9 zF`eC{o>pL8XpZVfGfO9YCNIy}H(uHh{CHwzQ}coJgD!iIZ}Uo<9)b>d%8HRtr<&E?em|7bcyvmWJ`{qoGh>#W@ z!Al@5C*?^4+MRBe7A6mu+h#j)c>1iq4dX4z$9|n_)6^mRAvFo1wljNoroW^-Hqb~r z&Da-^u;u&agU^GtBsFSYHXNX7%P_Rg?+qA;x$WXE7#t0WJRx>&yk>k0nG!{(dlXb4 Uow?uoTsP8Rilp7+wksa~1symlBme*a diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/webm.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/webm.jpg deleted file mode 100644 index 2c57cb7f81d144230b75ffebab18ce2073eb5ae1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1603 zcmb7EeK=HE7(e&kx$|L0?#!^2Rn3gXSJ`GV#4Z^sm3Edaff+=ePoH9ue zG8P+&#hG*}o%z4bSP$5A5CS%1hyb8$1Y;w{OTY>y0)feFMvcy((hwAee@ z{hWv9{J1Jzd(2sTVr$x$D!^T%XtDe!G)yC#;t+MqW3sNfzOU&ftMETiPsl?^0EDa= zKK30d1*ZX&j)>-91eeX3WQO z3_(1Rft{-0%KL|tQj#)7Xh};@K<+_};VX;Ax?WanvByTEeI<}$o`MO*CEOH)H z2J8=&4=Q7wthSe$KaAG<#;P@rp@DHW%MdTY=KA`rn&p`HEn}o|5 z%ER&EZZ4iNvrF@Y$BSD{$=}kwT>_qGUj_X_>(flNVaocpvo6KOT?@Mfngb1`8{av% z{k?xxyk2U1J>&M$@}q0FsXuE8c#%47qy3O_UunkG76>twgg}u|l|f_(!4ne@ zLXkM8Qeq&>d$T@JZ}Xz%2*ro7SNEz!Hgbny!A~B&zEccg( z=M?Ea)tVUc->rY+>n(6MZS)8_-zqs!u*nEi&$H@*-@#qax}*`-iUt*1a6Li_OiE8# zo!gWj6_}RO-&>+x4GS^2m5AWJ+Ly!A4 zfsb89Msu|IuPS}uOG}Rdj?6IqYw@ch9mU0VWv=qqtvbtmN44@^(WIFdRwS>;K#KQt b${5j_+^aff+=ePoH9ue zG8P+&#hG*}o%z4bSP$5A5CS%1hyb8$1Y;w{OTY>y0)feFMvcy((hwAee@ z{hWv9{J1Jzd(2sTVr$x$D!^T%XtDe!G)yC#;t+MqW3sNfzOU&ftMETiPsl?^0EDa= zKK30d1*ZX&j)>-91eeX3WQO z3_(1Rft{-0%KL|tQj#)7Xh};@K<+_};VX;Ax?WanvByTEeI<}$o`MO*CEOH)H z2J8=&4=Q7wthSe$KaAG<#;P@rp@DHW%MdTY=KA`rn&p`HEn}o|5 z%ER&EZZ4iNvrF@Y$BSD{$=}kwT>_qGUj_X_>(flNVaocpvo6KOT?@Mfngb1`8{av% z{k?xxyk2U1J>&M$@}q0FsXuE8c#%47qy3O_UunkG76>twgg}u|l|f_(!4ne@ zLXkM8Qeq&>d$T@JZ}Xz%2*ro7SNEz!Hgbny!A~B&zEccg( z=M?Ea)tVUc->rY+>n(6MZS)8_-zqs!u*nEi&$H@*-@#qax}*`-iUt*1a6Li_OiE8# zo!gWj6_}RO-&>+x4GS^2m5AWJ+Ly!A4 zfsb89Msu|IuPS}uOG}Rdj?6IqYw@ch9mU0VWv=qqtvbtmN44@^(WIFdRwS>;K#KQt b${5j_+^P6q!N}pBC>R7Nx?5?L@ z+;bgk;1z6kdpe@rJPk`Z0Bo^Zx@uTv7TULGNS$BU@f+PHy7k>|x(Ee@1W+)Lj}L;z zz*rnWF_`Q?gaeOILKxJWj>vp&gYK`}d(B23nRr%si5@Xy^?9*-8xEp=@odQq?eHJ^ z_xvrh2``-oRYBprEi_Z|q4q52j=|7Gqr$dgt<0|Sd#;@c;X`_n_sk*U>3HTWM(T2X zDBmYU+cLr=$mw5O+Y@UMAX74cU=#|E!F&LMP%s*hnPQBZ9@WC0pRLNUWI1rWzLEa1 z&WD884tkZ*VN#!_9#`8`F=RL09Xs$$Oz=HIi7|qm2p0!sz%q!~VqkkWSYzwm`ZI17 z^(l`kw~5YvCvtjC-2U?1yjEDj_vN)0=VrS@>NZE*?iuA?<6SH_G_yFCoi3T<{MDqn zQnqK&jW*MT5LzIFXn?|@R6Zso113gQjcPB>*3&m+SXiR8n#O{5mF*qIS@t zvr*bZVST24%A4p5{!JDI{z_W~rMojI4;=jlX4-U1cJ2{az1$b~7E5#YplPl&s=R27 za1M8J9&F1!&S6_M&sn!-7H$hZnfUth7edOsqHgJ{!tQ(%kD5znmv*@9SkSjH6y;f< zDW|{jpwYr-b7Jn4yA%SzUO0?^Ta)CWg|I|4?mf9Yv=}nLs;X1%g(Q6j)56k$FHXuX zR^#+f8nV3tqofP(lK^XnT9f*95{pi>|1|8Jsc|JsJ$HNT@N(j^C#{O?mXsZ{^V8$i zOKXC(ss2s8AB(1fey5I|yA)dya+o>ZdWvzf?ELguj|k}#$rfXQ2Tu`S26bp-7?tw*p49`-P%0WnOjfXzN;EP`z-}E zOyum}X>?~qV0~Ezep0hEjS_i{`fg!`?ISfcM^Hp_tvL>o{l&&TUZ;R}$C^Q;lQ}D< zL&wEQP;KS5uqgrS_hq`Tz?FJM8#4Q>I^6oo__ZV+rLgN<-p=PUDnXd55lz@oH&b_0@yvaX);+JaM!kka#zT)u)IaAa! zoSlaxt2>w?B1BO`emVQL&*Agvz)sfQ>D0XkU1$9cn<5#r-oDnG3ev&;N7Rvyh8i$p zAd4{mg9QnS9(g?|A2q~xLE-BO85}Wdqtr=nJ*G^eV9Y@A?2shPhvWELQQgA}wnn!u ze^uunQabo>Q7d7aRNp~c_(ybd_*_}mc?qpN4muMzen9hhP0vt+?~`(6`sa|=;`O6B z>5(h?CwmL}+7BM3zmb;+b)5o6|I?NsG9OUw^_UzXgC(BaC}q;h(GtUnlC)C45FPW~ zca3d)SH&?ZH;pGsw^gVQg=&W6i8{r3E^YbAufI+&a#anpO|`AoHfUUS#Cgt}KFnk# zFWio2<%QS8W105_#wV^SMOZyf6&BgUQ*sP>h9JKr=$|G?22`d!iNjzA@`c&&YZ9^} zt?oZGm#Aaxoz%BWhtK7!Ox|ceqVYA&0@xBz>9td}q?(O+hx_;5>Ilsyx6R4;%p@-3QyryB<=n3_NG9mhj_!1qX5x;=bgYQf^n>8% Qh_WojDi*yt(O)+5Up1)X1^@s6 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xls.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xls.jpg deleted file mode 100644 index dc2ab5e707ad71e44b3c6f0431adf9c8f8b60340..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2950 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 X&Rk^yzBVzO6{qDjSU|r}I;;0T4^qYM diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xlsx.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xlsx.jpg deleted file mode 100644 index c8ac78f05a0612b9bbf62679832afc32d6b2558b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3025 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xml.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xml.jpg deleted file mode 100644 index aa8c443808ab7c3b601ab5dc4e986d999173a899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1773 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ac3.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ac3.jpg deleted file mode 100644 index c89b43caa307141c95031e0fc4ca19fc841cf174..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3464 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 OgIafnj{65u%l`m5h4jS$ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/adp.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/adp.jpg deleted file mode 100644 index b07e8114f0eb27a5435c9fcae96667bd1f400ead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4332 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 OgIafnj{65u%l`m5h4jS$ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ai.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ai.jpg deleted file mode 100644 index 719a029f816fcf04b33ed4545e8d82c3cd435d98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3510 zcmb7G30PBC7CtZUC4?;oWD{H-phzuhKnHPUUxI=$f(3C4;Q^6ALJ|-asiLEPwN#cu z)wULpc3Pdb=(O%Ah$HH_)X%L9j-yr`?11A|N9&R~Hwgj!{PdffFZca9=fCIv=iKGR z__OgEh~s0VF+foi#Nh{wH*EGwBO@2eXy_xESN^2_Kiw*@MmJpm}#!&>Pn{kSXlO&Hs4$&%7W-Brf7b6Zx z?_FB;b=duHAE1*AL6cpoaAuCqX2l$nYx%{GoLqQS$5KUh~3bhp)yF5 zEcRu2>4`HD<5*sOj%GTELpaBk`bexL_#nQT%}L1`qaGSExTt8v0f>iY7sOfO)A9Pk z*~D&&vn)F@5i!Q0b&D18GQ^&U*XuNLG8by5>p68SnG567$Fv5SMFZWLr%ohuVZMxr z)0=X{m~^KhI|=tG8OsD4bV-)6%-l>>jMTy})~Zc=5w$T5x&k@ThVhx76uRhG#2ANp zz~v>Ax*_I!WGJFYZO0&<26HF{aG-&7?3IuQFMtI(#6ko!Ca6G-77o1}T2z!H zNFcX1gLYXjT8WV-q ziOgiH0$CrOEM&nQRBDcs4+S_g(J==i$~_DGtz+0y-9nY}?8bYjrZ-DXuOH)BGe*st zz7+sHR-h-l(S7UGR(#OI>R~T3d*_{ZXe)-9Z>ul=Ccl$^5&L%jmEQ6E4*nJVv_m+q zfZC)e7gecDE1|dYM)%911(^m=V1FHX8r0gOwBL$m=9PQ)dPpU>b%~D?p){b^D!DA_ zmRyw7Ng5>o?l(to#C}zxtLPu;CVC&epFRaF-AuR8hv{SV_w)g4%-65IIf`}dP5BZV z$(F1_&wPDr&4F4JA@UOWilRirL?c8qtSnaKE(#RIiAJKw%erprUVpz_RFI0b>Z$7M z=OQOS1<9yH1xt{t!>W=B=fP5p+V`ATlrlq^Kt}q?t_>l3xkrT{S`Z}&2UajjFi{XF zh$pz`;N8M_Zn}TAr1$td_RoG(t6YKqT-;qf9-IN7Dj^#%9Ck zGXkNFP)NSEc8>P8whneeq5S}R2S*V$TYIt70Fe{HBnTOfqXY~i5ZMZC3FH53#v|Y) zgfv)2Q$E0RqG%_|coe+IzZu$;Es;wa#S_@j3?H2?2K9R+_w2 zs>jzK_^hwT_XYP+nBc_0!5^Ke)Gv}Q0*9T)>3uIWISWFT#6O+yacxm$GYnEz6m~~u zPb%45|9e|W>t{s?Va_Q)2k0=?@J1Tv^$}yqD4HSbWNr+f7Vv?`eo%W zQNva&em{Lm+Q{n39q+1BYSz9l&EJs|RQc7XK@OMB+TAa{QuTS-ox>z~r&p7gnWm*F zDwK+R1A*5=7>6Zd7_6pkPZ|`Db^^xPn?KM;5*V&nC3bNQipbyPD_c}r*K+RqJxgAK zP~MZ&L9x!|mqXTG6DDS+CRdL(Y~8&lJWCq<UoYJ)|KXGBwr-D) zE4L*zdmI_i7B{W2Rk7y2c2fK8Tz9+Wr@yUf{c^;GRL*Ns*;Vi7v3n{vCC-=2^TmxC z;TD$mtGzw&i|!i>Klwh@fBoum$JFPgF4Yw&4N{+#USa&x11`l+3EJRM5>VZ;sklu0 z@)u$8p{Dc=Y~`rIx4t~{SeRVEKT~(~SZ7z2Uuk96Mf(fxMPr=b*>>@7H=5EGUNHg| z$xn>SMAHmzUP}=uC-4pwhp&>%Qq-|wviypcb3Mx$>iyj9h2QR{xxZ=B7C+kj^wDvnt<4pZi&Ebs?p;tIrO)zvI!c+UKFD)U^Fg z2L_jyG}=MZ$^hLQQj55my@q|O1pn62&FCaGc+*Z2zilU(2)?xRLzY7r$Fy; zg;+8xe-$g+*1aS!h%lL{cPtr-7lx}NJYu*AqUqR+CAeh+BVx98Itgy zX9s-8rR#1h>|L6wud(96_TDQR>R0VwQxeCP?H;pWd}-Ilv}E^nzm8RId=xu%)#jad zGehUB-QK#)?Z6RNdYgN-cK+aj{HI%N*8I>O{^L9<=(`X1PhXKZu%!7^$Dwh-cMlue F{|7YpOWptg diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/aiff.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/aiff.jpg deleted file mode 100644 index 290afdda99af54920991f9e5bad084d85ba646e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3468 zcmb7G3s4j17CxKZ4T(TZEFyy70-}gugII*Bg%BQsf-yjSV380O5(y+G0fhQ~j5^LJ z>NumlZB^8&Rg3k}tF4aW+pE3S_X96psP^I$r&fEtsJZ7)LIRGX(?7HSetXV$&VSDN z&;A?Rb=$u|nvt5G3KT`bDExt~#bbZEQaMGX9-EpzCIuA$9$PgglR>}%l$Be}>a-+o z!o*3O#|;obZ}0?v@YHB6CWT5h25=BAxpy7UuL61kxD@qveOLAyPo71*MGHWQP;M-; zXv+{!2Vf0ali3O&yo2(%Dys>xM<2vKW(*LqoZu1%PA0g}fhX8GIcg1S;RAA2b5rngsr8Ijq z-or`mI`b&C6R+25QnC^EL-}cwHHpakBYs#>nyWw@0U+p6Y);K}@C74kbUEV@`=Y!^ zZ%xl}%4^CCv&JGuTR~l^aWwHmIH$E1CDsx`5I5=gbh5`74-G|path)|#6h}>QBMDK zhNUu_$nAb=bjmEm=!Z5>)nup;`y*a#Hmb>57&BeR8`8*H=$}4mvZ|ah(5>Z$EV35n z%Sd>OJxBCOw_0^M*r&vniM5(@oVLuQVts15lRv{`u=gUy#%wZIs7Y+-pZP^&PDw+I zewg3+@?26k#H?SDCYjWBFyc?(Q%VCo7@-hnEtJD6;6M#&kc4*=m{C&?ChD0@3kW#>3-+>8>tbt|#PRo>2VtZ>iCF*3avITM4|aApiMl8IyDfnySwMCKDF z8Kv>ea90GXPH}Qj0{1Xdho5Osfh&_ZK82)O|B7&z4L8p`MXx=-{0T}YX$t-o7CD#0(xdY%RIBHdE? zHTfg?75N7FCi#OdYq&jjsS>@4-bWvz570l-=YXS+&<*rq`XpUX|K#%d_Puv_aqYc5 zUm_#fl3nOnuXC+=Fi4Ul0g_NjvZSvhOftsB;v~H!(UMV;0jLRZ?VG`^?~;oiCSt8R zs`~b|$Qz)CT#Q5yRme4CRY`@*p&Gq*eovf{GC@ox%(0Gs&qBB4DW=cu?cVfW$`m18c_s z8B~A^tEq4&M*y%$4~&yT&U`Y+S&P=ryI{S*#i&_NyKo+%+8RL#0x~H3ED+GNkfCvS zuq-1Kd5A>h5_j|V6pOvOiA0{=J-xgoIK-Y(S$BzyVB&-l$QDRxDHh>;K^Luu zaa*#kZQbrCGfzoV#W!+?a?0Iom+P$%d)~t)kpHyEboYzu8eM z|IwIwp|70kpZMSJHt=id7yN~`;USrYx(6S~7KkH`_Ut#cruEMqa~9@IRUNS?=2u(4 z-EymUD6ba}DJswl7j6z-5F4jyxZyixnepLllDq89+*S4fXo^aplK`I+2^9$y~g|Ni*5`-VTpw$9$X&GZp9=!b(T z)~4oJTjQ_xyz}A5KNjuty7TPL?rX_eRTp}NH5n9(Uv7SMz0b;BFFsW4QE;LiEfID3 zyAFp{w-q)Y%?k{9c6QD;du5v4UV8`D4cOxybXjA3)pY#pmVrZu^@?iH2Q7_Wq&(7k z=0(}xwr$MZc}9P)?U`|v=2lR^!`%ngJ@C|j z`^^89ph^O?UoXG>XM+2dn5k*$wdT33H_aq@tK`F(X| zCwfl(yuaaoTYCb=Xzz3TL4d8^dHC!~#7CxK4)$-HiD=|_y`v>a&q&|bGj>7(Eurb!D{Yz2>Sf{K+Y9Ce6HTH&X1L551u?_ zS#Swgr1(B?$xjQy3eF9`q<{R`>Z&spEf2+&6YAT2qiPpkOpS}0wfV%Z+b7DtTi*W* zOS5YJn7u1%Rl!eFf-d@R0&(xpzPYk*b<)yjs<>_TJHQG zxId4w>ejscwGY^8D6YTTaDD4?!@%}0zrDYQ&Cfi3_McbOJI~#nIOEkPtmUXD0C zw~u{sA8glv42+YgDb^UZYL3)GVbteqbsC$)-o3@$hxsO0q_beowibxJhp8}QCO$(+ z?ghpqr32TgRq+{!hok+1!5l;EBN0Ec6wa0*4g;VE<{J}c+xhg=vVzRHh<(wXr!~tn z9rm)~+_YJUaV%Y5sGmvV5Y7d)DHdx9!w}yr(8$ReqaFtGG;#5W!x0A-Sdtv^nPgK* z2C>`XloiCLA;vh2@jX?t0&xK1RYtv%%!QhndW|lT%!Topa|W}*p@F$qtV<(vVZN+L zW3uIlF`0Yjf=t|}WGp+;Y|M0wWwY|N333O2xj|>!i>Qs=Wwa=XHjK|+Q5oYC5n~*- zTT?un)D1DuKTj1$YC8t;beKb_Km&Tn#a<1?&;uMOArWHmX#gX7@<9tav}n+)L5r61 zghI5vo~N*J>|=Tvi*2LtkpAur?mIYo){m9450&X9-wvW};&b#8d@XLS19H4~&bn>gM%NP)%=^`d&ZAab=8} z^?fST!NK%z9gWd0o7FyldFE@!EUG^KS6k@zVw} zTmhX;Q4y-r+E&8k;zjh!p$VC0P+@-yd3x09RN8Mv^NXtjdOf5Pn##0iY4AaKuT}c3 z^s)4sbcb}8^kKg_dL#C$5>vx8GJj(}V?Jjt0mqzVnwY;c=a_@caaYXOuf08rYwd0M z5*x{utb%jCzO~kXP81^=A_@`3iGoBUL@6#7C-M_TijqX5&@;rfZn|E7zg)C1A8X~T z>g(qsCqN6cQHd5xk!!@Nk_s2YGK|{yoH&%Sfovoze`VKBB751Xf*;S1lBYTyME{kTCwgW<3QG z0W5$rh8hO6gkmI=^$ZNfL@+SP#@Pfyz8gjJ81(v(zdHS!^`GE@bXv@au?Ur1Kkubd zYRHDo7emU!&aN9WmXynPd|2nM{jjR-{EZco?t_o%gC_xmP2=t>vj6>Ya*w=xT|#>9 z1Y9gzBZ`KLfnsPrO%}=Ccnsf-W`Pn*q*2~}GDQw*5TG)ONB>&4>3PkXPX_&V(%yO+wd{?wYz{j%cEKKb6azmMKWN+5Z)1Pa^q3`Ip#v2P&I zPQp}@5XCSeFJ~l*W>^XEA_oRb`C@M$PL{4(VzM0mYs;WvA>+os6BDb*$yHa^G_^Vs zXK~_+@J;%pv2n^1 zmktcNkf3h3)mB|{Wa^=+&7MP>E57V#NxeVfSl zbw7VK>a4COjE$DJ9B-#$oD4yW_8fkIdS)NUdOsK3U^PtG5OzjOG-&}D~s1$Bj4lGD4+{Q4WL=O{6*EW^+|ax!g= zl0a~zG`&K#L@cY`@kEi+a_c|NEf5|2Qh91`*r$rXf}@6!dlo*PUH0FKXRQks4U4?< zKq!5FC6t;=CFXsTv_#o>>x+>2|JXL^+@g#_?q}l;*PaY2-8raxt7Y45KTDGE!H(w2 zi$$&N+@!Ean)xO5UQ78eCcLLBX&tz&zPxd@()ZJc;So8(^0M1OS2j+lnbXXj-B~_hP0LYP*TcdCO&go4>hpYOgi8mX$=`i`=k(GFuZ8Qg z|M+g|;edLP!nC%zGBt4T#mufME#s5bB-~!HcHQ*7jlVM}?`&DN+y6Vs3>npE`7&yB w_9IDsi`jd_Nj7Dy?8#`jEzpjLy6V4b=c)Y9e$@ZGR=KbHi<_eY?^xUZ2Vz_^u>b%7 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/bmp.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/bmp.jpg deleted file mode 100644 index 6559809288678036c0c7cc216199e4cdbd6fc083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3881 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 F{eMZB{8#`0 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/css.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/css.jpg deleted file mode 100644 index 0246bfd02fb634c2b0234b9b911443da8f53d57e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3450 zcmb7G3sh6-5uW?V4G3HlU%2Rj04hQi6I6tXD1{PP|Yk74nN@$kFKqtHCzB!|cR-8(gk0#+t3-jibA%V16<_ zCz9Ipj0tKx-lx^X&PO~B^%slG(L_H1@uT8`j3~rG0Q9gNV_b%fPe+vJr7uK03ia7K zb7Hz(UtXA%Iu9}W(sc!fWD?QaizMUr|k~PMB7|0f4Vi8Y5?44JfV2{rv znM&ppy){mGo-!3N#$k;4nj{rsFT^!QgPP2RIWu*FKAy~l@tH4+%qn{h%!5LGDwzxG zWqHA5tr24~56pS#xKD{M8)`PD+kM&099>+ZonKL;x9&yEjjcBpt4VGcpS_|n#>OMY zIP6oQFoX0Bv1oL*CWiDj7;z*lpfn(W0kUw^LLu~l4Ac-0(fBL^BU*Am2YS>9XcbVS zqdcGhb#LaWtQ?!q03+Ax{eXDmEN|x6X6Uwa46G+BXQ$$KCY!>}V#C;Qkg>DbIcy{w zgW7O*rXvHDQ=T%&g>KB$7H0(%BuF1hA@p#tW;tG}Xqq6ebuIJS#A2mD31M4k9) zhbUYDy)~odn3c}D5+(<4@}L^dA=3;R9Pc8}fVuW(I%q|63b%U=SV$*?4XH0up=#2A zR(@07Bfl=MmDkH34w_>i;-D@uKW9!be`K1N)67>OW15+B%;(IP%&RXu-X)l~9`hE=LMgsG0F;KJ zGNUdx&nyd(%V)@<@Kq+r5(~A#lVlpbUS>6!WJbXx7)ylgU?A^7;s@|dZGFE{qb?8V z%yR)|{S)u3D+9XBVt`Lg0G`tZbQAGT9Jv>uF;rV@EV0GI7jG+oDQ9Yk^*7}njd#;+ zi{%;KSK^%jeLF0cS9KOk-+qkW3DB&!+=Vr_4=y00hT%nxF9VVrT^I9VCndTd-@5vz2PT z^u4>=v|Zh(rM7<9^|`c3xv{YJ;i_>hNOL!i`gYH=x{rP$*0k~cZaz3m07eoqw1_N( zO(>cXalp#OQPL43J$)4+p{iv#u?wa{iRj+YfB$Lj@7nSU+8Q=I|LdtAt*sPCXuAU@ z?&l8Xt;tt5Fc$stWz=+HJehtg+TWcrb~dLS(;;qI@Q67q{BcV8Sd*RkK#sz zoEzz{N?WE`VKi6O9Xo#hs=X?1HvQZ`a@vX2d{&TFuK)F_>ax?DFC5>m+*!8vr1$tV z&%nlY9`_zS>igPH)0XHFQBRj$xmL5{>L}0j)4qv;;ah611|Ry3!6&Na>WQk4Tux1W z*|<42|5r60!9AHz7mRzhE3h>sJNRM#tj*hc>K5~3=SPOVYAe~a^32h`&AzpKU2Eq} zjgAli(6DEKNBUlahjOlw6UvV@0JzwMKY5vU=wo)jm1Y)b(+@ zUrPr6i;PPji_YFlKDz40C+a=YDLYe=hbyjU1t!l~ch{)p{+@I)F#Yh9s}{iItlQgq z`f*=6i%f;TTqSZGS(c1edCSfqTSxM)tz#wlO2{F^Q|LH|q-}~Qd75TLrD|ENqi2%; zZo2Kac2o7tQ!m#H+tzgK>;F`2c|?D=v!(gqq7#p`DFJSV(xn+;Gd>6(^2w045P6w& zPSAX4y0cOB^!YNMnj^W3==vp-E5FH_d9AyW{^I6Y=EKa6z4!WhO^Q9#H&e=~ClOh6 z<9(mr(@nkZopA~-T;4;ktyYI_m{IcHkxidf!|k9M>mDC4?-tKm|KpBd=24wJjinZ7 z`?EZ4W^tdoVo}3C!a`cKf7?4dJ0$4knLFD{{I}m9KZg$R^{8y7x%vs|Pah9gLbIEB VqxLWRr;m*7XlUqJdKWw2{y$Tu9r^$O diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/csv.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/csv.jpg deleted file mode 100644 index c7d3aef711b07fbd58f59481ada97437795ab0ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4417 zcmb7G3p|ur8$a*7?~MBxa*N6ki^7gBl7w+rXo$+S#u&}iV2qg(3i)D7yKa5D*%B&6 ztIM`gDN0gGy4h$5-A2l)R%xaA&O5H{uix(PJIs0i^F06aoab`h=Zy4`v=dO4xOut( z1VMlY`~%W%xk^uG=hY0qWp18cu22DhTq%>!=Mks?L`4e)e(p}xRe?cNxmG{`Q-KoD z1xid-9G}i$cmX(YF8=&_d}smC5&-utzODb7{kLyQ5$re?0Ej%4$3(=jq9Be3fXHL< z1wsHw&!F69qmU1=+%$+a1kgcjUTz&jNs;9w~4O7~vD_5;*=VA=ZNO2(Hl6 ze^j0j9qzLXVz`!2v_57jZU^Tyu;QFyE`cG$9UQhNUSsGF3L@Apt`M6;JcA?h7`2Zs ziQBLom&@!VaGZT0hIUZFI_44v#JUjwAc*n9_kup7MQolsz8AEQ*7JpoQ6ErAG|va$ z3&x9)*>SQMp-ogG;D-nqNaNnSPteGir zb%z+*!QQc>1Ms{-Ow@^By5PCBgxDUeK$w6HVn8^YSs)q=11j(X?!XB?`9J_Qk$?+$ zP{M{Qj{a68n8_IcaWDg8(OFE+)Agi_I^!DZL##67zVh`XuzO_+V8YCw1>1qv=UnHS9?rY{3=Um9(oq7Myt^C=q*4+YtUNsGFp#T zpclq%e!KP~R>o^Dix-#S(c)DY+i!BN*?>oOBI}W7l3mF9WMi_|IEzZwCR>p`$R<#u zH(od1g#N2oxF8VbYAmbY-V1*NxF7&}!UY>4R{*n$XE+*cf>tNLC!?NXGcYU6^KYlt z20zPVUXWZ#E+jgjl4g+>lB`Hea6I-PG$0VRGBJ{DqzR4 z1sm8AmH@v8@pS;a_mkakh}NA6na~@6#eJ}6HBZQbL;#e>0iZo^LS_nkqUJ#WDy>-} z!G;lg@Z!Ao09a8Cg*stVr0T|AaN{5Q1(&1ugUkpGEPuc}iT;sWs z0C;=jT_4B;BBBl(HM|UP-w<6ulwkmtAbR824>29(5CF*F0&J9n_k4Wdy%w$>eG&=@ z^7uzVQAJ5XL0M5=UP)C+S%nOT zf)Yhdm8^zi+z7rLt|DO=iL4;6fHVHTA-w|B)hJX+WU(Q}$NN#!+s&0i;#@2OH?P)5CKdCYw*J?d9U{2dx z@ta%q@ZsF;{N97;#qCF@&J=H}-ln#@FSww9WoCc9U}oC&YsTd#@~-}pq`Jo1G`DEL zd&4%JSA%H<0XI51=Y+9|4jCbX(+2K(^_1ClU2xm!7MNEMFxA?3O9sz6nOxOxXZYrk zSA|Lfh-Kor#g~&EHsXa*n^Z4Z_#?5xLOLMM|3Dy&5p3}U5(q>E5+*m2 zK!ku|K#izQnqpw(OVKc#Nux7UPiY!i#|m?_<~lN1ae0SIPIrywl;l7dZhL$O344?7 zEsRys+uZZ$^nUXOUMt6BBj?x|{rp^gi)T@eD*63~`jCOxP3+b0s@tYwjI3JVR43jQLz zc~m>$p1}B5@#`ZIBr(TkXDwODH0jmSIGTIOk|pP_lcpcEZd&|ja2;*i&E&8%1&%Ge zOSK8icz8IR_*y;QQjYi#y-b4zLC!Spg^J~N9=kN=+b^vvmvz1os} z+lx>B#8uxlzmR{~Wz)VDdIk|Sxw}fr`yN+?xjoH!PT!w)jyxO`%64^(ziY$0WmfvR zD{%(brDJH_g0mgz?>lZKu3#0G1m794X4Cy&v!1FQ=dZO>+r*2G+a3@#{4qb#;-qz2 zyBF>0tK8q3)k7Jl0_;C_@AR3$`lQl;m=;OydAXB&TjqP)t1tMYRAN(JzS3IvZPU=+ z9Z8FfYY#jvuZ%F;bT;Bhy?A!%HG|TAOSS`RrBm*qx*1;dV+jlH7#TP17fX)X*S4=# zNZxZ?B%bX)g}iQ`>C$@76~TiW63gaoQazcRetPzy9rm4_1G{^d-OkIt)N}q_rs{)a zc-)LBvL1(E@BogUCN*GSMW-@-DXBS!Xs2pp#|{qSV375`_pV6Wcl2L!KC|?EW<{vr z2vL7hkr1$yO%me9_4)HEA=^ zY@i0mL>R|<6p{RucV7=#Gy9$aN+N3R480OV(d%Jbt*~FSt%ZTnb{3Ob5%b*MqRi*@ z&V|h_#e?$S@11?(cI@w37>%%DN}|v~lCGI@!p|XGv52@?*{Q8=o_2v~ujqx^8RL&p z8QX)WiLRx7*x$59pOY~Cra_a-!D?HR<`-@@^z8DgNXw50bl<8k%f7lMsX)KOw%aim zq^zZ6q-pyGNHnIW^>w=QHMlu1u#ZW~8l=mwrznMJ9BRF_^hfN~4>e-dXxmO*OFD({ zNb+jtmKrH=WXWw|>`x8XS-m$;<3Ghy2|kNzd{0*WV%zPRZQo2q)BaixY#C3|hBE4= zWhoNUPYup*^ljXtI@X$HR~IGwsxs}Wd?C=N0n|ceQ^yog2<&13C`65{;0)|e${OiE zbrQ*P!c8R(#=TW5PRJ#FRB4_LvL)pxmEO7otE zf$9DI@hgUQCWSnYd>P0yCv`HQ#O3UuI1lAeS7WjJf zmKR?}(@M}fY(%6fC>1h#qqpEA?ZZ9`ZHYhuKR;j46?2XU;wrl$ymiw0Y zWbuP+EMwm{)^^R|YXqjU#YqM)E@+*T0t@Gaa;+iVUB2x}x0=FlI2{gPB&0rb(3FB> zq8kFoRigD;`@fS!tm_C<)tR^K$o+_E{=*DfR>`_m(+&QiIJrDcku)tjExw%@76d+q?)F;J6NN1)h zrTk040S^#@1cWNJAvav1hzD$hOP>AP3GnK?4oD*t;9CHbth_7a`ab%BC4-FY?WEA2th=*k5#aiRj zQw$4d5W6`}L6$rbF~*_wZ>gpz5K9ohqt8hqbD?Isg4M>5xiCI`JlCkOYM^iHw25Rc zTrVSH4dyjsO!~GlD;duz8OuyG>XWTw8D*v>I?l>3%+;FDB5GrH>hqF_HjK}lRq3N* z5MvzXcUG4|@`jk}o}r2)xgCo*1YW09z(NkBW3L7sbb}OB3m^|?COTe+h;@=YZ`&B@a($Xc-MY35)%311r`L~h zY%501Iejw#2FyUu>U{d<>FdJ7?lzCKojEl7oWs|JFzxU1%e~3H&27j261SswJogH> z1OF~TIPQSftSB2*Y0NueuCfL%%$BD3f zOs`dTL3U5pF54m7DZATmj^2p@csTZ_6`BfA*i z9RTv2+Z$GsXgW50Y^J50cF9 zH)>#Oug#bMF!@)kS!a7~$~=HQ1^~C$dTriV69;SqI5bh6r(bA^hcDh107ItVc=LD4 zAp&dDRg>uf)+_!7fbR7s)3XYbsk;*6cK|eMP1m6)YOy90AR&QNeGmYba=}84F9V{D zk^t9?0j5xcY&ePXwsJTCr5a$Y98&X1BefPsTc4cm92=uxJ8i?W2-S223C{+GX_)=Y%G3-0;8Pc^I17J1W}SS_*4AQuCHhnija(1j=8wYSAHS_&`~|)Zgv0 zVb_+xKlC2u1NNOf--wZF>Y{3PRz0l>D_m~xF)L_D0FsrG!{aV57e1O6Pz10P^$ZsS zMKdH7=ruPUaQQUj=FgE);+F=7g)2~>098|5&hr|@(Py32!G1HlTGU4;taWJb{P2ol zQ?h(l@ORgLY&{iM`1z(av-3x(^BzS`$}M&e>^LfkIVFiX5s+P6aCPSQZ%-F}G}L3w z{nH^^T=rHU`y}wAlHUt{#gj55?8}v7bpQUOG%@WT?@bCy zEfMl#>4ifzv|>!mVIvN@&mUt!W|q2V7@gmzRcm$|f3&>-T-@I^J)>^bH?;*mi>_ z4qqT07N$_`Y_evH7s~1W?(R2Lx;Yi{*=08!l#f;K{gD6pVYUC&>~Zcb|JgG2xZm5i z+I}lZ4bj!S5$7l>Ul#6AuDrbMrXo@C%3)*i{g~Lqhv{XGkKLEKKS z^~%o3gWoOtIit#+np>h3objKNzP8$L^@Xy^JEfiL;|DBBIX$auYm;kTm8Qk%rs{c# zPvgm|e}3vT_{^=Q}o} z_hXVwph-&(7{0m8Z*((f?=ANW$@{)7ed>CU996#_loE2 z-|$6vTXcOw#QCbhNBpgG-^_Gn?nKUx|uZKh?I*zSpcjT}(BuDLvp@DSmHk znAf7)ryrf^7*Q`CJYmc?@wLv-Ltxy)ai8Jg0pc zR~lA?CEOu`^kNS7q|(A)oOp62#D8}s%!J`$QUoxmwn{-c4+YxZ`H|2p6zb@YicF?M(SNM-wu&F;RQseT)dU1>Pbuvy6|&kkBOa_pYXblHs6 zqecz%b4vX6@`J;}uHA4M!S(DsTQulF3H7e<-nS7Uqm|OnnPVP{7GCiASJAy|GQ%L= zyYFvo94@X~{Cm*+Lm!t%Wji_A`PSy#5U-r*yTV`YHuBXY+TE8M?EPf!t0Zx4-B0ai U)s)3AZ5UPi%|T&En(5O20Ih7m)c^nh diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/dmg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/dmg.jpg deleted file mode 100644 index 431794641fddec1f438fba5da5719cdca03085a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3643 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%0APTsN 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 R2Z9KsF=E#Y5-ahq@dHtmFyR0I diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/fla.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/fla.jpg deleted file mode 100644 index e2706ec795ee75ab1a6e56a440f897e2345cce8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3791 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.png deleted file mode 100644 index 7fad79ad8323e929d06940043009c8636507816f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4252 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 jVwS2Y#8CT%qdSK=L$rQwZ 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.png deleted file mode 100644 index de3c8a65b4b8014a8a85ac3c370f072c21005d06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2788 zcmaJ?=RX??8%=`P+FC8CQlnZfT9iuExKgu?y-Mt@D78tYXo*pqOROSRjTkjTjJ7vi zL}Rp8gSK{}`Vynp$m=h-AI@{mr*od)`S3g#GlT&zmnati0N^z;gj<|*^f??jz~{5K zE-L~6V3qdO(=#*D(~~d@3G(uN;t2rUyY$j}DQLk;Pzw`eQ6;P`VP}w(@^`bfr9(GF zw2=fh%E4_L3*$Ct<)l}j>Xj`(0wfyL~|L>^AlEyl0-Dv@S-`V$Fk%)D2{@bRKPttigHNv^2 zk5VSvrcGF;-))M>JDRMNSMvh*vX78+*Qm3mk z%a!4rZ`Oejf}~egTVu9s$fs{g8Nr=*m=_eWVGKGl!S1*i*X`bQ0kbH7VAY4wo_WW( z`pX3G+}v&C8pn2&@$Y0TC{o;cQm6nNp z8QNdNQuk)Uy!qRzE~9sBj@oD4H?nGnEq#|=mj{he^@Yww!8U7&)X}!bg<~M843GXA z@(P+At=-<(TgyhCgsQ7l2=AKM`Uf`E>CQJ5*_(5pDi^|>GKOyj^yIzI6(8jzguf9P z6*eYKY~F}#^osVrG(XGMQ+jzmvy3`P4+UR|n$_-wDy@O9E+D5Z+&U@;3^w3!DTJ_s z+vhrCSe03+a_&c>zM7_t@^IqI52LPkBuyvzpHQPTGJXstrnO!sDpZ)`U_;GM`~PXN z)3%%go`}1((QiY%1*-7svsgNZ$slx)kBuuN04gLmg}S-F*J~PPB@9KF?VjkMZYGz!byMy2<8%c*h@7uU!n-CS{fyXl0UtPl0_+O@6;%d5F3y(g`j5WHZw^R=9s72+>C=K-1L zRE&5fl&j6}(YqLh|FK?Cy&wZF0nd=E{!V-wDr~<{mQ!t^HcXmjNY#Wp7O&=~L_$kb zWDPMpsiq%?zN>&bOM8!;j&9(qS@zFz1a3p2%K?8plo?j}UIGoadBETb#Zt(~=inv2 z3Zu8-U(`l~Z0DNmn{RQ(j&vy_KN}g} zNc5rgCs{a5TwRpeq%I0`mShS~c;phQKjORP4D*)zq&g=`mz3}KMSFus$ibsO6yhp;}V z^=H)1n3AI6_{-1YFQm41+!&c0tQ-0yT{Ish9bTRlsISkyp)W}>RF|q`36;9!Q-#f% z01~n|R42*98vv>ytLUbeM<_Z_8k8QYq72nh=YOG35D^h8hhTK1sA*~cWfR?g=`Y*S zj9j;ivK;I3#|2jb%)*1_JuI`o^0EGX`!sZHM`%)L7OTt0?&?M`g)ykJlg-Rx{MBv{ zZTG$?>3%q+o!QJe(%l^Z)sibI%B4!h^(5Xc`RwjgNxUYmkPNF@kn!$d2Mjq^?cqL2 z7mNmsz83Y3@I4ft44zb(_QJMW*#7V zacMhWJNVqOg!{-ciHAK^{xWEbQqj3_^pOR@YF_D1EwS|6m6SVyW|6}-7T~UWY?&3j z`)$KH%#-MK{q0T;`sp83O=MZct3GL@qK5xe2dqaUB8TyM#eXWA{M&ulC&7*IT=y~O zZcu%jeYExNyO0Gnka_E!)$9^k;~rdkc8yoJ<+B?q$e?Ve0?@9irl%=&F|wrLpgPlA z-Raf}&AI>?u7i;Hkq-@nC?Edw_0NFZVY>bB6TIW0{%@T%AlI)C*&Mm|!c>lUwv2wy z7@{CbrSawkccW4nMew-i1zlwwD_#o3opGDTA2`7h+wvr1mPgAdNW0z{nV)hzzxiY> zl{@^qhqk}!n#6IJ)xXR$oRZ%2v+G2K%@>%q)MZU+sywi;VPB)0iEp;reaGt2iluvB zwBtLVn_Js>_KoL7#c8eEZhCK)Gl*~qpW!j?P^L*99Bxz&!PjBup9oj4e;GApciHM8YbL~*hb(=eJ)2=@ zq5PMM7B{q=JZ?MeYq3@b?d2VF#E;#@T^Z%w?zRNAAK!?$x3>XlVlyeDr`c_YexK3n zlt27EV6u7&$ei1E7grR^M@AFml9*;A)4X;Wv3>Y1grv(?fo4){z%3S!GEr0uqj80p z^z~bVAO$`E)UZ73nbepxw!DWzvn)-dv-GpIa=%6ZgT!ze{(NDY$zmMeLJc+@+ z(pl9;m_hmD)%{Npbk5Dl&7mf(oxvz@d`3u38>!(F?ek;kBbAGVQL%6TUSCLg@i5`M ze(bCS{{Xkl7y6V;(9;zJxxCw(Xknb7*{F*CP|g5AmVX>;x56py)A;6WW(vIHU@&~H z2HLOdHotP{`kY5Dg36nWS_=_B-r}*bk@Eq$&0<$~ay1)2A$}~jqspNkYBXGP9z>tj z&cOI?bx`@w{3D~xwgPuQ`q&Gy6|?%|Opzlu9j^$INvOuWGSOek?){m->lo;}m_MEg z>WFudkJ<`{Xhh4cEi`z`1lDPCoG&?bBrE4C>PEQ%ChY=66vTflS2 zXk))c5*QlBMQzemwsXFNK2i2{+0Hg@TF#;5-sGOI_zA=JcBM6i~%c^V8)UgGt&XfR3 zQXhJ*0tw3H-9K4396jXZFHrJ;DK^Nh+#=^nPS kxmGUEQba@icf?81S5{B;!0}+)^EU)AdVqj8{pk|_e?~%C+5i9m diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gif.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gif.jpg deleted file mode 100644 index 6559809288678036c0c7cc216199e4cdbd6fc083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3881 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 F{eMZB{8#`0 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gz.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gz.jpg deleted file mode 100644 index bd30b1cd805761cbfc094e3aa8c5a34dd25370a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3495 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/html.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/html.jpg deleted file mode 100644 index 9d7c99aafc9b354d8327116f941f9581577112e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3724 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 F{|B^Su}A;_ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/iso.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/iso.jpg deleted file mode 100644 index afb20c1e891bbc30b20d06e7d36cfeeae448c157..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3626 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 J$+zaZ{{f_ii^Ko` diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpeg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpeg.jpg deleted file mode 100644 index 2df9299b4b7e5ff0715c469b644fb4456a8c0b2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3856 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 F{eMZB{8#`0 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/log.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/log.jpg deleted file mode 100644 index 5a0a8520f3f1f7aa2eb313d210706664b60e460d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3821 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 aZwQ}itIbgllkb}#F8p*;#KFP#*8c(j2@L)K diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mov.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mov.jpg deleted file mode 100644 index 0aa7a8a949ec95592f1c604b8cc37005a28e7296..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3459 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 Jd>&zI{U44HF{}Up diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpg.jpg deleted file mode 100644 index 6ca376a0be7538768131459348391631223438ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3466 zcmb7G2~<;O7QQdHWBOyE_H3^UeM5JR~T2!>4 zOlM9VPZ3mFhpIdR(ehri@#)wkqS`ZnfhSt0!~+mj&>6^z_fk|GwP&{rCUw z{g)TZ1u_X+(jD#HINo9HUf~|Vd>Pd1N-$@>`C{*CTAVQx zpMfOz0%MZWhPP_e@fnEy(SD-H97F8m5Z@_TJSQ4)5P)DvzA<5rl`nX!yg)S%u@~C& zwB}@$&0cQEO-o0NV+9S13ulrzgmXe;ip5&OSj1NfxMZ@%sE39;E-oH%Fk;_=k|bMv zI>l6)LF{~-@`Bhj#2AM*zN=1AAofAL##pE%bD?Isfzu_DxiCI`tjMgeX`p)zx->Eu z=F3Pq6Q3i-qf)*X5`Ey{6;dfnCVP769Fs}#k|eT zVB*jk!9+R~CV(+M6GtEgH|-(P~+3@A(h}N(;lb6%HV#h z{Ji|G{H(lQzFmHM&>Z~{2UUr#r4P_w(g*27^l4z}BXm1`m_A1Dq1zlWU%d9#D2}z~ z^CdQtEm;Nod;@FEfleAD9U=9T#z{v@1EjMYELQ3*4V5NIUq{af$GYkI{eyDRLKfD_ zUey=RMNWVg=AaTSEJ3ajt4brB7R zoC+}g9^P49{kHif0AH8@yeIeD0`X29RtL~JRa0UtwZ_92Zzq5$e^MC#n{ti8yXlI> z@(AxMr%eFQHd-vdHCQaqwqg9s07rC|tMGn&nKmCFHI>}@AO;~d1TSiQ84zuh4+wb- zkV1`cU?ml3;|KsMwZPao~gjXussv~ORH0IOSLm5Ks)okR`GzPq!;I{wG@h8yWx0 z?rq!-$+?hi7Zj^kmUYyqyPJ$v2gB!1*I#*0(YWi^ul5XS@w)zK-ODVG3nNPHwSr#mZI9 z-`VmMMF}1&@?zRX{+xU5&`s9)>4e>9{SJNKSNF~;o&OImeKY%-YmQb2ecBkK-?61C zv{I8SjWoCo3%*>iK5|_2E~@3&-&#KO{;R&lIO2@w&~HBrd(_*!tSR%}@ukb;r#g>) zbV^ry@6VItnSX6*(tmru`s<*gP43?Ax0}z8j`>f4o%(U-&UN9luLo`@o-dmIl}mNK zX}@`1Tzb&aTveHV|Mm1wZyf9h+;Zsd+#dP0WsOz3Z05Hwnu305yWZVhGhVyoKxgRb zqo*&|85$1A;yOAzzEL&YdhJNmA^ptkM6cK|q2`mZElW?vs~T(P_mQIed*J#qSS80M zpky#6G+Hg6y-|@Z1N$zB8uPf}$@(>4c8@tZd0f`^&o(tWKc2AR@YwW!X1tS` zvE1Ezr(Ep*)A-qG6;-ZYAM6cybWTz3u8r$lJ-td5mX+A|WF&k0p<>0~OQ%t-m9;y+ z30Qk%M^$vdrh@C|WKnKO>v|L$gg4$wU9i9KPh8fCAI*~0QOe~T4Da7oC2!xX{<+(; zqi)!YjQigmMnU|!;O`ClhPJOb`7H+0liSADUb1<}?(%rm?&1l4e5vrnJXfmOYB{SY zUXio0-cc!!rx_n56!-XdRc_7-|I6pD?%l~bi=CqM;$cBvr9&SKeS4juoqE&LNxWuT ze2xBOeMobwMCBap9(1)>QaeFBuX;kyANEND8byJUY;mRq^u7&u+xM+)yK(Z@#Q%k| zA9Q>iYMN5#n~>?&@<~!q&Dsx-D0gO$8lOVH!A9-!d)Mz)Z&O#QSlC`tHe~9mjjgR+ mk@ch6MsK<4vo6)SA?Jrv)jrLYLF0vO`=12-xNo`T;{O5u+AA#p diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odb.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odb.jpg deleted file mode 100644 index a59fe46f58912d099e6ec58211ef05b7eda3669d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3655 zcmb7G3s{q78-Bih-wp__4V64IP?P{|pe9IyFvj^X5EL|pF}}fMFxbW+LWQF20Fj5^ z@|dW3NYl{YF40sZlJZhh6Usn-LHj+_PiaCW;{NB|#(*xbyn1)-{q8-_{XXygJn!L~ z>3h?45JiSYgaSoT5RM-(b@Go!$YiOCgt*X%XgN9n_~#(+JH1$(8+kQby-L<2U$CC{O)rv)$)z_-($>>tYh%P;#3)}R8Q1ZdY~7*sik zivhS=Ri54mz`Kcd-y&lkV*YrHh z`XGDeAZ*cq42%=T=CXQ?NuhxK2%_pO3bAB+bmxm%epqDuuYG)t7sddz;&g{Z($;z<6#ew+%m6 zAqZDMYgUwlsx;=6FxYt0hU9P>nMP1z-+??GYVB7#WJT4v?~NVskV>$tVtZoYRj&c7 z^gHSQq|MSA=}zfSL*^KWIHXGSTKWimg07>F(dR%y*VCuzQ}h}7Abs2x^T}&(iDFxO zbH2nzvL&m~Ki}Y5v!E3Q3&#m32}6X=LN{TwjU^F2EA$qI3#X!IoNe8-1O6eoXdne^ z)nC;o&qYpv29i*T28xiY$EuPF=fcYvb?`Z{DrF`z-b}<_cC9bj%l#^Na$X282qZiY zo*&Pf7fEpc$>U8$pC9&en|jO1u`z~Zzz$+zRcvvlnRgx8t7LQ`>eixe*2os)y8}R` z%X?X`$;>iJe5BIZk|2DQv66^f)pRe3Qmd7iT?UDsHL&_ZHe))F_aGSu@LPiU{YE)` zGhj2u0L<;eJL}?rZBYThegnX>GY4$$cqfkf5a8$wsseqXB_6(b&jT3LGknayDTiRZ zo7zpL-|)WTuL0;=Z8G(4H<|i&VEi_KdabDg%H+iwH9$-Zx%EK+T*?tIYJ3?GZPZxc znlV5mHO__;D0eG|1F%X1jFm&~eA38Wi=(Yi&NhyXQL>G;;l+e%Y6Tf^NTbX>heOjm zhQ`L{av7e0FA$Kg-LT>Ic6JWK1OoeK>>Y*+vDw*+#Lo!D1d||SIF8~m3{Pk$up^9r z)=Ui`7QkXCp($73h$&i3nHpgnCc>e~KN?%(@hOJO5ukJA5WAUR`T-nh93rAcSc9@M z+b9D33uFAQAKO1VR z-!HAIztk7i@#y!~+iE_4)~3$edrq`&x}{#-y~U;cqu=h7&Fk2_?A}iiVJH1Pe^9$z zKeD&J@T}ju^TWJ9zt_FA`i*6&AP@2Rr6usx7UPXW&asa)yW79ZIr!Oww`L@7K4XI2 zq#)wKg(4yqW?5LkKuY#E1WrG}R|FKzp?LN@z9mVZI5Y!duA_^qcToI@k&_aX`Q@u? zYA;EBWQzIelY`ST^u|NhQ}rSw+0wJqsBva;+#ZOd}c=e~-*S(W{A zL+SbFJfhj>d+IVDUGgRga;sdjvuWy$BV9dJ>-HRtn|sLzz?}r zuw2xY=zm?kiwFGX^^!Etvv1k2uaHLUO%|(>hj<1$MoIF zs;^wS((a^Z(_%3*W&-yUdeB8n0L$&xQhQp#m3jtzV~d3s&Os4 z*7>HF?`iS$$l|WXlM4S0o0~q|Qd;d>9#a=z7fs35^;UlI@bGKtvKPlTwYhH$`m(#W zZS)V!#ZO(oPF?)P?Bh-ao~0!ZQZWbf2{hkOcnAkKk;MFq{Kv0w$J^1;{$^j2jVpTE z#x)b%M0n~chGIDV=aT}li+8*-KS(;SyhgGb>uW2o=&{58aDOUrN?V-!o_`(QeYl>m{e6P|GyeIFE9X?|J*OOw8mVYm|8dRLC})@uerv>}2ad}oQD@HoXIq*- rwLZ~l&CO?Ku9Ev?E*e$+itwQ;>~&62JaFR$>FWOhLBf!( diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odf.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odf.jpg deleted file mode 100644 index 3550401b664926d0813207eccefcc3511e575829..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3664 zcmb7G30PBC7Cw3JWkDbUgNoo1aHFmPEQ<<~075`w2%soB7(#$ZNJ18hlyOj}BQBuS z+SM7^+NxN$QL9kvGSwtSDk?)JpD|4`Jq8^B+>HvoUPB20^0g*|JXS17n>|Os zZ3PMjf-`u7vqEXqi)6CtfP-+!z4z$22$%`r!njxad$WJ{%Q;JBR06PgXxC*KmHCK^ z0N5I(-e3aY+(LWk8zwzs?jXdT1{8=`NN|n~M-!ZB!)aDdiaZKAL@QsJtH?rJf_Q9Z z4|`4zY}0@Y%oD59stjtSfb>FU&}FMNDyzeG`4e{!<{!a)jTvjUjv;t;G3F&F;N73p zo@=jn*(` zvO|HahfV?Hz&%uI%ToYmoSEpD3F0;0W`9SFV2L3^t^8*7V^q^!rLNnLc^nm^W?jz? zfDt>;Ro%FreL7b1g_px4XlC}#z2I`J1ZMnMf7!R#?d)c}wzAv0>$J$%#B{otm zS%t3odiGic8orqC!ym?v<`3nM;7@n31pEQ~0Dc^Q6ncCd>!#`U_o_t=v$0oQU48Xj za`3y6ebZCDDbbTZ6h)CRGu>I{>0|`h^B{ zPOeE1C=`YWMEELG2_#zO_^|?oMkBDgi~@tos4^6)vc>~>50W^5Cvxlijn)5~Zks6) zAp8-YS!cU#bIbr+i~s{BcH8{%OzgJ-U~jO}Y$&wl!x!(@0LJW~K zJg>NK19VneEH7#-md;wt-v)3{W4QsPF-7WZfW$;{>H`nhEDt=W@nt}?vAlt8#Q^av z9|xAR{OueHV3`^iJBOV4WRSBKqwRO9igGZDt7r#KCsfO2hyscXmi0y@&n49MZ2>sN5BUQp=k1t#xd9&7Q>}^==AJmw-PM>0~Z=Y+-NuKK~)R?M9lRP>WE;^$^X+d3mUY#ioAs5(RPjv0}xB*Q)+Hd?1yyu{BfV8U6$NQvac2 zAM9)1J>cZmt_@?$53D)$EcoJ2Kd4$mu1()Oeo|8AF7~SJ@3pP`;8dM&^0Mtkeg~7q zeN{Wh6#Q~>&2tYwg|0C#bi$R2)%!Ed#RHr2^R_s@xi!9K=A?v`VT*pzk#@NEY!eYF zv&zEuO=U&>0fFiwgt-BWrYOd#57%BJi=r8DXM6m`GoadUSdv0nP`Tq=KVM;>NGy{t zz7aJ)(_l0mvRBWUO1)g=U2$PsL!s}kJFma5I2n0wQ2dO)%}dLxAMCN@#l}5P@>I$N zGuMBzwMio7r|hhqnvib8>zjGW7O$-^ynR-+UNj5I)+qH{36W1{JD==#aiM<@CwSfey3z4I@zq;>t3KEFIaU%T`56W0V&Jk1|YT38W$?&U~nbmy<` z*nWRE+&;jtX?E8-vB2FoU~#o5Nl{QK-0@ftDVu-pM%PxF>f7lPdVEE@NSkrTM_TtH zbJngix1+s-YQH_U=AC~oN?aQ>`KO(aLy`*Oy?$Q(JvHd|=Z!_79v2ob|7>2|E#pU@ zUS4(GD`c2w$;z^bsr<6^$@i}uzv$WL$M4IM`TO?Y*&5isp~Sq2d+oaVKQqI9rFqfM zdCtqY}4Igu)W9#mYicP!A=T;2( z*!L*yZ2{+DL(b~T(xi#XO*tOyCr{U>7c9DqRahTH>p_LjV$UHUf8wlzb&4q{MMMaH zutCWVcKfp(Y$c4q9G0ypYT*vjVn>7BEZ};-kGo*Um!1Q?k7?&W zc&%l*c~N@pjoh@)1D=XA!+ay+noK^iXPf*514p{Xha5P3s3E7~)|CEBmIvv##8GL9 zUY}N-AN<^XCw00~rhZ)dZsO8^Y;Gw_@g9El-o5p*!ATwK;uJ5_-(Of4^X|GMQ)*WH z{kX>+(G|aWUetrW=4FwzS>k$lY3rpuaaSe#n?;XrKbtIGm^=8i%b9|kE9ygXhQAkZ zb*cYSkGdk`%TB){*OgMEZ$(=kTlnehfohlUGR$jz?gbY$o?7vGqp$QxU@W{#HHp;| x&!0FQcD4D#x6`ZlLJfPPW_!bT3K?ZmHjV_r+98>u-Ugk6!=) diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odg.jpg deleted file mode 100644 index a59fe46f58912d099e6ec58211ef05b7eda3669d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3655 zcmb7G3s{q78-Bih-wp__4V64IP?P{|pe9IyFvj^X5EL|pF}}fMFxbW+LWQF20Fj5^ z@|dW3NYl{YF40sZlJZhh6Usn-LHj+_PiaCW;{NB|#(*xbyn1)-{q8-_{XXygJn!L~ z>3h?45JiSYgaSoT5RM-(b@Go!$YiOCgt*X%XgN9n_~#(+JH1$(8+kQby-L<2U$CC{O)rv)$)z_-($>>tYh%P;#3)}R8Q1ZdY~7*sik zivhS=Ri54mz`Kcd-y&lkV*YrHh z`XGDeAZ*cq42%=T=CXQ?NuhxK2%_pO3bAB+bmxm%epqDuuYG)t7sddz;&g{Z($;z<6#ew+%m6 zAqZDMYgUwlsx;=6FxYt0hU9P>nMP1z-+??GYVB7#WJT4v?~NVskV>$tVtZoYRj&c7 z^gHSQq|MSA=}zfSL*^KWIHXGSTKWimg07>F(dR%y*VCuzQ}h}7Abs2x^T}&(iDFxO zbH2nzvL&m~Ki}Y5v!E3Q3&#m32}6X=LN{TwjU^F2EA$qI3#X!IoNe8-1O6eoXdne^ z)nC;o&qYpv29i*T28xiY$EuPF=fcYvb?`Z{DrF`z-b}<_cC9bj%l#^Na$X282qZiY zo*&Pf7fEpc$>U8$pC9&en|jO1u`z~Zzz$+zRcvvlnRgx8t7LQ`>eixe*2os)y8}R` z%X?X`$;>iJe5BIZk|2DQv66^f)pRe3Qmd7iT?UDsHL&_ZHe))F_aGSu@LPiU{YE)` zGhj2u0L<;eJL}?rZBYThegnX>GY4$$cqfkf5a8$wsseqXB_6(b&jT3LGknayDTiRZ zo7zpL-|)WTuL0;=Z8G(4H<|i&VEi_KdabDg%H+iwH9$-Zx%EK+T*?tIYJ3?GZPZxc znlV5mHO__;D0eG|1F%X1jFm&~eA38Wi=(Yi&NhyXQL>G;;l+e%Y6Tf^NTbX>heOjm zhQ`L{av7e0FA$Kg-LT>Ic6JWK1OoeK>>Y*+vDw*+#Lo!D1d||SIF8~m3{Pk$up^9r z)=Ui`7QkXCp($73h$&i3nHpgnCc>e~KN?%(@hOJO5ukJA5WAUR`T-nh93rAcSc9@M z+b9D33uFAQAKO1VR z-!HAIztk7i@#y!~+iE_4)~3$edrq`&x}{#-y~U;cqu=h7&Fk2_?A}iiVJH1Pe^9$z zKeD&J@T}ju^TWJ9zt_FA`i*6&AP@2Rr6usx7UPXW&asa)yW79ZIr!Oww`L@7K4XI2 zq#)wKg(4yqW?5LkKuY#E1WrG}R|FKzp?LN@z9mVZI5Y!duA_^qcToI@k&_aX`Q@u? zYA;EBWQzIelY`ST^u|NhQ}rSw+0wJqsBva;+#ZOd}c=e~-*S(W{A zL+SbFJfhj>d+IVDUGgRga;sdjvuWy$BV9dJ>-HRtn|sLzz?}r zuw2xY=zm?kiwFGX^^!Etvv1k2uaHLUO%|(>hj<1$MoIF zs;^wS((a^Z(_%3*W&-yUdeB8n0L$&xQhQp#m3jtzV~d3s&Os4 z*7>HF?`iS$$l|WXlM4S0o0~q|Qd;d>9#a=z7fs35^;UlI@bGKtvKPlTwYhH$`m(#W zZS)V!#ZO(oPF?)P?Bh-ao~0!ZQZWbf2{hkOcnAkKk;MFq{Kv0w$J^1;{$^j2jVpTE z#x)b%M0n~chGIDV=aT}li+8*-KS(;SyhgGb>uW2o=&{58aDOUrN?V-!o_`(QeYl>m{e6P|GyeIFE9X?|J*OOw8mVYm|8dRLC})@uerv>}2ad}oQD@HoXIq*- rwLZ~l&CO?Ku9Ev?E*e$+itwQ;>~&62JaFR$>FWOhLBf!( diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odp.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odp.jpg deleted file mode 100644 index 3550401b664926d0813207eccefcc3511e575829..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3664 zcmb7G30PBC7Cw3JWkDbUgNoo1aHFmPEQ<<~075`w2%soB7(#$ZNJ18hlyOj}BQBuS z+SM7^+NxN$QL9kvGSwtSDk?)JpD|4`Jq8^B+>HvoUPB20^0g*|JXS17n>|Os zZ3PMjf-`u7vqEXqi)6CtfP-+!z4z$22$%`r!njxad$WJ{%Q;JBR06PgXxC*KmHCK^ z0N5I(-e3aY+(LWk8zwzs?jXdT1{8=`NN|n~M-!ZB!)aDdiaZKAL@QsJtH?rJf_Q9Z z4|`4zY}0@Y%oD59stjtSfb>FU&}FMNDyzeG`4e{!<{!a)jTvjUjv;t;G3F&F;N73p zo@=jn*(` zvO|HahfV?Hz&%uI%ToYmoSEpD3F0;0W`9SFV2L3^t^8*7V^q^!rLNnLc^nm^W?jz? zfDt>;Ro%FreL7b1g_px4XlC}#z2I`J1ZMnMf7!R#?d)c}wzAv0>$J$%#B{otm zS%t3odiGic8orqC!ym?v<`3nM;7@n31pEQ~0Dc^Q6ncCd>!#`U_o_t=v$0oQU48Xj za`3y6ebZCDDbbTZ6h)CRGu>I{>0|`h^B{ zPOeE1C=`YWMEELG2_#zO_^|?oMkBDgi~@tos4^6)vc>~>50W^5Cvxlijn)5~Zks6) zAp8-YS!cU#bIbr+i~s{BcH8{%OzgJ-U~jO}Y$&wl!x!(@0LJW~K zJg>NK19VneEH7#-md;wt-v)3{W4QsPF-7WZfW$;{>H`nhEDt=W@nt}?vAlt8#Q^av z9|xAR{OueHV3`^iJBOV4WRSBKqwRO9igGZDt7r#KCsfO2hyscXmi0y@&n49MZ2>sN5BUQp=k1t#xd9&7Q>}^==AJmw-PM>0~Z=Y+-NuKK~)R?M9lRP>WE;^$^X+d3mUY#ioAs5(RPjv0}xB*Q)+Hd?1yyu{BfV8U6$NQvac2 zAM9)1J>cZmt_@?$53D)$EcoJ2Kd4$mu1()Oeo|8AF7~SJ@3pP`;8dM&^0Mtkeg~7q zeN{Wh6#Q~>&2tYwg|0C#bi$R2)%!Ed#RHr2^R_s@xi!9K=A?v`VT*pzk#@NEY!eYF zv&zEuO=U&>0fFiwgt-BWrYOd#57%BJi=r8DXM6m`GoadUSdv0nP`Tq=KVM;>NGy{t zz7aJ)(_l0mvRBWUO1)g=U2$PsL!s}kJFma5I2n0wQ2dO)%}dLxAMCN@#l}5P@>I$N zGuMBzwMio7r|hhqnvib8>zjGW7O$-^ynR-+UNj5I)+qH{36W1{JD==#aiM<@CwSfey3z4I@zq;>t3KEFIaU%T`56W0V&Jk1|YT38W$?&U~nbmy<` z*nWRE+&;jtX?E8-vB2FoU~#o5Nl{QK-0@ftDVu-pM%PxF>f7lPdVEE@NSkrTM_TtH zbJngix1+s-YQH_U=AC~oN?aQ>`KO(aLy`*Oy?$Q(JvHd|=Z!_79v2ob|7>2|E#pU@ zUS4(GD`c2w$;z^bsr<6^$@i}uzv$WL$M4IM`TO?Y*&5isp~Sq2d+oaVKQqI9rFqfM zdCtqY}4Igu)W9#mYicP!A=T;2( z*!L*yZ2{+DL(b~T(xi#XO*tOyCr{U>7c9DqRahTH>p_LjV$UHUf8wlzb&4q{MMMaH zutCWVcKfp(Y$c4q9G0ypYT*vjVn>7BEZ};-kGo*Um!1Q?k7?&W zc&%l*c~N@pjoh@)1D=XA!+ay+noK^iXPf*514p{Xha5P3s3E7~)|CEBmIvv##8GL9 zUY}N-AN<^XCw00~rhZ)dZsO8^Y;Gw_@g9El-o5p*!ATwK;uJ5_-(Of4^X|GMQ)*WH z{kX>+(G|aWUetrW=4FwzS>k$lY3rpuaaSe#n?;XrKbtIGm^=8i%b9|kE9ygXhQAkZ zb*cYSkGdk`%TB){*OgMEZ$(=kTlnehfohlUGR$jz?gbY$o?7vGqp$QxU@W{#HHp;| x&!0FQcD4D#x6`ZlLJfPPW_!bT3K?ZmHjV_r+98>u-Ugk6!=) diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ods.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ods.jpg deleted file mode 100644 index a59fe46f58912d099e6ec58211ef05b7eda3669d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3655 zcmb7G3s{q78-Bih-wp__4V64IP?P{|pe9IyFvj^X5EL|pF}}fMFxbW+LWQF20Fj5^ z@|dW3NYl{YF40sZlJZhh6Usn-LHj+_PiaCW;{NB|#(*xbyn1)-{q8-_{XXygJn!L~ z>3h?45JiSYgaSoT5RM-(b@Go!$YiOCgt*X%XgN9n_~#(+JH1$(8+kQby-L<2U$CC{O)rv)$)z_-($>>tYh%P;#3)}R8Q1ZdY~7*sik zivhS=Ri54mz`Kcd-y&lkV*YrHh z`XGDeAZ*cq42%=T=CXQ?NuhxK2%_pO3bAB+bmxm%epqDuuYG)t7sddz;&g{Z($;z<6#ew+%m6 zAqZDMYgUwlsx;=6FxYt0hU9P>nMP1z-+??GYVB7#WJT4v?~NVskV>$tVtZoYRj&c7 z^gHSQq|MSA=}zfSL*^KWIHXGSTKWimg07>F(dR%y*VCuzQ}h}7Abs2x^T}&(iDFxO zbH2nzvL&m~Ki}Y5v!E3Q3&#m32}6X=LN{TwjU^F2EA$qI3#X!IoNe8-1O6eoXdne^ z)nC;o&qYpv29i*T28xiY$EuPF=fcYvb?`Z{DrF`z-b}<_cC9bj%l#^Na$X282qZiY zo*&Pf7fEpc$>U8$pC9&en|jO1u`z~Zzz$+zRcvvlnRgx8t7LQ`>eixe*2os)y8}R` z%X?X`$;>iJe5BIZk|2DQv66^f)pRe3Qmd7iT?UDsHL&_ZHe))F_aGSu@LPiU{YE)` zGhj2u0L<;eJL}?rZBYThegnX>GY4$$cqfkf5a8$wsseqXB_6(b&jT3LGknayDTiRZ zo7zpL-|)WTuL0;=Z8G(4H<|i&VEi_KdabDg%H+iwH9$-Zx%EK+T*?tIYJ3?GZPZxc znlV5mHO__;D0eG|1F%X1jFm&~eA38Wi=(Yi&NhyXQL>G;;l+e%Y6Tf^NTbX>heOjm zhQ`L{av7e0FA$Kg-LT>Ic6JWK1OoeK>>Y*+vDw*+#Lo!D1d||SIF8~m3{Pk$up^9r z)=Ui`7QkXCp($73h$&i3nHpgnCc>e~KN?%(@hOJO5ukJA5WAUR`T-nh93rAcSc9@M z+b9D33uFAQAKO1VR z-!HAIztk7i@#y!~+iE_4)~3$edrq`&x}{#-y~U;cqu=h7&Fk2_?A}iiVJH1Pe^9$z zKeD&J@T}ju^TWJ9zt_FA`i*6&AP@2Rr6usx7UPXW&asa)yW79ZIr!Oww`L@7K4XI2 zq#)wKg(4yqW?5LkKuY#E1WrG}R|FKzp?LN@z9mVZI5Y!duA_^qcToI@k&_aX`Q@u? zYA;EBWQzIelY`ST^u|NhQ}rSw+0wJqsBva;+#ZOd}c=e~-*S(W{A zL+SbFJfhj>d+IVDUGgRga;sdjvuWy$BV9dJ>-HRtn|sLzz?}r zuw2xY=zm?kiwFGX^^!Etvv1k2uaHLUO%|(>hj<1$MoIF zs;^wS((a^Z(_%3*W&-yUdeB8n0L$&xQhQp#m3jtzV~d3s&Os4 z*7>HF?`iS$$l|WXlM4S0o0~q|Qd;d>9#a=z7fs35^;UlI@bGKtvKPlTwYhH$`m(#W zZS)V!#ZO(oPF?)P?Bh-ao~0!ZQZWbf2{hkOcnAkKk;MFq{Kv0w$J^1;{$^j2jVpTE z#x)b%M0n~chGIDV=aT}li+8*-KS(;SyhgGb>uW2o=&{58aDOUrN?V-!o_`(QeYl>m{e6P|GyeIFE9X?|J*OOw8mVYm|8dRLC})@uerv>}2ad}oQD@HoXIq*- rwLZ~l&CO?Ku9Ev?E*e$+itwQ;>~&62JaFR$>FWOhLBf!( diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odt.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odt.jpg deleted file mode 100644 index a59fe46f58912d099e6ec58211ef05b7eda3669d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3655 zcmb7G3s{q78-Bih-wp__4V64IP?P{|pe9IyFvj^X5EL|pF}}fMFxbW+LWQF20Fj5^ z@|dW3NYl{YF40sZlJZhh6Usn-LHj+_PiaCW;{NB|#(*xbyn1)-{q8-_{XXygJn!L~ z>3h?45JiSYgaSoT5RM-(b@Go!$YiOCgt*X%XgN9n_~#(+JH1$(8+kQby-L<2U$CC{O)rv)$)z_-($>>tYh%P;#3)}R8Q1ZdY~7*sik zivhS=Ri54mz`Kcd-y&lkV*YrHh z`XGDeAZ*cq42%=T=CXQ?NuhxK2%_pO3bAB+bmxm%epqDuuYG)t7sddz;&g{Z($;z<6#ew+%m6 zAqZDMYgUwlsx;=6FxYt0hU9P>nMP1z-+??GYVB7#WJT4v?~NVskV>$tVtZoYRj&c7 z^gHSQq|MSA=}zfSL*^KWIHXGSTKWimg07>F(dR%y*VCuzQ}h}7Abs2x^T}&(iDFxO zbH2nzvL&m~Ki}Y5v!E3Q3&#m32}6X=LN{TwjU^F2EA$qI3#X!IoNe8-1O6eoXdne^ z)nC;o&qYpv29i*T28xiY$EuPF=fcYvb?`Z{DrF`z-b}<_cC9bj%l#^Na$X282qZiY zo*&Pf7fEpc$>U8$pC9&en|jO1u`z~Zzz$+zRcvvlnRgx8t7LQ`>eixe*2os)y8}R` z%X?X`$;>iJe5BIZk|2DQv66^f)pRe3Qmd7iT?UDsHL&_ZHe))F_aGSu@LPiU{YE)` zGhj2u0L<;eJL}?rZBYThegnX>GY4$$cqfkf5a8$wsseqXB_6(b&jT3LGknayDTiRZ zo7zpL-|)WTuL0;=Z8G(4H<|i&VEi_KdabDg%H+iwH9$-Zx%EK+T*?tIYJ3?GZPZxc znlV5mHO__;D0eG|1F%X1jFm&~eA38Wi=(Yi&NhyXQL>G;;l+e%Y6Tf^NTbX>heOjm zhQ`L{av7e0FA$Kg-LT>Ic6JWK1OoeK>>Y*+vDw*+#Lo!D1d||SIF8~m3{Pk$up^9r z)=Ui`7QkXCp($73h$&i3nHpgnCc>e~KN?%(@hOJO5ukJA5WAUR`T-nh93rAcSc9@M z+b9D33uFAQAKO1VR z-!HAIztk7i@#y!~+iE_4)~3$edrq`&x}{#-y~U;cqu=h7&Fk2_?A}iiVJH1Pe^9$z zKeD&J@T}ju^TWJ9zt_FA`i*6&AP@2Rr6usx7UPXW&asa)yW79ZIr!Oww`L@7K4XI2 zq#)wKg(4yqW?5LkKuY#E1WrG}R|FKzp?LN@z9mVZI5Y!duA_^qcToI@k&_aX`Q@u? zYA;EBWQzIelY`ST^u|NhQ}rSw+0wJqsBva;+#ZOd}c=e~-*S(W{A zL+SbFJfhj>d+IVDUGgRga;sdjvuWy$BV9dJ>-HRtn|sLzz?}r zuw2xY=zm?kiwFGX^^!Etvv1k2uaHLUO%|(>hj<1$MoIF zs;^wS((a^Z(_%3*W&-yUdeB8n0L$&xQhQp#m3jtzV~d3s&Os4 z*7>HF?`iS$$l|WXlM4S0o0~q|Qd;d>9#a=z7fs35^;UlI@bGKtvKPlTwYhH$`m(#W zZS)V!#ZO(oPF?)P?Bh-ao~0!ZQZWbf2{hkOcnAkKk;MFq{Kv0w$J^1;{$^j2jVpTE z#x)b%M0n~chGIDV=aT}li+8*-KS(;SyhgGb>uW2o=&{58aDOUrN?V-!o_`(QeYl>m{e6P|GyeIFE9X?|J*OOw8mVYm|8dRLC})@uerv>}2ad}oQD@HoXIq*- rwLZ~l&CO?Ku9Ev?E*e$+itwQ;>~&62JaFR$>FWOhLBf!( diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ogg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ogg.jpg deleted file mode 100644 index e93be746443bcc4509c4e74f95f184a6ff9b1add..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3447 zcmb7G2~?9;7QX+I1%a4YaY2RPh6hE$G792C*g?^NxPS~bgdfNdApA)XDP<5nYU`g%@Eu~fKzSXH(wdz>3D2KYuDUPC49bC|6?)wuG@Obph%gOt{-22`8?!E8+ z@5TD7^*YECV-sS5q9};R4_I$X_9jF{y{k!?7Mn071{DC3TCLG&pp^gxg=Rh_E>bx= zEnO*T1RDB-D|mvdR%bG*HJT}agK){S`)I!m=n3GG|LgVL*{}R^&E`xx07{DTqHL3{ z0C6dR$e=UwW&rVRl!wkU8xczeBJRy&fQVHD=h|>I!C5vuTi~RoL?MU7D%0g@vk{jg z9+lNap4$c6Vn7D^iQ@`6UawPMqPT!2*K?a~6gd&Tgjs>67s} zg5;jZ$EVow2Awu$I^v-yKV>vW68Uh%_bmA{)QJ56=w3N|>k1b6cQWyXD?{^m^j4f zhkeKu&LDL|Eb5o7jV84njd&u=q_n_65oF=4gF<)-N=Sh?h{UH6c+}*89tnvVq;3amnpuIZS(7eMPrLEusdT8%0e{d(kyf6Mh;& zjXPivA}YYB^ukV<96bMSIUGZ#8MHXxKwc5X+8JrL9nC3R;pxvR-T;oA654hLT?Hj6xhEjuxvyDfSbG zi37!n1b4o9VqesS;T+?L-uC7=7~L}9y0EY+4nO`v*O6W&)+HFX0psS(Tq)ii08vH8 z`Mf?i&#Vkmsm3bRc$IO=ghJiuQA(}BpcGUlCC`~SzJ$vj4dfmqb^wo3g!_%^bKWU4 zCjm^jk7w2er!3t9u)_q@4 z5uR6)j{#n;v|2khS*!aQG@jcRK}F*a{!W($f*xf5K+DGpvKF9#7237NWcJz z)Bp!gp+?v_G{6!)uyzhP^T{A*En3^3^ak3&DBHj|@Ek(5UV|v0$)JRprWr=eGB_k6 z5i6ETq*C&A>EZ6`;^NjrDs}DY>gF!P;o>S+^pq(GCQgVsT8UX!EOU{%5XS#Etj9qi zg*i~hP=kS1P>h1Io`8Xv2s$R&bPh@)mNKl!1+~4&U!Cs5dKKJ|PRkiN7U9Y_-Lx!M zx^t5ub5CnP#>K_z>PoyHU3Tq#5V>npK-tjt@!7r5r1;Y6ViW{o}gJy1-y(7EY+h@+WTZZL_-%IN_o0TPTOJc4K5Y-IS~&u=BkD_%`rBdpI*)FdkE4FtNApd$Iu z3@ep%dZO?b^b#qO-x;h5?CqmY;Y|y^l@ATl%*`rZY0pkPiGJbbW!6_L7!y=oOplhn%l#dXg42GHvM^aSpI|Tpz}-D)WkNP9RIobsvrC0i=}syYJby) zJ>2rl<>mt4vhn8D)b)Ryuhk?*fWEDK=YDaytjTaWZVzd1#~xCk@KLJ*wesWz5i8r~7S|uU z*tw09e4Y>B-Tfo{Drf!SnRXdE(g)R8e!teV_TbO!%h-^J?eqcBkdHn%TyY|Fq~+m+ zFT?M&wU}-_TO-fQm=e>Nw(gSX99_I^W?j?rsFIOCi-LBXKKm?F7x2;6=l*MxF1EF> zx1PBz(}iVNpLN`F|r_MJ)5(_9P0RejBW z?O5B^@8AZ_=@sg4VruRE(*bm`gwM?U)d=Z)HK^K;QWLrh-i0`em8- zvs!N!GuJ(8?q#+2Uwrgl^f)&@wCcza#pa+&KIv&t&+;>QwX`yK_0@Gh7`;PUWDq)R z-+sS@#m`T82%tv94bd9I12TjpW&u>H;#6_NeX3(s zaJOn5aY2+i3atvQYaLXoQfalHiXFGAGdh}{8$y77e)`SLm;3&l`=4|FbMEqDy$~GGii#j20Yea#F8O`iz z&2WPTWMG_VUdJ0XYL3)GY1F4`w7hMgq5H^iGv*zEMgiHO^yJw; zbu&hfL5#liwhVn7i9=Eu7>yX?Fvh>AVwH$HB3^9NCy=>NGqa7?Mw7WPK6BP!R@yZ%_jTIQWG>8?mGCB8 zju?}^JV2!lab|)AXC^u(K=`VT7GH-Cx4`&`Mty1J6I9cbrM_t#<2W)#&HCmQ z025ZAF+0EJbvl>(wTEMbt7c1+uezMeg)twiui&oWzMvZW8o{k5f5A<`E&S9#7_NZU zrYI9tX>2QDa`60GocS*d1#Yx;H0g@O=PaN@dteduJyhSb=n2fb*tm^yc zA}2rt<57tQvXN`Vs*(!pU=~JgeopL4*)D7VtN7Ed4I+EFQH3x{7%2<`PS{%*EDR9F z65M$5ggtRA82c!P`i7I^V6@19Z^pu^IO6!(b{*NP#5)UhYf(3E=5z4f0T7`#%ra`y z(#>3dxqL7ehOaW7Q|Q$GeL0m@%h`rZoRK&2#wHhr3Uu5{ia;P@ouWMTA$;6 zC0YaUcD2>|W}DUec00zu1#ntxt%LbdIhs^}QKQJM4`L8dZg^4S%YbO3I)cE40b(gn z2Tq`T?Hn2)UjwY2L+*Ui$X$!x_9tCLI~cQz7zdt0sMebh0W@ipt*2>*5wZ+6kwCx- z#Uinoe4Sdgc6M@dX(bjryE?nHmSA&omdacuGJ;7E;*MTImK92z#7>0q|21m`$iy%O zW;2vG&@zgVQPyw46BD5s@{h*Rgd&O+Fk&2R+rn-mSbqc;23@3#6l*YlzQc=v!MiUP zs!s`v{oDL{(sip>_la8y<&}2EIaBTFfiHun{vb+Ee)>zTPjsYWT~Nb90)*gXoRkOw zO5o5!vy4DUDMfDWIr(&)Sd4Ng0sXFnWwI{k>5sj9)B(AB){DEf-7J>}egAC9tD@x0 zzUTI4^!r!$K`%`H*Z1gTmx{|$CZ+8!T$FIA{N1_5m#Zo&ep-Ai%(!I2^r=7uMVL>KvYcn=sYg;exZebBKR~MIGX(#WmR2h8& z0;ij|*V%IyhR|;dwlC}az+YRk?3#{R`*@bm#U&<}Ra?I*>sN8eue)=N_u0ceIvw3T zi65UPExEXJSMB4-^EL4U58d49W0@MXf^&V=u0H(gb+4iQmcM%b)rjs)bZ~K{-?75M zs{03cdT6g}&z7#JpD=N}Q%p@jo@agk?cZvWYBGA}yI1{pQ?T2}BR593Og=Q;J<7jynpSn|<}*+=VhT6yJEYzyA^+0H3@ zHU!;LRMq%>+3Lx$(tfcEW{N})N_O7UemeSuc=-nT&91Gcq`rK-?@jdUu@92(L~Ype z#dfdTij>+;hpU6;`hRmZt{{JBATR0O+X{5611K6Wyz9YtsWOOA8nl zw@_ncLFN?@HZxDPdaHbF`IS)R^y0=%6yo*2LI1qsQ5NUx!M1kNE@+*0FXhS7(1lAv z%a>NKFx>upS4`L8Lk>rOcjvD~L)wO);S|d|%<-GuhNh0R~w;+6wf-v;)mRmq*1o2j#bT+ z=dIo<<*=$x9aWXSD>(TsdefDNBhrUSul~+lxwLAWSM|Z6nTrZitHd>*Wz|j3U6cDF_2M@}X(nnwp&%sNXHSO5`sexn zL3DA&Z!7Z(<~bMC>}cyB!n@{_dQaSuJ4dMcv#-V)y%Yj@+bQjJuK263OYFHpg}%s>Mf_-zxDn#WAO9V1AjjQ Rp`iud=_@Y%d}^k(<_|?AdVK%@ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otp.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otp.jpg deleted file mode 100644 index 9cc95b3b177526c90d48d6d26e9ec69912f84cfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3636 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ott.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ott.jpg deleted file mode 100644 index a59fe46f58912d099e6ec58211ef05b7eda3669d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3655 zcmb7G3s{q78-Bih-wp__4V64IP?P{|pe9IyFvj^X5EL|pF}}fMFxbW+LWQF20Fj5^ z@|dW3NYl{YF40sZlJZhh6Usn-LHj+_PiaCW;{NB|#(*xbyn1)-{q8-_{XXygJn!L~ z>3h?45JiSYgaSoT5RM-(b@Go!$YiOCgt*X%XgN9n_~#(+JH1$(8+kQby-L<2U$CC{O)rv)$)z_-($>>tYh%P;#3)}R8Q1ZdY~7*sik zivhS=Ri54mz`Kcd-y&lkV*YrHh z`XGDeAZ*cq42%=T=CXQ?NuhxK2%_pO3bAB+bmxm%epqDuuYG)t7sddz;&g{Z($;z<6#ew+%m6 zAqZDMYgUwlsx;=6FxYt0hU9P>nMP1z-+??GYVB7#WJT4v?~NVskV>$tVtZoYRj&c7 z^gHSQq|MSA=}zfSL*^KWIHXGSTKWimg07>F(dR%y*VCuzQ}h}7Abs2x^T}&(iDFxO zbH2nzvL&m~Ki}Y5v!E3Q3&#m32}6X=LN{TwjU^F2EA$qI3#X!IoNe8-1O6eoXdne^ z)nC;o&qYpv29i*T28xiY$EuPF=fcYvb?`Z{DrF`z-b}<_cC9bj%l#^Na$X282qZiY zo*&Pf7fEpc$>U8$pC9&en|jO1u`z~Zzz$+zRcvvlnRgx8t7LQ`>eixe*2os)y8}R` z%X?X`$;>iJe5BIZk|2DQv66^f)pRe3Qmd7iT?UDsHL&_ZHe))F_aGSu@LPiU{YE)` zGhj2u0L<;eJL}?rZBYThegnX>GY4$$cqfkf5a8$wsseqXB_6(b&jT3LGknayDTiRZ zo7zpL-|)WTuL0;=Z8G(4H<|i&VEi_KdabDg%H+iwH9$-Zx%EK+T*?tIYJ3?GZPZxc znlV5mHO__;D0eG|1F%X1jFm&~eA38Wi=(Yi&NhyXQL>G;;l+e%Y6Tf^NTbX>heOjm zhQ`L{av7e0FA$Kg-LT>Ic6JWK1OoeK>>Y*+vDw*+#Lo!D1d||SIF8~m3{Pk$up^9r z)=Ui`7QkXCp($73h$&i3nHpgnCc>e~KN?%(@hOJO5ukJA5WAUR`T-nh93rAcSc9@M z+b9D33uFAQAKO1VR z-!HAIztk7i@#y!~+iE_4)~3$edrq`&x}{#-y~U;cqu=h7&Fk2_?A}iiVJH1Pe^9$z zKeD&J@T}ju^TWJ9zt_FA`i*6&AP@2Rr6usx7UPXW&asa)yW79ZIr!Oww`L@7K4XI2 zq#)wKg(4yqW?5LkKuY#E1WrG}R|FKzp?LN@z9mVZI5Y!duA_^qcToI@k&_aX`Q@u? zYA;EBWQzIelY`ST^u|NhQ}rSw+0wJqsBva;+#ZOd}c=e~-*S(W{A zL+SbFJfhj>d+IVDUGgRga;sdjvuWy$BV9dJ>-HRtn|sLzz?}r zuw2xY=zm?kiwFGX^^!Etvv1k2uaHLUO%|(>hj<1$MoIF zs;^wS((a^Z(_%3*W&-yUdeB8n0L$&xQhQp#m3jtzV~d3s&Os4 z*7>HF?`iS$$l|WXlM4S0o0~q|Qd;d>9#a=z7fs35^;UlI@bGKtvKPlTwYhH$`m(#W zZS)V!#ZO(oPF?)P?Bh-ao~0!ZQZWbf2{hkOcnAkKk;MFq{Kv0w$J^1;{$^j2jVpTE z#x)b%M0n~chGIDV=aT}li+8*-KS(;SyhgGb>uW2o=&{58aDOUrN?V-!o_`(QeYl>m{e6P|GyeIFE9X?|J*OOw8mVYm|8dRLC})@uerv>}2ad}oQD@HoXIq*- rwLZ~l&CO?Ku9Ev?E*e$+itwQ;>~&62JaFR$>FWOhLBf!( diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pdf.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pdf.jpg deleted file mode 100644 index 4498783816cfaee431e617e7b1d909bb3e938e28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3716 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 GTmAD=iL9C`=4{~ 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 F{eMZB{8#`0 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ppt.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ppt.jpg deleted file mode 100644 index d0d4e281cf58f2844a168b0abe444a2c7f59f98d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4144 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pptx.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pptx.jpg deleted file mode 100644 index 066db3fed0bd9f02ce70c910d9caf2221e81b46e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4249 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/psd.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/psd.jpg deleted file mode 100644 index 37e2f1a9ac20ea88e5e1a2b6c950f8ad293d1c09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3880 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 BQmX&} diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rtf.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rtf.jpg deleted file mode 100644 index abb65ed34e4abdf3001fe55d3e8674889fc09509..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4358 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 NEsco&Lj#&S{|AVu@;Cqh diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/svg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/svg.jpg deleted file mode 100644 index 6559809288678036c0c7cc216199e4cdbd6fc083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3881 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 F{eMZB{8#`0 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tar.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tar.jpg deleted file mode 100644 index e875b26e5dbc0a4696ceaf00cfc8f76e55f66eed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3527 zcmb7G2~?9;7QX+I5VjaFDuQAVRH|r$BFdm3J3){b5I3rX5FijBCSj3bT3oT6qhQ_V zAhDnIj_)#U@c)Z;ydX|30Y&*!$68MGz_s9V%PNC$lmx&lrArh z*o|=t(?jMU#yE^NLmnkX?2LGwHb+M0Le0z`r8uQ5##O&6N>t7@xf?*M>zP#yD)3 zGJ77W8)A-AiaeCmb`s(MNTB4Pgd9l5UIE$A10s+?1O($#16uT?f(q1VQKDCg78PX= znP_`6Pio|t#`H1LjH5fqXq@HE9McSsdO11lFjmY?!LL6X&CX<}vwk3A1KC+@02_){ zKi1!(K-y2I2-4sYDmBGf2Dvyh(UAbbWzM;tmNBB0+NCN*Q)wrv>B};w&yR5|8KdT$ z{uKZnR=}Ly#Qt?US9H?J;t@5o#}lvFohyRach#5E>MZV}Fa&+Bcr_J*O2vw;%{t zKy6f%g{oA>mC#vu69?o_hfF=lv2R0O4r(WiwYKEt;|(@ z^IYTvs9+u{Q9(X(wOCbB;cQrrQTv~hUZt!n>&;4jw`-@9y=+#&4daG#gFwU`&-LSa zbE610pFHk3^!Z^QW>IfCITpr%43zy?SQSg0iN;+=_9_{jhq~3MTd7wT;JX7LBuBGc zt4d4PizbW3(?mh|DpQIi*@{VCBDq>EGP-mktx~7d<|$Jq0eKISaR4u5#`haFw5iXg zj{%tZ4DYPVeYQop00(sd!+iQ|o_Hq?sRTIgtH{;nnd0G#_d5Vx>XgaG-;`Z2-c5H5 zh8K8WS$zu7v(aGa-eWNI?8W%40H@W4HYg4&P^ALI#E@Gbc)+0?@uJ3;0ntV|1ILH~ zq9_*&mQkL)92%fR1#B;e-1(%DyB0_HKIvVwg;BVRvEapoYWN;PfF_MH_B72fT$aIR z#o@4Ao)wQrzScJOw$|2mHawo~AX__oJ~nGxfx{ra1HmK+8IGg4EX(Cv^Q;Nuk2OO* zIPhRG6f)FkpdBd2fig6}2uy?lhWtxoZWL|B;qn+3y~6%>li$z+b_@lyfDvF3o}D&X z|JAU1T_pbfdS-tl)Er3mAC=hBSXo~%{KMVb zoDH!3FEbwu{s+CKMgl`?)ZsTjQLTOY>8k*bYbVeAQ-03ICZX8_7ByGnJW(xGt5DAv z0bm_jE?GcRV>t}X1+kAWB^)|>s?>W{5DMg>Y>Gp_to%A@h*G?vHg~w#~@$-wd3temfR<&+|)05h`@YvG0)=T{S@DKLwb)QwMl{a==s_{wu&~bR^)9Q!1 zA9tsS++W(9oYi>8`NKW)*2aa0G{un8IP@!-QH#_#GnO)t3V92GHWR!BKru9B&9yQ| zqG-ke*uervH?j9*t?r0$^ps_r>fAk~bCZ%+wDl&&4Wxe?l5wnl^>)9DpUAFfwT;d< zz{Qv^zB%LB$koqP{am+mul&aC7gkXp6*nJ<{5ADn#rdzE?=7qlv|MeEOjtRn)j99> z`KF*%&X-OlJ&Nsg-I8%Xz+W7Zu4@=Ot?1~I=iT+4tFW$9pmNw=+uzs zW9QW_yYbm8yTGL<%DaTOoqA4naPQT>ytg(kF0LUS2b}OOh~AX`=iwU8ckWe7F2%$; zNFSDcUg+HxB(8IDTjObd7Yc7-c>Z#ybN~g|U4r{)P|qUuS4+fG)M`#D2Z!W$cRqY~U^1gX|x{yY`Qf z;32?cNHajOcpi<70tYv5QP5n$EcuE~v2@uH^H~TKyk0kBg|I8`LhP6sn@x{ZzRuHs z%J+Zm^|)e7nm~657uNYI=~jJNlSdT>6Z$(s5tqS>%j;2e_8ECxlAo66&!qAIV`=TXTon|&vqH0 z%(J9OxT3uL(6xyrBkyNuliSh~d%881`|qwSZ?2R_z09g_*rZ|u)T0_g7j%lYc@8O# U-tfP)r9q9SR_!b@fZ^8v0j%&`Q~&?~ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tiff.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tiff.jpg deleted file mode 100644 index 6648ebfed9ffb4f5c49a82e59fa7e76aad871928..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3858 zcmb7G3se*55}wU&9z2W*0$Q}Vs0if>2DJ!P3j_!dK|=&$NNzAS>HskVlH?Id3P@ z+!kQLE8qZb;Gj?%^`SCZ3}9op%yVFS{4<~@fOEbt*AHaB@aB-JGAaQG9?Es8Mr9V_ zTmZIKsW+GaIM-1g_^wHhm^%WovjGD{EMjna4-RK=N)Mi6;l#_ski*2vSE?1Mi1QJT zOX(+1?}vM0KnD7WRAs9S8YRutLT1pVX|yVfqNn=@bwB3c!7ObK=4@&1*gG0CXHCba zH

C5GA+b3Z)`q7UD4||6XqrGxD*B@8)DCgd+9+8{9A}!QJ$(X zMaNs^dD$s5W+FygR#m2MI^&1oe6KWyVJ%@4;>&7PG&9E-4+*KN@Cd}?5WA~$qOAT& zsd3>fMsD$wrw*He82ylj424vN*bVVYgHFzjg)x&=Ds3b)7WyZT=uI+f3}jojb_O#R z=1cKaMoW(9lWa4o<8hrbwp4)05O1}m64Nx2Xe&QoueGd2jE$-`wtk4;gxQ1wRG@(iqj zTgDi(u73r(elmP_3Bpcm^yR z*C!R77u^#ziz-FcqB{e|=<_(BN@N*XPwpr8kbB7=fF=)-hslHF5ppNF&*t;xbKm2| zHusi%85xr;GYh@r^{=%Gw0tptIDa%hoIjH9$&azIX#P;XKR=4^g__~EdDHgk2jrrG zx3N~eRekwb%nr~%0!E^NcadwrsxlSMhWF5G|9xVOlyay1spuD0Z6LFjd!yh)aKbsE zKy!RJK^%XMl)=3_kK={9AnYS-(f8~e8)HBQs(vi2ip`I&Wz{ijm9bukacePdl}VM0 zcLzY2PXC@kldd+=6GWoPbSPeBDmpq_={Js6XtlIOWuy%%qsp*QmFfq~J;>Mr{4TfL zZ-ncqKA9;NVA_2=vrhNP5_15y83Be)>XUinndq_wpdmn+V_4YZ4=>)60LHY56D;q9 zqZrSo%VzWMcwTYW0(6&}%}=Y$=I&3?|0RG!T5~HDMC5AH0AgdAQy+N1CY;?- zjc^0D1p`Ql;WjKMysaD-zzPjeRt|IKGmSZG(c1cCRj_P~yb98W=Q33DMF;~H(+Eq? zVv!_=BC&DVY>LC<@_5YO&VG=Cot>jSkLNJh!Eq2Do1KF|IG8VFFyn+VM=K6RarkyT zJBIQ9HFFaPc`z69NMaPQgaj!h%-_Or=4*yzK6Px3ORza4k3yx(0J()gn12CBk^q)~ z6kri9*sKr`bwA5uetRR#w7JMB&wJMMTOUmg0ekBCQuoBg*){SVza>3-o4;n!sjj%c z0)ITUYH9&0pY9r&*fg1Kd?bnZc=LY>AO3aQZt5Wb{}K*PG8bd;768GNi)1Fs(%3*! z1dHS18X%-SxDzJ{hB(XSV^};)f?%_r^T$Nqnt9RFwZ;4EV-a6Vee2?~)~?dJezEowP-@z5emVXIm;g?m0R0 zr_@dhGhTT>c&^+t;x+%H-!!+^=WS1^ne#<+`?il+dj>sfe{ee(^KusUE4d{vnI#9D zi(n$`ZwRbjLJ(F4mjsW?wzF0SUx5-jdH4?z1%w*Q)}0Z=$qmbD>)4|d3l4LfU1-_- zl%w!4yPK@9qpqJQs~3iqOO7p;-8ud~ z-8ATvrSh0m=Zg0DjZsPd&+6ulk6tn5sA%=tXO%~~qRSO&%^TzCqnBTm%2?V;Qr7lI z`v%E_oTMd3sJlfxB{y#MmNns9R-IKW`i=3KBo%-ba8F4r2cz<|GGkD8OmoJIHNf|4^HAWF6g_Z7U zgb+OZ<3a_B4q8-tMmB$GWoPeN4EE@DD4HNI2&WG0q0YrlDs}Uh`=y-Pxw&ZW^?wc7 za&^p;PlaujcB?i8e0I9$SCumM;73>LDvx(G`bpfcxR_EMH|#o*fByBs{CFSXl}F=4eD~dW(mbj9RoWn1I__7)(=ACO zJ2yU#x35~WWAMB8KR9P!FwDo8zCtlMBQI@dzCJtGJ>}!`+!>SZ-fWa~7bd%Xw|tkg z`+}`LT?e*ie79=$vcj|r9;$CoORLY_>NtpLS$4kVXvEFm*NDi#Z*cpkjO#iCL=&A- zfZvjU-QTQYW|<3^Wj<7h$4{RtL_#_w)KWrbr3*^@W+KZA>&{}%0m@c)5PJBB#?gw7 z1&2EYrIlwyA+|#xSYQTrfpPHKcjImv z`BhuTYOlG~AIRmKKF_;Ggt+=%CTghQ`}I+^mEuJ81BosrKmO0c&RHD(w{?q_7`Ja8 zy{S=CR8iYh!YeL{X$g64{+$Sw^HVU6d&Go(RtCNpqk z)p*|%J2h8>jyn9*cwF2L+tdw#taU+9yRAw+Z+e!vq57xK?iy-_x$lV$0FgBFovrfW zE2||*CCyz^S})Ch7}dDjZ-4E|1FcWKssCYYWAQHw*|j+(7o-&d!27c9bVk#qFWt@_ zGoI1^N=gq0mly7hy^;CK#>z=>&r2k&skV(4|Qp)~R@An+xRO~rI8t5qve7@V<@;}~^^|1f| diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/txt.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/txt.jpg deleted file mode 100644 index 5a0a8520f3f1f7aa2eb313d210706664b60e460d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3821 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wma.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wma.jpg deleted file mode 100644 index 128eafd8a453b0551e830e33aa8db890b93befc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3467 zcmb7G2~?9;7QX+IkO+iC5D-1^BQD5*2Cbswf?*E=hJYJNC4?X;fy6AJpfjasEH0-C z;;0=RLA2^oIXaG1Tb+)$*U=(aTN$ZEWZdmI*xIUPGWTTzJRUvsa`OH!_kQob@7}lk zv0k@!fH*lpo&Xd@K@xtz+Ua&o9vizzp`4WPtmUXD0C zw~u{sA8glv42+YgDb^UZYL3)GVbteqbsC$)-o3@$hxsO0q_beowibxJhp8}QCO$(+ z?ghpqr32TgRq+{!hok+1!5l;EBN0Ec6wa0*4g;VE<{J}c+xhg=vVzRHh<(wXr!~tn z9rm)~+_YJUaV%Y5sGmvV5Y7d)DHdx9!w}yr(8$ReqaFtGG;#5W!x0A-Sdtv^nPgK* z2C>`XloiCLA;vh2@jX?t0&xK1RYtv%%!QhndW|lT%!Topa|W}*p@F$qtV<(vVZN+L zW3uIlF`0Yjf=t|}WGp+;Y|M0wWwY|N333O2xj|>!i>Qs=Wwa=XHjK|+Q5oYC5n~*- zTT?un)D1DuKTj1$YC8t;beKb_Km&Tn#a<1?&;uMOArWHmX#gX7@<9tav}n+)L5r61 zghI5vo~N*J>|=Tvi*2LtkpAur?mIYo){m9450&X9-wvW};&b#8d@XLS19H4~&bn>gM%NP)%=^`d&ZAab=8} z^?fST!NK%z9gWd0o7FyldFE@!EUG^KS6k@zVw} zTmhX;Q4y-r+E&8k;zjh!p$VC0P+@-yd3x09RN8Mv^NXtjdOf5Pn##0iY4AaKuT}c3 z^s)4sbcb}8^kKg_dL#C$5>vx8GJj(}V?Jjt0mqzVnwY;c=a_@caaYXOuf08rYwd0M z5*x{utb%jCzO~kXP81^=A_@`3iGoBUL@6#7C-M_TijqX5&@;rfZn|E7zg)C1A8X~T z>g(qsCqN6cQHd5xk!!@Nk_s2YGK|{yoH&%Sfovoze`VKBB751Xf*;S1lBYTyME{kTCwgW<3QG z0W5$rh8hO6gkmI=^$ZNfL@+SP#@Pfyz8gjJ81(v(zdHS!^`GE@bXv@au?Ur1Kkubd zYRHDo7emU!&aN9WmXynPd|2nM{jjR-{EZco?t_o%gC_xmP2=t>vj6>Ya*w=xT|#>9 z1Y9gzBZ`KLfnsPrO%}=Ccnsf-W`Pn*q*2~}GDQw*5TG)ONB>&4>3PkXPX_&V(%yO+wd{?wYz{j%cEKKb6azmMKWN+5Z)1Pa^q3`Ip#v2P&I zPQp}@5XCSeFJ~l*W>^XEA_oRb`C@M$PL{4(VzM0mYs;WvA>+os6BDb*$yHa^G_^Vs zXK~_+@J;%pv2n^1 zmktcNkf3h3)mB|{Wa^=+&7MP>E57V#NxeVfSl zbw7VK>a4COjE$DJ9B-#$oD4yW_8fkIdS)NUdOsK3U^PtG5OzjOG-&}D~s1$Bj4lGD4+{Q4WL=O{6*EW^+|ax!g= zl0a~zG`&K#L@cY`@kEi+a_c|NEf5|2Qh91`*r$rXf}@6!dlo*PUH0FKXRQks4U4?< zKq!5FC6t;=CFXsTv_#o>>x+>2|JXL^+@g#_?q}l;*PaY2-8raxt7Y45KTDGE!H(w2 zi$$&N+@!Ean)xO5UQ78eCcLLBX&tz&zPxd@()ZJc;So8(^0M1OS2j+lnbXXj-B~_hP0LYP*TcdCO&go4>hpYOgi8mX$=`i`=k(GFuZ8Qg z|M+g|;edLP!nC%zGBt4T#mufME#s5bB-~!HcHQ*7jlVM}?`&DN+y6Vs3>npE`7&yB w_9IDsi`jd_Nj7Dy?8#`jEzpjLy6V4b=c)Y9e$@ZGR=KbHi<_eY?^xUZ2Vz_^u>b%7 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xhtml.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xhtml.jpg deleted file mode 100644 index 5c315043c556e117204fe00dea8ccb09b78a4ad7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3670 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 TkFQwVx%vf9m+!LAl(qd2)_xf3 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xlsx.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xlsx.jpg deleted file mode 100644 index ed4cbbef15fa773d7c984fc49f1be8c64284d5e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4507 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 A8vpI6+RQ^puF8Qa(f3Xv&kD*i&6 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 U_SeOwk~;BupE#iJVBH)42c0w1c>n+a diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/zip.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/zip.jpg deleted file mode 100644 index bd30b1cd805761cbfc094e3aa8c5a34dd25370a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3495 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/info.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/info.png deleted file mode 100644 index dfb3971d01d1f4e9733aac404b2f28c8e257d2b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1432 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 HqM!T+FLlTe diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/rename.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/rename.png deleted file mode 100644 index 82d9f13f638e0aa41bc3409814e6a59b106fc729..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2022 zcmah}2{fB)8jd9iv9(1kVMI{MjaXVLiKHqmsoJBLQOyk^QX-ZhXojj@+e|gp4K3$d zYCA})ts>U8WT=)@rmGC0F;Q%1TXQtPcq~{;MMZ)lZH3i9}>OOO{<8`Ngtl6=pS4H`b;&)1sZ!lJG;Ks zYd2vxhnYJ!O0Xx>ALVQLWZbN-z5B}WMs7LudZBBUuzt`*X0UqR4ax28J7C_S{^{ky zlx~(>?-KW?UAGN`w#4jr1DOc-_6T)dj@G84=ZnFx$1ZAZ;O$L%1L)nV&dO^WS?Ox& zTbw%w*aO|h_HO!k`78aV3+gp;d=QpD6oP7?kYzLlxl=w7uqH$Zx4z~YCHmDADkrMJ za!EXw)o7XEb2YEAVkiyVC~(!N3iQ418003RCJ)Xm$Nr%Sjuok(D6r^3z_5 zCBj{JAbc#rF6W=!X@7m7(Sj`YEW>oyMYjF@zAxT;SW2W9Sifiiqp6niY=;UKEQ}?JTK(HtHly2y7t!^&b91QfK2pT+lE!?On051q zo|U*xdA5PB{aLBkMoJ6JNx%LPuaWyDWk3GwV!y$`4!i*OLfAOfU$tAjTNzP7uFx2q zz?@Ih!rU|Dm~zZ^OgP3I)XwQFmR}QM$1vbVE7u%o*Sy?PWHgjiN2aKbWd(%32`f5c z?CsW*G^6qUx`;1&fQ9kY8p(gkEuU#wS(M-CQ{2&Q(PTmD&$~WKLjEkPd052=bQkot zi}XCLng#V6Ey}&;Wh3YsS~Dn*JA3E-%`7&$Fw59Eb2;1nS@*QHbVDJ3^W5e^-aVQ1 z-CR`*GbQT{^r(M3Tvt_hNd7|46RUtX zPU-4>ht*%bH?fI-($bk-V%T~Kapi-<_;%}wxG_b>PyU4Ty-v)+nNa@MGt35XBCMnW>8J5BW%EzZd{OK^!ZnN&)ikXaWGz@^q3f%h&ZZI*7?Irvx(tspf1( zq! z;BYuLIyeOFML79oyLe@f2xYM%(I`}We7t$QwK+4IhO)G?vqM=}p{%TsVgxcKA%aC= zBO_uAej)jlhd_-9il#@h=*$SXgqIS?jAhv)5RyV)pD#KYkzWf%#C&lj_J?9qB2kv+ z7O1bx;*D6bN3>%!mBM01lbFnKoP(qZa3X_3qk2&(!3kK@?-5^0Vo?$u|Do%%X$j@; z^8ZgSiyrb@XZ}mD$YmRQsua{p80FVe+FgM*0e{d&we$Q3W; z9{~UPJChh7F)J@ABpMa2Ra#L{wB1=eGVg z79gBZj!iQ4x-VmLs76LdSlfMFBo}mtR{^QIS?qu&vw=teb?UO7GVI zZQUZ1NNcIrt_hR(fzI=f(q8IJJWW@@w69rAX8~{b@%j9%V{Mm^vciV7_4TEjNdFC} z$qLvo3l{;XHjLfA`4_bZuU`MFhUT&3E zu-rQZf#>?1%21M`2d!NCE=P8j#;fPb-}X+?KP#s|y_);89qb;M@U#VvLL~!TNR&-2 zKkE#oD$+;G_k&D;{m@N>=ZtB1H;?sV@hlnVHPYl<%@Lw-b22=3&i j$wE%=+r3DUk&*&*E1O9(C*EmG{v_fFH$v_4?^6E_dS+WM diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/size.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/size.png deleted file mode 100644 index abbc744873dbed7b76ccc58636bb37b078fac629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2798 zcmb_ddpuO@8lGInB~rQHwrSAV+B3swW0o;fjNEb?mnfQsMorAc%wWQtR3x;whIC4$ zy~zaokT8mbP>wVB}JSWDUQxQ=by8FzqQu4p7(j*=X>67t#2i|yV@(t zYsrH^AVo(9JVA8dC_ZJuqO0EIA_)YNGN9Pnx;xt1Lfo13U`i+%1hU)|?>$KG^HRYk z(g`_gIEb%(LehP{x97epZLQ))uwz>8xRYA$NRP3>Fkq2bpe@rka)r+OlvaP&Q*OGy+-{FQroGpC~oX6?EK zC--Z+@u+ICY&95D-4l$gAQ2@sglW&bY1+4-!Mw8KR1&l888RiT!gNsyaVdOiEa0T? z+~wS=ph~60fo(HhwTZaL=>u8jAOdF0~5b9e#4nMTHEJr=|ozLuzo}kyfYeG-T5NYU+6Swdp zF(b_9Wn6!A+1`sS68b3z>+)NNV`XA-H;SvTNw;Hdi8^<$W|uj}5G9O@zuQbQg}QZa4(&gR zPWfk3+?ng@HSjEtT&pHNqwepezBtb(>*n>i&Ly2iNGd$HOP@v_7?_ES$;^IB%QMcWXD@zHeL^BBOjb+@cek z9}x1ZF z^%v*ntLLv{v;`_v#2?b~hifLr)KvH7$=|E^O?X($A0Zzx?8S5(mgkf;l9hSD?P#hfi2+up0F_yziPacYNb?omTIu3D=mH zW?9KH)3<7#zshzP2J<`t!Qhp&ToHAI^TgW~1O_I23}1ktGo(m{G48Ns14L~IZU z!vRD?Dw$1!aHyd)7QnHFE-?VnSPUbfkR=K`#2V`B;tsK;Gs%#j5vB+f6e|ybKrqaM z!2kijYdKx?WDPycW-|aJGBPp}5ov~?GY=t6(P%W%1cgMQ;35W`b(F>?ao{wT{+A+O z>)^?(ASQ*urqF2+aa~d%J)CU~g^Go~9n15iGQJ7XSj(MbR18w=VU?$)hKZ-M2LE4P*_7awuKt@@apZfqVia&=Qpln%i+hPR z#UQ`KR{2|s`4Px0dT96(-$G>SJ8*4+EuG3>l3A?P0;{pL{FVCNGz$CMoYuf=v)m8U z*>us1$fN{0(%59CNOIZK*E#+txqg#X*ZkvWtFY@w58r|HxVu0e~hg1w-mRfhtipz3{ntT+}*X%TK1BT--?bITJ#aD=&XwT*S36V zmS_jS%8R~)ue%9WzLmad4+ykw$`QZQ%W~5dLbH?q&W*(-Z~G#v%{oJM70>4 z$}M4>Z}UK_Yc^cmAyBGE4<~f}0gF4WyZL0BAdeSs18e(8^XH#jRKVMe5Fx~Zt`8=S zhq`>b%50A!5~tkX!~^z?rg8ZrQ(I;xc@B|4{?i{`pBboYl`Cf1d`!!YuPb+|K6XX! zr~H=ss2xMPv7rnFte2s;T0Fm;fZ9sLTON0ef;t;b8q4er4U9`o7U=r$Vyj{x*UuK! z{|(lae*6R9aF*0Xh2b7r74^R0%ey>uo5PY^q?Ev~!#*y_>u>0T{FnXIo>6V+e zT*++7df7b}l)Ch6EZecJsW#<ccv;8I!V+{+D!4w{9|V(P<8`-VB!0^ ZL886C;wS+oh!+209PM23B{m06{0pK&dc^<$ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/sort.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/sort.png deleted file mode 100644 index d741e10f5d754d657e4aa9c72e3534fc19a0144a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1495 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/up.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/up.png deleted file mode 100644 index d7b3925c03dfca0e474d2cfbc08026eb1cfd8832..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1255 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 P00000NkvXXu0mjfjM_qW diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/include/php_image_magician.php b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/include/php_image_magician.php deleted file mode 100644 index 81e9bcd2..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/include/php_image_magician.php +++ /dev/null @@ -1,3320 +0,0 @@ - resizeImage(150, 100, 0); - # $magicianObj -> saveImage('images/car_small.jpg', 100); - # - # - See end of doc for more examples - - # - # Supported file types include: jpg, png, gif, bmp, psd (read) - # - # - # - # The following functions are taken from phpThumb() [available from - # http://phpthumb.sourceforge.net], and are used with written permission - # from James Heinrich. - # - GD2BMPstring - # - GetPixelColor - # - LittleEndian2String - # - # The following functions are from Marc Hibbins and are used with written - # permission (are also under the Attribution-ShareAlike - # [http://creativecommons.org/licenses/by-sa/3.0/] license. - # - - # - # PhpPsdReader is used with written permission from Tim de Koning. - # [http://www.kingsquare.nl/phppsdreader] - # - # - # - # Modificatoin history - # Date Initials Ver Description - # 10-05-11 J.C.O 0.0 Initial build - # 01-06-11 J.C.O 0.1.1 * Added reflections - # * Added Rounded corners - # * You can now use PNG interlacing - # * Added shadow - # * Added caption box - # * Added vintage filter - # * Added dynamic image resizing (resize on the fly) - # * minor bug fixes - # 05-06-11 J.C.O 0.1.1.1 * Fixed undefined variables - # 17-06-11 J.C.O 0.1.2 * Added image_batch_class.php class - # * Minor bug fixes - # 26-07-11 J.C.O 0.1.4 * Added support for external images - # * Can now set the crop poisition - # 03-08-11 J.C.O 0.1.5 * Added reset() method to reset resource to - # original input file. - # * Added method addTextToCaptionBox() to - # simplify adding text to a caption box. - # * Added experimental writeIPTC. (not finished) - # * Added experimental readIPTC. (not finished) - # 11-08-11 J.C.O * Added initial border presets. - # 30-08-11 J.C.O * Added 'auto' crop option to crop portrait - # images near the top. - # 08-09-11 J.C.O * Added cropImage() method to allow standalone - # cropping. - # 17-09-11 J.C.O * Added setCropFromTop() set method - set the - # percentage to crop from the top when using - # crop 'auto' option. - # * Added setTransparency() set method - allows you - # to turn transparency off (like when saving - # as a jpg). - # * Added setFillColor() set method - set the - # background color to use instead of transparency. - # 05-11-11 J.C.O 0.1.5.1 * Fixed interlacing option - # 0-07-12 J.C.O 1.0 - # - # Known issues & Limitations: - # ------------------------------- - # Not so much an issue, the image is destroyed on the deconstruct rather than - # when we have finished with it. The reason for this is that we don't know - # when we're finished with it as you can both save the image and display - # it directly to the screen (imagedestroy($this->imageResized)) - # - # Opening BMP files is slow. A test with 884 bmp files processed in a loop - # takes forever - over 5 min. This test inlcuded opening the file, then - # getting and displaying its width and height. - # - # $forceStretch: - # ------------------------------- - # On by default. - # $forceStretch can be disabled by calling method setForceStretch with false - # parameter. If disabled, if an images original size is smaller than the size - # specified by the user, the original size will be used. This is useful when - # dealing with small images. - # - # If enabled, images smaller than the size specified will be stretched to - # that size. - # - # Tips: - # ------------------------------- - # * If you're resizing a transparent png and saving it as a jpg, set - # $keepTransparency to false with: $magicianObj->setTransparency(false); - # - # FEATURES: - # * EASY TO USE - # * BMP SUPPORT (read & write) - # * PSD (photoshop) support (read) - # * RESIZE IMAGES - # - Preserve transparency (png, gif) - # - Apply sharpening (jpg) (requires PHP >= 5.1.0) - # - Set image quality (jpg, png) - # - Resize modes: - # - exact size - # - resize by width (auto height) - # - resize by height (auto width) - # - auto (automatically determine the best of the above modes to use) - # - crop - resize as best as it can then crop the rest - # - Force stretching of smaller images (upscale) - # * APPLY FILTERS - # - Convert to grey scale - # - Convert to black and white - # - Convert to sepia - # - Convert to negative - # * ROTATE IMAGES - # - Rotate using predefined "left", "right", or "180"; or any custom degree amount - # * EXTRACT EXIF DATA (requires exif module) - # - make - # - model - # - date - # - exposure - # - aperture - # - f-stop - # - iso - # - focal length - # - exposure program - # - metering mode - # - flash status - # - creator - # - copyright - # * ADD WATERMARK - # - Specify exact x, y placement - # - Or, specify using one of the 9 pre-defined placements such as "tl" - # (for top left), "m" (for middle), "br" (for bottom right) - # - also specify padding from edge amount (optional). - # - Set opacity of watermark (png). - # * ADD BORDER - # * USE HEX WHEN SPECIFYING COLORS (eg: #ffffff) - # * SAVE IMAGE OR OUTPUT TO SCREEN - # - # - # ========================================================================# - - -class imageLib -{ - - private $fileName; - private $image; - protected $imageResized; - private $widthOriginal; # Always be the original width - private $heightOriginal; - private $width; # Current width (width after resize) - private $height; - private $imageSize; - private $fileExtension; - - private $debug = true; - private $errorArray = array(); - - private $forceStretch = true; - private $aggresiveSharpening = false; - - private $transparentArray = array('.png', '.gif'); - private $keepTransparency = true; - private $fillColorArray = array('r'=>255, 'g'=>255, 'b'=>255); - - private $sharpenArray = array('jpg'); - - private $psdReaderPath; - private $filterOverlayPath; - - private $isInterlace; - - private $captionBoxPositionArray = array(); - - private $fontDir = 'fonts'; - - private $cropFromTopPercent = 10; - - -## -------------------------------------------------------- - - function __construct($fileName) - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Constructor - # Param in: $fileName: File name and path. - # Param out: n/a - # Reference: - # Notes: - # - { - if (!$this->testGDInstalled()) { if ($this->debug) { throw new Exception('The GD Library is not installed.'); }else{ throw new Exception(); }}; - - $this->initialise(); - - // *** Save the image file name. Only store this incase you want to display it - $this->fileName = $fileName; - $this->fileExtension = fix_strtolower(strrchr($fileName, '.')); - - // *** Open up the file - $this->image = $this->openImage($fileName); - - - // *** Assign here so we don't modify the original - $this->imageResized = $this->image; - - // *** If file is an image - if ($this->testIsImage($this->image)) - { - // *** Get width and height - $this->width = imagesx($this->image); - $this->widthOriginal = imagesx($this->image); - $this->height = imagesy($this->image); - $this->heightOriginal = imagesy($this->image); - - - /* Added 15-09-08 - * Get the filesize using this build in method. - * Stores an array of size - * - * $this->imageSize[1] = width - * $this->imageSize[2] = height - * $this->imageSize[3] = width x height - * - */ - $this->imageSize = getimagesize($this->fileName); - - } else { - $this->errorArray[] = 'File is not an image'; - } - } - -## -------------------------------------------------------- - - private function initialise () { - - $this->psdReaderPath = dirname(__FILE__) . '/classPhpPsdReader.php'; - $this->filterOverlayPath = dirname(__FILE__) . '/filters'; - - // *** Set if image should be interlaced or not. - $this->isInterlace = false; - } - - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Resize -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - - public function resizeImage($newWidth, $newHeight, $option = 0, $sharpen = false, $autoRotate = false) - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Resizes the image - # Param in: $newWidth: - # $newHeight: - # $option: 0 / exact = defined size; - # 1 / portrait = keep aspect set height; - # 2 / landscape = keep aspect set width; - # 3 / auto = auto; - # 4 / crop= resize and crop; - # - # $option can also be an array containing options for - # cropping. E.G., array('crop', 'r') - # - # This array only applies to 'crop' and the 'r' refers to - # "crop right". Other value include; tl, t, tr, l, m (default), - # r, bl, b, br, or you can specify your own co-ords (which - # isn't recommended. - # - # $sharpen: true: sharpen (jpg only); - # false: don't sharpen - # Param out: n/a - # Reference: - # Notes: To clarify the $option input: - # 0 = The exact height and width dimensions you set. - # 1 = Whatever height is passed in will be the height that - # is set. The width will be calculated and set automatically - # to a the value that keeps the original aspect ratio. - # 2 = The same but based on the width. We try make the image the - # biggest size we can while stil fitting inside the box size - # 3 = Depending whether the image is landscape or portrait, this - # will automatically determine whether to resize via - # dimension 1,2 or 0 - # 4 = Will resize and then crop the image for best fit - # - # forceStretch can be applied to options 1,2,3 and 4 - # - { - - // *** We can pass in an array of options to change the crop position - $cropPos = 'm'; - if (is_array($option) && fix_strtolower($option[0]) == 'crop') { - $cropPos = $option[1]; # get the crop option - } else if (strpos($option, '-') !== false) { - // *** Or pass in a hyphen seperated option - $optionPiecesArray = explode('-', $option); - $cropPos = end($optionPiecesArray); - } - - // *** Check the option is valid - $option = $this->prepOption($option); - - // *** Make sure the file passed in is valid - if (!$this->image) { if ($this->debug) { throw new Exception('file ' . $this->getFileName() .' is missing or invalid'); }else{ throw new Exception(); }}; - - // *** Get optimal width and height - based on $option - $dimensionsArray = $this->getDimensions($newWidth, $newHeight, $option); - - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - - // *** Resample - create image canvas of x, y size - $this->imageResized = imagecreatetruecolor($optimalWidth, $optimalHeight); - $this->keepTransparancy($optimalWidth, $optimalHeight, $this->imageResized); - imagecopyresampled($this->imageResized, $this->image, 0, 0, 0, 0, $optimalWidth, $optimalHeight, $this->width, $this->height); - - - // *** If '4', then crop too - if ($option == 4 || $option == 'crop') { - - if (($optimalWidth >= $newWidth && $optimalHeight >= $newHeight)) { - $this->crop($optimalWidth, $optimalHeight, $newWidth, $newHeight, $cropPos); - } - } - - // *** If Rotate. - if ($autoRotate) { - - $exifData = $this->getExif(false); - if (count($exifData) > 0) { - - switch($exifData['orientation']) { - case 8: - $this->imageResized = imagerotate($this->imageResized,90,0); - break; - case 3: - $this->imageResized = imagerotate($this->imageResized,180,0); - break; - case 6: - $this->imageResized = imagerotate($this->imageResized,-90,0); - break; - } - } - } - - // *** Sharpen image (if jpg and the user wishes to do so) - if ($sharpen && in_array($this->fileExtension, $this->sharpenArray)) { - - // *** Sharpen - $this->sharpen(); - } - } - -## -------------------------------------------------------- - - public function cropImage($newWidth, $newHeight, $cropPos = 'm') - # Author: Jarrod Oberto - # Date: 08-09-11 - # Purpose: Crops the image - # Param in: $newWidth: crop with - # $newHeight: crop height - # $cropPos: Can be any of the following: - # tl, t, tr, l, m, r, bl, b, br, auto - # Or: - # a custom position such as '30x50' - # Param out: n/a - # Reference: - # Notes: - # - { - - // *** Make sure the file passed in is valid - if (!$this->image) { if ($this->debug) { throw new Exception('file ' . $this->getFileName() .' is missing or invalid'); }else{ throw new Exception(); }}; - - $this->imageResized = $this->image; - $this->crop($this->width, $this->height, $newWidth, $newHeight, $cropPos); - - } - -## -------------------------------------------------------- - - private function keepTransparancy($width, $height, $im) - # Author: Jarrod Oberto - # Date: 08-04-11 - # Purpose: Keep transparency for png and gif image - # Param in: - # Param out: n/a - # Reference: - # Notes: - # - { - // *** If PNG, perform some transparency retention actions (gif untested) - if (in_array($this->fileExtension, $this->transparentArray) && $this->keepTransparency) { - imagealphablending($im, false); - imagesavealpha($im, true); - $transparent = imagecolorallocatealpha($im, 255, 255, 255, 127); - imagefilledrectangle($im, 0, 0, $width, $height, $transparent); - } else { - $color = imagecolorallocate($im, $this->fillColorArray['r'], $this->fillColorArray['g'], $this->fillColorArray['b']); - imagefilledrectangle($im, 0, 0, $width, $height, $color); - } - } - -## -------------------------------------------------------- - - private function crop($optimalWidth, $optimalHeight, $newWidth, $newHeight, $cropPos) - # Author: Jarrod Oberto - # Date: 15-09-08 - # Purpose: Crops the image - # Param in: $newWidth: - # $newHeight: - # Param out: n/a - # Reference: - # Notes: - # - { - - // *** Get cropping co-ordinates - $cropArray = $this->getCropPlacing($optimalWidth, $optimalHeight, $newWidth, $newHeight, $cropPos); - $cropStartX = $cropArray['x']; - $cropStartY = $cropArray['y']; - - // *** Crop this bad boy - $crop = imagecreatetruecolor($newWidth , $newHeight); - $this->keepTransparancy($optimalWidth, $optimalHeight, $crop); - imagecopyresampled($crop, $this->imageResized, 0, 0, $cropStartX, $cropStartY, $newWidth, $newHeight , $newWidth, $newHeight); - - $this->imageResized = $crop; - - // *** Set new width and height to our variables - $this->width = $newWidth; - $this->height = $newHeight; - - } - -## -------------------------------------------------------- - - private function getCropPlacing($optimalWidth, $optimalHeight, $newWidth, $newHeight, $pos='m') - # - # Author: Jarrod Oberto - # Date: July 11 - # Purpose: Set the cropping area. - # Params in: - # Params out: (array) the crop x and y co-ordinates. - # Notes: When specifying the exact pixel crop position (eg 10x15), be - # very careful as it's easy to crop out of the image leaving - # black borders. - # - { - $pos = fix_strtolower($pos); - - // *** If co-ords have been entered - if (strstr($pos, 'x')) { - $pos = str_replace(' ', '', $pos); - - $xyArray = explode('x', $pos); - list($cropStartX, $cropStartY) = $xyArray; - - } else { - - switch ($pos) { - case 'tl': - $cropStartX = 0; - $cropStartY = 0; - break; - - case 't': - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = 0; - break; - - case 'tr': - $cropStartX = $optimalWidth - $newWidth; - $cropStartY = 0; - break; - - case 'l': - $cropStartX = 0; - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - break; - - case 'm': - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - break; - - case 'r': - $cropStartX = $optimalWidth - $newWidth; - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - break; - - case 'bl': - $cropStartX = 0; - $cropStartY = $optimalHeight - $newHeight; - break; - - case 'b': - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = $optimalHeight - $newHeight; - break; - - case 'br': - $cropStartX = $optimalWidth - $newWidth; - $cropStartY = $optimalHeight - $newHeight; - break; - - case 'auto': - // *** If image is a portrait crop from top, not center. v1.5 - if ($optimalHeight > $optimalWidth) { - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = ($this->cropFromTopPercent /100) * $optimalHeight; - } else { - - // *** Else crop from the center - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - } - break; - - default: - // *** Default to center - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - break; - } - } - - return array('x' => $cropStartX, 'y' => $cropStartY); - } - -## -------------------------------------------------------- - - private function getDimensions($newWidth, $newHeight, $option) - # Author: Jarrod Oberto - # Date: 17-11-09 - # Purpose: Get new image dimensions based on user specificaions - # Param in: $newWidth: - # $newHeight: - # Param out: Array of new width and height values - # Reference: - # Notes: If $option = 3 then this function is call recursivly - # - # To clarify the $option input: - # 0 = The exact height and width dimensions you set. - # 1 = Whatever height is passed in will be the height that - # is set. The width will be calculated and set automatically - # to a the value that keeps the original aspect ratio. - # 2 = The same but based on the width. - # 3 = Depending whether the image is landscape or portrait, this - # will automatically determine whether to resize via - # dimension 1,2 or 0. - # 4 = Resize the image as much as possible, then crop the - # remainder. - { - - switch (strval($option)) - { - case '0': - case 'exact': - $optimalWidth = $newWidth; - $optimalHeight= $newHeight; - break; - case '1': - case 'portrait': - $dimensionsArray = $this->getSizeByFixedHeight($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - break; - case '2': - case 'landscape': - $dimensionsArray = $this->getSizeByFixedWidth($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - break; - case '3': - case 'auto': - $dimensionsArray = $this->getSizeByAuto($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - break; - case '4': - case 'crop': - $dimensionsArray = $this->getOptimalCrop($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - break; - } - - return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight); - } - -## -------------------------------------------------------- - - private function getSizeByFixedHeight($newWidth, $newHeight) - { - // *** If forcing is off... - if (!$this->forceStretch) { - - // *** ...check if actual height is less than target height - if ($this->height < $newHeight) { - return array('optimalWidth' => $this->width, 'optimalHeight' => $this->height); - } - } - - $ratio = $this->width / $this->height; - - $newWidth = $newHeight * $ratio; - - //return $newWidth; - return array('optimalWidth' => $newWidth, 'optimalHeight' => $newHeight); - } - -## -------------------------------------------------------- - - private function getSizeByFixedWidth($newWidth, $newHeight) - { - // *** If forcing is off... - if (!$this->forceStretch) { - - // *** ...check if actual width is less than target width - if ($this->width < $newWidth) { - return array('optimalWidth' => $this->width, 'optimalHeight' => $this->height); - } - } - - $ratio = $this->height / $this->width; - - $newHeight = $newWidth * $ratio; - - //return $newHeight; - return array('optimalWidth' => $newWidth, 'optimalHeight' => $newHeight); - } - -## -------------------------------------------------------- - - private function getSizeByAuto($newWidth, $newHeight) - # Author: Jarrod Oberto - # Date: 19-08-08 - # Purpose: Depending on the height, choose to resize by 0, 1, or 2 - # Param in: The new height and new width - # Notes: - # - { - // *** If forcing is off... - if (!$this->forceStretch) { - - // *** ...check if actual size is less than target size - if ($this->width < $newWidth && $this->height < $newHeight) { - return array('optimalWidth' => $this->width, 'optimalHeight' => $this->height); - } - } - - if ($this->height < $this->width) - // *** Image to be resized is wider (landscape) - { - //$optimalWidth = $newWidth; - //$optimalHeight= $this->getSizeByFixedWidth($newWidth); - - $dimensionsArray = $this->getSizeByFixedWidth($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - } - elseif ($this->height > $this->width) - // *** Image to be resized is taller (portrait) - { - //$optimalWidth = $this->getSizeByFixedHeight($newHeight); - //$optimalHeight= $newHeight; - - $dimensionsArray = $this->getSizeByFixedHeight($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - } - else - // *** Image to be resizerd is a square - { - - if ($newHeight < $newWidth) { - //$optimalWidth = $newWidth; - //$optimalHeight= $this->getSizeByFixedWidth($newWidth); - $dimensionsArray = $this->getSizeByFixedWidth($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - } else if ($newHeight > $newWidth) { - //$optimalWidth = $this->getSizeByFixedHeight($newHeight); - //$optimalHeight= $newHeight; - $dimensionsArray = $this->getSizeByFixedHeight($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - } else { - // *** Sqaure being resized to a square - $optimalWidth = $newWidth; - $optimalHeight= $newHeight; - } - } - - return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight); - } - -## -------------------------------------------------------- - - private function getOptimalCrop($newWidth, $newHeight) - # Author: Jarrod Oberto - # Date: 17-11-09 - # Purpose: Get optimal crop dimensions - # Param in: width and height as requested by user (fig 3) - # Param out: Array of optimal width and height (fig 2) - # Reference: - # Notes: The optimal width and height return are not the same as the - # same as the width and height passed in. For example: - # - # - # |-----------------| |------------| |-------| - # | | => |**| |**| => | | - # | | |**| |**| | | - # | | |------------| |-------| - # |-----------------| - # original optimal crop - # size size size - # Fig 1 2 3 - # - # 300 x 250 150 x 125 150 x 100 - # - # The optimal size is the smallest size (that is closest to the crop size) - # while retaining proportion/ratio. - # - # The crop size is the optimal size that has been cropped on one axis to - # make the image the exact size specified by the user. - # - # * represent cropped area - # - { - - // *** If forcing is off... - if (!$this->forceStretch) { - - // *** ...check if actual size is less than target size - if ($this->width < $newWidth && $this->height < $newHeight) { - return array('optimalWidth' => $this->width, 'optimalHeight' => $this->height); - } - } - - $heightRatio = $this->height / $newHeight; - $widthRatio = $this->width / $newWidth; - - if ($heightRatio < $widthRatio) { - $optimalRatio = $heightRatio; - } else { - $optimalRatio = $widthRatio; - } - - $optimalHeight = round( $this->height / $optimalRatio ); - $optimalWidth = round( $this->width / $optimalRatio ); - - return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight); - } - -## -------------------------------------------------------- - - private function sharpen() - # Author: Jarrod Oberto - # Date: 08 04 2011 - # Purpose: Sharpen image - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # Credit: Incorporates Joe Lencioni (August 6, 2008) code - { - - if (version_compare(PHP_VERSION, '5.1.0') >= 0) { - - // *** - if ($this->aggresiveSharpening) { # A more aggressive sharpening solution - - $sharpenMatrix = array( array( -1, -1, -1 ), - array( -1, 16, -1 ), - array( -1, -1, -1 ) ); - $divisor = 8; - $offset = 0; - - imageconvolution($this->imageResized, $sharpenMatrix, $divisor, $offset); - } - else # More subtle and personally more desirable - { - $sharpness = $this->findSharp($this->widthOriginal, $this->width); - - $sharpenMatrix = array( - array(-1, -2, -1), - array(-2, $sharpness + 12, -2), //Lessen the effect of a filter by increasing the value in the center cell - array(-1, -2, -1) - ); - $divisor = $sharpness; // adjusts brightness - $offset = 0; - imageconvolution($this->imageResized, $sharpenMatrix, $divisor, $offset); - } - } - else - { - if ($this->debug) { throw new Exception('Sharpening required PHP 5.1.0 or greater.'); } - } - } - - ## -------------------------------------------------------- - - private function sharpen2($level) - { - $sharpenMatrix = array( - array($level, $level, $level), - array($level, (8*$level)+1, $level), //Lessen the effect of a filter by increasing the value in the center cell - array($level, $level, $level) - ); - - } - -## -------------------------------------------------------- - - private function findSharp($orig, $final) - # Author: Ryan Rud (http://adryrun.com) - # Purpose: Find optimal sharpness - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - $final = $final * (750.0 / $orig); - $a = 52; - $b = -0.27810650887573124; - $c = .00047337278106508946; - - $result = $a + $b * $final + $c * $final * $final; - - return max(round($result), 0); - } - -## -------------------------------------------------------- - - private function prepOption($option) - # Author: Jarrod Oberto - # Purpose: Prep option like change the passed in option to lowercase - # Param in: (str/int) $option: eg. 'exact', 'crop'. 0, 4 - # Param out: lowercase string - # Reference: - # Notes: - # - { - if (is_array($option)) { - if (fix_strtolower($option[0]) == 'crop' && count($option) == 2) { - return 'crop'; - } else { - throw new Exception('Crop resize option array is badly formatted.'); - } - } else if (strpos($option, 'crop') !== false) { - return 'crop'; - } - - if (is_string($option)) { - return fix_strtolower($option); - } - - return $option; - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Presets -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - -# -# Preset are pre-defined templates you can apply to your image. -# -# These are inteded to be applied to thumbnail images. -# - - - public function borderPreset($preset) - { - switch ($preset) - { - - case 'simple': - $this->addBorder(7, '#fff'); - $this->addBorder(6, '#f2f1f0'); - $this->addBorder(2, '#fff'); - $this->addBorder(1, '#ccc'); - break; - default: - break; - } - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Draw border -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addBorder($thickness = 1, $rgbArray = array(255, 255, 255)) - # Author: Jarrod Oberto - # Date: 05-05-11 - # Purpose: Add a border to the image - # Param in: - # Param out: - # Reference: - # Notes: This border is added to the INSIDE of the image - # - { - if ($this->imageResized) { - - $rgbArray = $this->formatColor($rgbArray); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - - - $x1 = 0; - $y1 = 0; - $x2 = ImageSX($this->imageResized) - 1; - $y2 = ImageSY($this->imageResized) - 1; - - $rgbArray = ImageColorAllocate($this->imageResized, $r, $g, $b); - - - for($i = 0; $i < $thickness; $i++) { - ImageRectangle($this->imageResized, $x1++, $y1++, $x2--, $y2--, $rgbArray); - } - } - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Gray Scale -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function greyScale() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image greyscale - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - } - - } - - ## -------------------------------------------------------- - - public function greyScaleEnhanced() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image greyscale - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -15); - imagefilter($this->imageResized, IMG_FILTER_BRIGHTNESS, 2); - $this->sharpen($this->width); - } - } - - ## -------------------------------------------------------- - - public function greyScaleDramatic() - # Alias of gd_filter_monopin - { - $this->gd_filter_monopin(); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Black 'n White -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function blackAndWhite() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image black and white - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -1000); - } - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Negative -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function negative() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image negative - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - - imagefilter($this->imageResized, IMG_FILTER_NEGATE); - } - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Sepia -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function sepia() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image sepia - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - imagefilter($this->imageResized, IMG_FILTER_BRIGHTNESS, -10); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -20); - imagefilter($this->imageResized, IMG_FILTER_COLORIZE, 60, 30, -15); - } - } - - ## -------------------------------------------------------- - - public function sepia2() - - { - if ($this->imageResized) { - - $total = imagecolorstotal( $this->imageResized ); - for ( $i = 0; $i < $total; $i++ ) { - $index = imagecolorsforindex( $this->imageResized, $i ); - $red = ( $index["red"] * 0.393 + $index["green"] * 0.769 + $index["blue"] * 0.189 ) / 1.351; - $green = ( $index["red"] * 0.349 + $index["green"] * 0.686 + $index["blue"] * 0.168 ) / 1.203; - $blue = ( $index["red"] * 0.272 + $index["green"] * 0.534 + $index["blue"] * 0.131 ) / 2.140; - imagecolorset( $this->imageResized, $i, $red, $green, $blue ); - } - - - } - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Vintage -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function vintage() - # Alias of gd_filter_monopin - { - $this->gd_filter_vintage(); - } - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Presets By Marc Hibbins -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - - /** Apply 'Monopin' preset */ - public function gd_filter_monopin() - { - - if ($this->imageResized) { - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - imagefilter($this->imageResized, IMG_FILTER_BRIGHTNESS, -15); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -15); - $this->imageResized = $this->gd_apply_overlay($this->imageResized, 'vignette', 100); - } - } - - ## -------------------------------------------------------- - - public function gd_filter_vintage() - { - if ($this->imageResized) { - $this->imageResized = $this->gd_apply_overlay($this->imageResized, 'vignette', 45); - imagefilter($this->imageResized, IMG_FILTER_BRIGHTNESS, 20); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -35); - imagefilter($this->imageResized, IMG_FILTER_COLORIZE, 60, -10, 35); - imagefilter($this->imageResized, IMG_FILTER_SMOOTH, 7); - $this->imageResized = $this->gd_apply_overlay($this->imageResized, 'scratch', 10); - } - } - - ## -------------------------------------------------------- - - /** Apply a PNG overlay */ - private function gd_apply_overlay($im, $type, $amount) - # - # Original Author: Marc Hibbins - # License: Attribution-ShareAlike 3.0 - # Purpose: - # Params in: - # Params out: - # Notes: - # - { - $width = imagesx($im); - $height = imagesy($im); - $filter = imagecreatetruecolor($width, $height); - - imagealphablending($filter, false); - imagesavealpha($filter, true); - - $transparent = imagecolorallocatealpha($filter, 255, 255, 255, 127); - imagefilledrectangle($filter, 0, 0, $width, $height, $transparent); - - // *** Resize overlay - $overlay = $this->filterOverlayPath . '/' . $type . '.png'; - $png = imagecreatefrompng($overlay); - imagecopyresampled($filter, $png, 0, 0, 0, 0, $width, $height, imagesx($png), imagesy($png)); - - $comp = imagecreatetruecolor($width, $height); - imagecopy($comp, $im, 0, 0, 0, 0, $width, $height); - imagecopy($comp, $filter, 0, 0, 0, 0, $width, $height); - imagecopymerge($im, $comp, 0, 0, 0, 0, $width, $height, $amount); - - imagedestroy($comp); - return $im; - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Colorise -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function image_colorize($rgb) { - imageTrueColorToPalette($this->imageResized,true,256); - $numColors = imageColorsTotal($this->imageResized); - - for ($x = 0; $x < $numColors; $x++) { - list($r,$g,$b) = array_values(imageColorsForIndex($this->imageResized,$x)); - - // calculate grayscale in percent - $grayscale = ($r + $g + $b) / 3 / 0xff; - - imageColorSet($this->imageResized,$x, - $grayscale * $rgb[0], - $grayscale * $rgb[1], - $grayscale * $rgb[2] - ); - - } - - return true; - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Reflection -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addReflection($reflectionHeight = 50, $startingTransparency = 30, $inside = false, $bgColor = '#fff', $stretch=false, $divider = 0) - { - - // *** Convert color - $rgbArray = $this->formatColor($bgColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - - $im = $this->imageResized; - $li = imagecreatetruecolor($this->width, 1); - - $bgc = imagecolorallocate($li, $r, $g, $b); - imagefilledrectangle($li, 0, 0, $this->width, 1, $bgc); - - $bg = imagecreatetruecolor($this->width, $reflectionHeight); - $wh = imagecolorallocate($im, 255, 255, 255); - - $im = imagerotate($im, -180, $wh); - imagecopyresampled($bg, $im, 0, 0, 0, 0, $this->width, $this->height, $this->width, $this->height); - - $im = $bg; - - $bg = imagecreatetruecolor($this->width, $reflectionHeight); - - for ($x = 0; $x < $this->width; $x++) { - imagecopy($bg, $im, $x, 0, $this->width-$x -1, 0, 1, $reflectionHeight); - } - $im = $bg; - - $transaprencyAmount = $this->invertTransparency($startingTransparency, 100); - - - // *** Fade - if ($stretch) { - $step = 100/($reflectionHeight + $startingTransparency); - } else{ - $step = 100/$reflectionHeight; - } - for($i=0; $i<=$reflectionHeight; $i++){ - - if($startingTransparency>100) $startingTransparency = 100; - if($startingTransparency< 1) $startingTransparency = 1; - imagecopymerge($bg, $li, 0, $i, 0, 0, $this->width, 1, $startingTransparency); - $startingTransparency+=$step; - } - - // *** Apply fade - imagecopymerge($im, $li, 0, 0, 0, 0, $this->width, $divider, 100); // Divider - - - // *** width, height of reflection. - $x = imagesx($im); - $y = imagesy($im); - - - // *** Determines if the reflection should be displayed inside or outside the image - if ($inside) { - - // Create new blank image with sizes. - $final = imagecreatetruecolor($this->width, $this->height); - - imagecopymerge ($final, $this->imageResized, 0, 0, 0, $reflectionHeight, $this->width, $this->height - $reflectionHeight, 100); - imagecopymerge ($final, $im, 0, $this->height - $reflectionHeight, 0, 0, $x, $y, 100); - - } else { - - // Create new blank image with sizes. - $final = imagecreatetruecolor($this->width, $this->height + $y); - - imagecopymerge ($final, $this->imageResized, 0, 0, 0, 0, $this->width, $this->height, 100); - imagecopymerge ($final, $im, 0, $this->height, 0, 0, $x, $y, 100); - } - - $this->imageResized = $final; - - imagedestroy($li); - imagedestroy($im); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Rotate -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function rotate($value = 90, $bgColor = 'transparent') - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Rotate image - # Param in: (mixed) $degrees: (int) number of degress to rotate image - # (str) param "left": rotate left - # (str) param "right": rotate right - # (str) param "upside": upside-down image - # Param out: - # Reference: - # Notes: The default direction of imageRotate() is counter clockwise. - # - { - if ($this->imageResized) { - - if (is_integer($value)) { - $degrees = $value; - } - - // *** Convert color - $rgbArray = $this->formatColor($bgColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - if (isset($rgbArray['a'])) {$a = $rgbArray['a']; } - - if (is_string($value)) { - - $value = fix_strtolower($value); - - switch ($value) { - case 'left': - $degrees = 90; - break; - case 'right': - $degrees = 270; - break; - case 'upside': - $degrees = 180; - break; - default: - break; - } - - } - - // *** The default direction of imageRotate() is counter clockwise - // * This makes it clockwise - $degrees = 360 - $degrees; - - // *** Create background color - $bg = ImageColorAllocateAlpha($this->imageResized, $r, $g, $b, $a); - - // *** Fill with background - ImageFill($this->imageResized, 0, 0 , $bg); - - // *** Rotate - $this->imageResized = imagerotate($this->imageResized, $degrees, $bg); // Rotate 45 degrees and allocated the transparent colour as the one to make transparent (obviously) - - // Ensure alpha transparency - ImageSaveAlpha($this->imageResized,true); - - } - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Round corners -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function roundCorners($radius = 5, $bgColor = 'transparent') - # Author: Jarrod Oberto - # Date: 19-05-2011 - # Purpose: Create rounded corners on your image - # Param in: (int) radius = the amount of curvature - # (mixed) $bgColor = the corner background color - # Param out: n/a - # Reference: - # Notes: - # - { - - // *** Check if the user wants transparency - $isTransparent = false; - if (!is_array($bgColor)) { - if (fix_strtolower($bgColor) == 'transparent') { - $isTransparent = true; - } - } - - - // *** If we use transparency, we need to color our curved mask with a unique color - if ($isTransparent) { - $bgColor = $this->findUnusedGreen(); - } - - // *** Convert color - $rgbArray = $this->formatColor($bgColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - if (isset($rgbArray['a'])) {$a = $rgbArray['a']; } - - - - // *** Create top-left corner mask (square) - $cornerImg = imagecreatetruecolor($radius, $radius); - //$cornerImg = imagecreate($radius, $radius); - - //imagealphablending($cornerImg, true); - //imagesavealpha($cornerImg, true); - - //imagealphablending($this->imageResized, false); - //imagesavealpha($this->imageResized, true); - - // *** Give it a color - $maskColor = imagecolorallocate($cornerImg, 0, 0, 0); - - - - // *** Replace the mask color (black) to transparent - imagecolortransparent($cornerImg, $maskColor); - - - - // *** Create the image background color - $imagebgColor = imagecolorallocate($cornerImg, $r, $g, $b); - - - - // *** Fill the corner area to the user defined color - imagefill($cornerImg, 0, 0, $imagebgColor); - - - imagefilledellipse($cornerImg, $radius, $radius, $radius * 2, $radius * 2, $maskColor ); - - - // *** Map to top left corner - imagecopymerge($this->imageResized, $cornerImg, 0, 0, 0, 0, $radius, $radius, 100); #tl - - // *** Map rounded corner to other corners by rotating and applying the mask - $cornerImg = imagerotate($cornerImg, 90, 0); - imagecopymerge($this->imageResized, $cornerImg, 0, $this->height - $radius, 0, 0, $radius, $radius, 100); #bl - - $cornerImg = imagerotate($cornerImg, 90, 0); - imagecopymerge($this->imageResized, $cornerImg, $this->width - $radius, $this->height - $radius, 0, 0, $radius, $radius, 100); #br - - $cornerImg = imagerotate($cornerImg, 90, 0); - imagecopymerge($this->imageResized, $cornerImg, $this->width - $radius, 0, 0, 0, $radius, $radius, 100); #tr - - - // *** If corners are to be transparent, we fill our chromakey color as transparent. - if ($isTransparent) { - //imagecolortransparent($this->imageResized, $imagebgColor); - $this->imageResized = $this->transparentImage($this->imageResized); - imagesavealpha($this->imageResized, true); - } - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Shadow -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addShadow($shadowAngle=45, $blur=15, $bgColor='transparent') - # - # Author: Jarrod Oberto (Adapted from Pascal Naidon) - # Ref: http://www.les-stooges.org/pascal/webdesign/vignettes/index.php?la=en - # Purpose: Add a drop shadow to your image - # Params in: (int) $angle: the angle of the shadow - # (int) $blur: the blur distance - # (mixed) $bgColor: the color of the background - # Params out: - # Notes: - # - { - // *** A higher number results in a smoother shadow - define('STEPS', $blur*2); - - // *** Set the shadow distance - $shadowDistance = $blur*0.25; - - // *** Set blur width and height - $blurWidth = $blurHeight = $blur; - - - if ($shadowAngle == 0) { - $distWidth = 0; - $distHeight = 0; - } else { - $distWidth = $shadowDistance * cos(deg2rad($shadowAngle)); - $distHeight = $shadowDistance * sin(deg2rad($shadowAngle)); - } - - - // *** Convert color - if (fix_strtolower($bgColor) != 'transparent') { - $rgbArray = $this->formatColor($bgColor); - $r0 = $rgbArray['r']; - $g0 = $rgbArray['g']; - $b0 = $rgbArray['b']; - } - - - $image = $this->imageResized; - $width = $this->width; - $height = $this->height; - - - $newImage = imagecreatetruecolor($width, $height); - imagecopyresampled($newImage, $image, 0, 0, 0, 0, $width, $height, $width, $height); - - - // *** RGB - $rgb = imagecreatetruecolor($width+$blurWidth,$height+$blurHeight); - $colour = imagecolorallocate($rgb, 0, 0, 0); - imagefilledrectangle($rgb, 0, 0, $width+$blurWidth, $height+$blurHeight, $colour); - $colour = imagecolorallocate($rgb, 255, 255, 255); - //imagefilledrectangle($rgb, $blurWidth*0.5-$distWidth, $blurHeight*0.5-$distHeight, $width+$blurWidth*0.5-$distWidth, $height+$blurWidth*0.5-$distHeight, $colour); - imagefilledrectangle($rgb, $blurWidth*0.5-$distWidth, $blurHeight*0.5-$distHeight, $width+$blurWidth*0.5-$distWidth, $height+$blurWidth*0.5-$distHeight, $colour); - //imagecopymerge($rgb, $newImage, 1+$blurWidth*0.5-$distWidth, 1+$blurHeight*0.5-$distHeight, 0,0, $width, $height, 100); - imagecopymerge($rgb, $newImage, $blurWidth*0.5-$distWidth, $blurHeight*0.5-$distHeight, 0,0, $width+$blurWidth, $height+$blurHeight, 100); - - - // *** Shadow (alpha) - $shadow = imagecreatetruecolor($width+$blurWidth,$height+$blurHeight); - imagealphablending($shadow, false); - $colour = imagecolorallocate($shadow, 0, 0, 0); - imagefilledrectangle($shadow, 0, 0, $width+$blurWidth, $height+$blurHeight, $colour); - - - for($i=0;$i<=STEPS;$i++) { - - $t = ((1.0*$i)/STEPS); - $intensity = 255*$t*$t; - - $colour = imagecolorallocate($shadow, $intensity, $intensity, $intensity); - $points = array( - $blurWidth*$t, $blurHeight, // Point 1 (x, y) - $blurWidth, $blurHeight*$t, // Point 2 (x, y) - $width, $blurHeight*$t, // Point 3 (x, y) - $width+$blurWidth*(1-$t), $blurHeight, // Point 4 (x, y) - $width+$blurWidth*(1-$t), $height, // Point 5 (x, y) - $width, $height+$blurHeight*(1-$t), // Point 6 (x, y) - $blurWidth, $height+$blurHeight*(1-$t), // Point 7 (x, y) - $blurWidth*$t, $height // Point 8 (x, y) - ); - imagepolygon($shadow, $points, 8, $colour); - } - - for($i=0;$i<=STEPS;$i++) { - - $t = ((1.0*$i)/STEPS); - $intensity = 255*$t*$t; - - $colour = imagecolorallocate($shadow, $intensity, $intensity, $intensity); - imagefilledarc($shadow, $blurWidth-1, $blurHeight-1, 2*(1-$t)*$blurWidth, 2*(1-$t)*$blurHeight, 180, 268, $colour, IMG_ARC_PIE); - imagefilledarc($shadow, $width, $blurHeight-1, 2*(1-$t)*$blurWidth, 2*(1-$t)*$blurHeight, 270, 358, $colour, IMG_ARC_PIE); - imagefilledarc($shadow, $width, $height, 2*(1-$t)*$blurWidth, 2*(1-$t)*$blurHeight, 0, 90, $colour, IMG_ARC_PIE); - imagefilledarc($shadow, $blurWidth-1, $height, 2*(1-$t)*$blurWidth, 2*(1-$t)*$blurHeight, 90, 180, $colour, IMG_ARC_PIE); - } - - - $colour = imagecolorallocate($shadow, 255, 255, 255); - imagefilledrectangle($shadow, $blurWidth, $blurHeight, $width, $height, $colour); - imagefilledrectangle($shadow, $blurWidth*0.5-$distWidth, $blurHeight*0.5-$distHeight, $width+$blurWidth*0.5-1-$distWidth, $height+$blurHeight*0.5-1-$distHeight, $colour); - - - // *** The magic - imagealphablending($rgb, false); - - for ($theX=0;$theX> 16) & 0xFF; - $g = ($colArray >> 8) & 0xFF; - $b = $colArray & 0xFF; - - // *** Get the alpha value for every pixel of the shadow image - $colArray = imagecolorat($shadow,$theX,$theY); - $a = $colArray & 0xFF; - $a = 127-floor($a/2); - $t = $a/128.0; - - // *** Create color - if(fix_strtolower($bgColor) == 'transparent') { - $myColour = imagecolorallocatealpha($rgb,$r,$g,$b,$a); - } else { - $myColour = imagecolorallocate($rgb,$r*(1.0-$t)+$r0*$t,$g*(1.0-$t)+$g0*$t,$b*(1.0-$t)+$b0*$t); - } - - // *** Add color to new rgb image - imagesetpixel($rgb, $theX, $theY, $myColour); - } - } - - imagealphablending($rgb, true); - imagesavealpha($rgb, true); - - $this->imageResized = $rgb; - - imagedestroy($image); - imagedestroy($newImage); - imagedestroy($shadow); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Add Caption Box -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addCaptionBox($side='b', $thickness=50, $padding=0, $bgColor='#000', $transaprencyAmount=30) - # - # Author: Jarrod Oberto - # Date: 26 May 2011 - # Purpose: Add a caption box - # Params in: (str) $side: the side to add the caption box (t, r, b, or l). - # (int) $thickness: how thick you want the caption box to be. - # (mixed) $bgColor: The color of the caption box. - # (int) $transaprencyAmount: The amount of transparency to be - # applied. - # Params out: n/a - # Notes: - # - { - $side = fix_strtolower($side); - - // *** Convert color - $rgbArray = $this->formatColor($bgColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - - $positionArray = $this->calculateCaptionBoxPosition($side, $thickness, $padding); - - // *** Store incase we want to use method addTextToCaptionBox() - $this->captionBoxPositionArray = $positionArray; - - - $transaprencyAmount = $this->invertTransparency($transaprencyAmount, 127, false); - $transparent = imagecolorallocatealpha($this->imageResized, $r, $g, $b, $transaprencyAmount); - imagefilledrectangle($this->imageResized, $positionArray['x1'], $positionArray['y1'], $positionArray['x2'], $positionArray['y2'], $transparent); - } - - ## -------------------------------------------------------- - - public function addTextToCaptionBox($text, $fontColor='#fff', $fontSize = 12, $angle = 0, $font = null) - # - # Author: Jarrod Oberto - # Date: 03 Aug 11 - # Purpose: Simplify adding text to a caption box by automatically - # locating the center of the caption box - # Params in: The usually text paams (less a couple) - # Params out: n/a - # Notes: - # - { - - // *** Get the caption box measurements - if (count($this->captionBoxPositionArray) == 4) { - $x1 = $this->captionBoxPositionArray['x1']; - $x2 = $this->captionBoxPositionArray['x2']; - $y1 = $this->captionBoxPositionArray['y1']; - $y2 = $this->captionBoxPositionArray['y2']; - } else { - if ($this->debug) { throw new Exception('No caption box found.'); }else{ return false; } - } - - - // *** Get text font - $font = $this->getTextFont($font); - - // *** Get text size - $textSizeArray = $this->getTextSize($fontSize, $angle, $font, $text); - $textWidth = $textSizeArray['width']; - $textHeight = $textSizeArray['height']; - - // *** Find the width/height middle points - $boxXMiddle = (($x2 - $x1) / 2); - $boxYMiddle = (($y2 - $y1) / 2); - - // *** Box middle - half the text width/height - $xPos = ($x1 + $boxXMiddle) - ($textWidth/2); - $yPos = ($y1 + $boxYMiddle) - ($textHeight/2); - - $pos = $xPos . 'x' . $yPos; - - $this->addText($text, $pos, $padding = 0, $fontColor, $fontSize, $angle, $font); - - } - - ## -------------------------------------------------------- - - private function calculateCaptionBoxPosition($side, $thickness, $padding) - { - $positionArray = array(); - - switch ($side) { - case 't': - $positionArray['x1'] = 0; - $positionArray['y1'] = $padding; - $positionArray['x2'] = $this->width; - $positionArray['y2'] = $thickness + $padding; - break; - case 'r': - $positionArray['x1'] = $this->width - $thickness - $padding; - $positionArray['y1'] = 0; - $positionArray['x2'] = $this->width - $padding; - $positionArray['y2'] = $this->height; - break; - case 'b': - $positionArray['x1'] = 0; - $positionArray['y1'] = $this->height - $thickness - $padding; - $positionArray['x2'] = $this->width; - $positionArray['y2'] = $this->height - $padding; - break; - case 'l': - $positionArray['x1'] = $padding; - $positionArray['y1'] = 0; - $positionArray['x2'] = $thickness + $padding; - $positionArray['y2'] = $this->height; - break; - - default: - break; - } - - return $positionArray; - - } - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Get EXIF Data -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function getExif($debug=false) - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Get image EXIF data - # Param in: n/a - # Param out: An associate array of EXIF data - # Reference: - # Notes: - # 23 May 13 : added orientation flag -jco - # - { - - if (!$this->debug || !$debug) { $debug = false; } - - // *** Check all is good - check the EXIF library exists and the file exists, too. - if (!$this->testEXIFInstalled()) { if ($debug) { throw new Exception('The EXIF Library is not installed.'); }else{ return array(); }}; - if (!file_exists($this->fileName)) { if ($debug) { throw new Exception('Image not found.'); }else{ return array(); }}; - if ($this->fileExtension != '.jpg') { if ($debug) { throw new Exception('Metadata not supported for this image type.'); }else{ return array(); }}; - $exifData = exif_read_data($this->fileName, 'IFD0'); - - // *** Format the apperture value - $ev = $exifData['ApertureValue']; - $apPeicesArray = explode('/', $ev); - if (count($apPeicesArray) == 2) { - $apertureValue = round($apPeicesArray[0] / $apPeicesArray[1], 2, PHP_ROUND_HALF_DOWN) . ' EV'; - } else { $apertureValue = '';} - - // *** Format the focal length - $focalLength = $exifData['FocalLength']; - $flPeicesArray = explode('/', $focalLength); - if (count($flPeicesArray) == 2) { - $focalLength = $flPeicesArray[0] / $flPeicesArray[1] . '.0 mm'; - } else { $focalLength = '';} - - // *** Format fNumber - $fNumber = $exifData['FNumber']; - $fnPeicesArray = explode('/', $fNumber); - if (count($fnPeicesArray) == 2) { - $fNumber = $fnPeicesArray[0] / $fnPeicesArray[1]; - } else { $fNumber = '';} - - // *** Resolve ExposureProgram - if (isset($exifData['ExposureProgram'])) { $ep = $exifData['ExposureProgram']; } - if (isset($ep)) { $ep = $this->resolveExposureProgram($ep); } - - - // *** Resolve MeteringMode - $mm = $exifData['MeteringMode']; - $mm = $this->resolveMeteringMode($mm); - - // *** Resolve Flash - $flash = $exifData['Flash']; - $flash = $this->resolveFlash($flash); - - - if (isset($exifData['Make'])) { - $exifDataArray['make'] = $exifData['Make']; - } else { $exifDataArray['make'] = ''; } - - if (isset($exifData['Model'])) { - $exifDataArray['model'] = $exifData['Model']; - } else { $exifDataArray['model'] = ''; } - - if (isset($exifData['DateTime'])) { - $exifDataArray['date'] = $exifData['DateTime']; - } else { $exifDataArray['date'] = ''; } - - if (isset($exifData['ExposureTime'])) { - $exifDataArray['exposure time'] = $exifData['ExposureTime'] . ' sec.'; - } else { $exifDataArray['exposure time'] = ''; } - - if ($apertureValue != '') { - $exifDataArray['aperture value'] = $apertureValue; - } else { $exifDataArray['aperture value'] = ''; } - - if (isset($exifData['COMPUTED']['ApertureFNumber'])) { - $exifDataArray['f-stop'] = $exifData['COMPUTED']['ApertureFNumber']; - } else { $exifDataArray['f-stop'] = ''; } - - if (isset($exifData['FNumber'])) { - $exifDataArray['fnumber'] = $exifData['FNumber']; - } else { $exifDataArray['fnumber'] = ''; } - - if ($fNumber != '') { - $exifDataArray['fnumber value'] = $fNumber; - } else { $exifDataArray['fnumber value'] = ''; } - - if (isset($exifData['ISOSpeedRatings'])) { - $exifDataArray['iso'] = $exifData['ISOSpeedRatings']; - } else { $exifDataArray['iso'] = ''; } - - if ($focalLength != '') { - $exifDataArray['focal length'] = $focalLength; - } else { $exifDataArray['focal length'] = ''; } - - if (isset($ep)) { - $exifDataArray['exposure program'] = $ep; - } else { $exifDataArray['exposure program'] = ''; } - - if ($mm != '') { - $exifDataArray['metering mode'] = $mm; - } else { $exifDataArray['metering mode'] = ''; } - - if ($flash != '') { - $exifDataArray['flash status'] = $flash; - } else { $exifDataArray['flash status'] = ''; } - - if (isset($exifData['Artist'])) { - $exifDataArray['creator'] = $exifData['Artist'] ; - } else { $exifDataArray['creator'] = ''; } - - if (isset($exifData['Copyright'])) { - $exifDataArray['copyright'] = $exifData['Copyright']; - } else { $exifDataArray['copyright'] = ''; } - - // *** Orientation - if (isset($exifData['Orientation'])) { - $exifDataArray['orientation'] = $exifData['Orientation']; - } else { $exifDataArray['orientation'] = ''; } - - return $exifDataArray; - } - - ## -------------------------------------------------------- - - private function resolveExposureProgram($ep) - { - switch ($ep) { - case 0: - $ep = ''; - break; - case 1: - $ep = 'manual'; - break; - case 2: - $ep = 'normal program'; - break; - case 3: - $ep = 'aperture priority'; - break; - case 4: - $ep = 'shutter priority'; - break; - case 5: - $ep = 'creative program'; - break; - case 6: - $ep = 'action program'; - break; - case 7: - $ep = 'portrait mode'; - break; - case 8: - $ep = 'landscape mode'; - break; - - default: - break; - } - - return $ep; - } - - ## -------------------------------------------------------- - - private function resolveMeteringMode($mm) - { - switch ($mm) { - case 0: - $mm = 'unknown'; - break; - case 1: - $mm = 'average'; - break; - case 2: - $mm = 'center weighted average'; - break; - case 3: - $mm = 'spot'; - break; - case 4: - $mm = 'multi spot'; - break; - case 5: - $mm = 'pattern'; - break; - case 6: - $mm = 'partial'; - break; - case 255: - $mm = 'other'; - break; - - default: - break; - } - - return $mm; - } - - ## -------------------------------------------------------- - - private function resolveFlash($flash) - { - switch ($flash) { - case 0: - $flash = 'flash did not fire'; - break; - case 1: - $flash = 'flash fired'; - break; - case 5: - $flash = 'strobe return light not detected'; - break; - case 7: - $flash = 'strobe return light detected'; - break; - case 9: - $flash = 'flash fired, compulsory flash mode'; - break; - case 13: - $flash = 'flash fired, compulsory flash mode, return light not detected'; - break; - case 15: - $flash = 'flash fired, compulsory flash mode, return light detected'; - break; - case 16: - $flash = 'flash did not fire, compulsory flash mode'; - break; - case 24: - $flash = 'flash did not fire, auto mode'; - break; - case 25: - $flash = 'flash fired, auto mode'; - break; - case 29: - $flash = 'flash fired, auto mode, return light not detected'; - break; - case 31: - $flash = 'flash fired, auto mode, return light detected'; - break; - case 32: - $flash = 'no flash function'; - break; - case 65: - $flash = 'flash fired, red-eye reduction mode'; - break; - case 69: - $flash = 'flash fired, red-eye reduction mode, return light not detected'; - break; - case 71: - $flash = 'flash fired, red-eye reduction mode, return light detected'; - break; - case 73: - $flash = 'flash fired, compulsory flash mode, red-eye reduction mode'; - break; - case 77: - $flash = 'flash fired, compulsory flash mode, red-eye reduction mode, return light not detected'; - break; - case 79: - $flash = 'flash fired, compulsory flash mode, red-eye reduction mode, return light detected'; - break; - case 89: - $flash = 'flash fired, auto mode, red-eye reduction mode'; - break; - case 93: - $flash = 'flash fired, auto mode, return light not detected, red-eye reduction mode'; - break; - case 95: - $flash = 'flash fired, auto mode, return light detected, red-eye reduction mode'; - break; - - default: - break; - } - - return $flash; - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Get IPTC Data -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Write IPTC Data -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function writeIPTCcaption($value) - # Caption - { - $this->writeIPTC(120, $value); - } - - ## -------------------------------------------------------- - - public function writeIPTCwriter($value) - { - //$this->writeIPTC(65, $value); - } - - ## -------------------------------------------------------- - - private function writeIPTC($dat, $value) - { - - # LIMIT TO JPG - - $caption_block = $this->iptc_maketag(2, $dat, $value); - $image_string = iptcembed($caption_block, $this->fileName); - file_put_contents('iptc.jpg', $image_string); - } - -## -------------------------------------------------------- - - private function iptc_maketag($rec,$dat,$val) - # Author: Thies C. Arntzen - # Purpose: Function to format the new IPTC text - # Param in: $rec: Application record. (We’re working with #2) - # $dat: Index. (120 for caption, 118 for contact. See the IPTC IIM - # specification: - # http://www.iptc.org/std/IIM/4.1/specification/IIMV4.1.pdf - # $val: Value/data/text. Make sure this is within the length - # constraints of the IPTC IIM specification - # Ref: http://blog.peterhaza.no/working-with-image-meta-data-in-exif-and-iptc-headers-from-php/ - # http://php.net/manual/en/function.iptcembed.php - # - { - $len = strlen($val); - if ($len < 0x8000) - return chr(0x1c).chr($rec).chr($dat). - chr($len >> 8). - chr($len & 0xff). - $val; - else - return chr(0x1c).chr($rec).chr($dat). - chr(0x80).chr(0x04). - chr(($len >> 24) & 0xff). - chr(($len >> 16) & 0xff). - chr(($len >> 8 ) & 0xff). - chr(($len ) & 0xff). - $val; - } - - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Write XMP Data -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - //http://xmpphptoolkit.sourceforge.net/ - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Add Text -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addText($text, $pos = '20x20', $padding = 0, $fontColor='#fff', $fontSize = 12, $angle = 0, $font = null) - # Author: Jarrod Oberto - # Date: 18-11-09 - # Purpose: Add text to an image - # Param in: - # Param out: - # Reference: http://php.net/manual/en/function.imagettftext.php - # Notes: Make sure you supply the font. - # - { - - // *** Convert color - $rgbArray = $this->formatColor($fontColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - - // *** Get text font - $font = $this->getTextFont($font); - - // *** Get text size - $textSizeArray = $this->getTextSize($fontSize, $angle, $font, $text); - $textWidth = $textSizeArray['width']; - $textHeight = $textSizeArray['height']; - - // *** Find co-ords to place text - $posArray = $this->calculatePosition($pos, $padding, $textWidth, $textHeight, false); - $x = $posArray['width']; - $y = $posArray['height']; - - $fontColor = imagecolorallocate($this->imageResized, $r, $g, $b); - - // *** Add text - imagettftext($this->imageResized, $fontSize, $angle, $x, $y, $fontColor, $font, $text); - } - - ## -------------------------------------------------------- - - private function getTextFont($font) - { - // *** Font path (shou - $fontPath = dirname(__FILE__) . '/' . $this->fontDir; - - - // *** The below is/may be needed depending on your version (see ref) - putenv('GDFONTPATH=' . realpath('.')); - - // *** Check if the passed in font exsits... - if ($font == null || !file_exists($font)) { - - // *** ...If not, default to this font. - $font = $fontPath . '/arimo.ttf'; - - // *** Check our default font exists... - if (!file_exists($font)) { - - // *** If not, return false - if ($this->debug) { throw new Exception('Font not found'); }else{ return false; } - } - } - - return $font; - - } - - ## -------------------------------------------------------- - - private function getTextSize($fontSize, $angle, $font, $text) - { - - // *** Define box (so we can get the width) - $box = @imageTTFBbox($fontSize, $angle, $font, $text); - - // *** Get width of text from dimensions - $textWidth = abs($box[4] - $box[0]); - - // *** Get height of text from dimensions (should also be same as $fontSize) - $textHeight = abs($box[5] - $box[1]); - - return array('height' => $textHeight, 'width' => $textWidth); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Add Watermark -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addWatermark($watermarkImage, $pos, $padding = 0, $opacity = 0) - # Author: Jarrod Oberto - # Date: 18-11-09 - # Purpose: Add watermark image - # Param in: (str) $watermark: The watermark image - # (str) $pos: Could be a pre-determined position such as: - # tl = top left, - # t = top (middle), - # tr = top right, - # l = left, - # m = middle, - # r = right, - # bl = bottom left, - # b = bottom (middle), - # br = bottom right - # Or, it could be a co-ordinate position such as: 50x100 - # - # (int) $padding: If using a pre-determined position you can - # adjust the padding from the edges by passing an amount - # in pixels. If using co-ordinates, this value is ignored. - # Param out: - # Reference: http://www.php.net/manual/en/image.examples-watermark.php - # Notes: Based on example in reference. - # - # - { - - // Load the stamp and the photo to apply the watermark to - $stamp = $this->openImage ($watermarkImage); # stamp - $im = $this->imageResized; # photo - - // *** Get stamps width and height - $sx = imagesx($stamp); - $sy = imagesy($stamp); - - // *** Find co-ords to place image - $posArray = $this->calculatePosition($pos, $padding, $sx, $sy); - $x = $posArray['width']; - $y = $posArray['height']; - - // *** Set watermark opacity - if (fix_strtolower(strrchr($watermarkImage, '.')) == '.png') { - - $opacity = $this->invertTransparency($opacity, 100); - $this->filterOpacity($stamp, $opacity); - } - - // Copy the watermark image onto our photo - imagecopy($im, $stamp, $x, $y, 0, 0, imagesx($stamp), imagesy($stamp)); - - } - - ## -------------------------------------------------------- - - private function calculatePosition($pos, $padding, $assetWidth, $assetHeight, $upperLeft = true) - # - # Author: Jarrod Oberto - # Date: 08-05-11 - # Purpose: Calculate the x, y pixel cordinates of the asset to place - # Params in: (str) $pos: Either something like: "tl", "l", "br" or an - # exact position like: "100x50" - # (int) $padding: The amount of padding from the edge. Only - # used for the predefined $pos. - # (int) $assetWidth: The width of the asset to add to the image - # (int) $assetHeight: The height of the asset to add to the image - # (bol) $upperLeft: if true, the asset will be positioned based - # on the upper left x, y coords. If false, it means you're - # using the lower left as the basepoint and this will - # convert it to the upper left position - # Params out: - # NOTE: this is done from the UPPER left corner!! But will convert lower - # left basepoints to upper left if $upperleft is set to false - # - # - { - $pos = fix_strtolower($pos); - - // *** If co-ords have been entered - if (strstr($pos, 'x')) { - $pos = str_replace(' ', '', $pos); - - $xyArray = explode('x', $pos); - list($width, $height) = $xyArray; - - } else { - - switch ($pos) { - case 'tl': - $width = 0 + $padding; - $height = 0 + $padding; - break; - - case 't': - $width = ($this->width / 2) - ($assetWidth / 2); - $height = 0 + $padding; - break; - - case 'tr': - $width = $this->width - $assetWidth - $padding; - $height = 0 + $padding;; - break; - - case 'l': - $width = 0 + $padding; - $height = ($this->height / 2) - ($assetHeight / 2); - break; - - case 'm': - $width = ($this->width / 2) - ($assetWidth / 2); - $height = ($this->height / 2) - ($assetHeight / 2); - break; - - case 'r': - $width = $this->width - $assetWidth - $padding; - $height = ($this->height / 2) - ($assetHeight / 2); - break; - - case 'bl': - $width = 0 + $padding; - $height = $this->height - $assetHeight - $padding; - break; - - case 'b': - $width = ($this->width / 2) - ($assetWidth / 2); - $height = $this->height - $assetHeight - $padding; - break; - - case 'br': - $width = $this->width - $assetWidth - $padding; - $height = $this->height - $assetHeight - $padding; - break; - - default: - $width = 0; - $height = 0; - break; - } - } - - if (!$upperLeft) { - $height = $height + $assetHeight; - } - - return array('width' => $width, 'height' => $height); - } - - - ## -------------------------------------------------------- - - private function filterOpacity(&$img, $opacity = 75) - # - # Author: aiden dot mail at freemail dot hu - # Author date: 29-03-08 08:16 - # Date added: 08-05-11 - # Purpose: Change opacity of image - # Params in: $img: Image resource id - # (int) $opacity: the opacity amount: 0-100, 100 being not opaque. - # Params out: (bool) true on success, else false - # Ref: http://www.php.net/manual/en/function.imagefilter.php#82162 - # Notes: png only - # - { - - if (!isset($opacity)) { - return false; - } - - if ($opacity == 100) { - return true; - } - - $opacity /= 100; - - //get image width and height - $w = imagesx($img); - $h = imagesy($img); - - //turn alpha blending off - imagealphablending($img, false); - - //find the most opaque pixel in the image (the one with the smallest alpha value) - $minalpha = 127; - for ($x = 0; $x < $w; $x++) - for ($y = 0; $y < $h; $y++) { - $alpha = ( imagecolorat($img, $x, $y) >> 24 ) & 0xFF; - if ($alpha < $minalpha) { - $minalpha = $alpha; - } - } - - //loop through image pixels and modify alpha for each - for ($x = 0; $x < $w; $x++) { - for ($y = 0; $y < $h; $y++) { - //get current alpha value (represents the TANSPARENCY!) - $colorxy = imagecolorat($img, $x, $y); - $alpha = ( $colorxy >> 24 ) & 0xFF; - //calculate new alpha - if ($minalpha !== 127) { - $alpha = 127 + 127 * $opacity * ( $alpha - 127 ) / ( 127 - $minalpha ); - } else { - $alpha += 127 * $opacity; - } - //get the color index with new alpha - $alphacolorxy = imagecolorallocatealpha($img, ( $colorxy >> 16 ) & 0xFF, ( $colorxy >> 8 ) & 0xFF, $colorxy & 0xFF, $alpha); - //set pixel with the new color + opacity - if (!imagesetpixel($img, $x, $y, $alphacolorxy)) { - - return false; - } - } - } - - return true; - } - -## -------------------------------------------------------- - - private function openImage($file) - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: - # Param in: - # Param out: n/a - # Reference: - # Notes: - # - { - - if (!file_exists($file) && !$this->checkStringStartsWith('http://', $file)) { if ($this->debug) { throw new Exception('Image not found.'); }else{ throw new Exception(); }}; - - // *** Get extension - $extension = strrchr($file, '.'); - $extension = fix_strtolower($extension); - switch($extension) - { - case '.jpg': - case '.jpeg': - $img = @imagecreatefromjpeg($file); - break; - case '.gif': - $img = @imagecreatefromgif($file); - break; - case '.png': - $img = @imagecreatefrompng($file); - break; - case '.bmp': - $img = @$this->imagecreatefrombmp($file); - break; - case '.psd': - $img = @$this->imagecreatefrompsd($file); - break; - - - // ... etc - - default: - $img = false; - break; - } - - return $img; - } - -## -------------------------------------------------------- - - public function reset() - # - # Author: Jarrod Oberto - # Date: 30-08-11 - # Purpose: Reset the resource (allow further editing) - # Params in: - # Params out: - # Notes: - # - { - $this->__construct($this->fileName); - } - -## -------------------------------------------------------- - - public function saveImage($savePath, $imageQuality="100") - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Saves the image - # Param in: $savePath: Where to save the image including filename: - # $imageQuality: image quality you want the image saved at 0-100 - # Param out: n/a - # Reference: - # Notes: * gif doesn't have a quality parameter - # * jpg has a quality setting 0-100 (100 being the best) - # * png has a quality setting 0-9 (0 being the best) - # - # * bmp files have no native support for bmp files. We use a - # third party class to save as bmp. - { - - // *** Perform a check or two. - if (!is_resource($this->imageResized)) { if ($this->debug) { throw new Exception('saveImage: This is not a resource.'); }else{ throw new Exception(); }} - $fileInfoArray = pathInfo($savePath); - clearstatcache(); - if (!is_writable($fileInfoArray['dirname'])) { if ($this->debug) { throw new Exception('The path is not writable. Please check your permissions.'); }else{ throw new Exception(); }} - - // *** Get extension - $extension = strrchr($savePath, '.'); - $extension = fix_strtolower($extension); - - $error = ''; - - switch($extension) - { - case '.jpg': - case '.jpeg': - $this->checkInterlaceImage($this->isInterlace); - if (imagetypes() & IMG_JPG) { - imagejpeg($this->imageResized, $savePath, $imageQuality); - } else { $error = 'jpg'; } - break; - - case '.gif': - $this->checkInterlaceImage($this->isInterlace); - if (imagetypes() & IMG_GIF) { - imagegif($this->imageResized, $savePath); - } else { $error = 'gif'; } - break; - - case '.png': - // *** Scale quality from 0-100 to 0-9 - $scaleQuality = round(($imageQuality/100) * 9); - - // *** Invert qualit setting as 0 is best, not 9 - $invertScaleQuality = 9 - $scaleQuality; - - $this->checkInterlaceImage($this->isInterlace); - if (imagetypes() & IMG_PNG) { - imagepng($this->imageResized, $savePath, $invertScaleQuality); - } else { $error = 'png'; } - break; - - case '.bmp': - file_put_contents($savePath, $this->GD2BMPstring($this->imageResized)); - break; - - - // ... etc - - default: - // *** No extension - No save. - $this->errorArray[] = 'This file type (' . $extension . ') is not supported. File not saved.'; - break; - } - - //imagedestroy($this->imageResized); - - // *** Display error if a file type is not supported. - if ($error != '') { - $this->errorArray[] = $error . ' support is NOT enabled. File not saved.'; - } - } - -## -------------------------------------------------------- - - public function displayImage($fileType = 'jpg', $imageQuality="100") - # Author: Jarrod Oberto - # Date: 18-11-09 - # Purpose: Display images directly to the browser - # Param in: The image type you want to display - # Param out: - # Reference: - # Notes: - # - { - - if (!is_resource($this->imageResized)) { if ($this->debug) { throw new Exception('saveImage: This is not a resource.'); }else{ throw new Exception(); }} - - switch($fileType) - { - case 'jpg': - case 'jpeg': - header('Content-type: image/jpeg'); - imagejpeg($this->imageResized, '', $imageQuality); - break; - case 'gif': - header('Content-type: image/gif'); - imagegif($this->imageResized); - break; - case 'png': - header('Content-type: image/png'); - - // *** Scale quality from 0-100 to 0-9 - $scaleQuality = round(($imageQuality/100) * 9); - - // *** Invert qualit setting as 0 is best, not 9 - $invertScaleQuality = 9 - $scaleQuality; - - imagepng($this->imageResized, '', $invertScaleQuality); - break; - case 'bmp': - echo 'bmp file format is not supported.'; - break; - - // ... etc - - default: - // *** No extension - No save. - break; - } - - - //imagedestroy($this->imageResized); - } - -## -------------------------------------------------------- - - public function setTransparency($bool) - # Sep 2011 - { - $this->keepTransparency = $bool; - } - -## -------------------------------------------------------- - - public function setFillColor($value) - # Sep 2011 - # Param in: (mixed) $value: (array) Could be an array of RGB - # (str) Could be hex #ffffff or #fff, fff, ffffff - # - # If the keepTransparency is set to false, then no transparency is to be used. - # This is ideal when you want to save as jpg. - # - # this method allows you to set the background color to use instead of - # transparency. - # - { - $colorArray = $this->formatColor($value); - $this->fillColorArray = $colorArray; - } - -## -------------------------------------------------------- - - public function setCropFromTop($value) - # Sep 2011 - { - $this->cropFromTopPercent = $value; - } - -## -------------------------------------------------------- - - public function testGDInstalled() - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Test to see if GD is installed - # Param in: n/a - # Param out: (bool) True is gd extension loaded otherwise false - # Reference: - # Notes: - # - { - if(extension_loaded('gd') && function_exists('gd_info')) - { - $gdInstalled = true; - } - else - { - $gdInstalled = false; - } - - return $gdInstalled; - } - -## -------------------------------------------------------- - - public function testEXIFInstalled() - # Author: Jarrod Oberto - # Date: 08-05-11 - # Purpose: Test to see if EXIF is installed - # Param in: n/a - # Param out: (bool) True is exif extension loaded otherwise false - # Reference: - # Notes: - # - { - if(extension_loaded('exif')) - { - $exifInstalled = true; - } - else - { - $exifInstalled = false; - } - - return $exifInstalled; - } - -## -------------------------------------------------------- - - public function testIsImage($image) - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Test if file is an image - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - if ($image) - { - $fileIsImage = true; - } - else - { - $fileIsImage = false; - } - - return $fileIsImage; - } - -## -------------------------------------------------------- - - public function testFunct() - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Test Function - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - echo $this->height; - } - -## -------------------------------------------------------- - - public function setForceStretch($value) - # Author: Jarrod Oberto - # Date: 23-12-10 - # Purpose: - # Param in: (bool) $value - # Param out: n/a - # Reference: - # Notes: - # - { - $this->forceStretch = $value; - } - -## -------------------------------------------------------- - - public function setFile($fileName) - # Author: Jarrod Oberto - # Date: 28-02-08 - # Purpose: - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - self::__construct($fileName); - } - -## -------------------------------------------------------- - - public function getFileName() - # Author: Jarrod Oberto - # Date: 10-09-08 - # Purpose: - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - return $this->fileName; - } - -## -------------------------------------------------------- - - public function getHeight() - { - return $this->height; - } - -## -------------------------------------------------------- - - public function getWidth() - { - return $this->width; - } - -## -------------------------------------------------------- - - public function getOriginalHeight() - { - return $this->heightOriginal; - } - -## -------------------------------------------------------- - - public function getOriginalWidth() - { - return $this->widthOriginal; - } - -## -------------------------------------------------------- - - public function getErrors() - # Author: Jarrod Oberto - # Date: 19-11-09 - # Purpose: Returns the error array - # Param in: n/a - # Param out: Array of errors - # Reference: - # Notes: - # - { - return $this->errorArray; - } - -## -------------------------------------------------------- - - private function checkInterlaceImage($isEnabled) - # jpg will use progressive (they don't use interace) - { - if ($isEnabled) { - imageinterlace($this->imageResized, $isEnabled); - } - } - -## -------------------------------------------------------- - - protected function formatColor($value) - # Author: Jarrod Oberto - # Date: 09-05-11 - # Purpose: Determine color method passed in and return color as RGB - # Param in: (mixed) $value: (array) Could be an array of RGB - # (str) Could be hex #ffffff or #fff, fff, ffffff - # Param out: - # Reference: - # Notes: - # - { - $rgbArray = array(); - - // *** If it's an array it should be R, G, B - if (is_array($value)) { - - if (key($value) == 0 && count($value) == 3) { - - $rgbArray['r'] = $value[0]; - $rgbArray['g'] = $value[1]; - $rgbArray['b'] = $value[2]; - - } else { - $rgbArray = $value; - } - } else if (fix_strtolower($value) == 'transparent') { - - $rgbArray = array( - 'r' => 255, - 'g' => 255, - 'b' => 255, - 'a' => 127 - ); - - } else { - - // *** ...Else it should be hex. Let's make it RGB - $rgbArray = $this -> hex2dec($value); - } - - return $rgbArray; - } - - ## -------------------------------------------------------- - - function hex2dec($hex) - # Purpose: Convert #hex color to RGB - { - $color = str_replace('#', '', $hex); - - if (strlen($color) == 3) { - $color = $color . $color; - } - - $rgb = array( - 'r' => hexdec(substr($color, 0, 2)), - 'g' => hexdec(substr($color, 2, 2)), - 'b' => hexdec(substr($color, 4, 2)), - 'a' => 0 - ); - return $rgb; - } - - ## -------------------------------------------------------- - - private function createImageColor ($colorArray) - { - $r = $colorArray['r']; - $g = $colorArray['g']; - $b = $colorArray['b']; - - return imagecolorallocate($this->imageResized, $r, $g, $b); - } - - ## -------------------------------------------------------- - - private function testColorExists($colorArray) - { - $r = $colorArray['r']; - $g = $colorArray['g']; - $b = $colorArray['b']; - - if (imagecolorexact($this->imageResized, $r, $g, $b) == -1) { - return false; - } else { - return true; - } - } - - ## -------------------------------------------------------- - - private function findUnusedGreen() - # Purpose: We find a green color suitable to use like green-screen effect. - # Therefore, the color must not exist in the image. - { - $green = 255; - - do { - - $greenChroma = array(0, $green, 0); - $colorArray = $this->formatColor($greenChroma); - $match = $this->testColorExists($colorArray); - $green--; - - } while ($match == false && $green > 0); - - // *** If no match, just bite the bullet and use green value of 255 - if (!$match) { - $greenChroma = array(0, $green, 0); - } - - return $greenChroma; - } - - ## -------------------------------------------------------- - - private function findUnusedBlue() - # Purpose: We find a green color suitable to use like green-screen effect. - # Therefore, the color must not exist in the image. - { - $blue = 255; - - do { - - $blueChroma = array(0, 0, $blue); - $colorArray = $this->formatColor($blueChroma); - $match = $this->testColorExists($colorArray); - $blue--; - - } while ($match == false && $blue > 0); - - // *** If no match, just bite the bullet and use blue value of 255 - if (!$match) { - $blueChroma = array(0, 0, $blue); - } - - return $blueChroma; - } - - ## -------------------------------------------------------- - - private function invertTransparency($value, $originalMax, $invert=true) - # Purpose: This does two things: - # 1) Convert the range from 0-127 to 0-100 - # 2) Inverts value to 100 is not transparent while 0 is fully - # transparent (like Photoshop) - { - // *** Test max range - if ($value > $originalMax) { - $value = $originalMax; - } - - // *** Test min range - if ($value < 0) { - $value = 0; - } - - if ($invert) { - return $originalMax - (($value/100) * $originalMax); - } else { - return ($value/100) * $originalMax; - } - } - - ## -------------------------------------------------------- - - private function transparentImage($src) - { - // *** making images with white bg transparent - $r1 = 0; - $g1 = 255; - $b1 = 0; - for ($x = 0; $x < imagesx($src); ++$x) { - for ($y = 0; $y < imagesy($src); ++$y) { - $color = imagecolorat($src, $x, $y); - $r = ($color >> 16) & 0xFF; - $g = ($color >> 8) & 0xFF; - $b = $color & 0xFF; - for ($i = 0; $i < 270; $i++) { - //if ($r . $g . $b == ($r1 + $i) . ($g1 + $i) . ($b1 + $i)) { - if ($r == 0 && $g == 255 && $b == 0) { - //if ($g == 255) { - $trans_colour = imagecolorallocatealpha($src, 0, 0, 0, 127); - imagefill($src, $x, $y, $trans_colour); - } - } - } - } - - return $src; - } - - ## -------------------------------------------------------- - - function checkStringStartsWith($needle, $haystack) - # Check if a string starts with a specific pattern - { - return (substr($haystack, 0, strlen($needle))==$needle); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - BMP SUPPORT (SAVING) - James Heinrich -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - private function GD2BMPstring(&$gd_image) - # Author: James Heinrich - # Purpose: Save file as type bmp - # Param in: The image canvas (passed as ref) - # Param out: - # Reference: - # Notes: This code was stripped out of two external files - # (phpthumb.bmp.php,phpthumb.functions.php) and added below to - # avoid dependancies. - # - { - $imageX = ImageSX($gd_image); - $imageY = ImageSY($gd_image); - - $BMP = ''; - for ($y = ($imageY - 1); $y >= 0; $y--) { - $thisline = ''; - for ($x = 0; $x < $imageX; $x++) { - $argb = $this->GetPixelColor($gd_image, $x, $y); - $thisline .= chr($argb['blue']).chr($argb['green']).chr($argb['red']); - } - while (strlen($thisline) % 4) { - $thisline .= "\x00"; - } - $BMP .= $thisline; - } - - $bmpSize = strlen($BMP) + 14 + 40; - // BITMAPFILEHEADER [14 bytes] - http://msdn.microsoft.com/library/en-us/gdi/bitmaps_62uq.asp - $BITMAPFILEHEADER = 'BM'; // WORD bfType; - $BITMAPFILEHEADER .= $this->LittleEndian2String($bmpSize, 4); // DWORD bfSize; - $BITMAPFILEHEADER .= $this->LittleEndian2String( 0, 2); // WORD bfReserved1; - $BITMAPFILEHEADER .= $this->LittleEndian2String( 0, 2); // WORD bfReserved2; - $BITMAPFILEHEADER .= $this->LittleEndian2String( 54, 4); // DWORD bfOffBits; - - // BITMAPINFOHEADER - [40 bytes] http://msdn.microsoft.com/library/en-us/gdi/bitmaps_1rw2.asp - $BITMAPINFOHEADER = $this->LittleEndian2String( 40, 4); // DWORD biSize; - $BITMAPINFOHEADER .= $this->LittleEndian2String( $imageX, 4); // LONG biWidth; - $BITMAPINFOHEADER .= $this->LittleEndian2String( $imageY, 4); // LONG biHeight; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 1, 2); // WORD biPlanes; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 24, 2); // WORD biBitCount; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 0, 4); // DWORD biCompression; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 0, 4); // DWORD biSizeImage; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 2835, 4); // LONG biXPelsPerMeter; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 2835, 4); // LONG biYPelsPerMeter; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 0, 4); // DWORD biClrUsed; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 0, 4); // DWORD biClrImportant; - - return $BITMAPFILEHEADER.$BITMAPINFOHEADER.$BMP; - } - -## -------------------------------------------------------- - - private function GetPixelColor(&$img, $x, $y) - # Author: James Heinrich - # Purpose: - # Param in: - # Param out: - # Reference: - # Notes: - # - { - if (!is_resource($img)) { - return false; - } - return @ImageColorsForIndex($img, @ImageColorAt($img, $x, $y)); - } - -## -------------------------------------------------------- - - private function LittleEndian2String($number, $minbytes=1) - # Author: James Heinrich - # Purpose: BMP SUPPORT (SAVING) - # Param in: - # Param out: - # Reference: - # Notes: - # - { - $intstring = ''; - while ($number > 0) { - $intstring = $intstring.chr($number & 255); - $number >>= 8; - } - return str_pad($intstring, $minbytes, "\x00", STR_PAD_RIGHT); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - BMP SUPPORT (READING) -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - private function ImageCreateFromBMP($filename) - # Author: DHKold - # Date: The 15th of June 2005 - # Version: 2.0B - # Purpose: To create an image from a BMP file. - # Param in: BMP file to open. - # Param out: Return a resource like the other ImageCreateFrom functions - # Reference: http://us3.php.net/manual/en/function.imagecreate.php#53879 - # Bug fix: Author: domelca at terra dot es - # Date: 06 March 2008 - # Fix: Correct 16bit BMP support - # Notes: - # - { - - //Ouverture du fichier en mode binaire - if (! $f1 = fopen($filename,"rb")) return FALSE; - - //1 : Chargement des ent�tes FICHIER - $FILE = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", fread($f1,14)); - if ($FILE['file_type'] != 19778) return FALSE; - - //2 : Chargement des ent�tes BMP - $BMP = unpack('Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel'. - '/Vcompression/Vsize_bitmap/Vhoriz_resolution'. - '/Vvert_resolution/Vcolors_used/Vcolors_important', fread($f1,40)); - $BMP['colors'] = pow(2,$BMP['bits_per_pixel']); - - if ($BMP['size_bitmap'] == 0) $BMP['size_bitmap'] = $FILE['file_size'] - $FILE['bitmap_offset']; - - $BMP['bytes_per_pixel'] = $BMP['bits_per_pixel']/8; - $BMP['bytes_per_pixel2'] = ceil($BMP['bytes_per_pixel']); - $BMP['decal'] = ($BMP['width']*$BMP['bytes_per_pixel']/4); - $BMP['decal'] -= floor($BMP['width']*$BMP['bytes_per_pixel']/4); - $BMP['decal'] = 4-(4*$BMP['decal']); - - if ($BMP['decal'] == 4) $BMP['decal'] = 0; - - //3 : Chargement des couleurs de la palette - $PALETTE = array(); - if ($BMP['colors'] < 16777216) - { - $PALETTE = unpack('V'.$BMP['colors'], fread($f1,$BMP['colors']*4)); - } - - //4 : Cr�ation de l'image - $IMG = fread($f1,$BMP['size_bitmap']); - $VIDE = chr(0); - - $res = imagecreatetruecolor($BMP['width'],$BMP['height']); - $P = 0; - $Y = $BMP['height']-1; - while ($Y >= 0) - { - $X=0; - while ($X < $BMP['width']) - { - if ($BMP['bits_per_pixel'] == 24) - $COLOR = unpack("V",substr($IMG,$P,3).$VIDE); - elseif ($BMP['bits_per_pixel'] == 16) - { - - /* - * BMP 16bit fix - * ================= - * - * Ref: http://us3.php.net/manual/en/function.imagecreate.php#81604 - * - * Notes: - * "don't work with bmp 16 bits_per_pixel. change pixel - * generator for this." - * - */ - - // *** Original code (don't work) - //$COLOR = unpack("n",substr($IMG,$P,2)); - //$COLOR[1] = $PALETTE[$COLOR[1]+1]; - - $COLOR = unpack("v",substr($IMG,$P,2)); - $blue = ($COLOR[1] & 0x001f) << 3; - $green = ($COLOR[1] & 0x07e0) >> 3; - $red = ($COLOR[1] & 0xf800) >> 8; - $COLOR[1] = $red * 65536 + $green * 256 + $blue; - - } - elseif ($BMP['bits_per_pixel'] == 8) - { - $COLOR = unpack("n",$VIDE.substr($IMG,$P,1)); - $COLOR[1] = $PALETTE[$COLOR[1]+1]; - } - elseif ($BMP['bits_per_pixel'] == 4) - { - $COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1)); - if (($P*2)%2 == 0) $COLOR[1] = ($COLOR[1] >> 4) ; else $COLOR[1] = ($COLOR[1] & 0x0F); - $COLOR[1] = $PALETTE[$COLOR[1]+1]; - } - elseif ($BMP['bits_per_pixel'] == 1) - { - $COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1)); - if (($P*8)%8 == 0) $COLOR[1] = $COLOR[1] >>7; - elseif (($P*8)%8 == 1) $COLOR[1] = ($COLOR[1] & 0x40)>>6; - elseif (($P*8)%8 == 2) $COLOR[1] = ($COLOR[1] & 0x20)>>5; - elseif (($P*8)%8 == 3) $COLOR[1] = ($COLOR[1] & 0x10)>>4; - elseif (($P*8)%8 == 4) $COLOR[1] = ($COLOR[1] & 0x8)>>3; - elseif (($P*8)%8 == 5) $COLOR[1] = ($COLOR[1] & 0x4)>>2; - elseif (($P*8)%8 == 6) $COLOR[1] = ($COLOR[1] & 0x2)>>1; - elseif (($P*8)%8 == 7) $COLOR[1] = ($COLOR[1] & 0x1); - $COLOR[1] = $PALETTE[$COLOR[1]+1]; - } - else - return FALSE; - - imagesetpixel($res,$X,$Y,$COLOR[1]); - $X++; - $P += $BMP['bytes_per_pixel']; - } - - $Y--; - $P+=$BMP['decal']; - } - //Fermeture du fichier - fclose($f1); - - return $res; - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - PSD SUPPORT (READING) -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - private function imagecreatefrompsd($fileName) - # Author: Tim de Koning - # Version: 1.3 - # Purpose: To create an image from a PSD file. - # Param in: PSD file to open. - # Param out: Return a resource like the other ImageCreateFrom functions - # Reference: http://www.kingsquare.nl/phppsdreader - # Notes: - # - { - if (file_exists($this->psdReaderPath)) { - - - include_once($this->psdReaderPath); - - $psdReader = new PhpPsdReader($fileName); - - if (isset($psdReader->infoArray['error'])) return ''; - else return $psdReader->getImage(); - } else { - return false; - } - } - -## -------------------------------------------------------- - - public function __destruct() { - if (is_resource($this->imageResized)) { - imagedestroy($this->imageResized); - } - } - -## -------------------------------------------------------- - -} - - - - -/* - * Example with some API calls (outdated): - * - * - * =============================== - * Compulsary - * =============================== - * - * include("classes/resize_class.php"); - * - * // *** Initialise object - * $magicianObj = new resize('images/cars/large/a.jpg'); - * - * // *** Turn off stretching (optional) - * $magicianObj -> setForceStretch(false); - * - * // *** Resize object - * $magicianObj -> resizeImage(150, 100, 0); - * - * =============================== - * Image options - can run none, one, or all. - * =============================== - * - * // *** Add watermark - * $magicianObj -> addWatermark('stamp.png'); - * - * // *** Add text - * $magicianObj -> addText('testing...'); - * - * =============================== - * Output options - can run one, or the other, or both. - * =============================== - * - * // *** Save image to disk - * $magicianObj -> saveImage('images/cars/large/b.jpg', 100); - * - * // *** Or output to screen (params in can be jpg, gif, png) - * $magicianObj -> displayImage('png'); - * - * =============================== - * Return options - return errors. nice for debuggin. - * =============================== - * - * // *** Return error array - * $errorArray = $magicianObj -> getErrors(); - * - * - * =============================== - * Cleanup options - not really neccessary, but good practice - * =============================== - * - * // *** Free used memory - * $magicianObj -> __destruct(); - */ -?> \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/include/utils.php b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/include/utils.php deleted file mode 100644 index 73819a48..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/include/utils.php +++ /dev/null @@ -1,486 +0,0 @@ - resizeImage($newwidth, $newheight, 'crop'); - $magicianObj -> saveImage($imgthumb,80); - return true; - } - return false; -} - -function create_img($imgfile, $imgthumb, $newwidth, $newheight="") { - if(image_check_memory_usage($imgfile,$newwidth,$newheight)){ - require_once('php_image_magician.php'); - $magicianObj = new imageLib($imgfile); - $magicianObj -> resizeImage($newwidth, $newheight, 'auto'); - $magicianObj -> saveImage($imgthumb,80); - return true; - }else{ - return false; - } -} - -function makeSize($size) { - $units = array('B','KB','MB','GB','TB'); - $u = 0; - while ( (round($size / 1024) > 0) && ($u < 4) ) { - $size = $size / 1024; - $u++; - } - return (number_format($size, 0) . " " . $units[$u]); -} - -function foldersize($path) { - $total_size = 0; - $files = scandir($path); - $cleanPath = rtrim($path, '/'). '/'; - - foreach($files as $t) { - if ($t != "." && $t != "..") { - $currentFile = $cleanPath . $t; - if (is_dir($currentFile)) { - $size = foldersize($currentFile); - $total_size += $size; - } - else { - $size = filesize($currentFile); - $total_size += $size; - } - } - } - - return $total_size; -} - -function filescount($path) { - $total_count = 0; - $files = scandir($path); - $cleanPath = rtrim($path, '/'). '/'; - - foreach($files as $t) { - if ($t != "." && $t != "..") { - $currentFile = $cleanPath . $t; - if (is_dir($currentFile)) { - $size = filescount($currentFile); - $total_count += $size; - } - else { - $total_count += 1; - } - } - } - - return $total_count; -} - -function create_folder($path=false,$path_thumbs=false){ - $oldumask = umask(0); - if ($path && !file_exists($path)) - mkdir($path, 0777, true); // or even 01777 so you get the sticky bit set - if($path_thumbs && !file_exists($path_thumbs)) - mkdir($path_thumbs, 0777, true) or die("$path_thumbs cannot be found"); // or even 01777 so you get the sticky bit set - umask($oldumask); -} - -function check_files_extensions_on_path($path,$ext){ - if(!is_dir($path)){ - $fileinfo = pathinfo($path); - if(!in_array(mb_strtolower($fileinfo['extension']),$ext)) - unlink($path); - }else{ - $files = scandir($path); - foreach($files as $file){ - check_files_extensions_on_path(trim($path,'/')."/".$file,$ext); - } - } -} - -function check_files_extensions_on_phar( $phar, &$files, $basepath, $ext ) { - foreach( $phar as $file ) - { - if( $file->isFile() ) - { - if(in_array(mb_strtolower($file->getExtension()),$ext)) - { - $files[] = $basepath.$file->getFileName( ); - } - } - else if( $file->isDir() ) - { - $iterator = new DirectoryIterator( $file ); - check_files_extensions_on_phar($iterator, $files, $basepath.$file->getFileName().'/', $ext); - } - } -} - -function fix_get_params($str){ - return strip_tags(preg_replace( "/[^a-zA-Z0-9\.\[\]_| -]/", '', $str)); -} - -function fix_filename($str,$transliteration){ - if($transliteration){ - if( function_exists( 'transliterator_transliterate' ) ) - { - $str = transliterator_transliterate( 'Accents-Any', $str ); - } - else - { - $str = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $str); - } - - $str = preg_replace( "/[^a-zA-Z0-9\.\[\]_| -]/", '', $str ); - } - - $str=str_replace(array('"',"'","/","\\"),"",$str); - $str=strip_tags($str); - - // Empty or incorrectly transliterated filename. - // Here is a point: a good file UNKNOWN_LANGUAGE.jpg could become .jpg in previous code. - // So we add that default 'file' name to fix that issue. - if( strpos( $str, '.' ) === 0 ) - { - $str = 'file'.$str; - } - - return trim( $str ); -} - -function fix_dirname($str){ - return str_replace('~',' ',dirname(str_replace(' ','~',$str))); -} - -function fix_strtoupper($str){ - if( function_exists( 'mb_strtoupper' ) ) - return mb_strtoupper($str); - else - return strtoupper($str); -} - - -function fix_strtolower($str){ - if( function_exists( 'mb_strtoupper' ) ) - return mb_strtolower($str); - else - return strtolower($str); -} - -function fix_path($path,$transliteration){ - $info=pathinfo($path); - $tmp_path = $info['dirname']; - $str=fix_filename($info['filename'],$transliteration); - if($tmp_path!="") - return $tmp_path.DIRECTORY_SEPARATOR.$str; - else - return $str; -} - -function base_url(){ - return sprintf( - "%s://%s", - isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http', - $_SERVER['HTTP_HOST'] - ); -} - -function config_loading($current_path,$fld){ - if(file_exists($current_path.$fld.".config")){ - require_once($current_path.$fld.".config"); - return true; - } - echo "!!!!".$parent=fix_dirname($fld); - if($parent!="." && !empty($parent)){ - config_loading($current_path,$parent); - } - - return false; -} - - -function image_check_memory_usage($img, $max_breedte, $max_hoogte){ - if(file_exists($img)){ - $K64 = 65536; // number of bytes in 64K - $memory_usage = memory_get_usage(); - $memory_limit = abs(intval(str_replace('M','',ini_get('memory_limit'))*1024*1024)); - $image_properties = getimagesize($img); - $image_width = $image_properties[0]; - $image_height = $image_properties[1]; - $image_bits = $image_properties['bits']; - $image_memory_usage = $K64 + ($image_width * $image_height * ($image_bits ) * 2); - $thumb_memory_usage = $K64 + ($max_breedte * $max_hoogte * ($image_bits ) * 2); - $memory_needed = intval($memory_usage + $image_memory_usage + $thumb_memory_usage); - - if($memory_needed > $memory_limit){ - ini_set('memory_limit',(intval($memory_needed/1024/1024)+5) . 'M'); - if(ini_get('memory_limit') == (intval($memory_needed/1024/1024)+5) . 'M'){ - return true; - }else{ - return false; - } - }else{ - return true; - } - }else{ - return false; - } -} - -function endsWith($haystack, $needle) -{ - return $needle === "" || substr($haystack, -strlen($needle)) === $needle; -} - -function new_thumbnails_creation($targetPath,$targetFile,$name,$current_path,$relative_image_creation,$relative_path_from_current_pos,$relative_image_creation_name_to_prepend,$relative_image_creation_name_to_append,$relative_image_creation_width,$relative_image_creation_height,$fixed_image_creation,$fixed_path_from_filemanager,$fixed_image_creation_name_to_prepend,$fixed_image_creation_to_append,$fixed_image_creation_width,$fixed_image_creation_height){ - //create relative thumbs - $all_ok=true; - if($relative_image_creation){ - foreach($relative_path_from_current_pos as $k=>$path){ - if($path!="" && $path[strlen($path)-1]!="/") $path.="/"; - if (!file_exists($targetPath.$path)) create_folder($targetPath.$path,false); - $info=pathinfo($name); - if(!endsWith($targetPath,$path)) - if(!create_img($targetFile, $targetPath.$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension'], $relative_image_creation_width[$k], $relative_image_creation_height[$k])) - $all_ok=false; - } - } - - //create fixed thumbs - if($fixed_image_creation){ - foreach($fixed_path_from_filemanager as $k=>$path){ - if($path!="" && $path[strlen($path)-1]!="/") $path.="/"; - $base_dir=$path.substr_replace($targetPath, '', 0, strlen($current_path)); - if (!file_exists($base_dir)) create_folder($base_dir,false); - $info=pathinfo($name); - if(!create_img($targetFile, $base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'], $fixed_image_creation_width[$k], $fixed_image_creation_height[$k])) - $all_ok=false; - } - } - return $all_ok; -} - - -// Get a remote file, using whichever mechanism is enabled -function get_file_by_url($url) { - if (ini_get('allow_url_fopen')) { - return file_get_contents($url); - } - if (!function_exists('curl_version')) { - return false; - } - - $ch = curl_init(); - - curl_setopt($ch, CURLOPT_HEADER, 0); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_URL, $url); - - $data = curl_exec($ch); - curl_close($ch); - - return $data; -} - -// test for dir/file writability properly -function is_really_writable($dir){ - $dir = rtrim($dir, '/'); - // linux, safe off - if (DIRECTORY_SEPARATOR == '/' && @ini_get("safe_mode") == FALSE){ - return is_writable($dir); - } - - // Windows, safe ON. (have to write a file :S) - if (is_dir($dir)){ - $dir = $dir.'/'.md5(mt_rand(1,1000).mt_rand(1,1000)); - - if (($fp = @fopen($dir, 'ab')) === FALSE){ - return FALSE; - } - - fclose($fp); - @chmod($dir, 0777); - @unlink($dir); - return TRUE; - } - elseif ( ! is_file($dir) || ($fp = @fopen($dir, 'ab')) === FALSE){ - return FALSE; - } - - fclose($fp); - return TRUE; -} - -/** - * Check if a function is callable. - * Some servers disable copy,rename etc. - * - * Returns TRUE if callable and everything is OK - * Otherwise returns FALSE - */ -function is_function_callable($name){ - if (function_exists($name) === FALSE) return FALSE; - $disabled = explode(',', ini_get('disable_functions')); - return !in_array($name, $disabled); -} - -// recursivly copies everything -function rcopy($source, $destination, $is_rec = FALSE) { - if (is_dir($source)) { - if ($is_rec === FALSE){ - $pinfo = pathinfo($source); - $destination = rtrim($destination, '/').DIRECTORY_SEPARATOR.$pinfo['basename']; - } - if (is_dir($destination) === FALSE){ - mkdir($destination, 0777, true); - } - - $files = scandir($source); - foreach ($files as $file){ - if ($file != "." && $file != "..") { - rcopy($source.DIRECTORY_SEPARATOR.$file, rtrim($destination, '/').DIRECTORY_SEPARATOR.$file, TRUE); - } - } - } - else { - if (file_exists($source)){ - if (is_dir($destination) === TRUE){ - $pinfo = pathinfo($source); - $dest2 = rtrim($destination, '/').DIRECTORY_SEPARATOR.$pinfo['basename']; - } - else { - $dest2 = $destination; - } - - copy($source, $dest2); - } - } -} - -// recursivly renames everything -// I know copy and rename could be done with just one function -// but i split the 2 because sometimes rename fails on windows -// Need more feedback from users and refactor if needed -function rrename($source, $destination, $is_rec = FALSE) { - if (is_dir($source)) { - if ($is_rec === FALSE){ - $pinfo = pathinfo($source); - $destination = rtrim($destination, '/').DIRECTORY_SEPARATOR.$pinfo['basename']; - } - if (is_dir($destination) === FALSE){ - mkdir($destination, 0777, true); - } - - $files = scandir($source); - foreach ($files as $file){ - if ($file != "." && $file != "..") { - rrename($source.DIRECTORY_SEPARATOR.$file, rtrim($destination, '/').DIRECTORY_SEPARATOR.$file, TRUE); - } - } - } - else { - if (file_exists($source)){ - if (is_dir($destination) === TRUE){ - $pinfo = pathinfo($source); - $dest2 = rtrim($destination, '/').DIRECTORY_SEPARATOR.$pinfo['basename']; - } - else { - $dest2 = $destination; - } - - rename($source, $dest2); - } - } -} - -// On windows rename leaves folders sometime -// This will clear leftover folders -// After more feedback will merge it with rrename -function rrename_after_cleaner($source) { - $files = scandir($source); - - foreach ($files as $file) { - if ($file != "." && $file != "..") { - if (is_dir($source.DIRECTORY_SEPARATOR.$file)){ - rrename_after_cleaner($source.DIRECTORY_SEPARATOR.$file); - } - else { - unlink($source.DIRECTORY_SEPARATOR.$file); - } - } - } - - return rmdir($source); -} - -function debugger($input, $trace = FALSE, $halt = FALSE){ - ob_start(); - - echo "
----- DEBUG DUMP -----"; - echo "

";
-    var_dump($input);
-    echo "
"; - - if ($trace){ - $debug = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); - - echo "
-----STACK TRACE-----"; - echo "
";
-        var_dump($debug);
-        echo "
"; - } - - echo ""; - echo "---------------------------
"; - - $ret = ob_get_contents(); - ob_end_clean(); - - echo $ret; - - if ($halt == TRUE){ - exit(); - } -} - -?> \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/Jplayer.swf b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/Jplayer.swf deleted file mode 100644 index 85c0ba38eede8cabc9b85603c2239082a548f549..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14085 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
",d=d+("×");if(a.free){var e=!0,d=d+("(");b.each(a,function(a,f){b.jPlayer.prototype.format[a]&&(e?e=!1:d+=" | ",d+=""+a+"")});d+=")"}d+=""+a.title+(a.artist? -" ":"")+"";return d+="
"},_createItemHandlers:function(){var a=this;b(this.cssSelector.playlist).off("click","a."+this.options.playlistOptions.itemClass).on("click","a."+this.options.playlistOptions.itemClass,function(){var c=b(this).parent().parent().index();a.current!==c?a.play(c):b(a.cssSelector.jPlayer).jPlayer("play");b(this).blur();return!1});b(this.cssSelector.playlist).off("click","a."+this.options.playlistOptions.freeItemClass).on("click", -"a."+this.options.playlistOptions.freeItemClass,function(){b(this).parent().parent().find("."+a.options.playlistOptions.itemClass).click();b(this).blur();return!1});b(this.cssSelector.playlist).off("click","a."+this.options.playlistOptions.removeItemClass).on("click","a."+this.options.playlistOptions.removeItemClass,function(){var c=b(this).parent().parent().index();a.remove(c);b(this).blur();return!1})},_updateControls:function(){this.options.playlistOptions.enableRemoveControls?b(this.cssSelector.playlist+ -" ."+this.options.playlistOptions.removeItemClass).show():b(this.cssSelector.playlist+" ."+this.options.playlistOptions.removeItemClass).hide();this.shuffled?(b(this.cssSelector.shuffleOff).show(),b(this.cssSelector.shuffle).hide()):(b(this.cssSelector.shuffleOff).hide(),b(this.cssSelector.shuffle).show())},_highlight:function(a){this.playlist.length&&a!==f&&(b(this.cssSelector.playlist+" .jp-playlist-current").removeClass("jp-playlist-current"),b(this.cssSelector.playlist+" li:nth-child("+(a+1)+ -")").addClass("jp-playlist-current").find(".jp-playlist-item").addClass("jp-playlist-current"),b(this.cssSelector.title+" li").html(this.playlist[a].title+(this.playlist[a].artist?" ":"")))},setPlaylist:function(a){this._initPlaylist(a);this._init()},add:function(a,c){b(this.cssSelector.playlist+" ul").append(this._createListItem(a)).find("li:last-child").hide().slideDown(this.options.playlistOptions.addTime);this._updateControls();this.original.push(a); -this.playlist.push(a);c?this.play(this.playlist.length-1):1===this.original.length&&this.select(0)},remove:function(a){var c=this;if(a===f)return this._initPlaylist([]),this._refresh(function(){b(c.cssSelector.jPlayer).jPlayer("clearMedia")}),!0;if(this.removing)return!1;a=0>a?c.original.length+a:a;0<=a&&aa?this.original.length+a:a;0<=a&&aa?this.original.length+a:a;0<=a&&a' + (config.visible ? "Hide" : "Show") + ' jPlayer Inspector

' - + '
' - + '
' - + '
' - + '

jPlayer events that have occurred over the past 1 second:' - + '
(Backgrounds: Never occurred Occurred before Occurred Multiple occurrences reset)

'; - - // MJP: Would use the next 3 lines for ease, but the events are just slapped on the page. - // $.each($.jPlayer.event, function(eventName,eventType) { - // structure += '
' + eventName + '
'; - // }); - - var eventStyle = "float:left;margin:0 5px 5px 0;padding:0 5px;border:1px dotted #000;"; - // MJP: Doing it longhand so order and layout easier to control. - structure += - '
' - + '
' - + '
' - + '
' - + '
' - + '
' - + '
' - - + '
' - + '
' - + '
' - + '
' - - + '
' - + '
' - + '
' - + '
' - + '
' - + '
' - + '
' - - + '
' - + '
' - + '
' - + '
' - - + '
' - + '
' - + '
' - + '
' - + '
' - + '
' - - + '
'; - - // MJP: Would like a check here in case we missed an event. - - // MJP: Check fails, since it is not on the page yet. -/* $.each($.jPlayer.event, function(eventName,eventType) { - if($("#" + config.eventId[eventType])[0] === undefined) { - structure += '
' + eventName + '
'; - } - }); -*/ - structure += - '
' - + '

Update jPlayer Inspector

' - + '
' - + '
'; - $(this).html(structure); - - config.windowJq = $("#" + config.windowId); - config.statusJq = $("#" + config.statusId); - config.configJq = $("#" + config.configId); - config.toggleJq = $("#" + config.toggleId); - config.eventResetJq = $("#" + config.eventResetId); - config.updateJq = $("#" + config.updateId); - - $.each($.jPlayer.event, function(eventName,eventType) { - config.eventJq[eventType] = $("#" + config.eventId[eventType]); - config.eventJq[eventType].text(eventName + " (" + config.eventOccurrence[eventType] + ")"); // Sets the text to the event name and (0); - - config.jPlayer.bind(eventType + ".jPlayerInspector", function(e) { - config.eventOccurrence[e.type]++; - if(config.eventOccurrence[e.type] > 1) { - config.eventJq[e.type].css("background-color","#ff9"); - } else { - config.eventJq[e.type].css("background-color","#9f9"); - } - config.eventJq[e.type].text(eventName + " (" + config.eventOccurrence[e.type] + ")"); - // The timer to handle the color - clearTimeout(config.eventTimeout[e.type]); - config.eventTimeout[e.type] = setTimeout(function() { - config.eventJq[e.type].css("background-color","#fff"); - }, 1000); - // The timer to handle the occurences. - setTimeout(function() { - config.eventOccurrence[e.type]--; - config.eventJq[e.type].text(eventName + " (" + config.eventOccurrence[e.type] + ")"); - }, 1000); - if(config.visible) { // Update the status, if inspector open. - $this.jPlayerInspector("updateStatus"); - } - }); - }); - - config.jPlayer.bind($.jPlayer.event.ready + ".jPlayerInspector", function(e) { - $this.jPlayerInspector("updateConfig"); - }); - - config.toggleJq.click(function() { - if(config.visible) { - $(this).text("Show"); - config.windowJq.hide(); - config.statusJq.empty(); - config.configJq.empty(); - } else { - $(this).text("Hide"); - config.windowJq.show(); - config.updateJq.click(); - } - config.visible = !config.visible; - $(this).blur(); - return false; - }); - - config.eventResetJq.click(function() { - $.each($.jPlayer.event, function(eventName,eventType) { - config.eventJq[eventType].css("background-color","#eee"); - }); - $(this).blur(); - return false; - }); - - config.updateJq.click(function() { - $this.jPlayerInspector("updateStatus"); - $this.jPlayerInspector("updateConfig"); - return false; - }); - - if(!config.visible) { - config.windowJq.hide(); - } else { - // config.updateJq.click(); - } - - $.jPlayerInspector.i++; - - return this; - }, - destroy: function() { - $(this).data("jPlayerInspector") && $(this).data("jPlayerInspector").jPlayer.unbind(".jPlayerInspector"); - $(this).empty(); - }, - updateConfig: function() { // This displays information about jPlayer's configuration in inspector - - var jPlayerInfo = "

This jPlayer instance is running in your browser where:
" - - for(i = 0; i < $(this).data("jPlayerInspector").jPlayer.data("jPlayer").solutions.length; i++) { - var solution = $(this).data("jPlayerInspector").jPlayer.data("jPlayer").solutions[i]; - jPlayerInfo += " jPlayer's " + solution + " solution is"; - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer")[solution].used) { - jPlayerInfo += " being used and will support:"; - for(format in $(this).data("jPlayerInspector").jPlayer.data("jPlayer")[solution].support) { - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer")[solution].support[format]) { - jPlayerInfo += " " + format; - } - } - jPlayerInfo += "
"; - } else { - jPlayerInfo += " not required
"; - } - } - jPlayerInfo += "

"; - - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").html.active) { - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").flash.active) { - jPlayerInfo += "Problem with jPlayer since both HTML5 and Flash are active."; - } else { - jPlayerInfo += "The HTML5 is active."; - } - } else { - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").flash.active) { - jPlayerInfo += "The Flash is active."; - } else { - jPlayerInfo += "No solution is currently active. jPlayer needs a setMedia()."; - } - } - jPlayerInfo += "

"; - - var formatType = $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.formatType; - jPlayerInfo += "

status.formatType = '" + formatType + "'
"; - if(formatType) { - jPlayerInfo += "Browser canPlay('" + $.jPlayer.prototype.format[formatType].codec + "')"; - } else { - jPlayerInfo += "

"; - } - - jPlayerInfo += "

status.src = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.src + "'

"; - - jPlayerInfo += "

status.media = {
"; - for(prop in $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.media) { - jPlayerInfo += " " + prop + ": " + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.media[prop] + "
"; // Some are strings - } - jPlayerInfo += "};

" - - jPlayerInfo += "

"; - jPlayerInfo += "status.videoWidth = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.videoWidth + "'"; - jPlayerInfo += " | status.videoHeight = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.videoHeight + "'"; - jPlayerInfo += "
status.width = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.width + "'"; - jPlayerInfo += " | status.height = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.height + "'"; - jPlayerInfo += "

"; - - + "

Raw browser test for HTML5 support. Should equal a function if HTML5 is available.
"; - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").html.audio.available) { - jPlayerInfo += "htmlElement.audio.canPlayType = " + (typeof $(this).data("jPlayerInspector").jPlayer.data("jPlayer").htmlElement.audio.canPlayType) +"
" - } - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").html.video.available) { - jPlayerInfo += "htmlElement.video.canPlayType = " + (typeof $(this).data("jPlayerInspector").jPlayer.data("jPlayer").htmlElement.video.canPlayType) +""; - } - jPlayerInfo += "

"; - - jPlayerInfo += "

This instance is using the constructor options:
" - + "$('#" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").internal.self.id + "').jPlayer({
" - - + " swfPath: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "swfPath") + "',
" - - + " solution: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "solution") + "',
" - - + " supplied: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "supplied") + "',
" - - + " preload: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "preload") + "',
" - - + " volume: " + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "volume") + ",
" - - + " muted: " + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "muted") + ",
" - - + " backgroundColor: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "backgroundColor") + "',
" - - + " cssSelectorAncestor: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "cssSelectorAncestor") + "',
" - - + " cssSelector: {"; - - var cssSelector = $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "cssSelector"); - for(prop in cssSelector) { - - // jPlayerInfo += "
  " + prop + ": '" + cssSelector[prop] + "'," // This works too of course, but want to use option method for deep keys. - jPlayerInfo += "
  " + prop + ": '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "cssSelector." + prop) + "'," - } - - jPlayerInfo = jPlayerInfo.slice(0, -1); // Because the sloppy comma was bugging me. - - jPlayerInfo += "
 },
" - - + " errorAlerts: " + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "errorAlerts") + ",
" - - + " warningAlerts: " + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "warningAlerts") + "
" - - + "});

"; - $(this).data("jPlayerInspector").configJq.html(jPlayerInfo); - return this; - }, - updateStatus: function() { // This displays information about jPlayer's status in the inspector - $(this).data("jPlayerInspector").statusJq.html( - "

jPlayer is " + - ($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.paused ? "paused" : "playing") + - " at time: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.currentTime*10)/10 + "s." + - " (d: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.duration*10)/10 + "s" + - ", sp: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.seekPercent) + "%" + - ", cpr: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.currentPercentRelative) + "%" + - ", cpa: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.currentPercentAbsolute) + "%)

" - ); - return this; - } - }; - $.fn.jPlayerInspector = function( method ) { - // Method calling logic - if ( methods[method] ) { - return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof method === 'object' || ! method ) { - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + method + ' does not exist on jQuery.jPlayerInspector' ); - } - }; -})(jQuery); diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/jquery.jplayer.min.js b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/jquery.jplayer.min.js deleted file mode 100644 index ecd3ab51..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/jquery.jplayer.min.js +++ /dev/null @@ -1,107 +0,0 @@ -/* - * jPlayer Plugin for jQuery JavaScript Library - * http://www.jplayer.org - * - * Copyright (c) 2009 - 2013 Happyworm Ltd - * Licensed under the MIT license. - * http://opensource.org/licenses/MIT - * - * Author: Mark J Panaghiston - * Version: 2.4.0 - * Date: 5th June 2013 - */ - -(function(b,f){"function"===typeof define&&define.amd?define(["jquery"],f):b.jQuery?f(b.jQuery):f(b.Zepto)})(this,function(b,f){b.fn.jPlayer=function(a){var c="string"===typeof a,d=Array.prototype.slice.call(arguments,1),e=this;a=!c&&d.length?b.extend.apply(null,[!0,a].concat(d)):a;if(c&&"_"===a.charAt(0))return e;c?this.each(function(){var c=b(this).data("jPlayer"),h=c&&b.isFunction(c[a])?c[a].apply(c,d):c;if(h!==c&&h!==f)return e=h,!1}):this.each(function(){var c=b(this).data("jPlayer");c?c.option(a|| -{}):b(this).data("jPlayer",new b.jPlayer(a,this))});return e};b.jPlayer=function(a,c){if(arguments.length){this.element=b(c);this.options=b.extend(!0,{},this.options,a);var d=this;this.element.bind("remove.jPlayer",function(){d.destroy()});this._init()}};"function"!==typeof b.fn.stop&&(b.fn.stop=function(){});b.jPlayer.emulateMethods="load play pause";b.jPlayer.emulateStatus="src readyState networkState currentTime duration paused ended playbackRate";b.jPlayer.emulateOptions="muted volume";b.jPlayer.reservedEvent= -"ready flashreset resize repeat error warning";b.jPlayer.event={};b.each("ready flashreset resize repeat click error warning loadstart progress suspend abort emptied stalled play pause loadedmetadata loadeddata waiting playing canplay canplaythrough seeking seeked timeupdate ended ratechange durationchange volumechange".split(" "),function(){b.jPlayer.event[this]="jPlayer_"+this});b.jPlayer.htmlEvent="loadstart abort emptied stalled loadedmetadata loadeddata canplay canplaythrough ratechange".split(" "); -b.jPlayer.pause=function(){b.each(b.jPlayer.prototype.instances,function(a,c){c.data("jPlayer").status.srcSet&&c.jPlayer("pause")})};b.jPlayer.timeFormat={showHour:!1,showMin:!0,showSec:!0,padHour:!1,padMin:!0,padSec:!0,sepHour:":",sepMin:":",sepSec:""};var l=function(){this.init()};l.prototype={init:function(){this.options={timeFormat:b.jPlayer.timeFormat}},time:function(a){var c=new Date(1E3*(a&&"number"===typeof a?a:0)),b=c.getUTCHours();a=this.options.timeFormat.showHour?c.getUTCMinutes():c.getUTCMinutes()+ -60*b;c=this.options.timeFormat.showMin?c.getUTCSeconds():c.getUTCSeconds()+60*a;b=this.options.timeFormat.padHour&&10>b?"0"+b:b;a=this.options.timeFormat.padMin&&10>a?"0"+a:a;c=this.options.timeFormat.padSec&&10>c?"0"+c:c;b=""+(this.options.timeFormat.showHour?b+this.options.timeFormat.sepHour:"");b+=this.options.timeFormat.showMin?a+this.options.timeFormat.sepMin:"";return b+=this.options.timeFormat.showSec?c+this.options.timeFormat.sepSec:""}};var m=new l;b.jPlayer.convertTime=function(a){return m.time(a)}; -b.jPlayer.uaBrowser=function(a){a=a.toLowerCase();var b=/(opera)(?:.*version)?[ \/]([\w.]+)/,d=/(msie) ([\w.]+)/,e=/(mozilla)(?:.*? rv:([\w.]+))?/;a=/(webkit)[ \/]([\w.]+)/.exec(a)||b.exec(a)||d.exec(a)||0>a.indexOf("compatible")&&e.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}};b.jPlayer.uaPlatform=function(a){var b=a.toLowerCase(),d=/(android)/,e=/(mobile)/;a=/(ipad|iphone|ipod|android|blackberry|playbook|windows ce|webos)/.exec(b)||[];b=/(ipad|playbook)/.exec(b)||!e.exec(b)&&d.exec(b)|| -[];a[1]&&(a[1]=a[1].replace(/\s/g,"_"));return{platform:a[1]||"",tablet:b[1]||""}};b.jPlayer.browser={};b.jPlayer.platform={};var j=b.jPlayer.uaBrowser(navigator.userAgent);j.browser&&(b.jPlayer.browser[j.browser]=!0,b.jPlayer.browser.version=j.version);j=b.jPlayer.uaPlatform(navigator.userAgent);j.platform&&(b.jPlayer.platform[j.platform]=!0,b.jPlayer.platform.mobile=!j.tablet,b.jPlayer.platform.tablet=!!j.tablet);b.jPlayer.getDocMode=function(){var a;b.jPlayer.browser.msie&&(document.documentMode? -a=document.documentMode:(a=5,document.compatMode&&"CSS1Compat"===document.compatMode&&(a=7)));return a};b.jPlayer.browser.documentMode=b.jPlayer.getDocMode();b.jPlayer.nativeFeatures={init:function(){var a=document,b=a.createElement("video"),d={w3c:"fullscreenEnabled fullscreenElement requestFullscreen exitFullscreen fullscreenchange fullscreenerror".split(" "),moz:"mozFullScreenEnabled mozFullScreenElement mozRequestFullScreen mozCancelFullScreen mozfullscreenchange mozfullscreenerror".split(" "), -webkit:" webkitCurrentFullScreenElement webkitRequestFullScreen webkitCancelFullScreen webkitfullscreenchange ".split(" "),webkitVideo:"webkitSupportsFullscreen webkitDisplayingFullscreen webkitEnterFullscreen webkitExitFullscreen ".split(" ")},e=["w3c","moz","webkit","webkitVideo"],g,h;this.fullscreen=b={support:{w3c:!!a[d.w3c[0]],moz:!!a[d.moz[0]],webkit:"function"===typeof a[d.webkit[3]],webkitVideo:"function"===typeof b[d.webkitVideo[2]]},used:{}};g=0;for(h=e.length;g','','','',''];c=document.createElement(''); -for(var e=0;e=a&&(b=!0);return b},_validString:function(a){return a&&"string"===typeof a},_limitValue:function(a,b,d){return ad?d:a},_urlNotSetError:function(a){this._error({type:b.jPlayer.error.URL_NOT_SET,context:a,message:b.jPlayer.errorMsg.URL_NOT_SET,hint:b.jPlayer.errorHint.URL_NOT_SET})},_flashError:function(a){var c;c=this.internal.ready?"FLASH_DISABLED":"FLASH";this._error({type:b.jPlayer.error[c],context:this.internal.flash.swf, -message:b.jPlayer.errorMsg[c]+a.message,hint:b.jPlayer.errorHint[c]});this.internal.flash.jq.css({width:"1px",height:"1px"})},_error:function(a){this._trigger(b.jPlayer.event.error,a);this.options.errorAlerts&&this._alert("Error!"+(a.message?"\n\n"+a.message:"")+(a.hint?"\n\n"+a.hint:"")+"\n\nContext: "+a.context)},_warning:function(a){this._trigger(b.jPlayer.event.warning,f,a);this.options.warningAlerts&&this._alert("Warning!"+(a.message?"\n\n"+a.message:"")+(a.hint?"\n\n"+a.hint:"")+"\n\nContext: "+ -a.context)},_alert:function(a){alert("jPlayer "+this.version.script+" : id='"+this.internal.self.id+"' : "+a)},_emulateHtmlBridge:function(){var a=this;b.each(b.jPlayer.emulateMethods.split(/\s+/g),function(b,d){a.internal.domNode[d]=function(b){a[d](b)}});b.each(b.jPlayer.event,function(c,d){var e=!0;b.each(b.jPlayer.reservedEvent.split(/\s+/g),function(a,b){if(b===c)return e=!1});e&&a.element.bind(d+".jPlayer.jPlayerHtml",function(){a._emulateHtmlUpdate();var b=document.createEvent("Event");b.initEvent(c, -!1,!0);a.internal.domNode.dispatchEvent(b)})})},_emulateHtmlUpdate:function(){var a=this;b.each(b.jPlayer.emulateStatus.split(/\s+/g),function(b,d){a.internal.domNode[d]=a.status[d]});b.each(b.jPlayer.emulateOptions.split(/\s+/g),function(b,d){a.internal.domNode[d]=a.options[d]})},_destroyHtmlBridge:function(){var a=this;this.element.unbind(".jPlayerHtml");b.each((b.jPlayer.emulateMethods+" "+b.jPlayer.emulateStatus+" "+b.jPlayer.emulateOptions).split(/\s+/g),function(b,d){delete a.internal.domNode[d]})}}; -b.jPlayer.error={FLASH:"e_flash",FLASH_DISABLED:"e_flash_disabled",NO_SOLUTION:"e_no_solution",NO_SUPPORT:"e_no_support",URL:"e_url",URL_NOT_SET:"e_url_not_set",VERSION:"e_version"};b.jPlayer.errorMsg={FLASH:"jPlayer's Flash fallback is not configured correctly, or a command was issued before the jPlayer Ready event. Details: ",FLASH_DISABLED:"jPlayer's Flash fallback has been disabled by the browser due to the CSS rules you have used. Details: ",NO_SOLUTION:"No solution can be found by jPlayer in this browser. Neither HTML nor Flash can be used.", -NO_SUPPORT:"It is not possible to play any media format provided in setMedia() on this browser using your current options.",URL:"Media URL could not be loaded.",URL_NOT_SET:"Attempt to issue media playback commands, while no media url is set.",VERSION:"jPlayer "+b.jPlayer.prototype.version.script+" needs Jplayer.swf version "+b.jPlayer.prototype.version.needFlash+" but found "};b.jPlayer.errorHint={FLASH:"Check your swfPath option and that Jplayer.swf is there.",FLASH_DISABLED:"Check that you have not display:none; the jPlayer entity or any ancestor.", -NO_SOLUTION:"Review the jPlayer options: support and supplied.",NO_SUPPORT:"Video or audio formats defined in the supplied option are missing.",URL:"Check media URL is valid.",URL_NOT_SET:"Use setMedia() to set the media URL.",VERSION:"Update jPlayer files."};b.jPlayer.warning={CSS_SELECTOR_COUNT:"e_css_selector_count",CSS_SELECTOR_METHOD:"e_css_selector_method",CSS_SELECTOR_STRING:"e_css_selector_string",OPTION_KEY:"e_option_key"};b.jPlayer.warningMsg={CSS_SELECTOR_COUNT:"The number of css selectors found did not equal one: ", -CSS_SELECTOR_METHOD:"The methodName given in jPlayer('cssSelector') is not a valid jPlayer method.",CSS_SELECTOR_STRING:"The methodCssSelector given in jPlayer('cssSelector') is not a String or is empty.",OPTION_KEY:"The option requested in jPlayer('option') is undefined."};b.jPlayer.warningHint={CSS_SELECTOR_COUNT:"Check your css selector and the ancestor.",CSS_SELECTOR_METHOD:"Check your method name.",CSS_SELECTOR_STRING:"Check your css selector is a string.",OPTION_KEY:"Check your option name."}}); \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/popcorn/popcorn.jplayer.js b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/popcorn/popcorn.jplayer.js deleted file mode 100644 index fb57ac60..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/popcorn/popcorn.jplayer.js +++ /dev/null @@ -1,558 +0,0 @@ -/* - * jPlayer Player Plugin for Popcorn JavaScript Library - * http://www.jplayer.org - * - * Copyright (c) 2013 Happyworm Ltd - * Licensed under the MIT license. - * http://opensource.org/licenses/MIT - * - * Author: Mark J Panaghiston - * Version: 1.1.1 - * Date: 5th June 2013 - * - * For Popcorn Version: 1.3 - * For jPlayer Version: 2.4.0 - * Requires: jQuery 1.3.2+ - * Note: jQuery dependancy cannot be removed since jPlayer 2 is a jQuery plugin. Use of jQuery will be kept to a minimum. - */ - -/* Code verified using http://www.jshint.com/ */ -/*jshint asi:false, bitwise:false, boss:false, browser:true, curly:false, debug:false, eqeqeq:true, eqnull:false, evil:false, forin:false, immed:false, jquery:true, laxbreak:false, newcap:true, noarg:true, noempty:true, nonew:true, onevar:false, passfail:false, plusplus:false, regexp:false, undef:true, sub:false, strict:false, white:false, smarttabs:true */ -/*global Popcorn:false, console:false */ - -(function(Popcorn) { - - var JQUERY_SCRIPT = 'http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js', // Used if jQuery not already present. - JPLAYER_SCRIPT = 'http://www.jplayer.org/2.4.0/js/jquery.jplayer.min.js', // Used if jPlayer not already present. - JPLAYER_SWFPATH = 'http://www.jplayer.org/2.4.0/js/Jplayer.swf', // Used if not specified in jPlayer options via SRC Object. - SOLUTION = 'html,flash', // The default solution option. - DEBUG = false, // Decided to leave the debugging option and console output in for the time being. Overhead is trivial. - jQueryDownloading = false, // Flag to stop multiple instances from each pulling in jQuery, thus corrupting it. - jPlayerDownloading = false, // Flag to stop multiple instances from each pulling in jPlayer, thus corrupting it. - format = { // Duplicate of jPlayer 2.4.0 object, to avoid always requiring jQuery and jPlayer to be loaded before performing the _canPlayType() test. - mp3: { - codec: 'audio/mpeg; codecs="mp3"', - flashCanPlay: true, - media: 'audio' - }, - m4a: { // AAC / MP4 - codec: 'audio/mp4; codecs="mp4a.40.2"', - flashCanPlay: true, - media: 'audio' - }, - oga: { // OGG - codec: 'audio/ogg; codecs="vorbis"', - flashCanPlay: false, - media: 'audio' - }, - wav: { // PCM - codec: 'audio/wav; codecs="1"', - flashCanPlay: false, - media: 'audio' - }, - webma: { // WEBM - codec: 'audio/webm; codecs="vorbis"', - flashCanPlay: false, - media: 'audio' - }, - fla: { // FLV / F4A - codec: 'audio/x-flv', - flashCanPlay: true, - media: 'audio' - }, - rtmpa: { // RTMP AUDIO - codec: 'audio/rtmp; codecs="rtmp"', - flashCanPlay: true, - media: 'audio' - }, - m4v: { // H.264 / MP4 - codec: 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"', - flashCanPlay: true, - media: 'video' - }, - ogv: { // OGG - codec: 'video/ogg; codecs="theora, vorbis"', - flashCanPlay: false, - media: 'video' - }, - webmv: { // WEBM - codec: 'video/webm; codecs="vorbis, vp8"', - flashCanPlay: false, - media: 'video' - }, - flv: { // FLV / F4V - codec: 'video/x-flv', - flashCanPlay: true, - media: 'video' - }, - rtmpv: { // RTMP VIDEO - codec: 'video/rtmp; codecs="rtmp"', - flashCanPlay: true, - media: 'video' - } - }, - isObject = function(val) { // Basic check for Object - if(val && typeof val === 'object' && val.hasOwnProperty) { - return true; - } else { - return false; - } - }, - getMediaType = function(url) { // Function to gleam the media type from the URL - var mediaType = false; - if(/\.mp3$/i.test(url)) { - mediaType = 'mp3'; - } else if(/\.mp4$/i.test(url) || /\.m4v$/i.test(url)) { - mediaType = 'm4v'; - } else if(/\.m4a$/i.test(url)) { - mediaType = 'm4a'; - } else if(/\.ogg$/i.test(url) || /\.oga$/i.test(url)) { - mediaType = 'oga'; - } else if(/\.ogv$/i.test(url)) { - mediaType = 'ogv'; - } else if(/\.webm$/i.test(url)) { - mediaType = 'webmv'; - } - return mediaType; - }, - getSupplied = function(url) { // Function to generate a supplied option from an src object. ie., When supplied not specified. - var supplied = '', - separator = ''; - if(isObject(url)) { - // Generate supplied option from object's properties. Non-format properties would be ignored by jPlayer. Order is unpredictable. - for(var prop in url) { - if(url.hasOwnProperty(prop)) { - supplied += separator + prop; - separator = ','; - } - } - } - if(DEBUG) console.log('getSupplied(): Generated: supplied = "' + supplied + '"'); - return supplied; - }; - - Popcorn.player( 'jplayer', { - _canPlayType: function( containerType, url ) { - // url : Either a String or an Object structured similar a jPlayer media object. ie., As used by setMedia in jPlayer. - // The url object may also contain a solution and supplied property. - - // Define the src object structure here! - - var cType = containerType.toLowerCase(), - srcObj = { - media:{}, - options:{} - }, - rVal = false, // Only a boolean false means it is not supported. - mediaType; - - if(cType !== 'video' && cType !== 'audio') { - - if(typeof url === 'string') { - // Check it starts with http, so the URL is absolute... Well, it is not a perfect check. - if(/^http.*/i.test(url)) { - mediaType = getMediaType(url); - if(mediaType) { - srcObj.media[mediaType] = url; - srcObj.options.solution = SOLUTION; - srcObj.options.supplied = mediaType; - } - } - } else { - srcObj = url; // Assume the url is an src object. - } - - // Check for Object and appropriate minimum data structure. - if(isObject(srcObj) && isObject(srcObj.media)) { - - if(!isObject(srcObj.options)) { - srcObj.options = {}; - } - - if(!srcObj.options.solution) { - srcObj.options.solution = SOLUTION; - } - - if(!srcObj.options.supplied) { - srcObj.options.supplied = getSupplied(srcObj.media); - } - - // Figure out how jPlayer will play it. - // This may not work properly when both audio and video is supplied. ie., A media player. But it should return truethy and jPlayer can figure it out. - - var solution = srcObj.options.solution.toLowerCase().split(","), // Create the solution array, with prority based on the order of the solution string. - supplied = srcObj.options.supplied.toLowerCase().split(","); // Create the supplied formats array, with prority based on the order of the supplied formats string. - - for(var sol = 0; sol < solution.length; sol++) { - - var solutionType = solution[sol].replace(/^\s+|\s+$/g, ""), //trim - checkingHtml = solutionType === 'html', - checkingFlash = solutionType === 'flash', - mediaElem; - - for(var fmt = 0; fmt < supplied.length; fmt++) { - mediaType = supplied[fmt].replace(/^\s+|\s+$/g, ""); //trim - if(format[mediaType]) { // Check format is valid. - - // Create an HTML5 media element for the type of media. - if(!mediaElem && checkingHtml) { - mediaElem = document.createElement(format[mediaType].media); - } - // See if the HTML5 media element can play the MIME / Codec type. - // Flash also returns the object if the format is playable, so it is truethy, but that html property is false. - // This assumes Flash is available, but that should be dealt with by jPlayer if that happens. - var htmlCanPlay = !!(mediaElem && mediaElem.canPlayType && mediaElem.canPlayType(format[mediaType].codec)), - htmlWillPlay = htmlCanPlay && checkingHtml, - flashWillPlay = format[mediaType].flashCanPlay && checkingFlash; - // The first one found will match what jPlayer uses. - if(htmlWillPlay || flashWillPlay) { - rVal = { - html: htmlWillPlay, - type: mediaType - }; - sol = solution.length; // Exit solution loop - fmt = supplied.length; // Exit supplied loop - } - } - } - } - } - } - return rVal; - }, - // _setup: function( options ) { // Warning: options is deprecated. - _setup: function() { - var media = this, - myPlayer, // The jQuery selector of the jPlayer element. Usually a
- jPlayerObj, // The jPlayer data instance. For performance and DRY code. - mediaType = 'unknown', - jpMedia = {}, - jpOptions = {}, - ready = false, // Used during init to override the annoying duration dependance in the track event padding during Popcorn's isReady(). ie., We is ready after loadeddata and duration can then be set real value at leisure. - duration = 0, // For the durationchange event with both HTML5 and Flash solutions. Used with 'ready' to keep control during the Popcorn isReady() via loadeddata event. (Duration=0 is bad.) - durationchangeId = null, // A timeout ID used with delayed durationchange event. (Because of the duration=NaN fudge to avoid Popcorn track event corruption.) - canplaythrough = false, - error = null, // The MediaError object. - - dispatchDurationChange = function() { - if(ready) { - if(DEBUG) console.log('Dispatched event : durationchange : ' + duration); - media.dispatchEvent('durationchange'); - } else { - if(DEBUG) console.log('DELAYED EVENT (!ready) : durationchange : ' + duration); - clearTimeout(durationchangeId); // Stop multiple triggers causing multiple timeouts running in parallel. - durationchangeId = setTimeout(dispatchDurationChange, 250); - } - }, - - jPlayerFlashEventsPatch = function() { - - /* Events already supported by jPlayer Flash: - * loadstart - * loadedmetadata (M4A, M4V) - * progress - * play - * pause - * seeking - * seeked - * timeupdate - * ended - * volumechange - * error <- See the custom handler in jPlayerInit() - */ - - /* Events patched: - * loadeddata - * durationchange - * canplaythrough - * playing - */ - - /* Events NOT patched: - * suspend - * abort - * emptied - * stalled - * loadedmetadata (MP3) - * waiting - * canplay - * ratechange - */ - - // Triggering patched events through the jPlayer Object so the events are homogeneous. ie., The contain the event.jPlayer data structure. - - var checkDuration = function(event) { - if(event.jPlayer.status.duration !== duration) { - duration = event.jPlayer.status.duration; - dispatchDurationChange(); - } - }, - - checkCanPlayThrough = function(event) { - if(!canplaythrough && event.jPlayer.status.seekPercent === 100) { - canplaythrough = true; - setTimeout(function() { - if(DEBUG) console.log('Trigger : canplaythrough'); - jPlayerObj._trigger($.jPlayer.event.canplaythrough); - }, 0); - } - }; - - myPlayer.bind($.jPlayer.event.loadstart, function() { - setTimeout(function() { - if(DEBUG) console.log('Trigger : loadeddata'); - jPlayerObj._trigger($.jPlayer.event.loadeddata); - }, 0); - }) - .bind($.jPlayer.event.progress, function(event) { - checkDuration(event); - checkCanPlayThrough(event); - }) - .bind($.jPlayer.event.timeupdate, function(event) { - checkDuration(event); - checkCanPlayThrough(event); - }) - .bind($.jPlayer.event.play, function() { - setTimeout(function() { - if(DEBUG) console.log('Trigger : playing'); - jPlayerObj._trigger($.jPlayer.event.playing); - }, 0); - }); - - if(DEBUG) console.log('Created CUSTOM event handlers for FLASH'); - }, - - jPlayerInit = function() { - (function($) { - - myPlayer = $('#' + media.id); - - if(typeof media.src === 'string') { - mediaType = getMediaType(media.src); - jpMedia[mediaType] = media.src; - jpOptions.supplied = mediaType; - jpOptions.solution = SOLUTION; - } else if(isObject(media.src)) { - jpMedia = isObject(media.src.media) ? media.src.media : {}; - jpOptions = isObject(media.src.options) ? media.src.options : {}; - jpOptions.solution = jpOptions.solution || SOLUTION; - jpOptions.supplied = jpOptions.supplied || getSupplied(media.src.media); - } - - // Allow the swfPath to be set to local server. ie., If the jPlayer Plugin is local and already on the page, then you can also use the local SWF. - jpOptions.swfPath = jpOptions.swfPath || JPLAYER_SWFPATH; - - myPlayer.bind($.jPlayer.event.ready, function(event) { - if(event.jPlayer.flash.used) { - jPlayerFlashEventsPatch(); - } - // Set the media andd load it, so that the Flash solution behaves similar to HTML5 solution. - // This also allows the loadstart event to be used to know jPlayer is ready. - $(this).jPlayer('setMedia', jpMedia).jPlayer('load'); - }); - - // Do not auto-bubble the reserved events, nor the loadeddata and durationchange event, since the duration must be carefully handled when loadeddata event occurs. - // See the duration property code for more details. (Ranting.) - - var reservedEvents = $.jPlayer.reservedEvent + ' loadeddata durationchange', - reservedEvent = reservedEvents.split(/\s+/g); - - // Generate event handlers for all the standard HTML5 media events. (Except durationchange) - - var bindEvent = function(name) { - myPlayer.bind($.jPlayer.event[name], function(event) { - if(DEBUG) console.log('Dispatched event: ' + name + (event && event.jPlayer ? ' (' + event.jPlayer.status.currentTime + 's)' : '')); // Must be after dispatch for some reason on Firefox/Opera - media.dispatchEvent(name); - }); - if(DEBUG) console.log('Created event handler for: ' + name); - }; - - for(var eventName in $.jPlayer.event) { - if($.jPlayer.event.hasOwnProperty(eventName)) { - var nativeEvent = true; - for(var iRes in reservedEvent) { - if(reservedEvent.hasOwnProperty(iRes)) { - if(reservedEvent[iRes] === eventName) { - nativeEvent = false; - break; - } - } - } - if(nativeEvent) { - bindEvent(eventName); - } else { - if(DEBUG) console.log('Skipped auto event handler creation for: ' + eventName); - } - } - } - - myPlayer.bind($.jPlayer.event.loadeddata, function(event) { - if(DEBUG) console.log('Dispatched event: loadeddata' + (event && event.jPlayer ? ' (' + event.jPlayer.status.currentTime + 's)' : '')); - media.dispatchEvent('loadeddata'); - ready = true; - }); - if(DEBUG) console.log('Created CUSTOM event handler for: loadeddata'); - - myPlayer.bind($.jPlayer.event.durationchange, function(event) { - duration = event.jPlayer.status.duration; - dispatchDurationChange(); - }); - if(DEBUG) console.log('Created CUSTOM event handler for: durationchange'); - - // The error event is a special case. Plus jPlayer error event assumes it is a broken URL. (It could also be a decoder error... Or aborted or a Network error.) - myPlayer.bind($.jPlayer.event.error, function(event) { - // Not sure how to handle the error situation. Popcorn does not appear to have the error or error.code property documented here: http://popcornjs.org/popcorn-docs/media-methods/ - // If any error event happens, then something has gone pear shaped. - - error = event.jPlayer.error; // Saving object pointer, not a copy of the object. Possible garbage collection issue... But the player is dead anyway, so don't care. - - if(error.type === $.jPlayer.error.URL) { - error.code = 4; // MEDIA_ERR_SRC_NOT_SUPPORTED since jPlayer makes this assumption. It is the most common error, then the decode error. Never seen either of the other 2 error types occur. - } else { - error.code = 0; // It was a jPlayer error, not an HTML5 media error. - } - - if(DEBUG) console.log('Dispatched event: error'); - if(DEBUG) console.dir(error); - media.dispatchEvent('error'); - }); - if(DEBUG) console.log('Created CUSTOM event handler for: error'); - - Popcorn.player.defineProperty( media, 'error', { - set: function() { - // Read-only property - return error; - }, - get: function() { - return error; - } - }); - - Popcorn.player.defineProperty( media, 'currentTime', { - set: function( val ) { - if(jPlayerObj.status.paused) { - myPlayer.jPlayer('pause', val); - } else { - myPlayer.jPlayer('play', val); - } - return val; - }, - get: function() { - return jPlayerObj.status.currentTime; - } - }); - - /* The joy of duration and the loadeddata event isReady() handler - * The duration is assumed to be a NaN or a valid duration. - * jPlayer uses zero instead of a NaN and this screws up the Popcorn track event start/end arrays padding. - * This line here: - * videoDurationPlus = duration != duration ? Number.MAX_VALUE : duration + 1; - * Not sure why it is not simply: - * videoDurationPlus = Number.MAX_VALUE; // Who cares if the padding is close to the real duration? - * So if you trigger loadeddata before the duration is correct, the track event padding is screwed up. (It pads the start, not the end... Well, duration+1 = 0+1 = 1s) - * That line makes the MP3 Flash fallback difficult to setup. The whole MP3 will need to load before the duration is known. - * Planning on using a NaN for duration until a >0 value is found... Except with MP3, where seekPercent must be 100% before setting the duration. - * Why not just use a NaN during init... And then correct the duration later? - */ - - Popcorn.player.defineProperty( media, 'duration', { - set: function() { - // Read-only property - if(ready) { - return duration; - } else { - return NaN; - } - }, - get: function() { - if(ready) { - return duration; // Popcorn has initialized, we can now use duration zero or whatever without fear. - } else { - return NaN; // Keep the duration a NaN until after loadeddata event has occurred. Otherwise Popcorn track event padding is corrupted. - } - } - }); - - Popcorn.player.defineProperty( media, 'muted', { - set: function( val ) { - myPlayer.jPlayer('mute', val); - return jPlayerObj.options.muted; - }, - get: function() { - return jPlayerObj.options.muted; - } - }); - - Popcorn.player.defineProperty( media, 'volume', { - set: function( val ) { - myPlayer.jPlayer('volume', val); - return jPlayerObj.options.volume; - }, - get: function() { - return jPlayerObj.options.volume; - } - }); - - Popcorn.player.defineProperty( media, 'paused', { - set: function() { - // Read-only property - return jPlayerObj.status.paused; - }, - get: function() { - return jPlayerObj.status.paused; - } - }); - - media.play = function() { - myPlayer.jPlayer('play'); - }; - media.pause = function() { - myPlayer.jPlayer('pause'); - }; - - myPlayer.jPlayer(jpOptions); // Instance jPlayer. Note that the options should not have a ready event defined... Kill it by default? - jPlayerObj = myPlayer.data('jPlayer'); - - }(jQuery)); - }, - - jPlayerCheck = function() { - if (!jQuery.jPlayer) { - if (!jPlayerDownloading) { - jPlayerDownloading = true; - Popcorn.getScript(JPLAYER_SCRIPT, function() { - jPlayerDownloading = false; - jPlayerInit(); - }); - } else { - setTimeout(jPlayerCheck, 250); - } - } else { - jPlayerInit(); - } - }, - - jQueryCheck = function() { - if (!window.jQuery) { - if (!jQueryDownloading) { - jQueryDownloading = true; - Popcorn.getScript(JQUERY_SCRIPT, function() { - jQueryDownloading = false; - jPlayerCheck(); - }); - } else { - setTimeout(jQueryCheck, 250); - } - } else { - jPlayerCheck(); - } - }; - - jQueryCheck(); - }, - _teardown: function() { - jQuery('#' + this.id).jPlayer('destroy'); - } - }); - -}(Popcorn)); \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css deleted file mode 100644 index f71520d6..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css +++ /dev/null @@ -1,640 +0,0 @@ -/* - * Skin for jPlayer Plugin (jQuery JavaScript Library) - * http://www.jplayer.org - * - * Skin Name: Blue Monday - * - * Copyright (c) 2010-2012 Happyworm Ltd - * Dual licensed under the MIT and GPL licenses. - * - http://www.opensource.org/licenses/mit-license.php - * - http://www.gnu.org/copyleft/gpl.html - * - * Author: Silvia Benvenuti - * Skin Version: 4.3 (jPlayer 2.2.0) - * Date: 19th November 2012 - */ - -div.jp-audio, -div.jp-audio-stream, -div.jp-video { - - /* Edit the font-size to counteract inherited font sizing. - * Eg. 1.25em = 1 / 0.8em - */ - - font-size:1.25em; /* 1.25em for testing in site pages */ /* No parent CSS that can effect the size in the demos ZIP */ - - font-family:Verdana, Arial, sans-serif; - line-height:1.6; - color: #666; - border:1px solid #cccccc; - background-color:#eee; -} -div.jp-audio { - width:420px; -} -div.jp-audio-stream { - width:182px; -} -div.jp-video-270p { - width:480px; -} -div.jp-video-360p { - width:640px; -} -div.jp-video-full { - /* Rules for IE6 (full-screen) */ - width:480px; - height:270px; - /* Rules for IE7 (full-screen) - Otherwise the relative container causes other page items that are not position:static (default) to appear over the video/gui. */ - position:static !important; position:relative; -} - -/* The z-index rule is defined in this manner to enable Popcorn plugins that add overlays to video area. EG. Subtitles. */ -div.jp-video-full div div { - z-index:1000; -} - -div.jp-video-full div.jp-jplayer { - top: 0; - left: 0; - position: fixed !important; position: relative; /* Rules for IE6 (full-screen) */ - overflow: hidden; -} - -div.jp-video-full div.jp-gui { - position: fixed !important; position: static; /* Rules for IE6 (full-screen) */ - top: 0; - left: 0; - width:100%; - height:100%; - z-index:1001; /* 1 layer above the others. */ -} - -div.jp-video-full div.jp-interface { - position: absolute !important; position: relative; /* Rules for IE6 (full-screen) */ - bottom: 0; - left: 0; -} - -div.jp-interface { - position: relative; - background-color:#eee; - width:100%; -} - -div.jp-audio div.jp-type-single div.jp-interface { - height:80px; -} -div.jp-audio div.jp-type-playlist div.jp-interface { - height:80px; -} - -div.jp-audio-stream div.jp-type-single div.jp-interface { - height:80px; -} - -div.jp-video div.jp-interface { - border-top:1px solid #aaaaaa; -} - -/* @group CONTROLS */ - -div.jp-controls-holder { - clear: both; - width:440px; - margin:0 auto; - position: relative; - overflow:hidden; - top:-8px; /* This negative value depends on the size of the text in jp-currentTime and jp-duration */ -} - -div.jp-interface ul.jp-controls { - list-style-type:none; - margin:0; - padding: 0; - overflow:hidden; -} - -div.jp-audio ul.jp-controls { - width: 380px; - padding:20px 20px 0 20px; -} - -div.jp-audio-stream ul.jp-controls { - width: 142px; - padding:20px 20px 0 20px; -} - -div.jp-video div.jp-type-single ul.jp-controls { - width: 78px; - margin-left: 200px; -} - -div.jp-video div.jp-type-playlist ul.jp-controls { - width: 134px; - margin-left: 172px; -} -div.jp-video ul.jp-controls, -div.jp-interface ul.jp-controls li { - display:inline; - float: left; -} - -div.jp-interface ul.jp-controls a { - display:block; - overflow:hidden; - text-indent:-9999px; -} -a.jp-play, -a.jp-pause { - width:40px; - height:40px; -} - -a.jp-play { - background: url("jplayer.blue.monday.jpg") 0 0 no-repeat; -} -a.jp-play:hover { - background: url("jplayer.blue.monday.jpg") -41px 0 no-repeat; -} -a.jp-pause { - background: url("jplayer.blue.monday.jpg") 0 -42px no-repeat; - display: none; -} -a.jp-pause:hover { - background: url("jplayer.blue.monday.jpg") -41px -42px no-repeat; -} - -a.jp-stop, a.jp-previous, a.jp-next { - width:28px; - height:28px; - margin-top:6px; -} - -a.jp-stop { - background: url("jplayer.blue.monday.jpg") 0 -83px no-repeat; - margin-left:10px; -} - -a.jp-stop:hover { - background: url("jplayer.blue.monday.jpg") -29px -83px no-repeat; -} - -a.jp-previous { - background: url("jplayer.blue.monday.jpg") 0 -112px no-repeat; -} -a.jp-previous:hover { - background: url("jplayer.blue.monday.jpg") -29px -112px no-repeat; -} - -a.jp-next { - background: url("jplayer.blue.monday.jpg") 0 -141px no-repeat; -} -a.jp-next:hover { - background: url("jplayer.blue.monday.jpg") -29px -141px no-repeat; -} - -/* @end */ - -/* @group progress bar */ - -div.jp-progress { - overflow:hidden; - background-color: #ddd; -} -div.jp-audio div.jp-progress { - position: absolute; - top:32px; - height:15px; -} -div.jp-audio div.jp-type-single div.jp-progress { - left:110px; - width:186px; -} -div.jp-audio div.jp-type-playlist div.jp-progress { - left:166px; - width:130px; -} -div.jp-video div.jp-progress { - top:0px; - left:0px; - width:100%; - height:10px; -} -div.jp-seek-bar { - background: url("jplayer.blue.monday.jpg") 0 -202px repeat-x; - width:0px; - height:100%; - cursor: pointer; -} -div.jp-play-bar { - background: url("jplayer.blue.monday.jpg") 0 -218px repeat-x ; - width:0px; - height:100%; -} - -/* The seeking class is added/removed inside jPlayer */ -div.jp-seeking-bg { - background: url("jplayer.blue.monday.seeking.gif"); -} - -/* @end */ - -/* @group volume controls */ - - -a.jp-mute, -a.jp-unmute, -a.jp-volume-max { - width:18px; - height:15px; - margin-top:12px; -} - -div.jp-audio div.jp-type-single a.jp-mute, -div.jp-audio div.jp-type-single a.jp-unmute { - margin-left: 210px; -} -div.jp-audio div.jp-type-playlist a.jp-mute, -div.jp-audio div.jp-type-playlist a.jp-unmute { - margin-left: 154px; -} - -div.jp-audio-stream div.jp-type-single a.jp-mute, -div.jp-audio-stream div.jp-type-single a.jp-unmute { - margin-left:10px; -} - -div.jp-audio a.jp-volume-max, -div.jp-audio-stream a.jp-volume-max { - margin-left: 56px; -} - -div.jp-video a.jp-mute, -div.jp-video a.jp-unmute, -div.jp-video a.jp-volume-max { - position: absolute; - top:12px; - margin-top:0; -} - -div.jp-video a.jp-mute, -div.jp-video a.jp-unmute { - left: 50px; -} - -div.jp-video a.jp-volume-max { - left: 134px; -} - -a.jp-mute { - background: url("jplayer.blue.monday.jpg") 0 -170px no-repeat; -} -a.jp-mute:hover { - background: url("jplayer.blue.monday.jpg") -19px -170px no-repeat; -} -a.jp-unmute { - background: url("jplayer.blue.monday.jpg") -60px -170px no-repeat; - display: none; -} -a.jp-unmute:hover { - background: url("jplayer.blue.monday.jpg") -79px -170px no-repeat; -} -a.jp-volume-max { - background: url("jplayer.blue.monday.jpg") 0 -186px no-repeat; -} -a.jp-volume-max:hover { - background: url("jplayer.blue.monday.jpg") -19px -186px no-repeat; -} - -div.jp-volume-bar { - position: absolute; - overflow:hidden; - background: url("jplayer.blue.monday.jpg") 0 -250px repeat-x; - width:46px; - height:5px; - cursor: pointer; -} -div.jp-audio div.jp-volume-bar { - top:37px; - left:330px; -} -div.jp-audio-stream div.jp-volume-bar { - top:37px; - left:92px; -} -div.jp-video div.jp-volume-bar { - top:17px; - left:72px; -} -div.jp-volume-bar-value { - background: url("jplayer.blue.monday.jpg") 0 -256px repeat-x; - width:0px; - height:5px; -} - -/* @end */ - -/* @group current time and duration */ - -div.jp-audio div.jp-time-holder { - position:absolute; - top:50px; -} -div.jp-audio div.jp-type-single div.jp-time-holder { - left:110px; - width:186px; -} -div.jp-audio div.jp-type-playlist div.jp-time-holder { - left:166px; - width:130px; -} - -div.jp-current-time, -div.jp-duration { - width:60px; - font-size:.64em; - font-style:oblique; -} -div.jp-current-time { - float: left; - display:inline; -} -div.jp-duration { - float: right; - display:inline; - text-align: right; -} - -div.jp-video div.jp-current-time { - margin-left:20px; -} -div.jp-video div.jp-duration { - margin-right:20px; -} - -/* @end */ - -/* @group playlist */ - -div.jp-title { - font-weight:bold; - text-align:center; -} - -div.jp-title, -div.jp-playlist { - width:100%; - background-color:#ccc; - border-top:1px solid #cccccc; -} -div.jp-type-single div.jp-title, -div.jp-type-playlist div.jp-title, -div.jp-type-single div.jp-playlist { - border-top:none; -} -div.jp-title ul, -div.jp-playlist ul { - list-style-type:none; - margin:0; - padding:0 20px; - font-size:.72em; -} - -div.jp-title li { - padding:5px 0; - font-weight:bold; -} -div.jp-playlist li { - padding:5px 0 4px 20px; - border-bottom:1px solid #eee; -} - -div.jp-playlist li div { - display:inline; -} - -/* Note that the first-child (IE6) and last-child (IE6/7/8) selectors do not work on IE */ - -div.jp-type-playlist div.jp-playlist li:last-child { - padding:5px 0 5px 20px; - border-bottom:none; -} -div.jp-type-playlist div.jp-playlist li.jp-playlist-current { - list-style-type:square; - list-style-position:inside; - padding-left:7px; -} -div.jp-type-playlist div.jp-playlist a { - color: #333; - text-decoration: none; -} -div.jp-type-playlist div.jp-playlist a:hover { - color:#0d88c1; -} -div.jp-type-playlist div.jp-playlist a.jp-playlist-current { - color:#0d88c1; -} - -div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove { - float:right; - display:inline; - text-align:right; - margin-right:10px; - font-weight:bold; - color:#666; -} -div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove:hover { - color:#0d88c1; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media { - float:right; - display:inline; - text-align:right; - margin-right:10px; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media a{ - color:#666; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media a:hover{ - color:#0d88c1; -} -span.jp-artist { - font-size:.8em; - color:#666; -} - -/* @end */ - -div.jp-video-play { - width:100%; - overflow:hidden; /* Important for nested negative margins to work in modern browsers */ - cursor:pointer; - background-color:rgba(0,0,0,0); /* Makes IE9 work with the active area over the whole video area. IE6/7/8 only have the button as active area. */ -} -div.jp-video-270p div.jp-video-play { - margin-top:-270px; - height:270px; -} -div.jp-video-360p div.jp-video-play { - margin-top:-360px; - height:360px; -} -div.jp-video-full div.jp-video-play { - height:100%; -} -a.jp-video-play-icon { - position:relative; - display:block; - width: 112px; - height: 100px; - - margin-left:-56px; - margin-top:-50px; - left:50%; - top:50%; - - background: url("jplayer.blue.monday.video.play.png") 0 0 no-repeat; - text-indent:-9999px; -} -div.jp-video-play:hover a.jp-video-play-icon { - background: url("jplayer.blue.monday.video.play.png") 0 -100px no-repeat; -} - - - - - -div.jp-jplayer audio, -div.jp-jplayer { - width:0px; - height:0px; -} - -div.jp-jplayer { - background-color: #000000; -} - - - - - -/* @group TOGGLES */ - -/* The audio toggles are nested inside jp-time-holder */ - -ul.jp-toggles { - list-style-type:none; - padding:0; - margin:0 auto; - overflow:hidden; -} - -div.jp-audio .jp-type-single ul.jp-toggles { - width:25px; -} -div.jp-audio .jp-type-playlist ul.jp-toggles { - width:55px; - margin: 0; - position: absolute; - left: 325px; - top: 50px; -} - -div.jp-video ul.jp-toggles { - margin-top:10px; - width:100px; -} - -ul.jp-toggles li { - display:block; - float:right; -} - -ul.jp-toggles li a { - display:block; - width:25px; - height:18px; - text-indent:-9999px; - line-height:100%; /* need this for IE6 */ -} - -a.jp-full-screen { - background: url("jplayer.blue.monday.jpg") 0 -310px no-repeat; - margin-left: 20px; -} - -a.jp-full-screen:hover { - background: url("jplayer.blue.monday.jpg") -30px -310px no-repeat; -} - -a.jp-restore-screen { - background: url("jplayer.blue.monday.jpg") -60px -310px no-repeat; - margin-left: 20px; -} - -a.jp-restore-screen:hover { - background: url("jplayer.blue.monday.jpg") -90px -310px no-repeat; -} - -a.jp-repeat { - background: url("jplayer.blue.monday.jpg") 0 -290px no-repeat; -} - -a.jp-repeat:hover { - background: url("jplayer.blue.monday.jpg") -30px -290px no-repeat; -} - -a.jp-repeat-off { - background: url("jplayer.blue.monday.jpg") -60px -290px no-repeat; -} - -a.jp-repeat-off:hover { - background: url("jplayer.blue.monday.jpg") -90px -290px no-repeat; -} - -a.jp-shuffle { - background: url("jplayer.blue.monday.jpg") 0 -270px no-repeat; - margin-left: 5px; -} - -a.jp-shuffle:hover { - background: url("jplayer.blue.monday.jpg") -30px -270px no-repeat; -} - -a.jp-shuffle-off { - background: url("jplayer.blue.monday.jpg") -60px -270px no-repeat; - margin-left: 5px; -} - -a.jp-shuffle-off:hover { - background: url("jplayer.blue.monday.jpg") -90px -270px no-repeat; -} - - -/* @end */ - -/* @group NO SOLUTION error feedback */ - -.jp-no-solution { - padding:5px; - font-size:.8em; - background-color:#eee; - border:2px solid #cccccc; - color:#000; - display:none; -} - -.jp-no-solution a { - color:#000; -} - -.jp-no-solution span { - font-size:1em; - display:block; - text-align:center; - font-weight:bold; -} - -/* @end */ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.jpg deleted file mode 100644 index 52fdc1aabcff8460a60f5448c9ee6b050d963bb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16871 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 diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/spirites_blue.monday_2011.pxm b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/spirites_blue.monday_2011.pxm deleted file mode 100644 index e3adcabf42d74777ab30c707e7a05057c6388166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320476 zcmYJ4WmFX07w*pl%+QVWz|crb=g=YDsY9c5r#SS`-JnB?l(e9zbc2K_DC(%7fPjD~ zAmDrbuY1?JAJ3=rWuJZa^E|(8W@ju7CIO%Y05HrO8v_vluxOkbx9Q0&Be+ZgJZ63F za-1}HZC7)JIvcSonYu1G1tOq90o6M5hkV7xf`tZOa0YKX#FPfNwR*M9PqCSI2P z8^2=@3F@C{)_yT(>7`B+56X4qs`wyQ81RGu$ZQ|H_OX7l8UE~MyMgm-`OB0!uWkn) zYz7uE1oSxh+bY+;-n-WEwB>Qk=I={yDADf?x%GcksiUqz7Cv)7uH;O*yY~)a096Ta z3AP{j8lkE;{_WU7C0V2mK06Wmr_8g!`O&JEjCAUUSCF1NOIvw}zrPnCMD1I4v_i17 z;B~*>uN1ORI9-S!()@!u*Gt2hcpR&7PQ2= z)j$3y!9nh~1Nn>EXOGI6qXuzsWYjYu87T32c611Y=jCng^FE20-=yk~{(L6UO1q6c z(59o*u2a!(&JP;{Pd|kP;9Esq+1`kKJ_*DJ>5JNOQx}Q zR}|-XvuFUjf>d2#@`Pzi6hF`6MZ$N{X^TdZo;;2*so6Ab!*s4LeGq1x@0-7^(G+_h zp(j1ec9O6>3897oJH_Qtglw6f&{HBYs{?_q;^m?(4J7q zzEqu?@Kle9g4!5j-Zp8U6I;vC@@zt?Slb^gr~qiLQy_ z$9_7XAAesbt}k4hrbq;1JZhh;-$tK&WH%#NrQRB%2xAmBrPqd91}^GYq|L z?74{%%#`4^Y0B4hs&Sv!ZUA!ts8FeaKq!795=g=i21%6t4CLN*;n*}k?>60TtD5;q z(Mw3(@136U+iHw2bT3nydLB^2{n84MXxP~RyDDn0kaCJ{NNdZv@#-;9p2hw zG3Nf!77oU$74;OJ+V(ldEKA0`iE;43N(LMdG+us6!OQS0p`YyFa)o09UpLE2vp5N$ z-*EsOQ<=PaXo7#HB4#;WU~T`+kUyDjWs0%h}wzC(r5w_^LZ(h`5j27y|kjOL;@N`4G z*~gy-SRVd5!>zJK$GmIJ$aa_Or^B$QTOmy$G<=d!okBQ9L$r&s2|IbNYPHLm^4P*= zRBQ57yY^~b=sY2XBT$*cIponT_jMe=Vvu~yR3zk@7_jQj^}mk+n{!Hl!XZGV7K88& z=O;;5|8k(^CVLFrL1KHL@*fi!pac*QKCC7UO#hoXa$tv^F?qx*REeLGN)JG{tsFe$ zs!SWLZd)tW+qBxY*!WoYU3>BjT|Iu!eDXMjMzzb-m9iNN8F=rHgYgg+fDu1E4hG4c z-C1P1huM9NWoEuZo&xj9N4ESPa}URfF8Exeuh7U}Ljh7DqzYhs!9j#hTJHjWB&1}Q z8Hy^J(g`Gps=^pDn#{k+5N>?A^MV){>7*ujCClQGatp&iYy@vX{?-}4Fqh6 z)`*E@DED^5M*pp4u5isPSIHkWbH3=BUhiGr^RRu!$vjj`B-}*}*Qquijs zwej$GI6xQh`Z3j5(0Z| zaUW0XG9KJ!EBex;!PcAH>SOs_9Jndjtn};^HI()4vu9=>tgL2lKK;Qy%kcPzZ3h3T8~|LEnl zBaiQ=9$8jh|9f}Syz7NG0z%Xn2|f@Y<r+1xac^*~wurz)-hluXnlM&TL;~a%YbC4a0;=ef_xWn^u z4Wno$Z8&)*tKcL1q3myI^w!77?i)x6H#~gu z)5>hEUOR}qYtVu`-VB5tt@|uH*h@bQlWfr8e!%cnUUh@<3^0o4&uv!%1o6@ejqza% zYEq+VWCOmd3ebdL5^z0P-Q5l#KQ&H?+%a!*pKk`_9X5Gsum{If)r&hCj_ZEt#?X9@ zmkDYzq>(QHW20{#EgyWa6d+$y^8$#42#HQyI{;|AS8d(9v5#AQ1)g$DGdYW1U82!a ziNQfa0R%z^t38;^0KVIJp=^$n7K`l0uUdPoc}#DF{HNtW!wHfmig-M~p*73G45m^;;*2d_v5jYQrD1j3@*^ps|oT-9B64Yd196cVu+ z55hb*9&^9(t$M%25lxwuTjI{aM)|ALT*70Ydo_ZlPsU0BAuc^L0& zObx@k>d zk~795tSq z#HXCf?>ntC;qgJw+b0}Q@ULPIS_+G^h016XozKj>R@AOfJqb{{Rk_zM$7;IT_t z^?m2`rDh+a-QS(3B|Vb@zj^;WhA}*QV_3%amyy1JV z*9)@A)|}(*eCX1@-!frftIFSctM^QpzNVwe>HA!Ap<)p4oAZ+@*XLOs%>nY?4ZdZ3 zeO|7iW7ouFRc-boPGdptk=pKYl_)`YWF^`re`eJ15EfKvhS-95zj;&|;eYs{KW=-k zU^%box!~&yO|1o`=238N(!OehCgAF?vyyhyMa-R8>M;1Z#^M!UQ)^mlk_^pWF6hRQ7{}9 z_u;trNANJ;ZfK4tlE$Tl7t#PQk^sn|sy_g50IPdWIw;xm8OizSR1UYp1~mnN(u1`8Bp7iMJnd#2n?CJYQ)g*i@-$Yo{+c>PIGyiUn$7H)7wB;^Q`M3EaU1)6n z1V$mokhywwUtJr{7Oat9vPja?OK8~1e2zxUy!W9rNc=gup%BsEwY>#zEb030pcWbE z``N^YjCL~K__OJzq>*F^c{{-l(PAapPu8Ycp4|!`NijnnSq83AEUa^TRZ)xejTwT! z3nt$sXK24974nDLW}20Vm+C*Lb0otl7G45ejs6=3vS3#Mfz)j##x#~3-?-P04!+MmBun678sjU_e9UmD#e(il4>%I_)Xi-0 zqvcET(%$k)iPgYQrvEVW(9z8rkM@KmaDzx%z(fKxKGBw1iL+9rYJH|-DKrsg%Fy{j zSNh6dkuyhcgPxVq`91&LiJQT>@cQ2%Zsya=v%+i)q(Tc9k_(ullio!dmzkX@d&;BBwytek_1>D_W5@j~EKZD! zARe-BTd}f#cIU;-&#xTsudyEmq_8<^Um*t{z~@Ve+KIt#}?Zu{~0*KaaTdMphVf+=1%{j z!yQu2e@NAuRXB*GDaI0PzxcH%|~s;ffpqVB)8tUmj# zdh3bEDdER$$r_#m5qa2?N79~qPpO|!Kj;(nraYJN+K>jSJH99~jV4CSk-!f#G6q0n zdBUU<I1_L7P{pkyj zZ5Y|a|C{PzVFOU+Q3y$$e|>J0y^Y%)uXka-9&`>x{Ow3b{pEy{@tjswmk$y3J2|V3 z%CR9gZ!0PwRY#j@wRbdMYyn!4ZVPZa zxa;8>qRv`wmlGgU&GwDONSY+bKYPvRP=^)|t>A{--rOcFsNa6fIURZ5(45T&#SO{7 zlVD&6OR53pfA0V&l0E_lv$J>-4>%`Nc5w}J7G8KK?^-v}@Qj(@)Axr)miFaLJf)Wa z1aSzGYhMW^0t+S*{oJc>uFWC1GpwTojFKkZ6ibWC2rLSDplrC{w~litw22#TPfXbl$vhMx9eTz!NITdzjCr8(ye= zQza3-IIzJ~O2z5^szR>g1L@etu%_F(S-LhGmB#1{-+HWHZik2&cRn2ppOq`0v=UpQ z-7S%u7tOgzYS;Bx6(v3C1H3mhNtp}fBDpgea`Louhf3wSU0nu<64oqS^Y?mGH18i2szI1iv z)R0L<0Q^go-rVr|;PeVDzLY)Nq-H#dUB0DRcSm;d0vK1bg4)yKR18{S5Lm)3BvVyV zi?kmIM^=6lFtXC&wb$m{lW1rTbK2 zbWYbe?|9cGD{MQgc{)X#T4?}Dkh)00nmokOX}2Eh-ZnRERl2=W(3zZ^%OLkkX?N*s z^{!HCo#jI-c127VW%eBPQ$+?|V`_r?y+sktYwnaD`JKJ5-_f&+8*K7cwKN-4(9UQG z>AUPSk%^Skjy&{VlYM4nbCJBxiq+ibebl#{o9Za?$Zvn;9WS+atwSJC3t(yz^#xC9 z<>$-xJ6NCo_CJ)@g{Rs@$?KNX-CI4Iqit+me^GLru2{nWW9*iR`SFYA_0RgS?CM_) zmL|XQDdF`8VogJ2UL*`EEZ%(e9WSJYFF)>T;Pq|5oiUc$Yv=Z{{!p~49(?si6R+<6gg7(Fh+ekF?h@bwh@{#Ex* z*@B!KW?gk5+~&TirGC$KviQGoFkjEM4N+v8Im?juRD54C!{s+`|GMR?(XL)dL)6QH zhYB=HuhkkRk5NgLQ8}F^YRuuunB+7PoHq4mqyiPFrzO1wV>Mehpn)od0_sbQRyPE( zppDY>_M<)Nw)dGz%F)|q&|T|(cyAf78@q8T!9(_+zDPZeoh$xeFv0Sh?@M4bm(;MT zfxmF9`;H;UeIWNgc)m1ilX2P$ri zVONJP)Y#0#AiV1UN=w~^PhsNy5*u4C)u1}B0EN(qazfk#DRA-K(08Y>@0^Q`94H#@ z3+;kKwX0(bAK3s$NKP=dc9D1xdSkt|2%YT!6z@uX#lp(>O@bcuc{z5vwS*T}zj>B| z-B)ov4SuoU3rWQR(m~lLH+(Hhqxkr+T6|H}F2!m+3z{%5AvOrFH%Y_+Bh+ClocbGL z)j-{C_u2j4@V2#ggnjuV{FVOqQ2zH%C!zu8&liyZLQEG-dgC0jY@Ro%lwr2QC75YP zE%%plkg1UrNZqxpe7f}PWx-0{qxXe}HL7%jGpIHh!T49A6dx+Vqw5d4UjH`A_9SW!5{T@pgwXb&cLhoPV`Y(u=*Mu zh7k(!g#kDmV@0a&&L}|ZiJ%QfoLZ-{)PvJIi0hLT=kRB%*#miVtn3OwU$lILs>;}{h zma0_TPw{~Q)`uC)Kw$1rvDl>!QsRI_JQ)XMm6nI-nhIsq;*cIukx94wOV&b-Sx6sA zQq-zb)*1v_OI(`A253nv=`nNCK>(SzD6k6!fC49-G7>m2&{vVFe}{@-nffpt#zIG4 zii#)aB1HyNYa405GSNOZ)5i4caM$R_Sm~Gn9d}!uB!h7gILXCz#HmTjR&m0tkAowOJ3MVr#py8nBB=6v`8gT;D9uQqoL<!CG&` z0NP&nhY^{^&os@C&m4v7^Fz(ju5(z8IZaM&OwYt-GvJd*O8rrj)~VPpsX|cpK|Br{ zSA$2Sp8b8P{R-PMJEn9=??PX(AcKFuE!CTi$8wtQ0BeE{5VL^Fqi za(lid*?7UyD0Z)UV_Gj6sxzv|gmX(3wjrSnnl6QKc*o%=>@pbt;Na&kCsU04$mcdG z7O2?F7~N;v#eh2-XonUNQ|9e%k>b5Gl9BW6_?PQ@#>Z0=cR0+Ko6WaU;rLt1c6O|zz$GMT;^N0gZubz{{1lGP9ZAD+jjQ`G zvZkEp`;l`R&5i>keSu6^yVRf(gd|i|C>?NrC|Y4e_K3b5mRWvAVPP$0)i1ZqH#0WS zf1QxVdg{0GuYNYouM<<)6=>sW>8v>|9yBH|iOS-Q`7CGuvvAs97M*={RQ?K>k`CFB zY{gUzo!xIt0l9HZST3CT#cL856d~0L|Muz~`;P!nj&{gGXPKLIPC4r&mX*s)8#l~&5vuLx!vz%Va3Wiq_)SSroi zBlWB@_0ux|kg3}?B;M@l+sNrj3xJ+apHw_iUipnGp@ zG-fjUZjYWNtlayyeOeq2@In=M@nI#YW`MN%VVd0?_RI3MXSXaiC2Z>U%~qW39j`S< zVi8QVsge)-4mn5^IM`Q{-}=#}sy3!xK78A1hu68aOj7WUl|{Sd`m~Yp=pL8;_kG)% z6{@w13X2l3n&y}s%F5Zlw7Qs#iP3Sg!NG0EG9$(sfuphDJCEY01@$SVVKtetWZnYt zEC_tjxKm)1Q}UGK0&v`Xq08~#JN^ZlSxGHMX#fO(whUOGvxid;Gz&aGDA%@nFzT*6 zGOLP%tBqVPy;ptp-g(T~568l&iN9Ras#JR4qWAvU!UwyHAt&ZxEP%iTA&sO%UF-Jl z!tZ=!KlJmY#GCI{KjYA63&4Z7eN9&hg zZ?3Mt2sy>%=OdJR5``$3Fa4ipolry?ry9}XUcmjchp9a!4Ran$Ilbuf4%p8r9WXhz<%;vp622kQxT4 zS$%`dVVRLBKXUH2t6p14w2-eYr&v8W*QjnqJJB&aPKoYW2V!xOc$ zcmzcO4tOiY6m!{e_NVYaX>QKwYUx?7lAyr5e@}NFsaBY(_h7d0kdgf`cZSTiq2jXb zcWm6OXi}`L@R&F9Y%|L72?wwU`DF9Q1<~9-F^CcG4NOihMI3tMuEIa_=1YJ)0P+mM zrZbg~&5}Il{dxubd$l~gU|!O_I>QC}op`cu*ZsU4;}rxV`mP1z9g{tKQz=K(yD2of z-L$%|TX%c6_e3Uk7ud^mIrKa=k@@Xh*pMbGmo9r<2dS(pZIg-DGNRV9>u$&)=XFFX z8{@-Mw&JQN@q}-GtG53Vko))^fwUgoj9ZpAGT|k%i3U9t*S8yTZ;iAfb@T9U<~W$e z8{L8(Md#Zl#dx)nt*>RW4UM;cJUf<^IDGnwoSEtkR|^vu6I1) zn_K+1@JI!<6d$e7O7^ht{*NDL_XC)xPi<`a-vM%7AD?C1H=l%W*@GLsJ-*YeX>!K> zNBJJ7Zk`l1O4o8mEY39X$xpn2qKTJBu>-{4(X%3Hm)UuD|0WIB!X_-MZ+~fBo8xn7 zvY*XsrIa^xB zaF2O8Kr!@XHEBS3^b7m=euL)zi1enBh_gok76bhM9{gZ`>DK#GmFw6)08ofCApY`B z$MKaBuHam51k~3*aXxL1^hOXKrg-1wG7$rS2^aZR&HuWqSk)&}82ex513ePQ2-4^K zuiOHY4sys2+C)DiC=cHK3Z!A9p!G$_{+Fs>PkIjmNTJLZH~e2yO&(K`M;fJS_(0-l z61XX;SQxPyU?`hPqdCd6QQK7ioIs0);z2n9WoA;0{l5g5co zq(f|0K}t#g%?&S3bC34VpFWMk$%G^{QfG1SnqK}~^pe9N6qN^7(+-yPsUshj3CoR<4r#ZdsAEVrANM4iDgoYBH|Mo-DyyB z$Xu$_4I}~&vaMbIdVSNJBv&{Pi07Z`z$eEsc3*lOAa8cW3Z>o2StDROa%`hU957SH4$(J2VcSn#B8*#Sd6xjg$yUsJg)A$Hacu!H7^f_G zE>w`BaOL)|lEO(u7f=sh=DxQ91Q^l=A#DJVjQ|k&wz1AZiY;5OlX+Wgc(ZnC`v*ss zd(Fweh~AT1pB8co$u!b3{YU29qmRasp^=f2R4iXW44vJ8r+iNDM%RxE2pBZuAcGG6 z3kwz=l3SEMkfoUB{_}h-tfz4V zQ8&50I@$U?{Tr$HLbNfNEEd-LLXymkCGOrJNP$-kLQ-NNM94anXWJ-)cS_oBl#z$% z^R-0hFw^s|?t=D|^z5?AqRgD7Hsj(1c98n{#I`7(LveDQ4!xZBAci)H8<=Bozyk@G z#~%8q+{40u1JmX6$d8cjiu5lNhetw%{nwR$OY62Jpttp|ws0z#SWWYikzXf*2%LA! zU>txDpkV+8v~%Hux%7bC)9{L|4dT+B?R6tYGZ#**iZS8|54JWge6^?cpKoX zvO*^7$UBJ{kDu#(p31X_a8tQUz(nkDG={fydD2w$F|wI%wtqRTuqG-l3F`hK=l+{( zaW17_?aRZlLem-p^%=n8M+$$cc)Z2}Ar4>SjSx>F1#EoxQ=b0`{aP%FA2Pelw4MYg zA`z0v!O%YmsruHQU}azN01s#(Q^0|IblZQf+t1PSeg3UqCZOatmb5AR_BLsck7p%{ zZ1`YZWzv;>M^Q82wPqx32o8+LR==eS|4GL8BoqCmvJ2uJ3zO5F z{DVet0M7!!!G~~#=AGXn0QUmkN}7{4%gozKVK!a=zuXD8<20EXYta%T0ZT*v|HsVy zUzpO)*G8GY_BQrGS5`GqzT^-l82M$`|~WS3+HilSyZ>(2rAZiFViUG1_aU5pW4Efvb5#&M(=u_3SJDLu1yD z*pFDqVcf%#^f}z8@CK?Rz+$17Qlk)kEzNl?+oSAjS(|Uu!zku}s>QyBs8CPVzsc2G zxhur>%4mJyehUYhAGFwz#!05jIpaa z4`Z=4Ds;P%50viG(DZ1g#o*X zo@UMu!jYbAGI8EmlK9x7RFqW1G{NC1l=9~qi&iTt&vw@KzLs1x+}&?*0mzLXd<3vp zQ8e_De`yyQEQ!E0>xlN6UcLePfTMG;$L;s$IiNZQs{IOif6;m+i5=C zj|Gqt1!$=X;{u@IW!Yt`uEg=MI|t7tONn1=?9VAQF>>2%rT7&0FC_kiBI6^^Sz@_- zi~F640XN3~NnkgPAEdYipv$wz$}8gylWLMA16hKRd{6=uGD4rd4 zyQFJrTJ14c%myS<|5X9N=A{sCacsC}=hGV+0x~g<$x4A_>1>N@8rOu^7F`l)-%H@= z6cj0}_^#%sm8CuOb*Q%ktogfu>MRyODTfTSFx~*NDYcQSPxcQ#G+F@gWFLPqNe%hj?iQsJ#XOq-(cT zl+0O_LSGm%F=+w7ZB9i%r1IP0`6 zyp7QdWEjJ148*T~2?VqU)U2Ch5cuabQ7cWH?K9)vvnCQ0V3T81Rllff(5zonW>^Ft zYByeiZl7QEh#I0AEFDJzN2NyhU9V#mV*H;0=lFIx0PE}okh}J4`jmzcfnK_F!$2(| zPF+_%b}LAyGJBxnzdwW*bh3y*G3-Lt`ln3uU%-FBiX?r%1d^OsX- z3@tFmCf^tqf7|DP;jeCC!c)C9gXkt#aYX1@6fwg1PEMws>DKr=cAS$?aNLL z*@=FncH)?~75SEKZr)0{F2*&ndJbUA)LOQ>KP^t*2m(k(`&eul0N-`uXT5srrL}cW ze_3oe*fTvZafU`bO-upynGuiB`v}7a#I7J1iK2qn=4#X z^IDobH$=W&u+Huzews$(w4$+Wu7Q@iSq%xlczU5CZN|6Il;Z{ul7@!eWeGj)ld8NgvZO*+jMw3W(L8^S0^9uz|UzYBtC~- z!CRZk_4`!IS2E9w)#@?fG%4L524C^1l>kC5qmRpFUoY``9+y1*WW0Nr)2l7)!?QO# zTnASpH(!Jf806qkw?tlkk1P7!wDNYwafbk6YH}IEcTu*xoIjpNth`%IZ=XM~TCVq7 z^_z{VGy}kN-08eV=iJ3XR^yddiMfh=`|`}bE9$iABn#}XCK*t0AGMe?fPOg{NqOR{+*8lfp=V(CzOr@0c7#)Sc73gzSaL_0MoucR^;zZAD8f@r2ouI zAFSo&Cg$O(nMqp!q>W3fkp#=7h9S?n2Dl=A{A$q#jHNp?>+xo-6#KHWb4 ztpqxugr^J64Pdkeu!N)EBSOPC0131Mz>?%^Z(2=hYW>9tGJzsK+ef32vsEBXOa#rt z$8IEptf^z=Syf8LqD8HQfeJ)xgPdR?O)E?u_>jD&tpmMK!t;gVR&)u`fPx4<^86## zBq$%vUV;WgYasZC2jHN?uH2)ZbeM4HK`X5k39TzX1$6#i z6Yf3;zHe|keSb%LYh%$Hf5??n>`}#>@Y}4(grq4ojJZ&SGWEu=$r$y$t zVyLlROnEoif*OD1xr#P36Al^Ge7HwMW#X%Q4<`k<8s3v&0yqxiIx|EG(?VT3l5W+K z>`9(ac{ePR^>uK^q>J@z9cQREOSaFGC6ZPP8r=XWa_?Gjy1cIWe4A661JEuZ@|LOE z<67M97BgkY2IUNR(w6`r#h}$RaGaWSG>Z__k~zPa_rfgqp^-p34jgDy`nVek83eNh z2To0X{Y;{^G#^ua}H=kU4QIAPL^1=N1&(tK+qhl%XX8 zh}nOEvFLa_4hPsI>LF+}DL1zOk1xlDCk?liG)^2EU@RIUbxp`rv__I;S(TxMQ!D{} zkyctZ^h4(8_}Y&R5?z+xKN5rzttcV6J{q1;5*Pa}hG+k3Y^qfLzHlH%*^g={ zgRH{OT+d|%^xg)5I)0- z%|#I@m2ezDV1R=F-GFgdxaTYb`#!gNy=iw;XTH1!_bHH3;7ziG*~ksA>G=((MLrp(q?&8BlW73L6$C>Pku( z!_1AX-dXmjC|G?EMgKiCisoVb!xv_ln!RGc&|zKp*A%K@idt)mGG_1T*Xv)`(UjTN zuYak}@FclAlMh*kBEXf>+m#a6IS1iB7!ls;Q&77L{I|-6{-QkB zt*3g4b>XP^-_Ie(V5GzO%Lc$8pL*K~@g;gP_xsfFdfGhml^cV~4f%%8`Rfw`G9bS-=Shu(=GBCkt!{FL5a{xk42b!Q$*; zZhyl5&zN-PzD*bJjUu{pS^kD<{LVNL3^~ClYOI4A2i8Fj5-gx3UeNLU7gC}cD(@1` zn-}WpKqK!LWa|+jA1ZdmmqtD)A|gH#{Vd|~-ALQ4$j@n!C3#U1rB@@0q8?XAqZ6Y} z>Z2dGpyeM%pY%jM?uv7ymeTK^PPxKfp5H(d03bq zOLA#6mYpca$)EY#ehVG66FSMb+ehZdcm>x-7hp#dufXcBa3#Kv2e%@dpdjqKic08{ z@??=nR8Yh!$S3w`SgxukDH!PX=_U1vRY?J$3L?dseDBR*_@k;3nVk-?u zRfwW3jY#c_C-1w9S4e}}BJh2A(8!!Lh0^oBlC(a;@#+0^g~nZ$2kCw7-xX3b6#Cv1 z!f7@1QA9&dNHOow4o|6IM&GNxV+Dw-13OldlmI9Q>(teM0S}Q=;Z2Ue1&YW+3&yFy ziub2o-P5z&z1x7mXvngiy?U5qPnR!xp0fzaI33B1oJO6_C-?IgG+Ji$eau!MDOfYe zk6bS7H)~&gT%>3h9%Wn9j}2hGS*+;oZSPgwALzLjP@)*=sTfhxAFp9=TB?Zm`nl)7 zIO(^1k7YZv44UPVq^kIc5n9&R9m+3+ep+^|N{MEz?7OzsS)J2aqcr(&i`90KVvb)! z?3Jjs@-HlqH6mc0kZC4r?H0GBp)Ye7pS6Y)J~vlIy)!8z@+*FQwxMxvXXd`n%ln0g z1#3$RnI(kj^trT!W>{v+r@JOgp@0o>uk5{(>vD~7rJSaQrfBhHDzf}L;R&}#eNAgE zo6PhRWx}g%2cy3zxF-}tr?cf)H#t#{pr{X4uYb$2nWV`SoyVR(h-53RA}TN?u#gi) z{D#;N-{A@w=JFx^lpT=j+HA)1LA~_nh$oXmW>y#b(kZy)R@c_%YrU|=u;ykKMc{Cy zMwc9m=7|TShBzUm`AfEy*79_VB%Oy48*~mM{2e0zjvb9Ay_)UI@2!MSu3A+oMQ5(i2WVw8Zb6bWtZicx|)s(16r!CmgujC`|Q zDu#`(ljHQv+4QY)m1U@CdKC?>m3Ik_w4?p@RTn)49GTI(#jK7U0{NK}!%ZE3N*>nc zK29k{Dg8kkQYH+(g6~k1;jT-d#pmLwS%aCc46PgR45LN~B7|XR0&CNgHqrRnK}kJ$ zHwQYpGbO{dmfhknR&S_Aa>`ef^#N&Mmx-Qhb1wnXf{R9%9rm-k3_#Nc1-`&>Ql7&? z6dL%fPx&ZK2Q=0n46{&T)Pw;Z)+rJd9r%K$#cwEy%i!_z^CKbL6Da+aM=>*3jVWZ5 zi`pX*Q)Fni%4!~IW;>8J-4d7eDQHIK`w&5|qk^;j9j((j8_Cl~_!wi`*L4PsCZ2c; zPR{`{49^@lzTIdQSsi?BhfxVP4R>|x{9fA$Mz@uvZg( zG<4ZV+L@|9@Dnm2cu{WTVxI!ok5vaGx>~1z61>2W5I49Rc}a0_AEG2wk%Js}6TrFi z_5m895wvC%v?c}=J^wA+&fCgX7=L3Zd$k{>df#-5k&THuO{dm;o6$B*>_3BSg&jbu zV+7cn0Vh)~5aauKQw7Hh|8C;bXZU}t03fe-!AT-d3$4sAU9+p0V zgKmbZWoy}#od>W0a<^>;gb?Iz5g@w;5X}EX%S%AU#yVVJP%@h>%Sh(ac~hz^SBPc& zgEEhvr&3)5bEyz;At%1hCYm@=o&kYW^QgX_Xvl{jg9x5Lb!+h{qlVJ9Hv#?ce?(kx zaafDJH{O$b21s*S0PF;i-(>yrZVQmyxwu)@wAj0cFUMd24Ni{$ywbU!M22%sEOU_X z1}yom$>D02{D+BCfWO!e$#uuTj%YeWX!YvJid4w`X;n@HM( z&_o`POA8gsyZVSxQ<^V>SN}*mzeXkJ8WVkI{V9MOVnM}K1B>C?zEyd+6f6o0oZ#Zg z?WLnLQrEqhS_OUI0_LB%e+yZ`Eo~Q*Vj-RPHA5U0{O?gq5@M9aW*q#dORDz~6VHGy=c|x|g03@rak|lf)u)YhAX?m@16&&TE zlO9-!ts@MQC$W5cf>eNA_a0{?r1b+YvD!eZ!ikPQcXgGilAYtRkpkp<7Sq?Zo?Pj} zf;*q~VA{d10hX)H65l05i&}K-0L1NpR*mLWm^fvTMxgh=P1#h%-vd`%RXp7}9#s4X zvgL7LWOi$d&t@F?M^iR&!7t|K3wgG*WWeGQ4Y>Z`fWU1m`wKWj9ws8AUI z=q?smb~zMxM%_^uW5yfpCYr1 zOduPygK}ZOE)%aS){yLJxuO5VGL~@e$ha+$VgUV*2vF)L4tgeiL%5{Yzud(Fie!US z@i=g0@JJFl#CkQ@m!!9$;e+95;F4JF)P7d=?*6#`pV)XxIO-EEW%mDJ?=7IB{Jwti zGs)1M5+fKWj7*2gB%snEB1#S&;}8PYfC$(aAc};I-Ccl%4JIo3#m2_QzI$e{zVLhB z_kaKEu65VC4$GPIoY-fdefHV=v(Iy$N2@QrV_Fsz)UC&y3Lb=UHwo4cZ1Cg<f4arh+#y!$O4w_f237`n_g2g|KpGY3ZeqiN3MVP1o%z-3^a?Mca z*tz1#km00VLx%JdStFe9>=i{1D|ioe9@}_Ief=|cHI=h#@7E{HkQ7`(xRZ$iIdR^v zv-^;84Uqll4&-3qJac0Yk^*DJ)Ul|ub;oDSdyDn1UlYW=V{qifcqVJ4MGPTzp=Q;} zt4vp9(OSx_3`kzXMCkFI1c<#*2`@@5|%ilYMHG@UE+*EC&SSQ z-G#GhZadc9`h2V^_Fk}SQQzJsQCY>)8%2uo&$UD?6Jygpt<16t^+e{6u#r^O#o#U2 z-ob{g*l?tsv#5bpY!LoD&vN(s7q>mF!iVU@YIRgO%+gehEY3GzDg>`l?-b{u*hsQD zKSt7f%(A{Z_QEsrb<>Q;G`II0>^9f^-iUpzSp049W|RDOJa&(ZG&-iJ6@YZVZ@Y^vyy-E#ZnW;5 z_p(O_#hpNP2yG_#<{di|fUlU*vutC&Pb)XP2)n>H-}naa#*|*yW2VcHRY=y_vZgux z=383%3@xi5P9h?dP@A1Huc+U^m6he;l}Fl^E~YLh=$N8=cbWpzpjrD+Pu5RSRJZul zRy~lBGUBp{FHLbWNAUAw>ZnZZ5fQ<>7-FxrO z}JF}AZWoWabN%{R>oG<{~65%sq7E%-2QJUa~q! zq;N@Y$C0D_Jv|#xKfwU|x0)v9-`Bp1!aR#$f1X>rZM=AI$-0k+HOl7HZ4{g2>(XSz z;y71K@e|Q8Psyn>8*wXWK3noe5)5XnUZ@ze^^ES$t*;!oh(JzTUL2X{I;(QW2P21( znC4K+ngOWco@MjSqr)Xm={|0xuU4VHyUqk#y-m_=VXlrt1fR^Jy<;#91h8I~`67w2O?IvYw2}csBiTdrs3k~KJ)=br|4aC$w5}c*X z4q(pkdAfB6wg=T@-TKw1Wy_ZaC!LE!#DmQv@nw0W?c$obXJpGfNpp`WZt31XW*u=7 z!HZP1`DYAP_9z-v(6JxioNhDntahz;Zrpy6DE4%D%!vGFrfG4*%cSR@EiQH}8F0gG zv*wf;+wYpZ!fvCMoZ?^g^mX3D9aa!tH@z`u*S+y}T!e8Y6onHjnwM#mdluB@ls6}6 z+-WGf(`GyWiDSphgV=yW220m7Ulfd)zBjIf96qaJ!!*tP+t?ctD-4&;@M{ zTl<^bW6v?(we#7`trr|C=R27?COZc5oG+FH^hsFO z?+Rs2+USMyRi3WZfeCI`a$>H`T+(mF>cFvK?i&{beyZ78zlVKeZ&O6B(*A_7wJr=8u_C+QJ5u!GRCd>A-YraDa)-7SoYswMQzQa?YnigiL@POJa2=^ z(gXI}xt6q|GqiHuZCk%kza|(_YFu^K(QVe#63uTMT5&_?`N95sFV$*}$*Ewuf7)_J z#NN6)_rXDvG9i(FSCNJ5(QJ;Eqg<}$oK|fVnmv=0S-6i%Y@MK8ove{{kJy;C5b<+c zZt6W9xZ}X!V$W*Qo$EyZX~tvsC`yEycWN~If4O+fTgN(`bWiBKLBuHT$yn*qYt~?f z*5{%&590E-D1J(=56Q5@@Mil-~UA?uo1bf?BbL?3DxxSj`4R&2MoH5!( zkM$+&%C}w$Y*Qmq5_44$`D?bWQ-CTsmoA1#!wN5owZ-@O);0O0vF2H?70+EYcMX=%m;{T2$mT%>wQ~w<(S`Q8xivT)i$JWC1Ioh3k(W)IAAyjM zLvx8jYjIwO)~q-;@ya8sC>r;;C1;uu|I_hNvbnpP9UglPn$fb@zg4DrTwvpSReFEk zacAweccwQw=1vb!SyD5s5aq?06`ERLw~)Os`;a0Ir(Ihyts~aX)lVZoG;Zsfyk^q8 zcGuhzTvi;ANQ9d}O) zmufm1&1$}#%UzV;kfdEbMW5=1Ic1q^K$_D!F}k{~!07aH%%N!tG0 z>DHcPo$xH`)!vVV%>^1>C)S@eja=gOT7mG?xMIgxjp{l1Mdov5!+abI?gk@VgQ-ok zkw`Z2MRS_Qaw^(OsJI>PA7~uEd2(vSr1Q6A*R`_%<9#hT)*gHDx+T5+KTPhR6{;z^3^!nT7b7*iBJ05uV(m03M-$0;li zEr=(Q6xet2bcJoP-tCK;V`Wz=X03m{|8aWns_H38GHk|D-;k{+c>n(9_(N|CI$lRl zPcf*7S--WgZB481p||ym3y@s9dKj^J&h6!P3Lgwf;f%KK$8k+6yo26l&20%UNasFE z2pe%4`&MXnK}R(=k{h#1gw#doGm*50h&2v%qsxv}-NV zXyUYRleu>D4B~kC-(&yUjMo4x2Qp<@qO9Bn*#tx^ZItyB#g9~Wg6c9>K&E+o-Xpi+8Oq#BDCp9{L&Bqk|zM9QrH4L%S zs*{V3TqcEUA%lC9<0~-S0?b~WNj@c@&kGT+Ae%b*dg0{9>lJ8G5#~Pq8L}jhTk(BN zwK9dSdH^+Yji(=vY|1(o!|E~DEvo4wzCi4-z(aKsSoES4&fi~GV1r-G&V5*mS#=*- zRwBgc*l;2rMK`&c^qqY*#cR#*b&Wgx-Zh|r!C2b-8p~EB)WuX|iXsnVs|78o=C$b4 zsZ52LH+6dCP87OOnBH+F zu699tG2cI*7$1D2D4(o9p!Xvf8PHSO~ zxcdetR_FKIIu&W``)+7^@~vpno^WK3;r3}*b$^hj1=2iuHZ5ni=>iLs(*QTYF{eCR z@J6Ru9=rudx$)4LBX{h)998s7LV0Z5@Uo3Y0Ov*C}}o${AIQc@%za*Jt}HHtz?| za+qm0cK969>LnMf&^lS&TGL2Nf0@pN>ar-H~*YPj2c7Lty6>8>D-~MGn zztgW<_6H~wib2)h?RYa?jeJ4Gzh7f2u%m6osrW3mUw} z72|x>({aX$e`w8L@*Nx&oT{a-@8vZbzxePP2Ct?xRk-5v&$rbjZ0(zFv@2{YoV?|Z zd4CqAhq&sW3CGThUZi*tfT+l2!n*5KyJrP%`Wa1 z?y+q9FlkEIu(elh+CNX38g}GSYWufZ104cpPwE#<<=g5^&eb-C+Gx}p%-lw-_t{9% zK1vGhr=vW1i>rCIXqe%#`OX-FV@)FiO%H7ojW$1FIBT1^#CKzIkG-^2<84mPe>xhD z#lqX_cDV3AZLxEEt(9X})bruw>caZ>yEZf#ZLfisPgUco)yN846CS;DzQWy6!?~wN zJDPB=D0*(*DSGHqYWaXB> zD9UEU$1js?0fpi#Taf^FI$?c&?Pz!3!;`kIS@Hs}KWK??1&R4PIu+z87EH;sx$;n!7dsl{8s|!! zv68t|QnDugM#1X!2{%scTJmE4tA-4xHOucFD(!2v$Vw3#j^NduH^bv>6^ z;x^O-X`HQY?q9WR?bz%?spao;YuhKe=pTDE3C_qXtgD>Pyf~C3OR_#0|81O&)AcoJ z;3H0J+j=%J({pRlINkVqGPORxwze1Q(U;ePGAs6szcr!aL++g{g~puw*<&Xhva~ET zY@S*YYxK>~4j$^X%qR1oUPeWHIvJHeTKN!A|2Nm$8qg~ zZzo9qOl>0eJQh69$n)~Z8BKzIVpoi5Rm$p@o!`7})}0eWT+s>} zU3Zznz*c}dzS~lZbr|jW8m^%;=PR&oV#}VrR;@~0>>kNJ%%dah<#E{dh7#TE+53n^ zO%7EwpM4QW1Kl zEuGPSX*f3FxaF1s4kHg#xl6{)do{>9246nIuw|Cp;>#{=f({4mmYzP1h=4ZCwSRLy zM4_3=j$YM*jK3ZwtjA;GdYUf0s2DW2R#55BH*t(MkYId|Sk~TuWq;Yv?c9uALm$`c zSM8J`kw+bkwDnMpE6UW{b~WJs;2F!8lVk`i1%_@4QrM+gw2(Ae$mH~N_YLdb<59oLTp4Dzgn$h2J*ha%;pfObT0R;~ zv5CzN0a>Ggq{~2QF8uq#(}Xf&Eefphiv9uMuh69 zRq(pnBla6wd@#*VGp^+=58sNWm(1MX`9#((-*qPIrGqee^%2_)1uLELNQS}gx?}w6 zG78iU`#9-*>Y%FKep{B=n(NOvesBCo>&n3QL&);jV+&%#`l!|n3qy| zo$KZk{mRb8GA?@(_PBXJy1YLyc!_2$d-pCX; z#5Z6;;FvK%?~bR9^(g3hc;2EupAGuvYH;CcLDsgjw@M3Z8N>4XwPzailk}@y8*FAe zBWkp1@}hI2OJ#@RkXec8*p?6COBrJmUX_k_co1>y7=BJQf~S41$fcDDk85#`f|`Nn zh~ZBb#aJg~+{?bb=g^zbunEt

VFPc4lP93C5hrhjnK&s~+6BSh6&h`GubMs6_5r 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 O`}==;2%%u4;2QwYWU6rh diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootbox.min.js b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootbox.min.js deleted file mode 100644 index 3503860e..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootbox.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * bootbox.js v3.3.0 - * - * http://bootboxjs.com/license.txt - */ -var bootbox=window.bootbox||function(a,b){function c(a,b){return"undefined"==typeof b&&(b=d),"string"==typeof m[b][a]?m[b][a]:b!=e?c(a,e):a}var d="en",e="en",f=!0,g="static",h="javascript:;",i="",j={},k={},l={};l.setLocale=function(a){for(var b in m)if(b==a)return d=a,void 0;throw new Error("Invalid locale: "+a)},l.addLocale=function(a,b){"undefined"==typeof m[a]&&(m[a]={});for(var c in b)m[a][c]=b[c]},l.setIcons=function(a){k=a,("object"!=typeof k||null===k)&&(k={})},l.setBtnClasses=function(a){j=a,("object"!=typeof j||null===j)&&(j={})},l.alert=function(){var a="",b=c("OK"),d=null;switch(arguments.length){case 1:a=arguments[0];break;case 2:a=arguments[0],"function"==typeof arguments[1]?d=arguments[1]:b=arguments[1];break;case 3:a=arguments[0],b=arguments[1],d=arguments[2];break;default:throw new Error("Incorrect number of arguments: expected 1-3")}return l.dialog(a,{label:b,icon:k.OK,"class":j.OK,callback:d},{onEscape:d||!0})},l.confirm=function(){var a="",b=c("CANCEL"),d=c("CONFIRM"),e=null;switch(arguments.length){case 1:a=arguments[0];break;case 2:a=arguments[0],"function"==typeof arguments[1]?e=arguments[1]:b=arguments[1];break;case 3:a=arguments[0],b=arguments[1],"function"==typeof arguments[2]?e=arguments[2]:d=arguments[2];break;case 4:a=arguments[0],b=arguments[1],d=arguments[2],e=arguments[3];break;default:throw new Error("Incorrect number of arguments: expected 1-4")}var f=function(){return"function"==typeof e?e(!1):void 0},g=function(){return"function"==typeof e?e(!0):void 0};return l.dialog(a,[{label:b,icon:k.CANCEL,"class":j.CANCEL,callback:f},{label:d,icon:k.CONFIRM,"class":j.CONFIRM,callback:g}],{onEscape:f})},l.prompt=function(){var a="",d=c("CANCEL"),e=c("CONFIRM"),f=null,g="";switch(arguments.length){case 1:a=arguments[0];break;case 2:a=arguments[0],"function"==typeof arguments[1]?f=arguments[1]:d=arguments[1];break;case 3:a=arguments[0],d=arguments[1],"function"==typeof arguments[2]?f=arguments[2]:e=arguments[2];break;case 4:a=arguments[0],d=arguments[1],e=arguments[2],f=arguments[3];break;case 5:a=arguments[0],d=arguments[1],e=arguments[2],f=arguments[3],g=arguments[4];break;default:throw new Error("Incorrect number of arguments: expected 1-5")}var h=a,i=b("

");i.append("");var m=function(){return"function"==typeof f?f(null):void 0},n=function(){return"function"==typeof f?f(i.find("input[type=text]").val()):void 0},o=l.dialog(i,[{label:d,icon:k.CANCEL,"class":j.CANCEL,callback:m},{label:e,icon:k.CONFIRM,"class":j.CONFIRM,callback:n}],{header:h,show:!1,onEscape:m});return o.on("shown",function(){i.find("input[type=text]").focus(),i.on("submit",function(a){a.preventDefault(),o.find(".btn-inverse").click()})}),o.modal("show"),o},l.dialog=function(c,d,e){function j(){var a=null;"function"==typeof e.onEscape&&(a=e.onEscape()),a!==!1&&x.modal("hide")}var k="",l=[];e||(e={}),"undefined"==typeof d?d=[]:"undefined"==typeof d.length&&(d=[d]);for(var m=d.length;m--;){var n=null,o=null,p=null,q="",r=null;if("undefined"==typeof d[m].label&&"undefined"==typeof d[m]["class"]&&"undefined"==typeof d[m].callback){var s=0,t=null;for(var u in d[m])if(t=u,++s>1)break;1==s&&"function"==typeof d[m][u]&&(d[m].label=t,d[m].callback=d[m][u])}"function"==typeof d[m].callback&&(r=d[m].callback),d[m]["class"]?p=d[m]["class"]:m==d.length-1&&d.length<=2&&(p="btn-inverse"),d[m].link!==!0&&(p="btn "+p),n=d[m].label?d[m].label:"Option "+(m+1),d[m].icon&&(q=" "),o=d[m].href?d[m].href:h,k=""+q+n+""+k,l[m]=r}var v=["");var x=b(v.join("\n")),y="undefined"==typeof e.animate?f:e.animate;y&&x.addClass("fade");var z="undefined"==typeof e.classes?i:e.classes;return z&&x.addClass(z),x.find(".modal-body").html(c),x.on("keyup.dismiss.modal",function(a){27===a.which&&e.onEscape&&j("escape")}),x.on("click","a.close",function(a){a.preventDefault(),j("close")}),x.on("shown",function(){x.find("a.btn-inverse:first").focus()}),x.on("hidden",function(a){a.target===this&&x.remove()}),x.on("click",".modal-footer a",function(a){var c=b(this).data("handler"),e=l[c],f=null;("undefined"==typeof c||"undefined"==typeof d[c].href)&&(a.preventDefault(),"function"==typeof e&&(f=e(a)),f!==!1&&x.modal("hide"))}),b("body").append(x),x.modal({backdrop:"undefined"==typeof e.backdrop?g:e.backdrop,keyboard:!1,show:!1}),x.on("show",function(){b(a).off("focusin.modal")}),("undefined"==typeof e.show||e.show===!0)&&x.modal("show"),x},l.modal=function(){var a,c,d,e={onEscape:null,keyboard:!0,backdrop:g};switch(arguments.length){case 1:a=arguments[0];break;case 2:a=arguments[0],"object"==typeof arguments[1]?d=arguments[1]:c=arguments[1];break;case 3:a=arguments[0],c=arguments[1],d=arguments[2];break;default:throw new Error("Incorrect number of arguments: expected 1-3")}return e.header=c,d="object"==typeof d?b.extend(e,d):e,l.dialog(a,[],d)},l.hideAll=function(){b(".bootbox").modal("hide")},l.animate=function(a){f=a},l.backdrop=function(a){g=a},l.classes=function(a){i=a};var m={br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},zh_CN:{OK:"OK",CANCEL:"取消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"取消",CONFIRM:"確認"}};return l}(document,window.jQuery);window.bootbox=bootbox; \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-lightbox.min.js b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-lightbox.min.js deleted file mode 100644 index 3b299fa4..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-lightbox.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";var t=function(t,n){this.options=n;this.$element=e(t).delegate('[data-dismiss="lightbox"]',"click.dismiss.lightbox",e.proxy(this.hide,this));this.options.remote&&this.$element.find(".lightbox-body").load(this.options.remote)};t.prototype=e.extend({},e.fn.modal.Constructor.prototype);t.prototype.constructor=t;t.prototype.enforceFocus=function(){var t=this;e(document).on("focusin.lightbox",function(e){if(t.$element[0]!==e.target&&!t.$element.has(e.target).length){t.$element.focus()}})};t.prototype.show=function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;this.isShown=true;this.escape();this.preloadSize(function(){t.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");if(!t.$element.parent().length){t.$element.appendTo(document.body)}hide_animation();t.$element.show();if(n){t.$element[0].offsetWidth}t.$element.addClass("in").attr("aria-hidden",false);t.enforceFocus();n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")})})};t.prototype.hide=function(t){t&&t.preventDefault();var n=this;t=e.Event("hide");this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=false;this.escape();e(document).off("focusin.lightbox");this.$element.removeClass("in").attr("aria-hidden",true);e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()};t.prototype.escape=function(){var e=this;if(this.isShown&&this.options.keyboard){this.$element.on("keyup.dismiss.lightbox",function(t){t.which==27&&e.hide()})}else if(!this.isShown){this.$element.off("keyup.dismiss.lightbox")}};t.prototype.preloadSize=function(t){var n=e.Callbacks();if(t)n.add(t);var r=this;var i,s,o,u,a,f,l,c,h,p;i=e(window).height();s=e(window).width();o=parseInt(r.$element.find(".lightbox-content").css("padding-top"),10);u=parseInt(r.$element.find(".lightbox-content").css("padding-bottom"),10);a=parseInt(r.$element.find(".lightbox-content").css("padding-left"),10);f=parseInt(r.$element.find(".lightbox-content").css("padding-right"),10);l=r.$element.find(".lightbox-content").find("img:first");c=new Image;c.onload=function(){if(c.width+a+f>=s){h=c.width;p=c.height;c.width=s-a-f;c.height=p/h*c.width}if(c.height+o+u>=i){h=c.width;p=c.height;c.height=i-o-u;c.width=h/p*c.height}r.$element.css({position:"fixed",width:c.width+a+f,height:c.height+o+u,top:i/2-(c.height+o+u)/2,left:"50%","margin-left":-1*(c.width+a+f)/2});r.$element.find(".lightbox-content").css({width:c.width,height:c.height});n.fire()};c.src=l.attr("src")};var n=e.fn.lightbox;e.fn.lightbox=function(n){return this.each(function(){var r=e(this);var i=r.data("lightbox");var s=e.extend({},e.fn.lightbox.defaults,r.data(),typeof n=="object"&&n);if(!i)r.data("lightbox",i=new t(this,s));if(typeof n=="string")i[n]();else if(s.show)i.show()})};e.fn.lightbox.defaults={backdrop:true,keyboard:true,show:true};e.fn.lightbox.Constructor=t;e.fn.lightbox.noConflict=function(){e.fn.lightbox=n;return this};e(document).on("click.lightbox.data-api",'[data-toggle="lightbox"]',function(t){var n=e(this);var r=n.attr("href");var i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,""));var s=i.data("lightbox")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault();i.lightbox(s).one("hide",function(){n.focus()})})}(window.jQuery) \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modal.min.js b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modal.min.js deleted file mode 100644 index 78ec172c..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modal.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";var t=function(e,t){this.init(e,t)};t.prototype={constructor:t,init:function(t,n){this.options=n;this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this));this.options.remote&&this.$element.find(".modal-body").load(this.options.remote);var r=typeof this.options.manager==="function"?this.options.manager.call(this):this.options.manager;r=r.appendModal?r:e(r).modalmanager().data("modalmanager");r.appendModal(this)},toggle:function(){return this[!this.isShown?"show":"hide"]()},show:function(){var t=e.Event("show");if(this.isShown)return;this.$element.trigger(t);if(t.isDefaultPrevented())return;this.escape();this.tab();this.options.loading&&this.loading()},hide:function(t){t&&t.preventDefault();t=e.Event("hide");this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return this.isShown=false;this.isShown=false;this.escape();this.tab();this.isLoading&&this.loading();e(document).off("focusin.modal");this.$element.removeClass("in").removeClass("animated").removeClass(this.options.attentionAnimation).removeClass("modal-overflow").attr("aria-hidden",true);e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},layout:function(){var t=this.options.height?"height":"max-height",n=this.options.height||this.options.maxHeight;if(this.options.width){this.$element.css("width",this.options.width);var r=this;this.$element.css("margin-left",function(){if(/%/ig.test(r.options.width)){return-(parseInt(r.options.width)/2)+"%"}else{return-(e(this).width()/2)+"px"}})}else{this.$element.css("width","");this.$element.css("margin-left","")}this.$element.find(".modal-body").css("overflow","").css(t,"");if(n){this.$element.find(".modal-body").css("overflow","auto").css(t,n)}var i=e(window).height()-10e(this).data("tabindex")?r=e(this):i=e(this)}});r[0]!==e(this)[0]?r.focus():i.focus();n.preventDefault()}})}else if(!this.isShown){this.$element.off("keydown.tabindex.modal")}},escape:function(){var e=this;if(this.isShown&&this.options.keyboard){if(!this.$element.attr("tabindex"))this.$element.attr("tabindex",-1);this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&e.hide()})}else if(!this.isShown){this.$element.off("keyup.dismiss.modal")}},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end);t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n);t.hideModal()})},hideModal:function(){var e=this.options.height?"height":"max-height";var t=this.options.height||this.options.maxHeight;if(t){this.$element.find(".modal-body").css("overflow","").css(e,"")}this.$element.hide().trigger("hidden")},removeLoading:function(){this.$loading.remove();this.$loading=null;this.isLoading=false},loading:function(t){t=t||function(){};var n=this.$element.hasClass("fade")?"fade":"";if(!this.isLoading){var r=e.support.transition&&n;this.$loading=e('
').append(this.options.spinner).appendTo(this.$element);if(r)this.$loading[0].offsetWidth;this.$loading.addClass("in");this.isLoading=true;r?this.$loading.one(e.support.transition.end,t):t()}else if(this.isLoading&&this.$loading){this.$loading.removeClass("in");var i=this;e.support.transition&&this.$element.hasClass("fade")?this.$loading.one(e.support.transition.end,function(){i.removeLoading()}):i.removeLoading()}else if(t){t(this.isLoading)}},focus:function(){var e=this.$element.find(this.options.focusOn);e=e.length?e:this.$element;e.focus()},attention:function(){if(this.options.attentionAnimation){this.$element.removeClass("animated").removeClass(this.options.attentionAnimation);var e=this;setTimeout(function(){e.$element.addClass("animated").addClass(e.options.attentionAnimation)},0)}this.focus()},destroy:function(){var t=e.Event("destroy");this.$element.trigger(t);if(t.isDefaultPrevented())return;this.teardown()},teardown:function(){if(!this.$parent.length){this.$element.remove();this.$element=null;return}if(this.$parent!==this.$element.parent()){this.$element.appendTo(this.$parent)}this.$element.off(".modal");this.$element.removeData("modal");this.$element.removeClass("in").attr("aria-hidden",true)}};e.fn.modal=function(n,r){return this.each(function(){var i=e(this),s=i.data("modal"),o=e.extend({},e.fn.modal.defaults,i.data(),typeof n=="object"&&n);if(!s)i.data("modal",s=new t(this,o));if(typeof n=="string")s[n].apply(s,[].concat(r));else if(o.show)s.show()})};e.fn.modal.defaults={keyboard:true,backdrop:true,loading:false,show:true,width:null,height:null,maxHeight:null,modalOverflow:false,consumeTab:true,focusOn:null,replace:false,resize:false,attentionAnimation:"shake",manager:"body",spinner:'
'};e.fn.modal.Constructor=t;e(function(){e(document).off("click.modal").on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault();i.modal(s).one("hide",function(){n.focus()})})})}(window.jQuery) \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modalmanager.min.js b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modalmanager.min.js deleted file mode 100644 index 81f557ad..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modalmanager.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";function r(e){return function(t){if(this===t.target){return e.apply(this,arguments)}}}var t=function(e,t){this.init(e,t)};t.prototype={constructor:t,init:function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.modalmanager.defaults,this.$element.data(),typeof n=="object"&&n);this.stack=[];this.backdropCount=0;if(this.options.resize){var r,i=this;e(window).on("resize.modal",function(){r&&clearTimeout(r);r=setTimeout(function(){for(var e=0;e').appendTo(this.$element)}else{n=this.$backdropHandle;n.off(".modalmanager");this.$backdropHandle=null;this.isLoading&&this.removeSpinner()}return n},removeContainer:function(e){e.$container.remove();e.$container=null},createContainer:function(t){var i;i=e(' -
-
- \ No newline at end of file diff --git a/local/modules/modules/Tinymce/templates/backOffice/default/tinymce_init.tpl b/local/modules/modules/Tinymce/templates/backOffice/default/tinymce_init.tpl deleted file mode 100644 index 6db9acb9..00000000 --- a/local/modules/modules/Tinymce/templates/backOffice/default/tinymce_init.tpl +++ /dev/null @@ -1,119 +0,0 @@ - - - diff --git a/local/modules/modules/VirtualProductControl/Config/config.xml b/local/modules/modules/VirtualProductControl/Config/config.xml deleted file mode 100644 index 689f7901..00000000 --- a/local/modules/modules/VirtualProductControl/Config/config.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/local/modules/modules/VirtualProductControl/Config/module.xml b/local/modules/modules/VirtualProductControl/Config/module.xml deleted file mode 100644 index 144f751e..00000000 --- a/local/modules/modules/VirtualProductControl/Config/module.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - VirtualProductControl\VirtualProductControl - - Virtual Product Controller - Check if a virtual product delivery module is enabled if at least one product is virtual - - - Contrôle de produit virtuel - Vérifie qu'un module de livraison pour produit virtuel soit activé si des produits virtuels existent - - 2.3.4 - - Manuel Raynaud - manu@raynaud.io - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/VirtualProductControl/Hook/VirtualProductHook.php b/local/modules/modules/VirtualProductControl/Hook/VirtualProductHook.php deleted file mode 100644 index 8ded689a..00000000 --- a/local/modules/modules/VirtualProductControl/Hook/VirtualProductHook.php +++ /dev/null @@ -1,62 +0,0 @@ - - */ -class VirtualProductHook extends BaseHook -{ - /** - * @var SecurityContext - */ - protected $securityContext; - - public function __construct(SecurityContext $securityContext) - { - $this->securityContext = $securityContext; - } - - public function onMainBeforeContent(HookRenderEvent $event) - { - if ($this->securityContext->isGranted( - ["ADMIN"], - [AdminResources::PRODUCT], - [], - [AccessManager::VIEW] - )) { - $products = ProductQuery::create() - ->filterByVirtual(1) - ->filterByVisible(1) - ->count(); - - if ($products > 0) { - $deliveryModule = ModuleQuery::create()->retrieveVirtualProductDelivery(); - - if (false === $deliveryModule) { - $event->add($this->render('virtual-delivery-warning.html')); - } - } - } - } -} diff --git a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/de_DE.php b/local/modules/modules/VirtualProductControl/I18n/backOffice/default/de_DE.php deleted file mode 100644 index aaa4698a..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Mindestens ein virtuelles Produkt ist verfügbar, aber kein Liefermodul für virtuellen Produkte ist aktiviert', -]; diff --git a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/en_US.php b/local/modules/modules/VirtualProductControl/I18n/backOffice/default/en_US.php deleted file mode 100644 index 2b71ceb9..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'At least one virtual product is online but no virtual product delivery module enabled', -); diff --git a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/fr_FR.php b/local/modules/modules/VirtualProductControl/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index b04c5963..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Au moins un produit virtuel est en vente mais aucun module de livraison pour produit virtuel n\'est activé', -]; diff --git a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/it_IT.php b/local/modules/modules/VirtualProductControl/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 1a42252f..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Almeno un prodotto virtuale è online, ma nessun modulo di consegna del prodotto virtuale è abilitato', -]; diff --git a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/tr_TR.php b/local/modules/modules/VirtualProductControl/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index b2fd7a5e..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'En az bir sanal ürün hiç sanal ürün teslim modülü etkin yayında', -]; diff --git a/local/modules/modules/VirtualProductControl/I18n/de_DE.php b/local/modules/modules/VirtualProductControl/I18n/de_DE.php deleted file mode 100644 index aaa4698a..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/de_DE.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Mindestens ein virtuelles Produkt ist verfügbar, aber kein Liefermodul für virtuellen Produkte ist aktiviert', -]; diff --git a/local/modules/modules/VirtualProductControl/I18n/en_US.php b/local/modules/modules/VirtualProductControl/I18n/en_US.php deleted file mode 100644 index ecd80759..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/en_US.php +++ /dev/null @@ -1,4 +0,0 @@ - 'At least one virtual product is online but no virtual product delivery module enabled', -); diff --git a/local/modules/modules/VirtualProductControl/I18n/fr_FR.php b/local/modules/modules/VirtualProductControl/I18n/fr_FR.php deleted file mode 100644 index b04c5963..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Au moins un produit virtuel est en vente mais aucun module de livraison pour produit virtuel n\'est activé', -]; diff --git a/local/modules/modules/VirtualProductControl/I18n/it_IT.php b/local/modules/modules/VirtualProductControl/I18n/it_IT.php deleted file mode 100644 index 1a42252f..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Almeno un prodotto virtuale è online, ma nessun modulo di consegna del prodotto virtuale è abilitato', -]; diff --git a/local/modules/modules/VirtualProductControl/I18n/tr_TR.php b/local/modules/modules/VirtualProductControl/I18n/tr_TR.php deleted file mode 100644 index b2fd7a5e..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'En az bir sanal ürün hiç sanal ürün teslim modülü etkin yayında', -]; diff --git a/local/modules/modules/VirtualProductControl/LICENSE.txt b/local/modules/modules/VirtualProductControl/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/VirtualProductControl/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/VirtualProductControl/VirtualProductControl.php b/local/modules/modules/VirtualProductControl/VirtualProductControl.php deleted file mode 100644 index e3211039..00000000 --- a/local/modules/modules/VirtualProductControl/VirtualProductControl.php +++ /dev/null @@ -1,20 +0,0 @@ - -
- -
- \ No newline at end of file diff --git a/local/modules/modules/VirtualProductDelivery/Config/config.xml b/local/modules/modules/VirtualProductDelivery/Config/config.xml deleted file mode 100644 index 1b16d36c..00000000 --- a/local/modules/modules/VirtualProductDelivery/Config/config.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/local/modules/modules/VirtualProductDelivery/Config/module.xml b/local/modules/modules/VirtualProductDelivery/Config/module.xml deleted file mode 100644 index 4efd7af9..00000000 --- a/local/modules/modules/VirtualProductDelivery/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - VirtualProductDelivery\VirtualProductDelivery - - Virtual Products Delivery - - - Livraison Produits Virtuels - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - delivery - 2.2.0 - alpha - diff --git a/local/modules/modules/VirtualProductDelivery/EventListeners/SendMail.php b/local/modules/modules/VirtualProductDelivery/EventListeners/SendMail.php deleted file mode 100644 index 2eea49e5..00000000 --- a/local/modules/modules/VirtualProductDelivery/EventListeners/SendMail.php +++ /dev/null @@ -1,122 +0,0 @@ - - */ -class SendMail implements EventSubscriberInterface -{ - /** @var MailerFactory */ - protected $mailer; - - /** @var EventDispatcherInterface */ - protected $eventDispatcher; - - public function __construct(MailerFactory $mailer, EventDispatcherInterface $eventDispatcher) - { - $this->mailer = $mailer; - $this->eventDispatcher = $eventDispatcher; - } - - public function updateStatus(OrderEvent $event) - { - $order = $event->getOrder(); - - if ($order->hasVirtualProduct() && $order->isPaid(true)) { - $this->eventDispatcher->dispatch( - VirtualProductDeliveryEvents::ORDER_VIRTUAL_FILES_AVAILABLE, - $event - ); - } - } - - /** - * Send email to notify customer that files for virtual products are available - * - * @param OrderEvent $event - * @throws \Exception - */ - public function sendEmail(OrderEvent $event) - { - $order = $event->getOrder(); - - // Be sure that we have a document to download - $virtualProductCount = OrderProductQuery::create() - ->filterByOrderId($order->getId()) - ->filterByVirtual(true) - ->filterByVirtualDocument(null, Criteria::NOT_EQUAL) - ->count(); - - if ($virtualProductCount > 0) { - $customer = $order->getCustomer(); - - $this->mailer->sendEmailToCustomer( - 'mail_virtualproduct', - $customer, - [ - 'customer_id' => $customer->getId(), - 'order_id' => $order->getId(), - 'order_ref' => $order->getRef(), - 'order_date' => $order->getCreatedAt(), - 'update_date' => $order->getUpdatedAt() - ] - ); - } else { - Tlog::getInstance()->warning( - "Virtual product download message not sent to customer: there's nothing to downnload" - ); - } - } - - - /** - * Returns an array of event names this subscriber wants to listen to. - * - * The array keys are event names and the value can be: - * - * * The method name to call (priority defaults to 0) - * * An array composed of the method name to call and the priority - * * An array of arrays composed of the method names to call and respective - * priorities, or 0 if unset - * - * For instance: - * - * * array('eventName' => 'methodName') - * * array('eventName' => array('methodName', $priority)) - * * array('eventName' => array(array('methodName1', $priority), array('methodName2')) - * - * @return array The event names to listen to - * - * @api - */ - public static function getSubscribedEvents() - { - return array( - TheliaEvents::ORDER_UPDATE_STATUS => array("updateStatus", 128), - VirtualProductDeliveryEvents::ORDER_VIRTUAL_FILES_AVAILABLE => array("sendEmail", 128) - ); - } -} diff --git a/local/modules/modules/VirtualProductDelivery/EventListeners/VirtualProductEvents.php b/local/modules/modules/VirtualProductDelivery/EventListeners/VirtualProductEvents.php deleted file mode 100644 index 8b398ea6..00000000 --- a/local/modules/modules/VirtualProductDelivery/EventListeners/VirtualProductEvents.php +++ /dev/null @@ -1,119 +0,0 @@ - - */ -class VirtualProductEvents implements EventSubscriberInterface -{ - - public function handleOrder(VirtualProductOrderHandleEvent $event) - { - $documentId = MetaDataQuery::getVal( - 'virtual', - MetaDataModel::PSE_KEY, - $event->getPseId() - ); - - if (null !== $documentId) { - $productDocument = ProductDocumentQuery::create()->findPk($documentId); - if (null !== $productDocument) { - $event->setPath($productDocument->getFile()); - } - } - - } - - public function download(VirtualProductOrderDownloadResponseEvent $event) - { - $orderProduct = $event->getOrderProduct(); - - if ($orderProduct->getVirtualDocument()) { - $baseSourceFilePath = ConfigQuery::read('documents_library_path'); - if ($baseSourceFilePath === null) { - $baseSourceFilePath = THELIA_LOCAL_DIR . 'media' . DS . 'documents'; - } else { - $baseSourceFilePath = THELIA_ROOT . $baseSourceFilePath; - } - - // try to get the file - $path = $baseSourceFilePath . DS . 'product' . DS . $orderProduct->getVirtualDocument(); - - if (!is_file($path) || !is_readable($path)) { - throw new \ErrorException( - Translator::getInstance()->trans( - "The file [%file] does not exist", - [ - "%file" => $orderProduct->getId() - ], - VirtualProductDelivery::MESSAGE_DOMAIN - ) - ); - } - - $response = new BinaryFileResponse($path); - $response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT); - $event->setResponse($response); - - } - } - - - - /** - * Returns an array of event names this subscriber wants to listen to. - * - * The array keys are event names and the value can be: - * - * * The method name to call (priority defaults to 0) - * * An array composed of the method name to call and the priority - * * An array of arrays composed of the method names to call and respective - * priorities, or 0 if unset - * - * For instance: - * - * * array('eventName' => 'methodName') - * * array('eventName' => array('methodName', $priority)) - * * array('eventName' => array(array('methodName1', $priority), array('methodName2')) - * - * @return array The event names to listen to - * - * @api - */ - public static function getSubscribedEvents() - { - return [ - TheliaEvents::VIRTUAL_PRODUCT_ORDER_HANDLE => ['handleOrder', 128], - TheliaEvents::VIRTUAL_PRODUCT_ORDER_DOWNLOAD_RESPONSE => ['download', 128] - ]; - } -} diff --git a/local/modules/modules/VirtualProductDelivery/Events/VirtualProductDeliveryEvents.php b/local/modules/modules/VirtualProductDelivery/Events/VirtualProductDeliveryEvents.php deleted file mode 100644 index 4850aa69..00000000 --- a/local/modules/modules/VirtualProductDelivery/Events/VirtualProductDeliveryEvents.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ -class VirtualProductDeliveryEvents extends ActionEvent -{ - const ORDER_VIRTUAL_FILES_AVAILABLE = 'virtual_product_delivery.virtual_files_available'; -} diff --git a/local/modules/modules/VirtualProductDelivery/Hook/HookManager.php b/local/modules/modules/VirtualProductDelivery/Hook/HookManager.php deleted file mode 100644 index 8dab669f..00000000 --- a/local/modules/modules/VirtualProductDelivery/Hook/HookManager.php +++ /dev/null @@ -1,39 +0,0 @@ - - */ -class HookManager extends BaseHook -{ - public function onAccountOrderAfterProducts(HookRenderEvent $event) - { - $orderId = $event->getArgument('order'); - - if (null !== $orderId) { - $render = $this->render( - 'account-order-after-products.html', - [ - "order_id" => $orderId - ] - ); - $event->add($render); - } - } -} diff --git a/local/modules/modules/VirtualProductDelivery/I18n/de_DE.php b/local/modules/modules/VirtualProductDelivery/I18n/de_DE.php deleted file mode 100644 index 774ee9be..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/de_DE.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Bestellung {$order_ref} validiert. Laden Sie Ihre Dateien herunter.', - 'The file [%file] does not exist' => 'Die Datei [%file] existiert nicht', - 'This module cannot be used on the current cart.' => 'Dieses Modul kann nicht für diesen Warenkorb benutzt werden. ', - 'Virtual product download message' => 'Virtuelles Produkt Herunterladung Nachricht', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/email/default/en_US.php b/local/modules/modules/VirtualProductDelivery/I18n/email/default/en_US.php deleted file mode 100644 index 6f40b67a..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/email/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Best Regards.', - 'Feel free to contact us for any further information.' => 'Feel free to contact us for any further information.', - 'Products:' => 'Products:', - 'You have to be logged in to your account to download this files.' => 'You have to be logged in to your account to download this files.', - 'Your order %ref has been validated. You can download your files.' => 'Your order %ref has been validated. You can download your files.', - 'have to be logged in to your account to download this files.' => 'have to be logged in to your account to download this files.', -); diff --git a/local/modules/modules/VirtualProductDelivery/I18n/email/default/fr_FR.php b/local/modules/modules/VirtualProductDelivery/I18n/email/default/fr_FR.php deleted file mode 100644 index 4a751a8f..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/email/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Cordialement', - 'Feel free to contact us for any further information.' => 'N\'hésitez pas à nous contacter pour toute information complémentaire.', - 'Products:' => 'Articles à télécharger:', - 'You have to be logged in to your account to download this files.' => 'Vous devez être connecté à votre compte pour pouvoir télécharger le fichier.', - 'Your order %ref has been validated. You can download your files.' => 'Votre commande %ref a été validé. Vous pouvez désormais télécharger vos fichiers.', - 'have to be logged in to your account to download this files.' => 'Vous devez être connecté à votre compte pour pouvoir télécharger les fichiers.', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/email/default/it_IT.php b/local/modules/modules/VirtualProductDelivery/I18n/email/default/it_IT.php deleted file mode 100644 index 97ea8be1..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/email/default/it_IT.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Distinti saluti.', - 'Feel free to contact us for any further information.' => 'Non esitate a contattarci per qualsiasi ulteriore informazione.', - 'Products:' => 'Prodotti:', - 'You have to be logged in to your account to download this files.' => 'Devi essere loggato al tuo account per poter scaricare questi file.', - 'Your order %ref has been validated. You can download your files.' => 'Il vostro ordine %ref è stato convalidato. È possibile scaricare i file.', - 'have to be logged in to your account to download this files.' => 'devi essere loggato al tuo account per poter scaricare questi file.', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/email/default/tr_TR.php b/local/modules/modules/VirtualProductDelivery/I18n/email/default/tr_TR.php deleted file mode 100644 index f814b8fe..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/email/default/tr_TR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Saygılarımızla,.', - 'Feel free to contact us for any further information.' => 'Daha fazla bilgi için bizimle temas kurmaktan çekinmeyin.', - 'Products:' => 'ürün:', - 'You have to be logged in to your account to download this files.' => 'Bu dosyaları karşıdan yüklemek için hesabınıza oturum açmış olmanız gerekir.', - 'Your order %ref has been validated. You can download your files.' => 'Sipariş %ref doğrulandı. Sen-ebilmek download senin eğe.', - 'have to be logged in to your account to download this files.' => 'Bu dosyaları karşıdan yüklemek için hesabınıza oturum açmış olmanız gerekir.', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/en_US.php b/local/modules/modules/VirtualProductDelivery/I18n/en_US.php deleted file mode 100644 index f197297f..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Order {$order_ref} validated. Download your files.', - 'The file [%file] does not exist' => 'The file [%file] does not exist', - 'This module cannot be used on the current cart.' => 'This module cannot be used on the current cart.', - 'Virtual product download message' => 'Virtual product download message', -); diff --git a/local/modules/modules/VirtualProductDelivery/I18n/fr_FR.php b/local/modules/modules/VirtualProductDelivery/I18n/fr_FR.php deleted file mode 100644 index 4d258b83..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Commande {$order_ref} validée. Téléchargez vos fichiers.', - 'The file [%file] does not exist' => 'le fichier [%file] n\'existe pas', - 'This module cannot be used on the current cart.' => 'Ce module ne peut pas être utilisé avec le panier actuel.', - 'Virtual product download message' => 'Message pour le téléchargement des produits virtuels', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/de_DE.php b/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 07fa0462..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Lieferadresse', - 'Download' => 'Herunterladen', - 'File' => 'Datei', - 'List of downloadable files' => 'Liste der herunterladbaren Dateien', - 'No delivery address for this delivery method' => 'Keine Lieferadresse für diese Liefermethode', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/en_US.php b/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 8d11f5e0..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Delivery address', - 'Download' => 'Download', - 'File' => 'File', - 'List of downloadable files' => 'List of downloadable files', - 'No delivery address for this delivery method' => 'No delivery address for this delivery method', -); diff --git a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index d12b648f..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Adresse de livraison', - 'Download' => 'Télécharger', - 'File' => 'Fichier', - 'List of downloadable files' => 'Liste des fichiers téléchargeables', - 'No delivery address for this delivery method' => 'L\'adresse de livraison n\'est pas nécessaire pour cette méthode de livraison', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/it_IT.php b/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 7abc77b8..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Indirizzo di consegna', - 'File' => 'File', - 'List of downloadable files' => 'Elenco dei file scaricabili', - 'No delivery address for this delivery method' => 'Nessun indirizzo di consegna per questo metodo di consegna', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 040103d3..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Teslimat adresi', - 'Download' => 'İndir', - 'File' => 'Dosya', - 'List of downloadable files' => 'İndirilebilir dosyalar', - 'No delivery address for this delivery method' => 'Bu teslim yöntemi için hiçbir teslimat adresi', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/it_IT.php b/local/modules/modules/VirtualProductDelivery/I18n/it_IT.php deleted file mode 100644 index b286eca2..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/it_IT.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Ordine {$order_ref} convalidato. Scarica i tuoi file.', - 'The file [%file] does not exist' => 'Il file [%file] non esiste', - 'This module cannot be used on the current cart.' => 'Questo modulo non può essere utilizzato sul carrello attuale.', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/de_DE.php b/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/de_DE.php deleted file mode 100644 index c3097e65..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/de_DE.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Keine Lieferadresse für diese Liefermethode', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/en_US.php b/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/en_US.php deleted file mode 100644 index 205aa3f4..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'No delivery address for this delivery method', -); diff --git a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/fr_FR.php b/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/fr_FR.php deleted file mode 100644 index b2088c85..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'L\'adresse de livraison n\'est pas nécessaire pour cette méthode de livraison', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/it_IT.php b/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/it_IT.php deleted file mode 100644 index c36c7201..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Nessun indirizzo di consegna per questo metodo di consegna', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/tr_TR.php b/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/tr_TR.php deleted file mode 100644 index bbef2c98..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Bu teslim yöntemi için hiçbir teslimat adresi', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/tr_TR.php b/local/modules/modules/VirtualProductDelivery/I18n/tr_TR.php deleted file mode 100644 index 978854a2..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/tr_TR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Doğrulanmış {$order_ref} sipariş. Download senin eğe.', - 'The file [%file] does not exist' => '[%file] dosyası yok', - 'This module cannot be used on the current cart.' => 'Bu modül geçerli arabaya kullanılamaz.', - 'Virtual product download message' => 'Sanal ürün indir mesaj', -]; diff --git a/local/modules/modules/VirtualProductDelivery/LICENSE.txt b/local/modules/modules/VirtualProductDelivery/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/VirtualProductDelivery/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/local/modules/modules/VirtualProductDelivery/VirtualProductDelivery.php b/local/modules/modules/VirtualProductDelivery/VirtualProductDelivery.php deleted file mode 100644 index 7568fd5a..00000000 --- a/local/modules/modules/VirtualProductDelivery/VirtualProductDelivery.php +++ /dev/null @@ -1,105 +0,0 @@ -getRequest()->getSession()->getSessionCart($this->getDispatcher())->isVirtual(); - } - - public function getPostage(Country $country) - { - if (!$this->isValidDelivery($country)) { - throw new DeliveryException( - $this->trans("This module cannot be used on the current cart.") - ); - } - - return 0.0; - } - - /** - * This module manages virtual product delivery - * - * @return bool - */ - public function handleVirtualProductDelivery() - { - return true; - } - - - public function postActivation(ConnectionInterface $con = null) - { - // create new message - if (null === MessageQuery::create()->findOneByName('mail_virtualproduct')) { - $message = new Message(); - $message - ->setName('mail_virtualproduct') - ->setHtmlTemplateFileName('virtual-product-download.html') - ->setHtmlLayoutFileName('') - ->setTextTemplateFileName('virtual-product-download.txt') - ->setTextLayoutFileName('') - ->setSecured(0); - - $languages = LangQuery::create()->find(); - - foreach ($languages as $language) { - $locale = $language->getLocale(); - - $message->setLocale($locale); - - $message->setSubject( - $this->trans('Order {$order_ref} validated. Download your files.', [], $locale) - ); - $message->setTitle( - $this->trans('Virtual product download message', [], $locale) - ); - } - - $message->save(); - } - } - - protected function trans($id, $parameters = [], $locale = null) - { - if (null === $this->translator) { - $this->translator = Translator::getInstance(); - } - - return $this->translator->trans($id, $parameters, self::MESSAGE_DOMAIN, $locale); - } -} diff --git a/local/modules/modules/VirtualProductDelivery/composer.json b/local/modules/modules/VirtualProductDelivery/composer.json deleted file mode 100644 index 77460d83..00000000 --- a/local/modules/modules/VirtualProductDelivery/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/virtual-product-delivery-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "VirtualProductDelivery" - } -} diff --git a/local/modules/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.html b/local/modules/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.html deleted file mode 100644 index f7069b3b..00000000 --- a/local/modules/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.html +++ /dev/null @@ -1,29 +0,0 @@ -{default_translation_domain domain="virtualproductdelivery.email.default"} -{default_locale locale={$locale}} - -{loop name="order.invoice" type="order" id=$order_id customer="*" limit="1" backend_context="1"} -

- {intl l="Your order %ref has been validated. You can download your files." ref={$REF}}

- -

{intl l="Products:"}

- -
    - {loop type="order_product" name="order-products" order=$ID virtual="1" backend_context="1"} -
  • - {$TITLE} : {url path="/account/download/$ID"} - {ifloop rel="combinations"} -
    - {loop type="order_product_attribute_combination" name="combinations" order_product=$ID} - {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE} - {/loop} - {/ifloop} -
  • - {/loop} -
-{/loop} - -

{intl l="You have to be logged in to your account to download this files."}

- -

{intl l="Feel free to contact us for any further information."}

- -

{intl l="Best Regards."}

\ No newline at end of file diff --git a/local/modules/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.txt b/local/modules/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.txt deleted file mode 100644 index 9fc5592b..00000000 --- a/local/modules/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.txt +++ /dev/null @@ -1,26 +0,0 @@ -{default_translation_domain domain="virtualproductdelivery.email.default"} -{default_locale locale={$locale}} - -{loop name="order.invoice" type="order" id=$order_id customer="*" limit="1" backend_context="1"} - -{intl l="Your order %ref has been validated. You can download your files." ref={$REF}} - ----------------------------------------------------------------------- -{intl l="Products:"} ----------------------------------------------------------------------- -{loop type="order_product" name="order-products" order=$ID virtual="1" backend_context="1"} -{$TITLE} : {url path="/account/download/$ID"} -{ifloop rel="combinations"} -{loop type="order_product_attribute_combination" name="combinations" order_product=$ID} -{$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE} -{/loop} -{/ifloop} ----------------------------------------------------------------------- -{/loop} -{/loop} - -{intl l="You have to be logged in to your account to download this files."} - -{intl l="Feel free to contact us for any further information."} - -{intl l="Best Regards."} \ No newline at end of file diff --git a/local/modules/modules/VirtualProductDelivery/templates/frontOffice/default/account-order-after-products.html b/local/modules/modules/VirtualProductDelivery/templates/frontOffice/default/account-order-after-products.html deleted file mode 100644 index c4384e7a..00000000 --- a/local/modules/modules/VirtualProductDelivery/templates/frontOffice/default/account-order-after-products.html +++ /dev/null @@ -1,24 +0,0 @@ -{loop type="order" name="virtual.order" id="$order_id" limit="1"} -{if $STATUS >=2 && $VIRTUAL} - - - - - - - - - {loop name="virtual.order.products" type="order_product" virtual="1" order={$ID}} - - - - - {/loop} - -
{intl l="File" d='virtualproductdelivery.fo.default'}{intl l="Download" d='virtualproductdelivery.fo.default'}
{$TITLE} - - {intl l="Download" d='virtualproductdelivery.fo.default'} - -
-{/if} -{/loop} diff --git a/local/modules/modules/VirtualProductDelivery/templates/frontOffice/default/delivery-address.html b/local/modules/modules/VirtualProductDelivery/templates/frontOffice/default/delivery-address.html deleted file mode 100644 index ceb1e750..00000000 --- a/local/modules/modules/VirtualProductDelivery/templates/frontOffice/default/delivery-address.html +++ /dev/null @@ -1,6 +0,0 @@ -
-
{intl l="Delivery address" d="virtualproductdelivery.fo.default"}
-
- {intl l="No delivery address for this delivery method" d="virtualproductdelivery.fo.default"} -
-
\ No newline at end of file diff --git a/local/modules/modules/VirtualProductDelivery/templates/pdf/default/delivery-address.html b/local/modules/modules/VirtualProductDelivery/templates/pdf/default/delivery-address.html deleted file mode 100644 index 6a5a1f92..00000000 --- a/local/modules/modules/VirtualProductDelivery/templates/pdf/default/delivery-address.html +++ /dev/null @@ -1,3 +0,0 @@ -

- {intl l="No delivery address for this delivery method" d="virtualproductdelivery.pdf.default"} -

\ No newline at end of file diff --git a/templates/frontOffice/boutique/layout.tpl b/templates/frontOffice/boutique/layout.tpl index 141dac13..be37a04c 100644 --- a/templates/frontOffice/boutique/layout.tpl +++ b/templates/frontOffice/boutique/layout.tpl @@ -39,6 +39,7 @@ GNU General Public License : http://www.gnu.org/licenses/ + {hook name="main.head-top"} {* Test if javascript is enabled *}