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); }
public function update($content_id, $postdata) { $content_id = db_quote($content_id); $title = db_quote($postdata['title']); $body = db_quote($postdata['body_content']); $this->db->query("UPDATE site_content SET title = {$title}, body = {$body} WHERE content_id = {$content_id}"); }
public static function instance_config_form($group, $instance = null) { if (isset($instance)) { $autosubscribe = get_field('interaction_forum_instance_config', 'value', 'field', 'autosubscribe', 'forum', $instance->get('id')); $weight = get_field('interaction_forum_instance_config', 'value', 'field', 'weight', 'forum', $instance->get('id')); $moderators = get_column_sql('SELECT fm.user FROM {interaction_forum_moderator} fm JOIN {usr} u ON (fm.user = u.id AND u.deleted = 0) WHERE fm.forum = ?', array($instance->get('id'))); } if ($instance === null) { $exclude = ''; } else { $exclude = 'AND i.id != ' . db_quote($instance->get('id')); } $existing = get_records_sql_array(' SELECT i.id, i.title, c.value AS weight FROM {interaction_instance} i INNER JOIN {interaction_forum_instance_config} c ON (i.id = c.forum AND c.field = \'weight\') WHERE i.group = ? AND i.deleted != 1 ' . $exclude . ' ORDER BY c.value', array($group->id)); if ($existing) { foreach ($existing as &$item) { $item = (array) $item; } } else { $existing = array(); } return array('fieldset' => array('type' => 'fieldset', 'collapsible' => true, 'collapsed' => true, 'legend' => get_string('settings'), 'elements' => array('autosubscribe' => array('type' => 'select', 'title' => get_string('autosubscribeusers', 'interaction.forum'), 'options' => array(true => get_string('yes'), false => get_string('no')), 'description' => get_string('autosubscribeusersdescription', 'interaction.forum'), 'defaultvalue' => isset($autosubscribe) ? $autosubscribe : false, 'rules' => array('required' => true), 'help' => true), 'weight' => array('type' => 'weight', 'title' => get_string('Order', 'interaction.forum'), 'description' => get_string('orderdescription', 'interaction.forum'), 'defaultvalue' => isset($weight) ? $weight : count($existing), 'rules' => array('required' => true), 'existing' => $existing, 'ignore' => count($existing) == 0), 'moderator' => array('type' => 'userlist', 'title' => get_string('Moderators', 'interaction.forum'), 'description' => get_string('moderatorsdescription', 'interaction.forum'), 'defaultvalue' => isset($moderators) ? $moderators : null, 'group' => $group->id, 'includeadmins' => false, 'filter' => false, 'lefttitle' => get_string('potentialmoderators', 'interaction.forum'), 'righttitle' => get_string('currentmoderators', 'interaction.forum'))))); }
function fn_get_seo_redirects($params = array(), $items_per_page = 0, $lang_code = DESCR_SL) { // Init filter $params = LastView::instance()->update('seo_redirects', $params); // Set default values to input params $default_params = array('page' => 1, 'items_per_page' => $items_per_page); $params = array_merge($default_params, $params); $condition = ''; if (isset($params['src']) && fn_string_not_empty($params['src'])) { $condition .= db_quote(" AND src LIKE ?l", "%" . trim($params['src']) . "%"); } if (!empty($params['type'])) { $condition .= db_quote(" AND type = ?s", $params['type']); } if (!empty($params['lang_code'])) { $condition .= db_quote(" AND lang_code = ?s", $params['lang_code']); } $condition .= fn_get_seo_company_condition('?:seo_redirects.company_id'); $limit = ''; if (!empty($params['items_per_page'])) { $params['total_items'] = db_get_field("SELECT COUNT(*) FROM ?:seo_redirects WHERE 1 ?p", $condition); $limit = db_paginate($params['page'], $params['items_per_page']); } $seo_redirects = db_get_hash_array("SELECT * FROM ?:seo_redirects WHERE 1 ?p ORDER BY src {$limit}", 'redirect_id', $condition); if (!empty($seo_redirects)) { foreach ($seo_redirects as $key => $seo_redirect) { $seo_redirects[$key]['parsed_url'] = fn_generate_seo_url_from_schema($seo_redirect); } } return array($seo_redirects, $params); }
static function new_image($image) { global $_zp_exifvars; $entry_locale = getUserLocale(); $languages = generateLanguageList(); $languageTags = $element = array(); $candidates = self::getTaggingItems(); foreach ($candidates as $key) { if ($meta = $image->get($key)) { setupCurrentLocale('en_US'); $en_us = $element[] = exifTranslate($meta); foreach ($languages as $language) { setupCurrentLocale($language); $xlated = exifTranslate($meta); if ($xlated != $en_us) { // the string has a translation in this language $element[] = $xlated; $languageTags[$language] = $xlated; } } } } setupCurrentLocale($entry_locale); $element = array_unique(array_merge($image->getTags(), $element)); $image->setTags($element); $image->save(); foreach ($languageTags as $language => $tag) { $sql = 'UPDATE ' . prefix('tags') . ' SET `language`=' . db_quote($language) . ' WHERE `name`=' . db_quote($tag) . ' AND `language`=NULL OR `language` LIKE ""'; query($sql, false); } return $image; }
public static function instance_config_form($group, $instance = null) { if (isset($instance)) { $instanceconfig = get_records_assoc('interaction_forum_instance_config', 'forum', $instance->get('id'), '', 'field,value'); $autosubscribe = isset($instanceconfig['autosubscribe']) ? $instanceconfig['autosubscribe']->value : false; $weight = isset($instanceconfig['weight']) ? $instanceconfig['weight']->value : null; $createtopicusers = isset($instanceconfig['createtopicusers']) ? $instanceconfig['createtopicusers']->value : null; $closetopics = !empty($instanceconfig['closetopics']); $indentmode = isset($instanceconfig['indentmode']) ? $instanceconfig['indentmode']->value : null; $maxindent = isset($instanceconfig['maxindent']) ? $instanceconfig['maxindent']->value : null; $moderators = get_forum_moderators($instance->get('id')); } if ($instance === null) { $exclude = ''; } else { $exclude = 'AND i.id != ' . db_quote($instance->get('id')); } $existing = get_records_sql_array(' SELECT i.id, i.title, c.value AS weight FROM {interaction_instance} i INNER JOIN {interaction_forum_instance_config} c ON (i.id = c.forum AND c.field = \'weight\') WHERE i.group = ? AND i.deleted != 1 ' . $exclude . ' ORDER BY CHAR_LENGTH(c.value), c.value', array($group->id)); if ($existing) { foreach ($existing as &$item) { $item = (array) $item; } } else { $existing = array(); } return array('indentmode' => array('type' => 'select', 'title' => get_string('indentmode', 'interaction.forum'), 'options' => array('full_indent' => get_string('indentfullindent', 'interaction.forum'), 'max_indent' => get_string('indentmaxindent', 'interaction.forum'), 'no_indent' => get_string('indentflatindent', 'interaction.forum')), 'description' => get_string('indentmodedescription', 'interaction.forum'), 'defaultvalue' => isset($indentmode) ? $indentmode : 'full_indent', 'help' => true, 'rules' => array('required' => true)), 'maxindent' => array('type' => 'text', 'title' => get_string('maxindent', 'interaction.forum'), 'size' => 2, 'defaultvalue' => isset($maxindent) ? $maxindent : 10, 'class' => isset($indentmode) && $indentmode == 'max_indent' ? '' : 'hidden', 'rules' => array('integer' => true, 'minvalue' => 1, 'maxvalue' => 100)), 'fieldset' => array('type' => 'fieldset', 'collapsible' => true, 'collapsed' => true, 'legend' => get_string('forumsettings', 'interaction.forum'), 'elements' => array('autosubscribe' => array('type' => 'switchbox', 'title' => get_string('autosubscribeusers', 'interaction.forum'), 'description' => get_string('autosubscribeusersdescription', 'interaction.forum'), 'defaultvalue' => isset($autosubscribe) ? $autosubscribe : false, 'help' => true), 'weight' => array('type' => 'weight', 'title' => get_string('Order', 'interaction.forum'), 'description' => get_string('orderdescription', 'interaction.forum'), 'defaultvalue' => isset($weight) ? $weight : count($existing), 'rules' => array('required' => true), 'existing' => $existing, 'ignore' => count($existing) == 0), 'moderator' => array('type' => 'userlist', 'title' => get_string('Moderators', 'interaction.forum'), 'description' => get_string('moderatorsdescription', 'interaction.forum'), 'defaultvalue' => isset($moderators) ? $moderators : null, 'group' => $group->id, 'includeadmins' => false, 'lefttitle' => get_string('potentialmoderators', 'interaction.forum'), 'righttitle' => get_string('currentmoderators', 'interaction.forum')), 'createtopicusers' => array('type' => 'select', 'title' => get_string('whocancreatetopics', 'interaction.forum'), 'options' => array('members' => get_string('allgroupmembers', 'group'), 'moderators' => get_string('moderatorsandgroupadminsonly', 'interaction.forum')), 'description' => get_string('createtopicusersdescription', 'interaction.forum'), 'defaultvalue' => isset($createtopicusers) && $createtopicusers == 'moderators' ? 'moderators' : 'members', 'rules' => array('required' => true)), 'closetopics' => array('type' => 'switchbox', 'title' => get_string('closetopics', 'interaction.forum'), 'description' => get_string('closetopicsdescription1', 'interaction.forum'), 'defaultvalue' => !empty($closetopics))))); }
function fn_required_products_get_products($params, $fields, $sortings, $condition, $join, $sorting, $group_by) { if (!empty($params['for_required_product'])) { $join .= " LEFT JOIN ?:product_required_products ON products.product_id = ?:product_required_products.required_id"; $condition .= db_quote(" AND ?:product_required_products.product_id = ?i", $params['for_required_product']); } }
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); }
function user_create($username, $email, $sms, $carrier, $password, $confirm_password) { # A bit of error checking $len = strlen($username); if ('' == $username || 4 > $len || 40 < $len) { return 1; } if ($password != $confirm_password) { return 2; } $len = strlen($password); if (4 > $len || 40 < $len) { return 3; } # Only digits in the phone number $sms = preg_replace('/[^0-9]/', '', $sms); # Insert the user global $_user_id; $hash = sha1($GLOBALS['SALT'] . $username . time()); if ($_user_id = db_query("INSERT INTO users (username, email, sms,\n\t\tpassword, hash, created) VALUES ('" . db_quote($username) . "', '" . db_quote($email) . "', '" . db_quote("{$sms}{$carrier}") . "', SHA1('" . db_quote($GLOBALS['SALT'] . $password) . "'), '{$hash}', NOW());")) { # Send email confirmation mail($email, "Where's my car? - Email confirmation", "Click the link below to confirm your email address and start " . "receiving email reminders to move your car.\n" . "http://car.rcrowley.org/confirm/email/" . sha1($GLOBALS['SALT'] . $email), "From: Where's my car? <*****@*****.**>\r\n"); # Send SMS confirmation mail("{$sms}{$carrier}", '', 'Enter the confirmation code ' . substr(sha1($GLOBALS['SALT'] . "{$sms}{$carrier}"), 0, 6) . ' at car.rcrowley.org', "From: Where's my car?\r\n"); # Login setcookie('car', serialize(array('user_id' => $_user_id, 'hash' => $hash)), strtotime('+1 year'), '/', 'car.rcrowley.org'); return 0; } # Key error when INSERTing return 4; }
function fn_get_banners($params = array(), $lang_code = CART_LANGUAGE) { $default_params = array('items_per_page' => 0); $params = array_merge($default_params, $params); $sortings = array('position' => '?:banners.position', 'timestamp' => '?:banners.timestamp', 'name' => '?:banner_descriptions.banner'); $condition = $limit = ''; if (!empty($params['limit'])) { $limit = db_quote(' LIMIT 0, ?i', $params['limit']); } $sorting = db_sort($params, $sortings, 'name', 'asc'); $condition = AREA == 'A' ? '' : " AND ?:banners.status = 'A' "; $condition .= fn_get_localizations_condition('?:banners.localization'); $condition .= AREA == 'A' ? '' : " AND (?:banners.type != 'G' OR ?:banner_images.banner_image_id IS NOT NULL) "; 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']); } fn_set_hook('get_banners', $params, $condition, $sorting, $limit, $lang_code); $fields = array('?:banners.banner_id', '?:banners.type', '?:banners.target', '?:banners.status', '?:banners.position', '?:banner_descriptions.banner', '?:banner_descriptions.description', '?:banner_descriptions.url', '?:banner_images.banner_image_id'); if (fn_allowed_for('ULTIMATE')) { $fields[] = '?:banners.company_id'; } $banners = db_get_array("SELECT ?p FROM ?:banners " . "LEFT JOIN ?:banner_descriptions ON ?:banner_descriptions.banner_id = ?:banners.banner_id AND ?:banner_descriptions.lang_code = ?s" . "LEFT JOIN ?:banner_images ON ?:banner_images.banner_id = ?:banners.banner_id AND ?:banner_images.lang_code = ?s" . "WHERE 1 ?p ?p ?p", implode(", ", $fields), $lang_code, $lang_code, $condition, $sorting, $limit); foreach ($banners as $k => $v) { $banners[$k]['main_pair'] = fn_get_image_pairs($v['banner_image_id'], 'promo', 'M', true, false, $lang_code); } fn_set_hook('get_banners_post', $banners, $params); return array($banners, $params); }
function fn_hot_deals_block_get_products($params, $fields, $sortings, $condition, $join, $sorting, $group_by) { if (!empty($params['hot_deals'])) { $fields[] = '?:category_descriptions.category'; $join .= db_quote(" LEFT JOIN ?:category_descriptions ON ?:category_descriptions.category_id=products_categories.category_id AND products_categories.link_type = 'M' AND ?:category_descriptions.lang_code = ?s", CART_LANGUAGE); $condition .= " AND products_categories.link_type = 'M'"; } }
function location_set_address($address, $user_id = false) { if (!$user_id) { $user_id = user_id(); } $result = db_query("UPDATE users SET address = '" . db_quote($address) . "', impossible = '0', sweep_ts = NULL, inaccurate = '0',\n\t\tsent_email = '0', sent_sms = '0' WHERE id = '" . (int) $user_id . "' LIMIT 1;"); return $result; }
function fn_is_email_exists($email) { $condition = db_quote(" (?p ) ", db_quote('email = ?s', $email)); //$condition .= db_quote(" AND user_id != ?i", $user_id); // fn_set_hook('user_exist', $user_id, $user_data, $condition); $is_exist = db_get_field("SELECT user_id FROM ?:users WHERE {$condition}"); //var_dump($is_exist); die(); return $is_exist; }
function fn_import_feature_variant($data, $options, &$processed_data, &$skip_record) { static $features; $skip_record = true; $variant = reset($data); if (empty($variant['Feature name'])) { return false; } $langs = array_keys($data); $main_lang = reset($langs); array_walk($variant, 'fn_trim_helper'); if (!empty($variant['Feature group'])) { $feature_group = fn_exim_get_feature_data_by_name($variant['Feature group'], ''); $variant['parent_id'] = $feature_group['feature_id']; } else { $variant['Feature group'] = ''; $variant['parent_id'] = 0; } $feature = fn_exim_get_feature_data_by_name($variant['Feature name'], $variant['Feature group']); if (empty($feature)) { $processed_data['S']++; return false; } $feature_id = $feature['feature_id']; $company_id = $feature['company_id']; if (Registry::get('runtime.company_id') && Registry::get('runtime.company_id') != $company_id) { $processed_data['S']++; return false; } if (!isset($features)) { list($features) = fn_get_product_features(array('plain' => true), 0, $main_lang); } if (!empty($feature_id)) { if (isset($variant['variant_id'])) { $variant_id = db_get_field('SELECT variant_id FROM ?:product_feature_variants WHERE variant_id = ?i', $variant['variant_id']); } if (empty($variant_id)) { $join = db_quote('INNER JOIN ?:product_feature_variants fv ON fv.variant_id = fvd.variant_id'); $variant_id = db_get_field("SELECT fvd.variant_id FROM ?:product_feature_variant_descriptions AS fvd {$join} WHERE variant = ?s AND feature_id = ?i", $variant['variant'], $feature_id); } $new_variant_id = fn_update_product_feature_variant($feature_id, $features[$feature_id]['feature_type'], $variant, $main_lang); if ($variant_id == $new_variant_id) { $processed_data['E']++; } else { $processed_data['N']++; $variant_id = $new_variant_id; } foreach ($data as $lang_code => $variant) { fn_update_product_feature_variant($feature_id, $features[$feature_id]['feature_type'], $variant, $lang_code); } if (!empty($variant['image_id'])) { fn_import_images($options['images_path'], $variant['image_id'], '', 0, 'V', $variant_id, 'feature_variant'); } } return $variant_id; }
public function getExtraCondition($params) { $condition = []; $table_name = $this->getTableName(); $company_id = 0; if (fn_allowed_for('ULTIMATE') && ($company_id = Registry::get('runtime.company_id'))) { $condition[] = db_quote("{$table_name}.company_id = ?i", $company_id); } return $condition; }
function fn_customers_also_bought_get_products(&$params, &$fields, &$sortings, &$condition, &$join, &$sorting, &$group_by) { if (!empty($params['also_bought_for_product_id'])) { $fields[] = 'SUM(?:also_bought_products.amount) amnt'; $join .= ' LEFT JOIN ?:also_bought_products ON ?:also_bought_products.related_id = products.product_id '; $condition .= db_quote(' AND ?:also_bought_products.product_id = ?i', $params['also_bought_for_product_id']); $group_by = '?:also_bought_products.related_id'; } return true; }
function fn_get_postcode_location($postcode_location_id, $lang_code = CART_LANGUAGE) { $fields = array('?:postcode_locations.*', '?:postcode_location_descriptions.*', '?:country_descriptions.country as country_title'); $join = db_quote(" LEFT JOIN ?:postcode_location_descriptions ON ?:postcode_locations.postcode_location_id = ?:postcode_location_descriptions.postcode_location_id AND ?:postcode_location_descriptions.lang_code = ?s", $lang_code); $join .= db_quote(" LEFT JOIN ?:country_descriptions ON ?:postcode_locations.country = ?:country_descriptions.code AND ?:country_descriptions.lang_code = ?s", $lang_code); $condition = db_quote(" ?:postcode_locations.postcode_location_id = ?i ", $postcode_location_id); $condition .= AREA == 'C' && defined('CART_LOCALIZATION') ? fn_get_localizations_condition('?:postcode_locations.localization') : ''; $postcode_location = db_get_row('SELECT ?p FROM ?:postcode_locations ?p WHERE ?p', implode(', ', $fields), $join, $condition); return $postcode_location; }
/** * * Logs User searches * @param array $search_statistics the search criteria * @param string $type 'album', 'image', etc. * @param bool $success did the search return a result * @param bool $dynamic was it from a dynamic album * @param int $iteration count of the filters since the search engine instantiation */ static function handler($search_statistics, $type, $success, $dynamic, $iteration) { if (!$dynamic) { // log unique user searches $store = array('type' => $type, 'success' => $success, 'iteration' => $iteration, 'data' => $search_statistics); $sql = 'INSERT INTO ' . prefix('plugin_storage') . ' (`type`, `aux`,`data`) VALUES ("search_statistics", ' . db_quote(getUserIP()) . ',' . db_quote(serialize($store)) . ')'; query($sql); } return $search_statistics; }
function create_new_hybridauth_user($email, $first_name, $last_name, $provider_name, $provider_user_id) { // let generate a random password for the user $password = md5(str_shuffle("0123456789abcdefghijklmnoABCDEFGHIJ")); $email = db_quote($email); $first_name = db_quote($first_name); $last_name = db_quote($last_name); $provider_name = db_quote($provider_name); $provider_user_id = db_quote($provider_user_id); db_query("INSERT INTO users\n\t\t(\n\t\t\temail,\n\t\t\tpassword,\n\t\t\tfirst_name,\n\t\t\tlast_name,\n\t\t\thybridauth_provider_name,\n\t\t\thybridauth_provider_uid,\n\t\t\tcreated_at\n\t\t)\n\t\tVALUES\n\t\t(\n\t\t\t{$email},\n\t\t\t'{$password}',\n\t\t\t{$first_name},\n\t\t\t{$last_name},\n\t\t\t{$provider_name},\n\t\t\t{$provider_user_id},\n\t\t\tNOW()\n\t\t)"); }
/** * Gets layouts list * * @param $array input params * @return array layouts list */ public function getList($params = array()) { $condition = ''; if (fn_allowed_for('ULTIMATE')) { $condition = $this->getCompanyCondition('?:bm_layouts.company_id'); } if (!empty($params['theme_name'])) { $condition .= db_quote(" AND theme_name = ?s", $params['theme_name']); } return db_get_hash_array("SELECT * FROM ?:bm_layouts WHERE 1 ?p", 'layout_id', $condition); }
function fn_get_logs($params, $items_per_page = null) { // Init filter $params = fn_init_view('logs', $params); if ($items_per_page === null) { $items_per_page = Registry::get('settings.Appearance.admin_elements_per_page'); } $sortings = array('timestamp' => '?:logs.timestamp', 'user' => array('?:users.lastname', '?:users.firstname')); $directions = array('asc' => 'asc', 'desc' => 'desc'); $fields = array('?:logs.*', '?:users.firstname', '?:users.lastname'); 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'] = 'timestamp'; $params['sort_order'] = 'desc'; } $params['page'] = empty($params['page']) ? 1 : $params['page']; if (is_array($sortings[$params['sort_by']])) { $sorting = join(' ' . $directions[$params['sort_order']] . ', ', $sortings[$params['sort_by']]) . ' ' . $directions[$params['sort_order']]; } else { $sorting = $sortings[$params['sort_by']] . ' ' . $directions[$params['sort_order']]; } $join = "LEFT JOIN ?:users USING(user_id)"; $condition = ''; if (!empty($params['period']) && $params['period'] != 'A') { list($time_from, $time_to) = fn_create_periods($params); $condition .= db_quote(" AND (?:logs.timestamp >= ?i AND ?:logs.timestamp <= ?i)", $time_from, $time_to); } if (isset($params['q_user']) && fn_string_no_empty($params['q_user'])) { $condition .= db_quote(" AND (?:users.lastname LIKE ?l OR ?:users.firstname LIKE ?l)", "%" . trim($params['q_user']) . "%", "%" . trim($params['q_user']) . "%"); } if (!empty($params['q_type'])) { $condition .= db_quote(" AND (?:logs.type LIKE ?l OR ?:logs.type LIKE ?l)", "%{$params['q_type']}%", "%{$params['q_type']}%"); } if (!empty($params['q_action'])) { $condition .= db_quote(" AND (?:logs.action LIKE ?l OR ?:logs.action LIKE ?l)", "%{$params['q_action']}%", "%{$params['q_action']}%"); } $limit = ''; $total = 0; if (!empty($items_per_page)) { $total = db_get_field("SELECT COUNT(DISTINCT(?:logs.log_id)) FROM ?:logs ?p WHERE 1 ?p", $join, $condition); $limit = fn_paginate($params['page'], $total, $items_per_page); } $data = db_get_array("SELECT " . join(', ', $fields) . " FROM ?:logs ?p WHERE 1 ?p ORDER BY {$sorting} {$limit}", $join, $condition); if (!$total) { $total = count($data); } foreach ($data as $k => $v) { $data[$k]['backtrace'] = !empty($v['backtrace']) ? unserialize($v['backtrace']) : array(); $data[$k]['content'] = !empty($v['content']) ? unserialize($v['content']) : array(); } return array($data, $params, $total); }
function fn_1clue_related_products_extended_get_products(&$params, &$fields, &$sortings, &$condition, &$join, &$sorting, &$group_by) { if (!empty($params['related'])) { if ($params['random'] == 'Y') { $fields[] = 'RAND() as related'; $sortings['related'] = 'related'; } $join .= " LEFT JOIN ?:addon_related_products ON products.product_id = ?:addon_related_products.slave_id"; $condition .= db_quote(" AND ?:addon_related_products.master_id = ?i", $params['related']); } return true; }
function fn_get_store_location($store_location_id, $lang_code = CART_LANGUAGE) { $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 = db_quote(" ?:store_locations.store_location_id = ?i ", $store_location_id); $condition .= AREA == 'C' && defined('CART_LOCALIZATION') ? fn_get_localizations_condition('?:store_locations.localization') : ''; $store_location = db_get_row('SELECT ?p FROM ?:store_locations ?p WHERE ?p', implode(', ', $fields), $join, $condition); $store_location["image_pairs"] = fn_get_image_pairs($store_location_id, 'store_locations', 'M', true, true, $lang_code); $store_location["additional_image_pairs"] = fn_get_image_pairs($store_location_id, 'store_locations', 'A', true, true, $lang_code); return $store_location; }
function fn_rus_exim_1c_get_orders($params, $fields, $sortings, &$condition, $join, $group) { $number_for_orders = trim(Registry::get('addons.rus_exim_1c.exim_1c_from_order_id')); if (isset($params['place'])) { if (!empty($number_for_orders)) { $order_id = Registry::get('addons.rus_exim_1c.exim_1c_from_order_id'); if (!empty($order_id)) { $condition .= db_quote(" AND ?:orders.order_id >= ?i", $order_id); } } } }
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); }
public function get($name, $cache_level = NULL) { $fname = $name . '.' . $cache_level; $expiry_condition = $cache_level == Registry::cacheLevel('time') ? db_quote(" AND expiry > ?i", TIME) : ''; $res = $this->_dbFetch("SELECT data, expiry FROM cache WHERE name = '{$fname}' AND company_id = " . $this->_company_id . $expiry_condition); if (!empty($name) && !empty($res)) { $_cache_data = !empty($res['data']) ? @unserialize($res['data']) : false; if ($_cache_data !== false) { return array($_cache_data); } // clean up the cache $this->db->query("DELETE FROM cache WHERE name = '{$fname}' AND company_id = " . $this->_company_id); } return false; }
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); } }
function fn_age_verification_get_categories(&$params, &$join, &$condition, &$fields, &$group_by, &$sortings) { $fields[] = '?:categories.age_verification'; $fields[] = '?:categories.age_limit'; $fields[] = '?:category_descriptions.age_warning_message'; if (AREA == 'C') { if (!empty(Tygh::$app['session']['auth']['age'])) { if (Tygh::$app['session']['auth']['age'] == -1) { $condition .= " AND ?:categories.age_verification = 'N'"; } else { $condition .= db_quote(" AND (?:categories.age_verification = 'N' OR (?:categories.age_verification = 'Y' AND ?:categories.age_limit <= ?i))", Tygh::$app['session']['auth']['age']); } } } return true; }
function db_total_size() { global $db; if (!is_a($db, 'ADOConnection')) { throw new SQLException('Database connection is not available '); } $dbname = db_quote(get_config('dbname')); if (is_mysql()) { $result = $db->Execute("\n SELECT SUM( data_length + index_length ) AS dbsize\n FROM information_schema.tables\n WHERE table_schema = {$dbname}\n "); return $result->fields['dbsize']; } if (is_postgres()) { $result = $db->Execute("SELECT * FROM pg_database_size({$dbname})"); return $result->fields['pg_database_size']; } return false; }
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); }