News:

Bored?  Looking to kill some time?  Want to chat with other SMF users?  Join us in IRC chat or Discord

Main Menu

How to integrate SMF with Wiki?

Started by Jochus, November 12, 2005, 10:59:29 AM

Previous topic - Next topic

Jochus

My users want to integrate SMF with Wiki so they can easily add math formules and stuff like that ...

I have been trying to get Wiki running on my webspace, but I had a lot of difficulties.

Any suggestions about which kind of Wiki I should use? And a help page for integrating SMF?

--edit--

I'm using the 1.0.5 version

DreamWearl

yes i'm intrested in this too...
anybody?  8)

TarantinoArchives

also planning to have my MediaWiki share my SMF user db, so that my forum users can use the wiki.

http://www.simplemachines.org/community/index.php?topic=64643.0

TarantinoArchives

i found this:

http://meta.wikimedia.org/wiki/PHPBB/Users_Integration

maybe someone can copy the principle to make an auth_smf.php extension for mediawiki?

dtm.exe

I don't think it would be very hard.  Just have it share smf_members and the SMF cookie, no?

TLM

#5
Quote from: dtm.exe on January 28, 2006, 11:44:19 AM
I don't think it would be very hard.  Just have it share smf_members and the SMF cookie, no?
Not with mediawiki...  Its evil, it likes to make its own user databse....

Quote from: TarantinoArchives on January 28, 2006, 11:23:19 AM
maybe someone can copy the principle to make an auth_smf.php extension for mediawiki?
What the heck, ask and you shall recive, I garuntee that it may or may not work.  Otherwise setup is same to the PHPBB plugin to the point where all variables are $wgSMF... instead of $wgPHPBB...  Also you can forget this one while setting it up, $wgPHPBB_User_GroupTB. I will not support this file due to the fact I have no need for a wiki right now but I just wanted a small challenge that was presented, not to mention it seems to create users in the wiki user db and auth from that instead of SMF(sorta).

*edit*
Removed a few debug lines, and tested changing passwords.  Well if password is changed in SMF, then you cant get into the wiki for it does not update the password there, and I dunno from there.
*/edit*

*edit2*
This has been only tested against SMF 1.1 RC2.  I do not expect the 1.0 series to work at all due to how the password is stored changed since then from what I uderstand.
*/edit2*

TarantinoArchives

wow man, that's great work! thank you.

but i am a bit scared to try it out. so it doesn't touch the SMF database, since it's basically just copying it into the MW db, right? and once there, it doesn't reflect any changes afterwards (like password changes)?

and what about users that already exist in MW?

TLM

Quote from: TarantinoArchives on January 28, 2006, 05:25:03 PM
wow man, that's great work! thank you.

but i am a bit scared to try it out. so it doesn't touch the SMF database, since it's basically just copying it into the MW db, right? and once there, it doesn't reflect any changes afterwards (like password changes)?

and what about users that already exist in MW?
Dunno, as I said, no garuentees to work.  I would say to find out, make a test setup of SMF and MW and find out.  But I think it will lockout anyone in the existing MW database, but thats speculation only...

TarantinoArchives

as long it's not locking out the sysop (i.e.... ME !) then it won't be much of a problem....

but really all i could screw up would be the MW, not the SMF db?

TLM

Quote from: TarantinoArchives on January 28, 2006, 05:35:19 PM
as long it's not locking out the sysop (i.e.... ME !) then it won't be much of a problem....

but really all i could screw up would be the MW, not the SMF db?
As far as I know thats all that would happen.  Again I would stress, test it first in a test environment.

TLM

Quote
Hello TLM.

I read your post on the SMF website.

There are a few things about how MediaWiki uses the external user database that I can help clear up for you. This is based on how I use the MW framework for my plugin.

With the plugin installed. When a user logs into MW the first thing is does is check if the user is found in the MW user database. If the user is found it then checks the external database to see if the user is found there. Once the username is found in both places it then asks the external database for the users password and checks if it is the same as the one submited from the login form. It never checks the password stored in its own user database. So when a user changes their PHPBB password, the new password will be required to login into the wiki.

