vendor/isotope/isotope-core/system/modules/isotope/config/config.php line 90

Open in your IDE?
  1. <?php
  2. /*
  3.  * Isotope eCommerce for Contao Open Source CMS
  4.  *
  5.  * Copyright (C) 2009 - 2019 terminal42 gmbh & Isotope eCommerce Workgroup
  6.  *
  7.  * @link       https://isotopeecommerce.org
  8.  * @license    https://opensource.org/licenses/lgpl-3.0.html
  9.  */
  10. /**
  11.  * Backend modules
  12.  */
  13. if (!\is_array($GLOBALS['BE_MOD']['isotope'] ?? null))
  14. {
  15.     array_insert($GLOBALS['BE_MOD'], 1, array('isotope' => array()));
  16. }
  17. array_insert($GLOBALS['BE_MOD']['isotope'], 0, array
  18. (
  19.     'iso_products' => array
  20.     (
  21.         'tables'            => array(\Isotope\Model\Product::getTable(), \Isotope\Model\Group::getTable(), \Isotope\Model\ProductCategory::getTable(), \Isotope\Model\Download::getTable(), \Isotope\Model\RelatedProduct::getTable(), \Isotope\Model\ProductPrice::getTable(), 'tl_iso_product_pricetier', \Isotope\Model\AttributeOption::getTable()),
  22.         'javascript'        => 'system/modules/isotope/assets/js/backend.js',
  23.         'generate'          => array('Isotope\Backend\Product\VariantGenerator''generate'),
  24.         'import'            => array('Isotope\Backend\Product\AssetImport''generate'),
  25.         'fallback'          => array('Isotope\Backend\Product\Fallback''setFromUrl'),
  26.     ),
  27.     'iso_orders' => array
  28.     (
  29.         'tables'            => array(\Isotope\Model\ProductCollection::getTable(), \Isotope\Model\ProductCollectionItem::getTable(), \Isotope\Model\ProductCollectionSurcharge::getTable(), \Isotope\Model\ProductCollectionDownload::getTable(), \Isotope\Model\Address::getTable()),
  30.         'javascript'        => 'system/modules/isotope/assets/js/backend.js',
  31.         'print_document'    => array('Isotope\Backend\ProductCollection\Callback''printDocument'),
  32.         'payment'           => array('Isotope\Backend\ProductCollection\Callback''paymentInterface'),
  33.         'shipping'          => array('Isotope\Backend\ProductCollection\Callback''shippingInterface'),
  34.     ),
  35.     'iso_setup' => array
  36.     (
  37.         'callback'          => 'Isotope\BackendModule\Setup',
  38.         'tables'            => array(),
  39.         'javascript'        => 'system/modules/isotope/assets/js/backend.js',
  40.     ),
  41. ));
  42. $GLOBALS['BE_MOD']['accounts']['member']['tables'][] = \Isotope\Model\Address::getTable();
  43. if ('BE' === TL_MODE) {
  44.     $GLOBALS['TL_CSS'][] = 'system/modules/isotope/assets/css/backend.css|static';
  45. }
  46. /**
  47.  * Isotope Modules
  48.  */
  49. $GLOBALS['ISO_MOD'] = array
  50. (
  51.     'product' => array
  52.     (
  53.         'producttypes' => array
  54.         (
  55.             'tables'            => array(\Isotope\Model\ProductType::getTable()),
  56.             'icon'              => 'system/modules/isotope/assets/images/setup-producttypes.png'
  57.         ),
  58.         'attributes' => array
  59.         (
  60.             'tables'            => array(\Isotope\Model\Attribute::getTable(), \Isotope\Model\AttributeOption::getTable()),
  61.             'icon'              => 'system/modules/isotope/assets/images/setup-attributes.png',
  62.         ),
  63.         'related_categories' => array
  64.         (
  65.             'tables'            => array(\Isotope\Model\RelatedCategory::getTable()),
  66.             'icon'              => 'system/modules/isotope/assets/images/setup-related_categories.png',
  67.         ),
  68.         'baseprice' => array
  69.         (
  70.             'tables'            => array(\Isotope\Model\BasePrice::getTable()),
  71.             'icon'              => 'system/modules/isotope/assets/images/setup-baseprice.png',
  72.         ),
  73.     ),
  74.     'checkout' => array
  75.     (
  76.         'payment' => array
  77.         (
  78.             'tables'            => array(\Isotope\Model\Payment::getTable()),
  79.             'icon'              => 'system/modules/isotope/assets/images/setup-payment.png',
  80.         ),
  81.         'shipping' => array
  82.         (
  83.                 'tables'        => array(\Isotope\Model\Shipping::getTable()),
  84.                 'icon'          => 'system/modules/isotope/assets/images/setup-shipping.png',
  85.         ),
  86.         'tax_class' => array
  87.         (
  88.             'tables'            => array(\Isotope\Model\TaxClass::getTable()),
  89.             'icon'              => 'system/modules/isotope/assets/images/setup-tax_class.png',
  90.         ),
  91.         'tax_rate' => array
  92.         (
  93.             'tables'            => array(\Isotope\Model\TaxRate::getTable()),
  94.             'icon'              => 'system/modules/isotope/assets/images/setup-tax_rate.png',
  95.         ),
  96.     ),
  97.     'config' => array
  98.     (
  99.         'configs' => array
  100.         (
  101.             'tables'            => array(\Isotope\Model\Config::getTable()),
  102.             'icon'              => 'system/modules/isotope/assets/images/setup-config.png',
  103.         ),
  104.         'orderstatus' => array
  105.         (
  106.             'tables'            => array(\Isotope\Model\OrderStatus::getTable()),
  107.             'icon'              => 'system/modules/isotope/assets/images/setup-orderstatus.png',
  108.         ),
  109.         'notifications' => array
  110.         (
  111.             'icon'              => 'system/modules/isotope/assets/images/setup-notifications.png',
  112.             'redirect'          => 'contao/main.php?do=nc_notifications',
  113.         ),
  114.         'documents' => array
  115.         (
  116.             'tables'            => array(\Isotope\Model\Document::getTable()),
  117.             'icon'              => 'system/modules/isotope/assets/images/setup-documents.png'
  118.         ),
  119.         'gallery' => array
  120.         (
  121.             'tables'            => array(\Isotope\Model\Gallery::getTable()),
  122.             'icon'              => 'system/modules/isotope/assets/images/setup-gallery.png',
  123.         ),
  124.     ),
  125.     'miscellaneous:hide' => array
  126.     (
  127.         'labels' => array
  128.         (
  129.             'tables'            => array(\Isotope\Model\Label::getTable()),
  130.             'icon'              => 'system/modules/isotope/assets/images/setup-labels.png'
  131.         ),
  132.         'integrity' => array
  133.         (
  134.             'callback'          => 'Isotope\BackendModule\Integrity',
  135.             'icon'              => 'system/modules/isotope/assets/images/setup-integrity.png'
  136.         ),
  137.     )
  138. );
  139. /**
  140.  * Frontend modules
  141.  */
  142. $GLOBALS['FE_MOD']['isotope'] = array
  143. (
  144.     'iso_productlist'               => 'Isotope\Module\ProductList',
  145.     'iso_productvariantlist'        => 'Isotope\Module\ProductVariantList',
  146.     'iso_productreader'             => 'Isotope\Module\ProductReader',
  147.     'iso_favorites'                 => 'Isotope\Module\Favorites',
  148.     'iso_cart'                      => 'Isotope\Module\Cart',
  149.     'iso_checkout'                  => 'Isotope\Module\Checkout',
  150.     'iso_productfilter'             => 'Isotope\Module\ProductFilter',
  151.     'iso_cumulativefilter'          => 'Isotope\Module\CumulativeFilter',
  152.     'iso_categoryfilter'            => 'Isotope\Module\CategoryFilter',
  153.     'iso_rangefilter'               => 'Isotope\Module\RangeFilter',
  154.     'iso_orderhistory'              => 'Isotope\Module\OrderHistory',
  155.     'iso_orderdetails'              => 'Isotope\Module\OrderDetails',
  156.     'iso_wishlistmanager'           => 'Isotope\Module\WishlistManager',
  157.     'iso_wishlistviewer'            => 'Isotope\Module\WishlistViewer',
  158.     'iso_wishlistdetails'           => 'Isotope\Module\WishlistDetails',
  159.     'iso_configswitcher'            => 'Isotope\Module\ConfigSwitcher',
  160.     'iso_addressbook'               => 'Isotope\Module\AddressBook',
  161.     'iso_relatedproducts'           => 'Isotope\Module\RelatedProducts',
  162.     'iso_messages'                  => 'Isotope\Module\Messages',
  163.     'iso_shipping_calculator'       => 'Isotope\Module\ShippingCalculator',
  164.     'iso_cart_address'              => 'Isotope\Module\CartAddress',
  165.     'iso_trustedshops'              => 'Isotope\Module\Trustedshops',
  166. );
  167. /**
  168.  * Backend form fields
  169.  */
  170. $GLOBALS['BE_FFL']['mediaManager']           = 'Isotope\Widget\MediaManager';
  171. $GLOBALS['BE_FFL']['inheritCheckbox']        = 'Isotope\Widget\InheritCheckBox';
  172. /**
  173.  * Payment methods
  174.  */
  175. \Isotope\Model\Payment::registerModelType('cash''Isotope\Model\Payment\Cash');
  176. \Isotope\Model\Payment::registerModelType('concardis''Isotope\Model\Payment\Concardis');
  177. \Isotope\Model\Payment::registerModelType('datatrans''Isotope\Model\Payment\Datatrans');
  178. \Isotope\Model\Payment::registerModelType('epay''Isotope\Model\Payment\EPay');
  179. \Isotope\Model\Payment::registerModelType('expercash''Isotope\Model\Payment\Expercash');
  180. \Isotope\Model\Payment::registerModelType('innopay''Isotope\Model\Payment\Innopay');
  181. \Isotope\Model\Payment::registerModelType('paybyway''Isotope\Model\Payment\Paybyway');
  182. \Isotope\Model\Payment::registerModelType('payone''Isotope\Model\Payment\Payone');
  183. \Isotope\Model\Payment::registerModelType('paypal''Isotope\Model\Payment\Paypal');
  184. \Isotope\Model\Payment::registerModelType('paypal_plus''Isotope\Model\Payment\PaypalPlus');
  185. \Isotope\Model\Payment::registerModelType('postfinance''Isotope\Model\Payment\Postfinance');
  186. \Isotope\Model\Payment::registerModelType('quickpay''Isotope\Model\Payment\QuickPay');
  187. \Isotope\Model\Payment::registerModelType('saferpay''Isotope\Model\Payment\Saferpay');
  188. \Isotope\Model\Payment::registerModelType('billpay_saferpay''Isotope\Model\Payment\BillpayWithSaferpay');
  189. \Isotope\Model\Payment::registerModelType('sparkasse''Isotope\Model\Payment\Sparkasse');
  190. \Isotope\Model\Payment::registerModelType('sofortueberweisung''Isotope\Model\Payment\Sofortueberweisung');
  191. \Isotope\Model\Payment::registerModelType('viveum''Isotope\Model\Payment\Viveum');
  192. \Isotope\Model\Payment::registerModelType('worldpay''Isotope\Model\Payment\Worldpay');
  193. \Isotope\Model\Payment::registerModelType('opp''Isotope\Model\Payment\OpenPaymentPlatform');
  194. if (class_exists('Mpay24\Mpay24')) {
  195.     \Isotope\Model\Payment::registerModelType('mpay24''Isotope\Model\Payment\Mpay24');
  196. }
  197. if (class_exists('Terminal42\SwissbillingApi\Client')) {
  198.     \Isotope\Model\Payment::registerModelType('swissbilling''Isotope\Model\Payment\Swissbilling');
  199. }
  200. /**
  201.  * Shipping methods
  202.  */
  203. \Isotope\Model\Shipping::registerModelType('flat''Isotope\Model\Shipping\Flat');
  204. \Isotope\Model\Shipping::registerModelType('group''Isotope\Model\Shipping\Group');
  205. \Isotope\Model\Shipping::registerModelType('product_price''Isotope\Model\Shipping\ProductPrice');
  206. if (class_exists('Petschko\DHL\BusinessShipment')) {
  207.     \Isotope\Model\Shipping::registerModelType('dhl_business''Isotope\Model\Shipping\DHLBusiness');
  208. }
  209. /**
  210.  * Documents
  211.  */
  212. \Isotope\Model\Document::registerModelType('standard''Isotope\Model\Document\Standard');
  213. /**
  214.  * Galleries
  215.  */
  216. \Isotope\Model\Gallery::registerModelType('standard''Isotope\Model\Gallery\Standard');
  217. \Isotope\Model\Gallery::registerModelType('inline''Isotope\Model\Gallery\Inline');
  218. \Isotope\Model\Gallery::registerModelType('elevatezoom''Isotope\Model\Gallery\ElevateZoom');
  219. /**
  220.  * Products
  221.  */
  222. \Isotope\Model\Product::registerModelType('standard''Isotope\Model\Product\Standard');
  223. /**
  224.  * Product collections
  225.  */
  226. \Isotope\Model\ProductCollection::registerModelType('cart''Isotope\Model\ProductCollection\Cart');
  227. \Isotope\Model\ProductCollection::registerModelType('order''Isotope\Model\ProductCollection\Order');
  228. \Isotope\Model\ProductCollection::registerModelType('favorites''Isotope\Model\ProductCollection\Favorites');
  229. \Isotope\Model\ProductCollection::registerModelType('wishlist''Isotope\Model\ProductCollection\Wishlist');
  230. /**
  231.  * Product collection surcharge
  232.  */
  233. \Isotope\Model\ProductCollectionSurcharge::registerModelType('payment''Isotope\Model\ProductCollectionSurcharge\Payment');
  234. \Isotope\Model\ProductCollectionSurcharge::registerModelType('shipping''Isotope\Model\ProductCollectionSurcharge\Shipping');
  235. \Isotope\Model\ProductCollectionSurcharge::registerModelType('tax''Isotope\Model\ProductCollectionSurcharge\Tax');
  236. /**
  237.  * Attributes
  238.  */
  239. \Isotope\Model\Attribute::registerModelType('text''Isotope\Model\Attribute\TextField');
  240. \Isotope\Model\Attribute::registerModelType('textarea''Isotope\Model\Attribute\TextArea');
  241. \Isotope\Model\Attribute::registerModelType('select''Isotope\Model\Attribute\SelectMenu');
  242. \Isotope\Model\Attribute::registerModelType('radio''Isotope\Model\Attribute\RadioButton');
  243. \Isotope\Model\Attribute::registerModelType('checkbox''Isotope\Model\Attribute\CheckboxMenu');
  244. \Isotope\Model\Attribute::registerModelType('mediaManager''Isotope\Model\Attribute\MediaManager');
  245. \Isotope\Model\Attribute::registerModelType('fileTree''Isotope\Model\Attribute\FileTree');
  246. \Isotope\Model\Attribute::registerModelType('pageTree''Isotope\Model\Attribute\PageTree');
  247. \Isotope\Model\Attribute::registerModelType('downloads''Isotope\Model\Attribute\Downloads');
  248. \Isotope\Model\Attribute::registerModelType('upload''Isotope\Model\Attribute\Upload');
  249. \Isotope\Model\Attribute::registerModelType('media''Isotope\Model\Attribute\Media');
  250. \Isotope\Model\Attribute::registerModelType('quantitySurcharge''Isotope\Model\Attribute\QuantitySurcharge');
  251. if (\Composer\InstalledVersions::isInstalled('terminal42/contao-fineuploader')) {
  252.     \Isotope\Model\Attribute::registerModelType('fineUploader''Isotope\Model\Attribute\FineUploader');
  253. }
  254. /**
  255.  * Product actions
  256.  */
  257. \Isotope\Frontend\ProductAction\Registry::add(new \Isotope\Frontend\ProductAction\UpdateAction());
  258. \Isotope\Frontend\ProductAction\Registry::add(new \Isotope\Frontend\ProductAction\CartAction());
  259. \Isotope\Frontend\ProductAction\Registry::add(new \Isotope\Frontend\ProductAction\FavoriteAction());
  260. \Isotope\Frontend\ProductAction\Registry::add(new \Isotope\Frontend\ProductAction\WishlistAction());
  261. /**
  262.  * Notification Center notification types
  263.  */
  264. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['recipients'] = array('recipient_email''form_*''billing_address_email''shipping_address_email');
  265. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['attachment_tokens'] = array('form_*''document');
  266. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_text'] = array(
  267.     'uniqid',
  268.     'order_status',
  269.     'order_status_old',
  270.     'order_status_id',
  271.     'order_status_id_old',
  272.     'order_status_tracking_numbers',
  273.     'order_status_notes',
  274.     'recipient_email',
  275.     'order_id',
  276.     'order_items',
  277.     'order_products',
  278.     'order_subtotal',
  279.     'order_total',
  280.     'document_number',
  281.     'cart_html',
  282.     'cart_text',
  283.     'document',
  284.     'bank_name',
  285.     'bank_account',
  286.     'bank_code',
  287.     'tax_number',
  288.     'collection_*'// All the collection fields
  289.     'billing_address'// Formatted billing address
  290.     'billing_address_*'// All the billing address model fields
  291.     'shipping_address'// Formatted shipping address
  292.     'shipping_address_*'// All the shipping address model fields
  293.     'form_*'// All the order condition form fields
  294.     'payment_id'// Payment method ID
  295.     'payment_label'// Payment method label
  296.     'payment_note'// Payment method note
  297.     'payment_*',
  298.     'shipping_id'// Shipping method ID
  299.     'shipping_label'// Shipping method label
  300.     'shipping_note'// Shipping method note
  301.     'shipping_*',
  302.     'config_*'// Store configuration model fields
  303.     'member_*'// Member model fields
  304. );
  305. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_subject'] = &$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_text'];
  306. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_html'] = &$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_text'];
  307. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_replyTo'] = &$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['recipients'];
  308. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_recipient_cc'] = &$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['recipients'];
  309. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_recipient_bcc'] = &$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['recipients'];
  310. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['file_name'] = &$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_text'];
  311. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['file_content'] = &$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_text'];
  312. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['recipients'] = array('admin_email''address_email''member_email');
  313. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'] = array('admin_email''address_*''address_old_*''member_*''config_*');
  314. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_text'] = &$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
  315. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_sender_name'] = &$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
  316. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_sender_address'] = &$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
  317. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_replyTo'] = &$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
  318. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['file_name'] = &$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
  319. $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['file_content'] = &$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_memberaddress_change']['email_subject'];
  320. /**
  321.  * Models
  322.  */
  323. $GLOBALS['TL_MODELS'][\Isotope\Model\Address::getTable()]                       = 'Isotope\Model\Address';
  324. $GLOBALS['TL_MODELS'][\Isotope\Model\Attribute::getTable()]                     = 'Isotope\Model\Attribute';
  325. $GLOBALS['TL_MODELS'][\Isotope\Model\AttributeOption::getTable()]               = 'Isotope\Model\AttributeOption';
  326. $GLOBALS['TL_MODELS'][\Isotope\Model\BasePrice::getTable()]                     = 'Isotope\Model\BasePrice';
  327. $GLOBALS['TL_MODELS'][\Isotope\Model\Config::getTable()]                        = 'Isotope\Model\Config';
  328. $GLOBALS['TL_MODELS'][\Isotope\Model\Document::getTable()]                      = 'Isotope\Model\Document';
  329. $GLOBALS['TL_MODELS'][\Isotope\Model\Download::getTable()]                      = 'Isotope\Model\Download';
  330. $GLOBALS['TL_MODELS'][\Isotope\Model\Gallery::getTable()]                       = 'Isotope\Model\Gallery';
  331. $GLOBALS['TL_MODELS'][\Isotope\Model\Group::getTable()]                         = 'Isotope\Model\Group';
  332. $GLOBALS['TL_MODELS'][\Isotope\Model\Label::getTable()]                         = 'Isotope\Model\Label';
  333. $GLOBALS['TL_MODELS'][\Isotope\Model\OrderStatus::getTable()]                   = 'Isotope\Model\OrderStatus';
  334. $GLOBALS['TL_MODELS'][\Isotope\Model\Payment::getTable()]                       = 'Isotope\Model\Payment';
  335. $GLOBALS['TL_MODELS'][\Isotope\Model\Product::getTable()]                       = 'Isotope\Model\Product';
  336. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductCategory::getTable()]               = 'Isotope\Model\ProductCategory';
  337. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductCollection::getTable()]             = 'Isotope\Model\ProductCollection';
  338. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductCollectionDownload::getTable()]     = 'Isotope\Model\ProductCollectionDownload';
  339. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductCollectionItem::getTable()]         = 'Isotope\Model\ProductCollectionItem';
  340. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductCollectionLog::getTable()]          = 'Isotope\Model\ProductCollectionLog';
  341. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductCollectionSurcharge::getTable()]    = 'Isotope\Model\ProductCollectionSurcharge';
  342. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductPrice::getTable()]                  = 'Isotope\Model\ProductPrice';
  343. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductCache::getTable()]                  = 'Isotope\Model\ProductCache';
  344. $GLOBALS['TL_MODELS'][\Isotope\Model\ProductType::getTable()]                   = 'Isotope\Model\ProductType';
  345. $GLOBALS['TL_MODELS'][\Isotope\Model\RelatedCategory::getTable()]               = 'Isotope\Model\RelatedCategory';
  346. $GLOBALS['TL_MODELS'][\Isotope\Model\RelatedProduct::getTable()]                = 'Isotope\Model\RelatedProduct';
  347. $GLOBALS['TL_MODELS'][\Isotope\Model\RequestCache::getTable()]                  = 'Isotope\Model\RequestCache';
  348. $GLOBALS['TL_MODELS'][\Isotope\Model\Shipping::getTable()]                      = 'Isotope\Model\Shipping';
  349. $GLOBALS['TL_MODELS'][\Isotope\Model\TaxClass::getTable()]                      = 'Isotope\Model\TaxClass';
  350. $GLOBALS['TL_MODELS'][\Isotope\Model\TaxRate::getTable()]                       = 'Isotope\Model\TaxRate';
  351. /**
  352.  * Checkout steps
  353.  */
  354. $GLOBALS['ISO_CHECKOUTSTEP'] = array
  355. (
  356.     'address'   => array('Isotope\CheckoutStep\BillingAddress''Isotope\CheckoutStep\ShippingAddress'),
  357.     'shipping'  => array('Isotope\CheckoutStep\ShippingMethod'),
  358.     'payment'   => array('Isotope\CheckoutStep\PaymentMethod'),
  359.     'review'    => array('Isotope\CheckoutStep\OrderInfo''Isotope\CheckoutStep\OrderProducts'),
  360. );
  361. /**
  362.  * Integrity checks
  363.  */
  364. $GLOBALS['ISO_INTEGRITY'] = array
  365. (
  366.     '\Isotope\IntegrityCheck\PriceTable',
  367.     '\Isotope\IntegrityCheck\VariantPrices',
  368.     '\Isotope\IntegrityCheck\VariantOrphans',
  369.     '\Isotope\IntegrityCheck\AttributeOptionOrphans',
  370.     '\Isotope\IntegrityCheck\MultilingualAttributes',
  371.     '\Isotope\IntegrityCheck\UnusedRules',
  372. );
  373. /**
  374.  * Vat No Validation
  375.  */
  376. $GLOBALS['ISO_VAT']['eu_vies'] = '\Isotope\VatNoValidator\EuViesValidator';
  377. /**
  378.  * Permissions are access settings for user and groups (fields in tl_user and tl_user_group)
  379.  */
  380. $GLOBALS['TL_PERMISSIONS'][] = 'iso_modules';
  381. $GLOBALS['TL_PERMISSIONS'][] = 'iso_product_types';
  382. $GLOBALS['TL_PERMISSIONS'][] = 'iso_product_typep';
  383. $GLOBALS['TL_PERMISSIONS'][] = 'iso_payment_modules';
  384. $GLOBALS['TL_PERMISSIONS'][] = 'iso_payment_modulep';
  385. $GLOBALS['TL_PERMISSIONS'][] = 'iso_shipping_modules';
  386. $GLOBALS['TL_PERMISSIONS'][] = 'iso_shipping_modulep';
  387. $GLOBALS['TL_PERMISSIONS'][] = 'iso_tax_rates';
  388. $GLOBALS['TL_PERMISSIONS'][] = 'iso_tax_ratep';
  389. $GLOBALS['TL_PERMISSIONS'][] = 'iso_tax_classes';
  390. $GLOBALS['TL_PERMISSIONS'][] = 'iso_tax_classp';
  391. $GLOBALS['TL_PERMISSIONS'][] = 'iso_configs';
  392. $GLOBALS['TL_PERMISSIONS'][] = 'iso_configp';
  393. $GLOBALS['TL_PERMISSIONS'][] = 'iso_groups';
  394. $GLOBALS['TL_PERMISSIONS'][] = 'iso_groupp';
  395. $GLOBALS['TL_PERMISSIONS'][] = 'iso_member_groups';
  396. /**
  397.  * Allow to delete the cache in maintenance module
  398.  */
  399. $GLOBALS['TL_PURGE']['tables']['iso_productcache'] = array(
  400.     'callback'  => array('\Isotope\Backend''truncateProductCache'),
  401.     'affected'  => array('tl_iso_productcache'),
  402. );
  403. $GLOBALS['TL_PURGE']['tables']['iso_requestcache'] = array(
  404.     'callback'  => array('\Isotope\Backend''truncateRequestCache'),
  405.     'affected'  => array('tl_iso_requestcache'),
  406. );
  407. /**
  408.  * Number formatting
  409.  */
  410. $GLOBALS['ISO_NUM']["10000.00"]     = array(2'.'"");
  411. $GLOBALS['ISO_NUM']["10,000.00"]    = array(2'.'",");
  412. $GLOBALS['ISO_NUM']["10.000,00"]    = array(2','".");
  413. $GLOBALS['ISO_NUM']["10'000.00"]    = array(2'.'"'");
  414. /**
  415.  * Hooks
  416.  */
  417. if (\Contao\Config::getInstance()->isComplete()) {
  418.     $GLOBALS['TL_HOOKS']['loadDataContainer'][]             = array('Isotope\Backend\Product\DcaManager''initialize');
  419.     $GLOBALS['TL_HOOKS']['getAttributesFromDca'][]          = array('Isotope\Backend\Product\DcaManager''addOptionsFromAttribute');
  420.     $GLOBALS['TL_HOOKS']['addCustomRegexp'][]               = array('Isotope\Isotope''validateRegexp');
  421.     $GLOBALS['TL_HOOKS']['getPageIdFromUrl'][]              = array('Isotope\Frontend''loadReaderPageFromUrl');
  422.     $GLOBALS['TL_HOOKS']['getPageLayout'][]                 = array('Isotope\Frontend''overrideReaderPage');
  423.     $GLOBALS['TL_HOOKS']['getArticles'][]                   = array('Isotope\Frontend''overrideArticles');
  424.     $GLOBALS['TL_HOOKS']['getSearchablePages'][]            = array('Isotope\Frontend''addProductsToSearchIndex');
  425.     $GLOBALS['TL_HOOKS']['replaceInsertTags'][]             = array('Isotope\Frontend''replaceIsotopeTags');
  426.     $GLOBALS['TL_HOOKS']['modifyFrontendPage'][]            = array('Isotope\Frontend''injectScripts');
  427.     $GLOBALS['TL_HOOKS']['executePreActions'][]             = array('Isotope\Backend''executePreActions');
  428.     $GLOBALS['TL_HOOKS']['executePostActions'][]            = array('Isotope\Backend''executePostActions');
  429.     $GLOBALS['TL_HOOKS']['getSystemMessages'][]             = array('Isotope\Backend''getOrderMessages');
  430.     $GLOBALS['TL_HOOKS']['getArticle'][]                    = array('Isotope\Frontend''storeCurrentArticle');
  431.     $GLOBALS['TL_HOOKS']['generateBreadcrumb'][]            = array('Isotope\Frontend''addProductToBreadcrumb');
  432.     $GLOBALS['ISO_HOOKS']['buttons'][]                      = array('Isotope\Isotope''defaultButtons');
  433.     $GLOBALS['ISO_HOOKS']['findSurchargesForCollection'][]  = array('Isotope\Frontend''findShippingAndPaymentSurcharges');
  434.     $GLOBALS['ISO_HOOKS']['postCheckout'][]                 = array('Isotope\Analytics''trackOrder');
  435.     $GLOBALS['ISO_HOOKS']['postCheckout'][]                 = array('Isotope\EventListener\PostCheckoutUploads''onPostCheckout');
  436.     $GLOBALS['ISO_HOOKS']['calculatePrice'][]               = array('Isotope\Frontend''addOptionsPrice');
  437.     $GLOBALS['ISO_HOOKS']['calculatePrice'][]               = array('Isotope\EventListener\CalculatePrice\QuantitySurchagePriceListener''__invoke');
  438.     $GLOBALS['ISO_HOOKS']['orderConditions'][]              = array('Isotope\Model\Payment\BillpayWithSaferpay''addOrderCondition');
  439.     $GLOBALS['ISO_HOOKS']['generateDocumentTemplate'][]     = array('Isotope\Model\Payment\BillpayWithSaferpay''addToDocumentTemplate');
  440.     $GLOBALS['ISO_HOOKS']['initializePostsale'][]           = array('Isotope\Frontend''setPostsaleModuleSettings');
  441.     // changelanguage
  442.     $GLOBALS['TL_HOOKS']['changelanguageNavigation'][]      = array('Isotope\EventListener\ChangeLanguageListener''__invoke');
  443.     // Set module and module id for payment and/or shipping modules
  444.     if ('FE' === TL_MODE) {
  445.         // Only limit countries in FE
  446.         $GLOBALS['TL_HOOKS']['loadDataContainer'][]         = array('Isotope\Backend\Member\Callback''limitCountries');
  447.     }
  448.     if ('BE' === TL_MODE) {
  449.         // Type agent help is only needed in back end
  450.         $GLOBALS['TL_HOOKS']['loadDataContainer'][]         = array('Isotope\Backend''loadTypeAgentHelp');
  451.         $GLOBALS['TL_HOOKS']['loadLanguageFile'][]          = array('Isotope\Backend\ProductType\Help''initializeWizard');
  452.         // Adjust the product groups manager
  453.         $GLOBALS['TL_HOOKS']['parseTemplate'][]             = array('Isotope\Backend''adjustGroupsManager');
  454.         $GLOBALS['TL_HOOKS']['parseTemplate'][]             = array('Isotope\Backend\SubtableVersion''removeFromWelcomeScreen');
  455.         // Enable the module tables in setup
  456.         $GLOBALS['TL_HOOKS']['initializeSystem'][]          = array('Isotope\BackendModule\InitializeListener''enableModuleTablesInSetup');
  457.     }
  458.     if (class_exists('Petschko\DHL\BusinessShipment')) {
  459.         $GLOBALS['ISO_HOOKS']['postCheckout'][] = array('Isotope\EventListener\DHLBusinessCheckoutListener''onPostCheckout');
  460.     }
  461. }
  462. /**
  463.  * Cron Jobs
  464.  */
  465. $GLOBALS['TL_CRON']['daily'][] = array('Isotope\Automator''deleteOldCarts');
  466. $GLOBALS['TL_CRON']['daily'][] = array('Isotope\Automator''deleteOldOrders');
  467. $GLOBALS['TL_CRON']['daily'][] = array('Isotope\Automator''convertCurrencies');
  468. /**
  469.  * Auto_item keywords
  470.  */
  471. $GLOBALS['TL_AUTO_ITEM'][] = 'product';
  472. $GLOBALS['TL_AUTO_ITEM'][] = 'step';
  473. /**
  474.  * Default configuration
  475.  */
  476. $GLOBALS['TL_CONFIG']['iso_cartTimeout'] = 2592000;
  477. $GLOBALS['TL_CONFIG']['iso_orderTimeout'] = 604800;