コード例 #1
1
ファイル: PriceUpdater.php プロジェクト: diedsmiling/busenika
 public function updatePrices()
 {
     if ($this->updateType == 'excel') {
         $lastRow = $this->excel->getActiveSheet()->getHighestRow();
         for ($row = 2; $row <= $lastRow; $row++) {
             $itemId = $this->excel->getActiveSheet()->getCell('A' . $row)->getValue();
             $finalPrice = 0;
             $qty = 0;
             foreach ($this->config['vendors'] as $vendor) {
                 $price = $this->excel->getActiveSheet()->getCell($vendor["master-file-price-column"] . $row)->getValue();
                 if ($finalPrice < $price) {
                     $finalPrice = $price;
                 }
                 $qty += $this->excel->getActiveSheet()->getCell($vendor["master-file-qty-column"] . $row)->getValue();
             }
             db_query("UPDATE ?:products, vendor_items SET temp_price= ?i * (vendor_items.interest/100 + 1), temp_qty = ?i WHERE product_code= ?s AND vendor_items.item_id= '" . $itemId . "'", $finalPrice, $qty, $itemId);
         }
     } elseif ($this->updateType == 'db') {
         foreach ($this->config['vendors'] as $vendor) {
             $id_columns[] = $vendor['master-file-item-column-name'];
             $price_columns[] = $vendor['master-file-price-column-name'];
             $qty_columns[] = $vendor['master-file-qty-column-name'];
         }
         db_get_array("UPDATE cscart_products, vendor_prices, vendor_items SET temp_price=GREATEST(0, " . implode(",", $price_columns) . ") * (vendor_items.interest/100 + 1), temp_qty=" . implode("+", $qty_columns) . " WHERE product_code= vendor_prices.item_id AND vendor_items.item_id=product_code");
     }
 }
コード例 #2
1
ファイル: seo_rules.php プロジェクト: diedsmiling/busenika
function fn_get_seo_rules($params = array(), $items_per_page = 0, $lang_code = DESCR_SL)
{
    $lang_code = fn_get_corrected_seo_lang_code($lang_code);
    $global_total = db_get_fields("SELECT dispatch FROM ?:seo_names WHERE object_id = '0' AND type = 's' GROUP BY dispatch");
    $local_total = db_get_fields("SELECT dispatch FROM ?:seo_names WHERE object_id = '0' AND type = 's' AND lang_code = ?s", $lang_code);
    if ($diff = array_diff($global_total, $local_total)) {
        foreach ($diff as $disp) {
            fn_create_seo_name(0, 's', str_replace('.', '-', $disp), 0, $disp, DESCR_SL);
        }
    }
    // Init filter
    $params = fn_init_view('seo_rules', $params);
    // Set default values to input params
    $params['page'] = empty($params['page']) ? 1 : $params['page'];
    // default page is 1
    $condition = '';
    if (isset($params['name']) && fn_string_no_empty($params['name'])) {
        $condition .= db_quote(" AND name LIKE ?l", "%" . trim($params['name']) . "%");
    }
    if (isset($params['controller']) && fn_string_no_empty($params['controller'])) {
        $condition .= db_quote(" AND dispatch LIKE ?l", "%" . trim($params['controller']) . "%");
    }
    $limit = '';
    if (!empty($items_per_page)) {
        $total = db_get_field("SELECT COUNT(*) FROM ?:seo_names WHERE object_id = '0' AND type = 's' AND lang_code = ?s ?p", $lang_code, $condition);
        $limit = fn_paginate($params['page'], $total, $items_per_page);
    }
    $seo_data = db_get_array("SELECT name, dispatch FROM ?:seo_names WHERE object_id = '0' AND type = 's' AND lang_code = ?s ?p ORDER BY dispatch {$limit}", $lang_code, $condition);
    return array($seo_data, $params);
}
コード例 #3
1
/**
 * Reverse IP filter
 */
function fn_settings_actions_addons_access_restrictions_admin_reverse_ip_access(&$new_value, $old_value)
{
    $ip = fn_get_ip(true);
    if ($new_value == 'Y') {
        $ip_data = db_get_row("SELECT item_id, status FROM ?:access_restriction WHERE ip_from = ?i AND ip_to = ?i AND type IN ('aas', 'aab', 'aar')", $ip['host'], $ip['host']);
        if (empty($ip_data) || empty($ip_data['item_id'])) {
            // Add IP
            $restrict_ip = array('ip_from' => $ip['host'], 'ip_to' => $ip['host'], 'type' => 'aas', 'timestamp' => TIME, 'expires' => '0', 'status' => 'A');
            $__data = array();
            $__data['item_id'] = db_query("REPLACE INTO ?:access_restriction ?e", $restrict_ip);
            $__data['type'] = 'aas';
            foreach (fn_get_translation_languages() as $__data['lang_code'] => $_v) {
                $__data['reason'] = __('store_admin', '', $__data['lang_code']);
                db_query("REPLACE INTO ?:access_restriction_reason_descriptions ?e", $__data);
            }
            fn_set_notification('W', __('warning'), __('your_ip_added', array('[ip]' => long2ip($ip['host']))));
        } elseif (empty($ip_data['status']) || $ip_data['status'] != 'A') {
            // Change IP status to available
            db_query("UPDATE ?:access_restriction SET ?u WHERE item_id = ?i", array('status' => 'A'), $ip_data['item_id']);
            fn_set_notification('W', __('warning'), __('your_ip_enabled', array('[ip]' => long2ip($ip['host']))));
        }
    } else {
        // Delete IP
        $ips_data = db_get_array("SELECT item_id, type FROM ?:access_restriction WHERE ip_from <= ?i AND ip_to >= ?i AND type IN ('aas', 'aab', 'aar')", $ip['host'], $ip['host']);
        if (!empty($ips_data)) {
            foreach ($ips_data as $ip_data) {
                db_query("DELETE FROM ?:access_restriction WHERE item_id = ?i", $ip_data['item_id']);
                db_query("DELETE FROM ?:access_restriction_reason_descriptions WHERE item_id = ?i AND type = ?s", $ip_data['item_id'], $ip_data['type']);
            }
            fn_set_notification('W', __('warning'), __('your_ip_removed', array('[ip]' => long2ip($ip['host']))));
        }
    }
    return true;
}
コード例 #4
1
ファイル: F413T414.php プロジェクト: heg-arc-ne/cscart
 public function import($db_already_cloned)
 {
     General::setProgressTitle(__CLASS__);
     if (!$db_already_cloned) {
         if (!General::cloneImportedDB($this->store_data)) {
             return false;
         }
     } else {
         General::setEmptyProgressBar(__('importing_data'));
         General::setEmptyProgressBar(__('importing_data'));
     }
     $main_sql = Registry::get('config.dir.addons') . 'store_import/database/' . $this->main_sql_filename;
     General::backupSettings();
     if (is_file($main_sql)) {
         //Process main sql
         if (!db_import_sql_file($main_sql)) {
             return false;
         }
     }
     //Find all quick menu linked to the template_editor and change it to file_editor
     $quick_menus = db_get_array("SELECT * FROM ?:quick_menu WHERE url LIKE '%template_editor%'");
     foreach ($quick_menus as $quick_menu) {
         $quick_menu['url'] = str_replace('template_editor', 'file_editor', $quick_menu['url']);
         db_query("REPLACE INTO ?:quick_menu ?e", $quick_menu);
     }
     General::setEmptyProgressBar();
     General::setEmptyProgressBar();
     General::setEmptyProgressBar();
     General::setEmptyProgressBar();
     return true;
 }
コード例 #5
0
ファイル: seo_rules.php プロジェクト: askzap/ultimate
function fn_get_seo_rules($params = array(), $items_per_page = 0, $lang_code = DESCR_SL)
{
    $condition = fn_get_seo_company_condition('?:seo_names.company_id');
    $lang_code = fn_get_corrected_seo_lang_code($lang_code);
    $global_total = db_get_fields("SELECT dispatch FROM ?:seo_names WHERE object_id = '0' AND type = 's' ?p GROUP BY dispatch", $condition);
    $local_total = db_get_fields("SELECT dispatch FROM ?:seo_names WHERE object_id = '0' AND type = 's' AND lang_code = ?s ?p", $lang_code, $condition);
    if ($diff = array_diff($global_total, $local_total)) {
        foreach ($diff as $disp) {
            fn_create_seo_name(0, 's', str_replace('.', '-', $disp), 0, $disp, '', DESCR_SL);
        }
    }
    // Init filter
    $params = LastView::instance()->update('seo_rules', $params);
    // Set default values to input params
    $default_params = array('page' => 1, 'items_per_page' => $items_per_page);
    $params = array_merge($default_params, $params);
    if (isset($params['name']) && fn_string_not_empty($params['name'])) {
        $condition .= db_quote(" AND name LIKE ?l", "%" . trim($params['name']) . "%");
    }
    if (isset($params['rule_params']) && fn_string_not_empty($params['rule_params'])) {
        $condition .= db_quote(" AND dispatch LIKE ?l", "%" . trim($params['rule_params']) . "%");
    }
    $limit = '';
    if (!empty($params['items_per_page'])) {
        $params['total_items'] = db_get_field("SELECT COUNT(*) FROM ?:seo_names WHERE object_id = '0' AND type = 's' AND lang_code = ?s ?p", $lang_code, $condition);
        $limit = db_paginate($params['page'], $params['items_per_page'], $params['total_items']);
    }
    $seo_data = db_get_array("SELECT name, dispatch FROM ?:seo_names WHERE object_id = '0' AND type = 's' AND lang_code = ?s ?p ORDER BY dispatch {$limit}", $lang_code, $condition);
    return array($seo_data, $params);
}
コード例 #6
0
ファイル: func.php プロジェクト: OneataBogdan/lead_coriolan
function fn_get_required_products_linked_to_options_by_product_id($product_id)
{
    $finalResults = array();
    $fieldsOptionsVariantsLinksToProducts = " d.product_id AS linked_prodict_id";
    $conditionOptionsVariantsLinksToProducts = db_quote(' (?:product_options.product_id = ?i OR (?:product_options.product_id=0 AND n.product_id = ?i))', $product_id, $product_id);
    $joinOptionsVariantsLinksToProducts = db_quote(' LEFT JOIN ?:product_global_option_links n ON ?:product_options.option_id = n.option_id ');
    $joinOptionsVariantsLinksToProducts .= db_quote(' JOIN ?:product_option_variants c ON ?:product_options.option_id = c.option_id');
    $joinOptionsVariantsLinksToProducts .= db_quote(' JOIN ?:product_option_variants_link d ON c.variant_id = d.option_variant_id');
    $optsVariantsLinksToProducts = db_get_array("SELECT " . $fieldsOptionsVariantsLinksToProducts . " FROM ?:product_options " . $joinOptionsVariantsLinksToProducts . " WHERE " . $conditionOptionsVariantsLinksToProducts . " GROUP BY c.variant_id, ?:product_options.option_id" . " ORDER BY ?:product_options.position, c.position");
}
コード例 #7
0
ファイル: func.php プロジェクト: diedsmiling/busenika
function fn_get_store_locations($params, $items_per_page = 0, $lang_code = CART_LANGUAGE)
{
    $default_params = array('page' => 1, 'q' => '', 'match' => 'any');
    $params = array_merge($default_params, $params);
    $fields = array('?:store_locations.*', '?:store_location_descriptions.*', '?:country_descriptions.country as country_title');
    $join = db_quote(" LEFT JOIN ?:store_location_descriptions ON ?:store_locations.store_location_id = ?:store_location_descriptions.store_location_id AND ?:store_location_descriptions.lang_code = ?s", $lang_code);
    $join .= db_quote(" LEFT JOIN ?:country_descriptions ON ?:store_locations.country = ?:country_descriptions.code AND ?:country_descriptions.lang_code = ?s", $lang_code);
    $condition = 1;
    if (AREA == 'C') {
        $condition .= " AND status = 'A'";
    }
    // Search string condition for SQL query
    if (!empty($params['q'])) {
        if ($params['match'] == 'any') {
            $pieces = explode(' ', $params['q']);
            $search_type = ' OR ';
        } elseif ($params['match'] == 'all') {
            $pieces = explode(' ', $params['q']);
            $search_type = ' AND ';
        } else {
            $pieces = array($params['q']);
            $search_type = '';
        }
        $_condition = array();
        foreach ($pieces as $piece) {
            $tmp = db_quote("?:store_location_descriptions.name LIKE ?l", "%{$piece}%");
            // check search words
            $tmp .= db_quote(" OR ?:store_location_descriptions.description LIKE ?l", "%{$piece}%");
            $tmp .= db_quote(" OR ?:store_location_descriptions.city LIKE ?l", "%{$piece}%");
            $tmp .= db_quote(" OR ?:country_descriptions.country LIKE ?l", "%{$piece}%");
            $_condition[] = '(' . $tmp . ')';
        }
        $_cond = implode($search_type, $_condition);
        if (!empty($_condition)) {
            $condition .= ' AND (' . $_cond . ') ';
        }
        unset($_condition);
    }
    $condition .= AREA == 'C' && defined('CART_LOCALIZATION') ? fn_get_localizations_condition('?:store_locations.localization') : '';
    $sorting = "?:store_locations.position, ?:store_location_descriptions.name";
    $limit = '';
    $total = 0;
    if (!empty($items_per_page)) {
        $total = db_get_field("SELECT COUNT(?:store_locations.store_location_id) FROM ?:store_locations ?p WHERE ?p", $join, $condition);
        $limit = fn_paginate($params['page'], $total, $items_per_page);
    }
    $data = db_get_array('SELECT ?p FROM ?:store_locations ?p WHERE ?p GROUP BY ?:store_locations.store_location_id ORDER BY ?p ?p', implode(', ', $fields), $join, $condition, $sorting, $limit);
    if (!$total) {
        $total = count($data);
    }
    return array($data, $params, $total);
}
コード例 #8
0
ファイル: users.php プロジェクト: diedsmiling/busenika
function fn_exim_get_usergroups($user_id)
{
    $pair_delimiter = ':';
    $set_delimiter = '; ';
    $result = array();
    $usergroups = db_get_array("SELECT usergroup_id, status FROM ?:usergroup_links WHERE user_id = ?i", $user_id);
    if (!empty($usergroups)) {
        foreach ($usergroups as $ug) {
            $result[] = $ug['usergroup_id'] . $pair_delimiter . $ug['status'];
        }
    }
    return !empty($result) ? implode($set_delimiter, $result) : '';
}
コード例 #9
0
ファイル: func.php プロジェクト: ambient-lounge/site
function fn_get_features_list()
{
    $features_list = array('-');
    $_fl = db_get_array("SELECT a.feature_id, b.description FROM ?:product_features as a LEFT JOIN ?:product_features_descriptions as b ON a.feature_id=b.feature_id WHERE b.lang_code = ?s AND (a.feature_type = 'S' OR a.feature_type = 'E') ORDER BY b.description", CART_LANGUAGE);
    if (!empty($_fl)) {
        foreach ($_fl as $v) {
            if (!empty($v['description'])) {
                $features_list[$v['feature_id']] = $v['description'];
            }
        }
    }
    return $features_list;
}
コード例 #10
0
function fn_gift_registry_get_userlog($params, $items_per_page = 0)
{
    // Set default values to input params
    $default_params = array('page' => 1, 'items_per_page' => $items_per_page);
    $params = array_merge($default_params, $params);
    $sortings = array('timestamp' => 'timestamp', 'amount' => 'amount');
    $sorting = db_sort($params, $sortings, 'timestamp', 'desc');
    $limit = '';
    if (!empty($params['items_per_page'])) {
        $params['total_items'] = db_get_field("SELECT COUNT(*) FROM ?:reward_point_changes WHERE user_id = ?i", $params['user_id']);
        $limit = db_paginate($params['page'], $params['items_per_page'], $params['total_items']);
    }
    $userlog = db_get_array("SELECT change_id, action, timestamp, amount, reason FROM ?:reward_point_changes WHERE user_id = ?i {$sorting} {$limit}", $params['user_id']);
    return array($userlog, $params);
}
コード例 #11
0
ファイル: UserAgent.php プロジェクト: askzap/ultimate
 public static function sendUaStat()
 {
     $access_id = TwigmoConnector::getAccessID('A');
     if (!$access_id) {
         return;
     }
     $query = db_quote('FROM ?:twigmo_ua_stat WHERE month<?s LIMIT ?i', date('Y-m-1'), 100);
     $needToSend = db_get_array('SELECT *, ?s as access_id ' . $query, $access_id);
     if (!count($needToSend)) {
         return;
     }
     $responce = Http::post(TWG_UA_RULES_STAT, array('stat' => serialize($needToSend)));
     if ($responce == 'ok') {
         db_query('DELETE ' . $query);
     }
 }