I do not allow users to change the PHPBB password from with in MW.

When a new user logs into MW and the username is not found in the MW database. MW checks if it is a valid user in the PHPBB user database. If it is then MW auto adds the user to the MW database and the default password is some made up garbage that is never checked in the future.

When a user logs into MW and the username is found in the MW database but the user is not found in the PHPBB database. The user fails login.

Settings up the sysops account:
Install MW. Make a new username that matches the Admin username on the forums. Make it the sysops. Install the plugin. After the plugin working adding new sysops is done the normal way.

As far as making a SMF version of the plugin. Just leave a reference to myself as the original author, a reference to http://uber.leetphp.com and follow the GPL rules and I'm ok with it.
From the guy that did the PHPBB version...

TarantinoArchives

haven't yet had the time to set up testing envirnments. probably after exams. I'll post here if I have some feedback on that.

sirwoogie

Works like a charm so far. I'll report back more when I have some experience with it running.

Omniverse

Sooo, how well is it working for ya? I would be interested in trying this... but was waiting for some more reports back  :P

sirwoogie

No issues thus far. Been running for a few weeks with SMF 1.1RC2 and Mediawiki 1.5

TarantinoArchives

Quote from: sirwoogie on March 04, 2006, 11:24:24 AM
No issues thus far. Been running for a few weeks with SMF 1.1RC2 and Mediawiki 1.5

how many members/editors ? how much business/traffic? how much people signing up etc? can you post a link?

sirwoogie

Forum: http://forum.arcadecontrols.com/
Wiki: http://wiki.arcadecontrols.com/

The database has 38 people in the user table. I noticed the Special:Statistics page doesn't show the registration correctly to what is in the database. I wonder what's up with that.

We're just starting out on the wiki (few weeks), so traffic is low at the moment. We have plenty contributed already however.

TarantinoArchives

Quote from: TLM on January 29, 2006, 11:28:30 PM
Quote
When a user logs into MW and the username is found in the MW database but the user is not found in the PHPBB database. The user fails login.

so if i delete a user in SMF he cant use the wiki anymore. that is a way more efficient way to solve my spamming problems! yay!

TarantinoArchives

when i go to manage user rights management and enter a username i get this:


Notice: Undefined index: wgSMF_MySQL_Host in /var/www/web2/html/wiki/extensions/Auth_smf.php on line 179

Notice: Undefined index: wgSMF_MySQL_Username in /var/www/web2/html/wiki/extensions/Auth_smf.php on line 180

Notice: Undefined index: wgSMF_MySQL_Password in /var/www/web2/html/wiki/extensions/Auth_smf.php on line 181

Notice: Undefined index: wgSMF_MySQL_Database in /var/www/web2/html/wiki/extensions/Auth_smf.php on line 185

Notice: Undefined index: wgSMF_MySQL_Database in /var/www/web2/html/wiki/extensions/Auth_smf.php on line 187
Unable to open external database () No database selected

TarantinoArchives

oh that was my mistake. typos.

but the problem i have now is, when i want to log in, i get:


Error in numRows(): Table 'usr_web2_1.qtw_watchlist' doesn't exist

Backtrace:

    * GlobalFunctions.php line 450 calls wfbacktrace()
    * Database.php line 543 calls wfdebugdiebacktrace()
    * User.php line 763 calls databasemysql::numrows()
    * User.php line 797 calls user::getnewtalk()
    * SkinTemplate.php line 268 calls user::getnewmessagelinks()
    * OutputPage.php line 467 calls skinmonobook::outputpage()
    * OutputPage.php line 680 calls outputpage::output()
    * Database.php line 400 calls outputpage::databaseerror()
    * Database.php line 347 calls databasemysql::reportqueryerror()
    * Database.php line 723 calls databasemysql::query()
    * Database.php line 645 calls databasemysql::select()
    * LinkCache.php line 162 calls databasemysql::selectfield()
    * Title.php line 1150 calls linkcache::addlinkobj()
    * Skin.php line 1289 calls title::getarticleid()
    * SkinTemplate.php line 182 calls skinmonobook::makeurldetails()
    * OutputPage.php line 467 calls skinmonobook::outputpage()
    * index.php line 270 calls outputpage::output()



