PHPfox 2.0.5 (build 1) самая последняя версия

В чем именно нужна помощь?
Более конкретно.
Проблема вот в чем..
как сделать url более читаемое?
к примеру если ввести название блога "тест" и перейти на него то в url выдается такая сточка.
site.net/user/blog/1090-1077-1089-1090-1086-1074-1099-1081-1073-1083-1086-1075/
как сделать более читаемый url типа
site.net/user/blog/test/
Также проблема и с русским языком. весь перевод в базе такого типа (1090-1077-1089-1090-1086-1074-1099-1081-1073-1083-1086-1075)
при вводе русских символов они автоматически переводятся в эту кодировку... как это исправить.
 
Проблема вот в чем..
как сделать url более читаемое?
к примеру если ввести название блога "тест" и перейти на него то в url выдается такая сточка.
site.net/user/blog/1090-1077-1089-1090-1086-1074-1099-1081-1073-1083-1086-1075/
как сделать более читаемый url типа
site.net/user/blog/test/
Также проблема и с русским языком. весь перевод в базе такого типа (1090-1077-1089-1090-1086-1074-1099-1081-1073-1083-1086-1075)
при вводе русских символов они автоматически переводятся в эту кодировку... как это исправить.

Ясно, давайте приступим к исправлению:

1. В - \include\library\phpfox\parse\input.class.php

найти функцию, отвечающую за формирование ссылок:

PHP:
public function cleanTitle($sUrls)

в ней вносим такие изменения:

