PHP Classes

File: htdocs/modules/pm/admin/prune.php

Recommend this page to a friend!
  Classes of Michael Beck   Xoops 2.5   htdocs/modules/pm/admin/prune.php   Download  
File: htdocs/modules/pm/admin/prune.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Xoops 2.5
Modular content management publication system
Author: By
Last change:
Date: 7 years ago
Size: 3,801 bytes
 

Contents

Class file image Download
<?php
/**
 * Private message
 *
 * You may not change or alter any portion of this comment or credits
 * of supporting developers from this source code or any supporting source code
 * which is considered copyrighted (c) material of the original comment or credit authors.
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * @copyright (c) 2000-2016 XOOPS Project (www.xoops.org)
 * @license GNU GPL 2 (http://www.gnu.org/licenses/gpl-2.0.html)
 * @package pm
 * @since 2.3.0
 * @author Jan Pedersen
 * @author Taiwen Jiang <[email protected]>
 */
include_once __DIR__ . '/admin_header.php';
xoops_cp_header();

$indexAdmin = new ModuleAdmin();
echo
$indexAdmin->addNavigation(basename(__FILE__));

$op = isset($_REQUEST['op']) ? $_REQUEST['op'] : 'form';
$pm_handler = xoops_getModuleHandler('message');

switch (
$op) {
    default:
    case
'form':
       
$form = $pm_handler->getPruneForm();
       
$form->display();
        break;

    case
'prune':
       
$criteria = new CriteriaCompo();
        if (
$_REQUEST['after']['date'] && $_REQUEST['after']['date'] !== 'YYYY/MM/DD') {
           
$criteria->add(new Criteria('msg_time', strtotime($_REQUEST['after']['date']) + (int)$_REQUEST['after']['time'], '>'));
        }
        if (
$_REQUEST['before']['date'] && $_REQUEST['before']['date'] !== 'YYYY/MM/DD') {
           
$criteria->add(new Criteria('msg_time', strtotime($_REQUEST['before']['date']) + (int)$_REQUEST['before']['time'], '<'));
        }
        if (isset(
$_REQUEST['onlyread']) && $_REQUEST['onlyread'] == 1) {
           
$criteria->add(new Criteria('read_msg', 1));
        }
        if (!isset(
$_REQUEST['includesave']) || $_REQUEST['includesave'] == 0) {
           
$savecriteria = new CriteriaCompo(new Criteria('to_save', 0));
           
$savecriteria->add(new Criteria('from_save', 0));
           
$criteria->add($savecriteria);
        }
        if (isset(
$_REQUEST['notifyusers']) && $_REQUEST['notifyusers'] == 1) {
           
$notifycriteria = $criteria;
           
$notifycriteria->add(new Criteria('to_delete', 0));
           
$notifycriteria->setGroupBy('to_userid');
           
// Get array of uid => number of deleted messages
           
$uids = $pm_handler->getCount($notifycriteria);
        }
       
$deletedrows = $pm_handler->deleteAll($criteria);
        if (
$deletedrows === false) {
           
redirect_header('prune.php', 2, _PM_AM_ERRORWHILEPRUNING);
        }
        if (isset(
$_REQUEST['notifyusers']) && $_REQUEST['notifyusers'] == 1) {
           
$errors = false;
            foreach (
$uids as $uid => $messagecount) {
               
$pm = $pm_handler->create();
               
$pm->setVar('subject', $GLOBALS['xoopsModuleConfig']['prunesubject']);
               
$pm->setVar('msg_text', str_replace('{PM_COUNT}', $messagecount, $GLOBALS['xoopsModuleConfig']['prunemessage']));
               
$pm->setVar('to_userid', $uid);
               
$pm->setVar('from_userid', $GLOBALS['xoopsUser']->getVar('uid'));
               
$pm->setVar('msg_time', time());
                if (!
$pm_handler->insert($pm)) {
                   
$errors = true;
                   
$errormsg[] = $pm->getHtmlErrors();
                }
                unset(
$pm);
            }
            if (
$errors === true) {
                echo
implode('<br>', $errormsg);
               
xoops_cp_footer();
                exit();
            }
        }
       
redirect_header('admin.php', 2, sprintf(_PM_AM_MESSAGESPRUNED, $deletedrows));
        break;
}
include_once
__DIR__ . '/admin_footer.php';
//xoops_cp_footer();