Пример #1
0
<?php

/*
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 2015-2016 XOOPS Project (http://xoops.org)
 * @license   GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @author    Richard Griffith <*****@*****.**>
 */
require __DIR__ . '/admin_header.php';
$indexAdmin = new \Xoops\Module\Admin();
$indexAdmin->displayNavigation('index.php');
$max_time = ini_get('max_execution_time');
$indexAdmin->addConfigBoxLine(sprintf('For full function, max_execution_time should be at least 120. (Currently %d)', $max_time), $max_time < 120 ? 'warning' : 'accept');
$indexAdmin->displayIndex();
$xoops->footer();
Пример #2
0
<?php

/*
 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.
*/
/**
 * User Rank module
 *
 * @copyright       XOOPS Project (http://xoops.org)
 * @license         GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @package         userrank
 * @since           2.6.0
 * @author          Cointin Maxime (AKA Kraven30)
 * @version         $Id$
 */
include __DIR__ . '/header.php';
$xoops = Xoops::getInstance();
$xoops->header();
$admin_page = new \Xoops\Module\Admin();
$admin_page->displayNavigation('about.php');
$admin_page->displayAbout(true);
$xoops->footer();
Пример #3
0
 * @author          Taiwen Jiang <*****@*****.**>
 * @version         $Id$
 */
