{=
# ===================================
# Check number of profiles to display
# ===================================
string user_node_path = volatile.authenticated_user_node_path;
string user_profiles_path = user_node_path . ".profiles";
int number_of_profiles = 0;
if (node_exists(user_profiles_path) and
(num_subnodes(user_profiles_path) > 0)) then (
if (node_exists("volatile.temp")) then (
delete_node("volatile.temp");
);
node user_profile;
string profile_name;
string profile_label;
foreach user_profile user_profiles_path (
profile_name = node_name(user_profile);
if (node_exists("profiles." . profile_name)) then (
profile_label = node_value("profiles." . profile_name . ".label");
if (contains(profile_label, "$")) then (profile_label = replace_all(profile_label, "$", "$"));
"volatile.temp.profiles." . profile_name . ".label" = profile_label;
);
);
if (node_exists("volatile.temp.profiles")) then (
number_of_profiles = num_subnodes("volatile.temp.profiles");
);
);
# ===================================================
# Start profiles view depending on number of profiles
# ===================================================
# Note, if user has access to exactly one profile then the
# user is directed to this profile already at the index page!
if (number_of_profiles > 0) then (
# =======================
# If two or more profiles
# =======================
node profile;
node profiles_node = "volatile.temp.profiles";
string profile_name;
string profile_label;
string url;
sort(profiles_node, "field:label,alphabetical,ascending");
'
\n';
foreach profile profiles_node (
profile_name = node_name(profile);
profile_label = node_value(subnode_by_name(profile, "label"));
url = "?dp+templates.profile.index";
url .= "+p+" . profile_name;
'\n';
'';
'' . profile_label . '';
' | \n';
'
\n';
);
'
\n';
)
else (
# =============
# If no profile
# =============
'
' . lang_stats.general.no_profile_exists_info . '
';
);
expand(templates.shared.copyright);
'
\n';
=}