Ejemplo n.º 1
0
    }
} elseif ($field_location_setting == 'beside') {
    // below or default
    return true;
}
$tabbed = false;
if (elgg_get_plugin_setting('edit_profile_mode', 'profiles_go') == 'tabbed') {
    $tabbed = true;
}
$result = '';
// profile icon
$profile_icon = elgg_get_plugin_setting('profile_icon_on_register', 'profiles_go');
if ($profile_icon == 'yes' || $profile_icon == 'optional') {
    $result .= elgg_view('input/profile_icon');
}
$categorized_fields = profiles_go_get_categorized_fields(null, true, true);
$fields = $categorized_fields['fields'];
$cats = $categorized_fields['categories'];
if (elgg_is_sticky_form('profiles_go_register')) {
    $sticky_values = elgg_get_sticky_values('profiles_go_register');
    extract($sticky_values);
    elgg_clear_sticky_form('profiles_go_register');
}
if (empty($custom_profile_fields_custom_profile_type)) {
    $custom_profile_fields_custom_profile_type = elgg_get_plugin_setting('default_profile_type', 'profiles_go');
}
if (elgg_get_plugin_setting('profile_type_selection', 'profiles_go') !== 'admin') {
    $result .= elgg_view('profiles_go/register/profile_type_selection', ['value' => $custom_profile_fields_custom_profile_type]);
} else {
    $result .= elgg_view('input/hidden', ['name' => 'custom_profile_fields_custom_profile_type', 'value' => $custom_profile_fields_custom_profile_type]);
}
Ejemplo n.º 2
0
*	Licence: 	CC-ByNCSA
*	Reference:	Microproyecto CEI BioTIC Ref. 11-2015
* 	Project coordinator: @rosanamontes
*	Website: http://lsi.ugr.es/rosana
* 	Project colaborator: Antonio Moles 
*	
*   Project Derivative:
*	TFG: Desarrollo de un sistema de gestión de paquetería para Teranga Go
*   Advisor: Rosana Montes
*   Student: Ricardo Luzón Fernández
*
*/
elgg_require_js("profiles_go/profile_edit");
echo elgg_view("profile/edit/name", $vars);
// Build fields
$categorized_fields = profiles_go_get_categorized_fields($vars['entity'], true);
$cats = $categorized_fields['categories'];
$fields = $categorized_fields['fields'];
$edit_profile_mode = elgg_get_plugin_setting("edit_profile_mode", "profiles_go");
$simple_access_control = elgg_get_plugin_setting("simple_access_control", "profiles_go");
$access_id = get_default_access($vars["entity"]);
if (!empty($cats)) {
    // Profile type selector
    $setting = elgg_get_plugin_setting("profile_type_selection", "profiles_go");
    if (empty($setting)) {
        // default value
        $setting = "user";
    }
    $profile_type = $vars['entity']->custom_profile_type;
    // can user edit? or just admins
    if ($setting == "user" || elgg_is_admin_logged_in()) {
Ejemplo n.º 3
0
/**
 * Function to check if custom fields on register have been filled (if required)
 * Also generates a username if needed
 *
 * @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
 */
function profiles_go_action_register_hook($hook_name, $entity_type, $return_value, $parameters)
{
    elgg_make_sticky_form('register');
    elgg_make_sticky_form('profiles_go_register');
    // validate mandatory profile fields
    $profile_icon = elgg_get_plugin_setting("profile_icon_on_register", "profiles_go");
    // general terms
    $terms = elgg_get_plugin_setting("registration_terms", "profiles_go");
    // new
    $profile_type_guid = get_input("custom_profile_fields_custom_profile_type", false);
    $fields = profiles_go_get_categorized_fields(null, true, true, true, $profile_type_guid);
    $required_fields = array();
    if (!empty($fields["categories"])) {
        foreach ($fields["categories"] as $cat_guid => $cat) {
            $cat_fields = $fields["fields"][$cat_guid];
            foreach ($cat_fields as $field) {
                if ($field->show_on_register == "yes" && $field->mandatory == "yes") {
                    $required_fields[] = $field;
                }
            }
        }
    }
    if ($terms || $required_fields || $profile_icon == "yes") {
        $custom_profile_fields = array();
        foreach ($_POST as $key => $value) {
            if (strpos($key, "custom_profile_fields_") == 0) {
                $key = substr($key, 22);
                $custom_profile_fields[$key] = $value;
            }
        }
        foreach ($required_fields as $entity) {
            $passed_value = $custom_profile_fields[$entity->metadata_name];
            if (is_array($passed_value)) {
                if (!count($passed_value)) {
                    register_error(elgg_echo("profiles_go:register_pre_check:missing", array($entity->getTitle())));
                    forward(REFERER);
                }
            } else {
                $passed_value = trim($passed_value);
                if (strlen($passed_value) < 1) {
                    register_error(elgg_echo("profiles_go:register_pre_check:missing", array($entity->getTitle())));
                    forward(REFERER);
                }
            }
        }
        if ($profile_icon == "yes") {
            $profile_icon = $_FILES["profile_icon"];
            $error = false;
            if (empty($profile_icon["name"])) {
                register_error(elgg_echo("profiles_go:register_pre_check:missing", array("profile_icon")));
                $error = true;
            } elseif ($profile_icon["error"] != 0) {
                register_error(elgg_echo("profiles_go:register_pre_check:profile_icon:error"));
                $error = true;
            } else {
                // test if we can handle the image
                $image = get_resized_image_from_uploaded_file('profile_icon', '10', '10', true, false);
                if (!$image) {
                    register_error(elgg_echo("profiles_go:register_pre_check:profile_icon:nosupportedimage"));
                    $error = true;
                }
            }
            if ($error) {
                forward(REFERER);
            }
        }
        if ($terms) {
            $terms_accepted = get_input("accept_terms");
            if ($terms_accepted !== "yes") {
                register_error(elgg_echo("profiles_go:register_pre_check:terms"));
                forward(REFERER);
            }
        }
    }
    // generate username
    $username = get_input('username');
    $email = get_input('email');
    if (empty($username) && !empty($email) && elgg_get_plugin_setting("generate_username_from_email", "profiles_go") == "yes") {
        $email_parts = explode('@', $email);
        $base_username = $email_parts[0];
        $tmp_username = $base_username;
        $i = 1;
        while (get_user_by_username($tmp_username)) {
            $tmp_username = $base_username . $i;
            $i++;
        }
        set_input('username', $tmp_username);
    }
}
Ejemplo n.º 4
0
* 	Project coordinator: @rosanamontes
*	Website: http://lsi.ugr.es/rosana
* 	Project colaborator: Antonio Moles 
*	
*   Project Derivative:
*	TFG: Desarrollo de un sistema de gestión de paquetería para Teranga Go
*   Advisor: Rosana Montes
*   Student: Ricardo Luzón Fernández
*
*/
$user = elgg_get_page_owner_entity();
echo '<div id="profile-details" class="elgg-body pll">';
echo "<h2>{$user->name}</h2>";
echo elgg_view("profile/status", array("entity" => $user));
$show_profile_type_on_profile = elgg_get_plugin_setting("show_profile_type_on_profile", "profiles_go");
$categorized_fields = profiles_go_get_categorized_fields($user);
$cats = $categorized_fields['categories'];
$fields = $categorized_fields['fields'];
$details_result = "";
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 ProfileManagerCustomProfileType) {
            $details_result .= "<div class='even'><b>" . elgg_echo("profiles_go:user_details:profile_type") . "</b>: " . $profile_type->getTitle() . " </div>";
        }
    }
}
if (count($cats) > 0) {
    // only show category headers if more than 1 category available
    if (count($cats) > 1) {
        $show_header = true;
    } else {
Ejemplo n.º 5
0
/**
 * Returns an array with percentage completeness and required / missing fields
 *
 * @param ElggUser $user User to count completeness for
 *
 * @return boolean|array
 */
function profiles_go_profile_completeness($user = null)
{
    $result = false;
    if (empty($user)) {
        $user = elgg_get_logged_in_user_entity();
    }
    if (!empty($user) && $user instanceof ElggUser) {
        $required_fields = array();
        $missing_fields = array();
        $percentage_completeness = 100;
        $fields = profiles_go_get_categorized_fields($user, true, false, true);
        //echo('teranga fields: <pre>');	print_r($fields);	echo('</pre><br>');
        if (!empty($fields["categories"])) {
            foreach ($fields["categories"] as $cat_guid => $cat) {
                $cat_fields = $fields["fields"][$cat_guid];
                foreach ($cat_fields as $field) {
                    if ($field->count_for_completeness == "yes") {
                        $required_fields[] = $field;
                        $metaname = $field->metadata_name;
                        if (empty($user->{$metaname}) && $user->{$metaname} !== 0) {
                            $missing_fields[] = $field;
                        }
                    }
                }
            }
        }
        if (count($required_fields) > 0) {
            $percentage_completeness = 100 - round(count($missing_fields) / count($required_fields) * 100);
        }
        $result = array("required_fields" => $required_fields, "missing_fields" => $missing_fields, "percentage_completeness" => $percentage_completeness);
    }
    return $result;
}
Ejemplo n.º 6
0
/**
 * Function to add custom profile fields to user on register
 *
 * @param string   $event       Event name
 * @param string   $object_type Event type
 * @param ElggUser $object      User being created
 *
 * @return array
 */
function profiles_go_create_user_event($event, $object_type, $object)
{
    $custom_profile_fields = array();
    // retrieve all field that were on the register page
    foreach ($_POST as $key => $value) {
        if (strpos($key, "custom_profile_fields_") === 0) {
            $key = substr($key, 22);
            $custom_profile_fields[$key] = get_input("custom_profile_fields_" . $key);
        }
    }
    if (count($custom_profile_fields) > 0) {
        $categorized_fields = profiles_go_get_categorized_fields(null, true, true);
        $configured_fields = $categorized_fields['fields'];
        // set ignore access
        $ia = elgg_get_ignore_access();
        elgg_set_ignore_access(true);
        foreach ($custom_profile_fields as $shortname => $value) {
            // determine if $value should be an array
            if (!is_array($value) && !empty($configured_fields)) {
                // only do something if it not is already an array
                foreach ($configured_fields as $configured_field) {
                    if ($configured_field->metadata_name == $shortname) {
                        if ($configured_field->metadata_type == "tags" || $configured_field->output_as_tags == "yes") {
                            $value = string_to_tag_array($value);
                            // no need to continue this foreach
                            break;
                        }
                    }
                }
            }
            // use create_metadata to listen to default access
            if (is_array($value)) {
                $i = 0;
                foreach ($value as $interval) {
                    $i++;
                    if ($i == 1) {
                        $multiple = false;
                    } else {
                        $multiple = true;
                    }
                    create_metadata($object->guid, $shortname, $interval, 'text', $object->guid, get_default_access($object), $multiple);
                }
            } else {
                create_metadata($object->guid, $shortname, $value, 'text', $object->guid, get_default_access($object));
            }
        }
        // restore ignore access
        elgg_set_ignore_access($ia);
    }
    if (isset($_FILES["profile_icon"])) {
        if (!profiles_go_add_profile_icon($object)) {
            // return false to delete the user
            return false;
        }
    }
    $terms = elgg_get_plugin_setting("registration_terms", "profiles_go");
    if ($terms) {
        $object->setPrivateSetting("general_terms_accepted", time());
    }
    elgg_clear_sticky_form('profiles_go_register');
}