1: <?php
2: 3: 4: 5: 6: 7: 8: 9: 10:
11:
12: use Xoops\Core\FixedGroups;
13: use Xoops\Core\Kernel\Handlers\XoopsUser;
14:
15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
25: class SystemUserForm extends Xoops\Form\ThemeForm
26: {
27: 28: 29: 30: 31:
32: public function __construct(XoopsUser $obj)
33: {
34: $xoops = Xoops::getInstance();
35: if ($obj->isNew()) {
36:
37: $uid_value = "";
38: $uname_value = "";
39: $name_value = "";
40: $email_value = "";
41: $email_cbox_value = 0;
42: $url_value = "";
43: $timezone_value = $xoops->getConfig('default_TZ');
44: $icq_value = "";
45: $aim_value = "";
46: $yim_value = "";
47: $msnm_value = "";
48: $location_value = "";
49: $occ_value = "";
50: $interest_value = "";
51: $sig_value = "";
52: $sig_cbox_value = 0;
53: $bio_value = "";
54: $rank_value = 0;
55: $mailok_value = 0;
56: $form_title = SystemLocale::ADD_USER;
57: $form_isedit = false;
58: $groups = array(FixedGroups::USERS);
59: } else {
60:
61: $uid_value = $obj->getVar("uid", "E");
62: $uname_value = $obj->getVar("uname", "E");
63: $name_value = $obj->getVar("name", "E");
64: $email_value = $obj->getVar("email", "E");
65: $email_cbox_value = $obj->getVar("user_viewemail") ? 1 : 0;
66: $url_value = $obj->getVar("url", "E");
67: $timezone_value = $obj->getVar("timezone", 'E');
68: $icq_value = $obj->getVar("user_icq", "E");
69: $aim_value = $obj->getVar("user_aim", "E");
70: $yim_value = $obj->getVar("user_yim", "E");
71: $msnm_value = $obj->getVar("user_msnm", "E");
72: $location_value = $obj->getVar("user_from", "E");
73: $occ_value = $obj->getVar("user_occ", "E");
74: $interest_value = $obj->getVar("user_intrest", "E");
75: $sig_value = $obj->getVar("user_sig", "E");
76: $sig_cbox_value = ($obj->getVar("attachsig") == 1) ? 1 : 0;
77: $bio_value = $obj->getVar("bio", "E");
78: $rank_value = $obj->getVar('rank');
79: $mailok_value = $obj->getVar('user_mailok', 'E');
80: $form_title = sprintf(SystemLocale::F_UPDATE_USER, $obj->getVar("uname"));
81: $form_isedit = true;
82: $groups = array_values($obj->getGroups());
83: }
84:
85:
86: parent::__construct($form_title, "form_user", "admin.php", "post", true);
87:
88: $this->addElement(new Xoops\Form\Text(XoopsLocale::USER_NAME, "username", 4, 25, $uname_value), true);
89: $this->addElement(new Xoops\Form\Text(XoopsLocale::NAME, "name", 5, 60, $name_value));
90: $email_tray = new Xoops\Form\ElementTray(XoopsLocale::EMAIL, "<br />");
91: $email_text = new Xoops\Form\Text("", "email", 5, 60, $email_value);
92: $email_tray->addElement($email_text, true);
93: $email_cbox = new Xoops\Form\Checkbox("", "user_viewemail", $email_cbox_value);
94: $email_cbox->addOption(1, XoopsLocale::ALLOW_OTHER_USERS_TO_VIEW_EMAIL);
95: $email_tray->addElement($email_cbox);
96: $this->addElement($email_tray, true);
97: $this->addElement(new Xoops\Form\Text(XoopsLocale::WEB_URL, "url", 5, 100, $url_value));
98: $this->addElement(new Xoops\Form\SelectTimeZone(XoopsLocale::TIME_ZONE, "timezone", $timezone_value));
99: $this->addElement(new Xoops\Form\Text(XoopsLocale::ICQ, "user_icq", 3, 15, $icq_value));
100: $this->addElement(new Xoops\Form\Text(XoopsLocale::AIM, "user_aim", 3, 18, $aim_value));
101: $this->addElement(new Xoops\Form\Text(XoopsLocale::YIM, "user_yim", 3, 25, $yim_value));
102: $this->addElement(new Xoops\Form\Text(XoopsLocale::MSNM, "user_msnm", 3, 100, $msnm_value));
103: $this->addElement(new Xoops\Form\Text(XoopsLocale::LOCATION, "user_from", 5, 100, $location_value));
104: $this->addElement(new Xoops\Form\Text(XoopsLocale::OCCUPATION, "user_occ", 5, 100, $occ_value));
105: $this->addElement(new Xoops\Form\Text(XoopsLocale::INTEREST, "user_intrest", 5, 150, $interest_value));
106: $sig_tray = new Xoops\Form\ElementTray(XoopsLocale::SIGNATURE, "<br />");
107: $sig_tarea = new Xoops\Form\TextArea("", "user_sig", $sig_value, 5, 5);
108: $sig_tray->addElement($sig_tarea);
109: $sig_cbox = new Xoops\Form\Checkbox("", "attachsig", $sig_cbox_value);
110: $sig_cbox->addOption(1, XoopsLocale::ALWAYS_ATTACH_MY_SIGNATURE);
111: $sig_tray->addElement($sig_cbox);
112: $this->addElement($sig_tray);
113: $this->addElement(new Xoops\Form\TextArea(XoopsLocale::EXTRA_INFO, "bio", $bio_value, 5, 5));
114:
115: $ranklist = $xoops->service('userrank')->getAssignableUserRankList()->getValue();
116: if ($ranklist !== null) {
117: $rank_select = new Xoops\Form\Select(XoopsLocale::RANK, "rank", $rank_value);
118: $rank_select->addOption(0, "--------------");
119: if (count($ranklist) > 0) {
120: $rank_select->addOptionArray($ranklist);
121: }
122: $this->addElement($rank_select);
123: } else {
124: $this->addElement(new Xoops\Form\Hidden("rank", $rank_value));
125: }
126:
127: if (!$form_isedit) {
128: $this->addElement(new Xoops\Form\Password(XoopsLocale::PASSWORD, "password"), true);
129: $this->addElement(new Xoops\Form\Password(XoopsLocale::RETYPE_PASSWORD, "pass2"), true);
130: } else {
131: $this->addElement(new Xoops\Form\Password(XoopsLocale::PASSWORD, "password"));
132: $this->addElement(new Xoops\Form\Password(XoopsLocale::RETYPE_PASSWORD, "pass2"));
133: }
134: $this->addElement(
135: new Xoops\Form\RadioYesNo(XoopsLocale::ONLY_USERS_THAT_ACCEPT_EMAIL, 'user_mailok', $mailok_value)
136: );
137:
138:
139: $gperm_handler = $xoops->getHandlerGroupPermission();
140: $group_select = array();
141:
142: if ($gperm_handler->checkRight("system_admin", XOOPS_SYSTEM_GROUP, $xoops->user->getGroups(), 1)) {
143:
144: $group_select[] = new Xoops\Form\SelectGroup(XoopsLocale::GROUPS, 'groups', false, $groups, 5, true);
145: } else {
146:
147: foreach ($groups as $key => $group) {
148: $group_select[] = new Xoops\Form\Hidden('groups[' . $key . ']', $group);
149: }
150: }
151: foreach ($group_select as $group) {
152: $this->addElement($group);
153: unset($group);
154: }
155:
156: $this->addElement(new Xoops\Form\Hidden("fct", "users"));
157: $this->addElement(new Xoops\Form\Hidden("op", "users_save"));
158: $this->addElement(new Xoops\Form\Button("", "submit", XoopsLocale::A_SUBMIT, "submit"));
159:
160: if (!empty($uid_value)) {
161: $this->addElement(new Xoops\Form\Hidden("uid", $uid_value));
162: }
163: }
164: }
165: