Пример #1
1
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}");
 }
Пример #3
0
 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')))));
 }
Пример #4
0
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);
}
Пример #5
0
 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;
 }
Пример #6
0
 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)))));
 }
Пример #7
0
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']);
    }
}
Пример #8
0
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);
}
Пример #9
0
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;
}
Пример #10
0
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);
}
Пример #11
0
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'";
    }
}
Пример #12
0
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;
}
Пример #13
0
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;
}
Пример #15
0
 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;
 }
Пример #16
0
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;
}
Пример #17
0
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;
}
Пример #18
0
 /**
  *
  * 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)");
}
Пример #20
0
 /**
  * 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);
 }
Пример #21
0
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);
}
Пример #22
0
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;
}
Пример #23
0
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;
}
Пример #24
0
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);
            }
        }
    }
}
Пример #25
0
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);
}
Пример #26
0
 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;
 }
Пример #27
0
 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);
     }
 }
Пример #28
0
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;
}
Пример #29
0
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;
}
Пример #30
-1
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);
}