[FAQ] Как изменить длину названия темы?

Темы по наиболее часто задаваемым вопросам по phpBB 3.0.x. Читать в первую очередь!

[FAQ] Как изменить длину названия темы?

Сообщение Pirat2007 15.12.2007 3:15

Собственно вопрос в теме. Решение для второй версии форума не подходит. Что делать?
Последний раз редактировалось Pirat2007 14.12.2007 18:57, всего редактировалось 1 раз.
Pirat2007
phpBB 1.2.0
 
Сообщения: 19
Зарегистрирован: 14.12.2007 17:16


Сообщение Поручик 15.12.2007 12:32

Решение для второй версии в общем подходит, только есть небольшой нюанс. Перед записью сообщения в базу данных название темы обрезается до 60 символов функцией truncate_string, что видно из данного кода

Код: Выделить всё
   $subject = truncate_string($subject);
   $data['topic_title'] = truncate_string($data['topic_title']);


Заголовок функции truncate_string
Код: Выделить всё
function truncate_string($string, $max_length = 60, $allow_reply = true, $append = '')


Таким образом, для изменения длины названия темы в Олимпусе решение примерно такое (для SQL запросов не забудьте изменить префикс таблиц phpbb_ на актуальный для вашей конференции):

Код: Выделить всё
#
#------- [SQL] -----------
#
ALTER TABLE `phpbb_posts` CHANGE `post_subject` `post_subject` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
ALTER TABLE `phpbb_topics` CHANGE `topic_title` `topic_title` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;

#
#------- [OPEN] -----------
#
includes\functions_posting.php

#
#------- [FIND] -----------
#
   $subject = truncate_string($subject);
   $data['topic_title'] = truncate_string($data['topic_title']);

#
#------- [REPLACE WITH] -----------
#
   $subject = truncate_string($subject, 120);
   $data['topic_title'] = truncate_string($data['topic_title'], 120);

#
#------- [OPEN] -----------
#
styles\prosilver\template\mcp_topic.html

#
#------- [FIND] -----------
#
<dd><input type="text" name="subject" id="subject" size="45" maxlength="64" tabindex="2" value="{SPLIT_SUBJECT}" title="Type the post subject" class="inputbox" /></dd>

#
#------- [REPLACE WITH] -----------
#
<dd><input type="text" name="subject" id="subject" size="60" maxlength="128" tabindex="2" value="{SPLIT_SUBJECT}" title="Type the post subject" class="inputbox" /></dd>

#
#------- [OPEN] -----------
#
styles\subsilver2\template\posting_body.html

#
#------- [FIND] -----------
#
      <input class="post" style="width:450px" type="text" name="subject" size="45" maxlength="<!-- IF S_NEW_MESSAGE -->60<!-- ELSE -->64<!-- ENDIF -->" tabindex="2" value="{SUBJECT}" />

#
#------- [REPLACE WITH] -----------
#
      <input class="post" style="width:450px" type="text" name="subject" size="60" maxlength="<!-- IF S_NEW_MESSAGE -->120<!-- ELSE -->128<!-- ENDIF -->" tabindex="2" value="{SUBJECT}" />

#
#------- [OPEN] -----------
#
styles\subsilver2\template\mcp_topic.html

#
#------- [FIND] -----------
#
<input class="post" style="width: 350px" type="text" size="35" maxlength="64" name="subject" value="{SPLIT_SUBJECT}" />

#
#------- [REPLACE WITH] -----------
#
<input class="post" style="width: 350px" type="text" size="45" maxlength="128" name="subject" value="{SPLIT_SUBJECT}" />


После внесения изменений в файлы не забудьте очистить кэш в администраторском разделе.

Можно изменить значение по умолчанию $max_length в truncate_string, тогда правка functions_posting.php не потребуется.
Последний раз редактировалось Поручик 15.12.2007 18:33, всего редактировалось 2 раз(а).
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB2 | FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/
Аватара пользователя
Поручик
Его Благородие
Его Благородие
 
Сообщения: 3761
Зарегистрирован: 12.05.2005 17:25
Откуда: Оренбург (Южный Урал)

Re: [FAQ] Как изменить длину названия темы?

Сообщение RedNaxi 22.08.2008 14:44

