Update of /cvsroot/php-blog/serendipity/plugins/serendipity_event_trackexits
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8379/plugins/serendipity_event_trackexits
Modified Files:
serendipity_event_trackexits.php
Log Message:
URL comment redirection
Index: serendipity_event_trackexits.php
===================================================================
RCS file: /cvsroot/php-blog/serendipity/plugins/serendipity_event_trackexits/serendipity_event_trackexits.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- serendipity_event_trackexits.php 13 Apr 2004 10:00:39 -0000 1.4
+++ serendipity_event_trackexits.php 11 May 2004 12:08:05 -0000 1.5
@@ -4,12 +4,16 @@
case 'de':
@define('PLUGIN_EVENT_TRACKBACK_NAME', 'Textformatierung: Externe Links zählen');
@define('PLUGIN_EVENT_TRACKBACK_DESC', 'Click auf Externe Links verfolgen');
+ @define('PLUGIN_EVENT_TRACKBACK_COMMENTREDIRECTION', 'URL von Kommentatoren maskieren? (s9y|google|none)');
+ @define('PLUGIN_EVENT_TRACKBACK_COMMENTREDIRECTION_BLAHBLA', 'Verhindert Spam-Missbrauch aber auch positiven Nutzen von Verlinkungen innerhalb Blogs. Wenn der Wert auf "s9y" gesetzt wird, werden interne Routinen zur Weiterleitung verwendet. Bei dem Wert "google" wird Google verwendet. Ein leerer Wert schaltet die Weiterleitung aus(Standard).');
break;
case 'en':
default:
@define('PLUGIN_EVENT_TRACKBACK_NAME', 'Markup: Track exits');
@define('PLUGIN_EVENT_TRACKBACK_DESC', 'Track clicks on external URLs');
+ @define('PLUGIN_EVENT_TRACKBACK_COMMENTREDIRECTION', 'Use URL-redirection for comment URLs? (s9y|google|none)');
+ @define('PLUGIN_EVENT_TRACKBACK_COMMENTREDIRECTION_BLAHBLA', 'Reduces Spam-Abuse but also disables positive effects of linking to the URL of a commenting user. If set to "s9y", the internal routines of s9y will redirect to the target page. If set to "google", the google-pagerank-deflector is used. An empty value disables this feature (default).');
break;
}
@@ -47,6 +51,7 @@
foreach($this->markup_elements as $element) {
$conf_array[] = $element['name'];
}
+ $conf_array[] = 'commentredirection';
$propbag->add('configuration', $conf_array);
}
@@ -57,9 +62,18 @@
function introspect_config_item($name, &$propbag)
{
- $propbag->add('type', 'boolean');
- $propbag->add('name', $name);
- $propbag->add('description', sprintf(APPLY_MARKUP_TO, $name));
+ switch($name) {
+ case 'commentredirection':
+ $propbag->add('type', 'string');
+ $propbag->add('name', PLUGIN_EVENT_TRACKBACK_COMMENTREDIRECTION);
+ $propbag->add('description', PLUGIN_EVENT_TRACKBACK_COMMENTREDIRECTION_BLAHBLA);
+ break;
+
+ default:
+ $propbag->add('type', 'boolean');
+ $propbag->add('name', $name);
+ $propbag->add('description', sprintf(APPLY_MARKUP_TO, $name));
+ }
return true;
}
@@ -82,6 +96,29 @@
array($this, '_encodeExitsCallback'),
$eventData[$element]
);
+
+ if ($temp['element'] == 'comment' && !empty($eventData['url'])) {
+ switch(trim($this->get_config('commentredirection'))) {
+ case 's9y':
+ $eventData['url'] = $this->_encodeExitsCallback(
+ array(
+ 1 => ' ',
+ 2 => '"',
+ 3 => $eventData['url'],
+ 4 => '"'
+ ),
+ true
+ );
+ break;
+
+ case 'google':
+ $eventData['url'] = 'http://www.google.com/url?sa=D&q=' . $eventData['url'];
+ break;
+
+ default:
+ break;
+ }
+ }
}
}
@@ -102,12 +139,21 @@
* Transforms '<a href="http://url/">' into
* '<a href="exit.php?url=encurl" ...>'.
*/
- function _encodeExitsCallback($buffer) {
+ function _encodeExitsCallback($buffer, $url_only = false) {
global $serendipity;
$entry_id = $serendipity['encodeExitsCallback_entry_id'];
$url = 'http://' . $buffer[3];
+ if ($url_only) {
+ return sprintf(
+ '%sexit.php?url=%s%s',
+ $serendipity['baseURL'],
+ base64_encode($buffer[3]),
+ ($entry_id != 0) ? '&entry_id=' . $entry_id : ''
+ );
+ }
+
return sprintf(
'<a%shref="%sexit.php?url=%s%s" title="%s" onmouseover="window.status=\'%s\';return true;" onmouseout="window.status=\'\';return true;"',
$buffer[1],
|