function XooNIpsOrmSession()
 {
     parent::XooNIpsTableObject();
     $this->initVar('sess_id', XOBJ_DTYPE_TXTBOX, null, true, 32);
     $this->initVar('updated', XOBJ_DTYPE_INT, null, true, null);
     $this->initVar('uid', XOBJ_DTYPE_INT, null, true, null);
     $this->initVar('su_uid', XOBJ_DTYPE_INT, null, false, null);
     if (xoonips_get_version() >= 340) {
         $this->initVar('sess_data', XOBJ_DTYPE_TXTBOX, '', false, null);
     }
 }
function b_xoonips_moderator_show()
{
    global $xoopsUser;
    // hide block if user is guest
    if (!is_object($xoopsUser)) {
        return false;
    }
    $uid = $xoopsUser->getVar('uid', 'n');
    // hide block if user is invalid xoonips user
    $xsession_handler =& xoonips_getormhandler('xoonips', 'session');
    if (!$xsession_handler->validateUser($uid, false)) {
        return false;
    }
    // check moderator user
    $xmember_handler =& xoonips_gethandler('xoonips', 'member');
    if (!$xmember_handler->isModerator($uid)) {
        // user is not moderator
        return false;
    }
    // count certification requested users
    $xu_ohandler =& xoonips_getormhandler('xoonips', 'users');
    $join = new XooNIpsJoinCriteria('users', 'uid', 'uid', 'INNER', 'u');
    $criteria = new CriteriaCompo(new Criteria('activate', 0));
    $criteria->add(new Criteria('level', 0, '>', 'u'));
    $cu_count = $xu_ohandler->getCount($criteria, $join);
    // count certification requested items
    $xil_handler =& xoonips_getormhandler('xoonips', 'index_item_link');
    $join = new XooNIpsJoinCriteria('xoonips_index', 'index_id', 'index_id', 'INNER', 'x');
    $criteria = new CriteriaCompo(new Criteria('certify_state', CERTIFY_REQUIRED));
    $criteria->add(new Criteria('open_level', OL_PUBLIC, '=', 'x'));
    $ci_count = $xil_handler->getCount($criteria, $join);
    // count group items open to public certification requested indexes
    if (xoonips_get_version() >= 340) {
        $xgxl_handler =& xoonips_getormhandler('xoonips', 'index_group_index_link');
        $gi_count = $xgxl_handler->getCount();
    } else {
        $gi_count = 0;
    }
    // assign block template variables
    $block = array();
    $block['lang_edit_group'] = _MB_XOONIPS_MODERATOR_EDIT_GROUPS;
    $block['lang_certify_users'] = _MB_XOONIPS_MODERATOR_CERTIFY_USERS;
    $block['lang_certify_users_count'] = $cu_count;
    $block['lang_certify_items'] = _MB_XOONIPS_MODERATOR_CERTIFY_PUBLIC_ITEMS;
    $block['lang_certify_items_count'] = $ci_count;
    $block['lang_groupcertify_items'] = _MB_XOONIPS_MODERATOR_GROUP_CERTIFY_PUBLIC_ITEMS;
    $block['lang_groupcertify_items_count'] = $gi_count;
    $block['lang_edit_public_index'] = _MB_XOONIPS_MODERATOR_EDIT_PUBLIC_INDEX;
    $block['lang_event_log'] = _MB_XOONIPS_MODERATOR_EVENT_LOG;
    $block['xid'] = IID_PUBLIC;
    return $block;
}
function b_xoonips_user_show()
{
    global $xoopsUser;
    // hide block if user is guest
    if (!is_object($xoopsUser)) {
        return false;
    }
    $uid = $xoopsUser->getVar('uid', 'n');
    // hide block if user is invalid xoonips user
    $xsession_handler =& xoonips_getormhandler('xoonips', 'session');
    if (!$xsession_handler->validateUser($uid, false)) {
        return false;
    }
    $block = array();
    // get xoonips module id
    $module_handler =& xoops_gethandler('module');
    $module =& $module_handler->getByDirname('xoonips');
    if (!is_object($module)) {
        exit('Access Denied');
    }
    $mid = $module->getVar('mid', 's');
    // get xoonips user information
    $xuser_handler =& xoonips_getormhandler('xoonips', 'users');
    $xuser_obj =& $xuser_handler->get($uid);
    if (!is_object($xuser_obj)) {
        // not xoonips user
        return false;
    }
    $is_certified = $xuser_obj->getVar('activate', 'n');
    if ($is_certified != 1) {
        // user is not certified
        return false;
    }
    $uname = $xoopsUser->getVar('uname', 's');
    $private_index_id = $xuser_obj->getVar('private_index_id', 's');
    $is_admin = $xoopsUser->isAdmin($mid);
    // get count of private messages
    $pm_handler =& xoops_gethandler('privmessage');
    $criteria = new CriteriaCompo(new Criteria('read_msg', 0));
    $criteria->add(new Criteria('to_userid', $uid));
    $new_messages = $pm_handler->getCount($criteria);
    // get configuration value of 'private_import_enabled'
    $xconfig_handler =& xoonips_getormhandler('xoonips', 'config');
    $private_import_enabled = $xconfig_handler->getValue('private_import_enabled');
    // count transfer requested items
    if (xoonips_get_version() >= 340) {
        $tr_handler =& xoonips_getormhandler('xoonips', 'transfer_request');
        $criteria = new Criteria('to_uid', $uid);
        $tr_count = $tr_handler->getCount($criteria);
    } else {
        $tr_count = 0;
    }
    // assign block template variables
    $block['private_index_id'] = $private_index_id;
    $block['is_su'] = isset($_SESSION['xoonips_old_uid']);
    $block['uid'] = $uid;
    $block['new_messages'] = $new_messages;
    $block['lang_youraccount'] = _MB_XOONIPS_USER_VIEW_ACCOUNT;
    $block['lang_editaccount'] = _MB_XOONIPS_USER_EDIT_ACCOUNT;
    $block['lang_register_item'] = _MB_XOONIPS_USER_REGISTER_ITEM;
    $block['lang_showusers'] = _MB_XOONIPS_USER_SHOW_USERS;
    $block['lang_grouplist'] = _MB_XOONIPS_USER_GROUP_LIST;
    $block['lang_notifications'] = _MB_XOONIPS_USER_NOTIFICATION;
    $block['lang_inbox'] = _MB_XOONIPS_USER_INBOX;
    $block['lang_listing_item'] = _MB_XOONIPS_USER_LISTING_ITEM;
    $block['lang_edit_index'] = _MB_XOONIPS_USER_EDIT_PRIVATE_INDEX;
    $block['lang_advanced_search'] = _MB_XOONIPS_USER_ADVANCED_SEARCH;
    $block['lang_logout'] = _MB_XOONIPS_USER_LOGOUT;
    $block['lang_su_start'] = _MB_XOONIPS_USER_SU_START;
    $block['lang_su_end'] = sprintf(_MB_XOONIPS_USER_SU_END, $uname);
    $block['lang_adminmenu'] = _MB_XOONIPS_USER_ADMINMENU;
    $block['lang_transfer_request'] = _MB_XOONIPS_USER_TRANSFER_USER_REQUEST;
    $block['lang_transfer_accept'] = _MB_XOONIPS_USER_TRANSFER_USER_ACCEPT;
    $block['lang_transfer_request_count'] = $tr_count;
    $block['lang_oaipmh_search'] = _MB_XOONIPS_USER_OAIPMH_SEARCH;
    $block['xoonips_isadmin'] = $is_admin;
    if ($is_admin || $private_import_enabled == 'on') {
        // set to $block['lang_import'] if user is permitted to import.
        // - config of private_import_enabled is true
        // - or user is administrator
        $block['lang_import'] = _MB_XOONIPS_USER_IMPORT;
    }
    return $block;
}