r65635 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r65634‎ | r65635 | r65636 >
Date:21:30, 28 April 2010
Author:siebrand
Status:ok
Tags:
Comment:
* add special page alias i18n and add support to Translate
* stylize.php, trailing whitespace removed, indentation updated
Modified paths:
  • /trunk/extensions/CentralNotice/CentralNotice.alias.php (added) (history)
  • /trunk/extensions/CentralNotice/CentralNotice.i18n.php (modified) (history)
  • /trunk/extensions/CentralNotice/CentralNotice.php (modified) (history)
  • /trunk/extensions/CentralNotice/SpecialNoticeLocal.php (modified) (history)
  • /trunk/extensions/CentralNotice/SpecialNoticeTemplate.php (modified) (history)
  • /trunk/extensions/CentralNotice/SpecialNoticeText.php (modified) (history)
  • /trunk/extensions/CentralNotice/patch-add-preferred.sql (modified) (history)
  • /trunk/extensions/CentralNotice/rebuildTemplates.php (modified) (history)
  • /trunk/extensions/Translate/groups/mediawiki-defines.txt (modified) (history)

Diff [purge]

Index: trunk/extensions/CentralNotice/CentralNotice.php
@@ -102,13 +102,13 @@
103103 $dir = dirname( __FILE__ ) . '/';
104104
105105 $wgExtensionMessagesFiles['CentralNotice'] = $dir . 'CentralNotice.i18n.php';
 106+$wgExtensionAliasesFiles['CentralNotice'] = $dir . 'CentralNotice.alias.php';
106107
107108 $wgAvailableRights[] = 'centralnotice-admin';
108109 $wgAvailableRights[] = 'centralnotice-translate';
109110 $wgGroupPermissions['sysop']['centralnotice-admin'] = true; // Only sysops can make change
110111 $wgGroupPermissions['sysop']['centralnotice-translate'] = true; // Only sysops can make change
111112
112 -
113113 function efCentralNoticeSetup() {
114114 global $wgHooks, $wgNoticeInfrastructure, $wgAutoloadClasses, $wgSpecialPages;
115115 global $wgCentralNoticeLoader;
Index: trunk/extensions/CentralNotice/SpecialNoticeLocal.php
@@ -1,7 +1,6 @@
22 <?php
33
44 class SpecialNoticeLocal extends NoticePage {
5 -
65 function __construct() {
76 parent::__construct( "NoticeLocal" );
87 }
Index: trunk/extensions/CentralNotice/rebuildTemplates.php
@@ -16,14 +16,14 @@
1717 // Hack for parser to avoid barfing from no $wgTitle
1818 $wgTitle = Title::newFromText( wfMsg( 'mainpage' ) );
1919
20 - if ( isset( $options['n'] ) ) {
21 - $notice = explode( "/", $args[0] );
22 - $projects = array( $notice[0] );
23 - $langs = array( $notice[1] );
24 - } else {
25 - $projects = $wgNoticeProjects;
26 - $langs = array_keys( Language::getLanguageNames() );
27 - }
 20+ if ( isset( $options['n'] ) ) {
 21+ $notice = explode( "/", $args[0] );
 22+ $projects = array( $notice[0] );
 23+ $langs = array( $notice[1] );
 24+ } else {
 25+ $projects = $wgNoticeProjects;
 26+ $langs = array_keys( Language::getLanguageNames() );
 27+ }
2828 foreach ( $projects as $project ) {
2929 foreach ( $langs as $lang ) {
3030 $key = "$project/$lang";
@@ -32,20 +32,20 @@
3333 $builder = new SpecialNoticeText();
3434 $js = $builder->getJsOutput( $key );
3535
36 - if ( isset( $options['o'] ) ) {
37 - $outputDir = "$wgNoticeCentralDirectory/$project/$lang";
38 - if ( wfMkDirParents( $outputDir ) ) {
39 - $outputFile = "$outputDir/centralnotice.js";
40 - $ok = file_put_contents( $outputFile, $js );
41 - if ( !$ok ) {
42 - echo "FAILED to write $outputFile!\n";
43 - }
44 - } else {
45 - echo "FAILED to create $outputDir!\n";
46 - }
47 - } else {
48 - echo $js;
49 - }
 36+ if ( isset( $options['o'] ) ) {
 37+ $outputDir = "$wgNoticeCentralDirectory/$project/$lang";
 38+ if ( wfMkDirParents( $outputDir ) ) {
 39+ $outputFile = "$outputDir/centralnotice.js";
 40+ $ok = file_put_contents( $outputFile, $js );
 41+ if ( !$ok ) {
 42+ echo "FAILED to write $outputFile!\n";
 43+ }
 44+ } else {
 45+ echo "FAILED to create $outputDir!\n";
 46+ }
 47+ } else {
 48+ echo $js;
 49+ }
5050 }
5151 }
5252 }
Index: trunk/extensions/CentralNotice/CentralNotice.i18n.php
@@ -1111,7 +1111,7 @@
11121112 'centralnotice-weight' => 'Pwys',
11131113 'centralnotice-locked' => 'Ar glo',
11141114 'centralnotice-notices' => 'Hysbysiadau',
1115 - 'centralnotice-notice-exists' => "Mae'r hysbysiad eisoes ar gael.
 1115+ 'centralnotice-notice-exists' => "Mae'r hysbysiad eisoes ar gael.
11161116 Ni chaiff ei ychwanegu",
11171117 'centralnotice-notice-doesnt-exist' => "Nid yw'r hysbysiad ar gael.
11181118 Dim i gael gwared ohono",
@@ -1126,7 +1126,7 @@
11271127 'centralnotice-start-time' => 'Amser cychwyn (UTC)',
11281128 'centralnotice-start-hour' => 'Amser dechrau',
11291129 'centralnotice-weights' => 'Pwysau',
1130 - 'centralnotice-notice-is-locked' => "Mae'r hysbysiad wedi ei gloi.
 1130+ 'centralnotice-notice-is-locked' => "Mae'r hysbysiad wedi ei gloi.
11311131 Ni chaiff ei dynnu i ffwrdd",
11321132 'centralnotice-no-notices-exist' => 'Does dim hysbysiadau i gael.
11331133 Gallwch ychwanegu un isod.',
@@ -1514,7 +1514,7 @@
15151515 'centralnotice-no-templates-assigned' => 'Κανένα πρότυπο δεν έχει ανατεθεί σε σημείωση.
15161516 Προσθέστε κάποια!',
15171517 'centralnotice-available-templates' => 'Διαθέσιμα πρότυπα',
1518 - 'centralnotice-template-already-exists' => 'Το πρότυπο είναι ακόμη συνδεδεμένο με μία καμπάνια.
 1518+ 'centralnotice-template-already-exists' => 'Το πρότυπο είναι ακόμη συνδεδεμένο με μία καμπάνια.
15191519 Δεν έχει προστεθεί',
15201520 'centralnotice-preview-template' => 'Πρότυπο προεπισκόπησης',
15211521 'centralnotice-start-hour' => 'Χρόνος εκκίνησης',
@@ -1522,7 +1522,7 @@
15231523 'centralnotice-weights' => 'Βάρη',
15241524 'centralnotice-notice-is-locked' => 'Η σημείωση είναι κλειδωμένη.
15251525 Δεν θα αφαιρεθεί',
1526 - 'centralnotice-overlap' => 'Το σημείωμα επικαλύπτεται με τον χρόνο ενός άλλου σημειώματος.
 1526+ 'centralnotice-overlap' => 'Το σημείωμα επικαλύπτεται με τον χρόνο ενός άλλου σημειώματος.
15271527 Δεν έχει προστεθεί',
15281528 'centralnotice-invalid-date-range' => 'Άκυρο εύρος ημερομηνιών.
15291529 Δεν είναι ενημερωμένο',
@@ -1925,7 +1925,7 @@
19261926 'centralnotice-start-date' => 'تاریخ آغاز',
19271927 'centralnotice-start-time' => 'زمان آغاز',
19281928 'centralnotice-assigned-templates' => 'الگوهای متصل شده',
1929 - 'centralnotice-no-templates' => 'در این سیستم هیچ الگویی نیست.
 1929+ 'centralnotice-no-templates' => 'در این سیستم هیچ الگویی نیست.
19301930 چندتا بسازید.',
19311931 'centralnotice-no-templates-assigned' => 'الگویی به این اعلان متصل نیست.
19321932 اضافه کنید!',
@@ -4390,7 +4390,7 @@
43914391 'centralnotice-overlap' => 'Merknaden overlappar tida til ein annan merknad. Legg han ikkje til',
43924392 'centralnotice-invalid-date-range' => 'Ugyldig tidsrom. Oppdaterer ikkje',
43934393 'centralnotice-null-string' => 'Kan ikkje leggja til ein nullstreng. Legg ikkje til',
4394 - 'centralnotice-confirm-delete' => 'Er du sikker på at du vil sletta?
 4394+ 'centralnotice-confirm-delete' => 'Er du sikker på at du vil sletta?
43954395 Denne handlinga kan ikkje bli omgjort.',
43964396 'centralnotice-no-notices-exist' => 'Ingen merknader finst. Legg til ein under',
43974397 'centralnotice-no-templates-translate' => 'Det finst ingen malar å endra omsetjingar for',
@@ -5410,7 +5410,7 @@
54115411 'centralnotice-change-lang' => 'Cancia la lingua dâ traduzzioni',
54125412 'centralnotice-weights' => 'Pisa',
54135413 'centralnotice-notice-is-locked' => "L'avvisu è bliccatu. Avvisu nun livatu",
5414 - 'centralnotice-overlap' => "L'avvisu si camìna ntê pèdi di n'àutru avvisu a causa dû tempu.
 5414+ 'centralnotice-overlap' => "L'avvisu si camìna ntê pèdi di n'àutru avvisu a causa dû tempu.
54155415 Nun junciutu",
54165416 'centralnotice-invalid-date-range' => 'Ntirvaddu di tempu nun vàlidu.
54175417 Nun fu canciatu',
@@ -6207,7 +6207,7 @@
62086208 'centralnotice' => 'Merkezi uwedomleniýe admini',
62096209 'noticetemplate' => 'Merkezi uwedomleniýe şablony',
62106210 'centralnotice-desc' => 'Merkezi uwedomleniýe goşýar',
6211 - 'centralnotice-summary' => 'Bu modul size bar bolan gurulgy merkezi uwedomleniýeleri üýtgetmäge rugsat berýär.
 6211+ 'centralnotice-summary' => 'Bu modul size bar bolan gurulgy merkezi uwedomleniýeleri üýtgetmäge rugsat berýär.
62126212 Ony köne uwedomleniýeleri goşmak ýa-da aýyrmak üçin hem ulanmak bolýar.',
62136213 'centralnotice-query' => 'Häzirki uwedomleniýeleri üýtget',
62146214 'centralnotice-notice-name' => 'Uwedomleniýe ady',
@@ -6296,7 +6296,7 @@
62976297 'centralnotice' => 'Tagapangasiwa ng pangunahing pabatid',
62986298 'noticetemplate' => 'Suleras ng pangunahing pabatid',
62996299 'centralnotice-desc' => 'Nagdaragdag ng pangunahing pahayag ng sayt/sityo',
6300 - 'centralnotice-summary' => 'Nagbibigay ang bahaging-panggampaning ito ng pahintulot na mabago mo ang iyong pangkasulukyang naitakdang mga pangunahing pahayag.
 6300+ 'centralnotice-summary' => 'Nagbibigay ang bahaging-panggampaning ito ng pahintulot na mabago mo ang iyong pangkasulukyang naitakdang mga pangunahing pahayag.
63016301 Maaari rin itong gamitin upang makapagdagdag o magtanggal ng mga lumang pahayag.',
63026302 'centralnotice-query' => 'Baguhin ang pangkasalukuyang mga pabatid',
63036303 'centralnotice-notice-name' => 'Pangalan ng pabatid',
@@ -6485,7 +6485,7 @@
64866486 'centralnotice' => 'Управління централізованими сповіщеннями',
64876487 'noticetemplate' => 'Шаблон централізованого повідомлення',
64886488 'centralnotice-desc' => 'Додає загальне повідомлення сайту',
6489 - 'centralnotice-summary' => 'Цей модуль дозволяє вам змінювати ваші поточні централізовані повідомлення.
 6489+ 'centralnotice-summary' => 'Цей модуль дозволяє вам змінювати ваші поточні централізовані повідомлення.
64906490 Він також може використовуватися для додавання нових і видалення старих повідомлень.',
64916491 'centralnotice-query' => 'Змінити поточне повідомлення',
64926492 'centralnotice-notice-name' => 'Назва повідомлення',
@@ -6511,13 +6511,13 @@
65126512 'centralnotice-weight' => 'Ширина',
65136513 'centralnotice-locked' => 'Заблокований',
65146514 'centralnotice-notices' => 'повідомлення',
6515 - 'centralnotice-notice-exists' => 'Повідомлення вже існує.
 6515+ 'centralnotice-notice-exists' => 'Повідомлення вже існує.
65166516 Не додається',
6517 - 'centralnotice-template-exists' => 'Шаблон вже існує.
 6517+ 'centralnotice-template-exists' => 'Шаблон вже існує.
65186518 Не додається',
6519 - 'centralnotice-notice-doesnt-exist' => 'Повідомлення не існує.
 6519+ 'centralnotice-notice-doesnt-exist' => 'Повідомлення не існує.
65206520 Нема чого видаляти',
6521 - 'centralnotice-template-still-bound' => "Шаблон, як і раніше, пов'язаний з повідомленням.
 6521+ 'centralnotice-template-still-bound' => "Шаблон, як і раніше, пов'язаний з повідомленням.
65226522 Не видаляється.",
65236523 'centralnotice-template-body' => 'Тіло шаблону:',
65246524 'centralnotice-day' => 'День',
@@ -6530,28 +6530,28 @@
65316531 'centralnotice-start-date' => 'Дата початку',
65326532 'centralnotice-start-time' => 'Час початку (UTC)',
65336533 'centralnotice-assigned-templates' => 'Встановлені шаблони',
6534 - 'centralnotice-no-templates' => 'Не знайдено шаблонів.
 6534+ 'centralnotice-no-templates' => 'Не знайдено шаблонів.
65356535 Додайте що-небудь!',
6536 - 'centralnotice-no-templates-assigned' => "Не має пов'язаних з повідомленням шаблонів.
 6536+ 'centralnotice-no-templates-assigned' => "Не має пов'язаних з повідомленням шаблонів.
65376537 Додайте який-небудь!",
65386538 'centralnotice-available-templates' => 'Доступні шаблони',
6539 - 'centralnotice-template-already-exists' => "Шаблон вже прив'язаний.
 6539+ 'centralnotice-template-already-exists' => "Шаблон вже прив'язаний.
65406540 Не доданий",
65416541 'centralnotice-preview-template' => 'Попередній перегляд шаблону',
65426542 'centralnotice-start-hour' => 'Час початку',
65436543 'centralnotice-change-lang' => 'Змінити мову перекладу',
65446544 'centralnotice-weights' => 'Ваги',
6545 - 'centralnotice-notice-is-locked' => 'Повідомлення заблоковано.
 6545+ 'centralnotice-notice-is-locked' => 'Повідомлення заблоковано.
65466546 Не вилучається',
6547 - 'centralnotice-overlap' => 'Повідомлення перекривається за часом з іншим повідомленням.
 6547+ 'centralnotice-overlap' => 'Повідомлення перекривається за часом з іншим повідомленням.
65486548 Не додається',
6549 - 'centralnotice-invalid-date-range' => 'Хибний діапазон дат.
 6549+ 'centralnotice-invalid-date-range' => 'Хибний діапазон дат.
65506550 Не оновлюється',
6551 - 'centralnotice-null-string' => 'Не вдається додати порожній рядок.
 6551+ 'centralnotice-null-string' => 'Не вдається додати порожній рядок.
65526552 Не додається',
6553 - 'centralnotice-confirm-delete' => 'Ви впевнені у вирішенні вилучити цей елемент?
 6553+ 'centralnotice-confirm-delete' => 'Ви впевнені у вирішенні вилучити цей елемент?
65546554 Цю дію не можна буде скасувати.',
6555 - 'centralnotice-no-notices-exist' => 'Немає повідомлень.
 6555+ 'centralnotice-no-notices-exist' => 'Немає повідомлень.
65566556 Можна додати',
65576557 'centralnotice-no-templates-translate' => 'Не має ні одного шаблону для редагування перекладу',
65586558 'centralnotice-number-uses' => 'Використовуються',
@@ -6601,13 +6601,13 @@
66026602 'centralnotice-weight' => 'Peso',
66036603 'centralnotice-locked' => 'Blocà',
66046604 'centralnotice-notices' => 'Notifiche',
6605 - 'centralnotice-notice-exists' => 'Notifica zà esistente.
 6605+ 'centralnotice-notice-exists' => 'Notifica zà esistente.
66066606 Inserimento mia fato',
6607 - 'centralnotice-template-exists' => 'Modèl zà esistente.
 6607+ 'centralnotice-template-exists' => 'Modèl zà esistente.
66086608 Inserimento mia fato',
6609 - 'centralnotice-notice-doesnt-exist' => 'Notifica mia esistente.
 6609+ 'centralnotice-notice-doesnt-exist' => 'Notifica mia esistente.
66106610 Rimozion mia fata',
6611 - 'centralnotice-template-still-bound' => 'Modèl ancora ligà a na notifica.
 6611+ 'centralnotice-template-still-bound' => 'Modèl ancora ligà a na notifica.
66126612 Rimozion mia fata.',
66136613 'centralnotice-template-body' => 'Corpo del modèl:',
66146614 'centralnotice-day' => 'Zorno',
@@ -6625,7 +6625,7 @@
66266626 'centralnotice-no-templates-assigned' => 'Nissun modèl assegnà a la notifica
66276627 Zónteghene qualchedun!',
66286628 'centralnotice-available-templates' => 'Modèi disponibili',
6629 - 'centralnotice-template-already-exists' => 'Sto modèl el xe zà ligà a na campagna.
 6629+ 'centralnotice-template-already-exists' => 'Sto modèl el xe zà ligà a na campagna.
66306630 Inserimento mia fato',
66316631 'centralnotice-preview-template' => 'Anteprima modèl',
66326632 'centralnotice-start-hour' => 'Ora de scominsio',
Index: trunk/extensions/CentralNotice/patch-add-preferred.sql
@@ -1,4 +1,6 @@
2 -# Support for one notice to supercede all others. This allows one notice to cancel out all the templates that a non preffered notice might have if they overlap.
3 -# Use case is to be able to use one all language and projects notice and have it superceded by a specific one for en wikipedia
 2+# Support for one notice to supercede all others. This allows one notice to
 3+# cancel out all the templates that a non preffered notice might have if they
 4+# overlap. Use case is to be able to use one all language and projects notice
 5+# and have it superceded by a specific one for en wikipedia.
46
5 -ALTER TABLE cn_notices ADD COLUMN not_preferred bool NOT NULL default '0';
 7+ALTER TABLE cn_notices ADD COLUMN not_preferred bool NOT NULL default '0';
Index: trunk/extensions/CentralNotice/SpecialNoticeTemplate.php
@@ -6,7 +6,6 @@
77 }
88
99 class SpecialNoticeTemplate extends UnlistedSpecialPage {
10 -
1110 /* Functions */
1211
1312 function __construct() {
@@ -38,7 +37,7 @@
3938 if ( $this->editable ) {
4039 // Handle forms
4140 if ( $wgRequest->wasPosted() ) {
42 -
 41+
4342 // Handle removing
4443 $toRemove = $wgRequest->getArray( 'removeTemplates' );
4544 if ( isset( $toRemove ) ) {
@@ -47,7 +46,7 @@
4847 $this->removeTemplate( $template );
4948 }
5049 }
51 -
 50+
5251 // Handle translation message update
5352 $update = $wgRequest->getArray( 'updateText' );
5453 $token = $wgRequest->getArray( 'token' );
@@ -62,7 +61,7 @@
6362 }
6463 }
6564 }
66 -
 65+
