Wednesday, 15 September 2010

Enable a mediawiki function to render wikitext -



Enable a mediawiki function to render wikitext -

my mediawiki version 1.16.5. have function selects random quote database , displays on wiki page. italics , bold rendered when utilize html, however, want able utilize wikitext, external links format, i.e.

[http://mediawiki.org mediawiki]

currently, if using above, not rendered , displays literally. there reference on needed here: http://www.mediawiki.org/wiki/manual:tag_extensions#how_do_i_render_wikitext_in_my_extension.3f not know how implement this.

here code:

function wfgetquote() { $randstr = wfrandom(); $row = selectrandomquotefromdb( $randstr ); if( !$row ) $row = selectrandomquotefromdb( "0" ); if( $row ) { list( $quote, $attribution ) = explode( "\n", $row->quote_text ); homecoming '<div id="trrandomquote"><div id="trquote">'. $quote .'</div> <span>'. $attribution .'</span></div>'; } else homecoming 'error: no quote found'; } function selectrandomquotefromdb( $randstr ) { global $wguser, $site; $lang = $wguser->getoption( 'language' ); if( $site == 'wiki' ) $lang = 'en'; $dbr = wfgetdb( db_slave ); $use_index = $dbr->useindexclause( 'quote_random' ); $quote = $dbr->tablename( 'quote' ); $sql = "select quote_text $quote $use_index quote_random >= $randstr , quote_lang = '$lang'"; $sql = $dbr->limitresult( $sql, 1, 0 ); $fname = 'randomquote::selectrandomquotefromdb'; $res = $dbr->query( $sql, $fname ); homecoming $dbr->fetchobject( $res ); }

normally utilize $wgout->addwikitext( $msg ); function.

i modify code to:

function wfgetquote() { global $wgout; // added line $randstr = wfrandom(); $row = selectrandomquotefromdb( $randstr ); if( !$row ) $row = selectrandomquotefromdb( "0" ); if( $row ) { list( $quote, $attribution ) = explode( "\n", $row->quote_text ); $wgout->addwikitext( '<div id="trrandomquote"><div id="trquote">'. $quote .'</div> <span>'. $attribution .'</span></div>' ); } else homecoming 'error: no quote found'; }

i haven't tested it, may job you're looking for.

mediawiki

No comments:

Post a Comment