Искать  
 
   
 
Поставил расширение Maximum Length of Entry Titles, появились косяки.
Отправлено: 01 Июнь 2009 12:32 P.M.   [ Игнорировать ]
Member
Avatar
RankRankRank
Всего сообщений:  197
Зарегистрирован  2009-02-13

Поставил расширение Maximum Length of Entry Titles количества символов по длине в поле title увеличилось, но перестали правильно отображаться буквы в  заголовках.
пишу: абвгдеёжзийклмнопрстуфхцчшщьыъэюя АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ
отображается: абвгдеёжзийклмнопрстуфхцч�?щьыъэюя
АБВГДЕЁЖЗ�?ЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ
методы
http://eeclub.ru/comments/reshenie_problem_s_kodirovkoj_utf_8/ и
http://eeclub.ru/forum/viewthread/574/P15/
не помогают (последний использовал при первой установке - тогда помогло). Выдает ошибку Internal Server Error…. Стёр расширение и поставил обратно прежние файлы .htaccess и system/db/db.mysql.php, - всё по прежнему! Кто сталкивался с данной проблемой? К сожалению топик по теме Maximum Length of Entry Titles закрыли, пришлось начинать новую тему

До этого, если длинный заголовок, то в конце  �

Профиль
 
 
Отправлено: 01 Июнь 2009 03:46 P.M.   [ Игнорировать ]   [ # 1 ]
Новичок
Avatar
Rank
Всего сообщений:  44
Зарегистрирован  2009-01-19

Скорее всего у тебя сбилась кодировка в таблице exp_weblog_titles. Проверь что у всей таблицы и у поля title стоит нужная кодировка.
И дай ссылку на установленное расширение, посмотрим что оно делает...

 Подпись 

Мои статьи про EE

Профиль
 
 
Отправлено: 01 Июнь 2009 04:05 P.M.   [ Игнорировать ]   [ # 2 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

основной блок расширения, это js который увеличивает длину поля.
гораздо более важной выглядит одна только строчка

$DB->query("ALTER TABLE  `exp_weblog_titles` CHANGE  `exp_weblog_titles`  `title` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
CHANGE  `url_title`  `url_title` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL"
); 

Проверти тип полей в exp_weblog_titles и сравните поля exp_weblog_titles с остальными, в случае расхождения - замените руками, или пропишите в расширении и диактивируйте/активируйте его. Т.к. как и сказал voff скорей всего сбилась кодировка

 Подпись 

booooring…

Профиль
 
 
Отправлено: 01 Июнь 2009 04:43 P.M.   [ Игнорировать ]   [ # 3 ]
Новичок
Avatar
Rank
Всего сообщений:  44
Зарегистрирован  2009-01-19

Вообще, это легко сделать без всяких расширений.
Просто измени тип полей title и url_title таблицы exp_weblog_titles на varchar(200), потом открой файл \system\cp\cp.publish.php и замени там следующие строки:
Строка 2587

$DSP->input_text('title'$title'20''100''input''100%', ($which == 'new' OR $which == 'preview') ? 'onkeyup="liveUrlTitle();"' ''$convert_ascii

Замени на

$DSP->input_text('title'$title'20''200''input''100%', ($which == 'new' OR $which == 'preview') ? 'onkeyup="liveUrlTitle();"' ''$convert_ascii

Строка 2602

$DSP->input_text('url_title'$url_title'20''75''input''100%'

замени на

$DSP->input_text('url_title'$url_title'20''200''input''100%'

Строка 7766

$DSP->input_text('url_title['.$row['entry_id'].']'$row['url_title']'20''75''input''95%'); 

замени ее на

$DSP->input_text('url_title['.$row['entry_id'].']'$row['url_title']'20''200''input''95%'); 

Строка 7771

$DSP->input_text('title['.$row['entry_id'].']'$row['title']'20''100''input''95%''onkeyup="liveUrlTitle();"'); 

замени на

$DSP->input_text('title['.$row['entry_id'].']'$row['title']'20''200''input''95%''onkeyup="liveUrlTitle();"'); 

Я обычно делаю именно так.

 Подпись 

Мои статьи про EE

Профиль
 
 
Отправлено: 01 Июнь 2009 04:46 P.M.   [ Игнорировать ]   [ # 4 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

это плохой подход. Т.к. в случае с расширением, вы его поставили, и забыли. А в случае с хаком (у вас), придется каждый раз повторять хаки при обновлении системы. Возможно это как-то допустимо если делаешь сайт для себя, но это крайне плохой стиль, если сайт для клиента.

 Подпись 

booooring…

Профиль
 
 
Отправлено: 01 Июнь 2009 05:19 P.M.   [ Игнорировать ]   [ # 5 ]
Новичок
Avatar
Rank
Всего сообщений:  44
Зарегистрирован  2009-01-19

Да, с обновлением будут проблемы...

 Подпись 

Мои статьи про EE

Профиль
 
 
Отправлено: 01 Июнь 2009 05:34 P.M.   [ Игнорировать ]   [ # 6 ]
Member
Avatar
RankRankRank
Всего сообщений:  197
Зарегистрирован  2009-02-13

Кодировка везде стала cp1251_general_ci, сейчас меняю во всех полях базы на utf8_unicode_ci в ручную! Как ни странно в таблице у поля title - exp_weblog_titles кодировка стоит нормальная!?, что не скажешь о всей базе. Расширение диактивировал и удалил.  Уже боюсь его снова ставить!! 3 часа меняю кодировку!

По расширению:

$DB->query("ALTER TABLE  `exp_weblog_titles` CHANGE  `title`  `title` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
CHANGE  `url_title`  `url_title` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL"
); 

Т.е в строке заменить на:

$DB->query("ALTER TABLE  `exp_weblog_titles` CHANGE  `exp_weblog_titles`  `title` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,CHANGE  `url_title`  `url_title` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL"); 

а потом закачать и установить? И не совсем понял по кодировке, она опять везде изменится на cp1251_general_ci?
Или проше хакнуть, сайт всеравно мой. Тут по-моему при обновлении системы, что-нибудь да придется снова хакнуть.

Приложения с изображениями
база.jpg
Профиль
 
 
Отправлено: 01 Июнь 2009 05:41 P.M.   [ Игнорировать ]   [ # 7 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

да прямо там в phpmyadmin проставте вместо utf-8, cp1251 и все.

 Подпись 

booooring…

Профиль
 
 
Отправлено: 01 Июнь 2009 05:43 P.M.   [ Игнорировать ]   [ # 8 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02
sibmet - 01 Июнь 2009 05:34 P.M.

Кодировка везде стала cp1251_general_ci, сейчас меняю во всех полях базы на utf8_unicode_ci в ручную! Как ни странно в таблице у поля title - exp_weblog_titles кодировка стоит нормальная!?, что не скажешь о всей базе. Расширение диактивировал и удалил.  Уже боюсь его снова ставить!! 3 часа меняю кодировку!

???? У вас и была cp1251_general_ci (данное расширение затрагивает только 2 поля)!!! вам нужно было только у 2 полей поменять - title и url_title

p.s. я может не правильно понял, но если вы вручную понаставили неправильный тип (в течении 3х часов), то лучше верните все как было. И, вместо того, что бы все делать в ручную, воспользуйтесь утилитами из phpmyamdin’a - там подобная операция по всей базе делается в 3 клика.

 Подпись 

booooring…

Профиль
 
 
Отправлено: 01 Июнь 2009 06:07 P.M.   [ Игнорировать ]   [ # 9 ]
Member
Avatar
RankRankRank
Всего сообщений:  197
Зарегистрирован  2009-02-13

Чёто вобще ничего понять немогу. Раньше в базе везде была кодировка utf8. Спецом при установке делал как описано в топике http://eeclub.ru/forum/viewthread/574/P15/  Походу поменяли мне кодировку.. или я как-то сегодня случайно изменил при манипуляции с файлами - .htaccess и db.mysql.php. Мне посоветовали следующее : “сохранить дамп себе на компьютер, изменить везде где cp1251 на utf8 и закачать дамп обратно” Вот я и меняю.... до сих пор. По расширению в коде надо что-то менять? а то строки у нас разные?

Профиль
 
 
Отправлено: 01 Июнь 2009 06:19 P.M.   [ Игнорировать ]   [ # 10 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

ну если собираетесь оставить cp1251, тогда:

$DB->query("ALTER TABLE  `exp_weblog_titles` CHANGE  `title`  `title` VARCHAR( 200 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL ,
CHANGE  `url_title`  `url_title` VARCHAR( 200 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL"
); 
 Подпись 

booooring…

Профиль
 
 
Отправлено: 01 Июнь 2009 06:40 P.M.   [ Игнорировать ]   [ # 11 ]
Member
Avatar
RankRankRank
Всего сообщений:  197
Зарегистрирован  2009-02-13

Calm, благодарю за совет. Сделал всё, как рекомендовал. Всё нормально работает и правильно отображается.

Профиль