6766 // Handle adding
6867 // FIXME: getText()? weak comparison
6968 if ( $wgRequest->getVal( 'wpMethod' ) == 'addTemplate' ) {
@@ -100,14 +99,15 @@
101100 $this->showAdd();
102101 return;
103102 }
104 - if ( $sub == 'clone' ) {
105 - $oldTemplate = $wgRequest->getVal( 'oldTemplate' );
106 - $newTemplate = $wgRequest->getVal( 'newTemplate' );
107 - // We use the returned name in case any special characters had to be removed
108 - $template = $this->cloneTemplate( $oldTemplate, $newTemplate );
109 - $wgOut->redirect( SpecialPage::getTitleFor( 'NoticeTemplate', 'view' )->getLocalUrl( "template=$template" ) );
110 - return;
111 - }
 103+
 104+ if ( $sub == 'clone' ) {
 105+ $oldTemplate = $wgRequest->getVal( 'oldTemplate' );
 106+ $newTemplate = $wgRequest->getVal( 'newTemplate' );
 107+ // We use the returned name in case any special characters had to be removed
 108+ $template = $this->cloneTemplate( $oldTemplate, $newTemplate );
 109+ $wgOut->redirect( SpecialPage::getTitleFor( 'NoticeTemplate', 'view' )->getLocalUrl( "template=$template" ) );
 110+ return;
 111+ }
112112 }
113113
114114 // Show list by default
@@ -123,7 +123,7 @@
124124 $templates = $this->queryTemplates();
125125 if ( count( $templates ) > 0 ) {
126126 $htmlOut = '';
127 -
 127+
128128 if ( $this->editable ) {
129129 $htmlOut .= Xml::openElement( 'form',
130130 array(
@@ -286,7 +286,7 @@
287287 $bodyPage = Title::newFromText( "Centralnotice-template-{$currentTemplate}", NS_MEDIAWIKI );
288288 $curRev = Revision::newFromTitle( $bodyPage );
289289 $body = $curRev ? $curRev->getText() : '';
290 -
 290+
291291 $fields = array();
292292 preg_match_all( '/\{\{\{([A-Za-z0-9\_\-}]+)\}\}\}/', $body, $fields );
293293
@@ -353,8 +353,10 @@
354354 );
355355 $htmlOut .= Xml::closeElement( 'tr' );
356356 }
 357+
357358 $htmlOut .= Xml::closeElement( 'table' );
358359 $htmlOut .= Xml::closeElement( 'fieldset' );
 360+
359361 if ( $this->editable ) {
360362 $htmlOut .= Xml::closeElement( 'form' );
361363 }
@@ -368,18 +370,18 @@
369371 list( $lsLabel, $lsSelect ) = Xml::languageSelector( $wpUserLang );
370372
371373 $newPage = SpecialPage::getTitleFor( 'NoticeTemplate', 'view' );
372 -
 374+
373375 $htmlOut .= Xml::tags( 'tr', null,
374376 Xml::tags( 'td', null, $lsLabel ) .
375377 Xml::tags( 'td', null, $lsSelect ) .
376378 Xml::tags( 'td', array( 'colspan' => 2 ),
377379 Xml::submitButton( wfMsg( 'centralnotice-modify' ) )
378380 )
379 - );
380 - $htmlOut .= Xml::tags( 'tr', null,
381 - Xml::tags( 'td', null, '' ) .
382 - Xml::tags( 'td', null, $sk->makeLinkObj( $newPage, wfMsgHtml( 'centralnotice-preview-all-template-translations' ), "template=$currentTemplate&wpUserLanguage=all" ) )
383381 );
 382+ $htmlOut .= Xml::tags( 'tr', null,
 383+ Xml::tags( 'td', null, '' ) .
 384+ Xml::tags( 'td', null, $sk->makeLinkObj( $newPage, wfMsgHtml( 'centralnotice-preview-all-template-translations' ), "template=$currentTemplate&wpUserLanguage=all" ) )
 385+ );
384386 $htmlOut .= Xml::closeElement( 'table' );
385387 $htmlOut .= Xml::closeElement( 'fieldset' );
386388 $htmlOut .= Xml::closeElement( 'form' );
@@ -452,7 +454,7 @@
453455 // Pull all available text for a template
454456 $langs = array_keys( $this->getTranslations( $template ) );
455457 $htmlOut = '';
456 -
 458+
457459 foreach ( $langs as $lang ) {
458460 // Link and Preview all available translations
459461 $viewPage = SpecialPage::getTitleFor( 'NoticeTemplate', 'view' );
@@ -470,7 +472,7 @@
471473 }
472474 return $wgOut->addHtml( $htmlOut );
473475 }
474 -
 476+
475477 private function updateMessage( $text, $translation, $lang, $token = false ) {
476478 global $wgUser;
477479
@@ -560,7 +562,9 @@
561563 $name = ereg_replace( '[^A-Za-z0-9\_]', '', $name );
562564
563565 $dbr = wfGetDB( DB_SLAVE );
564 - $res = $dbr->select( 'cn_templates', 'tmp_name',
 566+ $res = $dbr->select(
 567+ 'cn_templates',
 568+ 'tmp_name',
565569 array( 'tmp_name' => $name ),
566570 __METHOD__
567571 );
@@ -571,7 +575,8 @@
572576 } else {
573577 $dbw = wfGetDB( DB_MASTER );
574578 $dbw->begin();
575 - $res = $dbw->insert( 'cn_templates',
 579+ $res = $dbw->insert(
 580+ 'cn_templates',
576581 array( 'tmp_name' => $name ),
577582 __METHOD__
578583 );
@@ -614,79 +619,80 @@
615620 }
616621 }
617622
618 - /*
619 - * Copy all the data from one template to another
620 - */
621 - public function cloneTemplate( $source, $dest ) {
622 - // Reset the timer as updates on meta take a long time
623 - set_time_limit( 300 );
624 - // Pull all possible langs
625 - $langs = $this->getTranslations( $source );
626 -
627 - // Normalize name
628 - $dest = ereg_replace( '[^A-Za-z0-9\_]', '', $dest );
629 -
630 - // Pull text and respect any inc: markup
631 - $bodyPage = Title::newFromText( "Centralnotice-template-{$source}", NS_MEDIAWIKI );
632 - $template_body = Revision::newFromTitle( $bodyPage )->getText();
 623+ /*
 624+ * Copy all the data from one template to another
 625+ */
 626+ public function cloneTemplate( $source, $dest ) {
 627+ // Reset the timer as updates on meta take a long time
 628+ set_time_limit( 300 );
 629+ // Pull all possible langs
 630+ $langs = $this->getTranslations( $source );
633631
634 - if ( $this->addTemplate( $dest, $template_body ) ) {
 632+ // Normalize name
 633+ $dest = ereg_replace( '[^A-Za-z0-9\_]', '', $dest );
635634
636 - // Populate the fields
637 - foreach ( $langs as $lang => $fields ) {
638 - foreach ( $fields as $field => $text ) {
639 - $this->updateMessage( "$dest-$field", $text, $lang );
640 - }
641 - }
642 - return $dest;
643 - }
644 - }
 635+ // Pull text and respect any inc: markup
 636+ $bodyPage = Title::newFromText( "Centralnotice-template-{$source}", NS_MEDIAWIKI );
 637+ $template_body = Revision::newFromTitle( $bodyPage )->getText();
645638
646 - /*
647 - * Find all fields set for a template
648 - */
649 - private function findFields( $template ) {
650 - $messages = array();
651 - $body = wfMsg( "Centralnotice-template-{$template}" );
652 -
653 - // Generate fields from parsing the body
654 - $fields = array();
655 - preg_match_all( '/\{\{\{([A-Za-z0-9\_\-}]+)\}\}\}/', $body, $fields );
656 -
657 - // Remove duplicates
658 - $filteredFields = array();
659 - foreach ( $fields[1] as $field ) {
660 - $filteredFields[$field] = array_key_exists( $field, $filteredFields ) ? $filteredFields[$field] + 1 :
661 -1;
662 - }
663 - return $filteredFields;
664 - }
 639+ if ( $this->addTemplate( $dest, $template_body ) ) {
665640
666 - /*
667 - * Given a template return a list of every set field in every language
668 - */
669 - public function getTranslations( $template ) {
670 - $translations = array();
 641+ // Populate the fields
 642+ foreach ( $langs as $lang => $fields ) {
 643+ foreach ( $fields as $field => $text ) {
 644+ $this->updateMessage( "$dest-$field", $text, $lang );
 645+ }
 646+ }
 647+ return $dest;
 648+ }
 649+ }
671650
672 - // Pull all language codes to enumerate
673 - $allLangs = array_keys( Language::getLanguageNames() );
674 -
675 - // Lookup all the possible fields for a template
676 - $fields = $this->findFields( $template );
 651+ /*
 652+ * Find all fields set for a template
 653+ */
 654+ private function findFields( $template ) {
 655+ $messages = array();
 656+ $body = wfMsg( "Centralnotice-template-{$template}" );
677657
678 - // Iterate through all possible languages to find matches
679 - foreach ( $allLangs as $lang ) {
680 - // Iterate through all possible fields
681 - foreach ( $fields as $field => $count ) {
682 - // Put all fields together for a lookup
683 - $message = ( $lang == 'en' ) ? "Centralnotice-{$template}-{$field}" : "Centralnotice-{$template}-{$field}/{$lang}";
684 - if ( Title::newFromText( $message, NS_MEDIAWIKI )->exists() ) {
685 - $translations[$lang][$field] = wfMsgExt( "Centralnotice-{$template}-{$field}",
686 - array( 'language' => $lang )
687 - );
688 - }
689 - }
690 - }
691 - return $translations;
692 - }
 658+ // Generate fields from parsing the body
 659+ $fields = array();
 660+ preg_match_all( '/\{\{\{([A-Za-z0-9\_\-}]+)\}\}\}/', $body, $fields );
 661+
 662+ // Remove duplicates
 663+ $filteredFields = array();
 664+ foreach ( $fields[1] as $field ) {
 665+ $filteredFields[$field] = array_key_exists( $field, $filteredFields ) ? $filteredFields[$field] + 1 :
 666+ 1;
 667+ }
 668+ return $filteredFields;
 669+ }
 670+
 671+ /*
 672+ * Given a template return a list of every set field in every language
 673+ */
 674+ public function getTranslations( $template ) {
 675+ $translations = array();
 676+
 677+ // Pull all language codes to enumerate
 678+ $allLangs = array_keys( Language::getLanguageNames() );
 679+
 680+ // Lookup all the possible fields for a template
 681+ $fields = $this->findFields( $template );
 682+
 683+ // Iterate through all possible languages to find matches
 684+ foreach ( $allLangs as $lang ) {
 685+ // Iterate through all possible fields
 686+ foreach ( $fields as $field => $count ) {
 687+ // Put all fields together for a lookup
 688+ $message = ( $lang == 'en' ) ? "Centralnotice-{$template}-{$field}" : "Centralnotice-{$template}-{$field}/{$lang}";
 689+ if ( Title::newFromText( $message, NS_MEDIAWIKI )->exists() ) {
 690+ $translations[$lang][$field] = wfMsgExt(
 691+ "Centralnotice-{$template}-{$field}",
 692+ array( 'language' => $lang )
 693+ );
 694+ }
 695+ }
 696+ }
 697+ return $translations;
 698+ }
693699 }
Index: trunk/extensions/CentralNotice/CentralNotice.alias.php
@@ -0,0 +1,12 @@
 2+<?php
 3+/**
 4+ * Aliases for special pages of CentralNotice extension.
 5+ */
 6+
 7+$aliases = array();
 8+
 9+$aliases['en'] = array(
 10+ 'CentralNotice' => array( 'CentralNotice' ),
 11+ 'NoticeText' => array( 'NoticeText' ),
 12+ 'NoticeTemplate' => array( 'NoticeTemplate' ),
 13+);
Property changes on: trunk/extensions/CentralNotice/CentralNotice.alias.php
___________________________________________________________________
Name: svn:eol-style
114 + native
Name: svn:keywords
215 + Id
Index: trunk/extensions/CentralNotice/SpecialNoticeText.php
@@ -21,24 +21,24 @@
2222 function getJsOutput( $par ) {
2323 $this->setLanguage( $par );
2424
25 - // Quick short circuit to be able to show preferred notices
26 - $templates = array();
 25+ // Quick short circuit to be able to show preferred notices
 26+ $templates = array();
2727
28 - if ( $this->language == 'en' && $this->project != null ) {
29 - // See if we have any preferred notices for all of en
30 - $notices = CentralNoticeDB::getNotices( '', 'en', '', '', 1 );
 28+ if ( $this->language == 'en' && $this->project != null ) {
 29+ // See if we have any preferred notices for all of en
 30+ $notices = CentralNoticeDB::getNotices( '', 'en', '', '', 1 );
3131
32 - if ( $notices ) {
33 - // Pull out values
34 - foreach ( $notices as $notice => $val ) {
35 - // Either match against ALL project or a specific project
36 - if ( $val['project'] == '' || $val['project'] == $this->project ) {
37 - $templates = CentralNoticeDB::selectTemplatesAssigned( $notice );
38 - break;
39 - }
40 - }
41 - }
42 - }
 32+ if ( $notices ) {
 33+ // Pull out values
 34+ foreach ( $notices as $notice => $val ) {
 35+ // Either match against ALL project or a specific project
 36+ if ( $val['project'] == '' || $val['project'] == $this->project ) {
 37+ $templates = CentralNoticeDB::selectTemplatesAssigned( $notice );
 38+ break;
 39+ }
 40+ }
 41+ }
 42+ }
4343
4444 if ( !$templates && $this->project == 'wikipedia' ) {
4545 $notices = CentralNoticeDB::getNotices( 'wikipedia', '', '', '', 1 );
@@ -53,9 +53,9 @@
5454 }
5555 }
5656
57 - // Didn't find any preferred matches so do an old style lookup
 57+ // Didn't find any preferred matches so do an old style lookup
5858 if ( !$templates ) {
59 - $templates = CentralNotice::selectNoticeTemplates( $this->project, $this->language );
 59+ $templates = CentralNotice::selectNoticeTemplates( $this->project, $this->language );
6060 }
6161
6262 $templateNames = array_keys( $templates );
@@ -64,12 +64,12 @@
6565 array( $this, 'getHtmlNotice' ),
6666 $templateNames );
6767
68 - if ( preg_grep( "/&lt;centralnotice-template-\w{1,}&gt;\z/", $templateTexts ) ) {
69 - return false; // Bailing out if we have a failed cache lookup
70 - }
 68+ if ( preg_grep( "/&lt;centralnotice-template-\w{1,}&gt;\z/", $templateTexts ) ) {
 69+ return false; // Bailing out if we have a failed cache lookup
 70+ }
