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 = "
"; -$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 .= ''; + $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 .= ' | '; + $options_table .= elgg_format_element('td', [], elgg_echo("profile_manager:admin:{$option}:description")); + $options_table .= '
" . elgg_echo('profile_manager:admin:output_as_tags') . ": | "; -$formbody .= "" . 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)) . " | "; -$formbody .= "" . elgg_echo('profile_manager:admin:output_as_tags:description') . " | "; -$formbody .= "
" . elgg_echo('profile_manager:admin:admin_only') . ": | "; -$formbody .= "" . elgg_view('input/dropdown', array('name' => 'admin_only', 'options_values' => $no_yes_options, 'value' => $admin_only, 'class' => 'custom_fields_form_field_option' . $class)) . " | "; -$formbody .= "" . elgg_echo('profile_manager:admin:admin_only:description') . " | "; -$formbody .= "
" . elgg_echo('profile_manager:admin:blank_available') . ": | "; -$formbody .= "" . elgg_view('input/dropdown', array('name' => 'blank_available', 'options_values' => $no_yes_options, 'value' => $blank_available, 'class' => 'custom_fields_form_field_option' . $class)) . " | "; -$formbody .= "" . elgg_echo('profile_manager:admin:blank_available:description') . " | "; -$formbody .= "
" . elgg_echo('profile_manager:admin:show_on_register') . ": | "; -$formbody .= "" . 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)) . " | "; -$formbody .= "" . elgg_echo('profile_manager:admin:show_on_register:description') . " | "; -$formbody .= "
" . elgg_echo('profile_manager:admin:mandatory') . ": | "; -$formbody .= "" . elgg_view('input/dropdown', array('name' => 'mandatory', 'options_values' => $no_yes_options, 'value' => $mandatory, 'class' => 'custom_fields_form_field_option' . $class)) . " | "; -$formbody .= "" . elgg_echo('profile_manager:admin:mandatory:description') . " | "; -$formbody .= "
" . elgg_echo('profile_manager:admin:user_editable') . ": | "; -$formbody .= "" . elgg_view('input/dropdown', array('name' => 'user_editable', 'options_values' => $yes_no_options, 'value' => $user_editable, 'class' => 'custom_fields_form_field_option' . $class)) . " | "; -$formbody .= "" . elgg_echo('profile_manager:admin:user_editable:description') . " | "; -$formbody .= "
" . elgg_echo('profile_manager:admin:output_as_tags') . ": | "; -$formbody .= "" . 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)) . " | "; -$formbody .= "" . elgg_echo('profile_manager:admin:output_as_tags:description') . " | "; -$formbody .= "
" . elgg_echo('profile_manager:admin:blank_available') . ": | "; -$formbody .= "" . elgg_view('input/dropdown', array('name' => 'blank_available', 'options_values' => $no_yes_options, 'value' => $blank_available, 'class' => 'custom_fields_form_field_option' . $class)) . " | "; -$formbody .= "" . elgg_echo('profile_manager:admin:blank_available:description') . " | "; -$formbody .= "
' . elgg_echo("profile_manager:admin:{$option}") . ': | '; + $options_table .= ''; + $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 .= ' | '; + $options_table .= elgg_format_element('td', [], elgg_echo("profile_manager:admin:{$option}:description")); + $options_table .= '|
" . elgg_echo('profile_manager:admin:admin_only') . ": | "; -$formbody .= "" . elgg_view('input/dropdown', array('name' => 'admin_only', 'options_values' => $no_yes_options, 'value' => $admin_only, 'class' => 'custom_fields_form_field_option' . $class)) . " | "; -$formbody .= "" . elgg_echo('profile_manager:admin:admin_only:description') . " | "; -$formbody .= "
" . elgg_echo('banned') . "
"; + $content .= elgg_format_element('p', ['class' => 'profile-banned-user'], elgg_echo('banned')); } -echo "