Страница 8 из 10
Re: Создание топиков - Тем на форуме с "сайта".
Добавлено: 26.02.2015 16:15
Payalnik610
Довел до такого состояния:
Код: Выделить всё
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
require_once($phpbb_root_path . '/includes/functions_posting.' . $phpEx);
$poll = $uid = $bitfield = $options = '';
generate_text_for_storage($topic_text, $uid, $bitfield, $options, true, true, true);
$topic_title = "Шашал" ;
$topic_text = "Как строить шалаши";
$fid = 3;
$user_id = 2;
$data = array(
'topic_title' => $topic_title, // Subject
'forum_id' => $fid, // тут ID форума
'forum_name' => '',
'icon_id' => 0,
'poster_id' => $user_id, // Тут ID юзера, от имени которого размещается пост
'enable_bbcode' => (bool) true,
'enable_smilies' => (bool) true,
'enable_urls' => (bool) true,
'enable_sig' => (bool) true,
'notify' => 0,
'notify_set' => '',
'enable_indexing' => (bool) false,
'message' => $topic_text,
'message_md5' => (string) '',
'bbcode_bitfield' => $bitfield,
'bbcode_uid' => $uid,
'post_edit_locked' => 0,
);
submit_post('post', $topic_title, $username, 0, $poll, $data, false); // $username - ник юзера, от имени которого размещается пост
?>
Теперь ошибка:
Код: Выделить всё
SQL ERROR [ mysqli ]
Column 'topic_first_poster_name' cannot be null [1048]
An sql error occurred while fetching this page. Please contact an administrator if this problem persists.
Re: Создание топиков - Тем на форуме с "сайта".
Добавлено: 26.02.2015 16:35
Татьяна5
1.
Код: Выделить всё
generate_text_for_storage($topic_text, $uid, $bitfield, $options, true, true, true);
$topic_title = "Шашал" ;
$topic_text = "Как строить шалаши";
Сначала
$topic_text
обрабатывается, а потом задаётся. Надо наоборот.
2. Где задана переменная
$username
?
Re: Создание топиков - Тем на форуме с "сайта".
Добавлено: 26.02.2015 16:42
Payalnik610
так ввел принудительно $username, теперь следующее предупреждение : Column 'topic_first_poster_colour' cannot be null. Как цвет указать в этом скрипте?
Код: Выделить всё
<?php
$topic_title = "Шашал" ;
$topic_text = "Как строить шалаши";
$fid = 3;
$user_id = 2;
$username = "vnovikov";
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
require_once($phpbb_root_path . '/includes/functions_posting.' . $phpEx);
$poll = $uid = $bitfield = $options = '';
generate_text_for_storage($topic_text, $uid, $bitfield, $options, true, true, true);
$data = array(
'topic_title' => $topic_title, // Subject
'forum_id' => $fid, // тут ID форума
'forum_name' => '',
'icon_id' => 0,
'poster_id' => $user_id, // Тут ID юзера, от имени которого размещается пост
'enable_bbcode' => (bool) true,
'enable_smilies' => (bool) true,
'enable_urls' => (bool) true,
'enable_sig' => (bool) true,
'notify' => 0,
'notify_set' => '',
'enable_indexing' => (bool) false,
'message' => $topic_text,
'message_md5' => (string) '',
'bbcode_bitfield' => $bitfield,
'bbcode_uid' => $uid,
'post_edit_locked' => 0,
);
submit_post('post', $topic_title, $username, 0, $poll, $data, false); // $username - ник юзера, от имени которого размещается пост
?>
Добавлено спустя 3 минуты 14 секунд:
Татьяна5 писал(а):1.
Код: Выделить всё
generate_text_for_storage($topic_text, $uid, $bitfield, $options, true, true, true);
$topic_title = "Шашал" ;
$topic_text = "Как строить шалаши";
Сначала
$topic_text
обрабатывается, а потом задаётся. Надо наоборот.
Исправил, согласен был изначально...
Re: Создание топиков - Тем на форуме с "сайта".
Добавлено: 26.02.2015 16:55
Татьяна5
Попробуйте так:
После
Добавить
Код: Выделить всё
$user->data['user_id'] = $user_id;
$user->data['is_registered'] = 1;
$user->data['user_colour'] = (цвет ника, в шестнадцатеричном виде, без значка #);
$user->ip = (ip пользователя);
$user->data['username'] = $username;
И в массив
$data
ещё надо добавить
Re: Создание топиков - Тем на форуме с "сайта".
Добавлено: 27.02.2015 12:14
Payalnik610
Payalnik610 писал(а):Column 'topic_first_poster_colour' cannot be null. Как цвет указать в этом скрипте?
Так как найти выход...
Не заметил предыдущий пост, обновил. Проблема такая же, цвет..
Код: Выделить всё
$topic_title = "Шашал" ;
$topic_text = "Как строить шалаши";
$fid = 3;
$user_id = 2;
$username = "vnovikov";
$user->data['user_id'] = $user_id;
$user->data['is_registered'] = 1;
$user->data['user_colour'] = 'AAAAAA';
$user->ip = '127.0.0.0';
$user->data['username'] = $username;
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
require_once($phpbb_root_path . '/includes/functions_posting.' . $phpEx);
$poll = $uid = $bitfield = $options = '';
generate_text_for_storage($topic_text, $uid, $bitfield, $options, true, true, true);
$data = array(
'topic_title' => $topic_title, // Subject
'forum_id' => $fid, // тут ID форума
'forum_name' => '',
'icon_id' => 0,
'poster_id' => $user_id, // Тут ID юзера, от имени которого размещается пост
'enable_bbcode' => (bool) true,
'enable_smilies' => (bool) true,
'enable_urls' => (bool) true,
'enable_sig' => (bool) true,
'notify' => 0,
'notify_set' => '',
'enable_indexing' => (bool) false,
'message' => $topic_text,
'message_md5' => (string) '',
'bbcode_bitfield' => $bitfield,
'bbcode_uid' => $uid,
'post_edit_locked' => 0,
'force_approved_state' => 1,
);
submit_post('post', $topic_title, $username, 0, $poll, $data, false); // $username - ник юзера, от имени которого размещается пост
?>
Re: [FAQ] Как программно добавить тему / пост / личное сообщ
Добавлено: 27.02.2015 12:53
Татьяна5
Тогда без авторизации всё-таки не обойтись
Либо можно создать свою функцию на основе submit_post
и там прописать всё недостающее
Re: [FAQ] Как программно добавить тему / пост / личное сообщ
Добавлено: 27.02.2015 13:00
Sheer
Да не надо про авторизацию, правильно писать надо
Код: Выделить всё
<?php
/**
*
*
*/
/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . '/includes/functions_posting.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$topic_title = "Шашал" ;
$topic_text = "Как строить шалаши";
$fid = 3;
$user_id = 2;
$username = "vnovikov";
$user->data['user_id'] = $user_id;
$user->data['is_registered'] = 1;
$user->data['user_colour'] = 'AAAAAA';
$user->ip = '127.0.0.0';
$user->data['username'] = $username;
$poll = $uid = $bitfield = $options = '';
generate_text_for_storage($topic_text, $uid, $bitfield, $options, true, true, true);
$data = array(
'topic_title' => $topic_title, // Subject
'forum_id' => $fid, // тут ID форума
'forum_name' => '',
'icon_id' => 0,
'poster_id' => $user_id, // Тут ID юзера, от имени которого размещается пост
'enable_bbcode' => (bool) true,
'enable_smilies' => (bool) true,
'enable_urls' => (bool) true,
'enable_sig' => (bool) true,
'notify' => 0,
'notify_set' => '',
'enable_indexing' => (bool) false,
'message' => $topic_text,
'message_md5' => (string) '',
'bbcode_bitfield' => $bitfield,
'bbcode_uid' => $uid,
'post_edit_locked' => 0,
'force_approved_state' => 1,
);
submit_post('post', $topic_title, $username, 0, $poll, $data, false); // $username - ник юзера, от имени которого размещается пост
?>
Добавлено спустя 1 минуту 39 секунд:
Re: [FAQ] Как программно добавить тему / пост / личное сообщение
Payalnik610 писал(а):$user->data['is_registered'] = 1;
и остальное должно объявляться ПОСЛЕ
$user->setup();
Re: [FAQ] Как программно добавить тему / пост / личное сообщ
Добавлено: 27.02.2015 13:14
Payalnik610
Sheer Еху, заработало, спасибо большое. Щас буду до ума доводить, а как сделать чтобы эта тема в объявления попала?
Re: [FAQ] Как программно добавить тему / пост / личное сообщ
Добавлено: 27.02.2015 13:59
Sheer
После
добавить
В
submit_post('post', $topic_title, $username, 0, $poll, $data, false);
0 заменить на
POST_ANNOUNCE
Re: [FAQ] Как программно добавить тему / пост / личное сообщ
Добавлено: 27.02.2015 14:11
Payalnik610
Работает!!!, так и последнее как добавить подпись.
Re: [FAQ] Как программно добавить тему / пост / личное сообщ
Добавлено: 27.02.2015 14:13
Sheer
Re: [FAQ] Как программно добавить тему / пост / личное сообщ
Добавлено: 27.02.2015 16:16
Payalnik610
о все спасибо.
И так подведу итог.
Цель была такая:
есть сайт с таблицой базы данных (таблица отказов изделий) и прочей информацией и статистикой, (корень ./)
к сайту установлен форум, где описывается вся история по всему, есть форум где описаны все отказы по таблице. (./forum/)
Идея была такая: при добавлении отказа на сайт таблицы - требуется добавить тему на форум с краткой информацией.
Сгенерировать тему и текст не проблема.
завершение моего скрипта следующее:
Код: Выделить всё
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
require_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
// Start session management
$user->session_begin(false); // no update_session_page
// session_create($user_id = false, $set_admin = false, $persist_login = false, $viewonline = true)
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . '/includes/functions_posting.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$topic_title = $name_post ;
$topic_text = $text_post;
$fid = 3;
$user_id = 48;
$username = "prosistem";
$user->data['user_id'] = $user_id;
$user->data['is_registered'] = 1;
$user->data['user_colour'] = 'DD0000';
$user->ip = '127.0.0.0';
$user->data['username'] = $username;
$poll = $uid = $bitfield = $options = '';
generate_text_for_storage($topic_text, $uid, $bitfield, $options, true, true, true);
$data = array(
'topic_title' => $topic_title, // Subject
'forum_id' => $fid, // тут ID форума
'forum_name' => '',
'icon_id' => 0,
'poster_id' => $user_id, // Тут ID юзера, от имени которого размещается пост
'enable_bbcode' => (bool) true,
'enable_smilies' => (bool) true,
'enable_urls' => (bool) true,
'enable_sig' => (bool) true,
'notify' => 0,
'notify_set' => '',
'enable_indexing' => (bool) false,
'message' => $topic_text,
'message_md5' => (string) '',
'bbcode_bitfield' => $bitfield,
'bbcode_uid' => $uid,
'post_edit_locked' => 0,
'force_approved_state' => 1,
);
submit_post('post', $topic_title, $username, 0, $poll, $data, false); // $username - ник юзера, от имени которого размещается пост
echo "Создана новая тема на форуме";
$user->session_kill();
echo "<meta http-equiv=\"Refresh\" content=\"2;url=./failures.php\">";
mysql_close($link);
в результате получаем сообщение на нужном форуме в нужном оформлении. (кто хочет доводит под себя всю красоту и дизайн.)
Спасибо всем за помощь.
Re: [FAQ] Как программно добавить тему / пост / личное сообщ
Добавлено: 27.02.2015 16:26
Sheer
Код: Выделить всё
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
require_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
// Start session management
$user->session_begin(false); // no update_session_page
// session_create($user_id = false, $set_admin = false, $persist_login = false, $viewonline = true)
Совершенно лишнее, ибо потом следует
Код: Выделить всё
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . '/includes/functions_posting.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
и это тоже
хотя бы даже потому, что ресурс
$link
нигде не определен.
Re: [FAQ] Как программно добавить тему / пост / личное сообщ
Добавлено: 27.02.2015 18:11
Payalnik610
1. согласен, как то совсем не правильно скопипастил.
2. этот запрос от предыдущего скрипта, который делает запись в БД.
Re: [FAQ] Как программно добавить тему / пост / личное сообщ
Добавлено: 01.03.2015 9:07
Payalnik610
Написал скрипт который более-менее похож на задумку, теперь при выполнении записи отлетает авторизация на форуме. Запись на форум делаю под одним пользователем, а на форуме сижу под другим.
Добавлено спустя 1 минуту 19 секунд:
Re: [FAQ] Как программно добавить тему / пост / личное сообщение
Хотя при использовании тестового скрипта - тупо записи темы все нормально...
Добавлено спустя 2 минуты 38 секунд:
Re: [FAQ] Как программно добавить тему / пост / личное сообщение
нашел