diff --git a/classes/ColdTrick/ProfileManager/Users.php b/classes/ColdTrick/ProfileManager/Users.php index 9097847..2f9fda3 100644 --- a/classes/ColdTrick/ProfileManager/Users.php +++ b/classes/ColdTrick/ProfileManager/Users.php @@ -7,6 +7,25 @@ */ class Users { + /** + * Changes the register form view vars so profile icons can be uploaded + * + * @param string $hook_name name of the hook + * @param string $entity_type type of the hook + * @param unknown $return_value return value + * @param unknown $parameters hook parameters + * + * @return void + */ + public static function registerViewVars($hook_name, $entity_type, $return_value, $parameters) { + if (elgg_extract('action_name', $return_value) !== 'register') { + return; + } + + $return_value['enctype'] = 'multipart/form-data'; + return $return_value; + } + /** * Adds uploaded files to your profile * diff --git a/graphics/accordion.png b/graphics/accordion.png deleted file mode 100644 index f83684b..0000000 Binary files a/graphics/accordion.png and /dev/null differ diff --git a/start.php b/start.php index 9deda81..0fdb1d8 100644 --- a/start.php +++ b/start.php @@ -32,10 +32,8 @@ function profile_manager_init() { elgg_extend_view('css/admin', 'css/profile_manager/multiselect.css'); elgg_extend_view('css/elgg', 'css/profile_manager/multiselect.css'); elgg_extend_view('css/elgg', 'css/profile_manager/global.css'); - elgg_extend_view('css/elgg', 'css/profile_manager/site'); - - elgg_extend_view('js/elgg', 'js/profile_manager/site.js'); - + elgg_extend_view('css/elgg', 'css/profile_manager/site.css'); + // Register Page handler elgg_register_page_handler('profile_manager', 'profile_manager_page_handler'); @@ -73,6 +71,8 @@ function profile_manager_init() { // register hook for saving the new username elgg_register_plugin_hook_handler('usersettings:save', 'user', '\ColdTrick\ProfileManager\Users::usernameChange'); + elgg_register_plugin_hook_handler('view_vars', 'input/form', '\ColdTrick\ProfileManager\Users::registerViewVars'); + // site join event handler elgg_register_event_handler('create', 'member_of_site', '\ColdTrick\ProfileManager\Sites::createMember'); elgg_register_event_handler('delete', 'member_of_site', '\ColdTrick\ProfileManager\Sites::deleteMember'); diff --git a/views/default/css/profile_manager/global.css b/views/default/css/profile_manager/global.css index 5c0cc9f..fa45b60 100644 --- a/views/default/css/profile_manager/global.css +++ b/views/default/css/profile_manager/global.css @@ -1,12 +1,12 @@ #custom_fields_more_info_tooltip { - position:absolute; - border:1px solid #333333; - background:#e4ecf5; - color:#333333; - padding:5px; - display:none; + position: absolute; + border: 1px solid #333333; + background: #e4ecf5; + color: #333333; + padding: 5px; + display: none; width: 250px; line-height: 1.2em; font-size: 90%; - z-index:20000; + z-index: 20000; } \ No newline at end of file diff --git a/views/default/css/profile_manager/site.php b/views/default/css/profile_manager/site.css similarity index 68% rename from views/default/css/profile_manager/site.php rename to views/default/css/profile_manager/site.css index b1d0c16..3dc1fad 100644 --- a/views/default/css/profile_manager/site.php +++ b/views/default/css/profile_manager/site.css @@ -1,6 +1,3 @@ - /* widgets */ #widget_profile_completeness_container { border: 1px solid #AAAAAA; @@ -30,6 +27,7 @@ border: 2px solid #DEDEDE; cursor: pointer; margin-top: 5px; + margin-bottom: 0px; padding: 5px; } @@ -37,29 +35,13 @@ border-style: solid; border-color: #DEDEDE; border-width: 0 2px 2px 2px; - padding: 5px 5px 0px; + padding: 5px; } #custom_fields_userdetails .ui-accordion-header:hover { border-color: #CCCCCC; } -#custom_fields_userdetails .ui-accordion-header .ui-icon { - margin-top: 1px; - background: url(accordion.png) no-repeat -16px 0; - width: 16px; - height: 16px; - float: left; -} - -#custom_fields_userdetails .ui-accordion-header:hover .ui-icon{ - background-position: -32px 0; -} - -#custom_fields_userdetails .ui-accordion-header.ui-state-active .ui-icon { - background-position: 0 0; -} - /* fix for max-height multi-select drop down*/ .ui-dropdownchecklist-dropcontainer { max-height: 150px; @@ -84,7 +66,6 @@ padding-right: 25px; } -/* extra explicit for IE7 */ .elgg-icon.profile_manager_validate_icon { margin-left: -22px; margin-top: 8px; @@ -125,27 +106,11 @@ #profile_manager_username { position: relative; } - -.elgg-icon-profile-manager-loading, -.elgg-icon-profile-manager-valid, -.elgg-icon-profile-manager-invalid { +#profile_manager_username > .elgg-icon { position: absolute; right: 5px; top: 8px; display: none; } -.elgg-icon-profile-manager-loading { - background-image: url(loading.gif); -} - -.elgg-icon-profile-manager-valid { - background-position: 0 -126px; -} - -.elgg-icon-profile-manager-invalid { - - background-position: 0 -252px; -} - /* End Account Username Change */ \ No newline at end of file diff --git a/views/default/forms/profile/edit.php b/views/default/forms/profile/edit.php index 1d23e48..8b94ec0 100644 --- a/views/default/forms/profile/edit.php +++ b/views/default/forms/profile/edit.php @@ -4,56 +4,51 @@ * * Replaces default Elgg profile edit form * -* @package profile_manager * @author ColdTrick IT Solutions * @copyright Coldtrick IT Solutions 2009 * @link http://www.coldtrick.com/ * -* @uses $vars['entity'] The user entity -* @uses $vars['profile'] Profile items from get_config('profile_fields'), defined in profile/start.php for now +* @uses $user The user entity */ -elgg_require_js("profile_manager/profile_edit"); -echo elgg_view("profile/edit/name", $vars); +$user = elgg_extract('entity', $vars); + +elgg_require_js('profile_manager/profile_edit'); + +echo elgg_view('profile/edit/name', $vars); // Build fields -$categorized_fields = profile_manager_get_categorized_fields($vars['entity'], true); +$categorized_fields = profile_manager_get_categorized_fields($user, true); $cats = $categorized_fields['categories']; $fields = $categorized_fields['fields']; -$edit_profile_mode = elgg_get_plugin_setting("edit_profile_mode", "profile_manager"); -$simple_access_control = elgg_get_plugin_setting("simple_access_control","profile_manager"); +$edit_profile_mode = elgg_get_plugin_setting('edit_profile_mode', 'profile_manager'); +$simple_access_control = elgg_get_plugin_setting('simple_access_control','profile_manager'); -$access_id = get_default_access($vars["entity"]); +$access_id = get_default_access($user); if (!empty($cats)) { // Profile type selector - $setting = elgg_get_plugin_setting("profile_type_selection", "profile_manager"); - if (empty($setting)) { - // default value - $setting = "user"; - } + $setting = elgg_get_plugin_setting('profile_type_selection', 'profile_manager', 'user'); - $profile_type = $vars['entity']->custom_profile_type; + $profile_type = $user->custom_profile_type; // can user edit? or just admins - if ($setting == "user" || elgg_is_admin_logged_in()) { + if ($setting == 'user' || elgg_is_admin_logged_in()) { // get profile types - $options = array( - "type" => "object", - "subtype" => CUSTOM_PROFILE_FIELDS_PROFILE_TYPE_SUBTYPE, - "limit" => false, - "owner_guid" => elgg_get_site_entity()->getGUID() - ); - $types = elgg_get_entities($options); + $types = elgg_get_entities([ + 'type' => 'object', + 'subtype' => CUSTOM_PROFILE_FIELDS_PROFILE_TYPE_SUBTYPE, + 'limit' => false, + 'owner_guid' => elgg_get_site_entity()->getGUID(), + ]); if ($types) { - $types_description = ""; + $types_description = ''; - $dropdown_options = array(); - $dropdown_options[""] = elgg_echo("profile_manager:profile:edit:custom_profile_type:default"); + $dropdown_options = ['' => elgg_echo('profile_manager:profile:edit:custom_profile_type:default')]; foreach ($types as $type) { @@ -63,90 +58,95 @@ $description = $type->getDescription(); if (!empty($description)) { - $types_description = "
"; - $types_description .= "

" . elgg_echo("profile_manager:profile:edit:custom_profile_type:description") . "

"; - $types_description .= $description; - $types_description .= "
"; + $type_description = elgg_format_element('h3', [], elgg_echo("profile_manager:profile:edit:custom_profile_type:description")); + $type_description .= $description; + + $types_description .= elgg_format_element('div', [ + 'id' => 'custom_profile_type_description_' . $type->getGUID(), + 'class' => 'custom_profile_type_description hidden', + ], $type_description); } } - echo "
"; - echo ""; - echo elgg_view("input/dropdown", array("name" => "custom_profile_type", - "id" => "custom_profile_type", - "options_values" => $dropdown_options, - "onchange" => "elgg.profile_manager.change_profile_type();", - "value" => $vars['entity']->custom_profile_type)); - echo elgg_view('input/hidden', array('name' => 'accesslevel[custom_profile_type]', 'value' => ACCESS_PUBLIC)); - echo "
"; + $types_input = elgg_format_element('label', [], elgg_echo('profile_manager:profile:edit:custom_profile_type:label')); + $types_input .= elgg_view('input/dropdown', [ + 'name' => 'custom_profile_type', + 'id' => 'custom_profile_type', + 'options_values' => $dropdown_options, + 'onchange' => 'elgg.profile_manager.change_profile_type();', + 'value' => $user->custom_profile_type, + 'class' => 'mlm', + ]); + $types_input .= elgg_view('input/hidden', ['name' => 'accesslevel[custom_profile_type]', 'value' => ACCESS_PUBLIC]); + echo elgg_format_element('div', [], $types_input); echo $types_description; } } else { if (!empty($profile_type)) { - echo elgg_view("input/hidden", array("name" => "custom_profile_type", "value" => $profile_type)); - echo elgg_view("input/hidden", array("name" => "accesslevel[custom_profile_type]", "value" => ACCESS_PUBLIC)); + echo elgg_view('input/hidden', ['name' => 'custom_profile_type', 'value' => $profile_type]); + echo elgg_view('input/hidden', ['name' => 'accesslevel[custom_profile_type]', 'value' => ACCESS_PUBLIC]); } } - $tabs = array(); - $tab_content = ""; - $list_content = ""; + $tabs = []; + $tab_content = ''; + $list_content = ''; foreach ($cats as $cat_guid => $cat) { // make nice title for category - if (empty($cat_guid) || !($cat instanceof \ColdTrick\ProfileManager\CustomFieldCategory)) { - $cat_title = elgg_echo("profile_manager:categories:list:default"); - } else { + $cat_title = elgg_echo('profile_manager:categories:list:default'); + if ($cat instanceof \ColdTrick\ProfileManager\CustomFieldCategory) { $cat_title = $cat->getTitle(); } - $class = "elgg-module elgg-module-info"; + $class = ''; + if ($edit_profile_mode !== 'tabbed') { + $class .= 'elgg-module elgg-module-info'; + } if (!empty($cat_guid) && ($cat instanceof \ColdTrick\ProfileManager\CustomFieldCategory)) { - - $profile_type_options = array( - "type" => "object", - "subtype" => CUSTOM_PROFILE_FIELDS_PROFILE_TYPE_SUBTYPE, - "limit" => false, - "owner_guid" => $cat->getOwnerGUID(), - "site_guid" => $cat->site_guid, - "relationship" => CUSTOM_PROFILE_FIELDS_PROFILE_TYPE_CATEGORY_RELATIONSHIP, - "relationship_guid" => $cat_guid, - "inverse_relationship" => true - ); - - if ($profile_types = elgg_get_entities_from_relationship($profile_type_options)) { + + $profile_types = elgg_get_entities_from_relationship([ + 'type' => 'object', + 'subtype' => CUSTOM_PROFILE_FIELDS_PROFILE_TYPE_SUBTYPE, + 'limit' => false, + 'owner_guid' => $cat->getOwnerGUID(), + 'site_guid' => $cat->site_guid, + 'relationship' => CUSTOM_PROFILE_FIELDS_PROFILE_TYPE_CATEGORY_RELATIONSHIP, + 'relationship_guid' => $cat_guid, + 'inverse_relationship' => true, + ]); + if ($profile_types) { - $class .= " custom_fields_edit_profile_category"; + $class .= ' custom_fields_edit_profile_category'; // add extra class so it can be toggle in the display $hidden_category = true; foreach ($profile_types as $type) { - $class .= " custom_profile_type_" . $type->getGUID(); + $class .= ' custom_profile_type_' . $type->getGUID(); if ($type->getGUID() === (int) $profile_type) { $hidden_category = false; } } if ($hidden_category) { - $class .= " hidden"; + $class .= ' hidden'; } } } - $tab_content .= "
"; + $tab_content .= "
"; - $list_content .= "
"; + $list_content .= "
"; if (count($cats) > 1) { - $list_content .= "
"; - $list_content .= "

" . $cat_title . "

"; - $list_content .= "
"; + $cat_header = elgg_format_element('h3', [], $cat_title); + $list_content .= elgg_format_element('div', ['class' => 'elgg-head'], $cat_header); } - $list_content .= "
"; - $list_content .= "
"; + $list_content .= '
'; + $list_content .= '
'; // display each field for currect category - $hide_non_editables = elgg_get_plugin_setting("hide_non_editables", "profile_manager"); + $hide_non_editables = elgg_get_plugin_setting('hide_non_editables', 'profile_manager'); $visible_fields = 0; @@ -157,39 +157,37 @@ $options = $field->getOptions(); // get type of field - if ($field->user_editable == "no") { - $valtype = "non_editable"; + if ($field->user_editable == 'no') { + $valtype = 'non_editable'; } else { $valtype = $field->metadata_type; } - // make title - $title = $field->getTitle(); - + // get value - $metadata = elgg_get_metadata(array( - 'guid' => $vars['entity']->guid, + $metadata = elgg_get_metadata([ + 'guid' => $user->guid, 'metadata_name' => $metadata_name, - 'limit' => false - )); + 'limit' => false, + ]); if ($metadata) { $metadata = $metadata[0]; - $value = $vars['entity']->$metadata_name; + $value = $user->$metadata_name; $access_id = $metadata->access_id; } else { $value = ''; - $access_id = get_default_access($vars["entity"]); + $access_id = get_default_access($user); } - if ($hide_non_editables == "yes" && ($valtype == "non_editable")) { - $field_result = "'; - $list_content .= "
"; - $list_content .= "
"; - $list_content .= "
"; + $list_content .= ''; + $list_content .= '
'; + $list_content .= '
'; } - if (($edit_profile_mode == "tabbed") && (count($cats) > 1)) { - ?> -
- $tabs)); ?> -
-
- -
- 1)) { + echo elgg_format_element('div', ['id' => 'profile_manager_profile_edit_tabs'], elgg_view('navigation/tabs', ['tabs' => $tabs])); + echo elgg_format_element('div', ['id' => 'profile_manager_profile_edit_tab_content_wrapper'], $tab_content); } else { echo $list_content; } } -if ($simple_access_control == "yes") { - ?> -
- - 'simple_access_control', 'value' => $access_id, 'class' => 'simple_access_control', 'onchange' => 'set_access_control(this.value)')); ?> -
- + $simple_access_control_input = elgg_format_element('label', [], elgg_echo('profile_manager:simple_access_control')); + $simple_access_control_input .= elgg_view('input/access', [ + 'name' => 'simple_access_control', + 'value' => $access_id, + 'class' => 'simple_access_control mlm hidden', + ]); + + echo elgg_format_element('div', ['class' => 'profile-manager-simple-access-control'], $simple_access_control_input); + + ?> -
- 'guid', 'value' => $vars['entity']->guid)); - echo elgg_view('input/submit', array('value' => elgg_echo('save'))); -?> -
+$foot = elgg_view('input/hidden', ['name' => 'guid', 'value' => $user->guid]); +$foot .= elgg_view('input/submit', ['value' => elgg_echo('save')]); + +echo elgg_format_element('div', ['class' => 'elgg-foot'], $foot); diff --git a/views/default/forms/profile_manager/category.php b/views/default/forms/profile_manager/category.php index 0bef070..69a016d 100644 --- a/views/default/forms/profile_manager/category.php +++ b/views/default/forms/profile_manager/category.php @@ -55,7 +55,7 @@ $formbody = ""; $formbody .= ""; $formbody .= ""; $formbody .= ""; $formbody .= "'; + $options_table .= ''; + $options_table .= ''; + $options_table .= elgg_format_element('td', [], elgg_echo("profile_manager:admin:{$option}:description")); + $options_table .= ''; +} -$type_control = elgg_view('input/dropdown', array('name' => 'metadata_type', 'options_values' => $options_values, 'onchange' => 'elgg.profile_manager.change_field_type();', "value" => $metadata_type)); +$options_table = elgg_format_element('table', [], $options_table); -$formbody .= elgg_echo('profile_manager:admin:metadata_name') . ":" . elgg_view('input/text', array('name' => 'metadata_name', "value" => $metadata_name)); -$formbody .= elgg_echo('profile_manager:admin:metadata_label') . "*:" . elgg_view('input/text', array('name' => 'metadata_label', "value" => $metadata_label)); -$formbody .= elgg_echo('profile_manager:admin:metadata_hint') . "*:" . elgg_view('input/text', array('name' => 'metadata_hint', "value" => $metadata_hint)); -$formbody .= elgg_echo('profile_manager:admin:metadata_placeholder') . "*:" . elgg_view('input/text', array('name' => 'metadata_placeholder', "value" => $metadata_placeholder)); -$formbody .= elgg_echo('profile_manager:admin:field_type') . ": " . $type_control; -$formbody .= "
" . elgg_echo('profile_manager:admin:metadata_options') . "*:" . elgg_view('input/text', array('name' => 'metadata_options', "value" => $metadata_options)) . "
"; +$options_title = elgg_echo('profile_manager:admin:additional_options'); -$formbody .= "

