Перейти к публикации

Dialer

новички
  • Публикации

    4
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем Dialer

  1. Да глупости это все.. метод добавляет нофоллов только в новые статьи. А если у меня уже статей несколько тысяч мне что их всех пересохранять по очереди??? эх, снова все прийдется саомму делать :(

  2. А как насчет данной функци???

    Незнаю что делает данная функция, но раз все работает ОК, то я бы не стал ее трогать. Зачем?

    Что касается кодировки UTF-8 - IMHO рано или поздно на нее прийдется переходить, поэтому если есть возможность то лучше это сделать сразу, чтобы потом не иметь проблем с конвертацией.

  3. Поскольку разработчик выпускает релизы только в кодировке win-1251 многим приходится конвертировать дистриб в utf-8 вруную. Вместе с тем, я не смог найти инструкции как это сделать должным образом, поэтому пришлось все делать с нуля. Но, как оказалось, это не так сложно. Ниже публикую алгоритм как это делал я.

    Для работы нужно иметь программу-перекодировщик. Я использовал Kaboom, потому что в ней есть поддержка всех кодировок и функция пакетной конвертации. Скачать можно тут: http://www.sisulizer.com/kaboom/

    0. Запускаем Kaboom и переходим на вкладку Multi-converter. Вытсавляем там кодировку (win-1251 -> utf-8), убераем птичку Write BOM, ставим Cnahge content-type, ставим Overwrite Source.

    1. Скопировать из дистрибутива папку Upload куда-нибудь подальше от оригинала :)

    3. Зайти в эту папку проводником, нажать F3 и сделать поиск задав в строке запроса "*" (без кавычек).

    Таким образом выведутся все файлы из этой папки.

    4. Выделить из полученного списка все файлы кроме картинок и папок (их перекодировать не нужно) и драг-н-дропом перенести в окно Kaboom.

    5. Нажимаем Convert, жмем в открывшемся сообщении кнопку OK и ждем окончания процесса конвертации.

    На этом перекодирование дистрибутива завершено, но нужно еще сделать некоторые изменения в содержмом файлов..

    1. Внести изменения в meta-тэги conten-type некоторых файлов шаблонов. Для этого понадобиться программа автозамены. Я использую Search and Replace (http://www.funduc.com/).

    Строка для поиска: charset=windows-1251

    Заменять на: charset=utf-8

    Не забудтье убедиться что замена производится во всех вложенный папках!

    Для следующих шагов портебуется текстовой редактор с поддеркой UTF-8 (например Editplus).

    2. Изменить в файле install.php

    строку

    $config['charset'] = "windows-1251";
    на
    $config['charset'] = "utf-8";
    3. В языковых файлах adminpanel.lng и website.lng заменить
    'charset'			=>	"windows-1251",
    на
    'charset'			=>	"utf-8",

    4. Заменить стандартную функцию транслитерацию, на адаптированную под юникод (это нужно чтобы статьи с русскими названиями получали адекватны ЧПУ).

    Для этого в файлах

    /engine/inc/functions.inc.php и /engine/modules/functions.php

    Заменить стандартную функцию транслитерации

    function totranslit($var)

    {

    ...

    }

    на

    function totranslit($var)

    {

    $converter = array(

    'а' => 'a', 'б' => 'b', 'в' => 'v',

    'г' => 'g', 'д' => 'd', 'е' => 'e',

    'ё' => 'e', 'ж' => 'zh', 'з' => 'z',

    'и' => 'i', 'й' => 'y', 'к' => 'k',

    'л' => 'l', 'м' => 'm', 'н' => 'n',

    'о' => 'o', 'п' => 'p', 'р' => 'r',

    'с' => 's', 'т' => 't', 'у' => 'u',

    'ф' => 'f', 'х' => 'h', 'ц' => 'c',

    'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sch',

    'ь' => '\'', 'ы' => 'y', 'ъ' => '',

    'э' => 'e', 'ю' => 'yu', 'я' => 'ya',

    'А' => 'A', 'Б' => 'B', 'В' => 'V',

    'Г' => 'G', 'Д' => 'D', 'Е' => 'E',

    'Ё' => 'E', 'Ж' => 'Zh', 'З' => 'Z',

    'И' => 'I', 'Й' => 'Y', 'К' => 'K',

    'Л' => 'L', 'М' => 'M', 'Н' => 'N',

    'О' => 'O', 'П' => 'P', 'Р' => 'R',

    'С' => 'S', 'Т' => 'T', 'У' => 'U',

    'Ф' => 'F', 'Х' => 'H', 'Ц' => 'C',

    'Ч' => 'Ch', 'Ш' => 'Sh', 'Щ' => 'Sch',

    'Ь' => '\'', 'Ы' => 'Y', 'Ъ' => '',

    'Э' => 'E', 'Ю' => 'Yu', 'Я' => 'Ya',

    );

    $var = str_replace(".php", "", $var);

    $var = trim(strip_tags($var));

    $var = preg_replace( "/\s+/ms", "-", $var );

    $var = strtr($var, $converter);

    $var = preg_replace("/[^a-z0-9\_\-.]+/mi", "", $var);

    $var=preg_replace('#[\-]+#i', '-', $var);

    $var = strtolower ( $var );

    if (strlen($var) > 50) {

    $var = substr ($var, 0, 50);

    if (($temp_max = strrpos($var, '-'))) $var = substr ($var, 0, $temp_max);

    }

    return $var;

    }

    После проделывания вышеописанных действий, можно заливать файлы на сервер и запускать установку. В процессе установки не забудьте указать кодирку utf-8 для баз!

    В заключении добавлю, что данный алгоритм проверялся для версии 7.0 для ее первоначалньой установки. Однако я не вижу преград для применения его при обновении скриптов на новую версию.

×
×
  • Создать...