Archive for 25 February 2005
25 February
/* 0.1 - initial release 0.2 - new option: rewrite mail addresses with [at] and [dot] 0.3 - userdefined placeholders for [at] and [dot] 0.4 - new option: links can be open in new window (default: off) 0.5 - support for SqlTablePrefix */ class NP_AutoLink extends NucleusPlugin { function getName() { return 'AutoLink'; } function getAuthor() { return 'Kai Greve'; } function getURL() { return 'http://kgblog.de/'; } function getVersion() { return '0.5'; } function getDescription() { return 'Automatically creates links for internet and mail addresses'; } function install() { $this->createOption('InternetAddress','Automatically create links for internet addresses ?','yesno','yes'); $this->createOption('NewWindow','Open links in a new window?','yesno','no'); $this->createOption('MailAddress','Automatically create links for mail addresses ?','yesno','yes'); $this->createOption('RewriteMailAddress','Rewrite mail addresses with [at] and [dot]?','yesno','yes'); $this->createOption('at','Placeholder for @','text','[at]'); $this->createOption('dot','Placeholder for .','text','[dot]'); } function getEventList() { return array('PreItem', 'PreComment'); } function Treatment($_text) { global $CONF, $blog; if ($this->getOption('NewWindow') == 'yes') { $nw="onclick=\"javascript:window.open(this.href, '_blank'); return false;\""; } if ($this->getOption('InternetAddress') == 'yes') { $_text = preg_replace('/(\s)([http|https|ftp|file]+:\/\/[a-zA-Z0-9_?=&%;+-.\/]*)/si','\1\2',$_text); $_text = preg_replace('/(\s)(www\.[a-zA-Z0-9_?=&%;+-.\/]*)/si','\1\2',$_text); } $at = $this->getOption('at'); $dot = $this->getOption('dot'); if ($this->getOption('MailAddress') == 'yes') { if ($this->getOption('RewriteMailAddress') == 'no') { $_text = preg_replace('/(\s)([a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+\.[a-zA-Z]{2,5})/s','\1\2',$_text); } else { $_text = preg_replace('/(\s)([a-zA-Z0-9\._-]+)@([a-zA-Z0-9\._-]+)\.([a-zA-Z]{2,5})/s','\1\2'.$at.'\3'.$dot.'\4',$_text); } } if ($this->getOption('MailAddress') == 'no' && $this->getOption('RewriteMailAddress') == 'yes'){ $_text = preg_replace('/(\s)([a-zA-Z0-9\._-]+)@([a-zA-Z0-9\._-]+)\.([a-zA-Z]{2,5})/s','\1\2'.$at.'\3'.$dot.'\4',$_text); } return $_text; } function event_PreItem($_data) { $_data[item]->body = $this->Treatment($_data[item]->body); $_data[item]->more = $this->Treatment($_data[item]->more); } function event_PreComment($_data) { $_data['comment']['body'] = $this->Treatment($_data['comment']['body']); } function supportsFeature ($what) { switch ($what) { case 'SqlTablePrefix': return 1; default: return 0; } } } ?>BackTracking sollte nun gehen
Sooo ... nachdem der Andrej mir eines auf die Mütze gegeben hat, dass ich mich gefälligst mal um die ganzen Fachbegriffe zu kümmern habe, finde ich TrackBack auch toll.Einfach Flattrn wenn es gefällt - Danke.