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);
         }
     }
 }
Example #3
0
 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);
 }
Example #5
0
 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;
 }
Example #8
0
 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;
 }
Example #10
0
 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;
 }