дополнительное поле к phpbb_topics

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
phillip
phpBB 1.0.0
Сообщения: 7
Стаж: 19 лет 1 месяц

дополнительное поле к phpbb_topics

Сообщение phillip »

здравствуйте)
хочу в бд добавить дополнительное поле rel_users к таблице phpbb_topics. Добавляю- форум перестает работать, при вставке строки возникает ошибка. Ну это само собой.
ищу как делается INSERT Запрос. вижу в файле posting.php строку, вызывающую функцию submit_post. Добавляю аргумент. Сама функция декларируется в файле includes/functions_posting.php
вот она:

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

function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $update_message = true)
{
...
$sql = 'INSERT INTO ' . TOPICS_TABLE . ' ' .
$db->sql_build_array('INSERT', $sql_data[TOPICS_TABLE]['sql']);
$db->sql_query($sql);
....
}
тогда я добавил к массиву $sql_data[TOPICS_TABLE]['sql'] еще одно значение, вышло нечто вроде

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

function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $update_message = true, $rel_users)
{
...
$sql_data[TOPICS_TABLE]['sql']['rel_users']=$rel_users;
$sql = 'INSERT INTO ' . TOPICS_TABLE . ' ' .
$db->sql_build_array('INSERT', $sql_data[TOPICS_TABLE]['sql']);
$db->sql_query($sql);
....
}
Не выходит! После sql_build_array() мне возвращается sql который все равно не содержит моей rel_users.

Кто добавлял поля к таблицам, помогите, пожалуйста
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 17 лет 6 месяцев
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 3 раза
Поблагодарили: 351 раз

Re: дополнительное поле к phpbb_topics

Сообщение MIT »

Полю в базе надо указать значение по-умолчанию, иначе любой не твой INSERT запрос к изменённой таблице будет обламываться.
phillip
phpBB 1.0.0
Сообщения: 7
Стаж: 19 лет 1 месяц

Re: дополнительное поле к phpbb_topics

Сообщение phillip »

у меня тип поля "text", ему по умолчанию значение нельзя указывать. в нем у меня будут храниться айдишники юзеров, например 1, 32, 4543, 534, 5345, 21. это юзеры, которые привязаны к этому топику. их может быть сколько угодно, поэтому я не указываю varchar (255).

насчет того что НЕ МОЙ инсерт. дак я и хочу не делать свой, а заменить тот который дефолтный. Или не стоит?
Аватара пользователя
FladeX
Former team member
Сообщения: 1935
Стаж: 19 лет 3 месяца
Откуда: Саранск
Благодарил (а): 7 раз
Поблагодарили: 59 раз

Re: дополнительное поле к phpbb_topics

Сообщение FladeX »

Так submit_post() логичнее оставить как есть, а для заполнения нового поля лучше сделать отдельную функцию-обработчик.
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
phillip
phpBB 1.0.0
Сообщения: 7
Стаж: 19 лет 1 месяц

Re: дополнительное поле к phpbb_topics

Сообщение phillip »

но submit_post() я не могу оставить как есть, потому что она ругается что не может сделать INSERT в базу данных. а не может потому что дефолтного нет значения у моего нового поля. А установить дефолтное я не могу, т.к. поле- тип "text"
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 17 лет 6 месяцев
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 3 раза
Поблагодарили: 351 раз

Re: дополнительное поле к phpbb_topics

Сообщение MIT »

У тебя изначально неверный подход к решению задачи. Из такой архитектуры мало что хорошего может получиться.
Я бы сделал следующим образом: создал свою таблицу с int-полями для номера топика и номера пользователя, куда бы и складывал всю информацию. При этом не придётся портить ни исходный код, ни исходную структуру базы форума, да и работа с числами куда как более быстрое занятие, нежели со строками.

Вернуться в «Для авторов (phpBB 3.0.x)»