Перейти к контенту
  • 0

Названия Тем Начинаются С Заглавных (Больших)


Вопрос

После обновления на 2.2.2 новые темы Стали Называться С Больших Букв.

Поиск по коду в надежде найти что-то подобное ucfirst ни к чему не привел.

В чем может быть проблема?

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Я уже писал об этом глюке. Даже если установлена локаль, глюк этот все равно присутствует. Так что дае если поставите локаль, не факт, что проблема исчезнет.

А чтобы поставить локаль, нужен root доступ к серваку.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Временное лечение:

Запретить использование только заглавных букв в названиях тем?

Например, НАЖМИТЕ СЮДА будет заменено на Нажмите сюда — следует правильно выбрать локаль на сервере

 

поставить на нет

Ссылка на комментарий
Поделиться на других сайтах

  • 0

class_post.php

	function pf_clean_topic_title($title="")
{
	if ($this->ipsclass->vars['etfilter_punct'])
	{
		$title	= preg_replace( "/\?{1,}/"	  , "?"	, $title );		
		$title	= preg_replace( "/(!){1,}/" , "!", $title );
	}

	if ($this->ipsclass->vars['etfilter_shout'])
	{
		$title = ucwords(strtolower($title));
	}

	return $title;
}

Что за бред? А где проверка на заглавные?

И причем тут локаль вообще, если при включенной опции все слова (а не только те, которые с заглавной начинаются) пишутся с большой?

Думаю это полюбому косяк - надо исправлять, а не пинать на локаль!

Ссылка на комментарий
Поделиться на других сайтах

  • 0
if ($this->ipsclass->vars['etfilter_shout'])

{

$title = ucwords(strtolower($title));

}

А это что по Вашему?

 

Для полноты картины:

http://www.php.net/ucwords

http://www.php.net/strtolower

 

Так ЗАЛОЖЕНО в дистрибутиве и локаль действительно тут не при чем. Но причем она будет, когда у вАС бУДУТ вОТ тАКИЕ вОТ нАЗВАНИЯ.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Гмм, в 2.1 отключалось где-то в админке.. в настройках..

 

Сам помню нарвался - докапался, нашёл настройку и отрубил)

Ссылка на комментарий
Поделиться на других сайтах

  • 0
А это что по Вашему?

Я знаю что делают эти функции. Вопрос в том, что он преобразовывает ВСЕ слова, а не только те, КОТОРЫЕ СОСТОЯТ ИЗ БОЛЬШИХ БУКВ!

Отсюда вывод исправить, вводящую в заблуждение пользователей фразу:

Запретить использование только заглавных букв в названиях тем?

Например, НАЖМИТЕ СЮДА будет заменено на Нажмите сюда — следует правильно выбрать локаль на сервере

на

Вы Хотите Чтобы Все Слова В Названиях Ваших Тем Начинались С Большой Буквы?

Например, НАЖМИТЕ СЮДА будет заменено на Нажмите Сюда, а "Всем привет" будет заменено на "Всем Привет"

Что сделает эту функцию абсолютно бесполезной для всех, ибо никому не нужно так делать - это бред.

Поэтому считаю надо сделать в этой функции проверку, чтобы НАЖМИТЕ СЮДА, действительно преобразовывалось в Нажмите сюда!

Ссылка на комментарий
Поделиться на других сайтах

  • 0
ну так как избавиться от этого некрасивого глюка?

 

 

Попробуйте выключить переменную "Админцентр > НАСТРОЙКИ > Список настроек > Темы, Сообщения и Опросы > Запретить использование только заглавных букв в названиях тем?" (etfilter_shout) через админ или через базу таким запросом

 

UPDATE `forum`.`ibf_conf_settings` SET `conf_value` = '0' WHERE `ibf_conf_settings`.`conf_key` = 'etfilter_shout'

 

И в Админцентр > НАСТРОЙКИ > Управление кешем, обновите группу settings, чтобы она и в кэше обновилась.

 

Тоже помогает и при неприятной "побочке" для тех, кто использует UTF8 на страницах форума 2.3.*, код ниже из class_post.php в двухбайтовой кодировке делает большими буквами только первый байт. И такое значение в MySQL уже не инсертнется, точнее запись инсертнется, но поле с таким значением будет пустым. Первый симптом - отсутствие возможности ввести название темы на русском языке. И вообще все, что проходит через 'ucwords' / 'strtolower' в UTF8 будет обработано не правильно.

 

	  function pf_clean_topic_title($title="")
	{
			if ($this->ipsclass->vars['etfilter_punct'])
			{
					$title  = preg_replace( "/\?{1,}/"	  , "?"	, $title );
					$title  = preg_replace( "/(!){1,}/" , "!", $title );
			}

			if ($this->ipsclass->vars['etfilter_shout'])
			{
					$title = ucwords(strtolower($title));
			}

			return $title;
	}

 

Кроме того, для unix в UTF8 надо выставить локаль принудительно в index.php в районе строки 82 добавить еще один условный переход:

					   case 'utf8':
									setlocale(LC_ALL,'ru_RU.UTF-8');
					break;

 

для Windows не знаю.

Изменено пользователем KEMBL
Ссылка на комментарий
Поделиться на других сайтах

  • 0
у вАС бУДУТ вОТ тАКИЕ вОТ нАЗВАНИЯ.

так и не смогла исправить такую ошибку через админцентр.

"Запретить использование только заглавных букв в названиях тем" - у меня там стояла и стоит галочка рядом с "да".

Кэш обновила. И ничего не изменилось.

Перед Этим У Меня Все Слова В Названии Темы Выглядели Так И Меня Все Устраивало.

Какое лекарство еще можно попробовать?

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Попробуйте выключить переменную "Админцентр > НАСТРОЙКИ > Список настроек > Темы, Сообщения и Опросы > Запретить использование только заглавных букв в названиях тем?" (etfilter_shout) через админ или через базу таким запросом
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Попробуйте выключить переменную "Админцентр > НАСТРОЙКИ > Список настроек > Темы, Сообщения и Опросы > Запретить использование только заглавных букв в названиях тем?" (etfilter_shout) через админ или через базу таким запросом

Sannis, так и делала. Выключала функцию. Обновляла кэш. Включала функцию и еще раз обновляла кэш. Не помогло!

Потому и спрашиваю что можно еще попробовать?

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Выключала функцию. Обновляла кэш. Включала функцию и еще раз обновляла кэш.

И после этого проверяли, как создаются темы?

 

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

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Выключала функцию. Обновляла кэш. Включала функцию и еще раз обновляла кэш.

И после этого проверяли, как создаются темы?

 

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

Обязательно проверяла. Увы... все то же...

А не могли бы Вы подсказать где именно написано об изменениях в коде? Буду премного благодарна!

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Ну так нужно выключить и так и оставить :D
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Ну так нужно выключить и так и оставить ;)

:D эээ... не поняла... поясните, плиз :)

Ведь после выключения тоже никаких изменений при создании темы не происходит...

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Ведь после выключения тоже никаких изменений при создании темы не происходит...

Выше вы говорили, что не проверяли это, разве не так? :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Ведь после выключения тоже никаких изменений при создании темы не происходит...

Выше вы говорили, что не проверяли это, разве не так? :D

совершенно точно - проверила. ;) и не работает... :)

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.