usr_web2_1   is my database for SMF
qtw_ is my table prefix in the Wiki database

so of course, qtw_watchlist doesn't esist in usr_web2_1


help, anyone?

TarantinoArchives

why does it call the SMF database to look for the watchlist, which is in the wiki DB? that is bizarre.

i dont really want to use one DB for both because i already use my SMF DB together with Joomla, i think adding the wiki on top of it would be a bit much, what do you guys say?
any ideas to help me out?


here's how my localsettings looks like (passwords censored):


/ wiki - smf combo
// This requires a user be logged into the wiki to make changes.

// Specify who may create new accounts: 0 means no, 1 means yes
$wgGroupPermissions['*']['createaccount'] = false; // MediaWiki 1.5 Settings

// SMF User Database Plugin. (Requires MySQL Database)
require_once './extensions/Auth_smf.php';

$wgSMF_WikiGroupName  = 'wiki';               // Name of your SMF group
                                                // users need to be a member
                                                // of to use the wiki. (i.e. wiki)

$wgSMF_UseWikiGroup   = false;                 // This tells the Plugin to require
                                                // a user to be a member of the above
                                                // phpBB group. (ie. wiki) Setting
                                                // this to false will let any SMF
                                                // user edit the wiki.

$wgSMF_UseExtDatabase = true;                // This tells the plugin that the SMF tables
                                                // are in a different database then the wiki.
                                                // The default settings is false.

$wgSMF_MySQL_Host     = 'localhost';               // phpBB MySQL Host Name.
$wgSMF_MySQL_Username = 'username';           // phpBB MySQL Username.
$wgSMF_MySQL_Password = 'password';           // phpBB MySQL Password.
$wgSMF_MySQL_Database = 'usr_web2_1';      // phpBB MySQL Database Name.

$wgSMF_UserTB         = 'yabbse_members';        // Name of your SMF user table. (i.e. phpbb_users)
$wgSMF_GroupsTB       = 'yabbse_membergroups';       // Name of your SMF groups table. (i.e. phpbb_groups)
$wgAuth                 = new Auth_SMF();     // Auth_SMF Plugin.


sirwoogie

#21
Sorry, I'm not experiencing this. It may be calling  my SMF first and then falling back to the wiki database, but I haven't traced it. My wiki database watchlist table updates correctly.

Edit: I should be a bit more specific. I have two databases under the same MYSQL instance.

TarantinoArchives

well i use this thing now on 2 live sites but i merged databases to circumvent the above described problem. using one DB for both smf and wiki, it works great

TarantinoArchives

some people seem to can't log in.
i updated to MW 1.6.2 recently. can somebody look into this?

mirkrim

Same problem here.  I'm using SMF 1.1 RC2 and MediaWiki 1.6.3, and I keep getting "wrong password" messages.

TarantinoArchives

Quote from: mirkrim on April 15, 2006, 01:00:54 AM
Same problem here.  I'm using SMF 1.1 RC2 and MediaWiki 1.6.3, and I keep getting "wrong password" messages.

hm. well actually here it works mostly.
check if these people have passwords or usernames that the wiki doesn#t "like" such as with underscores, spaces, special characters etc

mirkrim

Quote from: TarantinoArchives on April 15, 2006, 07:13:00 AM
hm. well actually here it works mostly.
check if these people have passwords or usernames that the wiki doesn#t "like" such as with underscores, spaces, special characters etc

I've already considered that.  I made an SMF account called "test", with password "test", configured Localsettings.php and uploaded the extension, but Mediawiki keeps saying my password is incorrect.  In addition, I can't login with my sysop account - it also says password incorrect.

I am 100% sure that localsettings.php is configured properly, and the wiki works perfectly when it's independent of the forum.  But whenever I implement the bridge, it doesn't accept any passwords.

TarantinoArchives

have you set the extension to use a smf user group?

mirkrim

Yes, it's set to the SMF user group named "Wiki".  The test account is a member of this group.

