XOOPS 2.5.6  Final
 All Classes Namespaces Files Functions Variables Pages
install.php
Go to the documentation of this file.
1 <?php
22 {
23  global $module_id;
24  $module_id = $module->getVar('mid');
25  xoops_loadLanguage('user');
26 
27  // Create registration steps
30 
31  // Create categories
36 
37 
38  // Add user fields
39  xoops_loadLanguage('notification');
40  xoops_loadLanguage('main', $module->getVar('dirname', 'n'));
41  include_once $GLOBALS['xoops']->path('include/notification_constants.php');
42  $umode_options = array( 'nest' => _NESTED,
43  'flat' => _FLAT,
44  'thread' => _THREADED);
45  $uorder_options = array(0 => _OLDESTFIRST,
46  1 => _NEWESTFIRST);
47  $notify_mode_options = array( XOOPS_NOTIFICATION_MODE_SENDALWAYS => _NOT_MODE_SENDALWAYS,
50  $notify_method_options = array( XOOPS_NOTIFICATION_METHOD_DISABLE => _NOT_METHOD_DISABLE,
53 
54 
55  profile_install_addField('name', _US_REALNAME, '', 1, 'textbox', 1, 1, 1, array(), 2, 255);
56  profile_install_addField('user_from', _US_LOCATION, '', 1, 'textbox', 1, 2, 1, array(), 2, 255);
57  profile_install_addField('timezone_offset', _US_TIMEZONE, '', 1, 'timezone', 1, 3, 1, array(), 2, 0);
58  profile_install_addField('user_occ', _US_OCCUPATION, '', 1, 'textbox', 1, 4, 1, array(), 2, 255);
59  profile_install_addField('user_intrest', _US_INTEREST, '', 1, 'textbox', 1, 5, 1, array(), 2, 255);
60  profile_install_addField('bio', _US_EXTRAINFO, '', 1, 'textarea', 2, 6, 1, array(), 2, 0);
61  profile_install_addField('user_regdate', _US_MEMBERSINCE, '', 1, 'datetime', 3, 7, 0, array(), 0, 10);
62 
63  profile_install_addField('user_icq', _US_ICQ, '', 2, 'textbox', 1, 1, 1, array(), 2, 255);
64  profile_install_addField('user_aim', _US_AIM, '', 2, 'textbox', 1, 2, 1, array(), 2, 255);
65  profile_install_addField('user_yim', _US_YIM, '', 2, 'textbox', 1, 3, 1, array(), 2, 255);
66  profile_install_addField('user_msnm', _US_MSNM, '', 2, 'textbox', 1, 4, 1, array(), 2, 255);
67 
68  profile_install_addField('user_viewemail', _US_ALLOWVIEWEMAIL, '', 3, 'yesno', 3, 1, 1, array(), 2, 1, false);
69  profile_install_addField('attachsig', _US_SHOWSIG, '', 3, 'yesno', 3, 2, 1, array(), 0, 1, false);
70  profile_install_addField('user_mailok', _US_MAILOK, '', 3, 'yesno', 3, 3, 1, array(), 2, 1, false);
71  profile_install_addField('theme', _PROFILE_MA_THEME, '', 3, 'theme', 1, 4, 1, array(), 0, 0, false);
72  profile_install_addField('umode', _US_CDISPLAYMODE, '', 3, 'select', 1, 5, 1, $umode_options, 0, 0, false);
73  profile_install_addField('uorder', _US_CSORTORDER, '', 3, 'select', 3, 6, 1, $uorder_options, 0, 0, false);
74  profile_install_addField('notify_mode', _NOT_NOTIFYMODE, '', 3, 'select', 3, 7, 1, $notify_mode_options, 0, 0, false);
75  profile_install_addField('notify_method', _NOT_NOTIFYMETHOD, '', 3, 'select', 3, 8, 1, $notify_method_options, 0, 0, false);
76 
77  profile_install_addField('url', _PROFILE_MI_URL_TITLE, '', 4, 'textbox', 1, 1, 1, array(), 2, 255);
78  profile_install_addField('posts', _US_POSTS, '', 4, 'textbox', 3, 2, 0, array(), 0, 255);
79  profile_install_addField('rank', _US_RANK, '', 4, 'rank', 3, 3, 2, array(), 0, 0);
80  profile_install_addField('last_login', _US_LASTLOGIN, '', 4, 'datetime', 3, 4, 0, array(), 0, 10);
81  profile_install_addField('user_sig', _US_SIGNATURE, '', 4, 'textarea', 1, 5, 1, array(), 0, 0);
82 
84  return true;
85 }
86 
88 {
89  global $module_id;
90 
91  $GLOBALS['xoopsDB']->queryF(
92  " INSERT INTO " . $GLOBALS['xoopsDB']->prefix("profile_profile") . " (profile_id) " .
93  " SELECT uid ".
94  " FROM " . $GLOBALS['xoopsDB']->prefix("users")
95  );
96 
97  $sql = "INSERT INTO " . $GLOBALS['xoopsDB']->prefix("group_permission") .
98  " (gperm_groupid, gperm_itemid, gperm_modid, gperm_name) " .
99  " VALUES " .
100  " (" . XOOPS_GROUP_ADMIN . ", " . XOOPS_GROUP_ADMIN . ", {$module_id}, 'profile_access'), " .
101  " (" . XOOPS_GROUP_ADMIN . ", " . XOOPS_GROUP_USERS . ", {$module_id}, 'profile_access'), " .
102  " (" . XOOPS_GROUP_USERS . ", " . XOOPS_GROUP_USERS . ", {$module_id}, 'profile_access'), " .
103  " (" . XOOPS_GROUP_ANONYMOUS . ", " . XOOPS_GROUP_USERS . ", {$module_id}, 'profile_access') " .
104  " ";
105  $GLOBALS['xoopsDB']->queryF($sql);
106 
107 }
108 
109 // canedit: 0 - no; 1 - admin; 2 - admin & owner
110 function profile_install_addField($name, $title, $description, $category, $type, $valuetype, $weight, $canedit, $options, $step_id, $length, $visible = true)
111 {
112  global $module_id;
113 
114  $profilefield_handler = xoops_getModuleHandler('field', 'profile');
115  $obj = $profilefield_handler->create();
116  $obj->setVar('field_name', $name, true);
117  $obj->setVar('field_moduleid', $module_id, true);
118  $obj->setVar('field_show', 1);
119  $obj->setVar('field_edit', $canedit ? 1 : 0);
120  $obj->setVar('field_config', 0);
121  $obj->setVar('field_title', strip_tags($title), true);
122  $obj->setVar('field_description', strip_tags($description), true);
123  $obj->setVar('field_type', $type, true);
124  $obj->setVar('field_valuetype', $valuetype, true);
125  $obj->setVar('field_options', $options, true);
126  if ($canedit) {
127  $obj->setVar('field_maxlength', $length, true);
128  }
129 
130  $obj->setVar('field_weight', $weight, true);
131  $obj->setVar('cat_id', $category, true);
132  $obj->setVar('step_id', $step_id, true);
133  $profilefield_handler->insert($obj);
134 
135  profile_install_setPermissions($obj->getVar('field_id'), $module_id, $canedit, $visible);
136 
137  return true;
138  /*
139  //$GLOBALS['xoopsDB']->query("INSERT INTO ".$GLOBALS['xoopsDB']->prefix("profile_field")." VALUES (0, {$category}, '{$type}', {$valuetype}, '{$name}', " . $GLOBALS['xoopsDB']->quote($title) . ", " . $GLOBALS['xoopsDB']->quote($description) . ", 0, {$length}, {$weight}, '', 1, {$canedit}, 1, 0, '" . serialize($options) . "', {$step_id})");
140  $gperm_itemid = $obj->getVar('field_id');
141  unset($obj);
142  $gperm_modid = $module_id;
143  $sql = "INSERT INTO " . $GLOBALS['xoopsDB']->prefix("group_permission") .
144  " (gperm_groupid, gperm_itemid, gperm_modid, gperm_name) " .
145  " VALUES " .
146  ($canedit ?
147  " (" . XOOPS_GROUP_ADMIN . ", {$gperm_itemid}, {$gperm_modid}, 'profile_edit'), "
148  : "" ) .
149  ($canedit == 1 ?
150  " (" . XOOPS_GROUP_USERS . ", {$gperm_itemid}, {$gperm_modid}, 'profile_edit'), "
151  : "" ) .
152  " (" . XOOPS_GROUP_ADMIN . ", {$gperm_itemid}, {$gperm_modid}, 'profile_search'), " .
153  " (" . XOOPS_GROUP_USERS . ", {$gperm_itemid}, {$gperm_modid}, 'profile_search') " .
154  " ";
155  $GLOBALS['xoopsDB']->query($sql);
156 
157  if ( $visible ) {
158  $sql = "INSERT INTO " . $GLOBALS['xoopsDB']->prefix("profile_visibility") .
159  " (field_id, user_group, profile_group) " .
160  " VALUES " .
161  " ({$gperm_itemid}, " . XOOPS_GROUP_ADMIN . ", " . XOOPS_GROUP_ADMIN . "), " .
162  " ({$gperm_itemid}, " . XOOPS_GROUP_ADMIN . ", " . XOOPS_GROUP_USERS . "), " .
163  " ({$gperm_itemid}, " . XOOPS_GROUP_USERS . ", " . XOOPS_GROUP_ADMIN . "), " .
164  " ({$gperm_itemid}, " . XOOPS_GROUP_USERS . ", " . XOOPS_GROUP_USERS . "), " .
165  " ({$gperm_itemid}, " . XOOPS_GROUP_ANONYMOUS . ", " . XOOPS_GROUP_ADMIN . "), " .
166  " ({$gperm_itemid}, " . XOOPS_GROUP_ANONYMOUS . ", " . XOOPS_GROUP_USERS . ")" .
167  " ";
168  $GLOBALS['xoopsDB']->query($sql);
169  }
170  */
171 }
172 
173 function profile_install_setPermissions($field_id, $module_id, $canedit, $visible)
174 {
175  $gperm_itemid = $field_id;
176  $gperm_modid = $module_id;
177  $sql = "INSERT INTO " . $GLOBALS['xoopsDB']->prefix("group_permission") .
178  " (gperm_groupid, gperm_itemid, gperm_modid, gperm_name) " .
179  " VALUES " .
180  ($canedit ?
181  " (" . XOOPS_GROUP_ADMIN . ", {$gperm_itemid}, {$gperm_modid}, 'profile_edit'), "
182  : "" ) .
183  ($canedit == 1 ?
184  " (" . XOOPS_GROUP_USERS . ", {$gperm_itemid}, {$gperm_modid}, 'profile_edit'), "
185  : "" ) .
186  " (" . XOOPS_GROUP_ADMIN . ", {$gperm_itemid}, {$gperm_modid}, 'profile_search'), " .
187  " (" . XOOPS_GROUP_USERS . ", {$gperm_itemid}, {$gperm_modid}, 'profile_search') " .
188  " ";
189  $GLOBALS['xoopsDB']->queryF($sql);
190 
191  if ( $visible ) {
192  $sql = "INSERT INTO " . $GLOBALS['xoopsDB']->prefix("profile_visibility") .
193  " (field_id, user_group, profile_group) " .
194  " VALUES " .
195  " ({$gperm_itemid}, " . XOOPS_GROUP_ADMIN . ", " . XOOPS_GROUP_ADMIN . "), " .
196  " ({$gperm_itemid}, " . XOOPS_GROUP_ADMIN . ", " . XOOPS_GROUP_USERS . "), " .
197  " ({$gperm_itemid}, " . XOOPS_GROUP_USERS . ", " . XOOPS_GROUP_ADMIN . "), " .
198  " ({$gperm_itemid}, " . XOOPS_GROUP_USERS . ", " . XOOPS_GROUP_USERS . "), " .
199  " ({$gperm_itemid}, " . XOOPS_GROUP_ANONYMOUS . ", " . XOOPS_GROUP_ADMIN . "), " .
200  " ({$gperm_itemid}, " . XOOPS_GROUP_ANONYMOUS . ", " . XOOPS_GROUP_USERS . ")" .
201  " ";
202  $GLOBALS['xoopsDB']->queryF($sql);
203  }
204 }
205 
206 function profile_install_addCategory($name, $weight)
207 {
208  $GLOBALS['xoopsDB']->query("INSERT INTO ".$GLOBALS['xoopsDB']->prefix("profile_category")." VALUES (0, " . $GLOBALS['xoopsDB']->quote($name) . ", '', {$weight})");
209 }
210 
211 function profile_install_addStep($name, $desc, $order, $save)
212 {
213  $GLOBALS['xoopsDB']->query("INSERT INTO ".$GLOBALS['xoopsDB']->prefix("profile_regstep")." VALUES (0, " . $GLOBALS['xoopsDB']->quote($name) . ", " . $GLOBALS['xoopsDB']->quote($desc) . ", {$order}, {$save})");
214 }
215 ?>