Вход Регистрация
Файл: oc-admin/controller/settings/permalinks.php
Строк: 446
<?php if ( ! defined('ABS_PATH')) exit('ABS_PATH is not loaded. Direct access is not allowed.');

/*
 * Copyright 2014 Osclass
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

    
class CAdminSettingsPermalinks extends AdminSecBaseModel
    
{
        function 
__construct()
        {
            
parent::__construct();
        }

        
//Business Layer...
        
function doModel()
        {
            switch(
$this->action) {
                case(
'permalinks'):
                    
// calling the permalinks view
                    
$htaccess Params::getParam('htaccess_status');
                    
$file     Params::getParam('file_status');

                    
$this->_exportVariableToView('htaccess'$htaccess);
                    
$this->_exportVariableToView('file'$file);

                    
$this->doView('settings/permalinks.php');
                break;
                case(
'permalinks_post'):
                    
// updating permalinks option
                    
osc_csrf_check();
                    
$htaccess_file  osc_base_path() . '.htaccess';
                    
$rewriteEnabled = (Params::getParam('rewrite_enabled') ? true false);

                    
$rewrite_base REL_WEB_URL;
                    
$htaccess     = <<<HTACCESS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase 
{$rewrite_base}
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . 
{$rewrite_base}index.php [L]
</IfModule>
HTACCESS;

                    if( 
$rewriteEnabled ) {
                        
osc_set_preference('rewriteEnabled''1');;

                        
// 1. OK (ok)
                        // 2. OK no apache module detected (warning)
                        // 3. No se puede crear + apache
                        // 4. No se puede crear + no apache
                        // 5. .htaccess exists, no overwrite
                        
$status 3;
                        if( 
file_exists($htaccess_file) ) {
                            
$status 5;
                        } else {
                            if( 
is_writable(osc_base_path()) && file_put_contents($htaccess_file$htaccess) ) {
                                
$status 1;
                            }
                        }

                        if( !@
apache_mod_loaded('mod_rewrite') ) {
                            
$status++;
                        }

                        
$errors 0;
                        
$item_url substr(str_replace('//''/'Params::getParam('rewrite_item_url').'/'), 0, -1);
                        if(!
osc_validate_text($item_url)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_item_url'$item_url);;
                        }
                        
$page_url substr(str_replace('//''/'Params::getParam('rewrite_page_url').'/'), 0, -1);
                        if(!
osc_validate_text($page_url)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_page_url'$page_url);;
                        }
                        
$cat_url substr(str_replace('//''/'Params::getParam('rewrite_cat_url').'/'), 0, -1);
                        
// DEPRECATED: backward compatibility, remove in 3.4
                        
$cat_url str_replace('{CATEGORY_SLUG}''{CATEGORY_NAME}'$cat_url);
                        if(!
osc_validate_text($cat_url)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_cat_url'$cat_url);;
                        }
                        
$search_url substr(str_replace('//''/'Params::getParam('rewrite_search_url').'/'), 0, -1);
                        if(!
osc_validate_text($search_url)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_search_url'$search_url);;
                        }

                        if(!
osc_validate_text(Params::getParam('rewrite_search_country'))) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_search_country'Params::getParam('rewrite_search_country'));;
                        }
                        if(!
osc_validate_text(Params::getParam('rewrite_search_region'))) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_search_region'Params::getParam('rewrite_search_region'));;
                        }
                        if(!
osc_validate_text(Params::getParam('rewrite_search_city'))) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_search_city'Params::getParam('rewrite_search_city'));;
                        }
                        if(!
osc_validate_text(Params::getParam('rewrite_search_city_area'))) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_search_city_area'Params::getParam('rewrite_search_city_area'));;
                        }
                        if(!
osc_validate_text(Params::getParam('rewrite_search_category'))) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_search_category'Params::getParam('rewrite_search_category'));;
                        }
                        if(!
osc_validate_text(Params::getParam('rewrite_search_user'))) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_search_user'Params::getParam('rewrite_search_user'));;
                        }
                        if(!
osc_validate_text(Params::getParam('rewrite_search_pattern'))) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_search_pattern'Params::getParam('rewrite_search_pattern'));;
                        }

                        
$rewrite_contact substr(str_replace('//''/'Params::getParam('rewrite_contact').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_contact)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_contact'$rewrite_contact);;
                        }
                        
$rewrite_feed substr(str_replace('//''/'Params::getParam('rewrite_feed').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_feed)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_feed'$rewrite_feed);;
                        }
                        
$rewrite_language substr(str_replace('//''/'Params::getParam('rewrite_language').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_language)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_language'$rewrite_language);;
                        }
                        
$rewrite_item_mark substr(str_replace('//''/'Params::getParam('rewrite_item_mark').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_item_mark)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_item_mark'$rewrite_item_mark);;
                        }
                        
$rewrite_item_send_friend substr(str_replace('//''/'Params::getParam('rewrite_item_send_friend').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_item_send_friend)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_item_send_friend'$rewrite_item_send_friend);;
                        }
                        
$rewrite_item_contact substr(str_replace('//''/'Params::getParam('rewrite_item_contact').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_item_contact)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_item_contact'$rewrite_item_contact);;
                        }
                        
$rewrite_item_new substr(str_replace('//''/'Params::getParam('rewrite_item_new').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_item_new)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_item_new'$rewrite_item_new);;
                        }
                        
$rewrite_item_activate substr(str_replace('//''/'Params::getParam('rewrite_item_activate').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_item_activate)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_item_activate'$rewrite_item_activate);;
                        }
                        
$rewrite_item_edit substr(str_replace('//''/'Params::getParam('rewrite_item_edit').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_item_edit)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_item_edit'$rewrite_item_edit);;
                        }
                        
$rewrite_item_delete substr(str_replace('//''/'Params::getParam('rewrite_item_delete').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_item_delete)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_item_delete'$rewrite_item_delete);;
                        }
                        
$rewrite_item_resource_delete substr(str_replace('//''/'Params::getParam('rewrite_item_resource_delete').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_item_resource_delete)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_item_resource_delete'$rewrite_item_resource_delete);;
                        }
                        
$rewrite_user_login substr(str_replace('//''/'Params::getParam('rewrite_user_login').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_user_login)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_user_login'$rewrite_user_login);;
                        }
                        
$rewrite_user_dashboard substr(str_replace('//''/'Params::getParam('rewrite_user_dashboard').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_user_dashboard)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_user_dashboard'$rewrite_user_dashboard);;
                        }
                        
$rewrite_user_logout substr(str_replace('//''/'Params::getParam('rewrite_user_logout').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_user_logout)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_user_logout'$rewrite_user_logout);;
                        }
                        
$rewrite_user_register substr(str_replace('//''/'Params::getParam('rewrite_user_register').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_user_register)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_user_register'$rewrite_user_register);;
                        }
                        
$rewrite_user_activate substr(str_replace('//''/'Params::getParam('rewrite_user_activate').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_user_activate)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_user_activate'$rewrite_user_activate);;
                        }
                        
$rewrite_user_activate_alert substr(str_replace('//''/'Params::getParam('rewrite_user_activate_alert').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_user_activate_alert)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_user_activate_alert'$rewrite_user_activate_alert);;
                        }
                        
$rewrite_user_profile substr(str_replace('//''/'Params::getParam('rewrite_user_profile').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_user_profile)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_user_profile'$rewrite_user_profile);;
                        }
                        
$rewrite_user_items substr(str_replace('//''/'Params::getParam('rewrite_user_items').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_user_items)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_user_items'$rewrite_user_items);;
                        }
                        
$rewrite_user_alerts substr(str_replace('//''/'Params::getParam('rewrite_user_alerts').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_user_alerts)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_user_alerts'$rewrite_user_alerts);;
                        }
                        
$rewrite_user_recover substr(str_replace('//''/'Params::getParam('rewrite_user_recover').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_user_recover)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_user_recover'$rewrite_user_recover);;
                        }
                        
$rewrite_user_forgot substr(str_replace('//''/'Params::getParam('rewrite_user_forgot').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_user_forgot)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_user_forgot'$rewrite_user_forgot);;
                        }
                        
$rewrite_user_change_password substr(str_replace('//''/'Params::getParam('rewrite_user_change_password').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_user_change_password)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_user_change_password'$rewrite_user_change_password);;
                        }
                        
$rewrite_user_change_email substr(str_replace('//''/'Params::getParam('rewrite_user_change_email').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_user_change_email)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_user_change_email'$rewrite_user_change_email);;
                        }
                        
$rewrite_user_change_username substr(str_replace('//''/'Params::getParam('rewrite_user_change_username').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_user_change_username)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_user_change_username'$rewrite_user_change_username);
                        }
                        
$rewrite_user_change_email_confirm substr(str_replace('//''/'Params::getParam('rewrite_user_change_email_confirm').'/'), 0, -1);
                        if(!
osc_validate_text($rewrite_user_change_email_confirm)) {
                            
$errors += 1;
                        } else {
                            
osc_set_preference('rewrite_user_change_email_confirm'$rewrite_user_change_email_confirm);
                        }

                        
osc_reset_preferences();

                        
$rewrite Rewrite::newInstance();
                        
osc_run_hook("before_rewrite_rules", array(&$rewrite));
                        
$rewrite->clearRules();

                        
/*****************************
                         ********* Add rules *********
                         *****************************/

                        // Contact rules
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_contact').'/?$''index.php?page=contact');

                        
// Feed rules
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_feed').'/?$''index.php?page=search&sFeed=rss');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_feed').'/(.+)/?$''index.php?page=search&sFeed=$1');

                        
// Language rules
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_language').'/(.*?)/?$''index.php?page=language&locale=$1');

                        
// Search rules
                        
