<?php
//
// Settings page
//
function spam_trigger_showpage(){
global $db, $main_smarty, $the_template;
include_once('config.php');
include_once(mnminclude.'html1.php');
include_once(mnminclude.'link.php');
include_once(mnminclude.'tags.php');
include_once(mnminclude.'smartyvariables.php');
$main_smarty = do_sidebar($main_smarty);
force_authentication();
$canIhaveAccess = 0;
$canIhaveAccess = $canIhaveAccess + checklevel('god');
if($canIhaveAccess == 1)
{
// Save settings
if ($_POST['submit'])
{
misc_data_update('spam_trigger_light', sanitize($_REQUEST['spam_light'], 3));
misc_data_update('spam_trigger_medium', sanitize($_REQUEST['spam_medium'], 3));
misc_data_update('spam_trigger_hard', sanitize($_REQUEST['spam_hard'], 3));
header("Location: ".my_pligg_base."/module.php?module=spam_trigger");
die();
}
// breadcrumbs
$navwhere['text1'] = $main_smarty->get_config_vars('PLIGG_Visual_Header_AdminPanel');
$navwhere['link1'] = getmyurl('admin', '');
$navwhere['text2'] = "Modify spam_trigger";
$navwhere['link2'] = my_pligg_base . "/module.php?module=spam_trigger";
$main_smarty->assign('navbar_where', $navwhere);
$main_smarty->assign('posttitle', " / " . $main_smarty->get_config_vars('PLIGG_Visual_Header_AdminPanel'));
define('modulename', 'spam_trigger');
$main_smarty->assign('modulename', modulename);
define('pagename', 'admin_modifyspam_trigger');
$main_smarty->assign('pagename', pagename);
$main_smarty->assign('settings', str_replace('"','"',get_spam_trigger_settings()));
$main_smarty->assign('places',$spam_trigger_places);
$main_smarty->assign('tpl_center', spam_trigger_tpl_path . 'spam_trigger_main');
$main_smarty->display($template_dir . '/admin/admin.tpl');
}
else
{
header("Location: " . getmyurl('login', $_SERVER['REQUEST_URI']));
}
}
function spam_trigger_editlink()
{
global $db, $current_user, $linkres;
if (checklevel('god') || checklevel('admin')) return;
if (!is_numeric($_POST['id'])) return;
$settings = get_spam_trigger_settings();
$str = $_POST['title']."\n".$_POST['bodytext']."\n".$_POST['summarytext']."\n".$_POST['tags'];
// Killspam user
if ($settings['spam_hard'] && !spam_trigger_check($str, $settings['spam_hard']))
{
$_SESSION['spam_trigger_story_error'] = 'deleted';
spam_trigger_killspam($current_user->user_id);
}
// discard story
elseif ($settings['spam_medium'] && !spam_trigger_check($str, $settings['spam_medium']))
{
$_SESSION['spam_trigger_story_error'] = 'discarded';
$linkres->status = 'discard';
}
// set status to moderated
elseif ($settings['spam_light'] && !spam_trigger_check($str, $settings['spam_light']))
{
$_SESSION['spam_trigger_story_error'] = 'moderated';
$linkres->status = 'moderated';
}
}
function spam_trigger_do_submit3($vars)
{
global $db, $current_user;
if (checklevel('god') || checklevel('admin')) return;
$linkres = $vars['linkres'];
if (!$linkres->id) return;
$settings = get_spam_trigger_settings();
$str = $linkres->title."\n".$linkres->content."\n".$linkres->link_summary."\n".$linkres->tags;
// Killspam user
if ($settings['spam_hard'] && !spam_trigger_check($str, $settings['spam_hard']))
{
$_SESSION['spam_trigger_story_error'] = 'deleted';
spam_trigger_killspam($current_user->user_id);
}
// discard story
elseif ($settings['spam_medium'] && !spam_trigger_check($str, $settings['spam_medium']))
{
$_SESSION['spam_trigger_story_error'] = 'discarded';
$linkres->status = 'discard';
}
// set status to moderated
elseif ($settings['spam_light'] && !spam_trigger_check($str, $settings['spam_light']))
{
$_SESSION['spam_trigger_story_error'] = 'moderated';
$linkres->status = 'moderated';
}
}
function spam_trigger_comment($vars)
{
global $db, $current_user;
$settings = get_spam_trigger_settings();
$str = $_POST['comment_content'];
// Killspam user
if ($settings['spam_hard'] && !spam_trigger_check($str, $settings['spam_hard']))
{
$_SESSION['spam_trigger_story_error'] = 'deleted';
spam_trigger_killspam($current_user->user_id);
$vars['error'] = 1;
}
// delete comment
elseif ($settings['spam_medium'] && !spam_trigger_check($str, $settings['spam_medium']))
{
$_SESSION['spam_trigger_story_error'] = 'deleted';
$vars['error'] = 1;
}
// set status to moderated
elseif ($settings['spam_light'] && !spam_trigger_check($str, $settings['spam_light']))
{
$_SESSION['spam_trigger_comment_error'] = 'moderated';
$vars['status'] = 'moderated';
}
}
function spam_trigger_killspam($id)
{
global $db;
# include_once(mnminclude.'link.php');
# include_once(mnminclude.'votes.php');
$db->query('UPDATE `' . table_users . "` SET user_enabled=0, `user_pass` = '63205e60098a9758101eeff9df0912ccaaca6fca3e50cdce3', user_level='Spammer' WHERE `user_id` = $id");
$db->query('UPDATE `' . table_links . '` SET `link_status` = "discard" WHERE `link_author` = "'.$id.'"');
$results = $db->get_results("SELECT comment_id, comment_link_id FROM `" . table_comments . "` WHERE `comment_user_id` = $id");
if ($results)
foreach ($results as $result)
{
$comment_id = $result->comment_id;
$db->query('DELETE FROM `' . table_comments . '` WHERE `comment_id` = "'.$comment_id.'"');
$db->query('DELETE FROM `' . table_comments . '` WHERE `comment_parent` = "'.$comment_id.'"');
$link = new Link;
$link->id=$result->comment_link_id;
$link->read();
$link->recalc_comments();
$link->store();
}
$results = $db->get_results("SELECT vote_id,vote_link_id FROM `" . table_votes . "` WHERE `vote_user_id` = $id");
if ($results)
foreach ($results as $result)
{
$db->query('DELETE FROM `' . table_votes . '` WHERE `vote_id` = "'.$result->vote_id.'"');
$link = new Link;
$link->id=$result->vote_link_id;
$link->read();
$vote = new Vote;
$vote->type='links';
$vote->link=$result->vote_link_id;
if(Voting_Method == 1){
$link->votes=$vote->count();
$link->reports = $link->count_all_votes("<0");
} elseif(Voting_Method == 2) {
$link->votes=$vote->rating();
$link->votecount=$vote->count();
$link->reports = $link->count_all_votes("<0");
}
$link->store_basic();
$link->check_should_publish();
}
$db->query('DELETE FROM `' . table_saved_links . '` WHERE `saved_user_id` = "'.$id.'"');
$db->query('DELETE FROM `' . table_trackbacks . '` WHERE `trackback_user_id` = "'.$id.'"');
$db->query('DELETE FROM `' . table_friends . '` WHERE `friend_id` = "'.$id.'"');
$db->query('DELETE FROM `' . table_messages . "` WHERE `sender`=$id OR `receiver`=$id");
}
function spam_trigger_check($text, $wordlist)
{
$words = explode("\n",$wordlist);
foreach ($words as $word)
{
$word = trim(str_replace("\r","",$word));
if (strlen($word) && preg_match('/(^|[^\w])('.$word.')($|[^\w])/i',$text))
return false;
}
return true;
}
//
// Read module settings
//
function get_spam_trigger_settings()
{
return array(
'spam_light' => get_misc_data('spam_trigger_light'),
'spam_medium' => get_misc_data('spam_trigger_medium'),
'spam_hard' => get_misc_data('spam_trigger_hard')
);
}
?>