GiV Опубликовано 30 Ноября 2007 Жалоба Поделиться Опубликовано 30 Ноября 2007 Решение только для тех у кого правильно выставлена локальЗдесь приведено решение для 2.2.х и 2.3.х, оно так же может быть портировано на 2.1.х или 1.х, но я этого не сделал Изменяются 3 файла:./sources/ipsclass.php./sources/action_public/xmlout.php./sources/classes/post/class_post.php Инструкция собственно:Добавляем новый механизм преобразования заглавных букв в строчные. Для этого редактируется файл ./sources/ipsclass.phpПеред /*-------------------------------------------------------------------------*/ // Calculate max post size /*-------------------------------------------------------------------------*/ function math_get_post_max_size() { Добавить: function chartoupper( $matches ) { return strtoupper( $matches[0] ); } function clean_topic_title($t) { if ( $t[0] != '^' ) { $makeSyntaxisCheck = true; $lowTitle = strtolower( $t ); if ( $t !== $lowTitle) { $t = $lowTitle; $t[0] = strtoupper( $t[0] ); if ( $makeSyntaxisCheck ) { $t = preg_replace_callback( '/[.?!]+(\s+)?([a-zа-я])/', array( &$this, 'chartoupper' ), $t ); } } } else { $t = substr( $t, 1 ); } return $t; } Теперь необходимо заменить старое преобразование на новое.а) ./sources/action_public/xmlout.php - быстрое редактирование названия топика (AJAX) - ищем $name = ucwords(strtolower($name)); Меняем на //$name = ucwords(strtolower($name)); $name = $this->ipsclass->clean_topic_title($name); б) ./sources/classes/post/class_post.php - создание темы, редактирование темы - ищем $title = ucwords(strtolower($title)); Меняем на //$title = ucwords(strtolower($title)); $title = $this->ipsclass->clean_topic_title($title); Собственно все. А так же поясненияВ новом механизме есть фильтр позволяющий расставлять правильно заглавные буквы после знаков препинания (.!?). Отвечает за него переменная в методе $makeSyntaxisCheck. Если данная переменная равна true то механизм работает так:Исходный текст: ПРЕВЕД! МЕДВЕД. КАГ ДЕЛА?После того как отработал механизм: Превед! Медвед. Каг дела? Если переменная равна false то механизм работает так:Исходный текст: ПРЕВЕД! МЕДВЕД. КАГ ДЕЛА?После того как отработал механизм: Превед! медвед. каг дела? А что делать если мне надо выделить слово или я использую название в тексте, которое должно писаться большими буквами (н-р аббревиатура).Для этого перед заголовком надо поставить знак ^. В этом случае происходит отключение механизма преобразования, и заголовок остается таким как его указал автор.Исходный текст: Превед, Медвед! Любишь IP.Board?После того как отработал механизм: Превед, Медвед! Любишь IP.Board? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 30 Ноября 2007 Жалоба Поделиться Опубликовано 30 Ноября 2007 фильтр позволяющий расставлять правильно заглавные буквы после знаков препинания (.!?).Я правильно понял, что если обычный юзер, не знающий про волшебную крышечку, решит создать топик с поздравлением меня (FatCat) с днем рождения (ДР), получится: "С Др Fatcat"? ИМХО, проще и эффективней пару раз устроить показательную порку за кирпич на капслоке, чем исправлять косяки искореженного текста... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 1 Декабря 2007 Жалоба Поделиться Опубликовано 1 Декабря 2007 GiV вдохновился)))а как же зло от регулярок?и еще идея - фтопку крышечку, игнорировать только то, что взято в кавычкиexampleСТУДЕНЧЕСКИЙ СОЮЗ "МИРЭА" -> Студенческий союз "МИРЭА" Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 3 Декабря 2007 Автор Жалоба Поделиться Опубликовано 3 Декабря 2007 Я правильно понял, что если обычный юзер, не знающий про волшебную крышечку, решит создать топик с поздравлением меня (FatCat) с днем рождения (ДР), получится: "С Др Fatcat"?Потому кавычка и введена. Идея фильтровать только ЗАГЛАВНЫЕ ТЕМЫ была, но как то красивого метода не пришло в голову как ее решить без регулярок. Потому и добавил крышку. а как же зло от регулярок?Зло, но тут без них получился бы очень огромный анализатор, который по скорости был бы аналогичен регуляркам (собственно он и был изначально написан, но отлаживать забодало). Так что из двух зол выбрал то которое красивее. Про кавычки тоже думал, FatCat показал почему кавычки не жизнеспособны. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
-=GadZZillA=- Опубликовано 27 Марта 2009 Жалоба Поделиться Опубликовано 27 Марта 2009 Хорошо, что я нашел эту тему Вот такая странность обнаружилась на форуме: заглавные буквы в названии тем, если они не первые в слове, сами изменяются в нижний регистр. Например: я создал тему "Общие вопросы по MacOS", рядом создал еще одну тему "WinXP x64 на виртуалке VMware", в итоге обе темы названы вот так: Общие вопросы по Macos и Winxp x64 на виртуалке Vmware. Обратите внимание на подчеркнутые слова - у них в верхнем регистре остались только первые буквы, другие опустились И еще кое-что: в музыкальном подфоруме есть тема "Вышел новый альбом Atb", сколько я не пытался исправить Atb на ATB - ничего не происходит. Ладно уж названия программных продуктов, это еще куда не шло, чего уж там, но ATB - это инициалы, и это уж слишком. Может быть другим юзерам это как-то нормально, но лично меня это бесит. Самое интересное: я пытаюсь отредактировать нормально, а ничего не происодит Еще глюк происходит, если заглавная буква стоит после скобки, например: Драйвера для Winxp (vista), а я в названии темы писал: Драйвера для WinXP (Vista). слова, в которых форум делает ошибку, так же подчеркнуты. Сначала я думал, что проблемы с настройкой, перешерстил - ничего не нашел. Щас попробывал изложенный выше пример - не помогло. Как избавится от такого глюка? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
-=GadZZillA=- Опубликовано 2 Апреля 2009 Жалоба Поделиться Опубликовано 2 Апреля 2009 Что-то все замолчали. Так есть ли ответ на мой вопрос или нет? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 2 Апреля 2009 Жалоба Поделиться Опубликовано 2 Апреля 2009 Сначала я думал, что проблемы с настройкой, перешерстил - ничего не нашел.Не нашли настройку в АЦ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.