$rewrite->addRule('^'.$search_url.'$''index.php?page=search');
                        
$rewrite->addRule('^'.$search_url.'/(.*)$''index.php?page=search&sParams=$1');

                        
// Item rules
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_item_mark').'/(.*?)/([0-9]+)/?$''index.php?page=item&action=mark&as=$1&id=$2');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_item_send_friend').'/([0-9]+)/?$''index.php?page=item&action=send_friend&id=$1');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_item_contact').'/([0-9]+)/?$''index.php?page=item&action=contact&id=$1');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_item_new').'/?$''index.php?page=item&action=item_add');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_item_new').'/([0-9]+)/?$''index.php?page=item&action=item_add&catId=$1');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_item_activate').'/([0-9]+)/(.*?)/?$''index.php?page=item&action=activate&id=$1&secret=$2');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_item_edit').'/([0-9]+)/(.*?)/?$''index.php?page=item&action=item_edit&id=$1&secret=$2');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_item_delete').'/([0-9]+)/(.*?)/?$''index.php?page=item&action=item_delete&id=$1&secret=$2');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_item_resource_delete').'/([0-9]+)/([0-9]+)/([0-9A-Za-z]+)/?(.*?)/?$''index.php?page=item&action=deleteResource&id=$1&item=$2&code=$3&secret=$4');

                        
// Item rules
                        
