Completed
Branch dev (85e891)
by
unknown
01:52
created
development/factory/admin_page/_model/AdminPageFramework_ExportOptions.php 1 patch
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -99,9 +99,9 @@  discard block
 block discarded – undo
99 99
      * @since 3.5.4       Added the `$aHeader` parameter. Deprecated the `$sFileName` parameter as it is included in the $aHeader definition.
100 100
      * @since 2.0.0
101 101
      */
102
-    public function doExport( $vData, $sFormatType=null, array $aHeader=array() ) {
102
+    public function doExport( $vData, $sFormatType = null, array $aHeader = array() ) {
103 103
 
104
-        $sFormatType    = isset( $sFormatType )
104
+        $sFormatType = isset( $sFormatType )
105 105
             ? $sFormatType
106 106
             : $this->sFormatType;
107 107
 
@@ -129,9 +129,9 @@  discard block
 block discarded – undo
129 129
          * @param       string $sKey
130 130
          * @return      void
131 131
          */
132
-        private function _outputHTTPHeader( array $aHeader, $sKey='' ) {
132
+        private function _outputHTTPHeader( array $aHeader, $sKey = '' ) {
133 133
 
134
-            foreach( $aHeader as $_sKey => $_asValue ) {
134
+            foreach ( $aHeader as $_sKey => $_asValue ) {
135 135
 
136 136
                 // Nested items. Set the key to overrider array keys.
137 137
                 if ( is_array( $_asValue ) ) {
@@ -173,7 +173,7 @@  discard block
 block discarded – undo
173 173
                     return;
174 174
                 case 'json': // for json.
175 175
                     echo json_encode( ( array ) $vData );
176
-                    return ;
176
+                    return;
177 177
                 case 'array': // for serialized PHP array.
178 178
                 default: // for anything else,
179 179
                     echo serialize( ( array ) $vData );
Please login to merge, or discard this patch.
factory/_common/utility/base_utility/AdminPageFramework_Utility.php 1 patch
Spacing   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -25,7 +25,7 @@  discard block
 block discarded – undo
25 25
      * @since  3.8.24
26 26
      */
27 27
     static public function getHTTPRequestSanitized( array $aRequest, $bStripSlashes ) {
28
-        foreach( $aRequest as $_isIndex => $_mValue ) {
28
+        foreach ( $aRequest as $_isIndex => $_mValue ) {
29 29
             if ( is_array( $_mValue ) ) {
30 30
                 $aRequest[ $_isIndex ] = self::getHTTPRequestSanitized( $_mValue, $bStripSlashes );
31 31
                 continue;
@@ -47,10 +47,10 @@  discard block
 block discarded – undo
47 47
          * @sicne  3.8.25
48 48
          * @see    _sanitize_text_fields()
49 49
          */
50
-        static private function ___getHTTPRequestTextValueSanitized( $sString, $bKeepLineFeeds=true ) {
50
+        static private function ___getHTTPRequestTextValueSanitized( $sString, $bKeepLineFeeds = true ) {
51 51
             
52 52
             $_sFiltered = wp_check_invalid_utf8( $sString );
53
-            if ( ! $bKeepLineFeeds ) {
53
+            if ( !$bKeepLineFeeds ) {
54 54
                 $_sFiltered = preg_replace( '/[\r\n\t ]+/', ' ', $_sFiltered );
55 55
             }
56 56
             $_sFiltered = trim( $_sFiltered );
@@ -99,7 +99,7 @@  discard block
 block discarded – undo
99 99
      * @return mixed
100 100
      * @since  3.8.24
101 101
      */
102
-    static public function getObjectCache( $asName, $mDefault=null ) {
102
+    static public function getObjectCache( $asName, $mDefault = null ) {
103 103
         return self::getArrayValueByArrayKeys( self::$___aObjectCache, self::getAsArray( $asName ), $mDefault );
104 104
     }
105 105
 
@@ -114,9 +114,9 @@  discard block
 block discarded – undo
114 114
      * @param   string $sProgramName
115 115
      * @since   3.8.8
116 116
      */
117
-    static public function showDeprecationNotice( $sDeprecated, $sAlternative='', $sProgramName='Admin Page Framework' ) {
117
+    static public function showDeprecationNotice( $sDeprecated, $sAlternative = '', $sProgramName = 'Admin Page Framework' ) {
118 118
         trigger_error(
119
-            $sProgramName . ': ' . sprintf(
119
+            $sProgramName.': '.sprintf(
120 120
                 $sAlternative
121 121
                     ? '<code>%1$s</code> has been deprecated. Use <code>%2$s</code> instead.'
122 122
                     : '<code>%1$s</code> has been deprecated.',
@@ -139,8 +139,8 @@  discard block
 block discarded – undo
139 139
      * @param       string|array        $asParameters       Parameters to pass to the callback function.
140 140
      * @return      mixed
141 141
      */
142
-    public function callBack( $oCallable, $asParameters=array() ) {
143
-        $_aParameters   = self::getAsArray(
142
+    public function callBack( $oCallable, $asParameters = array() ) {
143
+        $_aParameters = self::getAsArray(
144 144
             $asParameters,
145 145
             true // preserve empty
146 146
         );
@@ -179,7 +179,7 @@  discard block
 block discarded – undo
179 179
      * @param       array       $aParameters
180 180
      * @return      string      The captured output buffer.
181 181
      */
182
-    static public function getOutputBuffer( $cCallable, array $aParameters=array() ) {
182
+    static public function getOutputBuffer( $cCallable, array $aParameters = array() ) {
183 183
 
184 184
         ob_start();
185 185
         echo call_user_func_array( $cCallable, $aParameters );
@@ -201,7 +201,7 @@  discard block
 block discarded – undo
201 201
 
202 202
         $_iCount     = count( get_object_vars( $oInstance ) );
203 203
         $_sClassName = get_class( $oInstance );
204
-        return '(object) ' . $_sClassName . ': ' . $_iCount . ' properties.';
204
+        return '(object) '.$_sClassName.': '.$_iCount.' properties.';
205 205
 
206 206
     }
207 207
 
@@ -218,7 +218,7 @@  discard block
 block discarded – undo
218 218
      * @param       boolean|integer|double|string|array|object|resource|NULL        $mFalse     The value to return when the first parameter value yields false.
219 219
      * @return      mixed
220 220
      */
221
-    static public function getAOrB( $mValue, $mTrue=null, $mFalse=null ) {
221
+    static public function getAOrB( $mValue, $mTrue = null, $mFalse = null ) {
222 222
         return $mValue ? $mTrue : $mFalse;
223 223
     }
224 224
 
Please login to merge, or discard this patch.
admin-page-framework-loader.php 1 patch
Spacing   +22 added lines, -22 removed lines patch added patch discarded remove patch
@@ -16,9 +16,9 @@  discard block
 block discarded – undo
16 16
  */
17 17
 class AdminPageFrameworkLoader_Registry_Base {
18 18
 
19
-    const VERSION        = '3.8.26b01';    // <--- DON'T FORGET TO CHANGE THIS AS WELL!!
19
+    const VERSION        = '3.8.26b01'; // <--- DON'T FORGET TO CHANGE THIS AS WELL!!
20 20
     const NAME           = 'Admin Page Framework - Loader'; // the name is not 'Admin Page Framework' because warning messages gets confusing.
21
-    const SHORTNAME      = 'Admin Page Framework';  // used for a menu title etc.
21
+    const SHORTNAME      = 'Admin Page Framework'; // used for a menu title etc.
22 22
     const DESCRIPTION    = 'Loads Admin Page Framework which facilitates WordPress plugin and theme development.';
23 23
     const URI            = 'http://admin-page-framework.michaeluno.jp/';
24 24
     const AUTHOR         = 'miunosoft (Michael Uno)';
@@ -55,14 +55,14 @@  discard block
 block discarded – undo
55 55
      * @remark      This is also accessed from `uninstall.php` so do not remove.
56 56
      * @remark      Do not exceed 8 characters as a transient name allows 45 characters or less ( 40 for site transients ) so that md5 (32 characters) can be added.
57 57
      */
58
-    const TRANSIENT_PREFIX         = 'APFL_';
58
+    const TRANSIENT_PREFIX = 'APFL_';
59 59
 
60 60
     /**
61 61
      * The hook slug used for the prefix of action and filter hook names.
62 62
      *
63 63
      * @remark      The ending underscore is not necessary.
64 64
      */
65
-    const HOOK_SLUG                = 'admin_page_framework_loader';
65
+    const HOOK_SLUG = 'admin_page_framework_loader';
66 66
 
67 67
     /**
68 68
      * The text domain slug and its path.
@@ -116,7 +116,7 @@  discard block
 block discarded – undo
116 116
      */
117 117
     static public $aAdminPages = array(
118 118
         // key => 'page slug'
119
-        'about'     => 'apfl_about',        // the welcome page
119
+        'about'     => 'apfl_about', // the welcome page
120 120
         'addon'     => 'apfl_addons',
121 121
         'tool'      => 'apfl_tools',
122 122
         'help'      => 'apfl_contact',
@@ -154,12 +154,12 @@  discard block
 block discarded – undo
154 154
      * @since       3.5.0
155 155
      * @return      string
156 156
      */
157
-    public static function getPluginURL( $sRelativePath='' ) {
157
+    public static function getPluginURL( $sRelativePath = '' ) {
158 158
         if ( isset( self::$_sPluginURLCache ) ) {
159
-            return self::$_sPluginURLCache . $sRelativePath;
159
+            return self::$_sPluginURLCache.$sRelativePath;
160 160
         }
161 161
         self::$_sPluginURLCache = trailingslashit( plugins_url( '', self::$sFilePath ) );
162
-        return self::$_sPluginURLCache . $sRelativePath;
162
+        return self::$_sPluginURLCache.$sRelativePath;
163 163
     }
164 164
         /**
165 165
          * @since       3.7.9
@@ -189,13 +189,13 @@  discard block
 block discarded – undo
189 189
      * @since       3.5.0
190 190
      * @return      void
191 191
      */
192
-    static public function setAdminNotice( $sMessage, $sClassAttribute='error' ) {
193
-        if ( ! is_admin() ) {
192
+    static public function setAdminNotice( $sMessage, $sClassAttribute = 'error' ) {
193
+        if ( !is_admin() ) {
194 194
             return;
195 195
         }
196
-        self::$_aAdminNotices[] = array(
196
+        self::$_aAdminNotices[ ] = array(
197 197
             'message'           => $sMessage,
198
-            'class_attribute'   => trim( $sClassAttribute ) . ' notice is-dismissible',
198
+            'class_attribute'   => trim( $sClassAttribute ).' notice is-dismissible',
199 199
         );
200 200
         add_action( 'admin_notices', array( __CLASS__, '_replyToSetAdminNotice' ) );
201 201
     }
@@ -205,12 +205,12 @@  discard block
 block discarded – undo
205 205
          * @return      void
206 206
          */
207 207
         static public function _replyToSetAdminNotice() {
208
-            foreach( self::$_aAdminNotices as $_aAdminNotice ) {
209
-                echo "<div class='" . esc_attr( $_aAdminNotice['class_attribute'] ) . " notice is-dismissible'>"
208
+            foreach ( self::$_aAdminNotices as $_aAdminNotice ) {
209
+                echo "<div class='".esc_attr( $_aAdminNotice[ 'class_attribute' ] )." notice is-dismissible'>"
210 210
                         ."<p>"
211 211
                             . sprintf(
212
-                                '<strong>%1$s</strong>: ' . $_aAdminNotice['message'],
213
-                                self::NAME . ' ' . self::VERSION
212
+                                '<strong>%1$s</strong>: '.$_aAdminNotice[ 'message' ],
213
+                                self::NAME.' '.self::VERSION
214 214
                             )
215 215
                         . "</p>"
216 216
                     . "</div>";
@@ -222,7 +222,7 @@  discard block
 block discarded – undo
222 222
 AdminPageFrameworkLoader_Registry::setUp( __FILE__ );
223 223
 
224 224
 // Initial checks. - Do no load if accessed directly, not exiting because the 'uninstall.php' and inclusion list generator will load this file.
225
-if ( ! defined( 'ABSPATH' ) ) {
225
+if ( !defined( 'ABSPATH' ) ) {
226 226
     return;
227 227
 }
228 228
 if ( defined( 'DOING_UNINSTALL' ) && DOING_UNINSTALL ) {
@@ -234,8 +234,8 @@  discard block
 block discarded – undo
234 234
 
235 235
     $_bFrameworkLoaded = class_exists( 'AdminPageFramework_Registry', false );
236 236
     if (
237
-        ! $_bFrameworkLoaded
238
-        || ! defined( 'AdminPageFramework_Registry::VERSION' ) // backward compatibility
237
+        !$_bFrameworkLoaded
238
+        || !defined( 'AdminPageFramework_Registry::VERSION' ) // backward compatibility
239 239
         || version_compare( AdminPageFramework_Registry::VERSION, AdminPageFrameworkLoader_Registry::VERSION, '<' )
240 240
     ) {
241 241
         AdminPageFrameworkLoader_Registry::setAdminNotice(
@@ -253,18 +253,18 @@  discard block
 block discarded – undo
253 253
 add_action( 'admin_init', 'AdminPageFrameworkLoader_Warning' );
254 254
 
255 255
 // Include the library file - the development version will be available if you cloned the GitHub repository.
256
-$_sDevelopmentVersionPath = AdminPageFrameworkLoader_Registry::$sDirPath . '/development/admin-page-framework.php';
256
+$_sDevelopmentVersionPath = AdminPageFrameworkLoader_Registry::$sDirPath.'/development/admin-page-framework.php';
257 257
 $_bDebugMode              = defined( 'WP_DEBUG' ) && WP_DEBUG;
258 258
 $_bLoadDevelopmentVersion = $_bDebugMode && file_exists( $_sDevelopmentVersionPath );
259 259
 include(
260 260
     $_bLoadDevelopmentVersion
261 261
         ? $_sDevelopmentVersionPath
262
-        : AdminPageFrameworkLoader_Registry::$sDirPath . '/library/apf/admin-page-framework.php'
262
+        : AdminPageFrameworkLoader_Registry::$sDirPath.'/library/apf/admin-page-framework.php'
263 263
 );
264 264
 
265 265
 // Include the framework loader plugin components.
266 266
 include( AdminPageFramework_Registry::$aClassFiles[ 'AdminPageFramework_PluginBootstrap' ] );
267
-include( AdminPageFrameworkLoader_Registry::$sDirPath . '/include/class/AdminPageFrameworkLoader_Bootstrap.php' );
267
+include( AdminPageFrameworkLoader_Registry::$sDirPath.'/include/class/AdminPageFrameworkLoader_Bootstrap.php' );
268 268
 new AdminPageFrameworkLoader_Bootstrap(
269 269
     AdminPageFrameworkLoader_Registry::$sFilePath,
270 270
     AdminPageFrameworkLoader_Registry::HOOK_SLUG    // hook prefix
Please login to merge, or discard this patch.
factory/taxonomy_field/AdminPageFramework_TaxonomyField_Model.php 1 patch
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -53,8 +53,8 @@  discard block
 block discarded – undo
53 53
         return $this->_getFilteredColumnsByFilterPrefix(
54 54
             $this->oUtil->getAsArray( $aColumns ),
55 55
             'columns_',
56
-            isset( $_GET['taxonomy'] )  // in ajax, $_GET is not even set.
57
-                ? $_GET['taxonomy']
56
+            isset( $_GET[ 'taxonomy' ] )  // in ajax, $_GET is not even set.
57
+                ? $_GET[ 'taxonomy' ]
58 58
                 : ''
59 59
         );
60 60
     }
@@ -71,8 +71,8 @@  discard block
 block discarded – undo
71 71
         return $this->_getFilteredColumnsByFilterPrefix(
72 72
             $this->oUtil->getAsArray( $aSortableColumns ),
73 73
             'sortable_columns_',
74
-            isset( $_GET['taxonomy'] )  // in ajax, $_GET is not even set.
75
-                ? $_GET['taxonomy']
74
+            isset( $_GET[ 'taxonomy' ] )  // in ajax, $_GET is not even set.
75
+                ? $_GET[ 'taxonomy' ]
76 76
                 : ''
77 77
         );
78 78
     }
@@ -86,7 +86,7 @@  discard block
 block discarded – undo
86 86
             if ( $sTaxonomy ) {
87 87
                 $aColumns = $this->oUtil->addAndApplyFilter(
88 88
                     $this,
89
-                    "{$sFilterPrefix}{$_GET['taxonomy']}",
89
+                    "{$sFilterPrefix}{$_GET[ 'taxonomy' ]}",
90 90
                     $aColumns
91 91
                 );
92 92
             }
@@ -125,7 +125,7 @@  discard block
 block discarded – undo
125 125
      * @param       string|null  $sOptionKey
126 126
      * @internal
127 127
      */
128
-    protected function _setOptionArray( $iTermID=null, $sOptionKey=null ) {
128
+    protected function _setOptionArray( $iTermID = null, $sOptionKey = null ) {
129 129
         $this->oForm->aSavedData = $this->_getSavedFormData( $iTermID, $sOptionKey );
130 130
     }
131 131
         /**
@@ -138,7 +138,7 @@  discard block
 block discarded – undo
138 138
 
139 139
             return $this->oUtil->addAndApplyFilter(
140 140
                 $this, // the caller factory object
141
-                'options_' . $this->oProp->sClassName,
141
+                'options_'.$this->oProp->sClassName,
142 142
                 $this->_getSavedTermFormData( $iTermID, $sOptionKey )
143 143
                 // @todo maybe pass the term id because the user will not know whihch form data it is
144 144
             );
@@ -172,7 +172,7 @@  discard block
 block discarded – undo
172 172
      */
173 173
     public function _replyToValidateOptions( $iTermID ) {
174 174
 
175
-        if ( ! $this->_shouldProceedValidation() ) {
175
+        if ( !$this->_shouldProceedValidation() ) {
176 176
             return;
177 177
         }
178 178
 
@@ -181,7 +181,7 @@  discard block
 block discarded – undo
181 181
         $_aSubmittedFormData    = $this->oForm->getSubmittedData( $_POST );
182 182
         $_aSubmittedFormData    = $this->oUtil->addAndApplyFilters(
183 183
             $this,
184
-            'validation_' . $this->oProp->sClassName,
184
+            'validation_'.$this->oProp->sClassName,
185 185
             call_user_func_array(
186 186
                 array( $this, 'validate' ), // triggers __call()
187 187
                 array( $_aSubmittedFormData, $_aSavedFormData, $this )
@@ -192,7 +192,7 @@  discard block
 block discarded – undo
192 192
 
193 193
         // @todo Examine whether it is appropriate to merge recursivly
194 194
         // as some fields will have a problem such as select with multiple options.
195
-        $_aTaxonomyFormData[ $iTermID ]  = $this->oUtil->uniteArrays(
195
+        $_aTaxonomyFormData[ $iTermID ] = $this->oUtil->uniteArrays(
196 196
             $_aSubmittedFormData,
197 197
             $_aSavedFormData
198 198
         );
@@ -214,10 +214,10 @@  discard block
 block discarded – undo
214 214
          */
215 215
         protected function _shouldProceedValidation() {
216 216
 
217
-            if ( ! isset( $_POST[ $this->oProp->sClassHash ] ) ) {
217
+            if ( !isset( $_POST[ $this->oProp->sClassHash ] ) ) {
218 218
                 return false;
219 219
             }
220
-            if ( ! wp_verify_nonce( $_POST[ $this->oProp->sClassHash ], $this->oProp->sClassHash ) ) {
220
+            if ( !wp_verify_nonce( $_POST[ $this->oProp->sClassHash ], $this->oProp->sClassHash ) ) {
221 221
                 return false;
222 222
             }
223 223
             return true;
Please login to merge, or discard this patch.
development/factory/widget/_model/AdminPageFramework_Property_widget.php 1 patch
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -115,7 +115,7 @@  discard block
 block discarded – undo
115 115
      * Stores method names of the `WP_Widget` class, referred when the class is assumed as a WP_Widget subclass.
116 116
      * @since       3.8.17
117 117
      */
118
-    public $aWPWidgetMethods    = array();
118
+    public $aWPWidgetMethods = array();
119 119
     /**
120 120
      * Stores property names of the `WP_Widget` class, , referred when the class is assumed as a WP_Widget subclass.
121 121
      * @since       3.8.17
@@ -126,13 +126,13 @@  discard block
 block discarded – undo
126 126
      * Sets up properties.
127 127
      * @since       3.7.0
128 128
      */
129
-    public function __construct( $oCaller, $sCallerPath, $sClassName, $sCapability='manage_options', $sTextDomain='admin-page-framework', $sStructureType='' ) {
129
+    public function __construct( $oCaller, $sCallerPath, $sClassName, $sCapability = 'manage_options', $sTextDomain = 'admin-page-framework', $sStructureType = '' ) {
130 130
 
131 131
         // 3.7.0+
132
-        $this->_sFormRegistrationHook   = 'load_' . $sClassName;
132
+        $this->_sFormRegistrationHook   = 'load_'.$sClassName;
133 133
 
134 134
         // 3.7.9+ - setting a custom action hook for admin notices prevents the form object from being instantiated unnecessarily.
135
-        $this->sSettingNoticeActionHook = 'load_' . $sClassName;
135
+        $this->sSettingNoticeActionHook = 'load_'.$sClassName;
136 136
 
137 137
         parent::__construct(
138 138
             $oCaller,
Please login to merge, or discard this patch.
factory/_common/_abstract/_view/AdminPageFramework_PageLoadInfo_Base.php 1 patch
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -27,7 +27,7 @@  discard block
 block discarded – undo
27 27
      */
28 28
     public function __construct( $oProp, $oMsg ) {
29 29
 
30
-        if ( ! $this->_shouldProceed( $oProp ) ) {
30
+        if ( !$this->_shouldProceed( $oProp ) ) {
31 31
             return;
32 32
         }
33 33
 
@@ -44,7 +44,7 @@  discard block
 block discarded – undo
44 44
          */
45 45
         private function _shouldProceed( $oProp ) {
46 46
 
47
-            if ( $oProp->bIsAdminAjax || ! $oProp->bIsAdmin ) {
47
+            if ( $oProp->bIsAdminAjax || !$oProp->bIsAdmin ) {
48 48
                 return false;
49 49
             }
50 50
             return ( boolean ) $oProp->bShowDebugInfo;
@@ -71,7 +71,7 @@  discard block
 block discarded – undo
71 71
     public function _replyToGetPageLoadInfo( $sFooterHTML ) {
72 72
 
73 73
         // 3.8.8+ The `bShowDebugInfo` property may be updated by the user during the page load.
74
-        if ( ! $this->oProp->bShowDebugInfo ) {
74
+        if ( !$this->oProp->bShowDebugInfo ) {
75 75
             return $sFooterHTML;
76 76
         }
77 77
 
@@ -105,10 +105,10 @@  discard block
 block discarded – undo
105 105
             $_sInitialMemoryUsage = $this->getReadableBytes( $_nInitialMemoryUsage );
106 106
             return "<div id='admin-page-framework-page-load-stats'>"
107 107
                     . "<ul>"
108
-                        . "<li>" . sprintf( $this->oMsg->get( 'queries_in_seconds' ), $_nQueryCount, $_nSeconds ) . "</li>"
109
-                        . "<li>" . sprintf( $this->oMsg->get( 'out_of_x_memory_used' ), $_sMemoryUsage, $_sMemoryLimit, round( ( $_nMemoryUsage / $_nMemoryLimit ), 2 ) * 100 . '%' ) . "</li>"
110
-                        . "<li>" . sprintf( $this->oMsg->get( 'peak_memory_usage' ), $_sMemoryPeakUsage ) . "</li>"
111
-                        . "<li>" . sprintf( $this->oMsg->get( 'initial_memory_usage' ), $_sInitialMemoryUsage ) . "</li>"
108
+                        . "<li>".sprintf( $this->oMsg->get( 'queries_in_seconds' ), $_nQueryCount, $_nSeconds )."</li>"
109
+                        . "<li>".sprintf( $this->oMsg->get( 'out_of_x_memory_used' ), $_sMemoryUsage, $_sMemoryLimit, round( ( $_nMemoryUsage / $_nMemoryLimit ), 2 ) * 100.'%' )."</li>"
110
+                        . "<li>".sprintf( $this->oMsg->get( 'peak_memory_usage' ), $_sMemoryPeakUsage )."</li>"
111
+                        . "<li>".sprintf( $this->oMsg->get( 'initial_memory_usage' ), $_sInitialMemoryUsage )."</li>"
112 112
                     . "</ul>"
113 113
                 . "</div>";
114 114
 
Please login to merge, or discard this patch.