コード例 #12
0
ファイル: func.php プロジェクト: MrAlejandro/cs_cart
/**
 * Returns an array of staff members with image_pairs
 *
 * @return array $data
 */
function fn_staff_block_manager_get_staff_members_for_block($arg, $settings, $block)
{
    $properties = $settings['properties'];
    if (isset($properties['staff_sort_by_position']) && in_array($properties['staff_sort_by_position'], array('asc', 'desc'))) {
        $order = " ORDER BY s.position {$properties['staff_sort_by_position']}";
    }
    $fields = "s.*, u.firstname as linked_firstname, u.lastname as linked_lastname, u.email as linked_email";
    $join = db_quote(" LEFT JOIN ?:users as u ON s.linked_user_id = u.user_id");
    $query = "SELECT " . $fields . " FROM ?:staff as s" . $join;
    if (isset($order)) {
        $query .= db_quote($order);
    }
    $data = db_get_array($query);
    for ($i = 0; $i < count($data); $i++) {
        $data[$i]['main_pair'] = fn_get_image_pairs($data[$i]['user_id'], 'staff', 'M', true, true, CART_LANGUAGE);
    }
    return $data;
}
コード例 #13
0
ファイル: categories.pre.php プロジェクト: askzap/ultimate
function fn_age_verification_update_parent_data($category_id, $age_verification, $age_limit)
{
    $data = db_get_array("SELECT category_id, age_verification, age_limit, parent_age_verification, parent_age_limit FROM ?:categories WHERE parent_id = ?i", $category_id);
    db_query("UPDATE ?:categories SET parent_age_verification = ?s, parent_age_limit = ?i WHERE parent_id = ?i", $age_verification, $age_limit, $category_id);
    foreach ($data as $key => $entry) {
        $update = false;
        if ($entry['age_verification'] == 'N' && $age_verification == 'Y') {
            $update = true;
        }
        if ($entry['age_limit'] < $age_limit || $entry['age_verification'] == 'N' && $age_verification == 'N' && ($age_limit = 0)) {
            $update = true;
        }
        if ($update) {
            fn_age_verification_update_parent_data($entry['category_id'], $age_verification, $age_limit);
        } elseif ($entry['age_verification'] == 'Y' && $entry['age_limit'] > $age_limit) {
            fn_age_verification_update_parent_data($entry['category_id'], $entry['age_verification'], $entry['age_limit']);
        }
    }
}
コード例 #14
0
function fn_seo_settings_update($type, $option, $new_value, $redirect_only)
{
    $i = 0;
    $items_per_pass = 100;
    $old_value = Registry::get('addons.seo.' . $option);
    $company_condition = fn_get_seo_company_condition('?:seo_names.company_id', $type);
    while ($update_data = db_get_array("SELECT * FROM ?:seo_names WHERE type = ?s ?p LIMIT {$i}, {$items_per_pass}", $type, $company_condition)) {
        foreach ($update_data as $data) {
            Registry::set('addons.seo.' . $option, $old_value);
            $url = fn_generate_seo_url_from_schema(array('type' => $data['type'], 'object_id' => $data['object_id'], 'lang_code' => $data['lang_code']), false);
            fn_seo_update_redirect(array('src' => $url, 'type' => $data['type'], 'object_id' => $data['object_id'], 'company_id' => $data['company_id'], 'lang_code' => $data['lang_code']), 0, false);
            if (!$redirect_only) {
                Registry::set('addons.seo.' . $option, $new_value);
                fn_create_seo_name($data['object_id'], $data['type'], $data['name'], 0, '', $data['company_id'], $data['lang_code'], true);
            }
        }
        $i += $items_per_pass;
    }
}
コード例 #15
0
ファイル: func.php プロジェクト: OneataBogdan/lead_coriolan
function fn_get_feedbacks($params, $items_per_page, $lang_code = CART_LANGUAGE)
{
    $params = LastView::instance()->update('feedbacks', $params);
    $default_params = array('page' => 1, 'items_per_page' => $items_per_page);
    $params = array_merge($default_params, $params);
    $fields = array("?:orders_feedback.feedback_id", "?:orders_feedback.statuses", "?:orders_feedback.subject", "?:orders_feedback.remind_in", "?:orders_feedback.status", "?:orders_feedback.lang_code");
    $sortings = array('feedback_id' => "?:orders_feedback.feedback_id", 'subject' => "?:orders_feedback.subject", 'statuses' => "?:orders_feedback.statuses", 'remind_in' => "?:orders_feedback.remind_in");
    $condition = $_condition = $join = $group = '';
    /*conditions*/
    $condition .= db_quote(' AND lang_code = ?s', $lang_code);
    /*conditions*/
    $sorting = db_sort($params, $sortings, 'feedback_id', 'desc');
    $limit = '';
    if (!empty($params['items_per_page'])) {
        $params['total_items'] = db_get_field("SELECT COUNT(?:orders_feedback.feedback_id) FROM ?:orders_feedback {$join} WHERE 1 {$condition}");
        $limit = db_paginate($params['page'], $params['items_per_page']);
    }
    $feedbacks = db_get_array('SELECT ' . implode(', ', $fields) . " FROM ?:orders_feedback {$join} WHERE 1 {$condition} {$group} {$sorting} {$limit}");
    LastView::instance()->processResults('feedbacks', $feedbacks, $params);
    return array($feedbacks, $params);
}
コード例 #16
0
ファイル: orders.php プロジェクト: diedsmiling/busenika
function fn_exim_orders_get_extra_fields($order_id, $lang_code = CART_LANGUAGE)
{
    $fields = array();
    $_user = db_get_array("SELECT d.description, f.value, a.section FROM ?:profile_fields_data as f LEFT JOIN ?:profile_field_descriptions as d ON d.object_id = f.field_id AND d.object_type = 'F' AND d.lang_code = ?s LEFT JOIN ?:profile_fields as a ON a.field_id = f.field_id WHERE f.object_id = ?i  AND f.object_type = 'O'", $lang_code, $order_id);
    if (!empty($_user)) {
        foreach ($_user as $field) {
            if ($field['section'] == 'B') {
                $type = 'billing';
            } elseif ($field['section'] == 'S') {
                $type = 'shipping';
            } else {
                $type = 'user';
            }
            $fields[$type][$field['description']] = $field['value'];
        }
    }
    if (!empty($fields)) {
        return YAML_Parser::serialize($fields);
    }
    return '';
}
コード例 #17
0
ファイル: func.php プロジェクト: ulogin/ulogin-CS-Cart
function fn_ulogin_syncpanel($user_id = 0)
{
    $auth = $_SESSION['auth'];
    $current_user = $auth['user_id'];
    $current_user = isset($current_user) ? $current_user : 0;
    $user_id = empty($user_id) ? $current_user : $user_id;
    if (empty($user_id)) {
        return '';
    }
    $networks = array();
    $res = db_get_array("SELECT * FROM ?:ulogin WHERE user_id = ?i", $user_id);
    if ($res) {
        foreach ($res as $network) {
            $networks[] = $network;
        }
    } else {
        return '<h3 class="ty-subheader">' . __('ulogin_sync_title') . '</h3>' . fn_ulogin_authpanel(1) . '<p>' . __('ulogin_sync_help') . '</p>';
    }
    $output = '
			<style>
			    .big_provider {
			        display: inline-block;
			        margin-right: 10px;
			    }
			</style>
			<h3 class="ty-subheader">' . __('ulogin_sync_title') . '</h3>' . fn_ulogin_authpanel(1) . '<p>' . __('ulogin_sync_help') . '</p>
            <h3 class="ty-subheader">' . __('ulogin_sync_accounts') . '</h3>';
    if ($networks) {
        $output .= '<div id="ulogin_accounts">';
        foreach ($networks as $network) {
            if ($network['user_id'] = $user_id) {
                $output .= "<div data-ulogin-network='{$network['network']}'  data-ulogin-identity='{$network['identity']}' class='ulogin_network big_provider {$network['network']}_big'></div>";
            }
        }
        $output .= '</div>
            <p>' . __('ulogin_sync_accounts_delete') . '</p>';
        return $output;
    }
    return '';
}
コード例 #18
0
ファイル: fn.companies.php プロジェクト: diedsmiling/busenika
function fn_get_companies($params, &$auth, $items_per_page = 0)
{
    // Init filter
    $_view = 'companies';
    $params = fn_init_view($_view, $params);
    // Set default values to input params
    $params['page'] = empty($params['page']) ? 1 : $params['page'];
    // Define fields that should be retrieved
    $fields = array("?:companies.company_id", "?:companies.email", "?:companies.company", "?:companies.timestamp", "?:companies.status");
    // Define sort fields
    $sortings = array('id' => "?:users.user_id", 'company' => "?:companies.company", 'email' => "?:companies.email", 'date' => "?:companies.timestamp", 'status' => "?:companies.status");
    $directions = array('asc' => 'asc', 'desc' => 'desc');
    $condition = $join = $group = '';
    $condition .= fn_get_company_condition('?:companies.company_id');
    $group .= " GROUP BY ?:companies.company_id";
    /*
    	 * TODO search
    	if (!empty($params['company'])) {
    		$condition .= db_quote(" AND ?:users.company LIKE ?l", "%$params[company]%");
    	}
    */
    fn_set_hook('get_companies', $params, $fields, $sortings, $condition, $join);
    if (empty($params['sort_order']) || empty($directions[$params['sort_order']])) {
        $params['sort_order'] = 'asc';
    }
    if (empty($params['sort_by']) || empty($sortings[$params['sort_by']])) {
        $params['sort_by'] = 'company';
    }
    $sorting = (is_array($sortings[$params['sort_by']]) ? implode(' ' . $directions[$params['sort_order']] . ', ', $sortings[$params['sort_by']]) : $sortings[$params['sort_by']]) . " " . $directions[$params['sort_order']];
    // Reverse sorting (for usage in view)
    $params['sort_order'] = $params['sort_order'] == 'asc' ? 'desc' : 'asc';
    // Paginate search results
    $limit = '';
    if (!empty($items_per_page)) {
        $total = db_get_field("SELECT COUNT(DISTINCT(?:companies.company_id)) FROM ?:companies {$join} WHERE 1 {$condition}");
        $limit = fn_paginate($params['page'], $total, $items_per_page);
    }
    $companies = db_get_array("SELECT " . implode(', ', $fields) . " FROM ?:companies {$join} WHERE 1 {$condition} {$group} ORDER BY {$sorting} {$limit}");
    return array($companies, $params);
}
コード例 #19
0
ファイル: orders.pre.php プロジェクト: diedsmiling/busenika
function fn_delete_corresponding_subscription($order_ids, $not_confirmed = true)
{
    $subscriptions = db_get_hash_single_array("SELECT subscription_id, order_id FROM ?:recurring_subscriptions WHERE order_id IN (?n)", array('subscription_id', 'order_id'), $order_ids);
    if (!empty($subscriptions)) {
        if ($not_confirmed) {
            $_SESSION['subscriptions'] = $subscriptions;
            $_SESSION['order_ids'] = $order_ids;
            return false;
        } else {
            fn_delete_recurring_subscriptions(array_keys($subscriptions));
        }
    }
    foreach ($order_ids as $v) {
        $subs = db_get_array("SELECT subscription_id, order_ids FROM ?:recurring_subscriptions WHERE FIND_IN_SET(?i, order_ids)", $v);
        if (!empty($subs)) {
            foreach ($subs as $val) {
                $new_order_ids = explode(',', $val['order_ids']);
                $new_order_ids = array_diff($new_order_ids, $order_ids);
                db_query("UPDATE ?:recurring_subscriptions SET order_ids = ?s WHERE subscription_id = ?i", implode(',', $new_order_ids), $val['subscription_id']);
            }
        }
    }
    return true;
}
コード例 #20
0
ファイル: Menu.php プロジェクト: askzap/ultimate
 /**
  * Deletes product tab with reliated descriptions
  * @static
  * @param  integer $menu_id ID of tab for delete
  * @return bool
  */
 public static function delete($menu_id)
 {
     if (!empty($menu_id) && fn_check_company_id('menus', 'menu_id', $menu_id)) {
         /**
          * Before delete product tab
          * @param int $menu_id Id of product tab for delete
          */
         fn_set_hook('delete_menu_pre', $menu_id);
         db_query("DELETE FROM ?:menus WHERE menu_id = ?i", $menu_id);
         db_query("DELETE FROM ?:menus_descriptions WHERE menu_id = ?i", $menu_id);
         // Remove data from static data
         $static_datas = db_get_array("SELECT param_id FROM ?:static_data WHERE param_5 = ?i AND section = 'A'", $menu_id);
         foreach ($static_datas as $static_data) {
             fn_delete_static_data($static_data['param_id']);
         }
         /**
          * After delete product tab
          * @param int $menu_id Id of product tab for delete
          */
         fn_set_hook('delete_menu_post', $menu_id);
         return true;
     }
     return false;
 }
