在按钮上单击将标志保存到 mediawiki 1.3 中的数据库
On button click save a flag to database in mediawiki 1.3
我刚接触 mediawiki。我试图实现 Manual:Tag extensions/Example (https://www.mediawiki.org/wiki/Manual:Tag_extensions/Example)。但该示例基于 mediawiki 版本 < 1.3。我有一个提交按钮。如果单击提交按钮,我想将当前用户名和标志(例如 1)保存到数据库 table。但我越来越
未捕获的语法错误:意外的标识符(位于 load.php?lang=en&modules=ext.Example.welcome%7Cjquery&skin=vector&version=h3cy2:1:383)。
有人可以建议我如何解决这个问题吗
我的钩子
class PollHooks implements
\MediaWiki\Hook\ParserFirstCallInitHook
{
Public function onParserFirstCallInit( $parser ) {
$parser->setHook( 'btn', [ self::class, 'pollRender' ] );
//$parser->setHook( 'poll', [self::class, 'pollRender' ] );
}
public static function pollRender( $data, $attribs, $parser, $frame ) {
$ret = '<table class="wtable">';
$ret .= '<tr>';
$ret .= '<td align="center" colspan=2><input id="btn002" type="button" value="Submit"></td>';
$ret .= '</tr>';
$ret .= '</table>';
return $ret;
}
我的index.js
( function () {
$("#btn001").click
(
function() {
alert("Button clicked " + mw.user.getName() + ".");
console.log("Button clicked.");
$var user = mw.user.getName();
$flag = 1;
$.get(
mw.util.wikiScript(),
{
action: 'ajax',
rsargs: [user, flag],
rs: 'MediaWiki\Extension\Example\SubmitApi'
}
);
}
);
}());
SubmitApi.php
use ApiBase;
使用Wikimedia\ParamValidator\ParamValidator;
class SubmitApi 扩展了 ApiBase {
public function execute() {
/* … */
global $wgUser;
$dbw = wfGetDB( DB_REPLICA );
// Insert vote
$insertQuery = $dbw->insert(
'polldb',
array(
'poll_user' => $user,
'poll_flag' => $flag
)
);
$dbw->commit();
}
public function getAllowedParams() {
return [
'level' => [
ParamValidator::PARAM_TYPE => 'integer',
ParamValidator::PARAM_REQUIRED => true,
]
];
}
}
?>
index.js
:
$var user = mw.user.getName();
从 $var
中删除 $
。
我刚接触 mediawiki。我试图实现 Manual:Tag extensions/Example (https://www.mediawiki.org/wiki/Manual:Tag_extensions/Example)。但该示例基于 mediawiki 版本 < 1.3。我有一个提交按钮。如果单击提交按钮,我想将当前用户名和标志(例如 1)保存到数据库 table。但我越来越 未捕获的语法错误:意外的标识符(位于 load.php?lang=en&modules=ext.Example.welcome%7Cjquery&skin=vector&version=h3cy2:1:383)。
有人可以建议我如何解决这个问题吗 我的钩子
class PollHooks implements
\MediaWiki\Hook\ParserFirstCallInitHook
{
Public function onParserFirstCallInit( $parser ) {
$parser->setHook( 'btn', [ self::class, 'pollRender' ] );
//$parser->setHook( 'poll', [self::class, 'pollRender' ] );
}
public static function pollRender( $data, $attribs, $parser, $frame ) {
$ret = '<table class="wtable">';
$ret .= '<tr>';
$ret .= '<td align="center" colspan=2><input id="btn002" type="button" value="Submit"></td>';
$ret .= '</tr>';
$ret .= '</table>';
return $ret;
}
我的index.js
( function () {
$("#btn001").click
(
function() {
alert("Button clicked " + mw.user.getName() + ".");
console.log("Button clicked.");
$var user = mw.user.getName();
$flag = 1;
$.get(
mw.util.wikiScript(),
{
action: 'ajax',
rsargs: [user, flag],
rs: 'MediaWiki\Extension\Example\SubmitApi'
}
);
}
);
}());
SubmitApi.php
use ApiBase;
使用Wikimedia\ParamValidator\ParamValidator;
class SubmitApi 扩展了 ApiBase {
public function execute() {
/* … */
global $wgUser;
$dbw = wfGetDB( DB_REPLICA );
// Insert vote
$insertQuery = $dbw->insert(
'polldb',
array(
'poll_user' => $user,
'poll_flag' => $flag
)
);
$dbw->commit();
}
public function getAllowedParams() {
return [
'level' => [
ParamValidator::PARAM_TYPE => 'integer',
ParamValidator::PARAM_REQUIRED => true,
]
];
}
} ?>
index.js
:
$var user = mw.user.getName();
从 $var
中删除 $
。