From: Rob Church Date: Tue, 16 May 2006 11:51:39 +0000 (+0000) Subject: Do standard updates for page creation (missed one of the functions out) X-Git-Tag: 1.31.0-rc.0~57119 X-Git-Url: http://git.cyclocoop.org/%24href?a=commitdiff_plain;h=49e8c267c2b294b9e6ddb44ecaa3240a466a0d7d;p=lhc%2Fweb%2Fwiklou.git Do standard updates for page creation (missed one of the functions out) --- diff --git a/maintenance/importTextFile.inc b/maintenance/importTextFile.inc index 00efc5c6a4..f148c4f6ff 100644 --- a/maintenance/importTextFile.inc +++ b/maintenance/importTextFile.inc @@ -1,74 +1,75 @@ - - */ - -require_once( "$IP/includes/RecentChange.php" ); - -/** - * Insert a new article - * - * @param $title Title of the article - * @param $text Text of the article - * @param $user User associated with the edit - * @param $comment Edit summary - * @param $rc Whether or not to add a recent changes event - * @return bool - */ -function insertNewArticle( &$title, $text, &$user, $comment, $rc ) { - if( !$title->exists() ) { - # Create the article - $dbw =& wfGetDB( DB_MASTER ); - $dbw->immediateBegin(); - $article = new Article( $title ); - $articleId = $article->insertOn( $dbw ); - # Prepare and save associated revision - $revision = new Revision( array( 'page' => $articleId, 'text' => $text, 'user' => $user->mId, 'user_text' => $user->getName(), 'comment' => $comment ) ); - $revisionId = $revision->insertOn( $dbw ); - # Make it the current revision - $article->updateRevisionOn( $dbw, $revision ); - $dbw->immediateCommit(); - # Update recent changes if appropriate - if( $rc ) - updateRecentChanges( $dbw, $title, $user, $comment, strlen( $text ), $articleId ); - # Touch links etc. - Article::onArticleCreate( $title ); - return( true ); - } else { - # Title exists; touch nothing - return( false ); - } -} - -/** - * Turn a filename into a title - * - * @param $filename Filename to be transformed - * @return Title - */ -function titleFromFilename( $filename ) { - $parts = explode( '/', $filename ); - $parts = explode( '.', $parts[ count( $parts ) - 1 ] ); - return( Title::newFromText( $parts[0] ) ); -} - -/** - * Update recent changes with the page creation event - * - * @param $dbw Database in use - * @param $title Title of the new page - * @param $user User responsible for the creation - * @param $comment Edit summary associated with the edit - * @param $size Size of the page - * @param $articleId Article identifier - */ -function updateRecentChanges( &$dbw, &$title, &$user, $comment, $size, $articleId ) { - RecentChange::notifyNew( $dbw->timestamp(), $title, false, $user, $comment, 'default', '', $size, $articleId ); -} - + + */ + +require_once( "$IP/includes/RecentChange.php" ); + +/** + * Insert a new article + * + * @param $title Title of the article + * @param $text Text of the article + * @param $user User associated with the edit + * @param $comment Edit summary + * @param $rc Whether or not to add a recent changes event + * @return bool + */ +function insertNewArticle( &$title, $text, &$user, $comment, $rc ) { + if( !$title->exists() ) { + # Create the article + $dbw =& wfGetDB( DB_MASTER ); + $dbw->immediateBegin(); + $article = new Article( $title ); + $articleId = $article->insertOn( $dbw ); + # Prepare and save associated revision + $revision = new Revision( array( 'page' => $articleId, 'text' => $text, 'user' => $user->mId, 'user_text' => $user->getName(), 'comment' => $comment ) ); + $revisionId = $revision->insertOn( $dbw ); + # Make it the current revision + $article->updateRevisionOn( $dbw, $revision ); + $dbw->immediateCommit(); + # Update recent changes if appropriate + if( $rc ) + updateRecentChanges( $dbw, $title, $user, $comment, strlen( $text ), $articleId ); + # Touch links etc. + Article::onArticleCreate( $title ); + $article->editUpdates( $text, $comment, false, $dbw->timestamp(), $revisionId ); + return true; + } else { + # Title exists; touch nothing + return false; + } +} + +/** + * Turn a filename into a title + * + * @param $filename Filename to be transformed + * @return Title + */ +function titleFromFilename( $filename ) { + $parts = explode( '/', $filename ); + $parts = explode( '.', $parts[ count( $parts ) - 1 ] ); + return Title::newFromText( $parts[0] ); +} + +/** + * Update recent changes with the page creation event + * + * @param $dbw Database in use + * @param $title Title of the new page + * @param $user User responsible for the creation + * @param $comment Edit summary associated with the edit + * @param $size Size of the page + * @param $articleId Article identifier + */ +function updateRecentChanges( &$dbw, &$title, &$user, $comment, $size, $articleId ) { + RecentChange::notifyNew( $dbw->timestamp(), $title, false, $user, $comment, 'default', '', $size, $articleId ); +} + ?> \ No newline at end of file diff --git a/maintenance/importTextFile.php b/maintenance/importTextFile.php index 7f6d8ca964..ccbcad507f 100644 --- a/maintenance/importTextFile.php +++ b/maintenance/importTextFile.php @@ -1,110 +1,111 @@ - - */ - -$options = array( 'help', 'norc' ); -$optionsWithArgs = array( 'title', 'user', 'comment' ); -require_once( 'commandLine.inc' ); -require_once( 'importTextFile.inc' ); -echo( "Import Text File\n\n" ); - -if( !isset( $options['help'] ) || !$options['help'] ) { - - # Check file existence - $filename = $args[0]; - echo( "Using file '{$filename}'..." ); - if( file_exists( $filename ) ) { - echo( "found.\n" ); - - # Work out the title for the page - if( isset( $option['title'] ) || trim( $options['title'] ) != '' ) { - $titleText = $options['title']; - # Use the supplied title - echo( "Using title '{$titleText}'..." ); - $title = Title::newFromText( $options['title'] ); - } else { - # Attempt to make a title out of the filename - echo( "Using title from filename..." ); - $title = titleFromFilename( $filename ); - } - - # Check the title's valid - if( !is_null( $title ) && is_object( $title ) ) { - echo( "ok.\n" ); - - # Read in the text - $text = file_get_contents( $filename ); - - # Check the supplied user and fall back to a default if needed - if( isset( $options['user'] ) && trim( $options['user'] ) != '' ) { - $username = $options['user']; - } else { - $username = 'MediaWiki default'; - } - echo( "Using user '{$username}'..." ); - $user = User::newFromName( $username ); - - # Check the user's valid - if( !is_null( $user ) && is_object( $user ) ) { - echo( "ok.\n" ); - - # If a comment was supplied, use it (replace _ with spaces ) else use a default - if( isset( $options['comment'] ) || trim( $options['comment'] != '' ) ) { - $comment = str_replace( '_', ' ', $options['comment'] ); - } else { - $comment = 'Importing text file'; - } - echo( "Using edit summary '{$comment}'.\n" ); - - # Do we need to update recent changes? - if( isset( $options['norc'] ) && $options['norc'] ) { - $rc = false; - } else { - $rc = true; - } - - # Attempt the insertion - echo( "Attempting to insert page..." ); - $success = insertNewArticle( $title, $text, $user, $comment, $rc ); - if( $success ) { - echo( "done.\n" ); - } else { - echo( "failed. Title exists.\n" ); - } - - } else { - # Dud user - echo( "invalid username.\n" ); - } - - } else { - # Dud title - echo( "invalid title.\n" ); - } - - } else { - # File not found - echo( "not found.\n" ); - } - -} else { - # Show help - echo( "Imports the contents of a text file into a wiki page.\n\n" ); - echo( "USAGE: php importTextFile.php [--help|--title |--user <user>|--comment <comment>|--norc] <filename>\n\n" ); - echo( " --help: Show this help information\n" ); - echo( " --title <title> : Title for the new page; if not supplied, the filename is used as a base for the title\n" ); - echo( " --user <user> : User to be associated with the edit; if not supplied, a default is used\n" ); - echo( "--comment <comment> : Edit summary to be associated with the edit; underscores are transformed into spaces; if not supplied, a default is used\n" ); - echo( " <filename> : Path to the file containing the wikitext to import\n" ); - echo( " --norc : Do not add a page creation event to recent changes\n" ); - -} -echo( "\n" ); - +<?php + +/** + * Maintenance script to insert an article, importing text from a file + * + * @package MediaWiki + * @subpackage Maintenance + * @author Rob Church <robchur@gmail.com> + */ + +$options = array( 'help', 'norc' ); +$optionsWithArgs = array( 'title', 'user', 'comment' ); +require_once( 'commandLine.inc' ); +require_once( 'importTextFile.inc' ); +echo( "Import Text File\n\n" ); + +if( !isset( $options['help'] ) || !$options['help'] ) { + + # Check file existence + $filename = $args[0]; + echo( "Using file '{$filename}'..." ); + if( file_exists( $filename ) ) { + echo( "found.\n" ); + + # Work out the title for the page + if( isset( $option['title'] ) || trim( $options['title'] ) != '' ) { + $titleText = $options['title']; + # Use the supplied title + echo( "Using title '{$titleText}'..." ); + $title = Title::newFromText( $options['title'] ); + } else { + # Attempt to make a title out of the filename + echo( "Using title from filename..." ); + $title = titleFromFilename( $filename ); + } + + # Check the title's valid + if( !is_null( $title ) && is_object( $title ) ) { + echo( "ok.\n" ); + + # Read in the text + $text = file_get_contents( $filename ); + + # Check the supplied user and fall back to a default if needed + if( isset( $options['user'] ) && trim( $options['user'] ) != '' ) { + $username = $options['user']; + } else { + $username = 'MediaWiki default'; + } + echo( "Using user '{$username}'..." ); + $user = User::newFromName( $username ); + + # Check the user's valid + if( !is_null( $user ) && is_object( $user ) ) { + echo( "ok.\n" ); + $wgUser =& $user; + + # If a comment was supplied, use it (replace _ with spaces ) else use a default + if( isset( $options['comment'] ) || trim( $options['comment'] != '' ) ) { + $comment = str_replace( '_', ' ', $options['comment'] ); + } else { + $comment = 'Importing text file'; + } + echo( "Using edit summary '{$comment}'.\n" ); + + # Do we need to update recent changes? + if( isset( $options['norc'] ) && $options['norc'] ) { + $rc = false; + } else { + $rc = true; + } + + # Attempt the insertion + echo( "Attempting to insert page..." ); + $success = insertNewArticle( $title, $text, $user, $comment, $rc ); + if( $success ) { + echo( "done.\n" ); + } else { + echo( "failed. Title exists.\n" ); + } + + } else { + # Dud user + echo( "invalid username.\n" ); + } + + } else { + # Dud title + echo( "invalid title.\n" ); + } + + } else { + # File not found + echo( "not found.\n" ); + } + +} else { + # Show help + echo( "Imports the contents of a text file into a wiki page.\n\n" ); + echo( "USAGE: php importTextFile.php [--help|--title <title>|--user <user>|--comment <comment>|--norc] <filename>\n\n" ); + echo( " --help: Show this help information\n" ); + echo( " --title <title> : Title for the new page; if not supplied, the filename is used as a base for the title\n" ); + echo( " --user <user> : User to be associated with the edit; if not supplied, a default is used\n" ); + echo( "--comment <comment> : Edit summary to be associated with the edit; underscores are transformed into spaces; if not supplied, a default is used\n" ); + echo( " <filename> : Path to the file containing the wikitext to import\n" ); + echo( " --norc : Do not add a page creation event to recent changes\n" ); + +} +echo( "\n" ); + ?> \ No newline at end of file