" . elgg_echo("profile_manager:admin:additional_options") . "

"; +$formbody .= elgg_view_module('inline', $options_title, $options_table); -$formbody .= "
"; -$formbody .= elgg_echo('profile_manager:admin:metadata_name') . ":"; +$formbody .= elgg_echo('profile_manager:admin:metadata_name') . "*:"; $formbody .= elgg_view('input/text', [ 'name' => 'metadata_name', 'value' => $metadata_name, @@ -95,7 +95,7 @@ $formbody .= "
"; -$formbody .= elgg_echo('profile_manager:admin:metadata_label') . "*:"; +$formbody .= elgg_echo('profile_manager:admin:metadata_label') . ":"; $formbody .= elgg_view('input/text', [ 'name' => 'metadata_label', 'value' => $metadata_label, diff --git a/views/default/forms/profile_manager/group_field.php b/views/default/forms/profile_manager/group_field.php index 2eef1ea..11ff30a 100644 --- a/views/default/forms/profile_manager/group_field.php +++ b/views/default/forms/profile_manager/group_field.php @@ -15,26 +15,25 @@ return; } -if ($guid = get_input("guid")) { - if ($entity = get_entity($guid)) { - if ($entity instanceof \ColdTrick\ProfileManager\CustomGroupField) { - $vars["entity"] = $entity; - } - } +$guid = get_input('guid'); + +$entity = get_entity($guid); +if (!($entity instanceof \ColdTrick\ProfileManager\CustomGroupField)) { + $entity = null; } $form_title = elgg_echo('profile_manager:group_fields:add'); -$options_values = array(); -$option_classes = array(); +$options_values = []; +$option_classes = []; -$types = profile_manager_get_custom_field_types("custom_profile_field_types"); +$types = profile_manager_get_custom_field_types('custom_profile_field_types'); if ($types) { foreach ($types as $type) { $options_values[$type->type] = $type->name; foreach ($type->options as $option_name => $option_value) { if ($option_value) { - $option_classes[$option_name] .= " field_option_enable_" . $type->type; + $option_classes[$option_name] .= ' field_option_enable_' . $type->type; } } } @@ -50,93 +49,73 @@ $blank_available = null; $admin_only = null; -if ($vars["entity"]) { +if ($entity) { $form_title = elgg_echo('profile_manager:group_fields:edit'); - $guid = $vars["entity"]->guid; - $metadata_name = $vars["entity"]->metadata_name; - $metadata_label = $vars["entity"]->metadata_label; - $metadata_hint = $vars["entity"]->metadata_hint; - $metadata_placeholder = $vars["entity"]->metadata_placeholder; - $metadata_type = $vars["entity"]->metadata_type; - $metadata_options = $vars["entity"]->metadata_options; + $guid = $entity->guid; + $metadata_name = $entity->metadata_name; + $metadata_label = $entity->metadata_label; + $metadata_hint = $entity->metadata_hint; + $metadata_placeholder = $entity->metadata_placeholder; + $metadata_type = $entity->metadata_type; + $metadata_options = $entity->metadata_options; - $output_as_tags = $vars["entity"]->output_as_tags; - $blank_available = $vars["entity"]->blank_available; - $admin_only = $vars["entity"]->admin_only; + $output_as_tags = $entity->output_as_tags; + $blank_available = $entity->blank_available; + $admin_only = $entity->admin_only; if (!array_key_exists($metadata_type, $options_values)) { $options_values[$metadata_type] = $metadata_type; } } -$no_yes_options = array('no' => elgg_echo('option:no'), 'yes' => elgg_echo('option:yes')); +$no_yes_options = ['no' => elgg_echo('option:no'), 'yes' => elgg_echo('option:yes')]; + +$formbody .= elgg_echo('profile_manager:admin:metadata_name') . '*:' . elgg_view('input/text', ['name' => 'metadata_name', 'value' => $metadata_name, 'required' => true]); +$formbody .= elgg_echo('profile_manager:admin:metadata_label') . ':' . elgg_view('input/text', ['name' => 'metadata_label', 'value' => $metadata_label]); +$formbody .= elgg_echo('profile_manager:admin:metadata_hint') . ':' . elgg_view('input/text', ['name' => 'metadata_hint', 'value' => $metadata_hint]); +$formbody .= elgg_echo('profile_manager:admin:metadata_placeholder') . ':' . elgg_view('input/text', ['name' => 'metadata_placeholder', 'value' => $metadata_placeholder]); +$formbody .= elgg_echo('profile_manager:admin:field_type') . ': ' . elgg_view('input/dropdown', [ + 'name' => 'metadata_type', + 'options_values' => $options_values, + 'onchange' => 'elgg.profile_manager.change_field_type();', + 'value' => $metadata_type, +]); +$formbody .= '
' . elgg_echo('profile_manager:admin:metadata_options') . ':' . elgg_view('input/text', ['name' => 'metadata_options', 'value' => $metadata_options]) . '
'; + +$options_table = ''; + +$options = ['output_as_tags', 'admin_only', 'blank_available']; +foreach ($options as $option) { + $class = elgg_extract($option, $option_classes, ''); + + $options_table .= '
' . elgg_echo("profile_manager:admin:{$option}") . ':'; + $options_table .= elgg_view('input/dropdown', [ + 'name' => $option, + 'options_values' => $no_yes_options , + 'value' => $$option, + 'class' => 'mhs custom_fields_form_field_option' . $class, + ]); + $options_table .= '
"; +$formbody .= '
'; -if (array_key_exists("output_as_tags", $option_classes)) { - $class = $option_classes['output_as_tags']; -} else { - $class = ""; -} -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; - -if (array_key_exists("admin_only", $option_classes)) { - $class = $option_classes['admin_only']; -} else { - $class = ""; -} -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; - -if (array_key_exists("blank_available", $option_classes)) { - $class = $option_classes['blank_available']; -} else { - $class = ""; -} -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; - -$formbody .= "
" . elgg_echo('profile_manager:admin:output_as_tags') . ":" . elgg_view('input/dropdown', array('name' => 'output_as_tags', 'options_values' => $no_yes_options, 'value' => $output_as_tags, 'class' => 'custom_fields_form_field_option field_option_enable_text' . $class)) . "" . elgg_echo('profile_manager:admin:output_as_tags:description') . "
" . elgg_echo('profile_manager:admin:admin_only') . ":" . elgg_view('input/dropdown', array('name' => 'admin_only', 'options_values' => $no_yes_options, 'value' => $admin_only, 'class' => 'custom_fields_form_field_option' . $class)) . "" . elgg_echo('profile_manager:admin:admin_only:description') . "
" . elgg_echo('profile_manager:admin:blank_available') . ":" . elgg_view('input/dropdown', array('name' => 'blank_available', 'options_values' => $no_yes_options, 'value' => $blank_available, 'class' => 'custom_fields_form_field_option' . $class)) . "" . elgg_echo('profile_manager:admin:blank_available:description') . "
"; - -$formbody .= "
"; - -$formbody .= elgg_view("input/hidden", array("name" => "type", "value" => "group")); -$formbody .= elgg_view('input/hidden', array('name' => 'guid', "value" => $guid)); -$formbody .= elgg_view('input/submit', array('value' => elgg_echo('save'))); - -$form = elgg_view('input/form', array('body' => $formbody, 'action' => 'action/profile_manager/new')); - -?> -
-
-

