dépôts
/
lhc
/
web
/
wiklou.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge "Update weblinks in comments to msdn.microsoft.com"
[lhc/web/wiklou.git]
/
includes
/
linkeddata
/
PageDataRequestHandler.php
diff --git
a/includes/linkeddata/PageDataRequestHandler.php
b/includes/linkeddata/PageDataRequestHandler.php
index
3da20bf
..
d26b304
100644
(file)
--- a/
includes/linkeddata/PageDataRequestHandler.php
+++ b/
includes/linkeddata/PageDataRequestHandler.php
@@
-1,7
+1,7
@@
<?php
<?php
-use
MediaWiki
\Http\HttpAcceptParser;
-use
MediaWiki
\Http\HttpAcceptNegotiator;
+use
Wikimedia
\Http\HttpAcceptParser;
+use
Wikimedia
\Http\HttpAcceptNegotiator;
/**
* Request handler implementing a data interface for mediawiki pages.
/**
* Request handler implementing a data interface for mediawiki pages.
@@
-20,26
+20,36
@@
class PageDataRequestHandler {
* This does not check whether the request is valid and will actually produce a successful
* response.
*
* This does not check whether the request is valid and will actually produce a successful
* response.
*
- * @param string|null $
title Page titl
e
+ * @param string|null $
subPag
e
* @param WebRequest $request
*
* @return bool
* @throws HttpError
*/
* @param WebRequest $request
*
* @return bool
* @throws HttpError
*/
- public function canHandleRequest( $
titl
e, WebRequest $request ) {
- if ( $
title === '' || $titl
e === null ) {
- if ( $request->getText( 't
itle
', '' ) === '' ) {
+ public function canHandleRequest( $
subPag
e, WebRequest $request ) {
+ if ( $
subPage === '' || $subPag
e === null ) {
+ if ( $request->getText( 't
arget
', '' ) === '' ) {
return false;
return false;
+ } else {
+ return true;
}
}
}
}
- return true;
+ $parts = explode( '/', $subPage, 2 );
+ if ( $parts !== 2 ) {
+ $slot = $parts[0];
+ if ( $slot === 'main' or $slot === '' ) {
+ return true;
+ }
+ }
+
+ return false;
}
/**
* Main method for handling requests.
*
}
/**
* Main method for handling requests.
*
- * @param string $
title Page titl
e
+ * @param string $
subPag
e
* @param WebRequest $request The request parameters. Known parameters are:
* - title: the page title
* - format: the format
* @param WebRequest $request The request parameters. Known parameters are:
* - title: the page title
* - format: the format
@@
-51,13
+61,23
@@
class PageDataRequestHandler {
*
* @throws HttpError
*/
*
* @throws HttpError
*/
- public function handleRequest( $
titl
e, WebRequest $request, OutputPage $output ) {
+ public function handleRequest( $
subPag
e, WebRequest $request, OutputPage $output ) {
// No matter what: The response is always public
$output->getRequest()->response()->header( 'Access-Control-Allow-Origin: *' );
// No matter what: The response is always public
$output->getRequest()->response()->header( 'Access-Control-Allow-Origin: *' );
+ if ( !$this->canHandleRequest( $subPage, $request ) ) {
+ throw new HttpError( 400, wfMessage( 'pagedata-bad-title', $subPage ) );
+ }
+
$revision = 0;
$revision = 0;
- $title = $request->getText( 'title', $title );
+ $parts = explode( '/', $subPage, 2 );
+ if ( $subPage !== '' ) {
+ $title = $parts[1];
+ } else {
+ $title = $request->getText( 'target', '' );
+ }
+
$revision = $request->getInt( 'oldid', $revision );
$revision = $request->getInt( 'revision', $revision );
$revision = $request->getInt( 'oldid', $revision );
$revision = $request->getInt( 'revision', $revision );