на оффсайте предложили еще такое дополнение к моду:
Код: Выделить всё
    ALTER TABLE phpbb3_forums CHANGE `forum_last_post_subject` `forum_last_post_subject` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
которое по идее должно решить проблему
Общая ошибка
SQL ERROR [ mysql4 ]

Data too long for column 'forum_last_post_subject' at row 1 [1406]
Программирую всякую чушь за еду.
Контакт
Над этим, и не только, я когда-то работал.
Аватара пользователя
RedNaxi
phpBB 2.0.18
 
Сообщения: 1169
Зарегистрирован: 21.02.2007 3:05
Откуда: BMK :)

Re: [FAQ] Как изменить длину названия темы?

Сообщение Палыч 22.08.2008 14:51

Интересно, а зачем CHANGE, если имя поля остаётся то же... достаточно MODIFY
Код: Выделить всё
ALTER TABLE phpbb3_forums MODIFY `forum_last_post_subject` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Никогда не бойся делать то, что ты пока не умеешь. Помни, что Ковчег был построен любителем. Профессионалы строили Титаник...
Аватара пользователя
Палыч
Просто Палыч
 
Сообщения: 6699
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер

Re: [FAQ] Как изменить длину названия темы?

Сообщение RedNaxi 25.08.2008 13:25

В итоге окончательный вариант выглядит так:
Код: Выделить всё
        #
        #------- [SQL] -----------
        #
        ALTER TABLE `phpbb_posts` MODIFY  `post_subject` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
        ALTER TABLE `phpbb_topics` MODIFY `topic_title` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
        ALTER TABLE `phpbb_forums` MODIFY `forum_last_post_subject` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
        #
        #------- [OPEN] -----------
        #
        includes\functions_posting.php

        #
        #------- [FIND] -----------
        #
           $subject = truncate_string($subject);
           $data['topic_title'] = truncate_string($data['topic_title']);

        #
        #------- [REPLACE WITH] -----------
        #
           $subject = truncate_string($subject, 120);
           $data['topic_title'] = truncate_string($data['topic_title'], 120);

        #
        #------- [OPEN] -----------
        #
        styles\prosilver\template\mcp_topic.html

        #
        #------- [FIND] -----------
        #
        <dd><input type="text" name="subject" id="subject" size="45" maxlength="64" tabindex="2" value="{SPLIT_SUBJECT}" title="Type the post subject" class="inputbox" /></dd>

        #
        #------- [REPLACE WITH] -----------
        #
        <dd><input type="text" name="subject" id="subject" size="60" maxlength="128" tabindex="2" value="{SPLIT_SUBJECT}" title="Type the post subject" class="inputbox" /></dd>

        #
        #------- [OPEN] -----------
        #
        styles\subsilver2\template\posting_body.html

        #
        #------- [FIND] -----------
        #
              <input class="post" style="width:450px" type="text" name="subject" size="45" maxlength="<!-- IF S_NEW_MESSAGE -->60<!-- ELSE -->64<!-- ENDIF -->" tabindex="2" value="{SUBJECT}" />

        #
        #------- [REPLACE WITH] -----------
        #
              <input class="post" style="width:450px" type="text" name="subject" size="60" maxlength="<!-- IF S_NEW_MESSAGE -->120<!-- ELSE -->128<!-- ENDIF -->" tabindex="2" value="{SUBJECT}" />

        #
        #------- [OPEN] -----------
        #
        styles\subsilver2\template\mcp_topic.html

        #
        #------- [FIND] -----------
        #
        <input class="post" style="width: 350px" type="text" size="35" maxlength="64" name="subject" value="{SPLIT_SUBJECT}" />

        #
        #------- [REPLACE WITH] -----------
        #
        <input class="post" style="width: 350px" type="text" size="45" maxlength="128" name="subject" value="{SPLIT_SUBJECT}" />
        #
        #------- [OPEN] -----------
        #
        styles\prosilver\template\posting_editor.html

        #
        #------- [FIND] -----------
        #

              <dd><input type="text" name="subject" id="subject" size="45" maxlength="<!-- IF S_NEW_MESSAGE -->60<!-- ELSE -->64<!-- ENDIF -->" tabindex="2" value="{SUBJECT}{DRAFT_SUBJECT}" class="inputbox autowidth" /></dd>

        #
        #------- [REPLACE WITH] -----------
        #
              <dd><input type="text" name="subject" id="subject" size="60" maxlength="<!-- IF S_NEW_MESSAGE -->124<!-- ELSE -->128<!-- ENDIF -->" tabindex="2" value="{SUBJECT}{DRAFT_SUBJECT}" class="inputbox autowidth" /></dd>

