4 * @addtogroup SpecialPage
9 * @addtogroup SpecialPage
11 class ProtectedPagesPage
extends PageQueryPage
{
14 return "Protectedpages";
17 function getPageHeader() {
18 return '<p>' . wfMsg('protectedpagestext') . '</p>';
22 * LEFT JOIN is expensive
26 function isExpensive( ) {
30 function isSyndicated() { return false; }
35 function sortDescending() {
40 * @return string an sqlquery
43 $dbr =& wfGetDB( DB_SLAVE
);
44 list( $page, $page_restrictions ) = $dbr->tableNamesN( 'page', 'page_restrictions' );
45 return "SELECT DISTINCT page_id, 'Protectedpages' as type, page_namespace AS namespace, page_title as title, " .
46 "page_title AS value, pr_level " .
47 "FROM $page LEFT JOIN $page_restrictions ON page_id = pr_page WHERE pr_level IS NOT NULL ";
51 * Make link to the page, and add the protection levels.
53 * @param $skin Skin to be used
54 * @param $result Result row
57 function formatResult( $skin, $result ) {
59 $title = Title
::makeTitleSafe( $result->namespace, $result->title
);
60 $link = $skin->makeLinkObj( $title );
62 $protType = wfMsg( 'restriction-level-' . $result->pr_level
);
64 return wfSpecialList( $link, $protType );
71 function wfSpecialProtectedpages() {
73 list( $limit, $offset ) = wfCheckLimits();
75 $depp = new ProtectedPagesPage();
77 Title
::purgeExpiredRestrictions();
79 return $depp->doQuery( $offset, $limit );