http://www.mediawiki.org/wiki/Special:Code/MediaWiki/95735

Revision: 95735
Author:   yaron
Date:     2011-08-30 03:29:32 +0000 (Tue, 30 Aug 2011)
Log Message:
-----------
More improvements to layout, added use of Html class, replaced some hardcoded 
strings

Modified Paths:
--------------
    trunk/extensions/PageSchemas/specials/PS_EditSchema.php

Modified: trunk/extensions/PageSchemas/specials/PS_EditSchema.php
===================================================================
--- trunk/extensions/PageSchemas/specials/PS_EditSchema.php     2011-08-30 
03:28:30 UTC (rev 95734)
+++ trunk/extensions/PageSchemas/specials/PS_EditSchema.php     2011-08-30 
03:29:32 UTC (rev 95735)
@@ -94,64 +94,15 @@
                        $text_ex = preg_replace( '/starter/', '1', 
$htmlFromExtensions['sf_form'] );
                        $text .= $text_ex;
                }
-               $delimeter_label = wfMsg( 'ps-delimeter-label' );
-               $multiple_temp_label = wfMsg( 'ps-multiple-temp-label' );
-               $field_list_label = wfMsg( 'ps-field-list-label' );
 
                $text .= '<div id="templatesList">';
                $text .= '<div class="templateBox" >';
-               $text .= '<fieldset style="background: 
#ddd;"><legend>Template</legend> ';
-               $text .= '<p>Name: <input type="text" name="t_name_1"/></p> ';
-               $text .= '<p><input type="checkbox" name="is_multiple_1"/> 
'.$multiple_temp_label.'</p> ';
-               $text .= '<div id="fieldsList_1">';
-               $text .= '<div class="fieldBox" >';
-               $text .= '<fieldset style="background: 
#bbb;"><legend>Field</legend>
-               <p>Field name: <input size="15" name="f_name_1">
-               Display label: <input size="15" name="f_label_1">
-               </p>
-               <p><input type="checkbox" name="f_is_list_1" 
class="isListCheckbox" />'.
-               $field_list_label . '
-               </p>
-               <div class="delimiterInput" style="display: none" ><p>' . 
$delimeter_label . ' <input type="text" name="f_delimiter_1" /> </p></div>';
-               if ( $htmlFromExtensions['smw'] != null ) {
-                       $text_ex = preg_replace( '/starter/', '1', 
$htmlFromExtensions['smw'] );
-                       $text .= $text_ex;
-               }
-               if ($htmlFromExtensions['sf'] != null ) {
-                       $text_ex = preg_replace('/starter/', '1', 
$htmlFromExtensions['sf']);
-                       $text .= $text_ex;
-               }
-               if ($htmlFromExtensions['sd'] != null ) {
-                       $text_ex = preg_replace('/starter/', '1', 
$htmlFromExtensions['sd']);
-                       $text .= $text_ex;
-               }
+               $text .= '</div></div>';
 
-               $text .= '<p>' . $add_xml_label . '
-               <textarea rows=4 style="width: 100%" 
name="f_add_xml_1"></textarea>
-               </p>
-               <input type="button" value="Remove field" class="deleteField" 
/></fieldset>
-               </div>
-               </div>
-               ';
-               $add_field_button = Xml::element( 'input',
-                       array(
-                               'type' => 'button',
-                               'value' => 'Add field',
-                               'onclick' => "createTemplateAddField(1)"
-                       )
-               );
-               $text .= Xml::tags( 'p', null, $add_field_button ) . "\n";
-               $text .= '<hr />
-                       <p>'.$add_xml_label.'
-                       <textarea rows=4 style="width: 100%" 
name="t_add_xml_1"></textarea>
-                       </p>
-                       <p><input type="button" value="Remove template" 
class="deleteTemplate" /></p>
-               </fieldset> </div></div>';
-
                $add_template_button = Xml::element( 'input',
                        array(
                                'type' => 'button',
-                               'value' => 'Add template',
+                               'value' => wfMsg( 'ps-add-template' ),
                                'onclick' => "createAddTemplate()"
                        )
                );
