PHP Classes

File: htdocs/class/smarty3_plugins/function.xoUserInfo.php

Recommend this page to a friend!
  Packages of Michael Beck   Xoops 2.5   htdocs/class/smarty3_plugins/function.xoUserInfo.php   Download  
File: htdocs/class/smarty3_plugins/function.xoUserInfo.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Xoops 2.5
Modular content management publication system
Author: By
Last change:
Date: 2 months ago
Size: 2,643 bytes
 

Contents

Class file image Download
<?php
/*
 * You may not change or alter any portion of this comment or credits
 * of supporting developers from this source code or any supporting source code
 * which is considered copyrighted (c) material of the original comment or credit authors.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 */

/**
 * @copyright 2000-2025 XOOPS Project (https://xoops.org)
 * @license GNU GPL 2 or later (https://www.gnu.org/licenses/gpl-2.0.html)
 * @author XOOPS Development Team
 */

/*
 * Smarty plugin
 * -------------------------------------------------------------
 * Type: function
 * Name: xoUserInfo
 * Version: 1.0
 * Author: DuGris
 * Purpose: Get data for a specified user id and assign it to a template variable.
 * For the input uid, return an array of related information, specifically
 * these fields from the users table:
 * uname,name,email,user_avatar,url,posts,user_from,user_occ,user_intrest,bio,user_sig
 * Input: uid = uid of user for which information is requested
 * assign = smarty variable to be initialized for the template. default 'userInfo'
 *
 * Example:
 * Get user data
 * <{xoUserInfo uid=42 assign=memberInfo}>
 * -------------------------------------------------------------
 */

/**
 * @param $params
 * @param $smarty
 */
function smarty_function_xoUserInfo($params, $smarty)
{
    global
$xoopsUser, $xoopsConfig;

   
/** @var array $usersInfo uid indexed cache of user data */
   
static $usersInfo = [];

   
$uid = 0;
    if (!empty(
$params['uid'])) {
       
$uid = (int) $params['uid'];
    } elseif (isset(
$xoopsUser) && is_object($xoopsUser)) {
       
$uid = $xoopsUser->getVar('uid');
    }

   
$assign = empty($params['assign']) ? 'userInfo' : $params['assign'];

   
$infoFields = [
       
'uname', 'name', 'email', 'user_avatar', 'url', 'posts',
       
'user_from', 'user_occ', 'user_intrest', 'bio', 'user_sig',
    ];

    if (!isset(
$usersInfo[0])) {
       
$usersInfo[0] = ['uname' => $xoopsConfig['anonymous']];
    }

   
$userHandler = xoops_getHandler('user');
    if (isset(
$usersInfo[$uid])) {
       
$userData = $usersInfo[$uid];
    } elseif (
$userObject = $userHandler->get($uid)) {
       
$userData = [];
        foreach (
$infoFields as $field) {
           
$userData[$field] = $userObject->getVar($field, 'E');
        }
       
$usersInfo[$uid] = $userData;
    } else {
       
$userData = $usersInfo[0];
    }
   
$smarty->assign($assign, $userData);
}