function addManualRate($from, $to, $rate) { global $application; $tables = $this->getTables(); $mr_table = $tables['cconv_man_rates']['columns']; $query = new DB_Replace('cconv_man_rates'); $query->addReplaceValue($from, $mr_table['from']); $query->addReplaceValue($to, $mr_table['to']); $query->addReplaceValue($rate, $mr_table['rate']); $application->db->PrepareSQL($query); if ($application->db->DB_Exec()) { $id = $application->db->DB_Insert_Id(); modApiFunc("Currency_Converter", "__delRateFromCache", $from, $to); modApiFunc('EventsManager', 'throwEvent', 'CurrencyManualRateAdded'); return $id; } else { return false; } }
/** * Get the marketplace Extension Data. * @param boolean $paramReload is ture it will reload details from marketplace */ function fetchMarketplaceExtData($paramReload = false) { global $application; if ($paramReload || $this->isMarketplaceUpdateRequired()) { $this->marketplace_server = $application->getAppIni('MARKETPLACE_SERVER'); loadCoreFile('bouncer.php'); $bnc = new Bouncer(); $bnc->setMethod('POST'); $bnc->setPOSTstring($bnc->prepareDATAstring($this->getLicenseDetail())); $bnc->setURL($this->marketplace_server . "/download_extension.php?asc_action=ListMarketplaceExtensions"); $bnc->setProto('HTTPS'); $result = $bnc->RunRequest(); if ($result != false && $bnc->responseCode < 400) { $response = json_decode($result['body']); if (isset($response) && isset($response->extensions) && !empty($response->extensions)) { $application->db->DB_Query('truncate ' . $application->getAppIni('DB_TABLE_PREFIX') . 'marketplace_ext_data'); $tables = self::getTables(); $columns = $tables['marketplace_ext_data']['columns']; foreach ($response->extensions as $extension) { $query = new DB_Replace('marketplace_ext_data'); $query->addReplaceValue($extension->extension_id, $columns['id']); $query->addReplaceValue($extension->display_name, $columns['display_name']); $query->addReplaceValue($extension->name, $columns['name']); $query->addReplaceValue($extension->description, $columns['desc']); $query->addReplaceValue($extension->detailed_link, $columns['link']); $query->addReplaceValue($extension->image_url, $columns['image']); $query->addReplaceValue($extension->type, $columns['type']); $query->addReplaceValue($extension->category, $columns['category']); $query->addReplaceValue($extension->latestversion, $columns['latestversion']); $query->addReplaceValue($extension->price, $columns['price']); $query->addReplaceValue($extension->ext_version, $columns['latestcompatibleversion']); $query->addReplaceValue($extension->filename, $columns['file']); $application->db->getDB_Result($query); } /* Update Last build date - start */ $params = array('group_name' => 'MARKETPLACE_LAST_BUILD_DATE', 'param_name' => 'MARKETPLACE_LAST_BUILD_DATE', 'value' => time()); execQuery('UPDATE_SETTINGS_PARAM_VALUE', $params); /* Update TTL coming from marketplace server */ $params = array('group_name' => 'MARKETPLACE_TTL', 'param_name' => 'MARKETPLACE_TTL', 'value' => $response->MARKETPLACE_TTL); execQuery('UPDATE_SETTINGS_PARAM_VALUE', $params); } else { CTrace::wrn("Failed to parse response from marketplace. Response is " . print_r($result['body'], true)); } } else { CTrace::wrn("Failed to fetch from marketplace. Error is " . $bnc->responseCode . " " . $bnc->_error_message); } } }
function REPLACE_BESTSELLERS_SETTINGS() { parent::DB_Replace('bs_settings'); }
function setSubscriptionKey($key, $email) { global $application; $tables = Subscriptions::getTables(); $table = 'subscription_guest'; $columns =& $tables[$table]['columns']; $query = new DB_Replace($table); $query->addReplaceValue($key, $columns['subscription_key']); $query->addReplaceValue($email, $columns['email']); $query->addReplaceValue(time(), $columns['updated']); $application->db->getDB_Result($query); }
function REPLACE_TEMP_CURRENCY_RATE() { parent::DB_Replace('cconv_temp_cur_rates'); }
function replaceActivationKey($account) { global $application; $tables = $this->getTables(); $keys_table = $tables['ca_activation_keys']['columns']; $query = new DB_Replace('ca_activation_keys'); $query->addReplaceValue($this->__genActivationKey(), $keys_table['key_value']); $query->addReplaceValue($account, $keys_table['customer_account']); $application->db->PrepareSQL($query); return $application->db->DB_Exec(); }
function _addInputType($type_name, $type_values = array(), $it_id = '') { global $application; $result = array(); // magic numbers: 9 is the maximal pre-defined input type if ($it_id > 0 && $it_id <= 9) { return; } // removing empty values if (!is_array($type_values)) { $type_values = array($type_values); } foreach ($type_values as $k => $v) { if (!trim($v)) { unset($type_values[$k]); } } $tables = modApiFunc('Catalog', 'getTables'); $it = $tables['input_types']['columns']; $itv = $tables['input_type_values']['columns']; $i = new DB_Replace('input_types'); if ($it_id) { $i->addReplaceValue($it_id, $it['ut_id']); } $i->addReplaceValue($type_name, $it['name']); $result['new_input_type'] = $application->db->getDB_Result($i); if ($it_id) { $result['insert_type_id'] = $it_id; } else { $result['insert_type_id'] = $application->db->DB_Insert_Id(); } //adding values for new type $id = $result['insert_type_id']; if (is_array($type_values) && !empty($type_values)) { $saved_values = array(); if ($it_id) { $query = new DB_Select(); $query->addSelectField($itv['id'], 'id'); $query->WhereValue($itv['it_id'], DB_EQ, $id); $query->SelectOrder($itv['id'], 'ASC'); $saved_values = $application->db->getDB_Result($query); if (!$saved_values) { $saved_values = array(); } else { foreach ($saved_values as $k => $v) { $saved_values[$k] = $v['id']; } } } $index = 1; foreach ($type_values as $i => $value) { $old_id = array_shift($saved_values); if ($old_id) { $upd = new DB_Update('input_type_values'); $upd->addMultiLangUpdateValue($itv['value'], $value, $itv['id'], $old_id, 'Catalog'); $upd->WhereValue($itv['id'], DB_EQ, $old_id); $application->db->getDB_Result($upd); } else { $ins = new DB_Insert('input_type_values'); $ins->addInsertValue($id, $itv['it_id']); $ins->addMultiLangInsertValue($value, $itv['value'], $itv['id'], 'Catalog'); $application->db->getDB_Result($ins); } $result['new_input_values'][] = $value; } if (!empty($saved_values)) { $d1 = new DB_Delete("input_type_values"); $d1->deleteMultiLangField($itv['value'], $itv['id'], 'Catalog'); $d1->WhereValue($itv['id'], DB_IN, '(\'' . implode('\', \'', $saved_values) . '\')'); $application->db->getDB_Result($d1); } } elseif ($it_id) { $d1 = new DB_Delete("input_type_values"); $d1->deleteMultiLangField($itv['value'], $itv['id'], 'Catalog'); $d1->WhereValue($itv['it_id'], DB_EQ, $it_id); $application->db->getDB_Result($d1); } return $result; }
function REPLACE_ML_RECORD() { parent::DB_Replace('multilang_data'); }
function saveHTAcontent($hta_content, $layout_path) { $return = array(); global $application; $row_layout = _parse_cz_layout_ini_file($layout_path, true); if (isset($row_layout['Site']['SitePath'])) { $dest_file_path = $row_layout['Site']['SitePath'] . '.htaccess'; } else { $dest_file_path = $application->appIni["PATH_ASC_ROOT"] . '.htaccess'; } if (file_exists($dest_file_path) and !is_writable($dest_file_path)) { $return[] = 'ERR_CANT_WRITE_FILE'; return $return; } if (!is_writable(dirname($dest_file_path))) { $return[] = 'ERR_CANT_WRITE_FILE'; return $return; } # , if (file_exists($dest_file_path)) { $file = new CFile($dest_file_path); $lines = array_map("rtrim", $file->getLines()); $out_content = ''; $i = 0; while ($i < count($lines) and $lines[$i] != REWRITE_BLOCK_IDENT_BEGIN) { $out_content .= $lines[$i] . "\n"; $i++; } $out_content .= $hta_content; $i++; while ($i < count($lines) and $lines[$i] != REWRITE_BLOCK_IDENT_END) { $i++; } $i++; while ($i < count($lines)) { $out_content .= $lines[$i] . "\n"; $i++; } } else { $out_content = $hta_content; } asc_file_put_contents($dest_file_path, $out_content); $layout_integrity = array('product_list' => $row_layout['ProductList'], 'product_info' => $row_layout['ProductInfo'], 'cms_page' => $row_layout['CMSPage']); $htaccess_md5 = md5($hta_content); $sefu_integrity = array('cats_template' => $application->getAppIni('SEFU_CATEGORY_QUERY_STRING_SUFFIX'), 'prods_template' => $application->getAppIni('SEFU_PRODUCT_QUERY_STRING_SUFFIX'), 'cms_template' => $application->getAppIni('SEFU_CMSPAGE_QUERY_STRING_SUFFIX')); $sets_integrity = array('cats_prefix' => $this->settings['CATS_PREFIX'], 'prods_prefix' => $this->settings['PRODS_PREFIX'], 'cms_prefix' => $this->settings['CMS_PREFIX'], 'rewrite_scheme' => $this->settings['REWRITE_SCHEME']); $tables = $this->getTables(); $integrity_table = $tables['mr_integrity']['columns']; $query = new DB_Replace('mr_integrity'); $query->addReplaceValue($layout_path, $integrity_table['layout_path']); $query->addReplaceValue(md5(serialize($layout_integrity)), $integrity_table['layout_md5']); $query->addReplaceValue($dest_file_path, $integrity_table['htaccess_path']); $query->addReplaceValue($htaccess_md5, $integrity_table['htaccess_md5']); $query->addReplaceValue(md5(serialize($sefu_integrity)), $integrity_table['sefu_md5']); $query->addReplaceValue(md5(serialize($sets_integrity)), $integrity_table['sets_md5']); $application->db->PrepareSQL($query); $application->db->DB_Exec(); // . , , . $this->enableMRforLayout($layout_path); return $return; }
function REPLACE_CRAWLER_VISIT() { parent::DB_Replace('reports_crawlers_visits'); }
/** * . * * , , . * : $event_name, * $handler_class, $handler_method. . . * . * * : * * $include_path - , $handler_class. * , $handler_class , * EventManager . * - , NULL. API , * , ModulesManager " " . * * $sort_order - , * . , * - . 100. * , * . * * @param string $event_name , * @param string $handler_class * @param string $handler_method * @param string $include_path , , * * @param int $sort_order , */ function addEventHandler($event_name, $handler_class, $handler_method, $include_path = null, $sort_order = null) { $tables = EventsManager::getTables(); $tbl_events = $tables['events_manager']['columns']; $query = new DB_Replace('events_manager'); $query->addReplaceValue($event_name, $tbl_events['event_name']); $query->addReplaceValue($handler_class, $tbl_events['handler_class']); $query->addReplaceValue($handler_method, $tbl_events['handler_method']); if ($sort_order != null) { $query->addReplaceValue($sort_order, $tbl_events['handler_order']); } if ($include_path != null) { $query->addReplaceValue($include_path, $tbl_events['handler_include_path']); } global $application; $application->db->PrepareSQL($query); $application->db->DB_Exec(); }
/** * Updates settings of this module for the entity. * * @param string $parent_entity - entity name * @param int $entity_id - ID of the entity, the settings of which should be updated * @param array $settings_array - array with the elements of the type'setting_key' => 'setting_value' * @return always true :) */ function updateOptionsSettingsForEntity($parent_entity, $entity_id, $settings_array = array()) { if (!empty($settings_array)) { global $application; $tables = $this->getTables(); $settings_table = $tables['po_settings']['columns']; foreach ($settings_array as $skey => $sval) { $query = new DB_Replace('po_settings'); $query->addReplaceValue($parent_entity, $settings_table['parent_entity']); $query->addReplaceValue($entity_id, $settings_table['entity_id']); $query->addReplaceValue($skey, $settings_table['setting_key']); $query->addReplaceValue($sval, $settings_table['setting_value']); $application->db->PrepareSQL($query); $application->db->DB_Exec(); } } return true; }