Cerberus

#29
Using SMF 1.1 RC2 and MediaWiki 1.6.3 :)

I'm getting login errors, so  it seems that none of the above mentioned solutions work with MW 1.6.3, am I right? :(
Best Regards, Cerberus
YaBB Gold -> YaBB 1.1 -> YaBB SE (YaPP -> PfaBB) -> SMF
Pocket PC Russia

Cerberus

#30
Installed MW 1.5.8 and the Auth_SMF from http://uber.leetphp.com and I can't login :(
I've checked all the settings, I've also set up the $wgSMF_UseExtDatabase but I can't get it to work properly...

it gives me a wrong password error :o


Solved :D
Best Regards, Cerberus
YaBB Gold -> YaBB 1.1 -> YaBB SE (YaPP -> PfaBB) -> SMF
Pocket PC Russia

TarantinoArchives

Quote from: Cerberus on April 22, 2006, 04:15:10 PM
Using SMF 1.1 RC2 and MediaWiki 1.6.3 :)

I'm getting login errors, so  it seems that none of the above mentioned solutions work with MW 1.6.3, am I right? :(

works fine here

Cerberus

I've already solved the problem, but nevertheless thanks for the input :)
Best Regards, Cerberus
YaBB Gold -> YaBB 1.1 -> YaBB SE (YaPP -> PfaBB) -> SMF
Pocket PC Russia

mirkrim

#33
What did you do to solve the problem?

Nevermind, I've been using the version from uber.leet.  I switched to TMF's and now it works great.

Digitalroot

Hello all,

I released a new version of the Auth_SMF plug-in. v1.1 has support for SMF 1.1 and 1.0. I also made the same MySQL connection changes that were made to the Auth_phpBB plug-in. This should fix a bug that a handful of ppl were dealing with.

hxxp:uber.leetphp.com/index.php?categoryid=16&p13_sectionid=1&p13_fileid=7 [nonactive]


Phoenixoverlord

First of all: thanks to Digitalroot's file I was able to combine SMF with mediawiki (the members that is).

I wanted to integrate mediawiki in my tinyportal/SMF combo as described here: http://www.tinyportal.net/smf/index.php?topic=3133.msg26267#msg26267 This worked wonderwell for coppermine and it does run in an iframe. However, this isn't the case for mediwiki.

Where I was able to integrate dokuwiki (which I had tried first) in the iframe, mediawiki will actually just replace the entire screen. The code I used is the same as for the other wikis discussed above, but no matter what I do, it keeps refreshing the page and taking it all up. :-/ Any hints or ideas?

But how can I make it so that someone who logs into SMF is automatically logged into the wiki too and logged out when they log out of SMF/TP? I've looked at the smf_auth.php file, but I truly don't get what to change there...

Dannii

I'm working on integrating MediaWiki's theme with TP now. I'll let you all know when I'm finished.
"Never imagine yourself not to be otherwise than what it might appear to others that what you were or might have been was not otherwise than what you had been would have appeared to them to be otherwise."

Phoenixoverlord

Okay I figured out how to stop it from jumping to a new page instead of loading in TP. :)

http://meta.wikimedia.org/wiki/MediaWiki_FAQ#I_want_my_wiki_to_appear_in_a_frame_as_part_of_my_site.2C_but_it_keeps_popping_out_of_the_frame

QuoteI want my wiki to appear in a frame as part of my site, but it keeps popping out of the frame

MediaWiki contains protection against abusive use of frame sets. Unfortunately this will trap your intentional frames as well -- to remove this, edit stylesheets/wikibits.js and remove these lines:

(Please note that if the wikibits.js file isn't in stylesheets/wikibits.js it may be skins/common/wikibits.js)

// Un-trap us from framesets
if( window.top != window ) window.top.location = window.location;


        This may not work with MediaWiki: 1.5.8. I tried this with 1.5.8. The path was /skins/common/wikibits.js. But it still keeps popping out. Must be something else somwhere else involved as well?

The latter did indeed work for me. I commented that section out and then cleared the cache et voilà! Now it works. I'll wait for your integration then to see how the login can be handled by SMF. :) Thanks!

Dannii

Actually I'm considering changing to Dokuwiki, as Mediawiki has the worst code I've ever seen.
"Never imagine yourself not to be otherwise than what it might appear to others that what you were or might have been was not otherwise than what you had been would have appeared to them to be otherwise."

devnet

Has the hash of passwords changed since 1.1?  This new release from Digital Root doesn't seem to work with 1.1.1...each time I try to login, I get:


Login error:
Incorrect password entered. Please try again.


it seems as though the password cannot be read.  I've tested this out with three test user accounts and none can get in.


devnet

Found the solution for the password problem here:  http://uber.leetphp.com/forums/viewtopic.php?t=45&highlight=password

It seems that the extension for mw was parsing the password in lowercase as well :)  Put this into play and it worked.

Although, I initially didn't think it worked...because I was using a member that wasn't part of the wiki group.  So this error is received when you have a user who isn't part of the group that you've locked mediwiki to having editor rights as well :)

TarantinoArchives

I have two wikis working with this plugin and it works fine, aside from some issues with some people, which might be related to their usernames or problems with cookie settings... in general i am very pleased, but i think producers of software such as mediawiki and smf should work closer together in providing API documentation and support for making their products interoperable across version-number updates etc...

TarantinoArchives

i'm having problems with this now, it worked for months. i am using the latest mediawiki and smf now and some users get errors when they want to log into the wiki. anyone here proficient in php and all that to look over the code of that smf_auth thing to check if that is handling utf-8 correctly and all that? some can log in (including me) but some just can't... weird

Digitalroot

I have released a new version of the Auth plug-in for SMF 1.1.2

HookedOnWinter

#44
So I'm getting an error, and I'm not sure why. When I login with an account that should work, I get a blank page with a 1 line error:


Fatal error: Call to a member function on a non-object in /home/content/s/e/a/searles2sels/html/wiki/includes/SpecialUserlogin.php on line 320


Line 320 says:


if (!$u->checkPassword( $this->mPassword )) {
$this->mainLoginForm( wfMsg( $this->mPassword == '' ? 'wrongpasswordempty' : 'wrongpassword' ) );
return;
}


so it's something about the password being wrong, even though it's not. I'm pretty sure I've installed the bridge correctly. SMF_Auth.php is in the extensions folder, and here is the extra code (personal info is censored):


// This requires a user be logged into the wiki to make changes.
$wgGroupPermissions['*']['edit'] = false; // MediaWiki Settings

// Specify who may create new accounts: 0 means no, 1 means yes
$wgGroupPermissions['*']['createaccount'] = false; // MediaWiki Settings

// SMF User Database Plugin. (Requires MySQL Database)
require_once './extensions/Auth_SMF.php';

$wgSMF_WikiGroupName  = 'Wiki';          // Name of your SMF group
                                                // users need to be a member
                                                // of to use the wiki. (i.e. wiki)

$wgSMF_UseWikiGroup   = true;                   // This tells the Plugin to require
                                                // a user to be a member of the above
                                                // SMF group. (ie. wiki) Setting
                                                // this to false will let any SMF
                                                // user edit the wiki.

$wgSMF_UseExtDatabase = true;                  // This tells the plugin that the SMF tables
                                                // are in a different database then the wiki.
                                                // The default settings is false.

$wgSMF_Version = '1.1';                         // This is what version of SMF you are using.
                                                // Current valid values are 1.0 and 1.1

/*-[NOTE: You only need the next four settings if you set $wgSMF_UseExtDatabase to true.]-*/
$wgSMF_MySQL_Host     = '*******';               // SMF MySQL Host Name.
$wgSMF_MySQL_Username = '*******';           // SMF MySQL Username.
$wgSMF_MySQL_Password = '*******';           // SMF MySQL Password.
$wgSMF_MySQL_Database = '*******';      // SMF MySQL Database Name.