コード例 #21
0
ファイル: func.php プロジェクト: diedsmiling/busenika
function fn_get_banners($params, $lang_code = CART_LANGUAGE)
{
    $default_params = array('items_per_page' => 0, 'sort_by' => 'name');
    $params = array_merge($default_params, $params);
    $sortings = array('timestamp' => '?:banners.timestamp', 'name' => '?:banner_descriptions.banner');
    $directions = array('asc' => 'asc', 'desc' => 'desc');
    $condition = $limit = '';
    if (!empty($params['limit'])) {
        $limit = db_quote(' LIMIT 0, ?i', $params['limit']);
    }
    if (empty($params['sort_order']) || empty($directions[$params['sort_order']])) {
        $params['sort_order'] = 'asc';
    }
    if (empty($params['sort_by']) || empty($sortings[$params['sort_by']])) {
        $params['sort_by'] = 'name';
    }
    $sorting = $sortings[$params['sort_by']] . ' ' . $directions[$params['sort_order']];
    $condition = AREA == 'A' ? '' : " AND ?:banners.status = 'A' ";
    $condition .= fn_get_localizations_condition('?:banners.localization');
    if (!empty($params['item_ids'])) {
        $condition .= db_quote(' AND ?:banners.banner_id IN (?n)', explode(',', $params['item_ids']));
    }
    if (!empty($params['period']) && $params['period'] != 'A') {
        list($params['time_from'], $params['time_to']) = fn_create_periods($params);
        $condition .= db_quote(" AND (?:banners.timestamp >= ?i AND ?:banners.timestamp <= ?i)", $params['time_from'], $params['time_to']);
    }
    $banners = db_get_array("SELECT ?:banners.banner_id, ?:banners.type, ?:banners.target, ?:banners.status, ?:banners.url, ?:banner_descriptions.banner, ?:banner_descriptions.description FROM ?:banners LEFT JOIN ?:banner_descriptions ON ?:banner_descriptions.banner_id = ?:banners.banner_id AND ?:banner_descriptions.lang_code = ?s WHERE 1 ?p ORDER BY ?p ?p", $lang_code, $condition, $sorting, $limit);
    foreach ($banners as $k => $v) {
        $banners[$k]['main_pair'] = fn_get_image_pairs($v['banner_id'], 'banner', 'M', true, false, $lang_code);
    }
    if (!empty($params['item_ids'])) {
        $banners = fn_sort_by_ids($banners, explode(',', $params['item_ids']), 'banner_id');
    }
    fn_set_hook('get_banners', $banners);
    return array($banners, $params);
}
コード例 #22
0
function fn_get_discussions($params, $items_per_page)
{
    // Init filter
    $params = LastView::instance()->update('discussion', $params);
    // Set default values to input params
    $default_params = array('page' => 1, 'items_per_page' => $items_per_page);
    $params = array_merge($default_params, $params);
    // Define fields that should be retrieved
    $fields = array('?:discussion_posts.*', '?:discussion_messages.message', '?:discussion_rating.rating_value', '?:discussion.*');
    // Define sort fields
    $sortings = array('object' => "?:discussion.object_type", 'name' => "?:discussion_posts.name", 'ip_address' => "?:discussion_posts.ip_address", 'timestamp' => "?:discussion_posts.timestamp", 'status' => "?:discussion_posts.status", 'date' => "?:orders.timestamp", 'total' => "?:orders.total");
    $sorting = db_sort($params, $sortings, 'timestamp', 'desc');
    $condition = $join = '';
    if (isset($params['name']) && fn_string_not_empty($params['name'])) {
        $condition .= db_quote(" AND ?:discussion_posts.name LIKE ?l", "%" . trim($params['name']) . "%");
    }
    if (isset($params['message']) && fn_string_not_empty($params['message'])) {
        $condition .= db_quote(" AND ?:discussion_messages.message LIKE ?l", "%" . trim($params['message']) . "%");
    }
    if (!empty($params['type'])) {
        $condition .= db_quote(" AND ?:discussion.type = ?s", $params['type']);
    }
    if (!empty($params['status'])) {
        $condition .= db_quote(" AND ?:discussion_posts.status = ?s", $params['status']);
    }
    if (!empty($params['post_id'])) {
        $condition .= db_quote(" AND ?:discussion_posts.post_id = ?i", $params['post_id']);
    }
    if (isset($params['ip_address']) && fn_string_not_empty($params['ip_address'])) {
        $condition .= db_quote(" AND ?:discussion_posts.ip_address = ?s", fn_ip_to_db(trim($params['ip_address'])));
    }
    if (!empty($params['rating_value'])) {
        $condition .= db_quote(" AND ?:discussion_rating.rating_value = ?i", $params['rating_value']);
    }
    if (!empty($params['object_type'])) {
        $condition .= db_quote(" AND ?:discussion.object_type = ?s", $params['object_type']);
    }
    $condition .= fn_get_discussion_company_condition('?:discussion.company_id');
    if (!empty($params['period']) && $params['period'] != 'A') {
        list($params['time_from'], $params['time_to']) = fn_create_periods($params);
        $condition .= db_quote(" AND (?:discussion_posts.timestamp >= ?i AND ?:discussion_posts.timestamp <= ?i)", $params['time_from'], $params['time_to']);
    }
    $join .= " INNER JOIN ?:discussion ON ?:discussion.thread_id = ?:discussion_posts.thread_id";
    $join .= " INNER JOIN ?:discussion_messages ON ?:discussion_messages.post_id = ?:discussion_posts.post_id";
    $join .= " INNER JOIN ?:discussion_rating ON ?:discussion_rating.post_id = ?:discussion_posts.post_id";
    $limit = '';
    if (!empty($params['items_per_page'])) {
        $params['total_items'] = db_get_field("SELECT COUNT(*) FROM ?:discussion_posts {$join} WHERE 1 {$condition}");
        $limit = db_paginate($params['page'], $params['items_per_page'], $params['total_items']);
    }
    $posts = db_get_array("SELECT " . implode(',', $fields) . " FROM ?:discussion_posts {$join} WHERE 1 {$condition} {$sorting} {$limit}");
    foreach ($posts as $k => $post) {
        if (isset($post['ip_address'])) {
            $posts[$k]['ip_address'] = fn_ip_from_db($post['ip_address']);
        }
    }
    return array($posts, $params);
}
コード例 #23
0
ファイル: func.php プロジェクト: heg-arc-ne/cscart
function fn_delete_return($return_id)
{
    $items = db_get_array("SELECT item_id, ?:order_details.extra, ?:order_details.order_id FROM ?:order_details LEFT JOIN ?:rma_returns ON ?:order_details.order_id = ?:rma_returns.order_id WHERE  return_id = ?i", $return_id);
    foreach ($items as $item) {
        $extra = unserialize($item['extra']);
        if (isset($extra['returns'])) {
            unset($extra['returns']);
        }
        db_query('UPDATE ?:order_details SET ?u WHERE item_id = ?i AND order_id = ?i', array('extra' => serialize($extra)), $item['item_id'], $item['order_id']);
    }
    db_query("DELETE FROM ?:rma_returns WHERE return_id = ?i", $return_id);
    db_query("DELETE FROM ?:rma_return_products WHERE return_id = ?i", $return_id);
}
コード例 #24
0
ファイル: TwigmoOrder.php プロジェクト: askzap/ultimate
 /**
  * Get order data
  */
 public static function getOrderInfo($order_id)
 {
     $object = fn_get_order_info($order_id, false, true, true);
     $object['date'] = fn_twg_format_time($object['timestamp']);
     $status_data = fn_get_status_data($object['status'], STATUSES_ORDER);
     if (AREA == 'C') {
         $object['status'] = empty($status_data['description']) ? '' : $status_data['description'];
     }
     $object['shipping'] = array_values(isset($object['shipping']) ? $object['shipping'] : array());
     $object['taxes'] = array_values($object['taxes']);
     $object['items'] = self::setProductsPointsInfo(array('products' => array_values($object['products'])));
     unset($object['products']);
     foreach ($object['items'] as &$product) {
         if (!empty($product['extra']['points_info']) && Registry::get('addons.reward_points.status') != 'A') {
             unset($product['extra']['points_info']);
         }
     }
     if (Registry::get('settings.General.use_shipments') == 'Y') {
         $shipments = db_get_array('SELECT ?:shipments.shipment_id, ?:shipments.comments, ?:shipments.tracking_number, ?:shipping_descriptions.shipping AS shipping, ?:shipments.carrier FROM ?:shipments LEFT JOIN ?:shipment_items ON (?:shipments.shipment_id = ?:shipment_items.shipment_id) LEFT JOIN ?:shipping_descriptions ON (?:shipments.shipping_id = ?:shipping_descriptions.shipping_id) WHERE ?:shipment_items.order_id = ?i AND ?:shipping_descriptions.lang_code = ?s GROUP BY ?:shipments.shipment_id', $order_id, DESCR_SL);
         if (!empty($shipments)) {
             foreach ($shipments as $id => $shipment) {
                 $shipments[$id]['items'] = db_get_array('SELECT item_id, amount FROM ?:shipment_items WHERE shipment_id = ?i', $shipment['shipment_id']);
             }
         }
         $object['shipments'] = $shipments;
     }
     return $object;
 }