- -

-
-
- -
-
\ No newline at end of file +$formbody .= elgg_view('input/hidden', ['name' => 'type', 'value' => 'group']); +$formbody .= elgg_view('input/hidden', ['name' => 'guid', 'value' => $guid]); +$formbody .= elgg_view('input/submit', ['value' => elgg_echo('save')]); + +$form = elgg_view('input/form', ['body' => $formbody, 'action' => 'action/profile_manager/new']); + +echo elgg_view_module('inline', $form_title, $form, ['class' => 'mvn', 'id' => 'custom_fields_form']); diff --git a/views/default/forms/profile_manager/profile_field.php b/views/default/forms/profile_manager/profile_field.php index ef97cc3..78ab2fe 100644 --- a/views/default/forms/profile_manager/profile_field.php +++ b/views/default/forms/profile_manager/profile_field.php @@ -80,100 +80,58 @@ $yes_no_options = ['yes' => elgg_echo('option:yes'),'no' => elgg_echo('option:no')]; $no_yes_options = array_reverse($yes_no_options); -$type_control = elgg_view('input/dropdown', [ +$formbody .= elgg_echo('profile_manager:admin:metadata_name') . '*:' . elgg_view('input/text', ['name' => 'metadata_name', 'value' => $metadata_name, 'required' => true]); +$formbody .= elgg_echo('profile_manager:admin:metadata_label') . ':' . elgg_view('input/text', ['name' => 'metadata_label', 'value' => $metadata_label]); +$formbody .= elgg_echo('profile_manager:admin:metadata_hint') . ':' . elgg_view('input/text', ['name' => 'metadata_hint', 'value' => $metadata_hint]); +$formbody .= elgg_echo('profile_manager:admin:metadata_placeholder') . ':' . elgg_view('input/text', ['name' => 'metadata_placeholder', 'value' => $metadata_placeholder]); +$formbody .= elgg_echo('profile_manager:admin:field_type') . ': ' . elgg_view('input/dropdown', [ 'name' => 'metadata_type', 'options_values' => $options_values, 'onchange' => 'elgg.profile_manager.change_field_type();', 'value' => $metadata_type, ]); +$formbody .= '
' . elgg_echo('profile_manager:admin:metadata_options') . ':' . elgg_view('input/text', ['name' => 'metadata_options', 'value' => $metadata_options]); -$formbody .= elgg_echo('profile_manager:admin:metadata_name') . ':' . elgg_view('input/text', ['name' => 'metadata_name', 'value' => $metadata_name]); -$formbody .= elgg_echo('profile_manager:admin:metadata_label') . '*:' . elgg_view('input/text', ['name' => 'metadata_label', 'value' => $metadata_label]); -$formbody .= elgg_echo('profile_manager:admin:metadata_hint') . '*:' . elgg_view('input/text', ['name' => 'metadata_hint', 'value' => $metadata_hint]); -$formbody .= elgg_echo('profile_manager:admin:metadata_placeholder') . '*:' . elgg_view('input/text', ['name' => 'metadata_placeholder', 'value' => $metadata_placeholder]); -$formbody .= elgg_echo('profile_manager:admin:field_type') . ': ' . $type_control; -$formbody .= '
' . elgg_echo('profile_manager:admin:metadata_options') . '*:' . elgg_view('input/text', ['name' => 'metadata_options', 'value' => $metadata_options]); +$options_table = ''; -$hint = elgg_view('output/pm_hint', [ - 'id' => 'more_info_profile_field_additional', - 'text' => elgg_echo('profile_manager:tooltips:profile_field_additional'), -]); - -$formbody .= "

" . elgg_echo("profile_manager:admin:additional_options") . $hint . "

"; -$formbody .= ""; - -$class = elgg_extract('show_on_register', $option_classes, ''); - -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; - -$class = elgg_extract('mandatory', $option_classes, ''); - -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; - -$class = elgg_extract('user_editable', $option_classes, ''); - -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; - -$class = elgg_extract('output_as_tags', $option_classes, ''); +$options = ['show_on_register', 'mandatory', 'user_editable', 'output_as_tags', 'blank_available', 'admin_only']; +foreach ($options as $option) { + $class = elgg_extract($option, $option_classes, ''); -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; - -$class = elgg_extract('blank_available', $option_classes, ''); - -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; + $options_table .= ''; + $options_table .= ''; + $options_table .= ''; + $options_table .= elgg_format_element('td', [], elgg_echo("profile_manager:admin:{$option}:description")); + $options_table .= ''; +} -$class = elgg_extract('admin_only', $option_classes, ''); +$options_table = elgg_format_element('table', [], $options_table); -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; -$formbody .= ""; +$options_title = elgg_echo('profile_manager:admin:additional_options'); +$options_title .= elgg_view('output/pm_hint', [ + 'id' => 'more_info_profile_field_additional', + 'text' => elgg_echo('profile_manager:tooltips:profile_field_additional'), +]); -$formbody .= "
" . elgg_echo('profile_manager:admin:show_on_register') . ":" . elgg_view('input/dropdown', array('name' => 'show_on_register', 'options_values' => $no_yes_options , 'value' => $show_on_register, 'class' => 'custom_fields_form_field_option' . $class)) . "" . elgg_echo('profile_manager:admin:show_on_register:description') . "
" . elgg_echo('profile_manager:admin:mandatory') . ":" . elgg_view('input/dropdown', array('name' => 'mandatory', 'options_values' => $no_yes_options, 'value' => $mandatory, 'class' => 'custom_fields_form_field_option' . $class)) . "" . elgg_echo('profile_manager:admin:mandatory:description') . "
" . elgg_echo('profile_manager:admin:user_editable') . ":" . elgg_view('input/dropdown', array('name' => 'user_editable', 'options_values' => $yes_no_options, 'value' => $user_editable, 'class' => 'custom_fields_form_field_option' . $class)) . "" . elgg_echo('profile_manager:admin:user_editable:description') . "
" . elgg_echo('profile_manager:admin:output_as_tags') . ":" . elgg_view('input/dropdown', array('name' => 'output_as_tags', 'options_values' => $no_yes_options, 'value' => $output_as_tags, 'class' => 'custom_fields_form_field_option field_option_enable_text' . $class)) . "" . elgg_echo('profile_manager:admin:output_as_tags:description') . "
" . elgg_echo('profile_manager:admin:blank_available') . ":" . elgg_view('input/dropdown', array('name' => 'blank_available', 'options_values' => $no_yes_options, 'value' => $blank_available, 'class' => 'custom_fields_form_field_option' . $class)) . "" . elgg_echo('profile_manager:admin:blank_available:description') . "
' . elgg_echo("profile_manager:admin:{$option}") . ':'; + $options_table .= elgg_view('input/dropdown', [ + 'name' => $option, + 'options_values' => $no_yes_options , + 'value' => $$option, + 'class' => 'mhs custom_fields_form_field_option' . $class, + ]); + $options_table .= '
" . elgg_echo('profile_manager:admin:admin_only') . ":" . elgg_view('input/dropdown', array('name' => 'admin_only', 'options_values' => $no_yes_options, 'value' => $admin_only, 'class' => 'custom_fields_form_field_option' . $class)) . "" . elgg_echo('profile_manager:admin:admin_only:description') . "
"; +$formbody .= elgg_view_module('inline', $options_title, $options_table); $formbody .= elgg_view('input/hidden', ['name' => 'guid', 'value' => $guid]); $formbody .= elgg_view('input/submit', ['value' => elgg_echo('save')]); $form = elgg_view('input/form', ['body' => $formbody, 'action' => 'action/profile_manager/new']); -?> -
-
-

- 'more_info_profile_field', - 'text' => elgg_echo('profile_manager:tooltips:profile_field'), - ]); - ?> -

