* @subpackage Comments * @since XOOPS * @author http://www.xoops.org The XOOPS Project * @author modified by UnderDog <*****@*****.**> * @version SVN: $Id: commentform.inc.php 20768 2011-02-06 00:02:25Z skenow $ */ defined("ICMS_ROOT_PATH") || die("ImpressCMS root path not defined"); $cform = new icms_form_Theme(_CM_POSTCOMMENT, "commentform", "postcomment.php", "post", true); if (!preg_match("/^re:/i", $subject)) { $subject = "Re: " . icms_core_DataFilter::icms_substr($subject, 0, 56); } $cform->addElement(new icms_form_elements_Text(_CM_TITLE, 'subject', 50, 255, $subject), true); $icons_radio = new icms_form_elements_Radio(_MESSAGEICON, 'icon', $icon); $subject_icons = icms_core_Filesystem::getFileList(ICMS_ROOT_PATH . "/images/subject/", '', array('gif', 'jpg', 'png')); foreach ($subject_icons as $iconfile) { $icons_radio->addOption($iconfile, '<img src="' . ICMS_IMAGES_URL . '/subject/' . $iconfile . '" alt="" />'); } $cform->addElement($icons_radio); $cform->addElement(new icms_form_elements_Dhtmltextarea(_CM_MESSAGE, 'message', $message, 10, 50), true); $option_tray = new icms_form_elements_Tray(_OPTIONS, '<br />'); if (icms::$user) { if ($icmsConfig['anonpost'] == true) { $noname_checkbox = new icms_form_elements_Checkbox('', 'noname', $noname); $noname_checkbox->addOption(1, _POSTANON); $option_tray->addElement($noname_checkbox); } if (icms::$user->isAdmin($icmsModule->getVar('mid'))) { $nohtml_checkbox = new icms_form_elements_Checkbox('', 'nohtml', $nohtml); $nohtml_checkbox->addOption(1, _DISABLEHTML); $option_tray->addElement($nohtml_checkbox); }
/** * Get {@link icms_form_Theme} for editing a user * * @param object $user {@link icms_member_user_Object} to edit * * @return object */ function getUserForm(&$user, $profile = false, $action = false) { global $icmsConfig, $icmsConfigUser, $icmsConfigAuth; if ($action === false) { $action = $_SERVER['REQUEST_URI']; } $title = $user->isNew() ? _AM_PROFILE_ADDUSER : _MD_PROFILE_EDITPROFILE; icms_loadLanguageFile('core', 'user'); $form = new icms_form_Theme($title, 'userinfo', $action, 'post', true); $profile_handler = icms_getModuleHandler('profile', basename(dirname(dirname(__FILE__))), 'profile'); // Dynamic fields if (!$profile) { $profile_handler = icms_getModuleHandler('profile', basename(dirname(dirname(__FILE__))), 'profile'); $profile = $profile_handler->get($user->getVar('uid')); } // Get fields $fields = $profile_handler->loadFields(); // Get ids of fields that can be edited $gperm_handler = icms::handler('icms_member_groupperm'); $editable_fields = $gperm_handler->getItemIds('profile_edit', icms::$user->getGroups(), icms::$module->getVar('mid')); $email_tray = new icms_form_elements_Tray(_MD_PROFILE_EMAIL, '<br />'); if ($user->isNew() || icms::$user->isAdmin()) { $elements[0][] = array('element' => new icms_form_elements_Text(_US_LOGIN_NAME, 'login_name', 25, 75, $user->getVar('login_name', 'e')), 'required' => 1); $weights[0][] = 0; $elements[0][] = array('element' => new icms_form_elements_Text(_US_NICKNAME, 'uname', 25, 75, $user->getVar('uname', 'e')), 'required' => 1); $weights[0][] = 0; $elements[0][] = array('element' => new icms_form_elements_Text(_MD_PROFILE_EMAIL, 'email', 30, 60, $user->getVar('email')), 'required' => 1); $weights[0][] = 0; } else { $elements[0][] = array('element' => new icms_form_elements_Label(_US_LOGIN_NAME, $user->getVar('login_name', 'e')), 'required' => 0); $weights[0][] = 0; if ($icmsConfigUser['allow_chguname'] == 1) { $elements[0][] = array('element' => new icms_form_elements_Text(_US_NICKNAME, 'uname', 25, 75, $user->getVar('uname', 'e')), 'required' => 1); } else { $elements[0][] = array('element' => new icms_form_elements_Label(_US_NICKNAME, $user->getVar('uname')), 'required' => 0); } $weights[0][] = 0; $elements[0][] = array('element' => new icms_form_elements_Label(_MD_PROFILE_EMAIL, $user->getVar('email')), 'required' => 0); $weights[0][] = 0; } if ($icmsConfigAuth['auth_openid'] == 1) { $openid_tray = new icms_form_elements_Tray(_MD_PROFILE_OPENID, '<br />'); $openid_tray->addElement(new icms_form_elements_Text('', 'openid', 30, 255, $user->getVar('openid'))); $openid_checkbox = new icms_form_elements_Checkbox('', 'user_viewoid', $user->getVar('user_viewoid')); $openid_checkbox->addOption('1', _MD_PROFILE_OPENID_VIEW); $openid_tray->addElement($openid_checkbox); $elements[0][] = array('element' => $openid_tray, 'required' => 0); $weights[0][] = 0; } if (icms::$user->isAdmin() && $user->getVar('uid') != icms::$user->getVar('uid') or $user->getVar('uid') == icms::$user->getVar('uid')) { // ALTERED BY FREEFORM SOLUTIONS TO ALLOW USERS TO CHANGE THEIR OWN PASSWORDS //If the user is an admin and is editing someone else $pwd_text = new icms_form_elements_Password('', 'password', 10, 32, "", false, $icmsConfigUser['pass_level'] ? 'password_adv' : ''); $pwd_text2 = new icms_form_elements_Password('', 'vpass', 10, 32); $pwd_tray = new icms_form_elements_Tray(_MD_PROFILE_PASSWORD . '<br />' . _MD_PROFILE_TYPEPASSTWICE); $pwd_tray->addElement($pwd_text, $user->isNew()); $pwd_tray->addElement($pwd_text2, $user->isNew()); $elements[0][] = array('element' => $pwd_tray, 'required' => 1); //cannot set an element tray required $weights[0][] = 0; if (icms::$user->isAdmin() && $user->getVar('uid') != icms::$user->getVar('uid')) { // ALTERED BY FREEFORM SOLUTIONS SO THAT USERS CAN'T ALTER THEIR OWN LEVEL $level_radio = new icms_form_elements_Radio(_MD_PROFILE_ACTIVEUSER, 'level', $user->getVar('level')); $level_radio->addOption(1, _MD_PROFILE_ACTIVE); $level_radio->addOption(0, _MD_PROFILE_INACTIVE); $level_radio->addOption(-1, _MD_PROFILE_DISABLED); $elements[0][] = array('element' => $level_radio, 'required' => 0); $weights[0][] = 0; } } $elements[0][] = array('element' => new icms_form_elements_Hidden('uid', $user->getVar('uid')), 'required' => 0); $weights[0][] = 0; $elements[0][] = array('element' => new icms_form_elements_Hidden('op', 'save'), 'required' => 0); $weights[0][] = 0; $profile_cat_handler = icms_getmodulehandler('category', basename(dirname(dirname(__FILE__))), 'profile'); $categories = $profile_cat_handler->getObjects(null, true, false); foreach (array_keys($fields) as $i) { if (in_array($fields[$i]->getVar('fieldid'), $editable_fields)) { if ($fields[$i]->getVar('field_edit') == 1) { $fieldinfo['element'] = $fields[$i]->getEditElement($user, $profile); $fieldinfo['required'] = $fields[$i]->getVar('field_required'); $key = $fields[$i]->getVar('catid'); $elements[$key][] = $fieldinfo; $weights[$key][] = $fields[$i]->getVar('field_weight'); // Image upload if ($fields[$i]->getVar('field_type') == "image") { $form->setExtra('enctype="multipart/form-data"'); } } } } if (icms::$user && icms::$user->isAdmin()) { icms_loadLanguageFile(basename(dirname(dirname(__FILE__))), 'admin'); //If user has admin rights on groups include_once ICMS_ROOT_PATH . "/modules/system/constants.php"; if ($gperm_handler->checkRight("system_admin", XOOPS_SYSTEM_GROUP, icms::$user->getGroups(), 1)) { //add group selection $group_select = new icms_form_elements_select_Group(_AM_PROFILE_GROUP, 'groups', false, $user->getGroups(), 15, true); // UPDATED BY FREEFORM SOLUTIONS - MAKE LIST TALLER $elements[0][] = array('element' => $group_select, 'required' => 0); $weights[0][] = 15000; } } ksort($elements); foreach (array_keys($elements) as $k) { array_multisort($weights[$k], SORT_ASC, array_keys($elements[$k]), SORT_ASC, $elements[$k]); $title = isset($categories[$k]) ? $categories[$k]['cat_title'] : _MD_PROFILE_DEFAULT; $desc = isset($categories[$k]) ? $categories[$k]['cat_description'] : ""; $form->addElement(new icms_form_elements_Label($title, $desc), false); foreach (array_keys($elements[$k]) as $i) { $form->addElement($elements[$k][$i]['element'], $elements[$k][$i]['required']); } } $form->addElement(new icms_form_elements_Button('', 'submit', _MD_PROFILE_SAVECHANGES, 'submit')); return $form; }