Joeytje50 has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/361635 )
Change subject: Implement suggested changes code-review
......................................................................
Implement suggested changes code-review
1) changed some syntax that only works in PHP5.4+ to the more supported
older syntax
2) Split up some comments to ensure they cut off at around 80 characters
width, assuming tab width of 4 spaces.
3) Elaborated on a comment block
4) Fixed an issue with a non-class variable being used in two different
functions (fixing a bug)
Change-Id: Iabbcf9d3c56dc711facb4d1fbab5baccb660fb2b
---
M includes/PF_FormPrinter.php
M includes/PF_TemplateInForm.php
2 files changed, 67 insertions(+), 50 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/PageForms
refs/changes/35/361635/1
diff --git a/includes/PF_FormPrinter.php b/includes/PF_FormPrinter.php
index 6baa6e8..3767736 100644
--- a/includes/PF_FormPrinter.php
+++ b/includes/PF_FormPrinter.php
@@ -50,6 +50,7 @@
// keep track of the position of brackets within tag processing
private $brackets_loc;
private $brackets_end_loc;
+ private $generated_page_name;
public function __construct() {
global $wgPageFormsDisableOutsideServices;
@@ -709,15 +710,16 @@
} else {
$this->existing_page_content =
$this->strReplaceFirst( $existing_template_text, '',
$this->existing_page_content );
}
- // If we've found a match in the source page,
there's a good chance that this
- // page was created with this form - note that,
so we don't send the user a warning.
+ // If we've found a match in the source page,
there's a good
+ // chance that this page was created with this
form - note
+ // that, so we don't send the user a warning.
$this->source_page_matches_this_form = true;
}
}
// We get values from the request, regardless of whether the
the source
- // is the page or a form submit, because even if the source is
a page, values
- // can still come from a query string.
+ // is the page or a form submit, because even if the source is
a page,
+ // values can still come from a query string.
$this->tif->setFieldValuesFromSubmit();
$this->tif->checkIfAllInstancesPrinted( $this->form_submitted,
$this->source_is_page );
@@ -743,10 +745,12 @@
// handles {{{field}}}
private function tagField() {
global $wgUser, $wgParser;
- global $wgPageFormsTabIndex; // used to represent the current
tab index in the form
+ global $wgPageFormsTabIndex; // used to represent the current
tab index
+ // in
the form
global $wgPageFormsFieldNum; // used for setting various HTML
IDs
- // If the template is null, that (hopefully) means we're
handling the free text field.
- // Make the template a dummy variable.
+
+ // If the template is null, that (hopefully) means we're
handling the
+ // free text field; make the template a dummy variable.
if ( $this->tif == null ) {
$this->template = new PFTemplate( null, array() );
$this->tif = new PFTemplateInForm();
@@ -767,36 +771,43 @@
$this->placeholderFields[] = self::placeholderFormat(
$this->tif->getTemplateName(), $field_name );
}
- if ($val_modifier !== null) {
- $page_value =
$this->tif->getValuesFromPage()[$field_name];
+ if ( $val_modifier !== null ) {
+ $page_value_temp = $this->tif->getValuesFromPage();
+ $page_value = $page_value_temp[$field_name];
}
- if ($val_modifier === '+') {
- if (preg_match("#(,|\^)\s*$cur_value\s*(,|\$)#",
$page_value) === 0) {
- if (trim($page_value) !== '') {
- // if page_value is empty, simply don't
do anything, because then cur_value
- // is already the value it has to be
(no commas needed).
+ if ( $val_modifier === '+' ) {
+ if ( preg_match( "#(,|\^)\s*$cur_value\s*(,|\$)#",
$page_value ) === 0 ) {
+ if ( trim( $page_value ) !== '' ) {
+ // if page_value is empty, simply don't
do anything, because
+ // then cur_value is already the value
it has to be
+ // (no commas needed).
$cur_value = "$page_value,$cur_value";
}
} else {
$cur_value = $page_value;
}
- } elseif ($val_modifier === '-') {
+ } elseif ( $val_modifier === '-' ) {
// get an array of elements to remove:
- $remove = array_map('trim', explode(",", $cur_value));
+ $remove = array_map( 'trim', explode( ",", $cur_value )
);
// process the current value:
- $val_array = array_map('trim', explode(",",
$page_value));
+ $val_array = array_map( 'trim', explode( ",",
$page_value ) );
// remove element(s) from list
- foreach ($remove as $rmv) {
+ foreach ( $remove as $rmv ) {
// go through each element and remove match(es)
- if (($key = array_search($rmv, $val_array)) !==
false) {
- unset($val_array[$key]);
+ if ( ( $key = array_search( $rmv, $val_array )
) !== false ) {
+ unset( $val_array[$key] );
}
}
- // Convert modified array back to a comma-separated
string value and modify
- $cur_value = implode(",", $val_array);
- if ($cur_value === '') {
- // HACK: setting an empty string prevents
anything from happening at all.
- // set a dummy string that evaluates to an
empty string
+ // Convert modified array back to a comma-separated
string value
+ // and modify
+ $cur_value = implode( ",", $val_array );
+ if ( $cur_value === '' ) {
+ // HACK: setting an empty string prevents
anything from
+ // happening at all (ie. the value doesn't
change on the
+ // target page). Set a dummy string that
evaluates to an
+ // empty string. This makes it possible to
remove the last
+ // value in a list by using the -= 'operator'
(leaving the
+ // parameter value completely empty).
$cur_value = '{{subst:lc: }}';
}
}
@@ -876,14 +887,15 @@
}
}
} else {
- // If it's not a list, it's probably
from a checkbox or date input -
- // convert the values into a string.
+ // If it's not a list, it's probably
from a checkbox or
+ // date input - convert the values into
a string.
$cur_value_in_template =
self::getStringFromPassedInArray( $cur_value, $delimiter );
}
} elseif ( $form_field->holdsTemplate() ) {
- // If this field holds an embedded template,
and the value is not an array, it means
- // there are no instances of the template - set
the value to null to avoid getting
- // whatever is currently on the page.
+ // If this field holds an embedded template,
and the value is
+ // not an array, it means there are no
instances of the template;
+ // set the value to null to avoid getting
whatever is currently
+ // on the page.
$cur_value_in_template = null;
} else { // value is not an array
$cur_value_in_template = $cur_value;
@@ -892,15 +904,15 @@
// If we're creating the page name from a formula based
on
// form values, see if the current input is part of
that formula,
// and if so, substitute in the actual value.
- if ( $this->form_submitted && $generated_page_name !==
'' ) {
+ if ( $this->form_submitted &&
$this->generated_page_name !== '' ) {
// This line appears to be unnecessary.
- // $generated_page_name = str_replace('.', '_',
$generated_page_name);
- $generated_page_name = str_replace( ' ', '_',
$generated_page_name );
+ // $this->generated_page_name =
str_replace('.', '_', $this->generated_page_name);
+ $this->generated_page_name = str_replace( ' ',
'_', $this->generated_page_name );
$escaped_input_name = str_replace( ' ', '_',
$form_field->getInputName() );
- $generated_page_name = str_ireplace(
"<$escaped_input_name>", $cur_value_in_template, $generated_page_name );
+ $this->generated_page_name = str_ireplace(
"<$escaped_input_name>", $cur_value_in_template, $this->generated_page_name );
// Once the substitution is done, replace
underlines back
// with spaces.
- $generated_page_name = str_replace( '_', ' ',
$generated_page_name );
+ $this->generated_page_name = str_replace( '_',
' ', $this->generated_page_name );
}
// Call hooks - unfortunately this has to be split into
two separate
@@ -1077,8 +1089,8 @@
$section_start_loc = 0;
if ( $this->source_is_page && $this->existing_page_content !==
null ) {
// For the last section of the page, there is no
trailing newline in
- // $this->existing_page_content, but the code below
expects it. This code
- // ensures that there is always trailing newline. T72202
+ // $this->existing_page_content, but the code below
expects it.
+ // This code ensures that there is always trailing
newline. T72202
if ( substr( $this->existing_page_content, -1 ) !==
"\n" ) {
$this->existing_page_content .= "\n";
}
@@ -1201,7 +1213,7 @@
// existing article as well, finding template and field
// declarations and replacing them with form elements, either
// blank or pre-populated, as appropriate.
- private function processDefinitions($form_def_sections) {
+ private function processDefinitions( $form_def_sections ) {
$this->template_name = null;
$this->template = null;
$this->tif = null;
@@ -1298,14 +1310,17 @@
// The normal process.
$this->form_text .=
$multipleTemplateHTML;
} else {
- // The template text won't be appended
at the end of the template like for
- // usual multiple template forms. The
HTML text will instead be stored in
- // the $multipleTemplateHTML variable,
and then added in the right
- // @insertHTML_".$placeHolderField."@";
position Optimization: actually, instead of
- // separating the processes, the usual
multiple template forms could also be
- // handled this way if a fitting
placeholder tag was added.
- // We replace the HTML into the current
placeholder tag, but also add another
- // placeholder tag, to keep track of it.
+ // The template text won't be appended
at the end of the
+ // template like for usual multiple
template forms. The HTML
+ // text will instead be stored in the
$multipleTemplateHTML
+ // variable, and then added in the right
+ // @insertHTML_".$placeHolderField."@";
position
+ // Optimization: actually, instead of
separating the
+ // processes, the usual multiple
template forms could also
+ // be handled this way if a fitting
placeholder tag was
+ // added. We replace the HTML into the
current placeholder
+ // tag, but also add another
placeholder tag, to keep track
+ // of it.
$multipleTemplateHTML .=
self::makePlaceholderInFormHTML( $placeholder );
$this->form_text = str_replace(
self::makePlaceholderInFormHTML( $placeholder ), $multipleTemplateHTML,
$this->form_text );
}
@@ -1361,7 +1376,7 @@
$wgPageFormsFieldNum = 0;
$this->source_page_matches_this_form = false;
$form_page_title = null;
- $generated_page_name = $page_name_formula;
+ $this->generated_page_name = $page_name_formula;
// $this->form_is_partial is true if:
// (a) 'partial' == 1 in the arguments
// (b) 'partial form' is found in the form definition
@@ -1497,7 +1512,7 @@
} // end while
$form_def_sections[] = trim( substr( $form_def, $section_start
) );
- $this->processDefinitions($form_def_sections);
+ $this->processDefinitions( $form_def_sections );
// Cleanup - everything has been browsed.
// Remove all the remaining placeholder
@@ -1615,7 +1630,7 @@
// $wgParser = $oldParser;
- return array( $this->form_text, $page_text, $form_page_title,
$generated_page_name );
+ return array( $this->form_text, $page_text, $form_page_title,
$this->generated_page_name );
}
/**
diff --git a/includes/PF_TemplateInForm.php b/includes/PF_TemplateInForm.php
index 263256e..f6f16d2 100644
--- a/includes/PF_TemplateInForm.php
+++ b/includes/PF_TemplateInForm.php
@@ -244,7 +244,9 @@
// Also replace periods with underlines, since that's what
// POST does to strings anyway.
$query_template_name = str_replace( '.', '_',
$query_template_name );
- // ...and escape apostrophes. (Or don't.)
+ // ...and escape apostrophes.
+
+ // (Or don't.)
//$query_template_name = str_replace( "'", "\'",
$query_template_name );
$allValuesFromSubmit = $wgRequest->getArray(
$query_template_name );
--
To view, visit https://gerrit.wikimedia.org/r/361635
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iabbcf9d3c56dc711facb4d1fbab5baccb660fb2b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/PageForms
Gerrit-Branch: master
Gerrit-Owner: Joeytje50 <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits