85 lines
1.9 KiB
PHP
85 lines
1.9 KiB
PHP
<?php
|
|
/*
|
|
* Plugin Name: Akismet
|
|
* Plugin URI: https://www.flatpress.org
|
|
* Author: FlatPress
|
|
* Author URI: https://www.flatpress.org
|
|
* Description: Integration with Akismet powerful Antispam system. Part of the standard distribution.
|
|
* Version: 1.0
|
|
*/
|
|
define('AKISMET_TIMEOUT', 10);
|
|
|
|
require plugin_getdir('akismet') . '/inc/Akismet.class.php';
|
|
|
|
function plugin_akismet_setup() {
|
|
global $fp_config;
|
|
|
|
if (!plugin_getoptions('akismet', 'apikey')) {
|
|
return -1;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
if (plugin_getoptions('akismet', 'apikey')) {
|
|
add_filter('comment_validate', 'plugin_akismet_validate', 10, 2);
|
|
}
|
|
|
|
function plugin_akismet_validate($bool, $contents) {
|
|
if (!$bool)
|
|
return false;
|
|
|
|
global $fp_config;
|
|
|
|
$akismet = new Akismet($fp_config ['general'] ['www'], plugin_getoptions('akismet', 'apikey'));
|
|
$akismet->setAuthor($contents ['name']);
|
|
$akismet->setAuthorEmail(isset($contents ['email']) ? $contents ['email'] : '');
|
|
$akismet->setAuthorURL(isset($contents ['url']) ? $contents ['url'] : '');
|
|
$akismet->setContent($contents ['content']);
|
|
|
|
if ($v = $akismet->isSpam()) {
|
|
global $smarty;
|
|
$smarty->assign('error', array(
|
|
'ERROR: Comment is invalid'
|
|
));
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
if (class_exists('AdminPanelAction')) {
|
|
|
|
class admin_plugin_akismet extends AdminPanelAction {
|
|
|
|
var $langres = 'plugin:akismet';
|
|
|
|
function setup() {
|
|
$this->smarty->assign('admin_resource', "plugin:akismet/admin.plugin.akismet");
|
|
}
|
|
|
|
function main() {
|
|
$akismetconf = plugin_getoptions('akismet');
|
|
$this->smarty->assign('akismetconf', $akismetconf);
|
|
}
|
|
|
|
function onsubmit($data = null) {
|
|
global $fp_config;
|
|
|
|
if ($_POST ['wp-apikey']) {
|
|
|
|
plugin_addoption('akismet', 'apikey', $_POST ['wp-apikey']);
|
|
plugin_saveoptions('akismet');
|
|
|
|
$this->smarty->assign('success', 1);
|
|
} else {
|
|
$this->smarty->assign('success', -1);
|
|
}
|
|
|
|
return 2;
|
|
}
|
|
|
|
}
|
|
|
|
admin_addpanelaction('plugin', 'akismet', true);
|
|
}
|