Как добавить новое поле (не "дополнительное")?

запись не в post_text таблицы phpbb_posts

 • Просмотры: 657
St
Stepler
Благодарил (а): 1 раз
Сообщения: 24
Зарегистрирован: 09 май 2011, 18:30
Сообщение

Как добавить новое поле (не "дополнительное")?

21 май 2011, 22:18

Мне нужно добавить поле "Номер фильма". Данные с этого поля не будут выводится в посте; указанное число (номер фильма) должен располагатся не post_text таблицы phpbb_posts, а отдельно, например в той же таблице, но в столбце number_film, что бы его легко было найти.

"Дополнительные поля" (viewtopic.php?f=26&t=1083) не подходят, т.к. информация с них скидывается в общий пост в post_text и найти потом пост с нужным номером фильма будет проблематично.

Для форумов phpBB3 есть неплохой мод Simple Topic Description 0.0.2 (по-сути это просто инструкция по внесению изменений в БД и файлы форума), который позволяет создавать новые поля с нужным расположением данных в БД.

Этот мод работает, но только для новых тем создаваемых в разделе форума. В разделах где "Тип форума:"="Является категорией трекера" новое поле при создании темы не отображается.

В PHP и MySQL я малость разбираюсь, но самостояетельно проблему решить не смог. Вопрос для меня не праздный, задание номера фильма при создании раздачи необходимо мне для того чтобы связать ее (раздачу) с уже сущуствующей на моем сайте базой фильмов.

В общем знает ли кто-нибудь как сделать так чтобы мод Simple Topic Description работал и для тем в трекере? Или какой-то иной способ создать поле с отдельной записью в БД?
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1619 раз
Сообщения: 10275
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Как добавить новое поле (не "дополнительное")?

22 май 2011, 11:35

Если не ошибаюсь, этот мод позволяет лишь добавить описание для создаваемой темы, а не "создавать новые поля с нужным расположением данных в БД", он должен нормально работать и в трекере, как минимум нужно в инструкции где описывается правка шаблонов, править и шаблоны трекера, т.е. если указано: изменить что-то в файле viewtopic_body.html, то-же самое нужно сделать и в viewtopic_tracker_body.html и т.д.
St
Stepler
Благодарил (а): 1 раз
Сообщения: 24
Зарегистрирован: 09 май 2011, 18:30
Сообщение

Как добавить новое поле (не "дополнительное")?

22 май 2011, 13:32

Да, при точном выполнении инструкции мода создается поле description с записью данных в таблицы phpbb_drafts (поле `draft_description`) и phpbb_topics (поле `topic_description`), но так как порядок действий универсальный, то аналогично можно сделать поле с любым названием, заменив, например, все "description" в инструкции на "number" (или другое название).
PPK писал(а):он должен нормально работать и в трекере, как минимум нужно в инструкции где описывается правка шаблонов, править и шаблоны трекера, т.е. если указано: изменить что-то в файле viewtopic_body.html, то-же самое нужно сделать и в viewtopic_tracker_body.html и т.д.
Я попробовал самостоятельно разобраться, но пока безуспешно.

По инструкции мода я добавляю (только добавляю !) новые строки в файлы:
- posting.php
- search.php
- viewforum.php
- viewtopic.php
- includes/functions_posting.php
- includes/ucp/ucp_main.php
- language/en/posting.php (в моем случае language/ru/posting.php).

Я также пришел к выводу что нужно найти аналогичные файлы для трекера, но все оказалось не так просто.
Например, в файле viewtopic.php нужно после строки
$topic_data['topic_title'] = censor_text($topic_data['topic_title']);
добавить строчку
$topic_data['topic_description'] = censor_text($topic_data['topic_description']);.
Файл viewtopic*.php с такой строкой один, т.е. нет такого же файла исключительно для трекера.

Получается менять надо не так и не все. Структуры же файлов трекера я не знаю.
Могу выложить инструкцию мода, может подскажете простое решение. Если оттуда выкинуть все лишнее, то она не большая.
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1619 раз
Сообщения: 10275
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Как добавить новое поле (не "дополнительное")?

23 май 2011, 14:24

это файлы стиля просильвер которые нужно менять
styles/prosilver/template/search_results.html
styles/prosilver/template/viewforum_body.html
styles/prosilver/template/viewtopic_body.html
в трекере нужно сделать то-же самое в файлах
styles/prosilver/template/search_results_tracker.html
styles/prosilver/template/viewforum_tracker_body.html
styles/prosilver/template/viewtopic_tracker_body.html
попробовать установить мод на трекер и самому проверить - у меня пока нет времени.

для сабсильвера
styles/subsilver2/template/posting_tracker_body.html
styles/subsilver2/template/search_results_tracker.html
styles/subsilver2/template/viewforum_tracker_body.html
styles/subsilver2/template/viewtopic_tracker_body.html
St
Stepler
Благодарил (а): 1 раз
Сообщения: 24
Зарегистрирован: 09 май 2011, 18:30
Сообщение

Как добавить новое поле (не "дополнительное")?

24 май 2011, 00:01

Частично решил проблему.

Сравнил posting_tracker_body.html и posting_body.html.
В posting_tracker_body.html отсутстовали строки

Код: Выделить всё

<!-- IF S_DESCRIPTION -->
<tr>
	<td class="row1" width="22%"><b class="genmed">{L_DESCRIPTION}:</b></td>
	<td class="row2" width="78%"><input class="post" style="width:450px" type="text" name="description" size="45" maxlength="60" tabindex="2" value="{TOPIC_DESCRIPTION}" /></td>
</tr>
<!-- ENDIF -->
После вставки и очистки кэша поле "description" появилось. Сделал пробную раздачу с заполнением этого поля - все работает.

"Частично" решил потому что мне в итоге от мода нужно было не поле "description", а свое, с другим названием. Как его сделать согласно инструкции мода я знаю. Смущает вышеприведенный код с переменными {L_DESCRIPTION} и {TOPIC_DESCRIPTION}, которые существовали без всяких вставок из мода.
Получается если я захочу создать поле с другим названием мне надо будет изменять и эти переменные? Где они описываются?

Добавлено спустя 11 часов 53 минуты 24 секунды:
Stepler писал(а):"Частично" решил потому что мне в итоге от мода нужно было не поле "description", а свое, с другим названием. Как его сделать согласно инструкции мода я знаю. Смущает вышеприведенный код с переменными {L_DESCRIPTION} и {TOPIC_DESCRIPTION}, которые существовали без всяких вставок из мода. Получается если я захочу создать поле с другим названием мне надо будет изменять и эти переменные? Где они описываются?
И с этим разобрался.

РРК, спасибо за наводку.

Вернуться в «Вопросы, ответы и примеры решений»