ЧПУ - *.html

Тема в разделе "ABO CMS", создана пользователем Ortrix, 26 сен 2007.

Статус темы:
Закрыта.
  1. Ortrix

    Ortrix Постоялец

    Регистр.:
    22 сен 2007
    Сообщения:
    78
    Симпатии:
    1
    Как реализовать ЧПУ под ABO4.0 - чтобы все типа:
    http://сайт/язык/news/?action=archive&category=25&start=2
    http://сайт/язык/articles/?action=show&id=60 - новостной тоже двиг
    Имело вид:
    http://сайт/язык/news/archive/25/2.html
    http://сайт/язык/articles/60.html

    и т.д. и т.п.


    Буду очень благодарен. Приложите пожалуйста аттач с полной реализацией.
     
  2. SexKiller

    SexKiller

    Регистр.:
    20 апр 2006
    Сообщения:
    211
    Симпатии:
    45
  3. Ortrix

    Ortrix Постоялец

    Регистр.:
    22 сен 2007
    Сообщения:
    78
    Симпатии:
    1
  4. SexKiller

    SexKiller

    Регистр.:
    20 апр 2006
    Сообщения:
    211
    Симпатии:
    45
  5. Ortrix

    Ortrix Постоялец

    Регистр.:
    22 сен 2007
    Сообщения:
    78
    Симпатии:
    1
    Данное не работало на моей версии - 404 ошибка выскакивает везде. Кроме главной страницы.
     
  6. SexKiller

    SexKiller

    Регистр.:
    20 апр 2006
    Сообщения:
    211
    Симпатии:
    45
    А ты изменеия в код вносил, как минимум в двух местах ...

    В common.php, функцию замены ...

    А в classCore.php, в функцию get_block_content(:(

    PHP:
                if ($CONFIG['rewrite_mod'])
                {
                      
    $block_content str_replace ('/?&''/?'$block_content);

                    
    $pattern '/<A HREF=["|\']\/[a-z-0-9\/]+(\?[a-z0-9=&]+)/i';
                    
    $replacement "edit_url";
                     
    $block_content preg_replace_callback($pattern$replacement$block_content);
                }
     
  7. Ortrix

    Ortrix Постоялец

    Регистр.:
    22 сен 2007
    Сообщения:
    78
    Симпатии:
    1
    Warning: preg_replace_callback() requires argument 2, 'edit_url', to be a valid callback in /home/site/public_html/inc/class.Main.php on line 3913
     
  8. SexKiller

    SexKiller

    Регистр.:
    20 апр 2006
    Сообщения:
    211
    Симпатии:
    45
    Черт это мой косяк, забыл функцию скопировать:

    Полная часть в common.php (лучше в самом низу) ...
    PHP:
    if($CONFIG["rewrite_mod"] && $_GET["mod"] == && $_GET["html"]!=""){
        
    $html $_GET["html"];
        
    $html "action_".substr($htmlstrpos("/"$html)+1);
        
    $html str_replace(".html""_"$html);

        if(
    preg_match_all ("/([a-z0-9]+)?_([a-z0-9]+)?_/i"$html$param)){
            foreach(
    $param[1] AS $key => $value ){
                
    $tmp "request_$value";
                $
    $tmp $param[2][$key];
                
    $query_string .= "$value=$key&";
            }
        }
        
    $html "";
    }

    function 
    edit_url($matches){
        
        
    $url str_replace(array("?action=""&""="), array("""_""_"), $matches[1]).".html";

        return 
    str_replace($matches[1], $url$matches[0]);
    }



    Добавлено через 2 минуты
    да единственно придется немного править модули, где action = xxx_xxx (т.е. c нижним подчеркиванием, работать не будет, я просто так и не довел до ума) ...

    Хочу на папки перейти ... Как ты предлагал в первом посте ...
     
  9. Ortrix

    Ortrix Постоялец

    Регистр.:
    22 сен 2007
    Сообщения:
    78
    Симпатии:
    1
    Опять 404 ошибка вместо всех страниц.
     
  10. SexKiller

    SexKiller

    Регистр.:
    20 апр 2006
    Сообщения:
    211
    Симпатии:
    45
    Тогда я ничего не понимаю ...
     
Статус темы:
Закрыта.