* Victor Vasiliev
== Patch Contributors ==
+* Adam Mckaig
* Agbad
* Brad Jorsch
* Brent G
* church of emacs
* Daniel Arnold
* Danny B.
+* Evan Wheeler
* FunPika
* Happy-melon
* Jeremy Baron
* Jidanni
* Juliano F. Ravasi
-* Lucas Garczewski
* Louperivois
+* Lucas Garczewski
* Luigi Corsaro
* Manuel Menal
* Marcin Cieślak
+* Mark Johnston
* Marooned
* Max Semenik
+* Merrick Schaefer
* Michael De La Rue
* Michael Walsh
* Mike Horvath
* Simon Walker
* Stefano Codari
* Str4nd
+* Travis Derouin
== Translators ==
* Anders Wegge Jakobsen
* (bug 18222) $wgMinimalPasswordLength default is now 1
* $wgSessionHandler can be used to configure session.save_handler
+=== Migrated extensions ===
+The following extensions are migrated into MediaWiki 1.15:
+
+* Special:CreatePage (was extension Uniwiki CreatePage)
+
=== New features in 1.15 ===
* (bug 2242) Add an expiry time to temporary passwords
'ShortPagesPage' => 'includes/specials/SpecialShortpages.php',
'SpecialAllpages' => 'includes/specials/SpecialAllpages.php',
'SpecialBookSources' => 'includes/specials/SpecialBooksources.php',
+ 'SpecialCreatePage' => 'includes/specials/SpecialCreatePage.php',
'SpecialExport' => 'includes/specials/SpecialExport.php',
'SpecialImport' => 'includes/specials/SpecialImport.php',
'SpecialListGroupRights' => 'includes/specials/SpecialListgrouprights.php',
'Export' => 'pagetools',
'Import' => 'pagetools',
'Whatlinkshere' => 'pagetools',
+ 'Createpage' => 'pagetools',
'Statistics' => 'wiki',
'Version' => 'wiki',
'Undelete' => array( 'SpecialPage', 'Undelete', 'deletedhistory' ),
'Whatlinkshere' => 'SpecialWhatlinkshere',
'MergeHistory' => array( 'SpecialPage', 'MergeHistory', 'mergehistory' ),
+ 'Createpage' => 'SpecialCreatePage',
# Other
'Booksources' => 'SpecialBookSources',
--- /dev/null
+<?php
+/* This code was adapted from CreatePage.php from: Travis Derouin <travis@wikihow.com> for the Uniwiki extension CreatePage
+ * Originally licensed as: GNU GPL v2.0 or later
+ *
+ * This page has been copied and adapted from the Uniwiki extension CreatePage
+ * Originally licensed as: http://www.gnu.org/licenses/gpl-3.0.txt
+ *
+ * @license GNU GPL v3.0 http://www.gnu.org/licenses/gpl-3.0.txt
+ * @author Travis Derouin
+ * @author Merrick Schaefer
+ * @author Mark Johnston
+ * @author Evan Wheeler
+ * @author Adam Mckaig (at UNICEF)
+ * @author Siebrand Mazeland (integrated into MediaWiki core)
+ * @addtogroup SpecialPage
+ */
+
+class SpecialCreatePage extends SpecialPage {
+
+ function __construct() {
+ SpecialPage::SpecialPage( 'CreatePage', 'createpage' );
+ }
+
+ public function execute( $params ) {
+ global $wgOut, $wgRequest, $wgUser;
+
+ $this->setHeaders();
+
+ if ( !$this->userCanExecute( $wgUser ) ) {
+ $this->displayRestrictionError();
+ return;
+ }
+
+ $wgOut->addWikiMsg( 'createpage-summary' );
+
+ // check to see if we are trying to create a page
+ $target = $wgRequest->getVal ( 'target' );
+ $title = Title::newFromText ( $target );
+
+ // check for no title
+ if ( $wgRequest->wasPosted() && $target === '' ) {
+ $this->error( wfMsg( 'createpage-entertitle' ) );
+ }
+ // check for invalid title
+ elseif ( $wgRequest->wasPosted() && is_null( $title ) ) {
+ $this->error( wfMsg( 'createpage-badtitle', $target ) );
+ }
+ elseif ( $target != null ) {
+ if ( $title->getArticleID() > 0 ) {
+ // if the title exists then let the user know and give other options
+ $wgOut->addWikiText ( wfMsg ( 'createpage-titleexists', $title->getFullText() ) . "<br />" );
+ $skin = $wgUser->getSkin();
+ $editlink = $skin->makeLinkObj( $title, wfMsg ( 'createpage-editexisting' ), 'action=edit' );
+ $thisPage = Title::newFromText ( 'CreatePage', NS_SPECIAL );
+ $wgOut->addHTML ( $editlink . '<br />'
+ . $skin->makeLinkObj ( $thisPage, wfMsg ( 'createpage-tryagain' ) )
+ );
+ return;
+ } else {
+ /* TODO - may want to search for closely named pages and give
+ * other options here... */
+
+ // otherwise, redirect them to the edit page for their title
+ $wgOut->redirect ( $title->getEditURL() );
+ }
+ }
+
+ // if this is just a normal GET, then output the form
+
+ // prefill the input with the title, if it was passed along
+ $newTitle = false;
+ $newTitleText = $wgRequest->getVal( 'newtitle', null );
+ if ( $newTitleText != null ) {
+ $newTitle = Title::newFromURL( $newTitleText );
+ if ( is_null( $newTitle ) )
+ $newTitle = $newTitleText;
+ else
+ $newTitle = $newTitle->getText();
+ }
+
+ // output the form
+ $form = Xml::openElement( 'fieldset' ) .
+ Xml::element( 'legend', null, wfMsg( 'createpage' ) ) . # This should really use a different message
+ wfMsgWikiHtml( 'createpage-instructions' ) .
+ Xml::openElement( 'form', array( 'method' => 'post', 'name' => 'createpageform', 'action' => '' ) ) .
+ Xml::element( 'input', array( 'type' => 'text', 'name' => 'target', 'size' => 50, 'value' => $newTitle ) ) .
+ '<br />' .
+ Xml::element( 'input', array( 'type' => 'submit', 'value' => wfMsgHtml( 'createpage-submitbutton' ) ) ) .
+ Xml::closeElement( 'form' ) .
+ Xml::closeElement( 'fieldset' );
+ $wgOut->addHTML( $form );
+ }
+ /*
+ * Function to output an error message
+ * @param $msg String: message text or HTML
+ */
+ function error( $msg ) {
+ global $wgOut;
+ $wgOut->addHTML( Xml::element( 'p', array( 'class' => 'error' ), $msg ) );
+ }
+}
'LinkSearch' => array( 'بحث_الوصلات' ),
'DeletedContributions' => array( 'مساهمات_محذوفة' ),
'Tags' => array( 'وسوم' ),
+ 'Createpage' => array( 'إنشاء_صفحة' ),
);
/**
'LinkSearch' => array( 'بحث_الوصلات' ),
'DeletedContributions' => array( 'مساهمات_محذوفة' ),
'Tags' => array( 'وسوم' ),
+ 'Createpage' => array( 'إنشاء_صفحة' ),
);
$messages = array(
'LinkSearch' => array( 'Weblink-Suche' ),
'DeletedContributions' => array( 'Gelöschte Beiträge' ),
'Tags' => array( 'Markierungen' ),
+ 'Createpage' => array( 'Seite erstellen' ),
);
$datePreferences = array(
'LinkSearch' => array( 'Pytanje wótkazow' ),
'DeletedContributions' => array( 'Wulašowane pśinoski' ),
'Tags' => array( 'Toflicki' ),
+ 'Createpage' => array( 'Bok napóraś' ),
);
$messages = array(
'LinkSearch' => array( 'LinkSearch' ),
'DeletedContributions' => array( 'DeletedContributions' ),
'Tags' => array( 'Tags' ),
+ 'Createpage' => array( 'CreatePage' ),
);
/**
** currentevents-url|currentevents
** recentchanges-url|recentchanges
** randompage-url|randompage
+** createpage-url|createpage
** helppage|help
* SEARCH
* TOOLBOX
'htmlform-reset' => 'Undo changes',
'htmlform-selectorother-other' => 'Other',
+# Special:CreatePage
+'createpage' => 'Create a page',
+'createpage-url' => 'Special:CreatePage', # do not translate or duplicate this message to other languages
+'createpage-summary' => '', # do not translate or duplicate this message to other languages
+'createpage-submitbutton' => 'Submit',
+'createpage-instructions' => 'Enter the title of the page you wish to create:',
+'createpage-entertitle' => 'Please enter a title for your page.',
+'createpage-titleexists' => 'A page with the title [[$1]] already exists.
+Would you like to edit the existing page?',
+'createpage-tryagain' => 'No. I want to create a new page with a distinct title.',
+'createpage-editexisting' => 'Yes. I want to contribute to the existing page.',
+'createpage-badtitle' => '"$1" cannot be used as a page title',
+
);
'Blankpage' => array( 'BlanquearPágina', 'Blanquear página' ),
'LinkSearch' => array( 'BúsquedaDeEnlaces', 'Búsqueda de enlaces' ),
'DeletedContributions' => array( 'ContribucionesBorradas', 'Contribuciones Borradas' ),
+ 'Createpage' => array( 'Crear_página' ),
);
$magicWords = array(
'LinkSearch' => array( 'Recherche de lien', 'Recherche de liens' ),
'DeletedContributions' => array( 'Contributions supprimées', 'ContributionsSupprimées', 'ContributionSupprimees' ),
'Tags' => array( 'Balises' ),
+ 'Createpage' => array( 'Créer page', 'CréerPage' ),
);
$separatorTransformTable = array( ',' => "\xc2\xa0", '.' => ',' );
$fallback = 'fr';
-
$bookstoreList = array(
'Amazon.fr' => 'http://www.amazon.fr/exec/obidos/ISBN=$1',
'alapage.fr' => 'http://www.alapage.com/mx/?tp=F&type=101&l_isbn=$1&donnee_appel=ALASQ&devise=&',
NS_CATEGORY_TALK => 'Discussion_Catègorie',
);
+$specialPageAliases = array(
+ 'Createpage' => array( 'Fâre una pâge', 'FâreUnaPâge' ),
+);
+
$linkTrail = '/^([a-zàâçéèêîœôû·’æäåāăëēïīòöōùü‘]+)(.*)$/sDu';
$dateFormats = array(
'LinkSearch' => array( 'Buscar ligazóns web' ),
'DeletedContributions' => array( 'Contribucións borradas' ),
'Tags' => array( 'Etiquetas' ),
+ 'Createpage' => array( 'Crear a páxina' ),
);
$magicWords = array(
'Blankpage' => array( 'Läärsyte' ),
'LinkSearch' => array( 'Suech no Gleicher' ),
'DeletedContributions' => array( 'Gleschti Byytreeg' ),
+ 'Createpage' => array( 'Syte aalege' ),
);
$linkTrail = '/^([äöüßa-z]+)(.*)$/sDu';
'LinkSearch' => array( 'Wotkazowe pytanje' ),
'DeletedContributions' => array( 'Zničene přinoški' ),
'Tags' => array( 'Taflički' ),
+ 'Createpage' => array( 'Stronu wutworić' ),
);
$messages = array(
'LinkSearch' => array( 'Hivatkozás keresés' ),
'DeletedContributions' => array( 'Törölt szerkesztések' ),
'Tags' => array( 'Címkék' ),
+ 'Createpage' => array( 'Oldalkészítés', 'Oldal készítése' ),
);
$datePreferences = array(
'LinkSearch' => array( 'Recerca de ligamines' ),
'DeletedContributions' => array( 'Contributiones delite' ),
'Tags' => array( 'Etiquettas' ),
+ 'Createpage' => array( 'Crear pagina' ),
);
$messages = array(
'Blankpage' => array( 'PaginaVuota' ),
'LinkSearch' => array( 'CercaCollegamenti' ),
'DeletedContributions' => array( 'ContributiCancellati' ),
+ 'Createpage' => array( 'CreaPagina' ),
);
$magicWords = array(
'LinkSearch' => array( '外部リンク検索' ),
'DeletedContributions' => array( '削除された投稿記録', '削除された投稿履歴', '削除歴' ),
'Tags' => array( 'タグ一覧' ),
+ 'Createpage' => array( 'ページ作成' ),
);
$magicWords = array(
'Blankpage' => array( 'ទំព័រទទេ' ),
'LinkSearch' => array( 'ស្វែងរកតំណភ្ជាប់' ),
'DeletedContributions' => array( 'ការរួមចំណែកដែលត្រូវបានលុបចោល' ),
+ 'Createpage' => array( 'បង្កើតទំព័រ' ),
);
$magicWords = array(
'LinkSearch' => array( 'Websigge Söke' ),
'DeletedContributions' => array( 'Fotjeschmeße' ),
'Tags' => array( 'Makeerunge' ),
+ 'Createpage' => array( 'Sigge_aanlääje', 'Sigg_aanlääje' ),
);
$magicWords = array(
'Bild_Diskussioun' => NS_FILE_TALK,
);
-
$specialPageAliases = array(
'DoubleRedirects' => array( 'Duebel Viruleedungen' ),
'BrokenRedirects' => array( 'Futtis Viruleedungen' ),
'LinkSearch' => array( 'Weblink-Sich' ),
'DeletedContributions' => array( 'Geläschte Kontributiounen' ),
'Tags' => array( 'Taggen' ),
+ 'Createpage' => array( 'Säiten uleeën' ),
);
$messages = array(
'LinkSearch' => array( 'ПребарајВрска' ),
'DeletedContributions' => array( 'ИзбришаниПридонеси' ),
'Tags' => array( 'Приврзоци' ),
+ 'Createpage' => array( 'КреирајСтраница' ),
);
$magicWords = array(
'Blankpage' => array( 'PaġnaVojta' ),
'LinkSearch' => array( 'FittexĦolqa' ),
'DeletedContributions' => array( 'KontribuzzjonijietImħassra' ),
+ 'Createpage' => array( 'OħloqPaġna' ),
);
$magicWords = array(
'Blankpage' => array( 'Lege_pagina' ),
'LinkSearch' => array( 'Verwiezingen_zeuken' ),
'DeletedContributions' => array( 'Vort-ehaolen gebrukersbiedragen' ),
+ 'Createpage' => array( 'Pagina_anmaken' ),
);
$linkTrail = '/^([a-zäöüïëéèà]+)(.*)$/sDu';
'LinkSearch' => array( 'VerwijzingenZoeken', 'LinksZoeken' ),
'DeletedContributions' => array( 'VerwijderdeBijdragen' ),
'Tags' => array( 'Labels' ),
+ 'Createpage' => array( 'PaginaAanmaken' ),
);
$linkTrail = '/^([a-zäöüïëéèà]+)(.*)$/sDu';
'LinkSearch' => array( 'Lenkesøk' ),
'DeletedContributions' => array( 'Slettede bidrag' ),
'Tags' => array( 'Tagger' ),
+ 'Createpage' => array( 'Opprett side' ),
);
$messages = array(
'Blankpage' => array( 'تش مخ' ),
'LinkSearch' => array( 'د تړنې پلټنه' ),
'DeletedContributions' => array( 'ړنګې شوي ونډې' ),
+ 'Createpage' => array( 'مخ جوړول' ),
);
$magicWords = array(
'Blankpage' => array( 'रिक्तपृष्ठ' ),
'LinkSearch' => array( 'सम्बन्धन्शोध' ),
'DeletedContributions' => array( 'परित्यागितयोगदान' ),
+ 'Createpage' => array( 'पृष्ठस्यसृजन' ),
);
$magicWords = array(
'Invalidateemail' => array( 'SurelekTeuKaci' ),
'Blankpage' => array( 'KacaKosong' ),
'Tags' => array( 'Tag' ),
+ 'Createpage' => array( 'JieunKaca' ),
);
$messages = array(
'LinkSearch' => array( 'Länksökning' ),
'DeletedContributions' => array( 'Raderade bidrag' ),
'Tags' => array( 'Taggar' ),
+ 'Createpage' => array( 'Skapa sida' ),
);
$magicWords = array(
'Blankpage' => array( 'KurasaTupu' ),
'LinkSearch' => array( 'TafutaKiungo' ),
'DeletedContributions' => array( 'MichangoIliyofutwa' ),
+ 'Createpage' => array( 'AnzishaUkurasa' ),
);
$messages = array(
'LinkSearch' => array( 'ค้นหาเว็บลิงก์' ),
'DeletedContributions' => array( 'การแก้ไขที่ถูกลบ' ),
'Tags' => array( 'ป้ายกำักับ' ),
+ 'Createpage' => array( 'สร้างหน้า' ),
);
$magicWords = array(
'LinkSearch' => array( 'Paghahanap ng kawing' ),
'DeletedContributions' => array( 'Naburang mga ambag' ),
'Tags' => array( 'Mga tatak' ),
+ 'Createpage' => array( 'Likhain ang pahina', 'LikhaPahina' ),
);
$messages = array(
'LinkSearch' => array( 'SercaLigamenti' ),
'DeletedContributions' => array( 'ContributiScancelà' ),
'Tags' => array( 'Tag' ),
+ 'Createpage' => array( 'CreaPàxena' ),
);
$messages = array(
'upload-summary',
'newuserlogentry',
'wantedtemplates-summary',
+ 'createpage-summary',
+ 'createpage-url',
);
/** Optional messages, which may be translated only if changed in the target language. */
'htmlform-reset',
'htmlform-selectorother-other',
),
+ 'createpage' => array(
+ 'createpage',
+ 'createpage-url',
+ 'createpage-summary',
+ 'createpage-submitbutton',
+ 'createpage-instructions',
+ 'createpage-entertitle',
+ 'createpage-titleexists',
+ 'createpage-tryagain',
+ 'createpage-editexisting',
+ 'createpage-badtitle',
+ ),
);
/** Comments for each block */
'special-tags' => 'Special:Tags',
'db-error-messages' => 'Database error messages',
'html-forms' => 'HTML forms',
+ 'createpage' => 'Special:CreatePage',
);