mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-11-30 17:14:42 +00:00
f035ce51f1
What: Add hook that runs after a save attempt is made in ApiVisualEditorEdit. The hook receives the same data available in ApiVisualEditorEdit, and implementations of the hook can modify the API response. Also introduce templated parameters (https://www.mediawiki.org/wiki/API:Templated_parameters) in the API parameters; this allows plugins to pass arbitrary data along with their request using e.g. plugins=linkrecommendation&data-linkrecommendation=foo Add ServiceWiring files, a PHP namespace, and a HookRunner class to support the above changes. Why: VE plugins may wish to send additional data when saving an edit and take action based on that data on the server-side. See for example the AddLink plugin in I7a052f8e which sends annotation data, and then uses the new hook to perform a database operation. Change-Id: I392691475fbdcec766acbd832600e82efcb5bfe8
48 lines
1.7 KiB
PHP
48 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace MediaWiki\Extension\VisualEditor;
|
|
|
|
use MediaWiki\Page\ProperPageIdentity;
|
|
use MediaWiki\User\UserIdentity;
|
|
|
|
/**
|
|
* VisualEditorApiVisualEditorEditPostSaveHook
|
|
*
|
|
* @file
|
|
* @ingroup Extensions
|
|
* @copyright 2011-2021 VisualEditor Team and others; see AUTHORS.txt
|
|
* @license MIT
|
|
*/
|
|
|
|
interface VisualEditorApiVisualEditorEditPostSaveHook {
|
|
|
|
/**
|
|
* This hook is executed in the ApiVisualEditorEdit after a action=save attempt.
|
|
*
|
|
* ApiVisualEditorEdit will wait for implementations of this hook to complete before returning a response, so
|
|
* if the implementation needs to do something time-consuming that does not need to be sent back with the response,
|
|
* consider using a DeferredUpdate or Job.
|
|
*
|
|
* @param ProperPageIdentity $page The page identity of the title used in the save attempt.
|
|
* @param UserIdentity $user User associated with the save attempt.
|
|
* @param string $wikitext The wikitext used in the save attempt.
|
|
* @param array $params The params passed by the client in the API request. See
|
|
* ApiVisualEditorEdit::getAllowedParams()
|
|
* @param array $pluginData Associative array containing additional data specified by plugins, where the keys of
|
|
* the array are plugin names and the value are arbitrary data.
|
|
* @param array $saveResult The result from ApiVisualEditorEdit::saveWikitext()
|
|
* @param array &$apiResponse The modifiable API response that VisualEditor will return to the client.
|
|
* @return void
|
|
*/
|
|
public function onVisualEditorApiVisualEditorEditPostSave(
|
|
ProperPageIdentity $page,
|
|
UserIdentity $user,
|
|
string $wikitext,
|
|
array $params,
|
|
array $pluginData,
|
|
array $saveResult,
|
|
array &$apiResponse
|
|
): void;
|
|
|
|
}
|