本文整理汇总了PHP中EditPage::tokenOk方法的典型用法代码示例。如果您正苦于以下问题:PHP EditPage::tokenOk方法的具体用法?PHP EditPage::tokenOk怎么用?PHP EditPage::tokenOk使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EditPage
的用法示例。
在下文中一共展示了EditPage::tokenOk方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: doStore
protected function doStore(EditPage $editor)
{
$title = $editor->getTitle();
// If they used redlink=1 and the page exists, redirect to the main article and send notice
if ($this->getRequest()->getBool('redlink') && $title->exists()) {
$this->logMessage(wfMessage('sf_autoedit_redlinkexists')->parse(), self::WARNING);
}
$permErrors = $title->getUserPermissionsErrors('edit', $this->getUser());
// if this title needs to be created, user needs create rights
if (!$title->exists()) {
$permErrors = array_merge($permErrors, wfArrayDiff2($title->getUserPermissionsErrors('create', $this->getUser()), $permErrors));
}
if ($permErrors) {
// Auto-block user's IP if the account was "hard" blocked
$this->getUser()->spreadAnyEditBlock();
foreach ($permErrors as $error) {
$this->logMessage(call_user_func_array('wfMessage', $error)->parse());
}
return;
}
$resultDetails = false;
# Allow bots to exempt some edits from bot flagging
$bot = $this->getUser()->isAllowed('bot') && $editor->bot;
$request = $editor->sfFauxRequest;
if ($editor->tokenOk($request)) {
$ctx = RequestContext::getMain();
$tempTitle = $ctx->getTitle();
$ctx->setTitle($title);
$status = $editor->internalAttemptSave($resultDetails, $bot);
$ctx->setTitle($tempTitle);
} else {
throw new MWException(wfMessage('session_fail_preview')->parse());
}
switch ($status->value) {
case EditPage::AS_HOOK_ERROR_EXPECTED:
// A hook function returned an error
// show normal Edit page
// remove Preview and Diff standard buttons from editor page
Hooks::register('EditPageBeforeEditButtons', function (&$editor, &$buttons, &$tabindex) {
foreach (array_keys($buttons) as $key) {
if ($key !== 'save') {
unset($buttons[$key]);
}
}
});
// Context title needed for correct Cancel link
$editor->setContextTitle($title);
$editor->showEditForm();
return false;
// success
// success
case EditPage::AS_CONTENT_TOO_BIG:
// Content too big (> $wgMaxArticleSize)
// Content too big (> $wgMaxArticleSize)
case EditPage::AS_ARTICLE_WAS_DELETED:
// article was deleted while editting and param wpRecreate == false or form was not posted
// article was deleted while editting and param wpRecreate == false or form was not posted
case EditPage::AS_CONFLICT_DETECTED:
// (non-resolvable) edit conflict
// (non-resolvable) edit conflict
case EditPage::AS_SUMMARY_NEEDED:
// no edit summary given and the user has forceeditsummary set and the user is not editting in his own userspace or talkspace and wpIgnoreBlankSummary == false
// no edit summary given and the user has forceeditsummary set and the user is not editting in his own userspace or talkspace and wpIgnoreBlankSummary == false
case EditPage::AS_TEXTBOX_EMPTY:
// user tried to create a new section without content
// user tried to create a new section without content
case EditPage::AS_MAX_ARTICLE_SIZE_EXCEEDED:
// article is too big (> $wgMaxArticleSize), after merging in the new section
// article is too big (> $wgMaxArticleSize), after merging in the new section
case EditPage::AS_END:
// WikiPage::doEdit() was unsuccessfull
throw new MWException(wfMessage('sf_autoedit_fail', $this->mOptions['target'])->parse());
case EditPage::AS_HOOK_ERROR:
// Article update aborted by a hook function
$this->logMessage('Article update aborted by a hook function', self::DEBUG);
return false;
// success
// TODO: This error code only exists from 1.21 onwards. It is
// suitably handled by the default branch, but really should get its
// own branch. Uncomment once compatibility to pre1.21 is dropped.
// case EditPage::AS_PARSE_ERROR: // can't parse content
//
// throw new MWException( $status->getHTML() );
// return true; // fail
// success
// TODO: This error code only exists from 1.21 onwards. It is
// suitably handled by the default branch, but really should get its
// own branch. Uncomment once compatibility to pre1.21 is dropped.
// case EditPage::AS_PARSE_ERROR: // can't parse content
//
// throw new MWException( $status->getHTML() );
// return true; // fail
case EditPage::AS_SUCCESS_NEW_ARTICLE:
// Article successfully created
$query = $resultDetails['redirect'] ? 'redirect=no' : '';
$anchor = isset($resultDetails['sectionanchor']) ? $resultDetails['sectionanchor'] : '';
$this->getOutput()->redirect($title->getFullURL($query) . $anchor);
$this->getResult()->addValue(NULL, 'redirect', $title->getFullURL($query) . $anchor);
return false;
// success
//.........这里部分代码省略.........