и вроде как работает у меня:)
предлагаю вынести в первый пост...
Программирую всякую чушь за еду.
Контакт
Над этим, и не только, я когда-то работал.
Аватара пользователя
RedNaxi
phpBB 2.0.18
 
Сообщения: 1169
Зарегистрирован: 21.02.2007 3:05
Откуда: BMK :)

Re: [FAQ] Как изменить длину названия темы?

Сообщение zolti 20.09.2008 13:01

Я конечно не очень разбираюсь в SQL, но 200 varchar мне не хватило, я поставил 400, на что он мне ответил что максимально 255, и сказал если хотите больше лучше varchar сменить на blob, что я и сделал. в итоге длина сообщения в поле тема может составлять то значение, которое вы укажите уже непосредственно в файлах настройки, о которых было написано в предыдущем посте.
к примеру:
$subject = truncate_string($subject, 250);
$data['topic_title'] = truncate_string($data['topic_title'], 250);
zolti
phpBB 1.2.0
 
Сообщения: 10
Зарегистрирован: 17.09.2008 20:32
Предупреждения: 1

Re: [FAQ] Как изменить длину названия темы?

Сообщение crash 20.09.2008 13:05

zolti
в названии темы 400 символов. Там можно изложить всю проблему, а не только тему назвать. Может поле сообщение вообще можно удалить.
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Аватара пользователя
crash
Support Team Leader
 
Сообщения: 6715
Зарегистрирован: 07.07.2004 17:12
Откуда: Мирный

Re: [FAQ] Как изменить длину названия темы?

Сообщение crash 20.09.2008 13:27

не вижу смысла в аком названии темы, но дело ваше
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Аватара пользователя
crash
Support Team Leader
 
Сообщения: 6715
Зарегистрирован: 07.07.2004 17:12
Откуда: Мирный

Re: [FAQ] Как изменить длину названия темы?

Сообщение Поручик 20.09.2008 16:05

Тему почистил, впредь попрошу не флудить в справочном разделе.
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB2 | FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/
Аватара пользователя
Поручик
Его Благородие
Его Благородие
 
Сообщения: 3761
Зарегистрирован: 12.05.2005 17:25
Откуда: Оренбург (Южный Урал)

Re: [FAQ] Как изменить длину названия темы?

Сообщение Ludmila 29.09.2008 13:59

Поручик
Цитата:
- - - - - - - - - - - - - - - -
После внесения изменений в файлы не забудьте очистить кэш в администраторском разделе.

Можно изменить значение по умолчанию $max_length в truncate_string, тогда правка functions_posting.php не потребуется.
- - - - - - - - - - - - - - - -
а где, в каком файле, можно заменить $max_length??? Подскажите плзз, я чайник полный :(
Ludmila
phpBB 1.0.0
 
Сообщения: 1
Зарегистрирован: 29.09.2008 13:44

Re: [FAQ] Как изменить длину названия темы?

Сообщение Палыч 29.09.2008 14:17

Ludmila
файл functions_content.php
Код: Выделить всё
function truncate_string($string, $max_length = 60, $max_store_length = 255, $allow_reply = true, $append = '')
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Никогда не бойся делать то, что ты пока не умеешь. Помни, что Ковчег был построен любителем. Профессионалы строили Титаник...
Аватара пользователя
Палыч
Просто Палыч
 
Сообщения: 6699
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер

Re: [FAQ] Как изменить длину названия темы?

Сообщение sprintstar 04.10.2008 20:48

Подскажите, сделал все как написано в 5-ом посте, но ограничение 60 символов, в названии темы так и осталось, это касается стиля prosilver, так как только что попробовал переключится на subsilver2, там спокойно вводится более 60 знаков.

P.S> Жаль разработчики заранее не позаботились об этом, 60 символов действительно мало, вот 120 в самый раз.
Аватара пользователя
sprintstar
phpBB 1.0.0
 
Сообщения: 8
Зарегистрирован: 24.07.2007 4:12


Вернуться в FAQ (phpBB 3.0.x)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0