Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Мануальное добавление топиков.
Мануальное добавление топиков.
Как манулально добавлять топики? Т.е. не использую сам скрипт форума. Мне надо чтобы при создании новых разделов на сайте автоматически создавались топики на форуме.
Может кто подскажет?
Вот например у меня есть:
Уже существующий раздел форума - FAQ.
Зарегистрированый пользователь - USER.
База данных MySQL 3.
Тема топика который надо добавить - TOPIC THEME.
Текст топика - TOPIC TEXT.
Мне всего лишь надо знать в какие поля каких таблиц надо добавлять вышеописанные данные.
Может кто подскажет?
Вот например у меня есть:
Уже существующий раздел форума - FAQ.
Зарегистрированый пользователь - USER.
База данных MySQL 3.
Тема топика который надо добавить - TOPIC THEME.
Текст топика - TOPIC TEXT.
Мне всего лишь надо знать в какие поля каких таблиц надо добавлять вышеописанные данные.
-
- phpBB Guru
- Сообщения: 5484
- Зарегистрирован: 20 лет 2 месяца
- Поблагодарили: 2 раза
Необходимо будет работать со следующими таблицами: phpbb_posts, phpbb_posts_text, phpbb_topics
Структура phpbb_posts:
Структура phpbb_posts_text:
Структура phpbb_topics:
Сначала создаешь пост. Затем, имея уже на руках его id - создаешь текст. Потом - тему. В заключение добавляешь тему в поисковую систему форума и обновляешь поле forum_last_post_id в таблице phpbb_forums.
Структура phpbb_posts:
Код: Выделить всё
`post_id` mediumint(8) unsigned NOT NULL auto_increment, - id сообщения
`topic_id` mediumint(8) unsigned NOT NULL default '0', - id темы
`forum_id` smallint(5) unsigned NOT NULL default '0', - id форума
`poster_id` mediumint(8) NOT NULL default '0', - id автора
`post_time` int(11) NOT NULL default '0', - время в формате unix timestamp
`poster_ip` varchar(8) NOT NULL default '', - ip пользователя, закодирован в 16-ричной системе счисления
`post_username` varchar(25) default NULL, - имя пользователя, если сообщение отправлено гостем
`enable_bbcode` tinyint(1) NOT NULL default '1', - BBCode
`enable_html` tinyint(1) NOT NULL default '0', - html
`enable_smilies` tinyint(1) NOT NULL default '1', - смайлики
`enable_sig` tinyint(1) NOT NULL default '1', - подпись
`post_edit_time` int(11) default NULL, - время последнего редактирования
`post_edit_count` smallint(5) unsigned NOT NULL default '0', - количество редактирований
Код: Выделить всё
`post_id` mediumint(8) unsigned NOT NULL default '0', - id сообщения
`bbcode_uid` varchar(10) NOT NULL default '', - уникальный id ббкода
`post_subject` varchar(60) default NULL, - тема
`post_text` text, - текст
Код: Выделить всё
`topic_id` mediumint(8) unsigned NOT NULL auto_increment, - id темы
`forum_id` smallint(8) unsigned NOT NULL default '0', - id форума
`topic_title` char(60) NOT NULL default '', - название темы
`topic_poster` mediumint(8) NOT NULL default '0', - id автора
`topic_time` int(11) NOT NULL default '0', - время начала темы (unix timestamp)
`topic_views` mediumint(8) unsigned NOT NULL default '0', - просмотров
`topic_replies` mediumint(8) unsigned NOT NULL default '0', - ответов
`topic_status` tinyint(3) NOT NULL default '0', - статус темы
`topic_vote` tinyint(1) NOT NULL default '0', - id опроса (если есть)
`topic_type` tinyint(3) NOT NULL default '0', - тип темы
`topic_first_post_id` mediumint(8) unsigned NOT NULL default '0', - id первого поста темы
`topic_last_post_id` mediumint(8) unsigned NOT NULL default '0', - id последнего поста темы
`topic_moved_id` mediumint(8) unsigned NOT NULL default '0', - если тема была перемещена, то здесь id новой темы
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
-
- phpBB Guru
- Сообщения: 5484
- Зарегистрирован: 20 лет 2 месяца
- Поблагодарили: 2 раза
mckey
Он создается следующей функцией:
BBCODE_UID_LEN равно 10. Сам же уникальный id подставляется в парные теги bbcode, т.е. вместо мы должны записать в БД [b:uid]
Он создается следующей функцией:
Код: Выделить всё
function make_bbcode_uid()
{
// Unique ID for this message..
$uid = md5(mt_rand());
$uid = substr($uid, 0, BBCODE_UID_LEN);
return $uid;
}
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
-
- phpBB 1.4.4
- Сообщения: 103
- Зарегистрирован: 19 лет 11 месяцев
Re: Мануальное добавление топиков.
Возьми "[Function] Insert Post", написанную netclectic:mckey писал(а):Как манулально добавлять топики? Т.е. не использую сам скрипт форума. Мне надо чтобы при создании новых разделов на сайте автоматически создавались топики на форуме.
Может кто подскажет?
Вот например у меня есть:
Уже существующий раздел форума - FAQ.
Зарегистрированый пользователь - USER.
База данных MySQL 3.
Тема топика который надо добавить - TOPIC THEME.
Текст топика - TOPIC TEXT.
Мне всего лишь надо знать в какие поля каких таблиц надо добавлять вышеописанные данные.
http://www.netclectic.com/forums/download.php?id=154
Там есть всё для добавления новых сообщений/топиков. Только вызывай функцию с нужными параметрами - будут тебе новые топики.
// romutis
Он создается следующей функцией:
Код:
function make_bbcode_uid()
{
// Unique ID for this message..
$uid = md5(mt_rand());
$uid = substr($uid, 0, BBCODE_UID_LEN);
return $uid;
}
BBCODE_UID_LEN равно 10. Сам же уникальный id подставляется в парные теги bbcode, т.е. вместо мы должны записать в БД [b:uid]
Ага, вроде понятное. Сегодня вечером буду пробывать.
-------------------------------
Возьми "[Function] Insert Post", написанную netclectic:
http://www.netclectic.com/forums/download.php?id=154
Там есть всё для добавления новых сообщений/топиков. Только вызывай функцию с нужными параметрами - будут тебе новые топики.
Да помоему легче своё написать. Ато хрен его знает как там эти перцы чего написали. Разбираться в уже написанном часто бывает сложнее, чем написать самому.
-
- phpBB 1.4.4
- Сообщения: 103
- Зарегистрирован: 19 лет 11 месяцев
Да там не надо ничего разбираться. Вызываешь функцию с нужными параметрами - и готово! "Внутренности" функции даже знать необязательно. А то, что netclectic пишет правильный код - у меня, лично, сомнений нет.mckey писал(а):Да помоему легче своё написать. Ато хрен его знает как там эти перцы чего написали. Разбираться в уже написанном часто бывает сложнее, чем написать самому.
Хотя, хозяин-барин.
// romutis
Всё круто! Всё заработало.
Только надо ещё обязательно увеличивать ещё поля forum_posts и forum_topics в таблице phpbb_forums. Ато потом добавленые посты и топики считаться не будут.
З.Ы.
А в том, что netclectic пишет правильный код я даже не сомневаюсь.
Только надо ещё обязательно увеличивать ещё поля forum_posts и forum_topics в таблице phpbb_forums. Ато потом добавленые посты и топики считаться не будут.
romutis, мне, как начинающему php'шнику гораздо полезнее написать какую-нить функцию самому, нежели пользоваться наработками других.Да там не надо ничего разбираться. Вызываешь функцию с нужными параметрами - и готово! "Внутренности" функции даже знать необязательно. А то, что netclectic пишет правильный код - у меня, лично, сомнений нет.
З.Ы.
А в том, что netclectic пишет правильный код я даже не сомневаюсь.
-
- phpBB Guru
- Сообщения: 5484
- Зарегистрирован: 20 лет 2 месяца
- Поблагодарили: 2 раза
mckey
Sorry, забыл сказать про это:
Необходимо вставить в начало скрипта.
Sorry, забыл сказать про это:
Код: Выделить всё
// Need to initialize the random numbers only ONCE
mt_srand( (double) microtime() * 1000000);
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
-
- phpBB Guru
- Сообщения: 5484
- Зарегистрирован: 20 лет 2 месяца
- Поблагодарили: 2 раза
mckey
Читаем:
http://www.php.net/manual/en/function.mt-rand.php
http://www.php.net/manual/en/function.mt-srand.php
Разные ф-и, (видимо) разные алгоритмы.
Читаем:
http://www.php.net/manual/en/function.mt-rand.php
http://www.php.net/manual/en/function.mt-srand.php
Разные ф-и, (видимо) разные алгоритмы.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
-
- phpBB Guru
- Сообщения: 5484
- Зарегистрирован: 20 лет 2 месяца
- Поблагодарили: 2 раза