@@ -166,32 +117,59 @@
        }
 
        function starterFieldHTML( $htmlFromExtensions ) {
-               $starter_text = '<div class="templateBox" id="starterTemplate" 
style="display: none">
-<fieldset style="background: #ddd;">
-<legend>Template</legend>
-<p>Name: <input type="text" name="t_name_starter"/></p>
-<p><input type="checkbox" name="is_multiple_starter"/>Allow multiple instances 
of this template</p>
-<div id="fieldsList_starter">
+               $template_label = wfMsg( 'pageschemas-template' );
+               $delimiter_label = wfMsg( 'ps-delimiter-label' );
+               $multiple_temp_label = wfMsg( 'ps-multiple-temp-label' );
+               $add_xml_label = wfMsg('ps-add-xml-label');
+               $field_list_label = wfMsg( 'ps-field-list-label' );
+
+               $starter_text = <<<END
+<div class="templateBox" id="starterTemplate" style="display: none">
+       <fieldset style="background: #ddd;">
+               <legend>$template_label</legend>
+               <p>Name: <input type="text" name="t_name_starter"/></p>
+               <p><input type="checkbox" 
name="is_multiple_starter"/>$multiple_temp_label</p>
+               <div id="fieldsList_starter">
+               </div>
+
+END;
+               $addFieldButton = Html::input( 'add-field', wfMsg( 
'ps-add-field' ), 'button',
+                       array( 'onclick' => 'createTemplateAddField(starter)' )
+               );
+               $starter_text .= Html::rawElement( 'p', null, $addFieldButton );
+               $starter_text .= <<<END
+               <hr />
+               <p>$add_xml_label
+                       <textarea rows=4 style="width: 100%" 
name="t_add_xml_starter"></textarea>
+               </p>
+
+END;
+               $removeTemplateButton = Html::input( 'remove-template', wfMsg( 
'ps-remove-template' ), 'button',
+                       array( 'class' => 'deleteTemplate' )
+               );
+               $starter_text .= Html::rawElement( 'p', null, 
$removeTemplateButton );
+               $starter_text .= <<<END
+       </fieldset>
 </div>
-       <p><input type="button" value="Add Field" 
onclick="createTemplateAddField(starter)" /></p>
+<hr />
 
-<hr />
-       <p>'.$add_xml_label.'
-       <textarea rows=4 style="width: 100%" 
name="t_add_xml_starter"></textarea>
-       </p>
-       <p><input type="button" value="Remove template" class="deleteTemplate" 
/></p>
-       </fieldset>
-       </div>
-               <hr /> ';
-               $starter_text .= '<div class="fieldBox" id="starterField" 
style="display: none">
-                               <fieldset style="background: 
#bbb;"><legend>Field</legend>
-                               <p>
-                               <input size="15" name="f_name_starter">
-                               Display label: <input size="15" 
name="f_label_starter">
-                               </p>
-                       <p><input type="checkbox" name="f_is_list_starter" 
class="isListCheckbox" /> This field can hold a list of values
-       &#160;&#160;</p>
-       <div class="delimiterInput" style="display: none" ><p>Delimiter for 
values (default is ","): <input type="text" name="f_delimiter_starter" /> 
</p></div>';
+END;
+               $field_label = wfMsg( 'pageschemas-field' );
+               $display_label = wfMsg( 'pageschemas-displaylabel' );
+               $starter_text .= <<<END
+<div class="fieldBox" id="starterField" style="display: none">
+       <fieldset style="background: #bbb;"><legend>$field_label</legend>
+               <p>
+                       Field name: <input size="15" name="f_name_starter">
+                       $display_label <input size="15" name="f_label_starter">
+               </p>
+               <p><input type="checkbox" name="f_is_list_starter" 
class="isListCheckbox" /> $field_list_label
+               &#160;&#160;</p>
+               <p class="delimiterInput" style="display: none" >
+                       $delimiter_label <input type="text" 
name="f_delimiter_starter" />
+               </p>
+
+END;
                if ($htmlFromExtensions['smw'] != null ) {
                        $starter_text .= $htmlFromExtensions['smw'];
                }
@@ -201,12 +179,21 @@
                if ($htmlFromExtensions['sd'] != null ) {
                        $starter_text .= $htmlFromExtensions['sd'];
                }
-               $starter_text .= '<p>'.$add_xml_label.'
-                               <textarea rows=4 style="width: 100%" 
name="f_add_xml_starter"></textarea>
-                               </p>
-                               <input type="button" value="Remove field" 
class="deleteField" />
-</fieldset>
-</div>';
+               $starter_text .= <<<END
+               <p>$add_xml_label
+                       <textarea rows=4 style="width: 100%" 
name="f_add_xml_starter"></textarea>
+               </p>
+
+END;
+               $removeFieldButton = Html::input( 'remove-field', wfMsg( 
'ps-remove-field' ), 'button',
+                       array( 'class' => 'deleteField' )
+               );
+               $starter_text .= $removeFieldButton;
+               $starter_text .= <<<END
+       </fieldset>
+</div>
+
+END;
                return $starter_text;
        }
 
