All pastes #410065 Raw Edit

Mailing List Plugin

public php v1 · immutable
#410065 ·published 2007-03-26 02:34 UTC
rendered paste body
<?phpclass MailingList extends Plugin{	public function info()	{		return array();	}	public function filter_rewrite_rules($rules) 	{		$rules[] = RewriteRule::create_url_rule('"mailinglist"/"ajax"/listname', 'MailinglistHandler', 'ml_add_ajax');		$rules[] = RewriteRule::create_url_rule('"mailinglist"/"install"', 'MailinglistHandler', 'ml_install');		$rules[] = RewriteRule::create_url_rule('"mailinglist"/"create"/listname', 'MailinglistHandler', 'ml_create');		$rule = RewriteRule::create_url_rule('"mailinglist"/listname', 'MailinglistHandler', 'ml_add');		$rule->priority = 8;		$rules[] = $rule;		return $rules;	}}class MailinglistHandler extends ActionHandler{	public function __construct()	{		DB::register_table('mailinglist');	}		private function add_to_list()	{		$lists = DB::get_column('SELECT DISTINCT list FROM ' . DB::table('mailinglist'));				$list = $this->handler_vars['listname'];		$email = $this->handler_vars['email'];		if(in_array($list, $lists)) {			return DB::query('INSERT INTO ' . DB::table('mailinglist') . ' (list, email) VALUES (?,?)', array($list, $email));		}		return false;	}		public function act_ml_add()	{		$msg = $this->add_to_list() ? 'listok' : 'listerr';		Utils::redirect(URL::get('index_page', array('msg'=>$msg)));	}		public function act_ml_add_ajax( )	{		$msg = $this->add_to_list() ? 'Your email has been added to the list.  Thank you!' : 'There was a problem adding your email to the list.  Please try again later.';		echo $msg;		exit;			}		public function act_ml_install() 	{		if(User::identify()) {			error_reporting(E_ALL);			//$drop = DB::query("DROP TABLE ". DB::table('mailinglist') ."");			$install = DB::query("CREATE TABLE ". DB::table('mailinglist') ." (			`list` varchar(255) NOT NULL default '',			`email` varchar(255) NOT NULL default '',			`added` timestamp NOT NULL default CURRENT_TIMESTAMP			)");			Utils::debug($install);			exit;		}		die('You do not have access for this.');	}		public function act_ml_create() 	{		if(User::identify()) {			Utils::debug(DB::query('INSERT INTO ' . DB::table('mailinglist') . ' (list) VALUES (?)', array($this->handler_vars['listname'])));			exit;		}		Utils::redirect(URL::get('index_page', 'msg=error'));	}}?>