Matmarex has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/78463


Change subject: HTMLCheckMatrix: Allow custom input names to be specified
......................................................................

HTMLCheckMatrix: Allow custom input names to be specified

This will allow for non-disruptive migration of preferences which
should be using the matrix layout, but currently don't. Prerequisite
for bug 37878 and bug 51941.

Change-Id: I839d645c5ad6f557bac7d16ec266d1cadf6acb1c
---
M includes/HTMLForm.php
1 file changed, 19 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/63/78463/1

diff --git a/includes/HTMLForm.php b/includes/HTMLForm.php
index e06a934..f18a2df 100644
--- a/includes/HTMLForm.php
+++ b/includes/HTMLForm.php
@@ -1918,6 +1918,21 @@
                }
                parent::__construct( $params );
        }
+       
+       /**
+        * Build a tag name for given column and row. By default it is of the 
form columnName-rowName, but
+        * can be overriden using the 'custom' parameter.
+        * @param string $columnName
+        * @param string $rowName
+        * @return string
+        */
+       private function buildTag( $columnName, $rowName ) {
+               $tag = $columnName . '-' . $rowName;
+               if ( isset( $this->mParams['custom'][$tag] ) ) {
+                       $tag = $this->mParams['custom'][$tag];
+               }
+               return $tag;
+       }
 
        function validate( $value, $alldata ) {
                $rows = $this->mParams['rows'];
@@ -1939,7 +1954,7 @@
                $validOptions = array();
                foreach ( $rows as $rowTag ) {
                        foreach ( $columns as $columnTag ) {
-                               $validOptions[] = $columnTag . '-' . $rowTag;
+                               $validOptions[] = $this->buildTag( $columnTag, 
$rowTag );
                        }
                }
                $validValues = array_intersect( $value, $validOptions );
@@ -1994,7 +2009,8 @@
                        }
                        $rowContents = Html::rawElement( 'td', array(), 
$rowLabel );
                        foreach ( $columns as $columnTag ) {
-                               $thisTag = "$columnTag-$rowTag";
+                               $thisTag = $this->buildTag( $columnTag, $rowTag 
);
+
                                // Construct the checkbox
                                $thisAttribs = array(
                                        'id' => "{$this->mID}-$thisTag",
@@ -2106,7 +2122,7 @@
                foreach ( $columns as $column ) {
                        foreach ( $rows as $row ) {
                                // Make sure option hasn't been forced
-                               $thisTag = "$column-$row";
+                               $thisTag = $this->buildTag( $column, $row );
                                if ( $this->isTagForcedOff( $thisTag ) ) {
                                        $res[$thisTag] = false;
                                } elseif ( $this->isTagForcedOn( $thisTag ) ) {

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I839d645c5ad6f557bac7d16ec266d1cadf6acb1c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Matmarex <matma....@gmail.com>

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

Reply via email to