@@ -231,7 +218,7 @@
                        $ps_add_xml = $wgRequest->getText( 'ps_add_xml' );
                        $XMLtext .= $ps_add_xml;
                        $fieldName = "";
-                       $fieldNum= -1;
+                       $fieldNum = -1;
                        $templateNum = -1;
                        $xmlFromExtensions = array(); //This var. will save the 
xml text returned by the extensions
                        wfRunHooks( 'getXmlTextForFieldInputs', array( 
$wgRequest, &$xmlFromExtensions ));
@@ -252,15 +239,15 @@
                                        $fieldNum = substr($var,7,1);
                                        if ($wgRequest->getCheck( 
'f_is_list_'.$fieldNum ) ) {
                                                if ( 
$wgRequest->getText('f_delimiter_'.$fieldNum) != '' ) {
-                                                       $delimeter = 
$wgRequest->getText('f_delimiter_'.$fieldNum);
-                                                       $XMLtext .= '<Field 
name="'.$fieldName.'" list="list" delimiter="'.$delimeter.'">';
+                                                       $delimiter = 
$wgRequest->getText('f_delimiter_'.$fieldNum);
+                                                       $XMLtext .= '<Field 
name="'.$fieldName.'" list="list" delimiter="'.$delimiter.'">';
                                                } else {
                                                        $XMLtext .= '<Field 
name="'.$fieldName.'" list="list">';
                                                }
                                        } else {
                                                $XMLtext .= '<Field 
name="'.$fieldName.'">';
                                        }
-                               } elseif (substr($var,0,8) == 'f_label_' ) {
+                               } elseif ( substr( $var, 0, 8 ) == 'f_label_' ) 
{
                                        $XMLtext .= '<Label>'.$val.'</Label>';
                                        //Get XML parsed from extensions
                                        if ( $xmlFromExtensions['smw'] != null 
) {
@@ -282,10 +269,10 @@
                                                }
                                        }
                                        $indexGlobalField++ ;
-                               } elseif (substr($var,0,10) == 'f_add_xml_' ) {
+                               } elseif ( substr( $var, 0, 10 ) == 
'f_add_xml_' ) {
                                        $XMLtext .= $val;
                                        $XMLtext .= '</Field>';
-                               } elseif (substr($var,0,10) == 't_add_xml_' ) {
+                               } elseif ( substr( $var, 0, 10 ) == 
't_add_xml_' ) {
                                        $XMLtext .= $val;
                                        $XMLtext .= '</Template>';
                                }
@@ -328,14 +315,14 @@
                                        'pp_propname' => 'PageSchema'
                                )
                        );
+                       $editSchemaPage = SpecialPage::getTitleFor( 
'EditSchema' );
                        while ( $row = $dbr->fetchRow( $res ) ) {
                                if ( $row[2] != null ) {
                                        $page_id_cat = $row[0];
                                        if ( 
Title::newFromId($page_id_cat)->getNamespace() == NS_CATEGORY ) {
                                                $cat_text = 
Title::newFromId($page_id_cat)->getText();
-                                               $generatePagesPage = 
SpecialPage::getTitleFor( 'EditSchema' );
-                                               $url = $generatePagesPage 
->getFullURL() . '/' . $cat_text;
-                                               $text .= '<a href='.$url.'>' . 
$cat_text . '</a> <br /> ';
+                                               $url = $editSchemaPage 
->getFullURL() . '/' . $cat_text;
+                                               $text .= Html::element( 'a', 
array( 'href' => $url ), $cat_text ) . '<br />';
                                        }
                                }
                        }
