/** * Process checkout * * @param Order $objOrder * * @return bool */ public function trackOrder(Order $objOrder) { $objConfig = Config::findByPk($objOrder->config_id); if (null !== $objConfig) { if ($objConfig->ga_enable) { $this->trackGATransaction($objConfig, $objOrder); } } return true; }
protected function formatValues($arrData, $arrCurrencies) { // Format row totals foreach ($arrData['rows'] as $dateGroup => $arrRow) { if (is_array($arrRow['columns'][4]['value'])) { foreach ($arrRow['columns'][4]['value'] as $currency => $varValue) { Isotope::setConfig(Config::findByPk($arrCurrencies[$currency])); $arrData['rows'][$dateGroup]['columns'][4]['value'][$currency] = Isotope::formatPriceWithCurrency($varValue); } } } // Format footer totals foreach ($arrData['footer'][4]['value'] as $currency => $varValue) { Isotope::setConfig(Config::findByPk($arrCurrencies[$currency])); $arrData['footer'][4]['value'][$currency] = Isotope::formatPriceWithCurrency($varValue); } if (empty($arrData['footer'][4]['value'])) { $arrData['footer'][4]['value'] = 0; } return $arrData; }
public function modifyDC(&$arrDca = null) { // get the product switch ($this->iso_direct_checkout_product_mode) { case 'product_type': if (($objTypes = FieldPaletteModel::findByPidAndTableAndField($this->objModule->id, 'tl_module', 'iso_direct_checkout_product_types')) !== null) { while ($objTypes->next()) { $arrColumns = array('type=?'); $arrValues = array($objTypes->iso_direct_checkout_product_type); if ($this->iso_listingSortField) { $arrSorting = array($this->iso_listingSortField => $this->iso_listingSortDirection == 'DESC' ? Sort::descending() : Sort::ascending()); } else { $arrSorting = array(); } $objProducts = Product::findPublishedBy($arrColumns, $arrValues, array('sorting' => $arrSorting)); if ($objProducts->count() > 0) { $objProduct = $objProducts->current(); $this->arrProducts[] = array('product' => $objProduct, 'useQuantity' => $objTypes->iso_use_quantity); $this->addProductFields($objProduct, $objTypes->iso_use_quantity, $objTypes->iso_addSubscriptionCheckbox, $arrDca); } } } break; default: if (($objProducts = FieldPaletteModel::findByPidAndTableAndField($this->objModule->id, 'tl_module', 'iso_direct_checkout_products')) !== null) { while ($objProducts->next()) { $objProduct = Product::findByPk($objProducts->iso_direct_checkout_product); $this->arrProducts[] = array('product' => $objProduct, 'useQuantity' => $objProducts->iso_use_quantity); $this->addProductFields($objProduct, $objProducts->iso_use_quantity, $objProducts->iso_addSubscriptionCheckbox, $arrDca); } } break; } // add address fields \Controller::loadDataContainer('tl_iso_address'); \System::loadLanguageFile('tl_iso_address'); $arrAddressFields = deserialize(Config::findByPk($this->iso_config_id)->address_fields, true); // add billing address fields foreach ($arrAddressFields as $strName => $arrAddressField) { $arrData = $GLOBALS['TL_DCA']['tl_iso_address']['fields'][$strName]; if (!is_array($arrData) || $arrAddressField['billing'] == 'disabled') { continue; } $arrData['eval']['mandatory'] = $arrAddressField['billing'] == 'mandatory'; $this->arrBillingAddressFields[] = $strName; $this->addEditableField($strName, $arrData); } if ($this->iso_use_notes) { $this->addEditableField('notes', array('label' => &$GLOBALS['TL_LANG']['MSC']['iso_note'], 'exclude' => true, 'inputType' => 'textarea', 'eval' => array('tl_class' => 'clr w50'), 'sql' => "text NULL")); } $this->addEditableField('shippingaddress', array('label' => array($GLOBALS['TL_LANG']['MSC']['differentShippingAddress'], $GLOBALS['TL_LANG']['MSC']['differentShippingAddress']), 'inputType' => 'checkbox', 'eval' => array('submitOnChange' => true))); // add shipping address fields $arrShippingAddressFields = array(); foreach ($arrAddressFields as $strName => $arrAddressField) { $arrData = $GLOBALS['TL_DCA']['tl_iso_address']['fields'][$strName]; if (!is_array($arrData) || $arrAddressField['shipping'] == 'disabled') { continue; } $arrData['eval']['mandatory'] = $arrAddressField['shipping'] == 'mandatory'; $this->addEditableField('shippingaddress_' . $strName, $arrData); $arrShippingAddressFields[] = 'shippingaddress_' . $strName; } $this->dca['palettes']['__selector__'][] = 'shippingaddress'; $this->dca['subpalettes']['shippingaddress'] = implode(',', $arrShippingAddressFields); $this->arrShippingAddressFields = $arrShippingAddressFields; }
/** * Store if we need to update the currencies * @param mixed * @param \DataContainer */ public function checkNeedToConvertCurrencies($varValue, \DataContainer $dc) { $objConfig = Config::findByPk($dc->id); if ($objConfig !== null && $varValue != $objConfig->{$dc->field}) { $GLOBALS['ISOTOPE_CONFIG_UPDATE_CURRENCIES'] = true; } return $varValue; }
/** * Get the currently active Isotope configuration * * @return Config */ public static function getConfig() { if (null === static::$objConfig) { static::initialize(); if (($objCart = static::getCart()) !== null) { static::$objConfig = Config::findByPk($objCart->config_id); } // If cart was null or still did not find a config if (null === static::$objConfig) { global $objPage; static::$objConfig = TL_MODE == 'FE' ? Config::findByRootPageOrFallback($objPage->rootId) : Config::findByFallback(); } // No config at all, create empty model as fallback if (null === static::$objConfig) { static::$objConfig = new Config(); trigger_error($GLOBALS['TL_LANG']['ERR']['noDefaultStoreConfiguration']); } } return static::$objConfig; }
/** * List all records with formatted currency * @param array * @return string */ public function listRow($row) { $arrRate = deserialize($row['rate']); if ($row['config'] && !$arrRate['unit']) { Isotope::setConfig(Config::findByPk($row['config'])); $strRate = Isotope::formatPriceWithCurrency($arrRate['value'], false); } else { $strRate = $arrRate['value'] . '%'; } return sprintf('%s <span style="color:#b3b3b3; padding-left:3px;">[%s]</span>', $row['name'], $strRate); }