Extension:My blog/SpecialPageSubBlogs.php
From MediaWiki.org
The script is part of the My blog extension, go to My blog for full details on how to install this extension.
- Resolved Issue: Listed blog entries by title. It is now when the page was last touched.
<?php $wgExtensionFunctions[] = "loadSpecialListSubBlogs"; require_once("includes/SpecialPage.php"); class SpecialListSubBlogs extends SpecialPage { function SpecialListSubBlogs() { SpecialPage::SpecialPage('ListSubBlogs', '', false); $this->includable(true); } function execute( $parent = null ) { global $wgRequest, $wgOut, $wgUser; $wgOut->setArticleRelated( false ); $fname = 'listsubpages'; // Handle Errors $target = $this->including() ? $wgRequest->getVal( 'title' ) : (isset( $parent ) ? $parent : $wgRequest->getVal( 'target' )); if (is_null($target)) { $wgOut->errorpage( 'notargettitle', 'notargettext' ); return; } $target = Title::newFromURL( $target ); if( !$target ) { $wgOut->errorpage( 'notargettitle', 'notargettext' ); return; } $skin = $wgUser->getSkin(); if (!$this->including()) { // Start Page $wgOut->setPagetitle( $target->getPrefixedText() ); $wgOut->addHTML('< ' . $skin->makeKnownLinkObj($target, '', '' ) . "<br />\n"); } // Do query list($limit, $offset) = $wgRequest->getLimitOffset(); $dbr =& wfGetDB( DB_READ ); $result = $dbr->select( 'page' , array( 'page_namespace', 'page_title' ), array( 'page_namespace' => $target->getNamespace(), "page_title LIKE " . $dbr->addQuotes($target->getDbKey() . '/%') ), $fname, array( 'ORDER BY'=>'page_touched DESC','LIMIT' => "$offset,$limit" ) ); // Output results $wgOut->addWikiText('= ' . $target->getDbKey() . '\'s Blog ='); if ( 0 == $dbr->numRows( $result ) ) { $d = date( 'Y F d H:i:s T' ); if ($wgUser->getName() == $target->getDbKey()) { $wgOut->addWikiText('[[User:' . $wgUser->getName() . '/BlogEntry: ' . $d . ' | Add New Blog Entry]]'); } $wgOut->addWikiText("Currently No Blog Entries."); return; } $prevnext = wfViewPrevNext( $offset, $limit, $specialTitle, 'target=' . urlencode( $target->getPrefixedDbKey() ), ( $dbr->numRows( $res ) <= $limit ) ); $wgOut->addHTML( $prevnext ); $rows = array(); $d = date( 'Y F d H:i:s T' ); if ($wgUser->getName() == $target->getDbKey()) { $wgOut->addWikiText('[[User:' . $wgUser->getName() . '/BlogEntry: ' . $d . ' | Add New Blog Entry]]'); } while ($row = $dbr->fetchObject($result)) { if (ereg("BlogEntry",$row->page_title)) { $wgOut->addHTML('<table width=100% border=1 cellpadding=5 cellspacing=0 ><tr><td>'); $link = Title::makeTitle( $row->page_namespace, $row->page_title); list($user1,$date1) = explode("/BlogEntry:_",$row->page_title,2); $date1 = preg_replace('/_/', ' ', $date1); $wgOut->addHTML("<table width=100%><tr><td align=left><font size=4><a href=\"/wiki/index.php/User:". $row->page_title ."\">$date1</a></font><br>Posted By: <a href=\"/wiki/index.php/User:$user1\">$user1</a></td><td valign=top align=right><a href=\"/wiki/index.php/User_talk:". $row->page_title ."\">Discussion</a><br><a href=\"/wiki/index.php/Special:ListSubBlogs/User:$user1\">$user1's Blog</a><td></tr></table>"); $tempvalue = "{{:User:" . $row->page_title . "}}"; $wgOut->addWikiText($tempvalue); $wgOut->addHTML("<table width=100%><tr><td align=right>Blog Entry: ".$skin->makeKnownLinkObj($link)."</td></tr></table>"); $wgOut->addHTML('</td></tr></table><p>'); } } $dbr->freeResult($result); $wgOut->addHTML($prevnext); } } function loadSpecialListSubBlogs() { SpecialPage::addPage(new SpecialListSubBlogs); } ?>
- Smcnaught - I am also available on irc.chekmate.org #MediaWiki