$id_pos stripos($item_url'{ITEM_ID}');
                        
$title_pos stripos($item_url'{ITEM_TITLE}');
                        
$cat_pos stripos($item_url'{CATEGORIES');
                        
$param_pos 1;
                        if(
$title_pos!==false && $id_pos>$title_pos) {
                            
$param_pos++;
                        }
                        if(
$cat_pos!==false && $id_pos>$cat_pos) {
                            
$param_pos++;
                        }
                        
$comments_pos 1;
                        if(
$id_pos!==false) { $comments_pos++; }
                        if(
$title_pos!==false) { $comments_pos++; }
                        if(
$cat_pos!==false) { $comments_pos++; }
                        
$rewrite->addRule('^([a-z]{2})_([A-Z]{2})/'str_replace('{ITEM_CITY}''.*'str_replace('{CATEGORIES}''.*'str_replace('{ITEM_TITLE}''.*'str_replace('{ITEM_ID}''([0-9]+)'$item_url.'?comments-page=([0-9al]*)')))).'$''index.php?page=item&id=$3&lang=$1_$2&comments-page=$4');
                        
$rewrite->addRule('^'str_replace('{ITEM_CITY}''.*'str_replace('{CATEGORIES}''.*'str_replace('{ITEM_TITLE}''.*'str_replace('{ITEM_ID}''([0-9]+)'$item_url.'?comments-page=([0-9al]*)')))).'$''index.php?page=item&id=$1&comments-page=$2');
                        
$rewrite->addRule('^([a-z]{2})_([A-Z]{2})/'str_replace('{ITEM_CITY}''.*'str_replace('{CATEGORIES}''.*'str_replace('{ITEM_TITLE}''.*'str_replace('{ITEM_ID}''([0-9]+)'$item_url)))).'$''index.php?page=item&id=$3&lang=$1_$2');
                        
$rewrite->addRule('^'str_replace('{ITEM_CITY}''.*'str_replace('{CATEGORIES}''.*'str_replace('{ITEM_TITLE}''.*'str_replace('{ITEM_ID}''([0-9]+)'$item_url)))).'$''index.php?page=item&id=$1');

                        
// User rules
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_login').'/?$''index.php?page=login');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_dashboard').'/?$''index.php?page=user&action=dashboard');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_logout').'/?$''index.php?page=main&action=logout');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_register').'/?$''index.php?page=register&action=register');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_activate').'/([0-9]+)/(.*?)/?$''index.php?page=register&action=validate&id=$1&code=$2');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_activate_alert').'/([0-9]+)/([a-zA-Z0-9]+)/(.+)$''index.php?page=user&action=activate_alert&id=$1&email=$3&secret=$2');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_profile').'/?$''index.php?page=user&action=profile');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_profile').'/([0-9]+)/?$''index.php?page=user&action=pub_profile&id=$1');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_profile').'/(.+)/?$''index.php?page=user&action=pub_profile&username=$1');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_items').'/?$''index.php?page=user&action=items');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_alerts').'/?$''index.php?page=user&action=alerts');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_recover').'/?$''index.php?page=login&action=recover');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_forgot').'/([0-9]+)/(.*)/?$''index.php?page=login&action=forgot&userId=$1&code=$2');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_change_password').'/?$''index.php?page=user&action=change_password');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_change_email').'/?$''index.php?page=user&action=change_email');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_change_username').'/?$''index.php?page=user&action=change_username');
                        