PHP:
public function cleanTitle($sUrls)
    {
        $sUrls = trim(strip_tags($sUrls));
        //$sUrls = $this->_utf8ToUnicode($sUrls, true);
        // Этот параметр вставляет тире между слов в адресе ссылки
        $sUrls = preg_replace("/ +/", "-", $sUrls);
            
        //$sUrls = rawurlencode($sUrls);
        
        // Регулируем вырезку ненужного        
        $sUrls = str_replace(array( '"', "'", ",", ".", "!", "?", "(", ")", "–", "—", ":", ";", "«", "»", "…", "+", "#", "№", "=", "/" ), '', $sUrls );
        $sUrls = str_replace(' ', '', $sUrls);
        $sUrls = str_replace(array('-----', '----', '---', '--', '_'), '-', $sUrls);
        $sUrls = rtrim($sUrls, '-');
        $sUrls = ltrim($sUrls, '-');
        
        if (empty($sUrls))
        {
            $sUrls = PHPFOX_TIME;
        }
        
        $sUrls = strtolower($sUrls);
        
        $sUrls = str_replace(
        array( 'А', 'а', 'Б', 'б', 'В', 'в', 'Г', 'г', 'Д', 'д', 'Е', 'е', 'Ё', 'ё', 'Ж', 'ж', 'З', 'з', 'И', 'и', 'Й', 'й', 'К', 'к', 'Л', 'л', 'М', 'м', 'Н', 'н', 'О', 'о', 'П', 'п', 'Р', 'р', 'С', 'с', 'Т', 'т', 'У', 'у', 'Ф', 'ф', 'Х', 'х', 'Ц', 'ц', 'Ч', 'ч', 'Ш', 'ш', 'Щ', 'щ', 'Ъ', 'ъ', 'Ы', 'ы', 'Ь', 'ь', 'Э', 'э', 'Ю', 'ю', 'Я', 'я', 'І', 'і', 'Ї', 'ї', 'Є', 'є', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?' ),        
        array( 'a', 'a', 'b', 'b', 'v', 'v', 'g', 'g', 'd', 'd', 'e', 'e', 'e', 'e', 'j', 'j', 'z', 'z', 'i', 'i', 'y', 'y', 'k', 'k', 'l', 'l', 'm', 'm', 'n', 'n', 'o', 'o', 'p', 'p', 'r', 'r', 's', 's', 't', 't', 'u', 'u', 'f', 'f', 'h', 'h', 'c', 'c', 'ch', 'ch', 'sh', 'sh', 'sh', 'sh', '', '', 'y', 'y', '', '', 'e', 'e', 'u', 'u', 'ya', 'ya', 'i', 'i', 'ii', 'ii', 'e', 'e', 'a', 'b', 'g', 'd', 'a', 'v', 'z', 'h', 't', 'i', 'k', 'k', 'l', 'm', 'm', 'n', 'n', 's', 'y', 'p', 'p', 'c', 'c', 'k', 'r', 's', 't' ), $sUrls);
        
        return $sUrls;
    }

Если иврит не нужен, убираем ненужные замены.

ВНИМАНИЕ! Весь файл - input.class.php - должен быть кодирован в UTF-8 (без BOM), иначе могут быть проблемы с русскими буквами для подстановки и замены.

2. Отпишите результат.
 
У Меня ни чего не изменилось!!!

Как вообще заставить его нормально в utf8 сохранять????
 
У Меня ни чего не изменилось!!!

Как вообще заставить его нормально в utf8 сохранять????
Что не изменилось?
Изменения касаемы всех новых публикаций, а не имеющихся уже в БД.
И что значит - нормально в utf8 сохранять?
Непонятно, что имеете в виду?
 
Что не изменилось?
Изменения касаемы всех новых публикаций, а не имеющихся уже в БД.
И что значит - нормально в utf8 сохранять?
Непонятно, что имеете в виду?

Как Я понял при сохранении он из utf8 перекодирует в Unicode

1. Можно ли не перекодировать, а нормально в utf8 сохранять???
2. Если да, то как?
3. Если Нет то что с этим делать:

При сохранении простых страниц (CMS >> страницы) или некоторых настроек "ш" и "и" превращаются в "�?" как это побороть?
В базе данных этот текст сохраняется как: едактируем


Если закоментировать все строчки типа:
//$sUrls = $this->_utf8ToUnicode($sUrls, true);

То текст в блогах сохраняется в базу данных как://$sUrls = $this->_utf8ToUnicode($sUrls, true);,а на страничках выглядит норм. но "�?" становиться проблемой и тут.
 
Продолжение борьбы ...

1. Чтобы доставались и клались в базу не кракозяблы, на примере базы MySQL, ищем файл

/include/library/phpfox/database/driver/mysql.class.php

функция public function connect($sHost, $sUser, $sPass, $sName, $sPort = false, $sPersistent = false)

перед "return true;" в самом конце функции ставим строку:

$this->query('SET NAMES utf8');


2. В - include\library\phpfox\parse\input.class.php

Изменяем данный кусок кода, на такое:

PHP:
// !!! Управляет например русскими символами в блогах: название, теги, категории, но НЕ телом самого блога
    public function clean($sTxt, $iShorten = null)
    {        
        $sTxt = Phpfox::getLib('parse.output')->htmlspecialchars($sTxt);

        //$sTxt = $this->_utf8ToUnicode($sTxt);
        
        // Фильтр спец. символов
        $sTxt = str_replace(
        array( '"', '  ' ),
        array( '"', ' ' ), $sTxt);
        // Конец !!!
        
        // Регулируем вырезку ненужного        
        $sTxt = str_replace(array( "…" ), '', $sTxt );
        
        if ($iShorten !== null)
        {            
            $sTxt = substr($sTxt, 0, $iShorten);
        }
        
        return $sTxt;
    }


3. Ваши комментарии
 
Отлично!!! :yahoo: Всё работает!!!

Спасибо!
 
Какие???? Что бы начинать готовиться???

А вот и проблемка первая!

При создании новых блогов в базу сохраняется всё нормально, при просмотре самого поста всё норм, но при просмотре блогов по адресам:

site.ru/profile/blog/
site.ru/profile/blog/

проподают заголовки ((((

а по адресу типа:

site.ru/profile/blog/poct

Заголовок есть.

Обратил внимание, на этих страничках если заголовок в базе в юникоде то его видно, но он обрезается, длинные заголовки не сохраняются.
А если не юникоде, то заголовок пропадает. ((((
 
Какие???? Что бы начинать готовиться???

А вот и проблемка первая!

При создании новых блогов в базу сохраняется всё нормально, при просмотре самого поста всё норм, но при просмотре блогов по адресам:

site.ru/profile/blog/
site.ru/profile/blog/

проподают заголовки ((((

а по адресу типа:

site.ru/profile/blog/poct

Заголовок есть.

У тебя есть какие-нибудь модули для Фокса?
А то я тут прям ликбез начал ...
Нужна хотя бы начальная кооперация.
 
Назад
Сверху