コード例 #25
0
ファイル: fn.images.php プロジェクト: heg-arc-ne/cscart
/**
 * Gets image pairs (icon, detailed)
 *
 * @param array/int $object_ids List of Object IDs or Object ID
 * @param string $object_type Type: product, category, banner, etc.
 * @param string $pair_type (M)ain or (A)dditional
 * @param bool $get_icon
 * @param bool $get_detailed
 * @param string $lang_code 2-letters code
 * @return array Pair data
 */
function fn_get_image_pairs($object_ids, $object_type, $pair_type, $get_icon = true, $get_detailed = true, $lang_code = CART_LANGUAGE)
{
    /**
     * Changes input params for fn_get_image_pairs function
     *
     * @param  array/int $object_ids   List of Object IDs or Object ID
     * @param  string    $object_type  Type: product, category, banner, etc.
     * @param  string    $pair_type    (M)ain or (A)dditional
     * @param  bool      $get_icon
     * @param  bool      $get_detailed
     * @param  string    $lang_code    2-letters code
     * @return array     Pair data
     */
    fn_set_hook('get_image_pairs_pre', $object_ids, $object_type, $pair_type, $get_icon, $get_detailed, $lang_code);
    $icon_pairs = $detailed_pairs = $pairs_data = array();
    $cond = is_array($object_ids) ? db_quote("AND ?:images_links.object_id IN (?n)", $object_ids) : db_quote("AND ?:images_links.object_id = ?i", $object_ids);
    if ($get_icon == true || $get_detailed == true) {
        if ($get_icon == true) {
            $join_cond = "?:images_links.image_id = ?:images.image_id";
            $icon_pairs = db_get_array("SELECT ?:images_links.*, ?:images.image_path, ?:common_descriptions.description AS alt, ?:images.image_x, ?:images.image_y, ?:images.image_id as images_image_id" . " FROM ?:images_links" . " LEFT JOIN ?:images ON {$join_cond}" . " LEFT JOIN ?:common_descriptions ON ?:common_descriptions.object_id = ?:images.image_id AND ?:common_descriptions.object_holder = 'images' AND ?:common_descriptions.lang_code = ?s" . " WHERE ?:images_links.object_type = ?s AND ?:images_links.type = ?s {$cond}" . " ORDER BY ?:images_links.position, ?:images_links.pair_id", $lang_code, $object_type, $pair_type);
        }
        if ($get_detailed == true) {
            $join_cond = db_quote("?:images_links.detailed_id = ?:images.image_id");
            $detailed_pairs = db_get_array("SELECT ?:images_links.*, ?:images.image_path, ?:common_descriptions.description AS alt, ?:images.image_x, ?:images.image_y, ?:images.image_id as images_image_id" . " FROM ?:images_links" . " LEFT JOIN ?:images ON {$join_cond}" . " LEFT JOIN ?:common_descriptions ON ?:common_descriptions.object_id = ?:images.image_id AND ?:common_descriptions.object_holder = 'images' AND ?:common_descriptions.lang_code = ?s" . " WHERE ?:images_links.object_type = ?s AND ?:images_links.type = ?s {$cond}" . " ORDER BY ?:images_links.position, ?:images_links.pair_id", $lang_code, $object_type, $pair_type);
        }
        foreach ((array) $object_ids as $object_id) {
            $pairs_data[$object_id] = array();
        }
        // Convert the received data to the standard format in order to keep the backward compatibility
        foreach ($icon_pairs as $pair) {
            $_pair = array('pair_id' => $pair['pair_id'], 'image_id' => $pair['image_id'], 'detailed_id' => $pair['detailed_id'], 'position' => $pair['position']);
            if (!empty($pair['images_image_id'])) {
                //get icon data if exist
                $icon = fn_attach_absolute_image_paths($pair, $object_type);
                $_pair['icon'] = array('image_path' => $icon['image_path'], 'alt' => $icon['alt'], 'image_x' => $icon['image_x'], 'image_y' => $icon['image_y'], 'http_image_path' => $icon['http_image_path'], 'https_image_path' => $icon['https_image_path'], 'absolute_path' => $icon['absolute_path'], 'relative_path' => $icon['relative_path']);
            }
            $pairs_data[$pair['object_id']][$pair['pair_id']] = $_pair;
        }
        // -foreach icon_pairs
        foreach ($detailed_pairs as $pair) {
            $pair_id = $pair['pair_id'];
            $object_id = $pair['object_id'];
            if (!empty($pairs_data[$object_id][$pair_id]['detailed_id'])) {
                $detailed = fn_attach_absolute_image_paths($pair, 'detailed');
                $pairs_data[$object_id][$pair_id]['detailed'] = array('image_path' => $detailed['image_path'], 'alt' => $detailed['alt'], 'image_x' => $detailed['image_x'], 'image_y' => $detailed['image_y'], 'http_image_path' => $detailed['http_image_path'], 'https_image_path' => $detailed['https_image_path'], 'absolute_path' => $detailed['absolute_path'], 'relative_path' => $detailed['relative_path']);
            } elseif (empty($pairs_data[$object_id][$pair_id]['pair_id'])) {
                $pairs_data[$object_id][$pair_id] = array('pair_id' => $pair['pair_id'], 'image_id' => $pair['image_id'], 'detailed_id' => $pair['detailed_id'], 'position' => $pair['position']);
                if (!empty($pair['images_image_id'])) {
                    //get detailed data if exist
                    $detailed = fn_attach_absolute_image_paths($pair, 'detailed');
                    $pairs_data[$object_id][$pair_id]['detailed'] = array('image_path' => $detailed['image_path'], 'alt' => $detailed['alt'], 'image_x' => $detailed['image_x'], 'image_y' => $detailed['image_y'], 'http_image_path' => $detailed['http_image_path'], 'https_image_path' => $detailed['https_image_path'], 'absolute_path' => $detailed['absolute_path'], 'relative_path' => $detailed['relative_path']);
                }
            }
        }
        // -foreach detailed_pairs
    } else {
        $pairs_data = db_get_hash_multi_array("SELECT pair_id, image_id, detailed_id, object_id FROM ?:images_links WHERE object_type = ?s AND type = ?s {$cond}", array('object_id', 'pair_id'), $object_type, $pair_type);
    }
    /**
     * Changes pair data informatin
     *
     * @param array/int $object_ids   List of Object IDs or Object ID
     * @param string    $object_type  Type: product, category, banner, etc.
     * @param string    $pair_type    (M)ain or (A)dditional
     * @param bool      $get_icon
     * @param bool      $get_detailed
     * @param string    $lang_code    2-letters code
     * @param array     $pairs_data   Pairs data
     */
    fn_set_hook('get_image_pairs_post', $object_ids, $object_type, $pair_type, $get_icon, $get_detailed, $lang_code, $pairs_data);
    if (is_array($object_ids)) {
        return $pairs_data;
    } else {
        if ($pair_type == 'A') {
            return $pairs_data[$object_ids];
        } else {
            return !empty($pairs_data[$object_ids]) ? reset($pairs_data[$object_ids]) : array();
        }
    }
}
コード例 #26
0
ファイル: Snapshot.php プロジェクト: askzap/ultimate
 /**
  * Creates database and imports dump there
  * @param  string  $db_name db name
  * @return boolean true on success, false - otherwise
  */
 public static function createDb($db_name = '')
 {
     $snapshot_dir = Registry::get('config.dir.snapshots');
     $dbdump_filename = empty($db_name) ? 'cmp_current.sql' : 'cmp_release.sql';
     if (!fn_mkdir($snapshot_dir)) {
         fn_set_notification('E', __('error'), __('text_cannot_create_directory', array('[directory]' => fn_get_rel_dir($snapshot_dir))));
         return false;
     }
     $dump_file = $snapshot_dir . $dbdump_filename;
     if (is_file($dump_file)) {
         if (!is_writable($dump_file)) {
             fn_set_notification('E', __('error'), __('dump_file_not_writable'));
             return false;
         }
     }
     $fd = @fopen($snapshot_dir . $dbdump_filename, 'w');
     if (!$fd) {
         fn_set_notification('E', __('error'), __('dump_cant_create_file'));
         return false;
     }
     if (!empty($db_name)) {
         Database::changeDb($db_name);
     }
     // set export format
     db_query("SET @SQL_MODE = 'MYSQL323'");
     fn_start_scroller();
     $create_statements = array();
     $insert_statements = array();
     $status_data = db_get_array("SHOW TABLE STATUS");
     $dbdump_tables = array();
     foreach ($status_data as $k => $v) {
         $dbdump_tables[] = $v['Name'];
     }
     // get status data
     $t_status = db_get_hash_array("SHOW TABLE STATUS", 'Name');
     foreach ($dbdump_tables as $k => $table) {
         fn_echo('<br />' . __('backupping_data') . ': <b>' . $table . '</b>&nbsp;&nbsp;');
         $total_rows = db_get_field("SELECT COUNT(*) FROM {$table}");
         $index = db_get_array("SHOW INDEX FROM {$table}");
         $order_by = array();
         foreach ($index as $kk => $vv) {
             if ($vv['Key_name'] == 'PRIMARY') {
                 $order_by[] = '`' . $vv['Column_name'] . '`';
             }
         }
         if (!empty($order_by)) {
             $order_by = 'ORDER BY ' . implode(',', $order_by);
         } else {
             $order_by = '';
         }
         // Define iterator
         if (!empty($t_status[$table]) && $t_status[$table]['Avg_row_length'] < DB_MAX_ROW_SIZE) {
             $it = DB_ROWS_PER_PASS;
         } else {
             $it = 1;
         }
         for ($i = 0; $i < $total_rows; $i = $i + $it) {
             $table_data = db_get_array("SELECT * FROM {$table} {$order_by} LIMIT {$i}, {$it}");
             foreach ($table_data as $_tdata) {
                 $_tdata = fn_add_slashes($_tdata, true);
                 $values = array();
                 foreach ($_tdata as $v) {
                     $values[] = $v !== null ? "'{$v}'" : 'NULL';
                 }
                 fwrite($fd, "INSERT INTO {$table} (`" . implode('`, `', array_keys($_tdata)) . "`) VALUES (" . implode(', ', $values) . ");\n");
             }
             fn_echo(' .');
         }
     }
     fn_stop_scroller();
     if (!empty($db_name)) {
         Settings::instance()->reloadSections();
     }
     if (fn_allowed_for('ULTIMATE')) {
         $companies = fn_get_short_companies();
         asort($companies);
         $settings['company_root'] = Settings::instance()->getList();
         foreach ($companies as $k => $v) {
             $settings['company_' . $k] = Settings::instance()->getList(0, 0, false, $k);
         }
     } else {
         $settings['company_root'] = Settings::instance()->getList();
     }
     if (!empty($db_name)) {
         Database::changeDb(Registry::get('config.db_name'));
     }
     $settings = self::processSettings($settings, '');
     $settings = self::formatSettings($settings['data']);
     ksort($settings);
     $data = print_r($settings, true);
     fwrite($fd, $data);
     fclose($fd);
     @chmod($snapshot_dir . $dbdump_filename, DEFAULT_FILE_PERMISSIONS);
     return true;
 }