7171
7272 $weights = array_values( $templates );
73 -
 73+
7474 return
7575 $this->getScriptFunctions() .
7676 $this->getToggleScripts() .
@@ -155,7 +155,7 @@
156156 }
157157 currentTemplate++;
158158 }
159 -
 159+
160160 if (totalWeight == 0)
161161 return '';
162162
@@ -168,7 +168,7 @@
169169 private function formatNum( $num ) {
170170 $num = sprintf( "%.1f", $num / 1e6 );
171171 if ( substr( $num, - 2 ) == '.0' ) {
172 - $num = substr( $num, 0, - 2 );
 172+ $num = substr( $num, 0, - 2 );
173173 }
174174 $lang = Language::factory( $this->language );
175175 return $lang->formatNum( $num );
@@ -207,7 +207,7 @@
208208 $old = array();
209209 $old['wgSitename'] = $GLOBALS['wgSitename'];
210210 $old['wgLang'] = $GLOBALS['wgLang'];
211 -
 211+
212212 $GLOBALS['wgSitename'] = $this->projectName();
213213 $GLOBALS['wgLang'] = Language::factory( $this->language ); // hack for {{int:...}}
214214
Index: trunk/extensions/Translate/groups/mediawiki-defines.txt
@@ -107,6 +107,7 @@
108108 ignored = centralauth-editset-item-ro
109109
110110 Central Notice
 111+aliasfile = CentralNotice/CentralNotice.alias.php
111112
112113 Change Author
113114 aliasfile = ChangeAuthor/ChangeAuthor.alias.php

Status & tagging log