Rtdwivedi has uploaded a new change for review.
https://gerrit.wikimedia.org/r/67632
Change subject: Separated data fetching from presentation in function
load_index in ProofreadPage.body.php Will do the same for other functions also.
Change-Id: I9e067185529af2d259cfbeb84c3c3db66d2ddd95
......................................................................
Separated data fetching from presentation in function load_index in
ProofreadPage.body.php
Will do the same for other functions also.
Change-Id: I9e067185529af2d259cfbeb84c3c3db66d2ddd95
---
A .htaccess
A DbConnector.php
M ProofreadPage.body.php
M ProofreadPage.php
A includes/index/DbConnector.php
5 files changed, 124 insertions(+), 12 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ProofreadPage
refs/changes/32/67632/1
diff --git a/.htaccess b/.htaccess
new file mode 100644
index 0000000..fcc4e1f
--- /dev/null
+++ b/.htaccess
@@ -0,0 +1,4 @@
+RewriteEngine On
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteRule
^/w/images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/page([0-9]+)-?([0-9]+)px-.*$
/w/thumb.php?f=$1&p=$2&w=$3 [L,QSA]
diff --git a/DbConnector.php b/DbConnector.php
new file mode 100644
index 0000000..6ddccbc
--- /dev/null
+++ b/DbConnector.php
@@ -0,0 +1,77 @@
+<?php
+
+class DbConnector{
+
+/**
+ * @param $updater DatabaseUpdater
+ * @return bool
+ */
+ public static function onLoadExtensionSchemaUpdates( $updater = null ) {
+ $base = dirname( __FILE__ );
+ if ( $updater === null ) {
+ global $wgExtNewTables;
+ $wgExtNewTables[] = array( 'pr_index',
"$base/ProofreadPage.sql" );
+ } else {
+ $updater->addExtensionUpdate( array( 'addTable',
'pr_index',
+ "$base/ProofreadPage.sql", true ) );
+ }
+ return true;
+ }
+
+ /**
+ * Query the database to find if the current page is referred in an
Index page.
+ * @param $title Title
+ */
+ private static function load_index( $title ) {
+// list( $page_namespace, $index_namespace ) =
self::getPageAndIndexNamespace();
+ list( $page_namespace, $index_namespace ) =
ProofreadPage::getPageAndIndexNamespace();
+
+ $title->pr_index_title = null;
+ $dbr = wfGetDB( DB_SLAVE );
+ $result = $dbr->select(
+ array( 'page', 'pagelinks' ),
+ array( 'page_namespace', 'page_title' ),
+ array(
+ 'pl_namespace' => $title->getNamespace(),
+ 'pl_title' => $title->getDBkey(),
+ 'pl_from=page_id'
+ ),
+ __METHOD__
+ );
+
+ foreach ( $result as $x ) {
+ $ref_title = Title::makeTitle( $x->page_namespace,
$x->page_title );
+// if ( $ref_title->inNamespace(
self::getIndexNamespaceId() ) ) {
+ if ( $ref_title->inNamespace(
ProofreadPage::getIndexNamespaceId() ) ) {
+ $title->pr_index_title =
$ref_title->getPrefixedText();
+ break;
+ }
+ }
+
+ if ( $title->pr_index_title ) {
+ return;
+ }
+
+ $imageTitle = null;
+ /* check if we are a page of a multipage file */
+ if ( preg_match( "/^$page_namespace:(.*?)(\/(.*?)|)$/",
$title->getPrefixedText(), $m ) ) {
+ $imageTitle = Title::makeTitleSafe( NS_IMAGE, $m[1] );
+ }
+ if ( !$imageTitle ) {
+ return;
+ }
+
+ $image = wfFindFile( $imageTitle );
+
+ // if it is multipage, we use the page order of the file
+ if ( $image && $image->exists() && $image->isMultipage() ) {
+ $name = $image->getTitle()->getText();
+ $index_name = "$index_namespace:$name";
+
+ if ( !$title->pr_index_title ) {
+ // there is no index, or the page is not listed
in the index : use canonical index
+ $title->pr_index_title = $index_name;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/ProofreadPage.body.php b/ProofreadPage.body.php
index 4d37b7f..1a78d7d 100644
--- a/ProofreadPage.body.php
+++ b/ProofreadPage.body.php
@@ -159,17 +159,7 @@
list( $page_namespace, $index_namespace ) =
self::getPageAndIndexNamespace();
$title->pr_index_title = null;
- $dbr = wfGetDB( DB_SLAVE );
- $result = $dbr->select(
- array( 'page', 'pagelinks' ),
- array( 'page_namespace', 'page_title' ),
- array(
- 'pl_namespace' => $title->getNamespace(),
- 'pl_title' => $title->getDBkey(),
- 'pl_from=page_id'
- ),
- __METHOD__
- );
+ $result = DbConnector::load_index_db( $title );
foreach ( $result as $x ) {
$ref_title = Title::makeTitle( $x->page_namespace,
$x->page_title );
diff --git a/ProofreadPage.php b/ProofreadPage.php
index e066366..2d68ae4 100644
--- a/ProofreadPage.php
+++ b/ProofreadPage.php
@@ -40,6 +40,7 @@
$wgExtensionMessagesFiles['ProofreadPageAlias'] = $dir .
'ProofreadPage.alias.php';
$wgAutoloadClasses['ProofreadPage'] = $dir . 'ProofreadPage.body.php';
+$wgAutoloadClasses['DbConnector'] = $dir . 'includes/index/DbConnector.php';
$wgAutoloadClasses['ProofreadPageInit'] = $dir .
'includes/ProofreadPageInit.php';
@@ -143,7 +144,7 @@
$wgHooks['EditFormPreloadText'][] = 'ProofreadPage::onEditFormPreloadText';
$wgHooks['ArticlePurge'][] = 'ProofreadPage::onArticlePurge';
$wgHooks['SpecialMovepageAfterMove'][] =
'ProofreadPage::onSpecialMovepageAfterMove';
-$wgHooks['LoadExtensionSchemaUpdates'][] =
'ProofreadPage::onLoadExtensionSchemaUpdates';
+$wgHooks['LoadExtensionSchemaUpdates'][] =
'DbConnector::onLoadExtensionSchemaUpdates';
$wgHooks['EditPage::importFormData'][] =
'ProofreadPage::onEditPageImportFormData';
$wgHooks['OutputPageParserOutput'][] =
'ProofreadPage::onOutputPageParserOutput';
$wgHooks['wgQueryPages'][] = 'ProofreadPage::onwgQueryPages';
diff --git a/includes/index/DbConnector.php b/includes/index/DbConnector.php
new file mode 100644
index 0000000..131f032
--- /dev/null
+++ b/includes/index/DbConnector.php
@@ -0,0 +1,40 @@
+<?php
+
+class DbConnector{
+
+/**
+ * @param $updater DatabaseUpdater
+ * @return bool
+ */
+ public static function onLoadExtensionSchemaUpdates( $updater = null ) {
+ $base = dirname( __FILE__ );
+ if ( $updater === null ) {
+ global $wgExtNewTables;
+ $wgExtNewTables[] = array( 'pr_index',
"$base/ProofreadPage.sql" );
+ } else {
+ $updater->addExtensionUpdate( array( 'addTable',
'pr_index',
+ "$base/ProofreadPage.sql", true ) );
+ }
+ return true;
+ }
+
+ /**
+ * Query the database to find if the current page is referred in an
Index page.
+ * @param $title Title
+ */
+ public static function load_index_db( $title ) {
+ $title->pr_index_title = null;
+ $dbr = wfGetDB( DB_SLAVE );
+ $result = $dbr->select(
+ array( 'page', 'pagelinks' ),
+ array( 'page_namespace', 'page_title' ),
+ array(
+ 'pl_namespace' => $title->getNamespace(),
+ 'pl_title' => $title->getDBkey(),
+ 'pl_from=page_id'
+ ),
+ __METHOD__
+ );
+ return $result;
+ }
+}
\ No newline at end of file
--
To view, visit https://gerrit.wikimedia.org/r/67632
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9e067185529af2d259cfbeb84c3c3db66d2ddd95
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ProofreadPage
Gerrit-Branch: master
Gerrit-Owner: Rtdwivedi <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits