| 
<?php/**
 * Extended User Profile
 *
 * 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             profile
 * @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 = \Xmf\Request::getCmd('op', 'edit');
 
 $perm_desc = '';
 switch ($op) {
 case 'visibility':
 //redirect_header("visibility.php", 0, _PROFILE_AM_PROF_VISIBLE);
 header('Location: visibility.php');
 break;
 
 case 'edit':
 $title_of_form = _PROFILE_AM_PROF_EDITABLE;
 $perm_name     = 'profile_edit';
 $restriction   = 'field_edit';
 $anonymous     = false;
 break;
 
 case 'search':
 $title_of_form = _PROFILE_AM_PROF_SEARCH;
 $perm_name     = 'profile_search';
 $restriction   = '';
 $anonymous     = true;
 break;
 
 case 'access':
 $title_of_form = _PROFILE_AM_PROF_ACCESS;
 $perm_name     = 'profile_access';
 $perm_desc     = _PROFILE_AM_PROF_ACCESS_DESC;
 $restriction   = '';
 $anonymous     = true;
 break;
 }
 
 include_once $GLOBALS['xoops']->path('/class/xoopsformloader.php');
 $opform    = new XoopsSimpleForm('', 'opform', 'permissions.php', 'get');
 $op_select = new XoopsFormSelect('', 'op', $op);
 $op_select->setExtra('onchange="document.forms.opform.submit()"');
 $op_select->addOption('visibility', _PROFILE_AM_PROF_VISIBLE);
 $op_select->addOption('edit', _PROFILE_AM_PROF_EDITABLE);
 $op_select->addOption('search', _PROFILE_AM_PROF_SEARCH);
 $op_select->addOption('access', _PROFILE_AM_PROF_ACCESS);
 $opform->addElement($op_select);
 $opform->display();
 
 $module_id = $GLOBALS['xoopsModule']->getVar('mid');
 include_once $GLOBALS['xoops']->path('/class/xoopsform/grouppermform.php');
 $form = new XoopsGroupPermForm($title_of_form, $module_id, $perm_name, $perm_desc, 'admin/permissions.php?op=' . $op, $anonymous);
 if ($op === 'access') {
 /* @var XoopsMemberHandler $member_handler */
 $member_handler = xoops_getHandler('member');
 $glist          = $member_handler->getGroupList();
 foreach (array_keys($glist) as $i) {
 if ($i != XOOPS_GROUP_ANONYMOUS) {
 $form->addItem($i, $glist[$i]);
 }
 }
 } else {
 $profile_handler = xoops_getModuleHandler('profile');
 $fields          = $profile_handler->loadFields();
 
 if ($op !== 'search') {
 foreach (array_keys($fields) as $i) {
 if ($restriction == '' || $fields[$i]->getVar($restriction)) {
 $form->addItem($fields[$i]->getVar('field_id'), xoops_substr($fields[$i]->getVar('field_title'), 0, 25));
 }
 }
 } else {
 $searchable_types = array(
 'textbox',
 'select',
 'radio',
 'yesno',
 'date',
 'datetime',
 'timezone',
 'language');
 foreach (array_keys($fields) as $i) {
 if (in_array($fields[$i]->getVar('field_type'), $searchable_types)) {
 $form->addItem($fields[$i]->getVar('field_id'), xoops_substr($fields[$i]->getVar('field_title'), 0, 25));
 }
 }
 }
 }
 $form->display();
 include_once __DIR__ . '/admin_footer.php';
 //xoops_cp_footer();
 
 |