include __DIR__ . '/header.php';
// Get main instance
$system = System::getInstance();
$xoops = Xoops::getInstance();
//there is no way to override current tabs when using system menu
//this dirty hack will have to do it
$_SERVER['REQUEST_URI'] = "admin/permissions.php";
// Get Action type
$op = $system->cleanVars($_REQUEST, 'op', 'visibility', 'string');
// Call header
$xoops->header();
$admin_page = new \Xoops\Module\Admin();
$admin_page->displayNavigation('permissions.php');
$visibility_handler = $xoops->getModuleHandler('visibility');
$field_handler = $xoops->getModuleHandler('field');
$fields = $field_handler->getList();
if (isset($_REQUEST['submit'])) {
    $visibility = $visibility_handler->create();
    $visibility->setVar('field_id', $_REQUEST['field_id']);
    $visibility->setVar('user_group', $_REQUEST['ug']);
    $visibility->setVar('profile_group', $_REQUEST['pg']);
    $visibility_handler->insert($visibility, true);
    $xoops->redirect("visibility.php", 2, sprintf(_PROFILE_AM_SAVEDSUCCESS, _PROFILE_AM_PROF_VISIBLE));
}
if ($op == "del") {
    $criteria = new CriteriaCompo(new Criteria('field_id', (int) $_REQUEST['field_id']));
    $criteria->add(new Criteria('user_group', (int) $_REQUEST['ug']));
    $criteria->add(new Criteria('profile_group', (int) $_REQUEST['pg']));
Пример #4
0
/**
 * Private message
 *
 * @copyright       XOOPS Project (http://xoops.org)
 * @license         GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @package         pm
 * @since           2.3.0
 * @author          Jan Pedersen
 * @author          Taiwen Jiang <*****@*****.**>
 * @version         $Id$
 */
include __DIR__ . '/header.php';
$xoops = Xoops::getInstance();
$xoops->header();
$indexAdmin = new \Xoops\Module\Admin();
$indexAdmin->displayNavigation('prune.php');
$op = isset($_REQUEST['op']) ? $_REQUEST['op'] : "form";
/* @var $pm_handler PmMessageHandler */
$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") {
Пример #5
0
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.
*/
use Xmf\FilterInput;
/**
 * @copyright 2015-2016 XOOPS Project (http://xoops.org)
 * @license   GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @author    Richard Griffith <*****@*****.**>
 */
require __DIR__ . '/admin_header.php';
$indexAdmin = new \Xoops\Module\Admin();
$indexAdmin->displayNavigation('security.php');
$checker = new \SensioLabs\Security\SecurityChecker();
try {
    $alerts = $checker->check(XOOPS_PATH . '/composer.lock', 'text');
    $alertCount = $checker->getLastVulnerabilityCount();
    if ($alertCount == 0) {
        echo $xoops->alert('info', 'No issues detected', 'Security Advisories Checker');
    } else {
        foreach ($alerts as $package => $alert) {
            $body = "Version: {$alert['version']}<br><br>";
            foreach ($alert['advisories'] as $adv) {
                $title = FilterInput::clean($adv['title']);
                $cve = FilterInput::clean($adv['cve']);
                $link = FilterInput::clean($adv['link']);
                $body .= "{$title}<br>" . (empty($cve) ? '' : "CVE: {$cve}<br>") . "<a href=\"{$link}\" rel=\"external\">{$link}</a><br><br>";
            }
Пример #6
0
             $xoopsTpl->append('listing', $listing);
             $xoops->tpl()->assign('valid', AlumniLocale::APPROVE);
             $xoops->tpl()->assign('school', AlumniLocale::SCHOOL);
             $xoops->tpl()->assign('class_of', AlumniLocale::CLASS_OF);
         }
         unset($listing);
         $xoops->tpl()->assign('error_message', '');
     } else {
         $xoops->tpl()->assign('error_message', AlumniLocale::E_NO_LISTING);
     }
     break;
 case 'new_listing':
     $listingHandler = $xoops->getModuleHandler('listing', 'alumni');
     $xoops->header();
     $indexAdmin = new Xoops\Module\Admin();
     $indexAdmin->displayNavigation('alumni.php');
     $indexAdmin->addItemButton(AlumniLocale::LIST_CATS, 'alumni.php');
     echo $indexAdmin->renderButton('left', '');
     $obj = $listingHandler->create();
     $form = $xoops->getModuleForm($obj, 'listing');
     $form->display();
     break;
 case 'save_listing':
     if (!$xoops->security()->check()) {
         $xoops->redirect('alumni.php', 3, implode(',', $xoops->security()->getErrors()));
     }
     if ('1' == $xoops->getModuleConfig('alumni_use_captcha') && !$xoops->user->isAdmin()) {
         $xoopsCaptcha = XoopsCaptcha::getInstance();
         if (!$xoopsCaptcha->verify()) {
             $xoops->redirect(XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/addlisting.php', 6, $xoopsCaptcha->getMessage());
             exit(0);
Пример #7
0
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/
/**
 * @copyright    XOOPS Project (http://xoops.org)
 * @license      GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @package      debugbar
 * @since
 * @author       XOOPS Development Team
 */
use Xoops\Core\Request;
use Xmf\Module\Helper;
use Xmf\Module\Permission;
include_once __DIR__ . '/admin_header.php';
$moduleAdmin = new \Xoops\Module\Admin();
$moduleAdmin->displayNavigation('permissions.php');
$helper = Helper::getHelper('monolog');
$permHelper = new Permission();
if ($permHelper) {
    // this is the name and item we are going to work with
    $gperm_name = 'use_monolog';
    $gperm_itemid = 0;
    // if this is a post operation get our variables
    if ('POST' === Request::getMethod()) {
        $name = $permHelper->defaultFieldName($gperm_name, $gperm_itemid);
        $groups = Request::getVar($name, array(), 'POST');
        $permHelper->savePermissionForItem($gperm_name, $gperm_itemid, $groups);
        echo $xoops->alert('success', _MA_MONOLOG_FORM_PROCESSED, _MA_MONOLOG_PERMISSION_FORM);
    }
    $form = new \Xoops\Form\ThemeForm(_MA_MONOLOG_PERMISSION_FORM, 'form', '', 'POST');
    $permElement = $permHelper->getGroupSelectFormForItem($gperm_name, $gperm_itemid, _MA_MONOLOG_PERMISSION_GROUPS, null, true);
Пример #8
0
<?php

/*
 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.
*/
/**
 * Private Message
 *
 * @copyright       XOOPS Project (http://xoops.org)
 * @license         GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @package         pm
 * @since           2.5.0
 * @author          Mage
 * @author          Mamba
 * @version         $Id$
 */
include __DIR__ . '/header.php';
$xoops = Xoops::getInstance();
$xoops->header();
$indexAdmin = new \Xoops\Module\Admin();
$indexAdmin->displayNavigation('admin.php');
$indexAdmin->displayIndex();
$xoops->footer();
Пример #9
0
     } else {
         if ($xcaptcha_handler->loadPluginHandler($type)) {
             $config = $xcaptcha_handler->Pluginhandler->VerifyData();
             $xcaptcha_handler->writeConfig('captcha.config.' . $type, $config);
             $xoops->redirect('index.php?type=' . $type, 5, _AM_XCAPTCHA_SAVED);
         }
     }
     break;
 case 'default':
 default:
     $type = isset($type) ? $type : 'config';
     $xoops->header();
     $xoops->theme()->addStylesheet('modules/xcaptcha/css/moduladmin.css');
     $admin_page = new \Xoops\Module\Admin();
     if ($type === 'config') {
         $admin_page->displayNavigation('index.php?type=config');
         $admin_page->addInfoBox(_AM_XCAPTCHA_FORM);
         $form = $xoops->getModuleForm($xcaptcha_handler, 'captcha', 'xcaptcha');
         $admin_page->addInfoBoxLine($form->render());
     } else {
         if ($plugin = $xcaptcha_handler->loadPluginHandler($type)) {
             $title = constant('_XCAPTCHA_FORM_' . strtoupper($type));
             $form = $xoops->getModuleForm($plugin, $type, 'xcaptcha');
             $admin_page->addInfoBox($title);
             $admin_page->addInfoBoxLine($form->render());
         } else {
             $xoops->redirect('index.php', 5, _AM_XCAPTCHA_ERROR);
         }
     }
     $admin_page->displayIndex();
     break;
Пример #10
0
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/
use Xmf\Request;
use Xoops\Core\ComposerUtility;
/**
 * @copyright 2015-2016 XOOPS Project (http://xoops.org)
 * @license   GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @author    Richard Griffith <*****@*****.**>
 */
require __DIR__ . '/admin_header.php';
$xoops = Xoops::getInstance();
$xoops->header();
$security = $xoops->security();
$modAdmin = new \Xoops\Module\Admin();
$modAdmin->displayNavigation('composertool.php');
$commands = array('selfupd' => array('cmd' => 'selfupdate', 'args' => null, 'name' => 'Self update composer'), 'update' => array('cmd' => '--no-progress update', 'args' => 'optpkg', 'name' => 'Update'), 'autoload' => array('cmd' => 'dumpautoload --optimize', 'args' => null, 'name' => 'Optimize autoloader'), 'showself' => array('cmd' => 'show --self', 'args' => null, 'name' => 'Show base package'), 'showinst' => array('cmd' => 'show', 'args' => null, 'name' => 'Show installed packages'), 'showinsd' => array('cmd' => 'show -t', 'args' => null, 'name' => 'Show installed with dependencies'), 'depends' => array('cmd' => 'depends', 'args' => 'pkg', 'name' => 'What depends on package'), 'showlic' => array('cmd' => 'licenses', 'args' => null, 'name' => 'Show package licenses'), 'status' => array('cmd' => 'status -v', 'args' => null, 'name' => 'Show modified packages'), 'version' => array('cmd' => 'show --version', 'args' => null, 'name' => 'Show version'), 'require' => array('cmd' => 'require', 'args' => 'pkgver', 'name' => 'Add package'), 'search' => array('cmd' => 'search', 'args' => 'pkg', 'name' => 'Search packages'), 'validate' => array('cmd' => 'validate', 'args' => null, 'name' => 'Validate composer.json'), 'diagnose' => array('cmd' => 'diagnose', 'args' => null, 'name' => 'Diagnose composer issues'), 'showupd' => array('cmd' => '--dry-run update', 'args' => 'optpkg', 'name' => 'Check for updates'), 'platform' => array('cmd' => 'show --platform', 'args' => null, 'name' => 'Show platform packages'));
$basicgroup = array('showupd', 'update', 'autoload', 'selfupd');
$showgroup = array('showself', 'showinst', 'showinsd', 'platform', 'depends', 'showlic', 'status', 'version');
$utilgroup = array('require', 'search', 'validate', 'diagnose');
/**
 * getOptArray - build option arrays from command list given list of keys to include
 *
 * @param array $keys     keys to include
 * @param array $commands command array
 *
 * @return array
 */
function getOptArray($keys, $commands)
{
    $optArray = array();
Пример #11
0
/**
 * Extended User Profile
 *
 * @copyright       XOOPS Project (http://xoops.org)
 * @license         GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @package         profile
 * @since           2.3.0
 * @author          Jan Pedersen
 * @author          Taiwen Jiang <*****@*****.**>
 * @version         $Id$
 */
include __DIR__ . '/header.php';
$xoops = Xoops::getInstance();
$xoops->header();
$indexAdmin = new \Xoops\Module\Admin();
$indexAdmin->displayNavigation('user.php');
$op = isset($_REQUEST['op']) ? $_REQUEST['op'] : 'list';
if ($op === "editordelete") {
    $op = isset($_REQUEST['delete']) ? "delete" : "edit";
}
$handler = $xoops->getHandlerMember();
switch ($op) {
    default:
    case "list":
        $form = new Xoops\Form\ThemeForm(_PROFILE_AM_EDITUSER, 'form', 'user.php');
        $form->addElement(new Xoops\Form\SelectUser(_PROFILE_AM_SELECTUSER, 'id'));
        $form->addElement(new Xoops\Form\Hidden('op', 'editordelete'));
        $buttonTray = new Xoops\Form\ElementTray('');
        $buttonTray->addElement(new Xoops\Form\Button('', 'edit', XoopsLocale::A_EDIT, 'submit'));
        $buttonTray->addElement(new Xoops\Form\Button('', 'delete', XoopsLocale::A_DELETE, 'submit'));
        $form->addElement($buttonTray);
Пример #12
0
use Xoops\Core\Database\Schema\ImportSchema;
use Xoops\Core\Database\Schema\RemovePrefixes;
use Xoops\Core\Yaml;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Schema\Comparator;
use Doctrine\DBAL\Schema\Synchronizer\SingleDatabaseSynchronizer;
// from $_POST we use keys: op, mod_dirname
$clean_input = XoopsFilterInput::gather('post', array(array('op', 'string', 'selectmodule', true), array('mod_dirname', 'string', '', true)));
$op = $clean_input['op'];
$mod_dirname = $clean_input['mod_dirname'];
if ($op !== 'showschema' || empty($mod_dirname)) {
    $op = 'selectmodule';
}
//echo '<h2>' . _MI_SCHEMATOOL_NAME . '</h2>';
$indexAdmin = new \Xoops\Module\Admin();
$indexAdmin->displayNavigation('schematool.php');
if ($op === 'showschema') {
    $helper = $xoops->getModuleHelper($mod_dirname);
    $mod_to_use = $helper->getModule();
    $mod_to_use->loadInfo($mod_dirname, false);
    $mod_ver = $mod_to_use->modinfo;
    $table_list = array();
    if (isset($mod_ver['tables'])) {
        $table_list = $mod_ver['tables'];
    }
    //Debug::dump($table_list);
    if (empty($table_list)) {
        echo $xoops->alert('warning', sprintf(_MI_SCHEMATOOL_MSG_NO_TABLES, $mod_dirname), _MI_SCHEMATOOL_TITLE_NO_TABLES);
    } else {
        // get a schema manager
        $schemaManager = $xoops->db()->getSchemaManager();
Пример #13
0
             $obj->setVar('scphoto', Request::getString('scphoto'));
         }
     }
     if ($categoriesHandler->insert($obj)) {
         $xoops->redirect('category.php', 3, AlumniLocale::FORMOK);
     }
     echo $obj->getHtmlErrors();
     $form = $xoops->getModuleForm($obj, 'category');
     $form->display();
     break;
 case 'edit_category':
     $cid = Request::getInt('cid', 0);
     $xoops = Xoops::getInstance();
     $xoops->header();
     $indexAdmin = new \Xoops\Module\Admin();
     $indexAdmin->displayNavigation('category.php');
     $indexAdmin->addItemButton(AlumniLocale::LIST_CATS, 'alumni.php', 'list');
     $indexAdmin->renderButton('left', '');
     $obj = $categoriesHandler->get($cid);
     $form = $xoops->getModuleForm($obj, 'category');
     $form->display();
     break;
 case 'delete_category':
     $xoops = Xoops::getInstance();
     $xoops->header();
     $cid = Request::getInt('cid', 0);
     $ok = Request::getInt('ok', 0);
     $obj = $categoriesHandler->get($cid);
     if (isset($ok) && $ok == 1) {
         if (!$xoops->security()->check()) {
             $xoops->redirect('category.php', 3, implode(',', $xoops->security()->getErrors()));
Пример #14
0
<?php

/*
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    XOOPS Project (http://xoops.org)
 * @license      GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @package      debugbar
 * @since
 * @author       XOOPS Development Team
 */
include_once __DIR__ . '/admin_header.php';
$moduleAdmin = new \Xoops\Module\Admin();
$moduleAdmin->displayNavigation('index.php');
$moduleAdmin->displayIndex();
include_once __DIR__ . '/admin_footer.php';
Пример #15
0
<?php

/*
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       XOOPS Project (http://xoops.org)
 * @license         GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @author          Richard Griffith <*****@*****.**>
 * @version         $Id: about.php 8065 2011-11-06 02:02:32Z beckmi $
 */
require __DIR__ . '/admin_header.php';
$aboutAdmin = new \Xoops\Module\Admin();
$aboutAdmin->displayNavigation('about.php');
$aboutAdmin->displayAbout(true);
require __DIR__ . '/admin_footer.php';
Пример #16
0
<?php

/*
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    XOOPS Project (http://xoops.org)
 * @license      GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @package      debugbar
 * @author       XOOPS Development Team
 */
include_once __DIR__ . '/admin_header.php';
$moduleAdmin = new \Xoops\Module\Admin();
$moduleAdmin->displayNavigation('about.php');
$moduleAdmin->displayAbout(true);
include_once __DIR__ . '/admin_footer.php';
Пример #17
0
 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.
*/
/**
 * User Rank module
 *
 * @copyright       XOOPS Project (http://xoops.org)
 * @license         GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @package         userrank
 * @since           2.6.0
 * @author          Cointin Maxime (AKA Kraven30)
 * @version         $Id$
 */
include __DIR__ . '/header.php';
$xoops = Xoops::getInstance();
$xoops->header();
$admin_page = new \Xoops\Module\Admin();
$admin_page->displayNavigation('index.php');
$userrank_handler = $xoops->getModuleHandler('rank', 'userrank');
$admin_page->addInfoBox(_USERRANK_MI_USERRANK);
$count_all = $userrank_handler->getCount();
$admin_page->addInfoBoxLine(sprintf(_AM_USERRANK_NBTOTAL, '<span class="red">' . $count_all . '</span>'));
$criteria = new CriteriaCompo();
$criteria->add(new Criteria('rank_special', 1));
$count_special = $userrank_handler->getCount($criteria);
$admin_page->addInfoBoxLine(sprintf(_AM_USERRANK_NBSPECIAL, '<span class="red">' . $count_special . '</span>'));
$admin_page->displayIndex();
$xoops->footer();
Пример #18
0
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.

* @license         GNU GPL 2 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
* @package         alumni
* @since           2.6.0
* @author          John Mordo - jlm69
*/
include __DIR__ . '/header.php';
$xoops = Xoops::getInstance();
$op = $request->asStr('op', 'alumni_view');
$xoops->header();
$admin_page = new Xoops\Module\Admin();
$admin_page->displayNavigation('groupperm.php');
$moduleId = $xoops->module->getVar('mid');
$categoriesHandler = $xoops->getModuleHandler('category', 'alumni');
$cats = $categoriesHandler->getall();
$cat_rows = $categoriesHandler->getCount();
include_once XOOPS_ROOT_PATH . "/modules/{$moduleDirName}/class/alumni_tree.php";
$cattree = new AlumniObjectTree($cats, 'cid', 'pid');
if ($cat_rows == '0') {
    echo constant($modinfo_lang . '_MUST_ADD_CAT');
} else {
    $perm_desc = '';
    switch ($op) {
        case 'alumni_view':
        default:
            $title_of_form = constant($modinfo_lang . '_VIEWFORM');
            $perm_name = 'alumni_view';