-
-
- -
-
- \ No newline at end of file +$form_title .= elgg_view('output/pm_hint', [ + 'id' => 'more_info_profile_field', + 'text' => elgg_echo('profile_manager:tooltips:profile_field'), +]); + +echo elgg_view_module('inline', $form_title, $form, ['class' => 'mvn', 'id' => 'custom_fields_form']); + +echo elgg_format_element('script', [], 'elgg.profile_manager.change_field_type();'); diff --git a/views/default/forms/profile_manager/type.php b/views/default/forms/profile_manager/type.php index 7cc09cc..7e59cd7 100644 --- a/views/default/forms/profile_manager/type.php +++ b/views/default/forms/profile_manager/type.php @@ -60,13 +60,13 @@ $formbody .= ""; $formbody .= ""; -$formbody .= elgg_echo('profile_manager:admin:metadata_name') . ':'; +$formbody .= elgg_echo('profile_manager:admin:metadata_name') . '*:'; $formbody .= elgg_view('input/text', ['name' => 'metadata_name', 'value' => $metadata_name]); -$formbody .= elgg_echo('profile_manager:admin:metadata_label') . '*:'; +$formbody .= elgg_echo('profile_manager:admin:metadata_label') . ':'; $formbody .= elgg_view('input/text', ['name' => 'metadata_label', 'value' => $metadata_label]); -$formbody .= elgg_echo('description') . '*:'; +$formbody .= elgg_echo('description') . ':'; $formbody .= elgg_view('input/longtext', ['name' => 'metadata_description', 'value' => $metadata_description]); $formbody .= ""; diff --git a/views/default/forms/register.php b/views/default/forms/register.php index 027e33b..ed9b31c 100644 --- a/views/default/forms/register.php +++ b/views/default/forms/register.php @@ -10,7 +10,7 @@ $username = get_input('u'); $email = get_input('e'); $name = get_input('n'); -$terms = ""; +$terms = ''; if (elgg_is_sticky_form('register')) { $values = elgg_get_sticky_values('register'); @@ -21,12 +21,12 @@ echo "
"; $show_hints = false; -if (elgg_get_plugin_setting("show_account_hints", "profile_manager") == "yes") { +if (elgg_get_plugin_setting('show_account_hints', 'profile_manager') == 'yes') { $show_hints = true; } $generate_username_from_email = false; -if (elgg_get_plugin_setting("generate_username_from_email", "profile_manager") == "yes") { +if (elgg_get_plugin_setting('generate_username_from_email', 'profile_manager') == 'yes') { $generate_username_from_email = true; } @@ -168,11 +168,10 @@ // Add captcha hook echo elgg_view('input/captcha'); -echo "
"; +echo ''; + +echo elgg_format_element('div', ['id' => 'profile_manager_register_right'], elgg_view('register/extend_side', ['field_location' => 'beside'])); -echo "
"; -echo elgg_view("register/extend_side", array("field_location" => "beside")); -echo "
"; echo "
"; echo "
"; @@ -183,7 +182,4 @@ echo "
" . elgg_echo("profile_manager:register:mandatory") . "
"; echo "
"; -?> - +echo elgg_format_element('script', [], 'require(["profile_manager/register"]);'); diff --git a/views/default/groups/edit/profile.php b/views/default/groups/edit/profile.php index cd14211..a4ae8b2 100644 --- a/views/default/groups/edit/profile.php +++ b/views/default/groups/edit/profile.php @@ -10,27 +10,27 @@ * @link http://www.coldtrick.com/ */ -$group = elgg_extract("entity", $vars); +$group = elgg_extract('entity', $vars); -$name_limit = elgg_get_plugin_setting("group_limit_name", "profile_manager"); -$description_limit = elgg_get_plugin_setting("group_limit_description", "profile_manager"); +$name_limit = elgg_get_plugin_setting('group_limit_name', 'profile_manager'); +$description_limit = elgg_get_plugin_setting('group_limit_description', 'profile_manager'); -echo "
"; -echo "
"; -echo elgg_view("input/file", array('name' => 'icon')); -echo "
"; +echo '
'; +echo elgg_format_element('label', [], elgg_echo('groups:icon')) . '
'; +echo elgg_view('input/file', ['name' => 'icon']); +echo '
'; -echo "
"; -echo "
"; +echo '
'; +echo elgg_format_element('label', [], elgg_echo('groups:name')) . '
'; $show_input = false; -if (empty($group) || ($name_limit === NULL) || ($name_limit === "") || elgg_is_admin_logged_in()) { +if (empty($group) || ($name_limit === NULL) || ($name_limit === '') || elgg_is_admin_logged_in()) { $show_input = true; } -if (!$show_input && !empty($group) && (!empty($name_limit) || ($name_limit == "0"))) { +if (!$show_input && !empty($group) && (!empty($name_limit) || ($name_limit == '0'))) { $name_limit = (int) $name_limit; - $name_edit_count = (int) $group->getPrivateSetting("profile_manager_name_edit_count"); + $name_edit_count = (int) $group->getPrivateSetting('profile_manager_name_edit_count'); if ($name_edit_count < $name_limit) { $show_input = true; @@ -40,133 +40,123 @@ } if ($show_input) { - echo elgg_view("input/text", array( - 'name' => 'name', - 'value' => elgg_extract('name', $vars), - )); + echo elgg_view('input/text', [ + 'name' => 'name', + 'value' => elgg_extract('name', $vars), + ]); if (!empty($name_edit_num_left)) { - echo "
" . elgg_echo("profile_manager:group:edit:limit", array("" . $name_edit_num_left . "")) . "
"; + echo elgg_format_element('div', ['class' => 'elgg-subtext'], elgg_echo('profile_manager:group:edit:limit', ['' . $name_edit_num_left . ''])); } } else { // show value - echo elgg_view("output/text", array( - 'value' => elgg_extract('name', $vars), - )); + echo elgg_view('output/text', ['value' => elgg_extract('name', $vars)]); // add hidden so it gets saved and form checks still are valid - echo elgg_view("input/hidden", array( - 'name' => 'name', - 'value' => elgg_extract('name', $vars), - )); + echo elgg_view('input/hidden', [ + 'name' => 'name', + 'value' => elgg_extract('name', $vars), + ]); } -echo "
"; +echo '
'; // retrieve group fields $group_fields = profile_manager_get_categorized_group_fields(); +$group_fields = elgg_extract('fields', $group_fields); +if (empty($group_fields)) { + return; +} -if (count($group_fields["fields"]) > 0) { - $group_fields = $group_fields["fields"]; +foreach ($group_fields as $field) { + $metadata_name = $field->metadata_name; - foreach ($group_fields as $field) { - $metadata_name = $field->metadata_name; - - // get options - $options = $field->getOptions(); - $placeholder = $field->getPlaceholder(); - - // get type of field - $valtype = $field->metadata_type; - - // get title - $title = $field->getTitle(); - - // get value - $value = elgg_extract($metadata_name, $vars); - - $line_break = '
'; - if ($valtype == 'longtext') { - $line_break = ''; - } - echo '
"; - - $hint = $field->getHint(); - if ($hint) { - echo elgg_view('output/pm_hint', [ - 'id' => "more_info_{$metadata_name}", - 'text' => $hint, - ]); - } - - echo $line_break; - - $field_output_options = array( - 'name' => $metadata_name, - 'value' => $value, - ); + // get options + $options = $field->getOptions(); + $placeholder = $field->getPlaceholder(); + + // get type of field + $valtype = $field->metadata_type; + + // get value + $value = elgg_extract($metadata_name, $vars); + + echo '
'; + echo elgg_format_element('label', [], $field->getTitle()); + + $hint = $field->getHint(); + if ($hint) { + echo elgg_view('output/pm_hint', [ + 'id' => "more_info_{$metadata_name}", + 'text' => $hint, + ]); + } + + if ($valtype !== 'longtext') { + echo '
'; + } + + $field_output_options = [ + 'name' => $metadata_name, + 'value' => $value, + ]; - if ($options) { - $field_output_options['options'] = $options; - } + if ($options) { + $field_output_options['options'] = $options; + } - if ($placeholder) { - $field_output_options['placeholder'] = $placeholder; - } + if ($placeholder) { + $field_output_options['placeholder'] = $placeholder; + } - if ($metadata_name == "description") { + if ($metadata_name == 'description') { + + $show_input = false; + if (empty($group) || ($description_limit === NULL) || ($description_limit === '') || elgg_is_admin_logged_in()) { + $show_input = true; + } - $show_input = false; - if (empty($group) || ($description_limit === NULL) || ($description_limit === "") || elgg_is_admin_logged_in()) { + $edit_num_left = 0; + + if (!$show_input && !empty($group) && (!empty($description_limit) || ($description_limit == '0'))) { + $description_limit = (int) $description_limit; + $field_edit_count = (int) $group->getPrivateSetting('profile_manager_description_edit_count'); + + if ($field_edit_count < $description_limit) { $show_input = true; } - - $edit_num_left = 0; - - if (!$show_input && !empty($group) && (!empty($description_limit) || ($description_limit == "0"))) { - $description_limit = (int) $description_limit; - $field_edit_count = (int) $group->getPrivateSetting("profile_manager_description_edit_count"); - - if ($field_edit_count < $description_limit) { - $show_input = true; - } - - $edit_num_left = $description_limit - $field_edit_count; - } - - if ($show_input) { - - echo elgg_view("input/{$valtype}", $field_output_options); - if (!empty($edit_num_left)) { - echo "
" . elgg_echo("profile_manager:group:edit:limit", array("" . $edit_num_left . "")) . "
"; - } - } else { - // show value - echo elgg_view("output/{$valtype}", array( - 'value' => $value - )); - - // add hidden so it gets saved and form checks still are valid - echo elgg_view("input/hidden", array( - 'name' => $metadata_name, - 'value' => $value - )); - } - } else { - if ($valtype == "dropdown") { - // add div around dropdown to let it act as a block level element - echo "
"; - } - + $edit_num_left = $description_limit - $field_edit_count; + } + + if ($show_input) { + echo elgg_view("input/{$valtype}", $field_output_options); - if ($valtype == "dropdown") { - echo "
"; - } + if (!empty($edit_num_left)) { + echo elgg_format_element('div', ['class' => 'elgg-subtext'], elgg_echo('profile_manager:group:edit:limit', ['' . $edit_num_left . ''])); + } + } else { + // show value + echo elgg_view("output/{$valtype}", ['value' => $value]); + + // add hidden so it gets saved and form checks still are valid + echo elgg_view("input/hidden", [ + 'name' => $metadata_name, + 'value' => $value + ]); + } + } else { + if ($valtype == 'dropdown') { + // add div around dropdown to let it act as a block level element + echo '
'; } - echo '
'; + echo elgg_view("input/{$valtype}", $field_output_options); + + if ($valtype == 'dropdown') { + echo '
'; + } } + + echo '
'; } diff --git a/views/default/groups/profile/fields.php b/views/default/groups/profile/fields.php index 1f36a0e..c107a20 100644 --- a/views/default/groups/profile/fields.php +++ b/views/default/groups/profile/fields.php @@ -7,40 +7,45 @@ $group_fields = profile_manager_get_categorized_group_fields(); -if (count($group_fields["fields"]) > 0) { - $group_fields = $group_fields["fields"]; - $even_odd = 'odd'; +$group_fields = elgg_extract('fields', $group_fields); + +if (empty($group_fields)) { + return; +} + +$even_odd = 'odd'; + +foreach ($group_fields as $field) { + $metadata_name = $field->metadata_name; + $value = $group->$metadata_name; - foreach ($group_fields as $field) { - $metadata_name = $field->metadata_name; - $value = $group->$metadata_name; - - if ($value) { - // make title - $title = $field->getTitle(); - - // adjust output type - if ($field->output_as_tags == "yes") { - $output_type = "tags"; - $value = string_to_tag_array($value); - } else { - $output_type = $field->metadata_type; - } - - if ($field->metadata_type == "url") { - $target = "_blank"; - } else { - $target = null; - } + if (is_null($value)) { + continue; + } - echo "
"; - echo ""; - echo $title; - echo ": "; - echo elgg_view("output/$output_type", array('value' => $value, "target" => $target)); - echo "
"; - - $even_odd = ($even_odd == 'even') ? 'odd' : 'even'; - } + // make title + $title = $field->getTitle(); + + // adjust output type + if ($field->output_as_tags == 'yes') { + $output_type = 'tags'; + $value = string_to_tag_array($value); + } else { + $output_type = $field->metadata_type; } -} + + if ($field->metadata_type == 'url') { + $target = '_blank'; + } else { + $target = null; + } + + echo "
"; + echo ''; + echo $title; + echo ': '; + echo elgg_view("output/{$output_type}", ['value' => $value, 'target' => $target]); + echo '
'; + + $even_odd = ($even_odd == 'even') ? 'odd' : 'even'; +} \ No newline at end of file diff --git a/views/default/input/multiselect.php b/views/default/input/multiselect.php index 0e1f6dc..f1e106f 100644 --- a/views/default/input/multiselect.php +++ b/views/default/input/multiselect.php @@ -11,64 +11,59 @@ */ global $multiselect; + if (empty($multiselect)) { $multiselect = 1; } else { $multiselect++; } -$selected_items = elgg_extract("value", $vars, ""); + +$selected_items = elgg_extract('value', $vars, ''); +$options_values = elgg_extract('options_values', $vars); +$options = elgg_extract('options', $vars); if (!is_array($selected_items)) { $selected_items = string_to_tag_array($selected_items); } -$selected_items = array_map("strtolower", $selected_items); +$selected_items = array_map('strtolower', $selected_items); -$internal_id = str_replace("]", "_", str_replace("[" , "_" ,$vars['name'])) . $multiselect; - if (elgg_is_xhr()) { // register form for walled garden could load via ajax, so we need to load library manually - $location = elgg_get_site_url() . "mod/profile_manager/vendors/jquery_ui_multiselect/jquery.multiselect.js"; - echo ""; + echo elgg_format_element('script', ['src' => elgg_normalize_url('mod/profile_manager/vendors/jquery_ui_multiselect/jquery.multiselect.js')]); } else { - elgg_load_js("jquery.ui.multiselect"); + elgg_load_js('jquery.ui.multiselect'); } -?> - -
- -
\ No newline at end of file + +$hidden = elgg_view('input/hidden', ['name' => elgg_extract('name', $vars) . '[]']); +$select = elgg_format_element('select', [ + 'class' => 'profile-manager-multiselect', + 'name' => elgg_extract('name', $vars) . '[]', + 'multiple' => true, +], $select_options); +echo elgg_format_element('div', [], $hidden . $select); + +echo elgg_format_element('script', [], 'require(["profile_manager/multiselect"]);'); diff --git a/views/default/input/profile_icon.php b/views/default/input/profile_icon.php index 0bf8d7b..5e3333b 100644 --- a/views/default/input/profile_icon.php +++ b/views/default/input/profile_icon.php @@ -22,9 +22,3 @@ $content .= elgg_view('input/file', ['name' => 'profile_icon', 'id' => 'register-profile_icon']); echo elgg_format_element('div', $div_options, $content); -?> - \ No newline at end of file diff --git a/views/default/js/profile_manager/accordion.js b/views/default/js/profile_manager/accordion.js new file mode 100644 index 0000000..649f85b --- /dev/null +++ b/views/default/js/profile_manager/accordion.js @@ -0,0 +1,13 @@ +define(function(require) { + var $ = require('jquery'); + + // profile details accordion + $('#custom_fields_userdetails.profile-manager-accordion').accordion({ + header: 'h3', + heightStyle: 'content', + icons: { + header: 'elgg-icon fa fa-caret-right float-alt', + activeHeader: 'elgg-icon fa fa-caret-down float-alt' + } + }); +}); diff --git a/views/default/js/profile_manager/admin.js b/views/default/js/profile_manager/admin.js index 7985540..913dbda 100644 --- a/views/default/js/profile_manager/admin.js +++ b/views/default/js/profile_manager/admin.js @@ -4,18 +4,18 @@ elgg.profile_manager.init_admin = function() { elgg.profile_manager.filter_custom_fields(0); $('#custom_fields_ordering').sortable({ - update: function(event, ui) { - elgg.profile_manager.reorder_custom_fields(); - }, - opacity: 0.6, - tolerance: 'pointer', - items: 'li' + update: function(event, ui) { + elgg.profile_manager.reorder_custom_fields(); + }, + opacity: 0.6, + tolerance: 'pointer', + items: 'li' }); $('#custom_fields_category_list_custom .elgg-list').sortable({ update: function(event, ui) { elgg.action('profile_manager/categories/reorder?' + $('#custom_fields_category_list_custom .elgg-list').sortable('serialize')); - }, + }, opacity: 0.6, tolerance: 'pointer', items: 'li', @@ -44,7 +44,7 @@ elgg.profile_manager.init_admin = function() { elgg.profile_manager.remove_field($(this).data().guid); } }); -} +}; elgg.profile_manager.toggle_option = function(event) { var $button = $(this); @@ -64,11 +64,11 @@ elgg.profile_manager.toggle_option = function(event) { }); event.preventDefault(); -} +}; elgg.profile_manager.reorder_custom_fields = function() { elgg.action('profile_manager/reorder?' + $('#custom_fields_ordering').sortable('serialize')); -} +}; elgg.profile_manager.remove_field = function(guid) { elgg.action('profile_manager/delete', { @@ -82,7 +82,7 @@ elgg.profile_manager.remove_field = function(guid) { } }, }); -} +}; elgg.profile_manager.filter_custom_fields = function(category_guid) { $('#custom_fields_ordering .elgg-item').hide(); @@ -102,14 +102,14 @@ elgg.profile_manager.filter_custom_fields = function(category_guid) { $('#custom_profile_field_category_' + category_guid).parent().addClass('custom_fields_category_selected'); } } -} +}; elgg.profile_manager.change_field_type = function() { var selectedType = $('#custom_fields_form select[name="metadata_type"]').val(); $('#custom_fields_form .custom_fields_form_field_option').attr('disabled', 'disabled'); $('#custom_fields_form .field_option_enable_' + selectedType).removeAttr('disabled'); -} +}; elgg.profile_manager.change_field_category = function(field, category_guid) { var field_guid = $(field).attr('id').replace('elgg-object-',''); @@ -122,7 +122,7 @@ elgg.profile_manager.change_field_category = function(field, category_guid) { }, success: function(data) { if (data.status === 0) { - if (category_guid == 0) { + if (category_guid === 0) { category_guid = ''; } @@ -142,7 +142,7 @@ elgg.profile_manager.change_field_category = function(field, category_guid) { }, }); -} +}; //register init hook elgg.register_hook_handler("init", "system", elgg.profile_manager.init_admin); \ No newline at end of file diff --git a/views/default/js/profile_manager/multiselect.js b/views/default/js/profile_manager/multiselect.js new file mode 100644 index 0000000..146b038 --- /dev/null +++ b/views/default/js/profile_manager/multiselect.js @@ -0,0 +1,12 @@ +define(function(require) { + var $ = require('jquery'); + var elgg = require('elgg'); + + $(document).ready(function() { + $('.profile-manager-multiselect').multiselect({ + header: false, + selectedList: 4, + noneSelectedText: elgg.echo('profile_manager:input:multi_select:empty_text') + }); + }); +}); \ No newline at end of file diff --git a/views/default/js/profile_manager/profile_edit.js b/views/default/js/profile_manager/profile_edit.js index ae0663c..4200c23 100644 --- a/views/default/js/profile_manager/profile_edit.js +++ b/views/default/js/profile_manager/profile_edit.js @@ -1,4 +1,4 @@ -elgg.provide("elgg.profile_manager"); +elgg.provide('elgg.profile_manager'); //show description and fields based on selected profile type (profile edit) elgg.profile_manager.change_profile_type = function(){ @@ -7,14 +7,14 @@ elgg.profile_manager.change_profile_type = function(){ $('.custom_fields_edit_profile_category').hide(); $('.custom_profile_type_description').hide(); - if (selVal !== "") { + if (selVal !== '') { $('.custom_profile_type_' + selVal).show(); $('#custom_profile_type_description_'+ selVal).show(); } - if ($("#profile_manager_profile_edit_tabs li.elgg-state-selected:visible").length === 0) { - $('#profile_manager_profile_edit_tab_content_wrapper>div').hide(); - $("#profile_manager_profile_edit_tabs a:first:visible").click(); + if ($('#profile_manager_profile_edit_tabs li.elgg-state-selected:visible').length === 0) { + $('#profile_manager_profile_edit_tab_content_wrapper > div').hide(); + $('#profile_manager_profile_edit_tabs a:first:visible').click(); } }; @@ -22,20 +22,20 @@ elgg.profile_manager.profile_manager_username = function(event, elem) { if (event.which !== 13) { var username = $(elem).val(); $container = $(elem).parent(); - $container.find(".elgg-icon").hide(); + $container.find('.elgg-icon').hide(); - if (username !== $(elem).attr("rel")) { - $container.find(".elgg-icon-profile-manager-loading").show(); + if (username !== $(elem).attr('rel')) { + $container.find('.elgg-icon-spinner').show(); - $.getJSON(elgg.get_site_url() + "profile_manager/validate_username", { "username": username }, function(data){ - if($("#profile_manager_username .elgg-input-text").val() == username){ - if(data.valid){ - $container.find(".elgg-icon-profile-manager-valid").show(); + $.getJSON(elgg.get_site_url() + 'profile_manager/validate_username', { 'username': username }, function(data){ + if ($('#profile_manager_username .elgg-input-text').val() == username) { + if (data.valid) { + $container.find('.elgg-icon-check-circle').show(); } else { - $container.find(".elgg-icon-profile-manager-invalid").show(); + $container.find('.elgg-icon-exclamation-circle').show(); } - $("#profile_manager_username .elgg-icon-profile-manager-loading").hide(); + $('#profile_manager_username .elgg-icon-spinner').hide(); } }); } @@ -44,10 +44,10 @@ elgg.profile_manager.profile_manager_username = function(event, elem) { elgg.profile_manager.init_edit = function() { // tab switcher on edit form - $("#profile_manager_profile_edit_tabs a").click(function(event) { - var id = $(this).attr("href").replace("#", ""); - $("#profile_manager_profile_edit_tabs li").removeClass("elgg-state-selected"); - $(this).parent().addClass("elgg-state-selected"); + $('#profile_manager_profile_edit_tabs a').click(function(event) { + var id = $(this).attr('href').replace('#', ''); + $('#profile_manager_profile_edit_tabs li').removeClass('elgg-state-selected'); + $(this).parent().addClass('elgg-state-selected'); $('#profile_manager_profile_edit_tab_content_wrapper>div').hide(); $('#profile_manager_profile_edit_tab_content_' + id).show(); @@ -57,22 +57,24 @@ elgg.profile_manager.init_edit = function() { }); var hash = window.location.hash; - if(hash && hash !== "#" && $("#profile_manager_profile_edit_tabs " + hash).length > 0){ - var $tab = $("#profile_manager_profile_edit_tabs " + hash + " a:visible"); - if($tab.length > 0){ + if (hash && hash !== '#' && $('#profile_manager_profile_edit_tabs ' + hash).length > 0) { + var $tab = $('#profile_manager_profile_edit_tabs ' + hash + ' a:visible'); + if ($tab.length > 0) { $tab.click(); } else { - $("#profile_manager_profile_edit_tabs a:first:visible").click(); + $('#profile_manager_profile_edit_tabs a:first:visible').click(); } } else { - $("#profile_manager_profile_edit_tabs a:first:visible").click(); + $('#profile_manager_profile_edit_tabs a:first:visible').click(); } // username change $(document).on('keyup', '#profile_manager_username .elgg-input-text', function(event) { elgg.profile_manager.profile_manager_username(event, $(this)); }); + + elgg.profile_manager.change_profile_type(); }; //register init hook -elgg.register_hook_handler("init", "system", elgg.profile_manager.init_edit); \ No newline at end of file +elgg.register_hook_handler('init', 'system', elgg.profile_manager.init_edit); \ No newline at end of file diff --git a/views/default/js/profile_manager/rating.js b/views/default/js/profile_manager/rating.js index 49b4c89..ea1831d 100644 --- a/views/default/js/profile_manager/rating.js +++ b/views/default/js/profile_manager/rating.js @@ -1,27 +1,27 @@ -elgg.provide("elgg.profile_manager"); +elgg.provide('elgg.profile_manager'); elgg.profile_manager.init_rating = function(){ // rating initialisation $(document).on('mouseover', '.profile-manager-input-pm-rating .elgg-icon', function() { - $(this).parent().find(".elgg-icon-star-alt").addClass("pm-rating-selected elgg-icon-star-empty").removeClass("elgg-icon-star-alt"); + $(this).parent().find('.fa-star').addClass('pm-rating-selected fa-star-o').removeClass('fa-star'); - $(this).addClass("elgg-icon-star-alt").removeClass("elgg-icon-star-empty").prevAll(".elgg-icon").addClass("elgg-icon-star-alt").removeClass("elgg-icon-star-empty"); + $(this).addClass('fa-star').removeClass('fa-star-o').prevAll('.elgg-icon').addClass('fa-star').removeClass('fa-star-o'); }).on('mouseout', '.profile-manager-input-pm-rating .elgg-icon', function() { - $(this).parent().find(".elgg-icon").removeClass("elgg-icon-star-alt elgg-icon-star-empty").addClass("elgg-icon-star-empty").filter(".pm-rating-selected").toggleClass("elgg-icon-star-empty elgg-icon-star-alt"); + $(this).parent().find('.elgg-icon').removeClass('fa-star fa-star-o').addClass('fa-star-o').filter('.pm-rating-selected').toggleClass('fa-star-o fa-star'); }).on('click', '.profile-manager-input-pm-rating .elgg-icon', function() { - $(this).parent().find(".elgg-icon").removeClass("pm-rating-selected"); - $(this).addClass("pm-rating-selected").prevAll(".elgg-icon").addClass("pm-rating-selected"); - var newVal = $(this).parent().find(".elgg-icon").index(this) + 1; - $(this).parent().find("input").val(newVal); + $(this).parent().find('.elgg-icon').removeClass('pm-rating-selected'); + $(this).addClass('pm-rating-selected').prevAll('.elgg-icon').addClass('pm-rating-selected'); + var newVal = $(this).parent().find('.elgg-icon').index(this) + 1; + $(this).parent().find('input').val(newVal); }); $(document).on('click', '.profile-manager-input-pm-rating a', function(event) { - $(this).parent().find(".elgg-icon").removeClass("pm-rating-selected elgg-icon-star-alt").addClass("elgg-icon-star-empty"); - $(this).parent().find("input").val(""); + $(this).parent().find('.elgg-icon').removeClass('pm-rating-selected fa-star').addClass('fa-star-o'); + $(this).parent().find('input').val(''); event.preventDefault(); }); }; //register init hook -elgg.register_hook_handler("init", "system", elgg.profile_manager.init_rating); \ No newline at end of file +elgg.register_hook_handler('init', 'system', elgg.profile_manager.init_rating); \ No newline at end of file diff --git a/views/default/js/profile_manager/simple_access_control.js b/views/default/js/profile_manager/simple_access_control.js new file mode 100644 index 0000000..e8d55e4 --- /dev/null +++ b/views/default/js/profile_manager/simple_access_control.js @@ -0,0 +1,22 @@ +define(function(require) { + var $ = require('jquery'); + + function init () { + $(document).ready(function(){ + var val = $('.elgg-input-access:first').val(); + $('.simple_access_control').val(val); + + set_access_control(val); + + $('.simple_access_control').on('change', function() { + set_access_control($(this).val()); + }).removeClass('hidden'); + }); + } + + function set_access_control(val){ + $('.elgg-input-access').not('.simple_access_control').val(val); + } + + init(); +}); diff --git a/views/default/js/profile_manager/site.js b/views/default/js/profile_manager/site.js deleted file mode 100644 index a51688f..0000000 --- a/views/default/js/profile_manager/site.js +++ /dev/null @@ -1,12 +0,0 @@ -elgg.provide("elgg.profile_manager"); - -elgg.profile_manager.init = function(){ - // profile details accordion - $("#custom_fields_userdetails.profile-manager-accordion").accordion({ - header: "h3", - heightStyle: "content" - }); -} - -//register init hook -elgg.register_hook_handler("init", "system", elgg.profile_manager.init); \ No newline at end of file diff --git a/views/default/js/profile_manager/tooltips.js b/views/default/js/profile_manager/tooltips.js index 04c11d8..c60b1c5 100644 --- a/views/default/js/profile_manager/tooltips.js +++ b/views/default/js/profile_manager/tooltips.js @@ -1,4 +1,3 @@ - define(function(require) { var $ = require('jquery'); diff --git a/views/default/profile/details.php b/views/default/profile/details.php index 08a6464..06f5e8b 100644 --- a/views/default/profile/details.php +++ b/views/default/profile/details.php @@ -6,23 +6,22 @@ $user = elgg_get_page_owner_entity(); -echo '
'; -echo "

{$user->name}

"; +$content = elgg_format_element('h2', [], $user->name); -echo elgg_view("profile/status", array("entity" => $user)); +$content .= elgg_view('profile/status', ['entity' => $user]); -$show_profile_type_on_profile = elgg_get_plugin_setting("show_profile_type_on_profile", "profile_manager"); +$show_profile_type_on_profile = elgg_get_plugin_setting('show_profile_type_on_profile', 'profile_manager'); $categorized_fields = profile_manager_get_categorized_fields($user); $cats = $categorized_fields['categories']; $fields = $categorized_fields['fields']; -$details_result = ""; +$details_result = ''; -if ($show_profile_type_on_profile != "no") { +if ($show_profile_type_on_profile !== 'no') { if ($profile_type_guid = $user->custom_profile_type) { if (($profile_type = get_entity($profile_type_guid)) && ($profile_type instanceof \ColdTrick\ProfileManager\CustomProfileType)) { - $details_result .= "
" . elgg_echo("profile_manager:user_details:profile_type") . ": " . $profile_type->getTitle() . "
"; + $details_result .= elgg_format_element('div', ['class' => 'even'], '' . elgg_echo('profile_manager:user_details:profile_type') . ': ' . $profile_type->getTitle()); } } } @@ -37,35 +36,31 @@ } foreach ($cats as $cat_guid => $cat) { - $cat_title = ""; - $field_result = ""; - $even_odd = "even"; + $cat_title = ''; + $field_result = ''; + $even_odd = 'even'; if ($show_header) { // make nice title + $title = $cat; if ($cat_guid == -1) { - $title = elgg_echo("profile_manager:categories:list:system"); + $title = elgg_echo('profile_manager:categories:list:system'); } elseif ($cat_guid == 0) { - if (!empty($cat)) { - $title = $cat; - } else { - $title = elgg_echo("profile_manager:categories:list:default"); + if (empty($cat)) { + $title = elgg_echo('profile_manager:categories:list:default'); } } elseif ($cat instanceof \ColdTrick\ProfileManager\CustomFieldCategory) { $title = $cat->getTitle(); - } else { - $title = $cat; } - - $params = array( + + $collapse_link = elgg_view('output/url', [ 'text' => ' ', - 'href' => "#", + 'href' => '#', 'class' => 'elgg-widget-collapse-button', 'rel' => 'toggle', - ); - $collapse_link = elgg_view('output/url', $params); + ]); - $cat_title = "

" . $title . "

"; + $cat_title = elgg_format_element('h3', ['class' => 'elgg-head mtm'], $title); } foreach ($fields[$cat_guid] as $field) { @@ -73,21 +68,18 @@ $metadata_name = $field->metadata_name; // give correct class - if ($even_odd != "even") { - $even_odd = "even"; + if ($even_odd != 'even') { + $even_odd = 'even'; } else { - $even_odd = "odd"; + $even_odd = 'odd'; } - // make nice title - $title = $field->getTitle(); - // get user value $value = $user->$metadata_name; // adjust output type - if ($field->output_as_tags == "yes") { - $output_type = "tags"; + if ($field->output_as_tags == 'yes') { + $output_type = 'tags'; if (!is_array($value)) { $value = string_to_tag_array($value); } @@ -95,8 +87,8 @@ $output_type = $field->metadata_type; } - if ($field->metadata_type == "url") { - $target = "_blank"; + if ($field->metadata_type == 'url') { + $target = '_blank'; // validate urls if (!preg_match('~^https?\://~i', $value)) { $value = "http://$value"; @@ -106,30 +98,33 @@ } // build result - $field_result .= "
"; - $field_result .= "" . $title . ": "; - $field_result .= elgg_view("output/" . $output_type, array("value" => $value, "target" => $target)); - $field_result .= "
"; + $field_result .= '
'; + $field_result .= '' . $field->getTitle() . ': '; + $field_result .= elgg_view('output/' . $output_type, ['value' => $value, 'target' => $target]); + $field_result .= '
'; } if (!empty($field_result)) { $details_result .= $cat_title; - $details_result .= "
" . $field_result . "
"; + $details_result .= elgg_format_element('div', [], $field_result); } } } if (!empty($details_result)) { - if (elgg_get_plugin_setting("display_categories", "profile_manager") == "accordion") { - echo "
"; - } else { - echo "
"; + $details_options = [ + 'id' => 'custom_fields_userdetails', + 'class' => ['elgg-module', 'elgg-module-info'], + ]; + if (elgg_get_plugin_setting('display_categories', 'profile_manager') == 'accordion') { + elgg_require_js('profile_manager/accordion'); + $details_options['class'][] = 'profile-manager-accordion'; } - echo $details_result . "
"; + $content .= elgg_format_element('div', $details_options, $details_result); } if ($user->isBanned()) { - echo "

" . elgg_echo('banned') . "

"; + $content .= elgg_format_element('p', ['class' => 'profile-banned-user'], elgg_echo('banned')); } -echo "
"; +echo elgg_format_element('div', ['id' => 'profile-details', 'class' => 'elgg-body pll'], $content); diff --git a/views/default/profile_manager/account/username.php b/views/default/profile_manager/account/username.php index 9f61e0d..a990715 100644 --- a/views/default/profile_manager/account/username.php +++ b/views/default/profile_manager/account/username.php @@ -5,6 +5,8 @@ return; } +elgg_require_js('profile_manager/profile_edit'); + $user = elgg_get_page_owner_entity(); $body = elgg_view('input/button', [ @@ -15,7 +17,9 @@ ]); $body .= '