[Mediawiki-l] Re: Creating a new article from a from

Jamie Bliss astronouth7303 at gmail.com
Sat Oct 15 17:17:14 UTC 2005


Harris, Mike wrote:
> I am trying to create a new article eventually from a form you would
> fill out.  The contents of the form would then be part of the article
> which you could edit.  

You are aware of [[m:Help:Inputbox]] 
<http://meta.wikimedia.org/wiki/Help:Inputbox>, correct?

> At this point all I want to do is create a new article with the name I
> specify.  I am trying to use the Article and Title classes and use the
> function insertNewArticle(***)  to accomplish this, but I keep getting
> database insert errors:
> 
> Here is my sample code:
> 
>      $myTitle = new Title("Change Control Test");
>      $myArticle = new Article($myTitle);
>      $myArticle->onArticleCreate($myTitle);
>      $myArticle->insertNewArticle( "A test article", "Just Testing", FALSE, FALSE );

Do you have code to check that the user is actually allowed to create 
the article? Article::insertNewArticle() doesn't do this (in 1.5 or 1.4).

> And the error: 
> 
> A database error has occurred
> Query: INSERT INTO `cur`
> (cur_id,cur_namespace,cur_title,cur_text,cur_comment,cur_user,cur_timest
> amp,cur_minor_edit,cur_counter,cur_restrictions,cur_user_text,cur_is_red
> irect,cur_is_new,cur_random,cur_touched,inverse_timestamp) VALUES
> (NULL,'0','','A test article','Just
> Testing','1','20051013212242','0','0','','Mharris','0','1','0.0116757728
> 88','20051013212242','79948986787757')
> Function: Article::insertNewArticle
> Error: 1062 Duplicate entry '0-' for key 2 (localhost)

The sound of the error would indicate that you already have an article 
by that name (ie, your extension should check if the article exists 
before working). I also noticed that the cur_title is '' (empty string), 
so the article will likely be inaccessable.

> Backtrace:
> 
> *	GlobalFunctions.php line 524 calls wfBacktrace()
> *	Database.php line 383 calls wfDebugDieBacktrace()
> *	Database.php line 333 calls Database::reportQueryError()
> *	Database.php line 911 calls Database::query()
> *	Article.php line 885 calls Database::insert()
> *	ChangeControlExtension.php line 30 calls
> Article::insertNewArticle()
> *	ChangeControlExtension.php line 45 calls
> ChangeControlPage::ChangeControlPage()
> *	Setup.php line 381 calls wfChangeControlExtension()
> *	index.php line 26 calls require_once()

Is ChangeControlExtension.php your thing?

> What is the best way to create a new article from an extension?  I am
> using mediaiwiki 1.4.10.  

The EditPage class if you really feel like having kludges and hacks around.

-- Jamie
-------------------------------------------------------------------
http://endeavour.zapto.org/astro73/
Thank you to JosephM for inviting me to Gmail!
Have lots of invites. Gmail now has 2GB.




More information about the MediaWiki-l mailing list