Difference between revisions of "Extension:EmailPage"
(newFromID not newFromDbKey) |
(only list subcats) |
||
| Line 54: | Line 54: | ||
while ($row = mysql_fetch_row($result)) { | while ($row = mysql_fetch_row($result)) { | ||
$t = Title::newFromID($row[0]); | $t = Title::newFromID($row[0]); | ||
| − | $cats .= "<option>$t</option>"; | + | if ($t->getNamespace() == NS_CATEGORY) $cats .= "<option>{$t->getText()}</option>"; |
} | } | ||
if ($cats) $wgOut->addHTML("From category: <select name=\"sf_cat\">$cats</select>"); | if ($cats) $wgOut->addHTML("From category: <select name=\"sf_cat\">$cats</select>"); | ||
Revision as of 04:19, 28 May 2007
<?php
- Extension:EmailArticle
- - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)
- - Author: User:NadCategory:Extensions created with Template:SpecialPage
- - See http://www.mediawiki.org/wiki/Extension:EmailArticle for installation and usage details
$wgShowExceptionDetails = true;
if (!defined('MEDIAWIKI')) die('Not an entry point.');
define('EMAILARTICLE_VERSION','0.0.0, 2007-05-25');
$wgEmailArticleGroup = 'postmaster'; # Users must belong to this group to send emails (empty string means anyone can send) $wgEmailArticleContactsCat = 'Contacts'; # This specifies the name of a category containing categories of contact articles
if ($wgEmailArticleGroup) $wgGroupPermissions['sysop'][$wgEmailArticleGroup] = true;
$wgExtensionFunctions[] = 'wfSetupEmailArticle';
$wgExtensionCredits['specialpage'][] = array( 'name' => 'Special:EmailArticle', 'author' => 'User:Nad', 'description' => 'Send rendered article to an email address or list of addresses', 'url' => 'http://www.mediawiki.org/wiki/Extension:EmailArticle', 'version' => EMAILARTICLE_VERSION );
require_once "$IP/includes/SpecialPage.php";
- Define a new class based on the SpecialPage class
class SpecialEmailArticle extends SpecialPage {
# Constructor function SpecialEmailArticle() { global $wgEmailArticleGroup; SpecialPage::SpecialPage('EmailArticle',$wgEmailArticleGroup); }
# Override SpecialPage::execute($param = ) function execute($param) { global $wgOut,$wgUser,$wgEmailArticleContactsCat; $title = Title::makeTitle(NS_SPECIAL,'EmailArticle'); if ($param == ) return $wgOut->addWikiText(wfMsg('ea_noarticle'));
$wgOut->addWikiText(wfMsg('ea_selectrecipients')); $wgOut->addHTML(wfElement('form',array('action' => $title->getLocalURL('action=submit'),'method' => 'POST'),null));
# If $wgEmailArticleContactsCat is set, create a select list of all categories if ($wgEmailArticleContactsCat) { $db =& wfGetDB(DB_SLAVE); $cl = $db->tableName('categorylinks'); $cats = ; $result = $db->query("SELECT cl_from FROM $cl WHERE cl_to = '$wgEmailArticleContactsCat' ORDER BY cl_sortkey"); while ($row = mysql_fetch_row($result)) { $t = Title::newFromID($row[0]); if ($t->getNamespace() == NS_CATEGORY) $cats .= "<option>{$t->getText()}</option>"; } if ($cats) $wgOut->addHTML("From category: <select name=\"sf_cat\">$cats</select>"); }
$wgOut->addHTML( '<textarea name="sf_list" cols=25 rows=10></textarea>' . wfElement('input',array('type' => 'submit')) . '</form>' ); }
}
- Called from $wgExtensionFunctions array when initialising extensions
function wfSetupEmailArticle() { global $wgLanguageCode,$wgMessageCache;
# Add the messages used by the specialpage if ($wgLanguageCode == 'en') { $wgMessageCache->addMessages(array( 'emailarticle' => 'EmailArticle', 'ea_noarticle' => "Please specify an article to send, for example Special:EmailArticle/Main Page.", 'ea_error' => "Error: $1", 'ea_ok' => "Article $1 sent successfully to $2 recipient$3", 'ea_selectrecipients' => "Select the recipients" )); }
# Add the specialpage to the environment SpecialPage::addPage(new SpecialEmailArticle()); } ?>



