We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 6862
    • 97 Posts
    Как то меня достало каждый раз во время установки править мелкие баги с кодировкой utf8. Интересный пост http://modxcms.com/forums/index.php/topic,4422.msg32209.html#msg32209 товарища Fuzzy  помог мне.  По выходу новых версий я просто делаю новую установку для себя исправляя все баги. Добавляя к этому исправление ТиниМСЕ.

    Для тех кому лень это делать могу поделиться уже готовой исправленой версией 0.9.6.2
    http://www.svetlofor.com/modx-0.9.6.2.zip

    Кто хочет может сделать сам, вот список изминений:
    Переименовать папку install/lang/russian в russian-UTF8
    Переименовать файл install/lang/russian/russian.inc.php в russian-UTF8.inc.php
    В файл install/setup.sql к каждой создоваемой таблице добавить "DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci"
    В файле install/setup.sql в таблице system_settings настройка fe_editor_lang изменить с english на russian-UTF8
    В файле manager/includes/extenders/dbapi.mysql.class.inc.php строку
    @mysql_query("{$database_connection_method} {$charset}", $this->conn);
    заменить на строки
    @mysql_query("SET NAMES ’utf8’;", $this->conn);
    @mysql_query("SET CHARACTER SET ’utf8’;", $this->conn);
    @mysql_query("SET SESSION collation_connection = ’utf8_general_ci’;", $this->conn);
    В файле manager/index.php строку
    @mysql_query("{$database_connection_method} {$database_connection_charset}");
    заменить на строки
    @mysql_query("SET NAMES ’utf8’;",$modxDBConn);
    @mysql_query("SET CHARACTER SET ’utf8’;",$modxDBConn);
    @mysql_query("SET SESSION collation_connection = ’utf8_general_ci’;",$modxDBConn);
    Файл assets/plugins/tinymce3101/jscripts/tiny_mce/plugins/advlink/link.htm перекодировать в utf8
    В файле assets/plugins/tinymce3101/tinymce.linklist.php строку
    @mysql_query("{$database_connection_method} {$database_connection_charset}");
    заменить на строки
    @mysql_query("SET NAMES ’utf8’;",$link);
    @mysql_query("SET CHARACTER SET ’utf8’;",$link);
    @mysql_query("SET SESSION collation_connection = ’utf8_general_ci’;",$link);


    Все изминения тестировались на новой инсталяции, на обновления сушествующего сайта не проверялись.
      • 785
      • 2,113 Posts
      Quote from: MaxTax at Sep 29, 2008, 02:43 PM

      В tinymce при вставке ссылки список страниц сайта кириллица вопросами. Где-то еще надо исправлять
      Несколько раз уже описывалось на форуме решение этой проблемы, например:
      http://modxcms.com/forums/index.php/topic,29047.msg176580.html#msg176580
      http://modxcms.com/forums/index.php/topic,25553.msg156791.html#msg156791
      и еще кое-где.

      Quote from: De at Sep 30, 2008, 02:18 AM

      Для тех кому лень это делать могу поделиться уже готовой исправленой версией 0.9.6.2
      Ни в коем случае не пользуйтесь этой версией! В нее внесены исправления, ПРОТИВОРЕЧАЩИЕ концепции, использующейся в версии 0.9.6.2. Исправления в данной версии нужно вносить, но совершенно не такие, как описаны выше.
      А для того, чтобы не было проблем с базой, требуется до установки MODx создать базу и установить для нее правильное сравнение по умолчанию (utf8_unicode_ci или utf8_general_ci).

      Обо всех проблемах и их решении лучше писать здесь:
      http://modxcms.com/forums/index.php/topic,29047.0.html
        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
        Статьи о MODx, регулярно новые публикации
        • 6862
        • 97 Posts
        Quote from: AKots at Sep 30, 2008, 04:16 AM

        Ни в коем случае не пользуйтесь этой версией! В нее внесены исправления, ПРОТИВОРЕЧАЩИЕ концепции, использующейся в версии 0.9.6.2. Исправления в данной версии нужно вносить, но совершенно не такие, как описаны выше.
        А для того, чтобы не было проблем с базой, требуется до установки MODx создать базу и установить для нее правильное сравнение по умолчанию (utf8_unicode_ci или utf8_general_ci).
        Абсолютно согласен. Пример приведенный мной работает, но противоречит концепции. Лучше им не пользоваться.
          • 785
          • 2,113 Posts
          Quote from: De at Oct 01, 2008, 12:53 AM

          Пример приведенный мной работает
          Не совсем. Переменные $database_connection_method и $database_connection_charset используются и в других файлах, не только в тех, где их предложено изменить. Так что или там все правильно сработает и изменения были лишними, или в некоторых случаях возникнут проблемы. Да и вообще, использование SET SESSION collation_connection излишне, если установить нужный параметр для базы заранее, SET NAMES и SET CHARACTER SET одновременно вряд ли нужны, разве только на очень нестандартном хостинге, а отдельно эти значения устанавливаются системой и без изменений. Подавляющему большинству вряд ли нужны будут такие исправления. При этом невозможно будет работать ни с какой другой кодировкой, кроме UTF-8, даже если это вдруг понадобится.

          Настройка fe_editor_lang – не ошибка, ее можно изменить после установки в настройках системы. А если задавать заранее нужные параметры, чтобы в дальнейшем их не менять, то зачем останавливаться на одном?
            Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
            Статьи о MODx, регулярно новые публикации
            • 6862
            • 97 Posts
            Quote from: AKots at Oct 01, 2008, 03:39 AM

            Настройка fe_editor_lang – не ошибка, ее можно изменить после установки в настройках системы. А если задавать заранее нужные параметры, чтобы в дальнейшем их не менять, то зачем останавливаться на одном?

            smiley , SET SESSION collation_connection все же не излишне, к примеру на моем хостинге без этой строки одни вопросики, даже если сделать исправлления как вы советовали в файле dbapi.mysql.class.inc.php:
            fe_editor_lang - конечшно же не ошибка, эта настройка языка менеджера. Мне удобнее чтобы язык после установки был русским.
              • 28814 ☆ A M B ☆
              • 1,086 Posts
              Quote from: AKots at Sep 30, 2008, 04:16 AM

              Ни в коем случае не пользуйтесь этой версией! В нее внесены исправления, ПРОТИВОРЕЧАЩИЕ концепции, использующейся в версии 0.9.6.2. Исправления в данной версии нужно вносить, но совершенно не такие, как описаны выше.
              А для того, чтобы не было проблем с базой, требуется до установки MODx создать базу и установить для нее правильное сравнение по умолчанию (utf8_unicode_ci или utf8_general_ci).

              AKots, в принципе согласен с Вами, что не стоит пользоваться чужой сборкой, если не понимаешь, как это все работает. В таком случае лучше пользоваться официальным пакетом.

              Когда-то я тоже был приверженцем четкого следования концепциям.. но теперь мне думается, что концепции в смысле жестких ограничений - это плохо. Все-таки у нас CMF, а не CMS, нам и карты в руки.. Главное, чтобы эти руки росли из правильного места. Я кстати тоже давно сделал для себя сборку с изменениями в предыдущей версии MODx наподобие тех, о которых написал De Ribas, и пользуюсь ею на всех своих сайтах. При этом никаких проблем с языками не испытывал.
                Разработка сайтов и программных модулей на MODX.
                Опыт работы на MODx с 2005 года. Высокое качество.
                Компания Baltic Design Colors: http://www.bdcolors.ru.
                • 785
                • 2,113 Posts
                Quote from: De at Oct 01, 2008, 07:13 AM

                на моем хостинге без этой строки одни вопросики
                Конечно, всякое бывает, и встречаются разные хостинги, но чаще всего после создания базы следует запустить phpMyAdmin и установить правильное сравнение, после чего устанавливать MODx. Ну, или перед установкой выполнить команду:
                ALTER DATABASE `имя базы данных` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
                Чаще всего этого оказывается достаточно, и лично мне кажется, что лучше перед каждой установкой настраивать базу данных, чем править код. А если править код, то лучше добавить данную команду (причем, только при выбранной кодировке utf8), чем менять описания всех таблиц. Конечно, если правка описаний – единственный способ заставить работать MODx, то делать нечего, но вряд ли такая ситуация встречается у многих пользователей.

                Quote from: De at Oct 01, 2008, 07:13 AM

                fe_editor_lang - конечшно же не ошибка, эта настройка языка менеджера. Мне удобнее чтобы язык после установки был русским.
                Если хочется, чтобы был установлен русский язык, правильнее поменять в install/setup.sql не на russian-UTF8, а на {MANAGERLANGUAGE}.
                При этом результат должен быть точно таким же, но исходные возможности MODx не портятся.

                Quote from: Fuzzy at Oct 01, 2008, 07:59 AM

                Я кстати тоже давно сделал для себя сборку с изменениями в предыдущей версии MODx наподобие тех, о которых написал De Ribas, и пользуюсь ею на всех своих сайтах. При этом никаких проблем с языками не испытывал.
                Нормально, когда человек делает сборку для себя, я тоже так поступаю, но вряд ли стоит ее рекомендовать другим. Как я отмечал выше, в новой версии $database_connection_method и $database_connection_charset используются не только в тех местах, где предлагается внести исправления. Причем вполне может быть, что новые сниппеты будут также использовать эти переменные. Вероятность проблем далеко не нулевая, а если кто-то пользуется не стандартной версией, а такой исправленной, советы на форуме могут оказаться бесполезными.

                Лично я стараюсь предлагать изменения, не мешающие стандартному функционированию MODx, а всего лишь ликвидирующие имеющиеся проблемы. Именно поэтому я против описанных изменений как рекомендуемых произвольным пользователям. А если кто-то хочет сделать вариант MODx лично для себя, и при этом понимает, что делает, то он, естественно, может делать что угодно.
                  Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                  Статьи о MODx, регулярно новые публикации
                  • 1978
                  • 131 Posts
                  при создании новой страницы все ок и в менеджере и myadmin (все таблицы utf8_general_ci), при редактировании и сохранении все слетает

                  Мастерхост unix эффективный

                  Итак правильный путь:
                  1. выставляем в новой БД перед установкой modx collation utf8_general_ci
                  2. меняем manager/includes/extenders/dbapi.mysql.class.inc.php вставляем между
                  79     function connect($host = '', $dbase = '', $uid = '', $pwd = '', $persist = 0) {
                  80     global $modx;
                  
                         global $database_connection_method;

                    Как русифировать Modx 0.9.6.1(QuickEdit, TinyMCE)
                    QuickEdit под win-1251 без mb_-функций
                    • 30602
                    • 9 Posts
                    что-то лажа получилась, на сайте все гут, а в TinyMCE :

                    Живу не в РоÑ?Ñ?ии, клава на одном буке англицкаÑ? на другом немечеÑ?каÑ? smiley Выход: фонетичеÑ?каÑ? раÑ?кладка клавы!!! Ð’ ОС Linux фонетичеÑ?каÑ? раÑ?Ñ?кладка еÑ?ть, а в Windows нет... Ð?е долгое гуглевание выдало программу длÑ? Ð?нглийÑ?кой клавы и длÑ? Ð?емецкой клавы. Привык очень быÑ?тро, даже наклейки на Ñ?тал клеить.

                    вот такие кракозябры:(
                      • 785
                      • 2,113 Posts
                      Quote from: Treumer at Nov 05, 2008, 03:40 AM

                      на сайте все гут, а в TinyMCE
                      Наверное, сайт в CP-1251, а TinyMCE в UTF-8.
                        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                        Статьи о MODx, регулярно новые публикации