<html>
<head>
<style>
<!--
body { background-color:#ffffff }
.file { border:1px solid #eeeeee; margin-top:1em; margin-bottom:1em }
.pathname { font-family:monospace; float:right }
.fileheader { margin-bottom:.5em }
.diff { margin:0 }
.tasklist { padding:4px; border:1px dashed #000000; margin-top:1em }
.tasklist ul { margin-top:0; margin-bottom:0 }
tr.alt { background-color:#eeeeee }
#added { background-color:#ddffdd }
#addedchars { background-color:#99ff99; font-weight:bolder }
tr.alt #added { background-color:#ccf7cc }
#removed { background-color:#ffdddd }
#removedchars { background-color:#ff9999; font-weight:bolder }
tr.alt #removed { background-color:#f7cccc }
#info { color:#888888 }
#context { background-color:#eeeeee }
td {padding-left:.3em; padding-right:.3em }
tr.head { border-bottom-width:1px; border-bottom-style:solid }
tr.head td { padding:0; padding-top:.2em }
.task { background-color:#ffff00 }
.comment { padding:4px; border:1px dashed #000000; background-color:#ffffdd }
.error { color:red }
hr { border-width:0px; height:2px; background:black }
-->
</style>
</head>
<body>
<pre class="comment">MediaWiki 1.4.8 vendor import</pre><pre class="diff" id="added">Added: trunk/web/reactos.org/htdocs/wiki/
</pre><pre class="diff" id="context">Modified: trunk/web/reactos.org/htdocs/wiki/includes/OutputPage.php
Modified: trunk/web/reactos.org/htdocs/wiki/includes/SpecialPreferences.php
Modified: trunk/web/reactos.org/htdocs/wiki/includes/SpecialUserlogin.php
Modified: trunk/web/reactos.org/htdocs/wiki/includes/SpecialUserlogout.php
Modified: trunk/web/reactos.org/htdocs/wiki/includes/User.php
</pre><pre class="diff" id="added">Added: trunk/web/reactos.org/htdocs/wiki/skins/RosCms.php
Added: trunk/web/reactos.org/htdocs/wiki/skins/common/images/reactos.png
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/IE50Fixes.css
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/IE55Fixes.css
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/IE60Fixes.css
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/IEMacFixes.css
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/KHTMLFixes.css
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/Opera6Fixes.css
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/Opera7Fixes.css
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/bullet.gif
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/discussionitem_icon.gif
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/external.png
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/file_icon.gif
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/headbg.jpg
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/link_icon.gif
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/lock_icon.gif
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/magnify-clip.png
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/mail_icon.gif
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/main.css
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/main_frik85_2005-11-04.css
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/news_icon.png
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/required.gif
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/rtl.css
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/user.gif
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/wiki-indexed.png
Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/wiki.png
</pre><hr /><div class="file">
<div class="fileheader"><big><b>Copied: trunk/web/reactos.org/htdocs/wiki</b> (from rev 19934, vendor/mediawiki/current)</big></div>
</div>
</div>
<hr /><div class="file">
<div class="fileheader"><big><b>Modified: trunk/web/reactos.org/htdocs/wiki/includes/OutputPage.php</b></big></div>
<pre class="diff"><small id="info">--- vendor/mediawiki/current/includes/OutputPage.php        2005-12-06 19:30:16 UTC (rev 19934)
+++ trunk/web/reactos.org/htdocs/wiki/includes/OutputPage.php        2005-12-06 19:41:09 UTC (rev 19936)
@@ -354,7 +354,9 @@
</small></pre><pre class="diff" id="context">                                 header( "Expires: -1" );
                                header( "Cache-Control: private, must-revalidate, max-age=0" );
                        }
</pre><pre class="diff" id="added">+/* TODO
</pre><pre class="diff" id="context">                         if($this->mLastModified) header( "Last-modified: {$this->mLastModified}" );
</pre><pre class="diff" id="added">+*/
</pre><pre class="diff" id="context">                 } else {
                        wfDebug( "** no caching **\n", false );
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Modified: trunk/web/reactos.org/htdocs/wiki/includes/SpecialPreferences.php</b></big></div>
<pre class="diff"><small id="info">--- vendor/mediawiki/current/includes/SpecialPreferences.php        2005-12-06 19:30:16 UTC (rev 19934)
+++ trunk/web/reactos.org/htdocs/wiki/includes/SpecialPreferences.php        2005-12-06 19:41:09 UTC (rev 19936)
@@ -174,26 +174,6 @@
</small></pre><pre class="diff" id="context">         function savePreferences() {
                global $wgUser, $wgLang, $wgOut;
</pre><pre class="diff" id="removed">-                if ( '' != $this->mNewpass ) {
-                        if ( $this->mNewpass != $this->mRetypePass ) {
-                                $this->mainPrefsForm( wfMsg( 'badretype' ) );                        
-                                return;
-                        }
-
-                        if (!$wgUser->checkPassword( $this->mOldpass )) {
-                                $this->mainPrefsForm( wfMsg( 'wrongpassword' ) );
-                                return;
-                        }
-                        $wgUser->setPassword( $this->mNewpass );
-                }
-                global $wgEnableEmail;
-                if( $wgEnableEmail ) {
-                        $wgUser->setEmail( $this->mUserEmail );
-                }
-                $wgUser->setRealName( $this->mRealName );
-                $wgUser->setOption( 'language', $this->mUserLanguage );
- $wgUser->setOption( 'variant', $this->mUserVariant );
-                $wgUser->setOption( 'nickname', $this->mNick );
</pre><pre class="diff" id="context">                 $wgUser->setOption( 'quickbar', $this->mQuickbar );
                $wgUser->setOption( 'skin', $this->mSkin );
                $wgUser->setOption( 'math', $this->mMath );
@@ -407,84 +387,14 @@
</pre><pre class="diff" id="context">
                $wgOut->addHTML( "<fieldset>
                <legend>".wfMsg('prefs-personal')."</legend>");
</pre><pre class="diff" id="removed">-                        if ($wgAllowRealName) {
-                        $wgOut->addHTML("<div><label>$yrn: <input type='text' name=\"wpRealName\" value=\"{$this->mRealName}\" size='20' /></label></div>");
-                }
-                
-                global $wgEnableEmail, $wgEnableUserEmail;
-                if( $wgEnableEmail ) {
-                        $wgOut->addHTML("
-                        <div><label>$yem: <input type='text' name=\"wpUserEmail\" value=\"{$this->mUserEmail}\" size='20' /></label></div>" );
-                        if( $wgEnableUserEmail ) {
-                                $wgOut->addHTML("
-                                <div><label><input type='checkbox' $emfc value=\"1\" name=\"wpEmailFlag\" />$emf</label></div>" );
-                        }
-                }
-                
-                $fancysig = $this->getToggle( 'fancysig' );
-                $wgOut->addHTML("
-                <div><label>$ynn: <input type='text' name=\"wpNick\" value=\"{$this->mNick}\" size='25' /></label></div>
-                <div>$fancysig<br /></div>
-                <span id="removedchars"><div><label>$yl: <select name=\"wpUserLanguage\">\n");</span>
</pre><pre class="diff" id="added">+                <span id="addedchars">$wgOut->addHTML("<br><br><br>You can change your general " .</span>
+                 "account settings (password, email address " .
+                 'etc.) <a href="' .
+                 htmlentities('/roscms/?page=user') .
+                 '">in myReactOS</a><br><br><br><br>'.
+                 "\n");
+                $wgOut->addHTML("</fieldset>\n");
</pre><pre class="diff" id="context">
</pre><pre class="diff" id="removed">-                /**
-                 * If a bogus value is set, default to the content language.
-                 * Otherwise, no default is selected and the user ends up
-                 * with an Afrikaans interface since it's first in the list.
-                 */
-                if( isset( $wgLanguageNames[$this->mUserLanguage] ) ) {
-                        $selectedLang = $this->mUserLanguage;
-                } else {
-                        $selectedLang = $wgContLanguageCode;
-                }
-                foreach($wgLanguageNames as $code => $name) {
-                        global $IP;
-                        /* only add languages that have a file */
-                        $langfile="$IP/languages/Language".str_replace('-', '_', ucfirst($code)).".php";
-                        if(file_exists($langfile) || $code == $wgContLanguageCode) {
-                                $sel = ($code == $selectedLang)? 'selected="selected"' : '';
-                                $wgOut->addHtml("\t<option value=\"$code\" $sel>$code - $name</option>\n");
-                        }
-                }
-                $wgOut->addHtml("</select></label></div>\n" );
-
-                /* see if there are multiple language variants to choose from*/
-                if(!$wgDisableLangConversion) {
-                        $variants = $wgContLang->getVariants();
-                
-                        $variantArray=array();
-                        foreach($variants as $v) {
-                                $v = str_replace( '_', '-', strtolower($v));
-                                if($name=$wgLanguageNames[$v]) {
-                                        $variantArray[$v] = $name;
-                                }
-                        }
-                
-                        if(sizeof($variantArray) > 1) {
-                        $wgOut->addHtml("
-                                <div><label>$yv: <select name=\"wpUserVariant\">\n");
-                                foreach($variantArray as $code => $name) {
-                                        $sel = ($code==$this->mUserVariant)? 'selected="selected"' : '';
-                                        $wgOut->addHtml("\t<option value=\"$code\" $sel>$code - $name</option>\n");
-                                }
-                        $wgOut->addHtml("</select></label></div>\n");
-                        }
-                }
-                # Fields for changing password
-                #
-                $this->mOldpass = htmlspecialchars( $this->mOldpass );
-                $this->mNewpass = htmlspecialchars( $this->mNewpass );
-                $this->mRetypePass = htmlspecialchars( $this->mRetypePass );
-
-                $wgOut->addHTML( "<fieldset>
-        <legend>$cp</legend>
-        <div><label>$opw: <input type='password' name=\"wpOldpass\" value=\"{$this->mOldpass}\" size='20' /></label></div>
-        <div><label>$npw: <input type='password' name=\"wpNewpass\" value=\"{$this->mNewpass}\" size='20' /></label></div>
-        <div><label>$rpw: <input type='password' name=\"wpRetypePass\" value=\"{$this->mRetypePass}\" size='20' /></label></div>
-        " . $this->getToggle( "rememberpassword" ) . "
-        </fieldset>
-        <div class='prefsectiontip'>".wfMsg('prefs-help-userdata')."</div>\n</fieldset>\n" );
-
</pre><pre class="diff" id="context">         
                # Quickbar setting
                #
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Modified: trunk/web/reactos.org/htdocs/wiki/includes/SpecialUserlogin.php</b></big></div>
<pre class="diff"><small id="info">--- vendor/mediawiki/current/includes/SpecialUserlogin.php        2005-12-06 19:30:16 UTC (rev 19934)
+++ trunk/web/reactos.org/htdocs/wiki/includes/SpecialUserlogin.php        2005-12-06 19:41:09 UTC (rev 19936)
@@ -9,482 +9,18 @@
</small></pre><pre class="diff" id="context"> *
*/
require_once('UserMailer.php');
</pre><pre class="diff" id="added">+require_once( '/web/reactos.org/htdocs/roscms/inc/subsys_login.php' );
</pre><pre class="diff" id="context">
/**
</pre><pre class="diff" id="removed">- * cons<span id="removedchars">utr</span>ctor
</pre><pre class="diff" id="added">+ * cons<span id="addedchars">tru</span>ctor
</pre><pre class="diff" id="context"> */
function wfSpecialUserlogin() {
</pre><pre class="diff" id="removed">-        global $wgCommandLineMode;
-        global $wgRequest;
-        if( !$wgCommandLineMode && !isset( $_COOKIE[ini_get('session.name')] ) ) {
-                User::SetupSession();
-        }
-        
-        $form = new LoginForm( $wgRequest );
-        $form->execute();
-}
</pre><pre class="diff" id="added">+ $target = "/wiki";
+ roscms_subsys_login('wiki', ROSCMS_LOGIN_REQUIRED, $target);
</pre><pre class="diff" id="context">
</pre><pre class="diff" id="removed">-/**
- *
- * @package MediaWiki
- * @subpackage SpecialPage
- */
-class LoginForm {
-        var $mName, $mPassword, $mRetype, $mReturnto, $mCookieCheck, $mPosted;
-        var $mAction, $mCreateaccount, $mCreateaccountMail, $mMailmypassword;
-        var $mLoginattempt, $mRemember, $mEmail;
-        
-        function LoginForm( &$request ) {
-                global $wgLang, $wgAllowRealName, $wgEnableEmail;
-
-                $this->mName = $request->getText( 'wpName' );
-                $this->mPassword = $request->getText( 'wpPassword' );
-                $this->mRetype = $request->getText( 'wpRetype' );
-                $this->mReturnto = $request->getVal( 'returnto' );
-                $this->mCookieCheck = $request->getVal( 'wpCookieCheck' );
-                $this->mPosted = $request->wasPosted();
-                $this->mCreateaccount = $request->getCheck( 'wpCreateaccount' );
-                $this->mCreateaccountMail = $request->getCheck( 'wpCreateaccountMail' )
-                 && $wgEnableEmail;
-                $this->mMailmypassword = $request->getCheck( 'wpMailmypassword' )
-                 && $wgEnableEmail;
-                $this->mLoginattempt = $request->getCheck( 'wpLoginattempt' );
-                $this->mAction = $request->getVal( 'action' );
-                $this->mRemember = $request->getCheck( 'wpRemember' );
-                
-                if( $wgEnableEmail ) {
-                        $this->mEmail = $request->getText( 'wpEmail' );
-                } else {
-                        $this->mEmail = '';
-                }
-                if( $wgAllowRealName ) {
-                 $this->mRealName = $request->getText( 'wpRealName' );
-                } else {
-                 $this->mRealName = '';
-                }
-        
-                # When switching accounts, it sucks to get automatically logged out
-                if( $this->mReturnto == $wgLang->specialPage( 'Userlogout' ) ) {
-                        $this->mReturnto = '';
-                }
-        }
-
-        function execute() {
-                if ( !is_null( $this->mCookieCheck ) ) {
-                        $this->onCookieRedirectCheck( $this->mCookieCheck );
-                        return;
-                } else if( $this->mPosted ) {
-                        if( $this->mCreateaccount ) {
-                                return $this->addNewAccount();
-                        } else if ( $this->mCreateaccountMail ) {
-                                return $this->addNewAccountMailPassword();
-                        } else if ( $this->mMailmypassword ) {
-                                return $this->mailPassword();
-                        } else if ( ( 'submitlogin' == $this->mAction ) || $this->mLoginattempt ) {
-                                return $this->processLogin();
-                        }
-                }
-                $this->mainLoginForm( '' );
-        }
-
-        /**
-         * @access private
-         */
-        function addNewAccountMailPassword() {
-                global $wgOut;
-                
-                if ('' == $this->mEmail) {
-                        $this->mainLoginForm( wfMsg( 'noemail', htmlspecialchars( $this->mName ) ) );
-                        return;
-                }
-
-                $u = $this->addNewaccountInternal();
-
-                if ($u == NULL) {
-                        return;
-                }
-
-                $u->saveSettings();
-                $error = $this->mailPasswordInternal($u);
-
-                $wgOut->setPageTitle( wfMsg( 'accmailtitle' ) );
-                $wgOut->setRobotpolicy( 'noindex,nofollow' );
-                $wgOut->setArticleRelated( false );
-        
-                if ( $error === '' ) {
-                        $wgOut->addWikiText( wfMsg( 'accmailtext', $u->getName(), $u->getEmail() ) );
-                        $wgOut->returnToMain( false );
-                } else {
-                        $this->mainLoginForm( wfMsg( 'mailerror', $error ) );
-                }
-
-                $u = 0;
-        }
-
-
-        /**
-         * @access private
-         */
-        function addNewAccount() {
-                global $wgUser, $wgOut;
-
-                $u = $this->addNewAccountInternal();
-
-                if ($u == NULL) {
-                        return;
-                }
-
-                $wgUser = $u;
-                $wgUser->setCookies();
-
-                $wgUser->saveSettings();
-
-                if( $this->hasSessionCookie() ) {
-                        return $this->successfulLogin( wfMsg( 'welcomecreation', $wgUser->getName() ) );
-                } else {
-                        return $this->cookieRedirectCheck( 'new' );
-                }
-        }
-
-        /**
-         * @access private
-         */
-        function addNewAccountInternal() {
-                global $wgUser, $wgOut;
-                global $wgMaxNameChars, $wgUseLatin1, $wgEnableSorbs, $wgProxyWhitelist;
-                global $wgMemc, $wgAccountCreationThrottle, $wgDBname, $wgIP;
-
-                if (!$wgUser->isAllowedToCreateAccount()) {
-                        $this->userNotPrivilegedMessage();
-                        return;
-                }
-
-                if ( $wgEnableSorbs && !in_array( $wgIP, $wgProxyWhitelist ) &&
-                 $wgUser->inSorbsBlacklist( $wgIP ) )
-                {
-                        $this->mainLoginForm( wfMsg( 'sorbs_create_account_reason' ) );
-                        return;
-                }
-
-
-                if ( 0 != strcmp( $this->mPassword, $this->mRetype ) ) {
-                        $this->mainLoginForm( wfMsg( 'badretype' ) );
-                        return;
-                }
-                
-                $name = trim( $this->mName );
-                $u = User::newFromName( $name );
-                if ( is_null( $u ) ||
-                 ( '' == $name ) ||
-                 preg_match( "/\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}/", $name ) ||
-                 (strpos( $name, "/" ) !== false) ||
-                 (strlen( $name ) > $wgMaxNameChars) ||
- ($wgUseLatin1 && preg_match( "/[\x80-\xA0]/", $name )) ||
-                 ucFirst($name) != $u->getName() )
-                {
-                        $this->mainLoginForm( wfMsg( 'noname' ) );
-                        return;
-                }
-                if ( wfReadOnly() ) {
-                        $wgOut->readOnlyPage();
-                        return;
-                }
-                
-                if ( 0 != $u->idForName() ) {
-                        $this->mainLoginForm( wfMsg( 'userexists' ) );
-                        return;
-                }
-
-                if ( $wgAccountCreationThrottle ) {
-                        $key = $wgDBname.':acctcreate:ip:'.$wgIP;
-                        $value = $wgMemc->incr( $key );
-                        if ( !$value ) {
-                                $wgMemc->set( $key, 1, 86400 );
-                        }
-                        if ( $value > $wgAccountCreationThrottle ) {
-                                $this->throttleHit( $wgAccountCreationThrottle );
-                                return;
-                        }
-                }
-
-                # Update user count
-                $ssUpdate = new SiteStatsUpdate( 0, 0, 0, 0, 1 );
-                $ssUpdate->doUpdate();
-
-                return $this->initUser( $u );
-        }
-        
-        /**
-         * Actually add a user to the database.
-         * Give it a User object that has been initialised with a name.
-         *
-         * @param User $u
-         * @return User
-         * @access private
-         */
-        function &initUser( &$u ) {
-                $u->addToDatabase();
-                $u->setPassword( $this->mPassword );
-                $u->setEmail( $this->mEmail );
-                $u->setRealName( $this->mRealName );
-                $u->setToken();
-                
-                global $wgAuth;
-                $wgAuth->initUser( $u );
-
-                if ( $this->mRemember ) { $r = 1; }
-                else { $r = 0; }
-                $u->setOption( 'rememberpassword', $r );
-                
-                return $u;
-        }
-
-        /**
-         * @access private
-         */
-        function processLogin() {
-                global $wgUser;
-
-                if ( '' == $this->mName ) {
-                        $this->mainLoginForm( wfMsg( 'noname' ) );
-                        return;
-                }
-                $u = User::newFromName( $this->mName );
-                if( is_null( $u ) ) {
-                        $this->mainLoginForm( wfMsg( 'noname' ) );
-                        return;
-                }
-                if ( 0 == $u->getID() ) {
-                        global $wgAuth;
-                        /**
-                         * If the external authentication plugin allows it,
-                         * automatically create a new account for users that
-                         * are externally defined but have not yet logged in.
-                         */
-                        if ( $wgAuth->autoCreate() && $wgAuth->userExists( $u->getName() ) ) {
-                                if ( $wgAuth->authenticate( $u->getName(), $this->mPassword ) ) {
-                                        $u =& $this->initUser( $u );
-                                } else {
-                                        $this->mainLoginForm( wfMsg( 'wrongpassword' ) );
-                                        return;
-                                }
-                        } else {
-                                $this->mainLoginForm( wfMsg( 'nosuchuser', $u->getName() ) );
-                                return;
-                        }
-                } else {
-                        $u->loadFromDatabase();
-                }
-                if (!$u->checkPassword( $this->mPassword )) {
-                        $this->mainLoginForm( wfMsg( 'wrongpassword' ) );
-                        return;
-                }
-
-                # We've verified now, update the real record
-                #
-                if ( $this->mRemember ) {
-                        $r = 1;
-                } else {
-                        $r = 0;
-                }
-                $u->setOption( 'rememberpassword', $r );
-
-                $wgUser = $u;
-                $wgUser->setCookies();
-
-                $wgUser->saveSettings();
-                
-                if( $this->hasSessionCookie() ) {
-                        return $this->successfulLogin( wfMsg( 'loginsuccess', $wgUser->getName() ) );
-                } else {
-                        return $this->cookieRedirectCheck( 'login' );
-                }
-        }
-
-        /**
-         * @access private
-         */
-        function mailPassword() {
-                global $wgUser, $wgDeferredUpdateList, $wgOutputEncoding;
-                global $wgCookiePath, $wgCookieDomain, $wgDBname;
-
-                if ( '' == $this->mName ) {
-                        $this->mainLoginForm( wfMsg( 'noname' ) );
-                        return;
-                }
-                $u = User::newFromName( $this->mName );
-                if( is_null( $u ) ) {
-                        $this->mainLoginForm( wfMsg( 'noname' ) );
-                        return;
-                }
-                if ( 0 == $u->getID() ) {
-                        $this->mainLoginForm( wfMsg( 'nosuchuser', $u->getName() ) );
-                        return;
-                }
-
-                $u->loadFromDatabase();
-
-                $error = $this->mailPasswordInternal( $u );
-                if ($error === '') {
-                        $this->mainLoginForm( wfMsg( 'passwordsent', $u->getName() ) );
-                } else {
-                        $this->mainLoginForm( wfMsg( 'mailerror', $error ) );
-                }
-
-        }
-
-
-        /**
-         * @access private
-         */
-        function mailPasswordInternal( $u ) {
-                global $wgDeferredUpdateList, $wgOutputEncoding;
-                global $wgPasswordSender, $wgDBname, $wgIP;
-                global $wgCookiePath, $wgCookieDomain;
-
-                if ( '' == $u->getEmail() ) {
-                        return wfMsg( 'noemail', $u->getName() );
-                }
-                $np = User::randomPassword();
-                $u->setNewpassword( $np );
-
-                setcookie( "{$wgDBname}Token", '', time() - 3600, $wgCookiePath, $wgCookieDomain );
-                $u->saveSettings();
-
-                $ip = $wgIP;
-                if ( '' == $ip ) { $ip = '(Unknown)'; }
-
-                $m = wfMsg( 'passwordremindertext', $ip, $u->getName(), $np );
-
-                $error = userMailer( $u->getEmail(), $wgPasswordSender, wfMsg( 'passwordremindertitle' ), $m );
-                
-                return htmlspecialchars( $error );
-        }
-
-
-        /**
-         * @access private
-         */
-        function successfulLogin( $msg ) {
-                global $wgUser;
-                global $wgDeferredUpdateList;
-                global $wgOut;
-
-                # Run any hooks; ignore results
-                
-                wfRunHooks('UserLoginComplete', array(&$wgUser));
-                
-                $wgOut->setPageTitle( wfMsg( 'loginsuccesstitle' ) );
-                $wgOut->setRobotpolicy( 'noindex,nofollow' );
-                $wgOut->setArticleRelated( false );
-                $wgOut->addWikiText( $msg );
-                $wgOut->returnToMain();
-        }
-
-        function userNotPrivilegedMessage() {
-                global $wgOut, $wgUser, $wgLang;
-                
-                $wgOut->setPageTitle( wfMsg( 'whitelistacctitle' ) );
-                $wgOut->setRobotpolicy( 'noindex,nofollow' );
-                $wgOut->setArticleRelated( false );
-
-                $wgOut->addWikiText( wfMsg( 'whitelistacctext' ) );
-                
-                $wgOut->returnToMain( false );
-        }
-
-        /**
-         * @access private
-         */
-        function mainLoginForm( $err ) {
-                global $wgUser, $wgOut, $wgLang;
-                global $wgDBname, $wgAllowRealName, $wgEnableEmail;
-
-                if ( '' == $this->mName ) {
-                        if ( 0 != $wgUser->getID() ) {
-                                $this->mName = $wgUser->getName();
-                        } else {
-                                $this->mName = @$_COOKIE[$wgDBname.'UserName'];
-                        }
-                }
-
-                $q = 'action=submitlogin';
-                if ( !empty( $this->mReturnto ) ) {
-                        $q .= '&returnto=' . wfUrlencode( $this->mReturnto );
-                }
-                $titleObj = Title::makeTitle( NS_SPECIAL, 'Userlogin' );
-
-
-                require_once( 'templates/Userlogin.php' );
-                $template =& new UserloginTemplate();
-                
-                $template->set( 'name', $this->mName );
-                $template->set( 'password', $this->mPassword );
-                $template->set( 'retype', $this->mRetype );
-                $template->set( 'email', $this->mEmail );
-                $template->set( 'realname', $this->mRealName );
-
-                $template->set( 'action', $titleObj->getLocalUrl( $q ) );
-                $template->set( 'error', $err );
-                $template->set( 'create', $wgUser->isAllowedToCreateAccount() );
-                $template->set( 'createemail', $wgEnableEmail && $wgUser->getID() != 0 );
-                $template->set( 'userealname', $wgAllowRealName );
-                $template->set( 'useemail', $wgEnableEmail );
-                $template->set( 'remember', $wgUser->getOption( 'rememberpassword' ) );
-                
-                $wgOut->setPageTitle( wfMsg( 'userlogin' ) );
-                $wgOut->setRobotpolicy( 'noindex,nofollow' );
-                $wgOut->setArticleRelated( false );
-                $wgOut->addTemplate( $template );
-        }
-
-        /**
-         * @access private
-         */
-        function hasSessionCookie() {
-                global $wgDisableCookieCheck;
-                return ( $wgDisableCookieCheck ) ? true : ( '' != $_COOKIE[session_name()] );
-        }
-        
-        /**
-         * @access private
-         */
-        function cookieRedirectCheck( $type ) {
-                global $wgOut, $wgLang;
-
-                $titleObj = Title::makeTitle( NS_SPECIAL, 'Userlogin' );
-                $check = $titleObj->getFullURL( 'wpCookieCheck='.$type );
-
-                return $wgOut->redirect( $check );
-        }
-
-        /**
-         * @access private
-         */
-        function onCookieRedirectCheck( $type ) {
-                global $wgUser;
-
-                if ( !$this->hasSessionCookie() ) {
-                        if ( $type == 'new' ) {
-                                return $this->mainLoginForm( wfMsg( 'nocookiesnew' ) );
-                        } else if ( $type == 'login' ) {
-                                return $this->mainLoginForm( wfMsg( 'nocookieslogin' ) );
-                        } else {
-                                # shouldn't happen
-                                return $this->mainLoginForm( wfMsg( 'error' ) );
-                        }
-                } else {
-                        return $this->successfulLogin( wfMsg( 'loginsuccess', $wgUser->getName() ) );
-                }
-        }
-
-        /**
-         * @access private
-         */
-        function throttleHit( $limit ) {
-                global $wgOut;
-
-                $wgOut->addWikiText( wfMsg( 'acct_creation_throttle_hit', $limit ) );
-        }
</pre><pre class="diff" id="added">+ /* We should never end up here, but in case we do... */
+ header("Location: $target");
+ exit;
</pre><pre class="diff" id="context"> }
</pre><pre class="diff" id="added">+
</pre><pre class="diff" id="context"> ?>
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Modified: trunk/web/reactos.org/htdocs/wiki/includes/SpecialUserlogout.php</b></big></div>
<pre class="diff"><small id="info">--- vendor/mediawiki/current/includes/SpecialUserlogout.php        2005-12-06 19:30:16 UTC (rev 19934)
+++ trunk/web/reactos.org/htdocs/wiki/includes/SpecialUserlogout.php        2005-12-06 19:41:09 UTC (rev 19936)
@@ -16,12 +16,8 @@
</small></pre><pre class="diff" id="context">                 $wgUser->logout();
                wfRunHooks('UserLogoutComplete', array(&$wgUser));
</pre><pre class="diff" id="removed">-                
-                $wgOut->mCookies = array();
-                $wgOut->setRobotpolicy( 'noindex,nofollow' );
-                $wgOut->addHTML( wfMsg( 'logouttext' ) );
-                $wgOut->returnToMain();
-                
</pre><pre class="diff" id="added">+
+                header("Location: /roscms/?page=logout");
</pre><pre class="diff" id="context">         }
}
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Modified: trunk/web/reactos.org/htdocs/wiki/includes/User.php</b></big></div>
<pre class="diff"><small id="info">--- vendor/mediawiki/current/includes/User.php        2005-12-06 19:30:16 UTC (rev 19934)
+++ trunk/web/reactos.org/htdocs/wiki/includes/User.php        2005-12-06 19:41:09 UTC (rev 19936)
@@ -9,6 +9,7 @@
</small></pre><pre class="diff" id="context"> *
*/
require_once( 'WatchedItem.php' );
</pre><pre class="diff" id="added">+require_once( '/web/reactos.org/htdocs/roscms/inc/subsys_login.php' );
</pre><pre class="diff" id="context">
# Number of characters in user_token field
define( 'USER_TOKEN_LENGTH', 32 );
@@ -453,6 +454,7 @@
</pre><pre class="diff" id="context">         function loadFromSession() {
                global $wgMemc, $wgDBname;
</pre><pre class="diff" id="added">+/*
</pre><pre class="diff" id="context">                 if ( isset( $_SESSION['wsUserID'] ) ) {
                        if ( 0 != $_SESSION['wsUserID'] ) {
                                $sId = $_SESSION['wsUserID'];
@@ -473,6 +475,11 @@
</pre><pre class="diff" id="context">                 } else {
                        return new User();
                }
</pre><pre class="diff" id="added">+*/
+$sId = roscms_subsys_login('wiki', ROSCMS_LOGIN_OPTIONAL, "");
+if (0 == $sId) {
+        return new User();
+}
</pre><pre class="diff" id="context">
                $passwordCorrect = FALSE;
                $user = $wgMemc->get( $key = "$wgDBname:user:id:$sId" );
@@ -484,7 +491,10 @@
</pre><pre class="diff" id="context">                 } else {
                        wfDebug( "User::loadFromSession() got from cache!\n" );
                }
</pre><pre class="diff" id="added">+$userid = $user->getID();
+//print "#1 $userid\n";
</pre><pre class="diff" id="context">
</pre><pre class="diff" id="added">+/*
</pre><pre class="diff" id="context">                 if ( isset( $_SESSION['wsToken'] ) ) {
                        $passwordCorrect = $_SESSION['wsToken'] == $user->mToken;
                } else if ( isset( $_COOKIE["{$wgDBname}Token"] ) ) {
@@ -492,8 +502,13 @@
</pre><pre class="diff" id="context">                 } else {
                        return new User(); # Can't log in from session
                }
</pre><pre class="diff" id="added">+*/
+$passwordCorrect = TRUE;
</pre><pre class="diff" id="context">
</pre><pre class="diff" id="added">+/*
</pre><pre class="diff" id="context">                 if ( ( $sName == $user->mName ) && $passwordCorrect ) {
</pre><pre class="diff" id="added">+*/
+{
</pre><pre class="diff" id="context">                         if($makenew) {
                                if($wgMemc->set( $key, $user ))
                                        wfDebug( "User::loadFromSession() successfully saved user\n" );
@@ -502,6 +517,7 @@
</pre><pre class="diff" id="context">                         }
                        return $user;
                }
</pre><pre class="diff" id="added">+die("failed");
</pre><pre class="diff" id="context">                 return new User(); # Can't log in from session
        }
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Added: trunk/web/reactos.org/htdocs/wiki/skins/RosCms.php</b></big></div>
<pre class="diff"><small id="info">--- vendor/mediawiki/current/skins/RosCms.php        2005-12-06 19:30:16 UTC (rev 19934)
+++ trunk/web/reactos.org/htdocs/wiki/skins/RosCms.php        2005-12-06 19:41:09 UTC (rev 19936)
@@ -0,0 +1,239 @@
</small></pre><pre class="diff" id="added">+<?php
+/**
+ * RosCms nouveau
+ *
+ * Translated from gwicke's previous TAL template version to remove
+ * dependency on PHPTAL.
+ *
+ * @todo document
+ * @package MediaWiki
+ * @subpackage Skins
+ */
+
+if( !defined( 'MEDIAWIKI' ) )
+        die();
+
+/** */
+require_once('includes/SkinTemplate.php');
+
+/**
+ * Inherit main code from SkinTemplate, set the CSS and template filter.
+ * @todo document
+ * @package MediaWiki
+ * @subpackage Skins
+ */
+class SkinRosCms extends SkinTemplate {
+        /** Using roscms. */
+        function initPage( &$out ) {
+                SkinTemplate::initPage( $out );
+                $this->skinname = 'roscms';
+                $this->stylename = 'roscms';
+                $this->template = 'RosCmsTemplate';
+        }
+}
+        
+class RosCmsTemplate extends QuickTemplate {
+        /**
+         * Template filter callback for RosCms skin.
+         * Takes an associative array of data set from a SkinTemplate-based
+         * class, and a wrapper for MediaWiki's localization database, and
+         * outputs a formatted page.
+         *
+         * @access private
+         */
+        function execute() {
+                global $wgUser, $wgTitle;
+echo "<?xml version='1.0'?>\n";?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php $this->text('lang') ?>" lang="<?php $this->text('lang') ?>" dir="<?php $this->text('dir') ?>">
+ <head>
+ <meta http-equiv="Content-Type" content="<?php $this->text('mimetype') ?>; charset=<?php $this->text('charset') ?>" />
+ <?php $this->html('headlinks') ?>
+ <title><?php $this->text('pagetitle') ?></title>
+ <link href="/style.css" type="text/css" rel="stylesheet" />
+ <style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/main.css"; /*]]>*/</style>
+ <link rel="stylesheet" type="text/css" media="print" href="<?php $this->text('stylepath') ?>/common/commonPrint.css" />
+ <!--[if lt IE 5.5000]><style type="text/css">@import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/IE50Fixes.css";</style><![endif]-->
+ <!--[if IE 5.5000]><style type="text/css">@import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/IE55Fixes.css";</style><![endif]-->
+ <!--[if gte IE 6]><style type="text/css">@import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/IE60Fixes.css";</style><![endif]-->
+ <!--[if IE]><script type="text/javascript" src="<?php $this->text('stylepath') ?>/common/IEFixes.js"></script>
+ <meta http-equiv="imagetoolbar" content="no" /><![endif]-->
+ <?php if($this->data['jsvarurl' ]) { ?><script type="text/javascript" src="<?php $this->text('jsvarurl' ) ?>"></script><?php } ?>
+ <script type="text/javascript" src="<?php $this->text('stylepath' ) ?>/common/wikibits.js"></script>
+ <?php if($this->data['usercss' ]) { ?><style type="text/css"><?php $this->html('usercss' ) ?></style><?php } ?>
+ <?php if($this->data['userjs' ]) { ?><script type="text/javascript" src="<?php $this->text('userjs' ) ?>"></script><?php } ?>
+ <?php if($this->data['userjsprev']) { ?><script type="text/javascript"><?php $this->html('userjsprev') ?></script><?php } ?>
+ </head>
+ <body <?php if($this->data['body_ondblclick']) { ?>ondblclick="<?php $this->text('body_ondblclick') ?>"<?php } ?>
+ <?php if($this->data['nsclass' ]) { ?>class="<?php $this->text('nsclass') ?>"<?php } ?>>
+<div id="top">
+ <div id="topMenu">
+ <!--
+ Use <p> to align things for links/lynx, then in the css make it
+         margin: 0; and use text-align: left/right/etc;.
+ -->
+        <p align="center">
+                <a href="/?page=index">Home</a> <font color="#ffffff">|</font>
+                <a href="/?page=community">Community</a> <font color="#ffffff">|</font>
+                <a href="/?page=support">Support</a> <font color="#ffffff">|</font>
+                <a href="/?page=dev">Development</a> <font color="#ffffff">|</font>
+                <a href="/roscms/?page=user">myReactOS</a> </p>
+         </div>
+        </div>
+
+<table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="147" id="leftNav">
+ <div class="navTitle">Navigation</div>
+ <ol>
+ <li><a href="/?page=index">Home</a></li>
+ <li><a href="/?page=community">Community</a></li>
+ <li><a href="/?page=support">Support</a></li>
+ <li><a href="/?page=dev">Development</a></li>
+        <li><a href="/roscms/?page=user">myReactOS</a></li>
+ </ol>
+ <p></p>
+
+<div class="navTitle">Wiki</div>
+ <ol>
+ <?php foreach($this->data['navigation_urls'] as $navlink) { ?>
+ <li><a href="<?php echo htmlspecialchars($navlink['href']) ?>"><?php
+ echo htmlspecialchars($navlink['text']) ?></a></li>
+ <?php } ?>
+ </ol>
+ <p></p>
+
+<div class="navTitle">Wiki Toolbox</div>
+ <ol>
+ <?php if($this->data['notspecialpage']) { foreach( array( 'whatlinkshere', 'recentchangeslinked' ) as $special ) { ?>
+ <li><a href="<?php
+ echo htmlspecialchars($this->data['nav_urls'][$special]['href'])
+ ?>"><?php echo $this->msg($special) ?></a></li>
+ <?php } } ?>
+ <?php if(/*$this->data['feeds'] Let's not do this now*/ 0) { ?>
+ <li>
+ <?php foreach($this->data['feeds'] as $key => $feed) { ?>
+ <span id="feed-<?php echo htmlspecialchars($key) ?>"><a href="<?php
+ echo htmlspecialchars($feed['href']) ?>">
+ <?php echo htmlspecialchars($feed['text'])?></a>&nbsp;
+ </span>
+ <?php } ?>
+ </li>
+ <?php } ?>
+ <?php foreach( array('contributions', 'emailuser', 'upload', 'specialpages', 'preferences') as $special ) { ?>
+ <?php if($this->data['nav_urls'][$special]) {?>
+ <li>
+ <a href="<?php
+ echo htmlspecialchars($this->data['nav_urls'][$special]['href'])
+ ?>"><?php $this->msg($special) ?></a>
+ </li>
+ <?php } ?>
+ <?php } ?>
+
+ </ol>
+ <p></p>
+
+<form name="searchform" action="/wiki/index.php/Special:Search" id="searchform">
+ <div class="navTitle">Search</div>
+ <div class="navBox">
+ <div style="text-align:center;">
+ <input id="searchInput" name="search" type="text"
+ accesskey="f" value="" />
+ <input type='submit' name="go" class="searchButton" id="searchGoButton"
+ value="Go"
+ />&nbsp;<input type='submit' name="fulltext"
+ class="searchButton"
+ value="Search" />
+ </div>
+ </div>
+</form>
+
+<div class="navTitle">Account</div>
+ <ol>
+ <?php if (0 != $wgUser->getID()) { ?>
+ <li><a href="/roscms/?page=logout">Logout <?php echo $wgUser->getName() ?></a></li>
+ <?php } else { ?>
+ <li><a href="/roscms/?page=login&amp;target=<?php echo urlencode($wgTitle->getLocalURL()); ?>">Login</a></li>
+ <?php } ?>
+ <li><a href="/roscms/?page=register&amp;target=<?php echo urlencode($wgTitle->getLocalURL()); ?>">Register</a></li>
+ <?php if (0 != $wgUser->getID()) { ?>
+ <li><a href="/wiki/index.php/Special:Preferences">Preferences</a></li>
+ <?php } ?>
+ </ol>
+ <p></p>
+ </td>
+
+<td id="wikiContent">
+<div class="contentSmall">
+<div class="contentSmallTitle"><a class="roscmscontent" href="http://www.reactos.org/xhtml/en/community.html">ReactOS Community</a> &gt; ReactOS Wiki</span>
+</div>
+ <div id="globalWrapper">
+ <div id="column-content">
+        <div id="content">
+         <a name="top" id="contentTop"></a>
+         <?php if($this->data['sitenotice']) { ?><div id="siteNotice"><?php $this->html('sitenotice') ?></div><?php } ?>
+         <h1 class="firstHeading"><?php $this->text('title') ?></h1>
+         <div id="bodyContent">
+         <h3 id="siteSub"><?php $this->msg('tagline') ?></h3>
+         <div id="contentSub"><?php $this->html('subtitle') ?></div>
+         <?php if($this->data['undelete']) { ?><div id="contentSub"><?php $this->html('undelete') ?></div><?php } ?>
+         <?php if($this->data['newtalk'] ) { ?><div class="usermessage"><?php $this->html('newtalk') ?></div><?php } ?>
+         <!-- start content -->
+         <?php $this->html('bodytext') ?>
+         <?php if($this->data['catlinks']) { ?><div id="catlinks"><?php $this->html('catlinks') ?></div><?php } ?>
+         <!-- end content -->
+         <div class="visualClear"></div>
+         </div>
+        </div>
+ </div>
+ <div id="column-one">
+        <div id="p-cactions" class="portlet">
+         <h5>Views</h5>
+         <ul>
+         <?php foreach($this->data['content_actions'] as $key => $action) {
+         ?><li id="ca-<?php echo htmlspecialchars($key) ?>"
+         <?php if($action['class']) { ?>class="<?php echo htmlspecialchars($action['class']) ?>"<?php } ?>
+         ><a href="<?php echo htmlspecialchars($action['href']) ?>"><?php
+         echo htmlspecialchars($action['text']) ?></a></li><?php
+         } ?>
+         </ul>
+        </div>
+        <script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script>
+ </div><!-- end of the left (by default at least) column -->
+ <div class="visualClear"></div>
+ <div id="footer">
+ <?php if($this->data['poweredbyico']) { ?><div id="f-poweredbyico"><?php $this->html('poweredbyico') ?></div><?php } ?>
+        <?php if($this->data['copyrightico']) { ?><div id="f-copyrightico"><?php $this->html('copyrightico') ?></div><?php } ?>
+        <ul id="f-list">
+         <?php if($this->data['lastmod' ]) { ?><li id="f-lastmod"><?php $this->html('lastmod') ?></li><?php } ?>
+         <?php if($this->data['viewcount' ]) { ?><li id="f-viewcount"><?php $this->html('viewcount') ?></li><?php } ?>
+         <?php if($this->data['credits' ]) { ?><li id="f-credits"><?php $this->html('credits') ?></li><?php } ?>
+         <?php if($this->data['copyright' ]) { ?><li id="f-copyright"><?php $this->html('copyright') ?></li><?php } ?>
+         <?php if($this->data['about' ]) { ?><li id="f-about"><?php $this->html('about') ?></li><?php } ?>
+         <?php if($this->data['disclaimer']) { ?><li id="f-disclaimer"><?php $this->html('disclaimer') ?></li><?php } ?>
+        </ul>
+ </div>
+ </div>
+ <?php $this->html('reporttime') ?>
+</td>
+</tr>
+</table>
+
+<!--
+ links/lynx/etc.. dont handle css (atleast not external
+ files by default) so dont overly depend on it.
+ -->
+<hr size="1"/>
+
+<address>
+ <p align="center">
+ ReactOS is a trademark of ReactOS Foundation in the United States and other countries.
+ </p>
+</address>
+ </body>
+</html>
+<?php
+        }
+}
+
+?>
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Added: trunk/web/reactos.org/htdocs/wiki/skins/common/images/reactos.png</b></big></div>
<pre class="diff"><small id="info"></small></pre><pre class="diff" id="context">(Binary files differ)
Property changes on: trunk/web/reactos.org/htdocs/wiki/skins/common/images/reactos.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Added: trunk/web/reactos.org/htdocs/wiki/skins/roscms/IE50Fixes.css</b></big></div>
<pre class="diff"><small id="info">--- vendor/mediawiki/current/skins/roscms/IE50Fixes.css        2005-12-06 19:30:16 UTC (rev 19934)
+++ trunk/web/reactos.org/htdocs/wiki/skins/roscms/IE50Fixes.css        2005-12-06 19:41:09 UTC (rev 19936)
@@ -0,0 +1,67 @@
</small></pre><pre class="diff" id="added">+/*
+** IE5.0 Fix Stylesheet
+*/
+
+#column-content {
+ margin: 0 !important;
+ float: none;
+}
+#column-content #content {
+ margin-top: 3em;
+ height: 1%;
+}
+#column-one {
+ position: absolute;
+ overflow: visible;
+ top: 0;
+ left: 0;
+ z-index: 3;
+}
+#footer {
+ margin: 0 0 0 13.6em;
+}
+
+/* IE 5 & 5.5 interpret keyword sizes one off */
+body { font-size: xx-small; }
+/*
+** the edit tabs
</pre>
<strong class="error">[truncated at 1000 lines; 1632 more skipped]</strong>
</div>
</body>
</html>