$wgSMF_UserTB         = 'smf_members';        // Name of your SMF user table. (i.e. smf_members)
$wgSMF_GroupsTB       = 'smf_membergroups';   // Name of your SMF groups table. (i.e. smf_membergroups)
$wgAuth               = new Auth_SMF();       // Auth_SMF Plugin.


any ideas?

Talisman

What version of MediaWiki are you using?  My understanding is that this bridge is broken under versions 1.9 and 1.10...although I'd love if someone could confirm the accuracy of that!

HookedOnWinter

SMF: 1.1.2
MediaWiki: 1.6.8
PHP: 4.3.11 (cgi-fcgi)

Talisman

Your version wouldn't be causing the issue, then.

Did you confirm that your table prefix is smf_, and you've created the Wiki membergroup in SMF?

Sorry if I'm asking the obvious, but sometimes the simple things get overlooked!

tumr

Quote from: HookedOnWinter on May 16, 2007, 10:54:31 AM
SMF: 1.1.2
MediaWiki: 1.6.8
PHP: 4.3.11 (cgi-fcgi)

From hxxp:meta.wikimedia.org/wiki/SMF/Users_Integration [nonactive], it looks like you need to upgrade to MediaWiki version 1.9.2 for this to work properly.

HookedOnWinter

Quote from: Talisman on May 16, 2007, 01:37:08 PM
Your version wouldn't be causing the issue, then.

Did you confirm that your table prefix is smf_, and you've created the Wiki membergroup in SMF?

Sorry if I'm asking the obvious, but sometimes the simple things get overlooked!

No I appreciate the attention to detail. But yes, I've taken care of all of those.

Quote from: tumr on May 16, 2007, 03:29:51 PM
Quote from: HookedOnWinter on May 16, 2007, 10:54:31 AM
SMF: 1.1.2
MediaWiki: 1.6.8
PHP: 4.3.11 (cgi-fcgi)

From hxxp:meta.wikimedia.org/wiki/SMF/Users_Integration [nonactive], it looks like you need to upgrade to MediaWiki version 1.9.2 for this to work properly.

I believe I need PHP 5 for 1.9... and GoDaddy only offers  PHP 4 to my knowledge. hmm....

Talisman

Quote from: tumr on May 16, 2007, 03:29:51 PM
Quote from: HookedOnWinter on May 16, 2007, 10:54:31 AM
SMF: 1.1.2
MediaWiki: 1.6.8
PHP: 4.3.11 (cgi-fcgi)

From http://meta.wikimedia.org/wiki/SMF/Users_Integration [nofollow], it looks like you need to upgrade to MediaWiki version 1.9.2 for this to work properly.

It's odd that that page indicates you need PHP 4.2+ when MW 1.9.2 requires PHP 5+

At any rate the SMF_Auth version 1.3 which seems to be the current download at the php|uber.leet site is the same one which is working properly on my system - PHP 4, MW 1.6.8, SMF 1.1.2.

I don't think your problem is version related.  If you want to be certain I can give you the copy of SMF_Auth I'm using.

jaybest

Just working through this myself...

I had the following error:

Unable to view external table
MySQL Error Number: 1146
MySQL Error Message: Table 'adslblog.smf_members' doesn't exist

Because I had a different SQL database prefix (the default is smf_) when I set this up.

Just rename the LocalSettings.php to reflect your nonstandard forum suffix. In my case it was dslforum_members.

$wgSMF_UserTB         = 'dslforum_members';        // Name of your SMF user table. (i.e. smf_members)
$wgSMF_GroupsTB       = 'dslforum_membergroups';   // Name of your SMF groups table. (i.e. smf_membergroups)


Also after I completed this fix, the next one I have is:

Unable to view external table
MySQL Error Number: 1267
MySQL Error Message: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (latin1_swedish_ci,EXPLICIT) for operation '='


So I will get onto that fix next..
it looks like there was a similar issue with the PHPBB <=>Wiki integration tools.
hxxp:mwusers.com/forums/showthread.php?t=2332 [nonactive]


TarantinoArchives

yeah u need to make sure all your stuff is UTF... unfortunately neither smf nor mediawiki are very user-friendly in helping you make sure all your back-end database stuff is stringently unicode

Advertisement: