Example #1
0
 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;
 }
Example #4
0
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $errors = array();
     $selected = array();
     $a_selected = array();
     $defaultValue = array();
     $user_group_sid = SJB_Request::getVar('user_group_sid');
     $id = SJB_Request::getVar('id', 0);
     $tree = '';
     $username = '';
     if ($id > 0) {
         // load exist parser
         $parser_from_id = SJB_XmlImport::getSystemParsers($id);
         if (isset($parser_from_id[0]['name'])) {
             $parser_from_id = $parser_from_id[0];
         }
         $xml = $parser_from_id['xml'];
         $xml = SJB_XmlImport::cleanXmlFromImport($xml);
         $username = SJB_XmlImport::encodeSpecialEntities($parser_from_id['username']);
         $defaultValue = $parser_from_id['default_value_user'] != '' ? unserialize($parser_from_id['default_value_user']) : array();
         if ($parser_from_id['maper_user'] != '') {
             $map = unserialize($parser_from_id['maper_user']);
             foreach ($map as $key => $val) {
                 unset($map[$key]);
                 $key = SJB_XmlImport::encodeSpecialEntities($key);
                 $map[$key] = $val;
             }
             $selected = array_values($map);
             $a_selected = array_keys($map);
         }
     } else {
         $xml = SJB_XmlImport::cleanXmlFromImport(base64_decode($_REQUEST['xml']));
     }
     $sxml = new simplexml();
     $xml = stripslashes($xml);
     $tree = $sxml->xml_load_file($xml, 'array');
     if (isset($tree['@content'])) {
         $tree = $tree[0];
     }
     if (is_array($tree)) {
         $tree = SJB_XmlImport::convertArray($tree);
         foreach ($tree as $key => $val) {
             unset($tree[$key]);
             $key = SJB_XmlImport::encodeSpecialEntities($key);
             $tree[$key]['val'] = $val;
             $tree[$key]['key'] = $key;
         }
         $user_profile_fields = SJB_UserDetails::getDetails($user_group_sid);
         $i = count($user_profile_fields);
         foreach ($user_profile_fields as $key => $val) {
             if ($val['type'] == 'location') {
                 foreach ($val['fields'] as $fieldInfo) {
                     $userField = new SJB_UserProfileField($fieldInfo);
                     $userField->setSID($fieldInfo['sid']);
                     $user_profile_fields[$i]['id'] = $val['id'] . '_' . $userField->details->properties['id']->value;
                     $user_profile_fields[$i]['caption'] = $userField->details->properties['id']->value;
                     $i++;
                 }
                 unset($user_profile_fields[$key]);
             }
             if ($val['id'] == 'username') {
                 unset($user_profile_fields[$key]);
             }
         }
     } else {
         $errors[] = 'XML syntaxis error.';
     }
     $tp->assign('username', $username);
     $tp->assign('id', $id);
     $tp->assign('selecteduser', $selected);
     $tp->assign('a_selecteduser', $a_selected);
     $tp->assign('xml', htmlspecialchars($xml));
     $tp->assign('errors', $errors);
     $tp->assign('tree', $tree);
     $tp->assign("fields", $user_profile_fields);
     $tp->assign('user_default_value', $defaultValue);
     $tp->display('user_fields.tpl');
 }
 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');
     }
 }
Example #7
0
 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");
         }
     }
 }