$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';
Beispiel #7
0
                 $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();
         }
     }