Пример #1
0
    $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>
Пример #2
0
/**
 * 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);
    }
}