Перейти к контенту
  • 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

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

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

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

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

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

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

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

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

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

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