public static function cleanMembers(\DataContainer $objDc)
 {
     $intPid = \Input::get('id');
     $blnIntroPrinted = false;
     if ($intPid && ($objArchive = SubmissionArchiveModel::findByPk($intPid)) !== null && $objArchive->memberGroups) {
         $arrArchiveGroups = deserialize($objArchive->memberGroups, true);
         if (!empty($arrArchiveGroups)) {
             if (($objMembers = \MemberModel::findAll()) !== null) {
                 while ($objMembers->next()) {
                     $arrGroups = deserialize($objMembers->groups, true);
                     if (count(array_intersect($arrGroups, $arrArchiveGroups)) > 0) {
                         // check for existing submissions
                         if (SubmissionModel::findBy('mid', $objMembers->id) === null) {
                             if (!$blnIntroPrinted) {
                                 echo $GLOBALS['TL_LANG']['tl_competition_submission']['cleanMembersIntro'] . '<br>';
                                 $blnIntroPrinted = true;
                             }
                             echo $objMembers->id . '<br>';
                             $objMembers->groups = serialize(array_diff($arrGroups, $arrArchiveGroups));
                             $objMembers->save();
                         }
                     }
                 }
             }
         }
     }
     die;
 }
<?php

define('COMPETITION_FILENAME_SUFFIX', '_judges');
/**
 * Back end modules
 */
array_insert($GLOBALS['BE_MOD'], 1, array('competition' => array('competition_submission' => array('tables' => array('tl_competition_submission_archive', 'tl_competition_submission'), 'icon' => 'system/modules/competition/assets/img/icon_submission.png', 'export' => \HeimrichHannot\Exporter\ModuleExporter::getBackendModule(), 'export_xls' => \HeimrichHannot\Exporter\ModuleExporter::getBackendModule(), 'clean_members' => array('HeimrichHannot\\Competition\\Competition', 'cleanMembers')), 'competition_review' => array('tables' => array('tl_competition_review_archive', 'tl_competition_review'), 'icon' => 'system/modules/competition/assets/img/icon_review.png', 'export' => \HeimrichHannot\Exporter\ModuleExporter::getBackendModule(), 'export_xls' => \HeimrichHannot\Exporter\ModuleExporter::getBackendModule()))));
/**
 * Hooks
 */
$GLOBALS['TL_HOOKS']['addCustomRegexp']['checkForDoubleReviewsBe'] = array('HeimrichHannot\\Competition\\Competition', 'checkForDoubleReviewsBe');
$GLOBALS['TL_HOOKS']['formHybridValidateFormField']['checkForDoubleReviewsFe'] = array('HeimrichHannot\\Competition\\Competition', 'checkForDoubleReviewsFe');
/**
 * Models
 */
$GLOBALS['TL_MODELS'][\HeimrichHannot\Competition\SubmissionModel::getTable()] = 'HeimrichHannot\\Competition\\SubmissionModel';
$GLOBALS['TL_MODELS'][\HeimrichHannot\Competition\SubmissionArchiveModel::getTable()] = 'HeimrichHannot\\Competition\\SubmissionArchiveModel';
$GLOBALS['TL_MODELS'][\HeimrichHannot\Competition\ReviewModel::getTable()] = 'HeimrichHannot\\Competition\\ReviewModel';
$GLOBALS['TL_MODELS'][\HeimrichHannot\Competition\ReviewArchiveModel::getTable()] = 'HeimrichHannot\\Competition\\ReviewArchiveModel';