private function addLocationField($userGroupSid) { $locationFieldDetails = array('id' => 'Location', 'caption' => 'Location', 'type' => 'location', 'is_required' => '0'); $locationField = new SJB_UserProfileField($locationFieldDetails); $locationField->setUserGroupSID($userGroupSid); SJB_UserProfileFieldManager::saveUserProfileField($locationField); }
public function execute() { $user_group_sid = isset($_REQUEST['user_group_sid']) ? $_REQUEST['user_group_sid'] : null; $user_group_info = SJB_UserGroupManager::getUserGroupInfoBySID($user_group_sid); $user_profile_field = new SJB_UserProfileField($_REQUEST); $user_profile_field->setUserGroupSID($user_group_sid); //infill instructions field //$user_profile_field->addInfillInstructions(SJB_Request::getVar('instructions')); $add_user_profile_field_form = new SJB_Form($user_profile_field); $form_is_submitted = isset($_REQUEST['action']) && $_REQUEST['action'] == 'add'; $errors = null; if ($form_is_submitted && $add_user_profile_field_form->isDataValid($errors)) { SJB_UserProfileFieldManager::saveUserProfileField($user_profile_field); if (SJB_Request::getVar('type', '') == 'youtube') { SJB_HelperFunctions::redirect(SJB_System::getSystemSettings("SITE_URL") . "/instruction_user_profile_field/?user_group_sid=" . $user_group_sid . "&user_field_sid=" . $user_profile_field->sid); } else { SJB_HelperFunctions::redirect(SJB_System::getSystemSettings("SITE_URL") . "/edit-user-profile/?user_group_sid=" . $user_group_sid); } } else { $template_processor = SJB_System::getTemplateProcessor(); $add_user_profile_field_form->registerTags($template_processor); $template_processor->assign("form_fields", $add_user_profile_field_form->getFormFieldsInfo()); $template_processor->assign("user_group_sid", $user_group_sid); $template_processor->assign("errors", $errors); $template_processor->assign("user_group_info", $user_group_info); $template_processor->display("add_user_profile_field.tpl"); } }
public static function getFieldBySID($user_profile_field_sid) { $user_profile_field_info = SJB_UserProfileFieldDBManager::getUserProfileFieldInfoBySID($user_profile_field_sid); if (empty($user_profile_field_info)) { return null; } $user_profile_field = new SJB_UserProfileField($user_profile_field_info); $user_profile_field->setUserGroupSID($user_profile_field_info['user_group_sid']); return $user_profile_field; }
public static function saveUserProfileField($user_profile_field, $recursive = false) { $user_group_sid = $user_profile_field->getUserGroupSID(); if ($user_group_sid) { $fieldID = false; $sid = $user_profile_field->getSID(); if ($sid) { $fieldInfo = parent::getObjectInfo('user_profile_fields', $sid); if (!empty($fieldInfo['id'])) { $fieldID = $fieldInfo['id']; } } parent::saveObject("user_profile_fields", $user_profile_field); $userFieldType = $user_profile_field->getPropertyValue('type'); if ($userFieldType == 'location') { if (!$sid) { $userProfileFeld = new SJB_UserProfileField(array('id' => 'Country', 'caption' => 'Country', 'type' => 'list')); $userProfileFeld->setUserGroupSID($user_group_sid); $userProfileFeld->addParentSID($user_profile_field->getSID()); self::saveUserProfileField($userProfileFeld, true); $userProfileFeld = new SJB_UserProfileField(array('id' => 'State', 'caption' => 'State', 'type' => 'list')); $userProfileFeld->setUserGroupSID($user_group_sid); $userProfileFeld->addParentSID($user_profile_field->getSID()); self::saveUserProfileField($userProfileFeld, true); $userProfileFeld = new SJB_UserProfileField(array('id' => 'City', 'caption' => 'City', 'type' => 'string')); $userProfileFeld->setUserGroupSID($user_group_sid); $userProfileFeld->addParentSID($user_profile_field->getSID()); self::saveUserProfileField($userProfileFeld, true); $userProfileFeld = new SJB_UserProfileField(array('id' => 'ZipCode', 'caption' => 'ZipCode', 'type' => 'geo')); $userProfileFeld->setUserGroupSID($user_group_sid); $userProfileFeld->addParentSID($user_profile_field->getSID()); self::saveUserProfileField($userProfileFeld, true); $userProfileFeld = new SJB_UserProfileField(array('id' => 'Address', 'caption' => 'Address', 'type' => 'string')); $userProfileFeld->setUserGroupSID($user_group_sid); $userProfileFeld->addParentSID($user_profile_field->getSID()); self::saveUserProfileField($userProfileFeld, true); } parent::saveLocationField("users", "user_profile_fields", $user_profile_field, $fieldID); } else { if (!$recursive) { parent::saveField("users", "user_profile_fields", $user_profile_field, $fieldID); } } if ($user_profile_field->getOrder()) { return true; } $max_order = SJB_DB::queryValue("SELECT MAX(`order`) FROM user_profile_fields WHERE user_group_sid = ?n", $user_group_sid); $next_order = $max_order + 1; return SJB_DB::query("UPDATE user_profile_fields SET user_group_sid = ?n, `order` = ?n WHERE sid = ?n", $user_group_sid, $next_order, $user_profile_field->getSID()); } return false; }
public function execute() { $tp = SJB_System::getTemplateProcessor(); $user_group_sid = SJB_Request::getVar('user_group_sid', null); $user_group_info = SJB_UserGroupManager::getUserGroupInfoBySID($user_group_sid); $user_profile_field_sid = SJB_Request::getVar('sid', null); if (!is_null($user_profile_field_sid)) { $user_profile_field_info = SJB_UserProfileFieldManager::getFieldInfoBySID($user_profile_field_sid); $user_profile_field_old_id = $user_profile_field_info['id']; $user_profile_field_info = array_merge($user_profile_field_info, $_REQUEST); $user_profile_field = new SJB_UserProfileField($user_profile_field_info); $user_profile_field->setSID($user_profile_field_sid); $user_profile_field->setUserGroupSID($user_group_sid); if (!in_array($user_profile_field->field_type, array('video', 'picture', 'logo', 'file', 'location'))) { $default_value = array('id' => 'default_value', 'sid' => isset($user_profile_field_info['sid']) ? $user_profile_field_info['sid'] : '', 'caption' => 'Default Value', 'value' => isset($user_profile_field_info['default_value']) ? $user_profile_field_info['default_value'] : '', 'type' => $user_profile_field->field_type, 'length' => '', 'is_required' => false, 'is_system' => true); $additionalParameters = array(); switch ($user_profile_field->field_type) { case 'list': if (isset($user_profile_field_info['list_values'])) { $additionalParameters = array('list_values' => $user_profile_field_info['list_values']); } break; case 'multilist': if (isset($user_profile_field_info['list_values'])) { $additionalParameters = array('list_values' => $user_profile_field_info['list_values']); } if (!is_array($default_value['value'])) { if (strpos($default_value['value'], ',')) { $default_value['value'] = explode(',', $default_value['value']); } else { $default_value['value'] = array($default_value['value']); } } break; case 'tree': if (isset($user_profile_field_info['tree_values'])) { $additionalParameters = array('tree_values' => $user_profile_field_info['tree_values']); } if (isset($user_profile_field_info['display_as_select_boxes'])) { $additionalParameters['display_as_select_boxes'] = $user_profile_field_info['display_as_select_boxes']; } break; } $default_value = array_merge($default_value, $additionalParameters); $user_profile_field->addProperty($default_value); } if (in_array($user_profile_field->field_type, array('tree', 'multilist', 'list'))) { $sort_by_alphabet = array('id' => 'sort_by_alphabet', 'caption' => 'Sort Values By Alphabet', 'value' => isset($user_profile_field_info['sort_by_alphabet']) ? $user_profile_field_info['sort_by_alphabet'] : '', 'type' => 'boolean', 'lenght' => '', 'is_required' => false, 'is_system' => true); $user_profile_field->addProperty($sort_by_alphabet); } $edit_form = new SJB_Form($user_profile_field); $form_submitted = SJB_Request::getVar('action'); if (in_array($user_profile_field->field_type, array('multilist', 'list'))) { $user_profile_field->addDisplayAsProperty($user_profile_field_info['display_as']); } // infill instructions should be the last element in form // no instructions for tree field type if (!in_array($user_profile_field->getFieldType(), array('complex', 'tree', 'location'))) { if ($form_submitted) { $user_profile_field->addInfillInstructions(SJB_Request::getVar('instructions')); } else { $user_profile_field->addInfillInstructions(isset($user_profile_field_info['instructions']) ? $user_profile_field_info['instructions'] : ''); } } /** * "Display as" options for TREE TYPE */ if ('tree' == $user_profile_field->getFieldType()) { $user_profile_field->addProperty(SJB_TreeType::getDisplayAsDetail(isset($user_profile_field_info['display_as_select_boxes']) ? $user_profile_field_info['display_as_select_boxes'] : '')); $treeLevelsNumber = SJB_UserProfileFieldTreeManager::getTreeDepthBySID($user_profile_field_sid); $tp->assign('tree_levels_number', $treeLevelsNumber); // treee levels captions for ($i = 1; $i <= $treeLevelsNumber; $i++) { $levelID = 'level_' . $i; $user_profile_field->addProperty(array('id' => $levelID, 'caption' => $i . ' Level Name', 'value' => isset($user_profile_field_info[$levelID]) ? $user_profile_field_info[$levelID] : '', 'type' => 'string', 'length' => '250', 'is_required' => false, 'is_system' => true)); } } // end of ""Display as" options for TREE TYPE" $edit_form = new SJB_Form($user_profile_field); $errors = array(); if ($form_submitted && $edit_form->isDataValid($errors)) { SJB_UserProfileFieldManager::saveUserProfileField($user_profile_field); $user_profile_field_new_id = $user_profile_field_info['id']; if ($user_profile_field_old_id != $user_profile_field_new_id) { SJB_UserProfileFieldManager::changeUserPropertyIDs($user_group_sid, $user_profile_field_old_id, $user_profile_field_new_id); } if ($form_submitted == 'save_info') { SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . '/edit-user-profile/?user_group_sid=' . $user_group_sid); } } if ($user_profile_field_info['id'] == 'Location' && empty($errors['ID'])) { $edit_form->makeDisabled('id'); } $edit_form->registerTags($tp); $edit_form->makeDisabled('type'); $tp->assign('user_group_sid', $user_group_sid); $tp->assign('form_fields', $edit_form->getFormFieldsInfo()); $tp->assign('errors', $errors); $tp->assign('field_type', $user_profile_field->getFieldType()); $tp->assign('userTree', true); $tp->assign('user_profile_field_info', $user_profile_field_info); $tp->assign('user_profile_field_sid', $user_profile_field_sid); $tp->assign('user_group_info', $user_group_info); $tp->display('edit_user_profile_field.tpl'); } }
public function execute() { $tp = SJB_System::getTemplateProcessor(); $action = SJB_Request::getVar('action', 'list'); $fieldSID = SJB_Request::getVar('field_sid', false); $parentSID = SJB_Request::getVar('sid', false); $userGroupSID = SJB_Request::getVar('user_group_sid', false); $errors = null; if ($fieldSID) { $tp->assign('field_sid', $fieldSID); $fieldInfo = SJB_UserProfileFieldManager::getFieldInfoBySID($fieldSID); $userGroupInfo = SJB_UserGroupManager::getUserGroupInfoBySID($fieldInfo['user_group_sid']); $userGroupSID = isset($userGroupInfo['sid']) ? $userGroupInfo['sid'] : 0; $tp->assign("field_info", $fieldInfo); $tp->assign("group_info", $userGroupInfo); $tp->assign("group_sid", $userGroupSID); switch ($action) { case 'edit': $formSubmitted = SJB_Request::getVar('submit_form', false); $sid = SJB_Request::getVar('sid', false); $userFieldSid = SJB_Request::getVar('sid', 0); $userFieldInfo = SJB_UserProfileFieldDBManager::getUserProfileFieldInfoBySID($userFieldSid); $userFieldInfo = array_merge($userFieldInfo, $_REQUEST); if (!empty($userFieldInfo['default_value_setting']) && $userFieldInfo['default_value_setting'] == 'default_country') { $userFieldInfo['default_value'] = $userFieldInfo['default_value_setting']; } $userField = new SJB_UserProfileField($userFieldInfo); $userField->deleteProperty('type'); $userField->addProperty(array('id' => 'hidden', 'caption' => 'Hidden', 'type' => 'boolean', 'value' => isset($userFieldInfo['hidden']) ? $userFieldInfo['hidden'] : '', 'is_system' => true)); $additionalParameters = array(); if ($userFieldInfo['id'] == 'Country') { $additionalParameters = array('list_values' => SJB_CountriesManager::getAllCountriesCodesAndNames()); $userField->addProperty(array('id' => 'display_as', 'caption' => 'Display Country as', 'type' => 'list', 'value' => isset($userFieldInfo['display_as']) ? $userFieldInfo['display_as'] : '', 'list_values' => array(array('id' => 'country_name', 'caption' => 'Country Name'), array('id' => 'country_code', 'caption' => 'Country Code')), 'is_system' => true, 'is_required' => true)); } elseif ($userFieldInfo['id'] == 'State') { $defaultCountry = SJB_UserProfileFieldManager::getDefaultCountryByParentSID($fieldSID); $additionalParameters['list_values'] = SJB_StatesManager::getStatesNamesByCountry($defaultCountry); $additionalParameters['comment'] = !$defaultCountry ? 'Please select default country first to select default State' : ''; $userField->addProperty(array('id' => 'display_as', 'caption' => 'Display State as', 'type' => 'list', 'value' => isset($userFieldInfo['display_as']) ? $userFieldInfo['display_as'] : '', 'list_values' => array(array('id' => 'state_name', 'caption' => 'State Name'), array('id' => 'state_code', 'caption' => 'State Code')), 'is_system' => true, 'is_required' => true)); } $defaultValue = array('id' => 'default_value', 'sid' => isset($userFieldInfo['sid']) ? $userFieldInfo['sid'] : '', 'caption' => 'Default Value', 'value' => isset($userFieldInfo['default_value']) ? $userFieldInfo['default_value'] : '', 'type' => $userField->field_type, 'length' => '', 'is_required' => false, 'is_system' => true); $defaultValue = array_merge($defaultValue, $additionalParameters); $userField->addProperty($defaultValue); if ($formSubmitted) { $userField->addInfillInstructions(SJB_Request::getVar('instructions')); } else { $userField->addInfillInstructions(isset($userFieldInfo['instructions']) ? $userFieldInfo['instructions'] : ''); } $UserFieldForm = new SJB_Form($userField); $UserFieldForm->registerTags($tp); $userField->setSID($sid); $userField->setUserGroupSID($userGroupSID); $addValidParam = array('field' => 'parent_sid', 'value' => $parentSID); if ($formSubmitted && $UserFieldForm->isDataValid($errors, $addValidParam)) { SJB_UserProfileFieldManager::saveUserProfileField($userField); if (SJB_Request::getVar('apply') == 'no' && empty($errors)) { SJB_HelperFunctions::redirect(SJB_System::getSystemSettings("SITE_URL") . "/edit-user-profile-field/edit-location-fields/?field_sid=" . $fieldSID); } } $UserFieldForm->makeDisabled('id'); $tp->assign('profileFieldAsDV', !empty($userFieldInfo['profile_field_as_dv'])); $tp->assign('userFieldInfo', $userFieldInfo); $tp->assign("field_type", $userField->getFieldType()); $tp->assign("sid", $userFieldSid); $tp->assign("form_fields", $UserFieldForm->getFormFieldsInfo()); $tp->assign("errors", $errors); $tp->display("edit_location_field.tpl"); break; case 'move_up': SJB_UserProfileFieldManager::moveUpFieldBySID($fieldSID); SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/edit-user-profile-field/edit-location-fields/?field_sid=" . $parentSID); break; case 'move_down': SJB_UserProfileFieldManager::moveDownFieldBySID($fieldSID); SJB_HelperFunctions::redirect(SJB_System::getSystemSettings('SITE_URL') . "/edit-user-profile-field/edit-location-fields/?field_sid=" . $parentSID); break; } if ($action == 'list') { $userFieldsInfo = SJB_UserProfileFieldManager::getUserProfileFieldsInfoByParentSID($fieldSID); $userFields = array(); $userFieldSids = array(); foreach ($userFieldsInfo as $userFieldInfo) { $userField = new SJB_UserProfileField($userFieldInfo); $userField->addProperty(array('id' => 'hidden', 'caption' => 'Hidden', 'type' => 'boolean', 'value' => isset($userFieldInfo['hidden']) ? $userFieldInfo['hidden'] : '', 'is_system' => true)); $userField->setSID($userFieldInfo['sid']); $userFields[] = $userField; $userFieldSids[] = $userFieldInfo['sid']; } $form_collection = new SJB_FormCollection($userFields); $form_collection->registerTags($tp); $tp->assign("user_field_sids", $userFieldSids); $tp->assign("user_group_sid", $userGroupSID); $tp->display("user_location_fields.tpl"); } } }