function showOverview()
 {
     global $_ARRAYLANG, $_CORELANG;
     $this->_objTpl->setTemplate($this->pageContent, true, true);
     $intCmdFormId = 0;
     $bolFormUseCategory = false;
     $bolFormUseLevel = false;
     //search existing category&level blocks
     $arrExistingBlocks = array();
     for ($i = 1; $i <= 10; $i++) {
         if ($this->_objTpl->blockExists($this->moduleNameLC . 'CategoriesLevels_row_' . $i)) {
             array_push($arrExistingBlocks, $i);
         }
     }
     //get ids
     if (isset($_GET['cmd'])) {
         $arrIds = explode("-", $_GET['cmd']);
     }
     if ($this->arrSettings['settingsShowLevels'] == 1) {
         if (intval($arrIds[0]) != 0) {
             $intLevelId = intval($arrIds[0]);
         } else {
             $intLevelId = 0;
         }
         $intLevelId = isset($_GET['lid']) ? intval($_GET['lid']) : $intLevelId;
         if (!empty($arrIds[1])) {
             $intCategoryCmd = $arrIds[1];
         } else {
             $intCategoryCmd = 0;
         }
     } else {
         $intLevelId = 0;
         if (intval($arrIds[0]) != 0) {
             $intCategoryCmd = $arrIds[0];
         } else {
             $intCategoryCmd = 0;
         }
     }
     if ($intCategoryCmd != 0) {
         $intCategoryId = intval($intCategoryCmd);
     } else {
         $intCategoryId = 0;
     }
     $intCategoryId = isset($_GET['cid']) ? intval($_GET['cid']) : $intCategoryId;
     // show block {$this->moduleNameLC}Overview
     if (empty($intCategoryId) && empty($intLevelId) && $this->_objTpl->blockExists($this->moduleNameLC . 'Overview')) {
         $this->_objTpl->touchBlock($this->moduleNameLC . 'Overview');
     }
     //get navtree
     if ($this->_objTpl->blockExists($this->moduleNameLC . 'Navtree') && ($intCategoryId != 0 || $intLevelId != 0)) {
         $this->getNavtree($intCategoryId, $intLevelId);
     }
     //get searchform
     if ($this->_objTpl->blockExists($this->moduleNameLC . 'Searchform')) {
         $objSearch = new MediaDirectorySearch($this->moduleName);
         $objSearch->getSearchform($this->_objTpl, 1);
     }
     //get level / category details
     if ($this->_objTpl->blockExists($this->moduleNameLC . 'CategoryLevelDetail')) {
         if ($intCategoryId == 0 && $intLevelId != 0 && $this->arrSettings['settingsShowLevels'] == 1) {
             $objLevel = new MediaDirectoryLevel($intLevelId, null, 0, $this->moduleName);
             $objLevel->listLevels($this->_objTpl, 5, $intLevelId);
         }
         if ($intCategoryId != 0) {
             $objCategory = new MediaDirectoryCategory($intCategoryId, null, 0, $this->moduleName);
             $objCategory->listCategories($this->_objTpl, 5, $intCategoryId);
         }
     }
     //check form cmd
     if (!empty($_GET['cmd']) && $arrIds[0] != 'search') {
         $arrFormCmd = array();
         $objForms = new MediaDirectoryForm(null, $this->moduleName);
         foreach ($objForms->arrForms as $intFormId => $arrForm) {
             if (!empty($arrForm['formCmd'])) {
                 $arrFormCmd[$arrForm['formCmd']] = intval($intFormId);
             }
         }
         if (!empty($arrFormCmd[$_GET['cmd']])) {
             $intCmdFormId = intval($arrFormCmd[$_GET['cmd']]);
         }
     }
     //list levels / categories
     if ($this->_objTpl->blockExists($this->moduleNameLC . 'CategoriesLevelsList')) {
         if ($intCmdFormId != 0) {
             $bolFormUseCategory = $objForms->arrForms[intval($intCmdFormId)]['formUseCategory'];
             $bolFormUseLevel = $objForms->arrForms[intval($intCmdFormId)]['formUseLevel'];
         } else {
             $bolFormUseCategory = true;
             $bolFormUseLevel = $this->arrSettings['settingsShowLevels'];
         }
         if ($this->arrSettings['settingsShowLevels'] == 1 && $intCategoryId == 0 && $bolFormUseLevel) {
             $objLevels = new MediaDirectoryLevel(null, $intLevelId, 1, $this->moduleName);
             $objCategories = new MediaDirectoryCategory(null, $intCategoryId, 1, $this->moduleName);
             $objLevels->listLevels($this->_objTpl, 2, null, null, null, $arrExistingBlocks);
             $this->_objTpl->clearVariables();
             $this->_objTpl->parse($this->moduleNameLC . 'CategoriesLevelsList');
         }
         if (isset($objLevel) && $objLevel->arrLevels[$intLevelId]['levelShowCategories'] == 1 || $intLevelId === 0 || $this->arrSettings['settingsShowLevels'] == 0 || $intCategoryId != 0 || $bolFormUseCategory && !$bolFormUseLevel) {
             $objCategories = new MediaDirectoryCategory(null, $intCategoryId, 1, $this->moduleName);
             $objCategories->listCategories($this->_objTpl, 2, null, null, null, $arrExistingBlocks);
             $this->_objTpl->clearVariables();
             $this->_objTpl->parse($this->moduleNameLC . 'CategoriesLevelsList');
         }
         if (empty($objLevel->arrLevels) && empty($objCategories->arrCategories)) {
             $this->_objTpl->hideBlock($this->moduleNameLC . 'CategoriesLevelsList');
             $this->_objTpl->clearVariables();
         }
     }
     //latest title
     if ($this->_objTpl->blockExists($this->moduleNameLC . 'LatestTitle') && $intCategoryId == 0 && $intLevelId == 0) {
         $this->_objTpl->touchBlock($this->moduleNameLC . 'LatestTitle');
     }
     //list entries
     if ($this->_objTpl->blockExists($this->moduleNameLC . 'EntryList')) {
         $intLimitStart = isset($_GET['pos']) ? intval($_GET['pos']) : 0;
         //check category / level
         if ($intCategoryId == 0 && $bolFormUseCategory || $intLevelId == 0 && $bolFormUseLevel) {
             $bolLatest = true;
             $intLimitEnd = intval($this->arrSettings['settingsLatestNumOverview']);
         } else {
             $bolLatest = false;
             $intLimitEnd = intval($this->arrSettings['settingsPagingNumEntries']);
             if (!empty($intCmdFormId) && !empty($objForms->arrForms[$intCmdFormId]['formEntriesPerPage'])) {
                 $intLimitEnd = $objForms->arrForms[$intCmdFormId]['formEntriesPerPage'];
             }
         }
         //check show entries
         if (isset($objLevel) && $objLevel->arrLevels[$intLevelId]['levelShowEntries'] == 1 || isset($objCategory) && $objCategory->arrCategories[$intCategoryId]['catShowEntries'] == 1 || $bolLatest == true || !$bolFormUseCategory && !$bolFormUseLevel) {
             $objEntries = new MediaDirectoryEntry($this->moduleName);
             $objEntries->getEntries(null, $intLevelId, $intCategoryId, null, $bolLatest, null, 1, $intLimitStart, $intLimitEnd, null, null, $intCmdFormId);
             $objEntries->listEntries($this->_objTpl, 2);
             if (!$bolLatest) {
                 $intNumEntries = intval($objEntries->countEntries());
                 if ($intNumEntries > $intLimitEnd) {
                     $objUrl = clone \Env::get('Resolver')->getUrl();
                     $currentUrlParams = $objUrl->getSuggestedParams();
                     $strPaging = getPaging($intNumEntries, $intLimitStart, $currentUrlParams, "<b>" . $_ARRAYLANG['TXT_MEDIADIR_ENTRIES'] . "</b>", true, $intLimitEnd);
                     $this->_objTpl->setGlobalVariable(array($this->moduleLangVar . '_PAGING' => $strPaging));
                 }
             }
         }
         //no entries found
         if (empty($objEntries->arrEntries)) {
             $this->_objTpl->hideBlock($this->moduleNameLC . 'EntryList');
             $this->_objTpl->clearVariables();
         }
     }
 }
 function manageEntries()
 {
     global $_ARRAYLANG, $_CORELANG, $objDatabase, $_LANGID;
     $this->_objTpl->loadTemplateFile('module_' . $this->moduleNameLC . '_manage_entries.html', true, true);
     $this->pageTitle = $_ARRAYLANG['TXT_MEDIADIR_MANAGE_ENTRIES'];
     $this->initFilterSession();
     if (isset($_REQUEST['cat_id'])) {
         $_SESSION[$this->moduleName]['searchFilter']['cat_id'] = intval($_REQUEST['cat_id']);
     }
     if (isset($_REQUEST['level_id'])) {
         $_SESSION[$this->moduleName]['searchFilter']['level_id'] = intval($_REQUEST['level_id']);
     }
     if (isset($_REQUEST['form_id'])) {
         $_SESSION[$this->moduleName]['searchFilter']['form_id'] = intval($_REQUEST['form_id']);
     }
     if (isset($_REQUEST['term'])) {
         $_SESSION[$this->moduleName]['searchFilter']['term'] = $_REQUEST['term'] != $_ARRAYLANG['TXT_MEDIADIR_ID_OR_SEARCH_TERM'] ? $_REQUEST['term'] : null;
     }
     //assign the searchFilter session values to corresponding variables
     $intCategoryId = $_SESSION[$this->moduleName]['searchFilter']['cat_id'];
     $intLevelId = $_SESSION[$this->moduleName]['searchFilter']['level_id'];
     $intFormId = $_SESSION[$this->moduleName]['searchFilter']['form_id'];
     $strTerm = $_SESSION[$this->moduleName]['searchFilter']['term'];
     $objCategories = new MediaDirectoryCategory(null, null, 1, $this->moduleName);
     $catDropdown = $objCategories->listCategories(null, 3, $intCategoryId);
     $objLevels = new MediaDirectoryLevel(null, null, 1, $this->moduleName);
     $levelDropdown = $objLevels->listLevels(null, 3, $intLevelId);
     $objForms = new MediaDirectoryForm(null, $this->moduleName);
     $formDropdown = $objForms->listForms(null, 4, $intFormId);
     //parse global variables
     $this->_objTpl->setGlobalVariable(array('TXT_' . $this->moduleLangVar . '_PAGE_TITLE' => $this->pageTitle, 'TXT_' . $this->moduleLangVar . '_SUBMIT' => $_ARRAYLANG['TXT_' . $this->moduleLangVar . '_SUBMIT'], 'TXT_EDIT' => $_ARRAYLANG['TXT_MEDIADIR_EDIT'], 'TXT_SEARCH' => $_CORELANG['TXT_SEARCH'], 'TXT_MEDIADIR_STATUS' => $_CORELANG['TXT_STATUS'], 'TXT_SELECT_ALL' => $_CORELANG['TXT_SELECT_ALL'], 'TXT_DESELECT_ALL' => $_CORELANG['TXT_DESELECT_ALL'], 'TXT_SELECT_ACTION' => $_CORELANG['TXT_MULTISELECT_SELECT'], 'TXT_FUNCTIONS' => $_ARRAYLANG['TXT_MEDIADIR_FUNCTIONS'], 'TXT_DELETE' => $_ARRAYLANG['TXT_MEDIADIR_DELETE'], 'TXT_DELETE_ALL' => $_CORELANG['TXT_MULTISELECT_DELETE'], 'TXT_' . $this->moduleLangVar . '_VOTING' => $_ARRAYLANG['TXT_MEDIADIR_VOTING'], 'TXT_' . $this->moduleLangVar . '_COMMENTS' => $_ARRAYLANG['TXT_MEDIADIR_COMMENTS'], 'TXT_' . $this->moduleLangVar . '_NAME' => $_CORELANG['TXT_NAME'], 'TXT_' . $this->moduleLangVar . '_DATE' => $_CORELANG['TXT_DATE'], 'TXT_' . $this->moduleLangVar . '_AUTHOR' => $_ARRAYLANG['TXT_MEDIADIR_AUTHOR'], 'TXT_' . $this->moduleLangVar . '_HITS' => $_ARRAYLANG['TXT_MEDIADIR_HITS'], 'TXT_' . $this->moduleLangVar . '_ACTION' => $_CORELANG['TXT_HISTORY_ACTION'], $this->moduleLangVar . '_SEARCH_TERM' => $strTerm != null ? $strTerm : $_ARRAYLANG['TXT_MEDIADIR_ID_OR_SEARCH_TERM'], 'TXT_' . $this->moduleLangVar . '_ID_OR_SEARCH_TERM' => $_ARRAYLANG['TXT_MEDIADIR_ID_OR_SEARCH_TERM'], $this->moduleLangVar . '_SEARCH_CATEGORY_ID' => $intCategoryId, $this->moduleLangVar . '_SEARCH_LEVEL_ID' => $intLevelId, 'TXT_' . $this->moduleLangVar . '_MOVE_ALL' => $_ARRAYLANG['TXT_MEDIADIR_MOVE_ALL'], 'TXT_' . $this->moduleLangVar . '_RESTORE_VOTING_ALL' => $_ARRAYLANG['TXT_MEDIADIR_RESTORE_VOTING_ALL'], 'TXT_' . $this->moduleLangVar . '_RESTORE_COMMENTS_ALL' => $_ARRAYLANG['TXT_MEDIADIR_RESTORE_COMMENTS_ALL'], 'TXT_' . $this->moduleLangVar . '_CONFIRM_DELETE_DATA' => $_ARRAYLANG['TXT_MEDIADIR_CONFIRM_DELETE_DATA'], 'TXT_' . $this->moduleLangVar . '_ACTION_IS_IRREVERSIBLE' => $_ARRAYLANG['TXT_MEDIADIR_ACTION_IS_IRREVERSIBLE'], 'TXT_' . $this->moduleLangVar . '_MAKE_SELECTION' => $_ARRAYLANG['TXT_MEDIADIR_MAKE_SELECTION'], 'TXT_SELECT_ALL' => $_CORELANG['TXT_SELECT_ALL'], 'TXT_DESELECT_ALL' => $_CORELANG['TXT_DESELECT_ALL'], 'TXT_SELECT_ACTION' => $_CORELANG['TXT_MULTISELECT_SELECT'], 'TXT_DELETE_ALL' => $_CORELANG['TXT_MULTISELECT_DELETE'], 'TXT_' . $this->moduleLangVar . '_MOVE_ALL' => $_ARRAYLANG['TXT_MEDIADIR_MOVE_ALL'], 'TXT_' . $this->moduleLangVar . '_ALL_LEVELS' => $_ARRAYLANG['TXT_MEDIADIR_ALL_LEVELS'], 'TXT_' . $this->moduleLangVar . '_ALL_CATEGORIES' => $_ARRAYLANG['TXT_MEDIADIR_ALL_CATEGORIES'], 'TXT_' . $this->moduleLangVar . '_ALL_FORMS' => $_ARRAYLANG['TXT_MEDIADIR_ALL_FORMS'], $this->moduleLangVar . '_CATEGORIES_DROPDOWN_OPTIONS' => $catDropdown, $this->moduleLangVar . '_LEVELS_DROPDOWN_OPTIONS' => $levelDropdown, $this->moduleLangVar . '_FORMS_DROPDOWN_OPTIONS' => $formDropdown, 'TXT_' . $this->moduleLangVar . '_FORM' => $_ARRAYLANG['TXT_MEDIADIR_FORM']));
     //get seting values
     parent::getSettings();
     if ($this->arrSettings['settingsShowLevels'] == 1) {
         $this->_objTpl->touchBlock($this->moduleNameLC . 'LevelDropdown');
     } else {
         $this->_objTpl->hideBlock($this->moduleNameLC . 'LevelDropdown');
     }
     if (count($objForms->arrForms) > 1) {
         $this->_objTpl->touchBlock($this->moduleNameLC . 'FormDropdown');
     } else {
         $this->_objTpl->hideBlock($this->moduleNameLC . 'FormDropdown');
     }
     $objEntries = new MediaDirectoryEntry($this->moduleName);
     if (isset($_POST['submitEntriesOrderForm'])) {
         if ($objEntries->saveOrder($_POST)) {
             $this->strOkMessage = $_CORELANG['TXT_SETTINGS_UPDATED'];
         } else {
             $this->strErrMessage = $_CORELANG['TXT_DATABASE_QUERY_ERROR'];
         }
     }
     $objSettings = new MediaDirectorySettings($this->moduleName);
     if ($this->_objTpl->blockExists('mediadirTableHeaderComments')) {
         if ($objSettings->arrSettings['settingsAllowComments']) {
             $this->_objTpl->touchBlock('mediadirTableHeaderComments');
         }
     }
     if ($this->_objTpl->blockExists('mediadirTableHeaderVotes')) {
         if ($objSettings->arrSettings['settingsAllowVotes']) {
             $this->_objTpl->touchBlock('mediadirTableHeaderVotes');
         }
     }
     switch ($_GET['act']) {
         case 'move_entry':
             $this->strErrMessage = "Diese Funktion ist zurzeit noch nicht implementiert.";
             break;
         case 'delete_entry':
             \Permission::checkAccess(MediaDirectoryAccessIDs::ModifyEntry, 'static');
             if (!isset($_GET['id'])) {
                 foreach ($_POST["entriesFormSelected"] as $intEntryId) {
                     $strStatus = $objEntries->deleteEntry(intval($intEntryId));
                 }
             } else {
                 $strStatus = $objEntries->deleteEntry(intval($_GET['id']));
             }
             if ($strStatus) {
                 $this->strOkMessage = $_ARRAYLANG['TXT_MEDIADIR_ENTRY'] . " " . $_ARRAYLANG['TXT_MEDIADIR_SUCCESSFULLY_DELETED'];
             } else {
                 $this->strErrMessage = $_ARRAYLANG['TXT_MEDIADIR_ENTRY'] . " " . $_ARRAYLANG['TXT_MEDIADIR_CORRUPT_DELETED'];
             }
             break;
         case 'restore_voting':
             \Permission::checkAccess(MediaDirectoryAccessIDs::ModifyEntry, 'static');
             $objVotes = new MediaDirectoryVoting($this->moduleName);
             if (!isset($_GET['id'])) {
                 foreach ($_POST["entriesFormSelected"] as $intEntryId) {
                     $strStatus = $objVotes->restoreVoting(intval($intEntryId));
                 }
             } else {
                 $strStatus = $objVotes->restoreVoting(intval($_GET['id']));
             }
             if ($strStatus) {
                 $this->strOkMessage = $_ARRAYLANG['TXT_MEDIADIR_VOTING'] . " " . $_ARRAYLANG['TXT_MEDIADIR_SUCCESSFULLY_DELETED'];
             } else {
                 $this->strErrMessage = $_ARRAYLANG['TXT_MEDIADIR_VOTING'] . " " . $_ARRAYLANG['TXT_MEDIADIR_CORRUPT_DELETED'];
             }
             break;
         case 'restore_comments':
             \Permission::checkAccess(MediaDirectoryAccessIDs::ModifyEntry, 'static');
             $objComments = new MediaDirectoryComment($this->moduleName);
             if (!isset($_GET['id'])) {
                 foreach ($_POST["entriesFormSelected"] as $intEntryId) {
                     $strStatus = $objComments->restoreComments(intval($intEntryId));
                 }
             } else {
                 $strStatus = $objComments->restoreComments(intval($_GET['id']));
             }
             if ($strStatus) {
                 $this->strOkMessage = $_ARRAYLANG['TXT_MEDIADIR_COMMENTS'] . " " . $_ARRAYLANG['TXT_MEDIADIR_SUCCESSFULLY_DELETED'];
             } else {
                 $this->strErrMessage = $_ARRAYLANG['TXT_MEDIADIR_COMMENTS'] . " " . $_ARRAYLANG['TXT_MEDIADIR_CORRUPT_DELETED'];
             }
             break;
             break;
         case 'confirm_entry':
             \Permission::checkAccess(MediaDirectoryAccessIDs::ModifyEntry, 'static');
             if (!isset($_GET['id'])) {
                 foreach ($_POST["entriesFormSelected"] as $intEntryId) {
                     $strStatus = $objEntries->confirmEntry(intval($intEntryId));
                 }
             } else {
                 $strStatus = $objEntries->confirmEntry(intval($_GET['id']));
             }
             if ($strStatus) {
                 $this->strOkMessage = $_ARRAYLANG['TXT_MEDIADIR_ENTRY'] . " " . $_ARRAYLANG['TXT_MEDIADIR_SUCCESSFULLY_CONFIRM'];
             } else {
                 $this->strErrMessage = $_ARRAYLANG['TXT_MEDIADIR_ENTRY'] . " " . $_ARRAYLANG['TXT_MEDIADIR_CORRUPT_CONFIRM'];
             }
             break;
     }
     $objEntries->getEntries(null, $intLevelId, $intCategoryId, $strTerm, null, null, null, null, 'n', null, null, $intFormId, null, $this->limit, $this->offset);
     $objEntries->listEntries($this->_objTpl, 1);
     // Paging
     $count = $objEntries->countEntries();
     $filter = (!empty($strTerm) ? '&term=' . $strTerm : '') . (!empty($intCategoryId) ? '&cat_id=' . $intCategoryId : '') . (!empty($intFormId) ? '&form_id=' . $intFormId : '') . (!empty($intLevelId) ? '&level_id=' . $intLevelId : '');
     $term = !empty($strTerm) ? '&term=' . $strTerm : '';
     $paging = getPaging($count, $this->offset, '&cmd=' . $this->moduleName . '&act=entries' . $filter, '', true);
     $this->_objTpl->setGlobalVariable($this->moduleLangVar . '_PAGING', $paging);
     if (!empty($strTerm)) {
         $this->_objTpl->setVariable($this->moduleLangVar . '_SEARCH_TERM_PARAMETER', '&term=' . $strTerm);
     }
     if (empty($objEntries->arrEntries)) {
         $this->_objTpl->hideBlock($this->moduleNameLC . 'EntriesSelectAction');
     } else {
         $this->_objTpl->touchBlock($this->moduleNameLC . 'EntriesSelectAction');
     }
 }