И это правильно.dixon_che писал(а):Короче перестроил свои запросы через объект $db->
[FAQ] Как программно добавить тему / пост / личное сообщение
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение

-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: [FAQ] Как программно добавить тему / пост / личное сообщение
Re: [FAQ] Как программно добавить тему / пост / личное сообщение
Здравствуйте!
Попытался добавить программно тему в форум. Однако уже больше часа не могу разобраться, в чём проблема. Сделал по примеру показанному на сайте (ссылка на сайт из первых постов):
Спотыкается на функциях generate_text_for_storage и submit_post. Ошибка вроде как заключается в том, что
Попытался добавить программно тему в форум. Однако уже больше часа не могу разобраться, в чём проблема. Сделал по примеру показанному на сайте (ссылка на сайт из первых постов):
Код: Выделить всё
define('IN_PHPBB', true);
define('PHPBB_ROOT_PATH', '/home/idweb/html_test2/');
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require_once($phpbb_root_path . 'common.' . $phpEx);
require_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
$my_subject = utf8_normalize_nfc("New Post");
$my_text = utf8_normalize_nfc("Обсуждение песни бла бла бла");
// variables to hold the parameters for submit_post
$poll = $uid = $bitfield = $options = '';
generate_text_for_storage($my_subject, $uid, $bitfield, $options, false, false, false);
generate_text_for_storage($my_text, $uid, $bitfield, $options, true, true, true);
$data = array(
'forum_id' => 2,
'icon_id' => false,
'enable_bbcode' => true,
'enable_smilies' => true,
'enable_urls' => true,
'enable_sig' => true,
'message' => $my_text,
'message_md5' => md5($my_text),
'bbcode_bitfield' => $bitfield,
'bbcode_uid' => $uid,
'post_edit_locked' => 0,
'topic_title' => $my_subject,
'notify_set' => false,
'notify' => false,
'post_time' => 0,
'forum_name' => '',
'enable_indexing' => true,
);
$result = submit_post('post', $my_subject, '', POST_NORMAL, $poll, $data);
Заранее спасибо за помощьPHP Fatal error: Call to a member function sql_escape() on a non-object in ../functions.php on line 146
-
- phpBB 3.0.4
- Сообщения: 2215
- Стаж: 17 лет 4 месяца
- Откуда: Павлодар
- Благодарил (а): 2 раза
- Поблагодарили: 117 раз
Re: [FAQ] Как программно добавить тему / пост / личное сообщение
И форум при этом работает?
Навскидку в config.php тип БД не прописан.
Навскидку в config.php тип БД не прописан.
Всё повторяется. nurlan.info
Re: [FAQ] Как программно добавить тему / пост / личное сообщение
В том-то и дело что работает! Дело в том что из других файлов обращаюсь к другим функциям, и всё хорошо. А тут такое чуство, будто что-то не так подключил...
-
- phpBB 3.0.4
- Сообщения: 2215
- Стаж: 17 лет 4 месяца
- Откуда: Павлодар
- Благодарил (а): 2 раза
- Поблагодарили: 117 раз
Re: [FAQ] Как программно добавить тему / пост / личное сообщение
В качестве безумной идеи, попробуйти заменить на относительный путь:
и ещё проверьте настройки safe_mode и open_basedir
Код: Выделить всё
define('PHPBB_ROOT_PATH', '/home/idweb/html_test2/');
Всё повторяется. nurlan.info
Re: [FAQ] Как программно добавить тему / пост / личное сообщение
"безумная" идея не проконала :(
С настройками вроде тоже всё окей.. Не понятно просто почему вызов других функций работает. А здесь эта - не работает...
С настройками вроде тоже всё окей.. Не понятно просто почему вызов других функций работает. А здесь эта - не работает...
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: [FAQ] Как программно добавить тему / пост / личное сообщение
В common.php посмотрите, includes/functions_content.php подключен?
Re: [FAQ] Как программно добавить тему / пост / личное сообщение
Подключен. Не подключен includes/functions_posting.php, который, как я полагаю, нужен. его я подключил руками, после подключения common.php у себя в скрипте
-
- Former team member
- Сообщения: 408
- Стаж: 16 лет 8 месяцев
- Откуда: Абакан, Сибирь
- Благодарил (а): 1 раз
-
- phpBB 1.4.2
- Сообщения: 63
- Стаж: 16 лет 3 месяца
- Благодарил (а): 2 раза
Re: [FAQ] Как программно добавить тему / пост / личное сообщение
Подскажите пожалуйста, каким образом можно получить текущую сессию? А то создавать новую не айс.
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: [FAQ] Как программно добавить тему / пост / личное сообщение
1) причем тут эта тема?
2) что значит получить сессию? Интеграция сессии
Но это совсем другая тема.
2) что значит получить сессию? Интеграция сессии
Код: Выделить всё
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
-
- phpBB 1.4.2
- Сообщения: 63
- Стаж: 16 лет 3 месяца
- Благодарил (а): 2 раза
Re: [FAQ] Как программно добавить тему / пост / личное сообщение
rxu
Это какраз та тема. Я программно добавляю пост, а меня кидает из админки. Вот и хочу без поднятия новой сессии под id админа. Т.е. просто получить текущую сессию админа.
Добавлено спустя 22 минуты 7 секунд:
И еще один вопросик с ходу:
Меняю значение в post_time массива data, а конечный пост пишется всё-равно с текущим тайм штампом. Подскажите каким образом я могу передать в submit_post () произвольный тайм штамп?
Это какраз та тема. Я программно добавляю пост, а меня кидает из админки. Вот и хочу без поднятия новой сессии под id админа. Т.е. просто получить текущую сессию админа.
Добавлено спустя 22 минуты 7 секунд:
И еще один вопросик с ходу:
Меняю значение в post_time массива data, а конечный пост пишется всё-равно с текущим тайм штампом. Подскажите каким образом я могу передать в submit_post () произвольный тайм штамп?
-
- phpBB 1.4.2
- Сообщения: 63
- Стаж: 16 лет 3 месяца
- Благодарил (а): 2 раза
Re: [FAQ] Как программно добавить тему / пост / личное сообщение
Не ужели никто не может подсказать по post_time?
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: [FAQ] Как программно добавить тему / пост / личное сообщение
posting.php
из массива $data.
Код: Выделить всё
'post_time' => (isset($post_data['post_time'])) ? (int) $post_data['post_time'] : $current_time,