Samwilson has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/357187 )

Change subject: Add relations as template dependencies of pages
......................................................................

Add relations as template dependencies of pages

Also update CS version.

Change-Id: I1a8de01cab9eddd8a80ca904e2eb5c70cd71f64d
---
M composer.json
M src/Hooks.php
M src/Tree.php
3 files changed, 17 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Genealogy 
refs/changes/87/357187/1

diff --git a/composer.json b/composer.json
index 08e37a1..55f7f5e 100644
--- a/composer.json
+++ b/composer.json
@@ -23,8 +23,8 @@
                }
        },
        "require-dev": {
-               "jakub-onderka/php-parallel-lint": "0.9.2",
-               "mediawiki/mediawiki-codesniffer": "0.7.2",
+               "jakub-onderka/php-parallel-lint": "^0.9",
+               "mediawiki/mediawiki-codesniffer": "^0.8",
                "jakub-onderka/php-console-highlighter": "0.3.2"
        },
        "scripts": {
diff --git a/src/Hooks.php b/src/Hooks.php
index fe64b9a..131ee61 100644
--- a/src/Hooks.php
+++ b/src/Hooks.php
@@ -90,7 +90,7 @@
                                } else {
                                        $parent = new Person( $parentTitle );
                                        $out .= $parent->getWikiLink();
-                                       self::saveProp( $parser, 'parent', 
$params[0] );
+                                       self::saveProp( $parser, 'parent', 
$parentTitle );
                                }
                                break;
                        case 'siblings':
@@ -105,7 +105,7 @@
                                        $msg = wfMessage( 
'genealogy-invalid-partner-title', $invalidTitle );
                                        $out .= "<span 
class='error'>$msg</span>";
                                } else {
-                                       self::saveProp( $parser, 'partner', 
$params[0] );
+                                       self::saveProp( $parser, 'partner', 
$partnerTitle );
                                }
                                break;
                        case 'partners':
@@ -149,25 +149,32 @@
         * Save a page property.
         * @param Parser $parser The parser object.
         * @param string $prop The property name; it will be prefixed with 
'genealogy '.
-        * @param string $val The property value.
+        * @param string|Title $val The property value ('full text' will be 
used if this is a Title).
         * @param boolean $multi Whether this property can have multiple values 
(will be stored as
         * multiple properties, with an integer appended to their name.
         */
        public static function saveProp( Parser $parser, $prop, $val, $multi = 
true ) {
                $output = $parser->getOutput();
+               $valString = ( $val instanceof Title ) ? $val->getFullText() : 
$val;
                if ( $multi ) {
                        // Figure out what number we're up to for this property.
                        $propNum = 1;
                        $propVal = $output->getProperty( "genealogy $prop 
$propNum" );
-                       while ( $propVal !== false && $propVal !== $val ) {
+                       while ( $propVal !== false && $propVal !== $valString ) 
{
                                $propNum++;
                                $propVal = $output->getProperty( "genealogy 
$prop $propNum" );
                        }
                        // Save the property.
-                       $output->setProperty( "genealogy $prop $propNum", $val 
);
+                       $output->setProperty( "genealogy $prop $propNum", 
$valString );
                } else {
                        // A single-valued property.
-                       $output->setProperty( "genealogy $prop", $val );
+                       $output->setProperty( "genealogy $prop", $valString );
+               }
+               // For page-linking properties, add the referenced page as a 
dependency for this page.
+               // 
https://www.mediawiki.org/wiki/Manual:Tag_extensions#How_do_I_disable_caching_for_pages_using_my_extension.3F
+               if ( $val instanceof Title ) {
+                       // Register the dependency in templatelinks table.
+                       $output->addTemplate( $val, $val->getArticleID(), 
$val->getLatestRevID() );
                }
        }
 
diff --git a/src/Tree.php b/src/Tree.php
index 3e73dd2..febf0d9 100644
--- a/src/Tree.php
+++ b/src/Tree.php
@@ -104,8 +104,8 @@
 
                // Combine all parts of the graph output.
                $out = join( "\n", $this->graph_source_code['top'] ) . "\n\n"
-                      . "node [ shape=plaintext ]\n"
-                      . join( "\n", $this->graph_source_code['person'] ) . 
"\n\n";
+                       . "node [ shape=plaintext ]\n"
+                       . join( "\n", $this->graph_source_code['person'] ) . 
"\n\n";
                if ( isset( $this->graph_source_code['partner'] ) ) {
                        $out .= join( "\n", $this->graph_source_code['partner'] 
) . "\n\n";
                }

-- 
To view, visit https://gerrit.wikimedia.org/r/357187
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1a8de01cab9eddd8a80ca904e2eb5c70cd71f64d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Genealogy
Gerrit-Branch: master
Gerrit-Owner: Samwilson <s...@samwilson.id.au>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to