$percentage_complete = $completeness["percentage_completeness"]; // save the percentage $owner->profile_completeness_percentage = $percentage_complete; $missing_fields = $completeness["missing_fields"]; if (count($missing_fields) > 0) { $rand_key = array_rand($missing_fields); $field = $missing_fields[$rand_key]; $tips = elgg_echo("widgets:profile_completeness:view:tips", array("<b>" . $field->getTitle() . "</b>")); } else { $tips = elgg_echo("widgets:profile_completeness:view:complete"); } } else { if ($owner->profile_completeness_percentage) { $percentage_complete = $owner->profile_completeness_percentage; } else { $completeness = profiles_go_profile_completeness($owner); $percentage_complete = $completeness["percentage_completeness"]; } } ?> <div id="widget_profile_completeness_container"> <div id="widget_profile_completeness_progress"> <?php echo $percentage_complete; ?> % </div> <div id="widget_profile_completeness_progress_bar" style="width: <?php echo $percentage_complete; ?> %;"></div>
/** * Adds uploaded files to your profile * * @param string $event Event name * @param string $object_type Event type * @param ElggUser $user User being updated * * @return void */ function profiles_go_profileupdate_user_event($event, $object_type, $user) { if (!empty($user) && $user instanceof ElggUser) { // upload a file to your profile $accesslevel = get_input('accesslevel'); if (!is_array($accesslevel)) { $accesslevel = array(); } $options = array("type" => "object", "subtype" => CUSTOM_PROFILE_FIELDS_PROFILE_SUBTYPE, "limit" => false, "metadata_name_value_pairs" => array("name" => "metadata_type", "value" => "pm_file")); $configured_fields = elgg_get_entities_from_metadata($options); if ($configured_fields) { foreach ($configured_fields as $field) { // check for uploaded files $metadata_name = $field->metadata_name; $current_file_guid = $user->{$metadata_name}; if (isset($accesslevel[$metadata_name])) { $access_id = (int) $accesslevel[$metadata_name]; } else { // this should never be executed since the access level should always be set $access_id = ACCESS_PRIVATE; } if (isset($_FILES[$metadata_name]) && $_FILES[$metadata_name]['error'] == 0) { // uploaded file exists so, save it to an ElggFile object // use current_file_guid to overwrite previously uploaded files $filehandler = new ElggFile($current_file_guid); $filehandler->owner_guid = $user->getGUID(); $filehandler->container_guid = $user->getGUID(); $filehandler->subtype = "file"; $filehandler->access_id = $access_id; $filehandler->title = $field->getTitle(); $filehandler->setFilename("profiles_go/" . $_FILES[$metadata_name]["name"]); $filehandler->setMimeType($_FILES[$metadata_name]["type"]); $filehandler->open("write"); $filehandler->write(get_uploaded_file($metadata_name)); $filehandler->close(); if ($filehandler->save()) { $filehandler->profiles_go_metadata_name = $metadata_name; // used to retrieve user file when deleting $filehandler->originalfilename = $_FILES[$metadata_name]["name"]; create_metadata($user->guid, $metadata_name, $filehandler->getGUID(), 'text', $user->guid, $access_id); } } else { // if file not uploaded should it be deleted??? if (empty($current_file_guid)) { // find the previously uploaded file and if exists... delete it $options = array("type" => "object", "subtype" => "file", "owner_guid" => $user->getGUID(), "limit" => 1, "metadata_name_value_pairs" => array("name" => "profiles_go_metadata_name", "value" => $metadata_name)); $files = elgg_get_entities_from_metadata($options); if ($files) { $file = $files[0]; $file->delete(); } } else { if ($file = get_entity($current_file_guid)) { // maybe we need to update the access id $file->access_id = $access_id; $file->save(); } } } } } // update profile completeness profiles_go_profile_completeness($user); } }