@@ -367,7 +354,7 @@
                //first row of the result set
                $row = $dbr->fetchRow( $res );
                if ( $row == null && !$title->exists() ) {
-                       //Create form here, Cat doesnt exist, create new cat 
with this text
+                       // Category doesn't exist.
                        $text = '<p>'.wfMsg( 'ps-page-desc-cat-not-exist' 
).'</p>';
                        $text .= $formHTML;
                        $wgOut->addHTML( $text );
@@ -375,12 +362,15 @@
                }
 
                if ( ($row[1] != 'PageSchema') || ($row[2] == null ) ) {
+                       // Category exists, but has no page schema.
                        $text = '<p>'.wfMsg( 'ps-page-desc-ps-not-exist' 
).'</p>';
                        $text .= $formHTML;
                        $wgOut->addHTML($text );
+                       return true;
                }
 
-               // Populate the form here with autocompleted values
+               // If we're here, it's a category with an existing page schema 
- populate the
+               // form with its values.
                $pageXMLstr = $row[2];
                $pageXML = simplexml_load_string( $pageXMLstr );
                $ps_add_xml = "";
@@ -411,30 +401,28 @@
                                $template_num++;
                                $field_count = 0;
                                if ( count($template_xml->children()) > 0 ) {
-                                       $templateName = (string) 
$template_xml->attributes()->name;
                                        $text_4 .= '<div class="templateBox" >';
                                        $text_4 .= '<fieldset 
style="background: #ddd;"><legend>Template</legend> ';
-                                       $text_4 .= '<p>Name: <input type="text" 
name="t_name_'.$template_num.'" value="'.$templateName.'" /></p> ';
+                                       $templateName = (string) 
$template_xml->attributes()->name;
+                                       $templateNameInput = Html::input( 
't_name_' . $template_num, $templateName, 'text' );
+                                       $text_4 .= '<p>Name: ' . 
$templateNameInput . '</p> ';
+                                       $attrs = array();
                                        if ( ((string) 
$template_xml->attributes()->multiple) == "multiple" ) {
-                                               $text_4 .= '<p><input 
type="checkbox" checked name="is_multiple_'.$template_num.'"/> Allow multiple 
instances of this template</p> ';
-                                       } else {
-                                               $text_4 .= '<p><input 
type="checkbox" name="is_multiple_'.$template_num.'"/> Allow multiple instances 
of this template</p> ';
+                                               $attrs['checked'] = 'checked';
                                        }
+                                       $templateIsMultipleInput = Html::input( 
'is_multiple_' . $template_num, null, 'checkbox', $attrs );
+                                       $text_4 .= Html::rawElement( 'p', null, 
$templateIsMultipleInput . ' ' . wfMsg( 'ps-multiple-temp-label' ) );
                                        foreach ( $template_xml->children() as 
$field_xml ) {
                                                if ( $field_xml->getName() != 
'Field' ) {
                                                        $template_add_xml .= 
(string)$field_xml->asXML();
                                                }
                                        }
                                        $text_4 .= '<div 
id="fieldsList_'.$template_num.'">';
-                                       $list_values = false;
                                        foreach ( $template_xml->children() as 
$field_xml ) {
                                                if ( $field_xml->getName() == 
"Field" ) {
                                                        $fieldName = 
(string)$field_xml->attributes()->name;
                                                        $text_4 .= '<div 
class="fieldBox" >';
                                                        $text_4 .= '<fieldset 
style="background: #bbb;"><legend>Field</legend> ';
-                                                       if ( 
((string)$field_xml->attributes()->list) == "list") {
-                                                               $list_values = 
true;
-                                                       }
                                                        if ( 
((string)$field_xml->attributes()->delimiter) != null || 
((string)$field_xml->attributes()->delimiter) != '' ) {
                                                                $delimiter = 
(string)$field_xml->attributes()->delimiter;
                                                        }
@@ -444,15 +432,21 @@
                                                                }
                                                        }
                                                        $text_4 .= '<p>Field 
name: <input size="15" name="f_name_'.$field_count.'" value="'.$fieldName.'" >';
-                                                       $text_4 .= 'Display 
label: <input size="15" name="f_label_'.$field_count.'" value="'.$fieldLabel.'" 
>
+                                                       $display_label = wfMsg( 
'pageschemas-displaylabel' );
+                                                       $text_4 .= 
$display_label . ' <input size="15" name="f_label_'.$field_count.'" 
value="'.$fieldLabel.'" >
                </p> ';
-                                                       if ($list_values ) {
-                                                               $text_4 .= 
'<p><input type="checkbox" name="f_is_list_'.$field_count.'" checked 
class="isListCheckbox" /> This field can hold a list of values</p> ';
-                                                               $text_4 .= 
'<div class="delimiterInput" style="display:"><p>Delimiter for values (default 
is ","): <input type="text" name="f_delimiter_'.$field_count.'" 
value="'.$delimiter.'" /> </p></div>';
+                                                       $attrs = array();
+                                                       $pAttrs = array( 
'class' => 'delimiterInput' );
+                                                       if ( 
((string)$field_xml->attributes()->list) == "list" ) {
+                                                               
$attrs['checked'] = 'checked';
                                                        } else {
-                                                               $text_4 .= 
'<p><input type="checkbox" name="f_is_list_'.$field_count.'" 
class="isListCheckbox" /> This field can hold a list of values</p> ';
-                                                               $text_4 .= 
'<div class="delimiterInput" style="display: none" ><p>Delimiter for values 
(default is ","): <input type="text" name="f_delimiter_'.$field_count.'" /> 
</p></div>';
+                                                               
$pAttrs['style'] = 'display: none';
                                                        }
+                                                       $fieldIsListInput = 
Html::input( 'f_is_list_' . $field_count, null, 'checkbox', $attrs );
+                                                       $text_4 .= 
Html::rawElement( 'p', null, $fieldIsListInput . ' ' . wfMsg( 
'ps-field-list-label' ) );
+                                                       $fieldDelimiterInput = 
Html::input ( 'f_delimiter_' . $field_count, $delimiter, 'text', null );
+                                                       $text_4 .= 
Html::rawElement( 'p', $pAttrs, wfMsg( 'ps-delimiter-label' ) . ' ' . 
$fieldDelimiterInput );
+
                                                        //Inserting HTML text 
from Extensions
 
                                                        if ( 
$filledHTMLFromExtensions['smw'] != null ) {
@@ -477,13 +471,22 @@
                                                                }
                                                        }
 
