Update of /cvsroot/php-blog/additional_plugins/serendipity_event_trackback
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17303
Added Files:
serendipity_event_trackback.php
Log Message:
New Plugin to control trackbacks
--- NEW FILE: serendipity_event_trackback.php ---
<?php # $Id: serendipity_event_trackback.php,v 1.1 2004/12/16 14:58:04 garvinhicking Exp $
switch ($serendipity['lang']) {
case 'de':
@define('PLUGIN_EVENT_TRACKBACK_TITLE', 'Trackbacks kontrollieren');
@define('PLUGIN_EVENT_TRACKBACK_DESC', 'Ermöglicht beim Anlegen eines Eintrages zu weiteren URLs Trackbacks zu schicken oder Trackbacks zu deaktivieren');
@define('PLUGIN_EVENT_TRACKBACK_ADDITIONAL', 'Weitere Links für Trackbacks (separiert mit ";") ');
break;
case 'en':
case 'es':
default:
@define('PLUGIN_EVENT_TRACKBACK_TITLE', 'Trackback-Control');
@define('PLUGIN_EVENT_TRACKBACK_DESC', 'Allows granular control over how trackbacks are sent when creating entries');
@define('PLUGIN_EVENT_TRACKBACK_ADDITIONAL', 'Additional links to trackback (separate with ";") ');
break;
}
class serendipity_event_trackback extends serendipity_event
{
var $title = PLUGIN_EVENT_TRACKBACK_TITLE;
function introspect(&$propbag)
{
global $serendipity;
$propbag->add('name', PLUGIN_EVENT_TRACKBACK_TITLE);
$propbag->add('description', PLUGIN_EVENT_TRACKBACK_DESC);
$propbag->add('stackable', false);
$propbag->add('author', 'Garvin Hicking');
$propbag->add('version', '1.0');
$propbag->add('event_hooks', array(
'backend_display' => true,
'backend_trackbacks' => true
));
}
function generate_content(&$title) {
$title = PLUGIN_EVENT_TRACKBACK_TITLE;
}
function event_hook($event, &$bag, &$eventData) {
global $serendipity;
$hooks = &$bag->get('event_hooks');
if (isset($hooks[$event])) {
switch($event) {
case 'backend_trackbacks':
if (!isset($serendipity['POST']['enable_trackback'])) {
$serendipity['noautodiscovery'] = true;
} else {
if (!empty($serendipity['POST']['additional_trackbacks'])) {
$trackbackURLs = explode(';', $serendipity['POST']['additional_trackbacks']);
foreach($trackbackURLs AS $trackbackURL) {
$trackbackURL = trim($trackbackURL);
if (!in_array($trackbackURL, $eventData)) {
$eventData[] = $trackbackURL;
}
}
}
}
return true;
break;
case 'backend_display':
$trackbackURLs = array();
if (isset($eventData['id']) && $eventData['id'] > 0) {
$urls = serendipity_db_query("SELECT link FROM {$serendipity['dbPrefix']}references WHERE entry_id = '". (int)$eventData['id'] ."'");
if (is_array($urls)) {
foreach($urls AS $row) {
$trackbackURLs[] = htmlspecialchars($row['link']);
}
}
}
if (isset($serendipity['POST']['additional_trackbacks'])) {
$additional_urls = explode(';', $serendipity['POST']['additional_trackbacks']);
foreach($additional_urls AS $additional_url) {
$additional_url = trim($additional_url);
if (!in_array($additional_url, $trackbackURLs)) {
$trackbackURLs[] = htmlspecialchars($additional_url);
}
}
}
$checkbox_trackback = (isset($serendipity['POST']['additional_trackbacks']) && !isset($serendipity['POST']['enable_trackback']) ? '' : 'checked="checked"');
?>
<fieldset style="margin: 5px">
<legend><?php echo PLUGIN_EVENT_TRACKBACK_TITLE; ?></legend>
<input type="checkbox" id="checkbox_enable_trackback" <?php echo $checkbox_trackback; ?> name="serendipity[enable_trackback]" value="true" /><label for="checkbox_enable_trackback"><?php echo ACTIVATE_AUTODISCOVERY; ?></label><br />
<br />
<label for="input_additional_trackbacks"><?php echo PLUGIN_EVENT_TRACKBACK_ADDITIONAL; ?></label><br />
<input type="text" id="input_additional_trackbacks" name="serendipity[additional_trackbacks]" value="<?php echo implode(';', $trackbackURLs); ?>" />
</fieldset>
<?php
return true;
break;
default:
return false;
break;
}
} else {
return false;
}
}
}
/* vim: set sts=4 ts=4 expandtab : */
?>
|