Пример #1
0
function fn_seo_settings_update($type, $option, $new_value, $redirect_only)
{
    $old_value = Registry::get('addons.seo.' . $option);
    fn_iterate_through_seo_names(function ($seo_name) use($option, $old_value, $new_value, $redirect_only) {
        // We shouldn't consider null value
        if (false === fn_check_seo_object_exists($seo_name['object_id'], $seo_name['type'], $seo_name['company_id'])) {
            fn_delete_seo_name($seo_name['object_id'], $seo_name['type'], '', $seo_name['company_id']);
            return;
        }
        Registry::set('addons.seo.' . $option, $old_value);
        $url = fn_generate_seo_url_from_schema(array('type' => $seo_name['type'], 'object_id' => $seo_name['object_id'], 'lang_code' => $seo_name['lang_code']), false);
        fn_seo_update_redirect(array('src' => $url, 'type' => $seo_name['type'], 'object_id' => $seo_name['object_id'], 'company_id' => $seo_name['company_id'], 'lang_code' => $seo_name['lang_code']), 0, false);
        if (!$redirect_only) {
            Registry::set('addons.seo.' . $option, $new_value);
            fn_create_seo_name($seo_name['object_id'], $seo_name['type'], $seo_name['name'], 0, '', $seo_name['company_id'], $seo_name['lang_code'], true);
        }
    }, db_quote("type = ?s ?p", $type, fn_get_seo_company_condition('?:seo_names.company_id', $type)));
}
Пример #2
0
                if (!empty($v['name'])) {
                    fn_create_seo_name(0, 's', $v['name'], 0, $v['rule_params'], '', fn_get_corrected_seo_lang_code(DESCR_SL));
                }
            }
        }
    }
    if ($mode == 'm_delete') {
        if (!empty($_REQUEST['dispatches'])) {
            foreach ($_REQUEST['dispatches'] as $v) {
                fn_delete_seo_name(0, 's', $v);
            }
        }
    }
    if ($mode == 'delete') {
        if (!empty($_REQUEST['rule_params'])) {
            fn_delete_seo_name(0, 's', $_REQUEST['rule_params']);
        }
    }
    return array(CONTROLLER_STATUS_OK, "seo_rules.manage");
}
if ($mode == 'manage') {
    list($seo_data, $search) = fn_get_seo_rules($_REQUEST, Registry::get('settings.Appearance.admin_elements_per_page'));
    Tygh::$app['view']->assign('seo_data', $seo_data);
    Tygh::$app['view']->assign('search', $search);
}
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);
Пример #3
0
function fn_seo_check_and_update_product_sharing(&$product_id, &$shared, &$shared_categories_company_ids, &$new_categories_company_ids)
{
    $deleted_company_ids = array_diff($shared_categories_company_ids, $new_categories_company_ids);
    if (!empty($deleted_company_ids)) {
        foreach ($deleted_company_ids as $c_id) {
            fn_delete_seo_name($product_id, 'p', '', $c_id);
            db_query("DELETE FROM ?:seo_redirects WHERE object_id = ?i AND type = 'p' AND company_id = ?i", $product_id, $c_id);
        }
    }
}
Пример #4
0
function fn_seo_delete_news(&$news_id)
{
    return fn_delete_seo_name($news_id, 'n');
}
Пример #5
0
    if ($mode == 'delete_rules') {
        if (!empty($_REQUEST['controllers'])) {
            foreach ($_REQUEST['controllers'] as $v) {
                fn_delete_seo_name(0, 's', $v);
            }
        }
    }
    return array(CONTROLLER_STATUS_OK, "seo_rules.manage");
}
if ($mode == 'manage') {
    list($seo_data, $search) = fn_get_seo_rules($_REQUEST, Registry::get('settings.Appearance.admin_elements_per_page'));
    $view->assign('seo_data', $seo_data);
    $view->assign('search', $search);
} elseif ($mode == 'delete_rule') {
    if (!empty($_REQUEST['controller'])) {
        fn_delete_seo_name(0, 's', $_REQUEST['controller']);
    }
    return array(CONTROLLER_STATUS_OK, "seo_rules.manage");
}
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);
Пример #6
0
    if ($mode == 'm_delete') {
        if (!empty($_REQUEST['dispatches'])) {
            foreach ($_REQUEST['dispatches'] as $v) {
                fn_delete_seo_name(0, 's', $v);
            }
        }
    }
    return array(CONTROLLER_STATUS_OK, "seo_rules.manage");
}
if ($mode == 'manage') {
    list($seo_data, $search) = fn_get_seo_rules($_REQUEST, Registry::get('settings.Appearance.admin_elements_per_page'));
    Registry::get('view')->assign('seo_data', $seo_data);
    Registry::get('view')->assign('search', $search);
} elseif ($mode == 'delete') {
    if (!empty($_REQUEST['rule_dispatch'])) {
        fn_delete_seo_name(0, 's', $_REQUEST['rule_dispatch']);
    }
    return array(CONTROLLER_STATUS_OK, "seo_rules.manage");
}
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