Post 通过 PHP 到 SMF 论坛
Post to SMF Forum via PHP
我正在构建一个支持网站的 CMS,该网站还包含一个 SMF 论坛 (2.0.11)。 CMS 中的一个模块涉及一个 "report" 来跟踪出勤率。该数据在 smf 之外但在同一数据库中的 tables 中查询。除了它现在所做的之外,我还希望在包含格式化内容的 SMF 论坛上的特定版块中制作 post。由于所有 post 都包含在数据库中,这当然是可能的,但它似乎不仅仅是 table 中的一行。
为了尽可能用最简单的代码,下面是当我在我的页面上单击“提交”时我希望发生的情况。
$title = "2015-03-04 - Attendance";
$author = "KGrimes";
$body = "Attendance was good.";
$SQL = "INSERT INTO smf_some_table (title, author, body) VALUES ($title, $author, $body)";
$result = mysqli_query($db_handle, $SQL);
研究了 smf DB tables 和 post() 和 post2() 函数后,似乎涉及到不止一个 table制作 post 时。以前有人概述过这个吗?
我研究过自定义表单 Mod 等解决方案,但这些表单和模板并不是我要找的。我已经将数据输入并 POST' 到变量,我只需要正确的 table(s) 将其插入,以便它出现在论坛上。
提前感谢您的帮助!
来源:http://www.simplemachines.org/community/index.php?topic=542521.0
您要创建的代码post:
//Define variables
//msgOptions
$smf_subject = "Test Title";
//Handle & escape
$smf_subject = htmlspecialchars($smf_subject);
$smf_subject = quote_smart($smf_subject, $db_handle);
$smf_body = "This is a test.";
//Handle & escape
$smf_body = htmlspecialchars($smf_body);
$smf_body = quote_smart($smf_body, $db_handle);
//topicOptions
$smf_board = 54; //Any board id, found in URL
//posterOptions
$smf_id = 6; //any id, this is found as ID in memberlist
//SMF Post function
require_once('../../forums/SSI.php');
require_once('../../forums/Sources/Subs-Post.php');
//createPost($msgOptions, $topicOptions, $posterOptions);
// Create a post, either as new topic (id_topic = 0) or in an existing one.
// The input parameters of this function assume:
// - Strings have been escaped.
// - Integers have been cast to integer.
// - Mandatory parameters are set.
// Collect all parameters for the creation or modification of a post.
$msgOptions = array(
'subject' => $smf_subject,
'body' => $smf_body,
//'smileys_enabled' => !isset($_POST['ns']),
);
$topicOptions = array(
//'id' => empty($topic) ? 0 : $topic,
'board' => $smf_board,
'mark_as_read' => true,
);
$posterOptions = array(
'id' => $smf_id,
);
//Execute SMF post
createPost($msgOptions, $topicOptions, $posterOptions);
这将创建最简单的 post,其中包含您定义的标题和 body,以及位置和作者。更多参数可以在 createPost 的 SMF 函数数据库中找到。 SSI 和 Subs-Post.php includes 必须直接是原始文件,复制过来是不行的。
我正在构建一个支持网站的 CMS,该网站还包含一个 SMF 论坛 (2.0.11)。 CMS 中的一个模块涉及一个 "report" 来跟踪出勤率。该数据在 smf 之外但在同一数据库中的 tables 中查询。除了它现在所做的之外,我还希望在包含格式化内容的 SMF 论坛上的特定版块中制作 post。由于所有 post 都包含在数据库中,这当然是可能的,但它似乎不仅仅是 table 中的一行。
为了尽可能用最简单的代码,下面是当我在我的页面上单击“提交”时我希望发生的情况。
$title = "2015-03-04 - Attendance";
$author = "KGrimes";
$body = "Attendance was good.";
$SQL = "INSERT INTO smf_some_table (title, author, body) VALUES ($title, $author, $body)";
$result = mysqli_query($db_handle, $SQL);
研究了 smf DB tables 和 post() 和 post2() 函数后,似乎涉及到不止一个 table制作 post 时。以前有人概述过这个吗?
我研究过自定义表单 Mod 等解决方案,但这些表单和模板并不是我要找的。我已经将数据输入并 POST' 到变量,我只需要正确的 table(s) 将其插入,以便它出现在论坛上。
提前感谢您的帮助!
来源:http://www.simplemachines.org/community/index.php?topic=542521.0
您要创建的代码post:
//Define variables
//msgOptions
$smf_subject = "Test Title";
//Handle & escape
$smf_subject = htmlspecialchars($smf_subject);
$smf_subject = quote_smart($smf_subject, $db_handle);
$smf_body = "This is a test.";
//Handle & escape
$smf_body = htmlspecialchars($smf_body);
$smf_body = quote_smart($smf_body, $db_handle);
//topicOptions
$smf_board = 54; //Any board id, found in URL
//posterOptions
$smf_id = 6; //any id, this is found as ID in memberlist
//SMF Post function
require_once('../../forums/SSI.php');
require_once('../../forums/Sources/Subs-Post.php');
//createPost($msgOptions, $topicOptions, $posterOptions);
// Create a post, either as new topic (id_topic = 0) or in an existing one.
// The input parameters of this function assume:
// - Strings have been escaped.
// - Integers have been cast to integer.
// - Mandatory parameters are set.
// Collect all parameters for the creation or modification of a post.
$msgOptions = array(
'subject' => $smf_subject,
'body' => $smf_body,
//'smileys_enabled' => !isset($_POST['ns']),
);
$topicOptions = array(
//'id' => empty($topic) ? 0 : $topic,
'board' => $smf_board,
'mark_as_read' => true,
);
$posterOptions = array(
'id' => $smf_id,
);
//Execute SMF post
createPost($msgOptions, $topicOptions, $posterOptions);
这将创建最简单的 post,其中包含您定义的标题和 body,以及位置和作者。更多参数可以在 createPost 的 SMF 函数数据库中找到。 SSI 和 Subs-Post.php includes 必须直接是原始文件,复制过来是不行的。