-                                                       $text_4 .= 
'<p>'.$add_xml_label.'
-               <textarea rows=4 style="width: 100%" 
name="f_add_xml_'.$field_count.'"></textarea>
+                                                       $text_4 .= <<<END
+               <p>$add_xml_label
+               <textarea rows=4 style="width: 100%" 
name="f_add_xml_$field_count"></textarea>
                </p>
-               <input type="button" value="Remove field" class="deleteField" 
/></fieldset>
+
+END;
+                                                       $removeFieldButton = 
Html::input( 'remove-field', wfMsg( 'ps-remove-field' ), 'button',
+                                                               array( 'class' 
=> 'deleteField' )
+                                                       );
+                                                       $text_4 .= 
$removeFieldButton;
+                                                       $text_4 .= <<<END
+               </fieldset>
                </div>
                </div>
-               ';
+
+END;
                                                        $field_count++;
                                                        $text_4 .= '<script 
type="text/javascript">
                                                
updateFieldNum('.$field_count.');
@@ -494,7 +497,7 @@
                                        $add_field_button = Xml::element( 
'input',
                                                array(
                                                        'type' => 'button',
-                                                       'value' => 'Add field',
+                                                       'value' => wfMsg( 
'ps-add-field' ),
                                                        'onclick' => 
"createTemplateAddField($template_num)"
                                                )
                                        );
@@ -511,7 +514,7 @@
                $add_template_button = Xml::element( 'input',
                        array(
                                'type' => 'button',
-                               'value' => 'Add template',
+                               'value' => wfMsg( 'ps-add-template' ),
                                'onclick' => "createAddTemplate()"
                        )
                );


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to