コード例 #27
0
ファイル: func.php プロジェクト: diedsmiling/busenika
function fn_product_configurator_clone_product($product_id, $pid)
{
    $configuration = db_get_array("SELECT * FROM ?:conf_product_groups WHERE product_id = ?i", $product_id);
    if (empty($configuration)) {
        return false;
    }
    if (is_array($configuration)) {
        foreach ($configuration as $k => $v) {
            $v['product_id'] = $pid;
            db_query("INSERT INTO ?:conf_product_groups ?e", $v);
        }
    }
    return true;
}
コード例 #28
0
ファイル: Styles.php プロジェクト: askzap/ask-zap
 /**
  * Copy style
  * @param  string  $from style ID to copy from
  * @param  string  $to   style ID to copy to
  * @return boolean true on success, false otherwise
  */
 public function copy($from, $to)
 {
     $from = fn_basename($from);
     $to = fn_basename($to);
     $style_file_from = $this->getStyleFile($from);
     $style_file_to = $this->getStyleFile($to, 'less');
     if (is_file($style_file_from)) {
         if (fn_copy($style_file_from, $style_file_to)) {
             $types = array('css');
             foreach ($types as $type) {
                 $style_file_from = $this->getStyleFile($from, $type);
                 if (file_exists($style_file_from)) {
                     fn_copy($style_file_from, $this->getStyleFile($to, $type));
                 }
             }
             fn_copy(Patterns::instance($this->params)->getPath($from), Patterns::instance($this->params)->getPath($to));
             $content = fn_get_contents($style_file_to);
             $content = str_replace('/patterns/' . $from . '/', '/patterns/' . $to . '/', $content);
             fn_put_contents($style_file_to, $content);
             // Clone logos for new style
             $logos = db_get_array('SELECT * FROM ?:logos WHERE style_id = ?s AND company_id = ?i', $from, $this->company_id);
             foreach ($logos as $logo) {
                 $object_id = fn_update_logo(array('type' => $logo['type'], 'layout_id' => $logo['layout_id'], 'style_id' => $to), $this->company_id);
                 fn_clone_image_pairs($object_id, $logo['logo_id'], 'logos');
             }
             return true;
         }
     }
     return false;
 }
コード例 #29
0
ファイル: datakeeper.php プロジェクト: askzap/ultimate
        }
        fn_set_notification('N', __('notice'), __('done'));
    }
    if ($mode == 'delete') {
        if (!empty($_REQUEST['backup_file'])) {
            fn_rm(Registry::get('config.dir.backups') . fn_basename($_REQUEST['backup_file']));
        }
    }
    return array(CONTROLLER_STATUS_OK, 'datakeeper.manage');
}
if ($mode == 'getfile' && !empty($_REQUEST['file'])) {
    fn_get_file(Registry::get('config.dir.backups') . fn_basename($_REQUEST['file']));
} elseif ($mode == 'manage') {
    $view = Tygh::$app['view'];
    // Calculate database size and fill tables array
    $status_data = db_get_array("SHOW TABLE STATUS");
    $database_size = 0;
    $all_tables = array();
    foreach ($status_data as $k => $v) {
        $database_size += $v['Data_length'] + $v['Index_length'];
        $all_tables[] = $v['Name'];
    }
    $view->assign('database_size', $database_size);
    $view->assign('all_tables', $all_tables);
    $files = fn_get_dir_contents(Registry::get('config.dir.backups'), false, true, array('.sql', '.tgz', '.zip'), '', true);
    sort($files, SORT_STRING);
    $backup_files = array();
    $date_format = Registry::get('settings.Appearance.date_format') . ' ' . Registry::get('settings.Appearance.time_format');
    if (is_array($files)) {
        $backup_dir = Registry::get('config.dir.backups');
        foreach ($files as $file) {
コード例 #30
-1
ファイル: func.php プロジェクト: ambient-lounge/site
function fn_get_cities($params = array(), $items_per_page = 0, $lang_code = CART_LANGUAGE)
{
    // Set default values to input params
    $default_params = array('page' => 1, 'items_per_page' => $items_per_page);
    $params = array_merge($default_params, $params);
    $fields = array('c.city_id', 'c.country_code', 'c.state_code', 'c.city_code', 'c.status', 'cd.city');
    $condition = '';
    if (!empty($params['only_avail'])) {
        $condition .= db_quote(" AND c.status = ?s", 'A');
    }
    if (!empty($params['q'])) {
        $condition .= db_quote(" AND cd.city LIKE ?l", '%' . $params['q'] . '%');
    }
    if (!empty($params['state_code'])) {
        $condition .= db_quote(" AND c.state_code = ?s", $params['state_code']);
    }
    if (!empty($params['country_code'])) {
        $condition .= db_quote(" AND c.country_code = ?s", $params['country_code']);
    }
    $join = "LEFT JOIN ?:rus_city_descriptions as cd ON cd.city_id = c.city_id AND cd.lang_code = ?s ";
    $limit = '';
    if (!empty($params['items_per_page'])) {
        $params['total_items'] = db_get_field("SELECT count(*) FROM ?:rus_cities as c {$join} WHERE 1 ?p", $lang_code, $condition);
        $limit = db_paginate($params['page'], $params['items_per_page']);
    }
    $cities = db_get_array("SELECT " . implode(', ', $fields) . " FROM ?:rus_cities as c {$join} WHERE 1 ?p ORDER BY cd.city {$limit}", $lang_code, $condition);
    foreach ($cities as &$city) {
        if (empty($city['city'])) {
            $city['city'] = db_get_field("SELECT city FROM ?:rus_city_descriptions WHERE city_id = ?i AND lang_code = 'ru'", $city['city_id']);
        }
    }
    return array($cities, $params);
}