$row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($qry); $specials_id = $row['specials_id']; $updateArray = array(); $updateArray['specials_new_products_price'] = $this->post['specials_new_products_price']; $updateArray['start_date'] = $specials_start_date; $updateArray['expires_date'] = $specials_expired_date; /* if ($this->post['tax_id']) { // we have to substract the vat so the price is excl. vat $tax_rate=mslib_fe::getTaxRate($this->post['tax_id']); $updateArray['specials_new_products_price']=round($updateArray['specials_new_products_price']/(1+$tax_rate),4); } */ $updateArray['status'] = $special_status; $filter = array(); $filter[] = 'products_id=' . $prodid; if (mslib_befe::ifExists('1', 'tx_multishop_products', 'imported_product', $filter)) { // lock changed columns mslib_befe::updateImportedProductsLockedFields($prodid, 'tx_multishop_specials', $updateArray); } $query = $GLOBALS['TYPO3_DB']->UPDATEquery('tx_multishop_specials', 'products_id=\'' . $prodid . '\'', $updateArray); $res = $GLOBALS['TYPO3_DB']->sql_query($query); } else { $updateArray = array(); $updateArray['products_id'] = $prodid; $updateArray['specials_new_products_price'] = $this->post['specials_new_products_price']; $updateArray['start_date'] = $specials_start_date; $updateArray['expires_date'] = $specials_expired_date; /* if ($this->post['tax_id']) { // we have to substract the vat so the price is excl. vat $tax_rate=mslib_fe::getTaxRate($this->post['tax_id']);
$filter[] = 'uid !=\'' . addslashes($item['uid']) . '\''; } elseif ($item['tx_multishop_source_id']) { // We want to filter out the iterated user $filter[] = 'tx_multishop_source_id != \'' . addslashes($item['tx_multishop_source_id']) . '\''; //$filter[]='tx_multishop_source_id !=\''.addslashes($item['tx_multishop_source_id']).'\''; } // Do a loop to increase the prefix number, but do the first loop with empty prefix $counter = 0; do { $suffix = ''; if ($counter) { $suffix = $counter; } $finalUsername = $username . $suffix; $counter++; } while (mslib_befe::ifExists($finalUsername, 'fe_users', 'username', $filter)); // Copy final username back to the $item array $item['username'] = $finalUsername; } // first combine the values to 1 array $usergroups = array(); $usergroups[] = $this->conf['fe_customer_usergroup']; if ($item['usergroup']) { // sometimes excel changes comma to dot if ($input['usergroup']) { // use aux $item['usergroup'] = str_replace($input['usergroup'], ',', $item['usergroup']); } elseif (strstr($item['usergroup'], '.')) { $item['usergroup'] = str_replace('.', ',', $item['usergroup']); } if (!strstr($item['usergroup'], ",") and !is_numeric($item['usergroup'])) {
public function updateImportedProductsLockedFields($products_id, $table, $updateArray) { $lockedFields = array(); $lockedFields['tx_multishop_products'][] = 'sku_code'; $lockedFields['tx_multishop_products'][] = 'products_price'; $lockedFields['tx_multishop_products'][] = 'products_vat_rate'; $lockedFields['tx_multishop_products'][] = 'products_name'; $lockedFields['tx_multishop_products'][] = 'products_model'; $lockedFields['tx_multishop_products'][] = 'products_quantity'; $lockedFields['tx_multishop_products'][] = 'products_status'; $lockedFields['tx_multishop_products_description'][] = 'products_name'; $lockedFields['tx_multishop_products_description'][] = 'products_shortdescription'; $lockedFields['tx_multishop_products_description'][] = 'products_description'; $lockedFields['tx_multishop_products_to_categories'][] = 'categories_id'; $lockedFields['tx_multishop_specials'][] = 'specials_new_products_price'; $skip = 0; //hook to let other plugins further manipulate the settings if (is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/multishop/pi1/classes/class.mslib_befe.php']['updateImportedProductsLockedFieldsPreProc'])) { $params = array('products_id' => &$products_id, 'table' => &$table, 'updateArray' => &$updateArray, 'lockedFields' => &$lockedFields, 'skip' => &$skip); foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/multishop/pi1/classes/class.mslib_befe.php']['updateImportedProductsLockedFieldsPreProc'] as $funcRef) { \TYPO3\CMS\Core\Utility\GeneralUtility::callUserFunction($funcRef, $params, $this); } } if (!$skip) { if (is_numeric($products_id) and $table) { // get fields that we need to take care of $query = $GLOBALS['TYPO3_DB']->SELECTquery('*', $table, 'products_id=' . $products_id, '', '', ''); $res = $GLOBALS['TYPO3_DB']->sql_query($query); if ($GLOBALS['TYPO3_DB']->sql_num_rows($res) > 0) { $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res); if (is_array($lockedFields[$table]) && count($lockedFields[$table])) { foreach ($lockedFields[$table] as $field_key) { $enableLock = 0; $fieldsToLock = array(); if ($row[$field_key] != $updateArray[$field_key]) { $fieldsToLock[] = $field_key; } if (count($fieldsToLock)) { foreach ($fieldsToLock as $field_key) { // add to locking table with original value $filter = array(); $filter[] = 'products_id=' . $row['products_id']; if (!mslib_befe::ifExists($field_key, 'tx_multishop_products_locked_fields', 'field_key', $filter)) { $insertArray = array(); $insertArray['field_key'] = $field_key; $insertArray['products_id'] = $row['products_id']; $insertArray['crdate'] = time(); $insertArray['cruser_id'] = $GLOBALS['TSFE']->fe_user->user['uid']; $insertArray['original_value'] = $row[$field_key]; $query = $GLOBALS['TYPO3_DB']->INSERTquery('tx_multishop_products_locked_fields', $insertArray); $res = $GLOBALS['TYPO3_DB']->sql_query($query); } } } } } } } } }
function createAttributeOptionValue($data) { if (!is_numeric($data['products_options_id'])) { return; } // ADD PRODUCT ATTRIBUTE OPTION $filter = array(); //$filter[]='language_id='.$data['language_id']; $filter[] = 'povp.products_options_id=' . $data['products_options_id']; //$filter[]='pov.products_options_values_name=\''.addslashes($data['products_options_values_name']).'\''; $filter[] = 'povp.products_options_values_id=pov.products_options_values_id'; $from = 'tx_multishop_products_options_values_to_products_options povp, tx_multishop_products_options_values pov'; //$str2="SELECT pov.products_options_values_id from tx_multishop_products_options_values_to_products_options povp, tx_multishop_products_options_values pov where // povp.products_options_id='".addslashes($products_options_id)."' and // pov.products_options_values_name='".addslashes($option_value)."' and // povp.products_options_values_id=pov.products_options_values_id"; if (mslib_befe::ifExists($data['products_options_values_name'], $from, 'pov.products_options_values_name', $filter)) { $record = mslib_befe::getRecord($data['products_options_values_name'], $from, 'pov.products_options_values_name', $filter); $products_options_values_id = $record['products_options_values_id']; } else { $insertArray = array(); $insertArray['language_id'] = $data['language_id']; $insertArray['products_options_values_name'] = $data['products_options_values_name']; $query = $GLOBALS['TYPO3_DB']->INSERTquery('tx_multishop_products_options_values', $insertArray); $GLOBALS['TYPO3_DB']->sql_query($query); $products_options_values_id = $GLOBALS['TYPO3_DB']->sql_insert_id(); } if ($data['products_options_id'] && $products_options_values_id) { $filter = array(); $filter[] = 'products_options_id=' . $data['products_options_id']; if (!mslib_befe::ifExists($products_options_values_id, 'tx_multishop_products_options_values_to_products_options', 'products_options_values_id', $filter)) { $insertArray = array(); $insertArray['products_options_id'] = $data['products_options_id']; $insertArray['products_options_values_id'] = $products_options_values_id; $query = $GLOBALS['TYPO3_DB']->INSERTquery('tx_multishop_products_options_values_to_products_options', $insertArray); $GLOBALS['TYPO3_DB']->sql_query($query); } return $products_options_values_id; } }
$messages[]=$str; } */ // V4 BETA COMPARE DATABASE (MULTIPLE SHOPS DATABASE DESIGN) EOL // CREATE / UPDATE MULTISHOP SETTINGS. CAN BE FURTHER CONTROLLED BY THIRD PARTY PLUGINS. require \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('multishop') . 'scripts/admin_pages/includes/configuration/tx_multishop_configuration_group.php'; foreach ($records as $record) { if (!mslib_befe::ifExists($record['id'], 'tx_multishop_configuration_group', 'id')) { $query2 = $GLOBALS['TYPO3_DB']->INSERTquery('tx_multishop_configuration_group', $record); $res2 = $GLOBALS['TYPO3_DB']->sql_query($query2); $messages[] = $query2; } } require \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('multishop') . 'scripts/admin_pages/includes/configuration/tx_multishop_configuration.php'; foreach ($records as $record) { if (!mslib_befe::ifExists($record['configuration_key'], 'tx_multishop_configuration', 'configuration_key')) { $query2 = $GLOBALS['TYPO3_DB']->INSERTquery('tx_multishop_configuration', $record); $res2 = $GLOBALS['TYPO3_DB']->sql_query($query2); $messages[] = $query2; } } // CREATE / UPDATE MULTISHOP SETTINGS. CAN BE FURTHER CONTROLLED BY THIRD PARTY PLUGINS. EOL // custom hook that can be controlled by third-party plugin if (is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/multishop/scripts/front_pages/includes/compare_database.php']['compareDatabasePostHook'])) { $params = array('messages' => &$messages); foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/multishop/scripts/front_pages/includes/compare_database.php']['compareDatabasePostHook'] as $funcRef) { \TYPO3\CMS\Core\Utility\GeneralUtility::callUserFunction($funcRef, $params, $this); } } // custom hook that can be controlled by third-party plugin eof }
$keys[] = array('key' => 'ULTRASEARCH_FIELDS', 'oldGroupId' => '3', 'newGroupId' => '15'); $keys[] = array('key' => 'BASKET_TYPE', 'oldGroupId' => '11', 'newGroupId' => '15'); $keys[] = array('key' => 'CREATE_ACCOUNT_TYPE', 'oldGroupId' => '11', 'newGroupId' => '15'); $keys[] = array('key' => 'CRUMBAR_TYPE', 'oldGroupId' => '11', 'newGroupId' => '15'); $keys[] = array('key' => 'EDIT_ACCOUNT_TYPE', 'oldGroupId' => '11', 'newGroupId' => '15'); $keys[] = array('key' => 'MANUFACTURERS_PRODUCTS_LISTING_TYPE', 'oldGroupId' => '11', 'newGroupId' => '15'); $keys[] = array('key' => 'MANUFACTURERS_TYPE', 'oldGroupId' => '11', 'newGroupId' => '15'); $keys[] = array('key' => 'ORDER_HISTORY_TYPE', 'oldGroupId' => '11', 'newGroupId' => '15'); $keys[] = array('key' => 'SHOPPING_CART_TYPE', 'oldGroupId' => '11', 'newGroupId' => '15'); $keys[] = array('key' => 'ULTRASEARCH_SERVER_TYPE', 'oldGroupId' => '11', 'newGroupId' => '13'); $keys[] = array('key' => 'ULTRASEARCH_TYPE', 'oldGroupId' => '11', 'newGroupId' => '13'); $keys[] = array('key' => 'NUMBER_OF_PRODUCT_IMAGES', 'oldGroupId' => '11', 'newGroupId' => '3'); foreach ($keys as $row) { $filter = array(); $filter[] = 'group_id=' . $row['oldGroupId']; if (mslib_befe::ifExists($row['key'], 'tx_multishop_configuration', 'configuration_key', $filter)) { $updateArray = array(); $updateArray['group_id'] = $row['newGroupId']; $query2 = $GLOBALS['TYPO3_DB']->UPDATEquery('tx_multishop_configuration', 'configuration_key=\'' . addslashes($row['key']) . '\'', $updateArray); $res2 = $GLOBALS['TYPO3_DB']->sql_query($query2); $messages[] = $query2; } } // DELETE UNUSED SETTINGS $keys = array(); $keys[] = 'ACCORDION_MENU'; $keys[] = 'ACCORDION_SETUP_MODULES'; $keys[] = 'AFFILIATE_SHOP'; $keys[] = 'SHOW_INNER_FOOTER_NAV'; $keys[] = 'GEONAMES_USERNAME'; $keys[] = 'ADDTHIS_ACCOUNT';
$erno[] = $query . '<br/>' . $GLOBALS['TYPO3_DB']->sql_error(); } } } } // LANGUAGE OVERLAYS for products options values EOL if ($products_options_id and $option_value_id) { if ($this->post['incremental_update'] and $products_id) { $query = $GLOBALS['TYPO3_DB']->DELETEquery('tx_multishop_products_attributes', 'products_id=' . $products_id . ' and options_id=\'' . $products_options_id . '\' and options_values_id=\'' . $option_value_id . '\' and (page_uid=0 or page_uid=\'' . $this->showCatalogFromPage . '\')'); $res = $GLOBALS['TYPO3_DB']->sql_query($query); } //$query=$GLOBALS['TYPO3_DB']->DELETEquery('tx_multishop_products_options_values_to_products_options', 'products_options_id='.$products_options_id." and products_options_values_id='".$option_value_id."'"); //$res=$GLOBALS['TYPO3_DB']->sql_query($query); $filter = array(); $filter[] = 'products_options_values_id=\'' . addslashes($option_value_id) . '\''; if (!mslib_befe::ifExists($products_options_id, 'tx_multishop_products_options_values_to_products_options', 'products_options_id', $filter)) { $insertArray = array(); $insertArray['products_options_id'] = $products_options_id; $insertArray['products_options_values_id'] = $option_value_id; if ($sortOrderArray['tx_multishop_products_options_values_to_products_options']['sort_order']) { $sortOrderArray['tx_multishop_products_options_values_to_products_options']['sort_order']++; } else { $sortOrderArray['tx_multishop_products_options_values_to_products_options']['sort_order'] = time(); } $insertArray['sort_order'] = $sortOrderArray['tx_multishop_products_options_values_to_products_options']['sort_order']; $insertArray = mslib_befe::rmNullValuedKeys($insertArray); $query = $GLOBALS['TYPO3_DB']->INSERTquery('tx_multishop_products_options_values_to_products_options', $insertArray); if (!$GLOBALS['TYPO3_DB']->sql_query($query)) { $erno[] = $query . '<br/>' . $GLOBALS['TYPO3_DB']->sql_error(); } }