http://www.mediawiki.org/wiki/Special:Code/MediaWiki/84559
Revision: 84559
Author: ashley
Date: 2011-03-22 21:21:56 +0000 (Tue, 22 Mar 2011)
Log Message:
-----------
ImportUsers:
*added version number to Special:Version credits
*renamed some functions as per our coding conventions + fixed a typo in
function name
*whitespace tweaks
*moved some hardcoded colons to the i18n file for better i18n
*documentation
Modified Paths:
--------------
trunk/extensions/ImportUsers/ImportUsers.i18n.php
trunk/extensions/ImportUsers/ImportUsers.php
trunk/extensions/ImportUsers/ImportUsers_body.php
Modified: trunk/extensions/ImportUsers/ImportUsers.i18n.php
===================================================================
--- trunk/extensions/ImportUsers/ImportUsers.i18n.php 2011-03-22 21:18:44 UTC
(rev 84558)
+++ trunk/extensions/ImportUsers/ImportUsers.i18n.php 2011-03-22 21:21:56 UTC
(rev 84559)
@@ -1,31 +1,34 @@
<?php
-/** Internationalization messages file for Import User extension
- *
- * @addtogroup Extensions
-*/
+/**
+ * Internationalization messages file for Import Users extension
+ *
+ * @file
+ * @ingroup Extensions
+ */
$messages = array();
+/** English */
$messages['en'] = array(
'importusers' => 'Import users',
- 'importusers-desc' => '[[Special:ImportUsers|Imports
users]] in bulk from CSV-file; encoding: UTF-8',
+ 'importusers-desc' => '[[Special:ImportUsers|Imports
users]] in bulk from a CSV file; encoding: UTF-8',
'importusers-uploadfile' => 'Upload file',
- 'importusers-form-caption' => 'Input CSV-file (UTF-8)',
+ 'importusers-form-caption' => 'Input CSV-file (UTF-8):',
'importusers-form-file' => 'User file format (CSV):',
'importusers-form-replace-present' => 'Replace existing users',
'importusers-form-button' => 'Import',
- 'importusers-user-added' => 'User \'\'\'$1\'\'\' has been
added.',
- 'importusers-user-present-update' => 'User \'\'\'$1\'\'\' already
exists.
-Updated.',
- 'importusers-user-present-not-update' => 'User \'\'\'$1\'\'\' already
exists.
-Did not update.',
+ 'importusers-user-added' => "User '''$1''' has been
added.",
+ 'importusers-user-present-update' => "User '''$1''' already exists.
+Updated.",
+ 'importusers-user-present-not-update' => "User '''$1''' already exists.
+Did not update.",
'importusers-user-invalid-format' => 'User data in the line #$1 has
invalid format or is blank.
Skipped.',
'importusers-log' => 'Import users log',
'importusers-log-summary' => 'Summary',
- 'importusers-log-summary-all' => 'All',
- 'importusers-log-summary-added' => 'Added',
- 'importusers-log-summary-updated' => 'Updated',
+ 'importusers-log-summary-all' => 'All: $1',
+ 'importusers-log-summary-added' => 'Added: $1',
+ 'importusers-log-summary-updated' => 'Updated: $1',
'importusers-login-name' => 'Login name',
'importusers-password' => 'password',
'importusers-email' => 'e-mail',
Modified: trunk/extensions/ImportUsers/ImportUsers.php
===================================================================
--- trunk/extensions/ImportUsers/ImportUsers.php 2011-03-22 21:18:44 UTC
(rev 84558)
+++ trunk/extensions/ImportUsers/ImportUsers.php 2011-03-22 21:21:56 UTC
(rev 84559)
@@ -1,26 +1,35 @@
<?php
/**
+ * ImportUsers extension -- allows to import users in bulk from a CSV file
*
- * @subpackage Extensions
- *
+ * @file
+ * @ingroup Extensions
+ * @version 1.2
* @author Rouslan Zenetl
* @author Yuriy Ilkiv
* @license You are free to use this extension for any reason and mutilate it
to your heart's liking.
+ * @link http://www.mediawiki.org/wiki/Extension:ImportUsers Documentation
*/
-if (!defined('MEDIAWIKI')) die();
+if ( !defined( 'MEDIAWIKI' ) ) {
+ die();
+}
+// Extension credits that will show up on Special:Version
$wgExtensionCredits['specialpage'][] = array(
'path' => __FILE__,
'name' => 'Import Users',
- 'author' => array('Yuriy Ilkiv', 'Rouslan Zenetl'),
+ 'version' => '1.2',
+ 'author' => array( 'Yuriy Ilkiv', 'Rouslan Zenetl' ),
'url' => 'http://www.mediawiki.org/wiki/Extension:ImportUsers',
'descriptionmsg' => 'importusers-desc',
);
+// New user right, required to access and use Special:ImportUsers
$wgAvailableRights[] = 'import_users';
$wgGroupPermissions['bureaucrat']['import_users'] = true;
+// Set up the new special page
$dir = dirname(__FILE__) . '/';
$wgSpecialPages['ImportUsers'] = 'SpecialImportUsers';
$wgSpecialPageGroups['ImportUsers'] = 'users';
Modified: trunk/extensions/ImportUsers/ImportUsers_body.php
===================================================================
--- trunk/extensions/ImportUsers/ImportUsers_body.php 2011-03-22 21:18:44 UTC
(rev 84558)
+++ trunk/extensions/ImportUsers/ImportUsers_body.php 2011-03-22 21:21:56 UTC
(rev 84559)
@@ -1,15 +1,22 @@
<?php
class SpecialImportUsers extends SpecialPage {
- function __construct() {
- parent::__construct('ImportUsers' , 'import_users' );
+
+ /**
+ * Constructor -- set up the new special page
+ */
+ public function __construct() {
+ parent::__construct( 'ImportUsers', 'import_users' );
}
- function execute( $par ) {
+ /**
+ * Show the special page
+ *
+ * @param $par Mixed: parameter passed to the special page or null
+ */
+ public function execute( $par ) {
global $wgOut, $wgUser;
- $wgOut->setArticleRelated( false );
-
wfLoadExtensionMessages( 'ImportUsers' );
if( !$wgUser->isAllowed( 'import_users' ) ) {
@@ -17,16 +24,16 @@
return;
}
+ $this->setHeaders();
- $wgOut->setPagetitle( wfMsg( 'importusers' ) );
- if (IsSet($_FILES['users_file'])) {
- $wgOut->addHTML(
$this->AnalizeUsers($_FILES['users_file'],IsSet($_POST['replace_present'])) );
+ if ( isset( $_FILES['users_file'] ) ) {
+ $wgOut->addHTML( $this->analyzeUsers(
$_FILES['users_file'], isset( $_POST['replace_present'] ) ) );
} else {
- $wgOut->addHTML( $this->MakeForm() );
+ $wgOut->addHTML( $this->makeForm() );
}
}
- function MakeForm() {
+ function makeForm() {
global $wgLang;
$titleObj = SpecialPage::getTitleFor( 'ImportUsers' );
@@ -35,52 +42,59 @@
wfMsg( 'importusers-login-name' ),
wfMsg( 'importusers-password' ),
wfMsg( 'importusers-email' ),
- wfMsg( 'importusers-realname' ) ) );
- $output ='<form enctype="multipart/form-data" method="post"
action="'.$action.'">';
- $output.='<dl><dt>'. wfMsg( 'importusers-form-file' ) .
'</dt><dd>' . $fileFormat . '.</dd></dl>';
- $output.='<fieldset><legend>' . wfMsg('importusers-uploadfile')
. '</legend>';
- $output.='<table border=0 a-valign=center width=100%>';
- $output.='<tr><td align=right width=160>'.wfMsg(
'importusers-form-caption' ).': </td><td><input name="users_file" type="file"
size=40 /></td></tr>';
- $output.='<tr><td align=right></td><td><input
name="replace_present" type="checkbox" />'.wfMsg(
'importusers-form-replace-present' ).'</td></tr>';
- $output.='<tr><td align=right></td><td><input type="submit"
value="'.wfMsg( 'importusers-form-button' ).'" /></td></tr>';
- $output.='</table>';
- $output.='</fieldset>';
- $output.='</form>';
+ wfMsg( 'importusers-realname' )
+ ) );
+ $output = '<form enctype="multipart/form-data" method="post"
action="' . $action . '">';
+ $output .= '<dl><dt>' . wfMsg( 'importusers-form-file' ) .
'</dt><dd>' . $fileFormat . '.</dd></dl>';
+ $output .= '<fieldset><legend>' . wfMsg(
'importusers-uploadfile' ) . '</legend>';
+ $output .= '<table border="0" a-valign="center" width="100%">';
+ $output .= '<tr><td align="right" width="160">' . wfMsg(
'importusers-form-caption' ) .
+ ' </td><td><input name="users_file" type="file" size=40
/></td></tr>';
+ $output .= '<tr><td align="right"></td><td><input
name="replace_present" type="checkbox" />' .
+ wfMsg( 'importusers-form-replace-present' ) .
'</td></tr>';
+ $output .= '<tr><td align="right"></td><td><input type="submit"
value="' . wfMsg( 'importusers-form-button' ) . '" /></td></tr>';
+ $output .= '</table>';
+ $output .= '</fieldset>';
+ $output .= '</form>';
return $output;
}
- function AnalizeUsers($fileinfo,$replace_present) {
- global $IP, $wgOut;
+ function analyzeUsers( $fileinfo, $replace_present ) {
+ $summary = array(
+ 'all' => 0,
+ 'added' => 0,
+ 'updated' => 0
+ );
+ $filedata = explode( "\n", rtrim( file_get_contents(
$fileinfo['tmp_name'] ) ) );
+ $output = '<h2>' . wfMsg( 'importusers-log' ) . '</h2>';
- require_once "$IP/includes/User.php";
-
- $summary=array('all'=>0,'added'=>0,'updated'=>0);
-
$filedata=explode("\n",rtrim(file_get_contents($fileinfo['tmp_name'])));
- $output='<h2>'.wfMsg( 'importusers-log' ).'</h2>';
-
- foreach ($filedata as $line=>$newuserstr) {
- $newuserarray=explode(',', trim( $newuserstr ) );
- if (count($newuserarray)<2) {
- $output.= wfMsg(
'importusers-user-invalid-format', $line+1 ) . '<br />';
+ foreach ( $filedata as $line => $newuserstr ) {
+ $newuserarray = explode( ',', trim( $newuserstr ) );
+ if ( count( $newuserarray ) < 2 ) {
+ $output .= wfMsg(
'importusers-user-invalid-format', $line + 1 ) . '<br />';
continue;
}
- if (!IsSet($newuserarray[2])) $newuserarray[2]='';
- if (!IsSet($newuserarray[3])) $newuserarray[3]='';
- $NextUser=User::newFromName( $newuserarray[0] );
- $NextUser->setEmail( $newuserarray[2] );
- $NextUser->setRealName( $newuserarray[3] );
- $uid=$NextUser->idForName();
- if ($uid===0) {
- $NextUser->addToDatabase();
- $NextUser->setPassword( $newuserarray[1] );
- $NextUser->saveSettings();
- $output.= wfMsg( 'importusers-user-added',
$newuserarray[0] ) . '<br />';
+ if ( !isset( $newuserarray[2] ) ) {
+ $newuserarray[2] = '';
+ }
+ if ( !isset( $newuserarray[3] ) ) {
+ $newuserarray[3] = '';
+ }
+ $nextUser = User::newFromName( $newuserarray[0] );
+ $nextUser->setEmail( $newuserarray[2] );
+ $nextUser->setRealName( $newuserarray[3] );
+ $uid = $nextUser->idForName();
+ if ( $uid === 0 ) {
+ $nextUser->addToDatabase();
+ $nextUser->setPassword( $newuserarray[1] );
+ $nextUser->saveSettings();
+ $output .= wfMsg( 'importusers-user-added',
$newuserarray[0] ) . '<br />';
$summary['added']++;
} else {
- if ($replace_present) {
- $NextUser->setPassword(
$newuserarray[1] );
- $NextUser->saveSettings();
- $output.= wfMsg(
'importusers-user-present-update', $newuserarray[0] ).'<br />';
+ if ( $replace_present ) {
+ $nextUser->setPassword(
$newuserarray[1] );
+ $nextUser->saveSettings();
+ $output .= wfMsg(
'importusers-user-present-update', $newuserarray[0] ).'<br />';
$summary['updated']++;
} else {
$output .= wfMsg(
'importusers-user-present-no-update', $newuserarray[0] ) . '<br />';
@@ -89,10 +103,10 @@
$summary['all']++;
}
- $output.='<b>'.wfMsg( 'importusers-log-summary' ).'</b><br />';
- $output.=wfMsg( 'importusers-log-summary-all' ).' :
'.$summary['all'].'<br />';
- $output.=wfMsg( 'importusers-log-summary-added' ).' :
'.$summary['added'].'<br />';
- $output.=wfMsg( 'importusers-log-summary-updated' ).' :
'.$summary['updated'];
+ $output .= '<b>' . wfMsg( 'importusers-log-summary' ) .
'</b><br />';
+ $output .= wfMsg( 'importusers-log-summary-all',
$summary['all'] ) . '<br />';
+ $output .= wfMsg( 'importusers-log-summary-added',
$summary['added'] ) . '<br />';
+ $output .= wfMsg( 'importusers-log-summary-updated',
$summary['updated'] );
return $output;
}
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs