<?php
// TODO: redo the crap!
/**
* Implements qtag USERATTRIBUTE.
*
* Returns an user attribute of a given user.
*
* @param Environment $env
* The Environment.
*
* @param string $target
* The qtag's target.
*
* @param array $attributes
* The qtag's attributes.
*
* @return string
* The rendered qtag.
*/
function qtag_USERATTRIBUTE($env, $target, $attributes) {
$user = ($target == NULL) ? UserFactory::current($env) : new User($env, $target);
switch ($attributes['name']) {
// User's login name.
case 'username':
$string = $user->getName();
break;
// User's last name.
case 'last_name':
$string = $user->getLastName();
break;
// User's email.
case 'email':
$string = $user->getEmail();
break;
// User's first name.
case 'first_name':
$string = $user->getFirstName();
break;
default:
$string = qtag_ATTRIBUTE($env, $user->getName(), $attributes);
break;
}
return $string;
}
/**
* Implements qtag LOGIN.
*
* Renders an user login link.
*
* @param Environment $env
* The Environment.
*
* @param string $target
* The qtag's target.
*
* @param array $attributes
* The qtag's attributes.
*
* @return string
* The rendered qtag.
*/
function qtag_LOGIN($env, $target, $attributes) {
$user = UserFactory::current($env);
if ($user->exists) {
$title = isset($attributes['title']) ? $attributes['title'] : 'Logout';
$link = '[LINK|title=' . $title . '|class=logout-link]';
}
else {
$title = isset($attributes['title']) ? $attributes['title'] : 'Login';
$link = '[LINK|title=' . $title . '|class=login-link]';
}
return $link;
}
/**
* Implements qtag REGISTER.
*
* Renders an user sign up / registration link.
*
* @param Environment $env
* The Environment.
*
* @param string $target
* The qtag's target.
*
* @param array $attributes
* The qtag's attributes.
*
* @return string
* The rendered qtag.
*/
function qtag_REGISTER($env, $target, $attributes) {
$user = UserFactory::current($env);
if (UserAccess::check($env, USER_ACTION_REGISTER, array('user' => $user))) {
$title = isset($attributes['title']) ? $attributes['title'] : 'Sign up';
return $user->exists ? '' : '[LINK|title=' . $title . '|class=register-link]';
}
else {
return '';
}
}
/**
* Implements qtag USER_EDIT.
*
* Renders a link to edit an user profile.
*
* @param Environment $env
* The Environment.
*
* @param string $target
* The qtag's target.
*
* @param array $attributes
* The qtag's attributes.
*
* @return string
* The rendered qtag.
*/
function qtag_USER_EDIT($env, $target, $attributes) {
$user = ($target == NULL) ? UserFactory::current($env) : new User($env, $target);
if (UserAccess::check($env, USER_ACTION_EDIT, array('user' => $user))) {
$title = isset($attributes['title']) ? $attributes['title'] : 'Edit profile';
return $user->exists ? '[LINK|title=' . $title . '|class=user-edit-link]' : $target;
}
else {
return '';
}
}
/**
* Implements qtag USER_EDIT.
*
* Renders a link to edit an user profile.
*
* @param Environment $env
* The Environment.
*
* @param string $target
* The qtag's target.
*
* @param array $attributes
* The qtag's attributes.
*
* @return string
* The rendered qtag.
*/
function qtag_USER_EDIT_OWN($env, $target, $attributes) {
$user = ($target == NULL) ? UserFactory::current($env) : new User($env, $target);
if (UserAccess::check($env, USER_ACTION_EDIT, array('user' => $user))) {
$title = isset($attributes['title']) ? $attributes['title'] : 'Edit your profile';
return $user->exists ? '[LINK|title=' . $title . '|class=user-edit-own-link]' : $target;
}
else {
return '';
}
}
|