Ответить Новая тема Новый опрос 
 Отображения ссылки странички "Производители"
Opss


Новичок
Сообщений: 2
Регистрация: 15-11-2010


15-11-2010 03:36
Добрый вечерок!!! Люди кто нибудь решал проблему отображения ссылки странички Производителя.
Например если название производителя "ШТРИХ-М" на "Великом русском языке" то не корректно отображается ссылка странички http://kkm-torg.ru/1_-
И на оборот если название SHTRIH-M, то http://kkm-torg.ru/1_shtrih-m
Спасибо!
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


15-11-2010 12:21
Последний фикс из сообщения http://prestadev.ru/forum/redir-1082-6782.html
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Fant63
Профессионал
Сообщений: 543
Откуда: Тольятти
Регистрация: 23-02-2010


15-11-2010 18:01
C версией prestashop_1.3.2.3 - он не работает (((

Вот оригинальный код из Tools.php
Код:
static public function link_rewrite($str, $utf8_decode = false)
    {
        $purified = '';
        $length = self::strlen($str);
        if ($utf8_decode)
            $str = utf8_decode($str);
        for ($i = 0; $i < $length; $i++)
        {
            $char = self::substr($str, $i, 1);
            if (self::strlen(htmlentities($char)) > 1)
            {
                $entity = htmlentities($char, ENT_COMPAT, 'UTF-8');
                $purified .= $entity{1};
            }
            elseif (preg_match('|[[:alpha:]]{1}|u', $char))
                $purified .= $char;
            elseif (preg_match('<[[:digit:]]|-{1}>', $char))
                $purified .= $char;
            elseif ($char == ' ')
                $purified .= '-';
            elseif ($char == '\'')
                $purified .= '-';
        }
        return trim(self::strtolower($purified));
    }


Как правильно применить fix?
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Opss


Новичок
Сообщений: 2
Регистрация: 15-11-2010


17-11-2010 05:51
Цитата:( ors @ 15-11-2010 08:21 Смотреть сообщение )
Последний фикс из сообщения http://prestadev.ru/forum/redir-1082-6782.html


Дело в том что у меня уже в файле Tools.php присутствует код: и при добавлении вашего куска кода странички вообще не грузятся.
Код:
static public function link_rewrite($str, $utf8_decode = false)
    {
        $purified = '';
        $length = self::strlen($str);
        if ($utf8_decode)
            $str = utf8_decode($str);
        for ($i = 0; $i < $length; $i++)
        {
            $char = self::substr($str, $i, 1);
            if (self::strlen(htmlentities($char)) > 1)
            {
                $entity = htmlentities($char, ENT_COMPAT, 'UTF-8');
                $purified .= $entity{1};
            }
            elseif (preg_match('|[[:alpha:]]{1}|u', $char))
                $purified .= $char;
            elseif (preg_match('<[[:digit:]]|-{1}>', $char))
                $purified .= $char;
            elseif ($char == ' ')
                $purified .= '-';
        }

        // fix
        if (preg_match('/[А-Яа-я]+/', $purified))
                $cyr = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я', ' ');
                $lat = array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', '', 'y', '', 'e', 'ju', 'ja', '_');
                $purified = mb_strtolower($purified, 'utf-8');
                $purified = str_replace($cyr, $lat, $purified);
        return trim(self::strtolower($purified));
    }

И при добавлении вашего куска кода странички вообще не грузятся. :eek:
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос