mambax7/tdmdownloads

View on GitHub
admin/broken.php

Summary

Maintainability
A
55 mins
Test Coverage
<?php

declare(strict_types=1);

/**
 * TDMDownload
 *
 * 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   Gregory Mage (Aka Mage)
 * @license     GNU GPL 2 (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
 * @author      Gregory Mage (Aka Mage)
 */

use Xmf\Module\Admin;
use XoopsModules\Tdmdownloads\Helper;

require __DIR__ . '/admin_header.php';
// Template
$templateMain = 'tdmdownloads_admin_broken.tpl';
$helper = Helper::getInstance();
//On recupere la valeur de l'argument op dans l'URL$
$op = \Xmf\Request::getCmd('op', 'list');
//Les valeurs de op qui vont permettre d'aller dans les differentes parties de la page
switch ($op) {
    // Vue liste
    case 'list':
        //Affichage de la partie haute de l'administration de Xoops
        xoops_cp_header();
        $adminObject = Admin::getInstance();
        $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation(basename(__FILE__)));
        $criteria = new \CriteriaCompo();
        if (\Xmf\Request::hasVar('limit', 'REQUEST')) {
            $criteria->setLimit(\Xmf\Request::getInt('limit', 0, 'REQUEST'));
            $limit = \Xmf\Request::getInt('limit', 0, 'REQUEST');
        } else {
            $criteria->setLimit($helper->getConfig('perpageadmin'));
            $limit = $helper->getConfig('perpageadmin');
        }
        if (\Xmf\Request::hasVar('start', 'REQUEST')) {
            $criteria->setStart(\Xmf\Request::getInt('start', 0, 'REQUEST'));
            $start = \Xmf\Request::getInt('start', 0, 'REQUEST');
        } else {
            $criteria->setStart(0);
            $start = 0;
        }
        $criteria->setSort('reportid');
        $criteria->setOrder('ASC');
        //pour faire une jointure de table
        $brokenHandler->table_link   = $brokenHandler->db->prefix('tdmdownloads_downloads'); // Nom de la table en jointure
        $brokenHandler->field_link   = 'lid'; // champ de la table en jointure
        $brokenHandler->field_object = 'lid'; // champ de la table courante
        $brokenArray                 = $brokenHandler->getByLink($criteria);
        $numrows                     = $brokenHandler->getCount($criteria);
        $pagenav                     = '';
        if ($numrows > $limit) {
            $pagenav = new \XoopsPageNav($numrows, $limit, $start, 'start', 'op=list&limit=' . $limit);
            $pagenav = $pagenav->renderNav(4);
        }
        //Affichage du tableau des téléchargements brisés
        if ($numrows > 0) {
            $GLOBALS['xoopsTpl']->assign('broken_count', $numrows);
            $broken = [];
            foreach (array_keys($brokenArray) as $i) {
                /** @var \XoopsModules\Tdmdownloads\Broken[] $brokenArray */
                $broken = [
                    'lid'      => $brokenArray[$i]->getVar('lid'),
                    'reportid' => $brokenArray[$i]->getVar('reportid'),
                    'title'    => $brokenArray[$i]->getVar('title'),
                    'cid'      => $brokenArray[$i]->getVar('cid'),
                    'sender'   => \XoopsUser::getUnameFromId($brokenArray[$i]->getVar('sender')),
                    'ip'       => $brokenArray[$i]->getVar('ip'),
                ];
                $GLOBALS['xoopsTpl']->append('broken_list', $broken);
                unset($broken);
            }
        } else {
            $GLOBALS['xoopsTpl']->assign('message_erreur', _AM_TDMDOWNLOADS_ERREUR_NOBROKENDOWNLOADS);
        }
        break;
    // permet de suprimmer le rapport de téléchargment brisé
    case 'del_brokendownloads':
        $obj = $brokenHandler->get(\Xmf\Request::getInt('broken_id', 0, 'REQUEST'));
        if (\Xmf\Request::hasVar('ok', 'REQUEST') && 1 == \Xmf\Request::getInt('ok', 0, 'REQUEST')) {
            if (!$GLOBALS['xoopsSecurity']->check()) {
                redirect_header('downloads.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
            }
            if ($brokenHandler->delete($obj)) {
                redirect_header('broken.php', 1, _AM_TDMDOWNLOADS_REDIRECT_DELOK);
            }
            $GLOBALS['xoopsTpl']->assign('message_erreur', $obj->getHtmlErrors());
        } else {
            //Affichage de la partie haute de l'administration de Xoops
            xoops_cp_header();
            $adminObject = Admin::getInstance();
            $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('broken.php'));
            $adminObject->addItemButton(_MI_TDMDOWNLOADS_ADMENU4, 'broken.php?op=list', 'list');
            $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left'));
            xoops_confirm(['ok' => 1, 'broken_id' => \Xmf\Request::getInt('broken_id', 0, 'REQUEST'), 'op' => 'del_brokendownloads'], $_SERVER['REQUEST_URI'], _AM_TDMDOWNLOADS_BROKEN_SURDEL . '<br>');
        }
        break;
}
// Local icons path
if (is_object($helper->getModule())) {
    $pathModIcon16 = $helper->getModule()->getInfo('modicons16');
    $pathModIcon32 = $helper->getModule()->getInfo('modicons32');
    $GLOBALS['xoopsTpl']->assign('pathModIcon16', XOOPS_URL . '/modules/' . $moduleDirName . '/' . $pathModIcon16);
    $GLOBALS['xoopsTpl']->assign('pathModIcon32', $pathModIcon32);
}
//Affichage de la partie basse de l'administration de Xoops
require_once __DIR__ . '/admin_footer.php';