Tell regexp parser to use extra analysis on external link regexp;
[lhc/web/wiklou.git] / includes / EditPage.php
index 1bacbef..cf64b00 100644 (file)
@@ -269,13 +269,12 @@ class EditPage {
                        $this->textbox1 = $this->mArticle->getContent( true );
                        $this->edittime = $this->mArticle->getTimestamp();
                } else {
-                       $s = wfMsg( 'editing', $this->mTitle->getPrefixedText() );
 
                        if( $this->section != '' ) {
                                if( $this->section == 'new' ) {
-                                       $s.=wfMsg('commentedit');
+                                       $s = wfMsg('editingcomment', $this->mTitle->getPrefixedText() );
                                } else {
-                                       $s.=wfMsg('sectionedit');
+                                       $s = wfMsg('editingsection', $this->mTitle->getPrefixedText() );
                                }
                                if(!$this->preview) {
                                        $sectitle=preg_match("/^=+(.*?)=+/mi",
@@ -285,6 +284,8 @@ class EditPage {
                                                $this->summary = "/* ". trim($matches[1])." */ ";
                                        }
                                }
+                       } else {
+                               $s = wfMsg( 'editing', $this->mTitle->getPrefixedText() );
                        }
                        $wgOut->setPageTitle( $s );
                        if ( !$wgUseLatin1 && !$this->checkUnicodeCompliantBrowser() ) {
@@ -304,7 +305,7 @@ class EditPage {
                } else if ( $isCssJsSubpage and 'preview' != $formtype) {
                        $wgOut->addHTML( wfMsg( 'usercssjsyoucanpreview' ));
                }
-               if( $this->mTitle->isProtected() ) {
+               if( $this->mTitle->isProtected('edit') ) {
                        $wgOut->addHTML( '<strong>' . wfMsg( 'protectedpagewarning' ) .
                          "</strong><br />\n" );
                }
@@ -349,7 +350,7 @@ class EditPage {
 
                if( $wgUser->getOption('showtoolbar') and !$isCssJsSubpage ) {
                        # prepare toolbar for edit buttons
-                       $toolbar = $sk->getEditToolbar();
+                       $toolbar = $this->getEditToolbar();
                } else {
                        $toolbar = '';
                }
@@ -668,6 +669,133 @@ htmlspecialchars( $wgContLang->recodeForEdit( $this->textbox1 ) ) .
                        array_values( $replacearray ),
                        $sectionanchor );
        }
+
+       /**
+        * Shows a bulletin board style toolbar for common editing functions.
+        * It can be disabled in the user preferences.
+        * The necessary JavaScript code can be found in style/wikibits.js.
+        */
+       function getEditToolbar() {
+               global $wgStylePath, $wgLang, $wgMimeType;
+
+               /**
+                * toolarray an array of arrays which each include the filename of
+                * the button image (without path), the opening tag, the closing tag,
+                * and optionally a sample text that is inserted between the two when no
+                * selection is highlighted.
+                * The tip text is shown when the user moves the mouse over the button.
+                *
+                * Already here are accesskeys (key), which are not used yet until someone
+                * can figure out a way to make them work in IE. However, we should make
+                * sure these keys are not defined on the edit page.
+                */
+               $toolarray=array(
+                       array(  'image'=>'button_bold.png',
+                                       'open'  =>      "\'\'\'",
+                                       'close' =>      "\'\'\'",
+                                       'sample'=>      wfMsg('bold_sample'),
+                                       'tip'   =>      wfMsg('bold_tip'),
+                                       'key'   =>      'B'
+                               ),
+                       array(  'image'=>'button_italic.png',
+                                       'open'  =>      "\'\'",
+                                       'close' =>      "\'\'",
+                                       'sample'=>      wfMsg('italic_sample'),
+                                       'tip'   =>      wfMsg('italic_tip'),
+                                       'key'   =>      'I'
+                               ),
+                       array(  'image'=>'button_link.png',
+                                       'open'  =>      '[[',
+                                       'close' =>      ']]',
+                                       'sample'=>      wfMsg('link_sample'),
+                                       'tip'   =>      wfMsg('link_tip'),
+                                       'key'   =>      'L'
+                               ),
+                       array(  'image'=>'button_extlink.png',
+                                       'open'  =>      '[',
+                                       'close' =>      ']',
+                                       'sample'=>      wfMsg('extlink_sample'),
+                                       'tip'   =>      wfMsg('extlink_tip'),
+                                       'key'   =>      'X'
+                               ),
+                       array(  'image'=>'button_headline.png',
+                                       'open'  =>      "\\n== ",
+                                       'close' =>      " ==\\n",
+                                       'sample'=>      wfMsg('headline_sample'),
+                                       'tip'   =>      wfMsg('headline_tip'),
+                                       'key'   =>      'H'
+                               ),
+                       array(  'image'=>'button_image.png',
+                                       'open'  =>      '[['.$wgLang->getNsText(NS_IMAGE).":",
+                                       'close' =>      ']]',
+                                       'sample'=>      wfMsg('image_sample'),
+                                       'tip'   =>      wfMsg('image_tip'),
+                                       'key'   =>      'D'
+                               ),
+                       array(  'image' =>      'button_media.png',
+                                       'open'  =>      '[['.$wgLang->getNsText(NS_MEDIA).':',
+                                       'close' =>      ']]',
+                                       'sample'=>      wfMsg('media_sample'),
+                                       'tip'   =>      wfMsg('media_tip'),
+                                       'key'   =>      'M'
+                               ),
+                       array(  'image' =>      'button_math.png',
+                                       'open'  =>      "\\<math\\>",
+                                       'close' =>      "\\</math\\>",
+                                       'sample'=>      wfMsg('math_sample'),
+                                       'tip'   =>      wfMsg('math_tip'),
+                                       'key'   =>      'C'
+                               ),
+                       array(  'image' =>      'button_nowiki.png',
+                                       'open'  =>      "\\<nowiki\\>",
+                                       'close' =>      "\\</nowiki\\>",
+                                       'sample'=>      wfMsg('nowiki_sample'),
+                                       'tip'   =>      wfMsg('nowiki_tip'),
+                                       'key'   =>      'N'
+                               ),
+                       array(  'image' =>      'button_sig.png',
+                                       'open'  =>      '--~~~~',
+                                       'close' =>      '',
+                                       'sample'=>      '',
+                                       'tip'   =>      wfMsg('sig_tip'),
+                                       'key'   =>      'Y'
+                               ),
+                       array(  'image' =>      'button_hr.png',
+                                       'open'  =>      "\\n----\\n",
+                                       'close' =>      '',
+                                       'sample'=>      '',
+                                       'tip'   =>      wfMsg('hr_tip'),
+                                       'key'   =>      'R'
+                               )
+               );
+               $toolbar ="<script type='text/javascript'>\n/*<![CDATA[*/\n";
+
+               $toolbar.="document.writeln(\"<div id='toolbar'>\");\n";
+               foreach($toolarray as $tool) {
+
+                       $image=$wgStylePath.'/common/images/'.$tool['image'];
+                       $open=$tool['open'];
+                       $close=$tool['close'];
+                       $sample = addslashes( $tool['sample'] );
+
+                       // Note that we use the tip both for the ALT tag and the TITLE tag of the image.
+                       // Older browsers show a "speedtip" type message only for ALT.
+                       // Ideally these should be different, realistically they
+                       // probably don't need to be.
+                       $tip = addslashes( $tool['tip'] );
+
+                       #$key = $tool["key"];
+
+                       $toolbar.="addButton('$image','$tip','$open','$close','$sample');\n";
+               }
+
+               $toolbar.="addInfobox('" . addslashes( wfMsg( "infobox" ) ) . "','" . addslashes(wfMsg("infobox_alert")) . "');\n";
+               $toolbar.="document.writeln(\"</div>\");\n";
+
+               $toolbar.="/*]]>*/\n</script>";
+               return $toolbar;
+       }
+
 }
 
 ?>