$rewrite->addRule('^'.osc_get_preference('rewrite_user_change_email_confirm').'/([0-9]+)/(.*?)/?$''index.php?page=user&action=change_email_confirm&userId=$1&code=$2');

                        
// Page rules
                        
$pos_pID   stripos($page_url'{PAGE_ID}');
                        
$pos_pSlug stripos($page_url'{PAGE_SLUG}');
                        
$pID_pos   1;
                        
$pSlug_pos 1;
                        if( 
is_numeric($pos_pID) && is_numeric($pos_pSlug) ) {
                            
// set the order of the parameters
                            
if($pos_pID $pos_pSlug) {
                                
$pID_pos++;
                            } else {
                                
$pSlug_pos++;
                            }

                            
$rewrite->addRule('^' str_replace('{PAGE_SLUG}''([p{L}p{N}_-,]+)'str_replace('{PAGE_ID}''([0-9]+)'$page_url)) . '/?$''index.php?page=page&id=$' $pID_pos "&slug=$" $pSlug_pos);
                            
$rewrite->addRule('^([a-z]{2})_([A-Z]{2})/' str_replace('{PAGE_SLUG}''([p{L}p{N}_-,]+)'str_replace('{PAGE_ID}''([0-9]+)'$page_url)) . '/?$''index.php?page=page&lang=$1_$2&id=$' . ($pID_pos 2) . '&slug=$' . ($pSlug_pos 2) );
                        } else if( 
is_numeric($pos_pID) ) {
                            
$rewrite->addRule('^' .  str_replace('{PAGE_ID}''([0-9]+)'$page_url) . '/?$''index.php?page=page&id=$1');
                            
$rewrite->addRule('^([a-z]{2})_([A-Z]{2})/' str_replace('{PAGE_ID}''([0-9]+)'$page_url) . '/?$''index.php?page=page&lang=$1_$2&id=$3' );
                        } else {
                            
$rewrite->addRule('^' str_replace('{PAGE_SLUG}''([p{L}p{N}_-,]+)'$page_url) . '/?$''index.php?page=page&slug=$1');
                            
$rewrite->addRule('^([a-z]{2})_([A-Z]{2})/' str_replace('{PAGE_SLUG}''([p{L}p{N}_-,]+)'$page_url) . '/?$''index.php?page=page&lang=$1_$2&slug=$3' );
                        }

                        
// Clean archive files
                        
$rewrite->addRule('^(.+?).php(.*)$''$1.php$2');

                        
// Category rules
                        
$id_pos stripos($item_url'{CATEGORY_ID}');
                        
$title_pos stripos($item_url'{CATEGORY_NAME}');
                        
$cat_pos stripos($item_url'{CATEGORIES');
                        
$param_pos 1;
                        if(
$title_pos!==false && $id_pos>$title_pos) {
                            
$param_pos++;
                        }
                        if(
$cat_pos!==false && $id_pos>$cat_pos) {
                            
$param_pos++;
                        }
                        
$rewrite->addRule('^'.str_replace('{CATEGORIES}''(.+)'str_replace('{CATEGORY_NAME}''([^/]+)'str_replace('{CATEGORY_ID}''([0-9]+)'$cat_url))).'/([0-9]+)$''index.php?page=search&sCategory=$'.$param_pos.'&iPage=$'.($param_pos+1));
                        
$rewrite->addRule('^'.str_replace('{CATEGORIES}''(.+)'str_replace('{CATEGORY_NAME}''([^/]+)'str_replace('{CATEGORY_ID}''([0-9]+)'$cat_url))).'/?$''index.php?page=search&sCategory=$'.$param_pos);

                        
$rewrite->addRule('^(.+)/([0-9]+)$''index.php?page=search&iPage=$2');
                        
$rewrite->addRule('^(.+)$''index.php?page=search');

                        
osc_run_hook("after_rewrite_rules", array(&$rewrite));

                        
//Write rule to DB
                        
$rewrite->setRules();

                        
osc_set_preference('seo_url_search_prefix'rtrim(Params::getParam('seo_url_search_prefix'), '/'));

                        
$msg_error '<br/>'._m('All fields are required.')." ".sprintf(_mn('One field was not updated''%s fields were not updated'$errors), $errors);
                        switch(
$status) {
                            case 
1:
                                
$msg  _m("Permalinks structure updated");
                                if(
$errors>0) {
                                    
$msg .= $msg_error;
                                    
osc_add_flash_warning_message($msg'admin');
                                } else {
                                    
osc_add_flash_ok_message($msg'admin');
                                }
                            break;
                            case 
2:
                                
$msg  _m("Permalinks structure updated.");
                                
$msg .= " ";
                                
$msg .= _m("However, we can't check if Apache module <b>mod_rewrite</b> is loaded. If you experience some problems with the URLs, you should deactivate <em>Friendly URLs</em>");
                                if(
$errors>0) {
                                    
$msg .= $msg_error;
                                }
                                
osc_add_flash_warning_message($msg'admin');
                            break;
                            case 
3:
                                
$msg  _m("File <b>.htaccess</b> couldn't be filled out with the right content.");
                                
$msg .= " ";
                                
$msg .= _m("Here's the content you have to add to the <b>.htaccess</b> file. If you can't create the file, please deactivate the <em>Friendly URLs</em> option.");
                                
$msg .= "</p><pre>" htmlentities($htaccessENT_COMPAT"UTF-8") . '</pre><p>';
                                if(
$errors>0) {
                                    
$msg .= $msg_error;
                                }
                                
osc_add_flash_error_message($msg'admin');
                            break;
                            case 
4:
                                
$msg  _m("File <b>.htaccess</b> couldn't be filled out with the right content.");
                                
$msg .= " ";
                                
$msg .= _m("Here's the content you have to add to the <b>.htaccess</b> file. If you can't create the file or experience some problems with the URLs, please deactivate the <em>Friendly URLs</em> option.");
                                
$msg .= "</p><pre>" htmlentities($htaccessENT_COMPAT"UTF-8") . '</pre><p>';
                                if(
$errors>0) {
                                    
$msg .= $msg_error;
                                }
                                
osc_add_flash_error_message($msg'admin');
                            break;
                            case 
5:
                                
$warning false;
                                if( 
file_exists($htaccess_file) ) {
                                    
$htaccess_content file_get_contents($htaccess_file);
                                    if(
$htaccess_content!=$htaccess) {
                                        
$msg  _m("File <b>.htaccess</b> already exists and was not modified.");
                                        
$msg .= " ";
                                        
$msg .= _m("Here's the content you have to add to the <b>.htaccess</b> file. If you can't modify the file or experience some problems with the URLs, please deactivate the <em>Friendly URLs</em> option.");
                                        
$msg .= "</p><pre>" htmlentities($htaccessENT_COMPAT"UTF-8") . '</pre><p>';
                                        
$warning true;
                                    } else {
                                        
$msg  _m("Permalinks structure updated");
                                    }
                                }
                                if(
$errors>0) {
                                    
$msg .= $msg_error;
                                }
                                if(
$errors>|| $warning) {
                                    
osc_add_flash_warning_message($msg'admin');
                                } else {
                                    
osc_add_flash_ok_message($msg'admin');
                                }
                            break;
                        }
                    } else {
                        
osc_set_preference('rewriteEnabled'0);
                        
osc_set_preference('mod_rewrite_loaded'0);

                        
$deleted true;
                        if( 
file_exists($htaccess_file) ) {
                            
$htaccess_content file_get_contents($htaccess_file);
                            if(
$htaccess_content==$htaccess) {
                                
$deleted = @unlink($htaccess_file);
                                
$same_content true;
                            } else {
                                
$deleted false;
                                
$same_content false;
                            }
                        }
                        if(
$deleted) {
                            
osc_add_flash_ok_message(_m('Friendly URLs successfully deactivated'), 'admin');
                        } else {
                            if(
$same_content) {
                                
osc_add_flash_warning_message(_m('Friendly URLs deactivated, but .htaccess file could not be deleted. Please, remove it manually'), 'admin');
                            } else {
                                
osc_add_flash_warning_message(_m('Friendly URLs deactivated, but .htaccess file was modified outside Osclass and was not deleted'), 'admin');
                            }
                        }
                    }

                    
$this->redirectToosc_admin_base_url(true) . '?page=settings&action=permalinks' );
                break;
            }
        }
    }

    
// EOF: ./oc-admin/controller/settings/permalinks.php
Онлайн: 0
Реклама