$fields[] = $tables['users'] . '.name';
    $fields[] = $tables['users'] . '.uname';
    $fields[] = $tables['users'] . '.email';
    $users_objs =& $users_handler->getObjects($criteria, false, implode(',', $fields), false, $join_criteria);
    return $users_objs;
}
function count_users()
{
    $users_handler =& xoonips_getormhandler('xoonips', 'xoops_users');
    $join_criteria = new XooNIpsJoinCriteria('xoonips_users', 'uid', 'uid');
    return $users_handler->getCount(null, $join_criteria);
}
// page navigation
$page = is_null($get_vals['navi']) ? 1 : $get_vals['navi'];
$limit = 20;
$pagenavi = new XooNIpsPageNavi(count_users(), $limit, $page);
$pagenavi->setSort(array('uname'));
$navi =& $pagenavi->getTemplateVars(10);
$navi_title = sprintf(_AM_XOONIPS_MAINTENANCE_ACCOUNT_PAGENAVI_FORMAT, $navi['start'], $navi['end'], $navi['total']);
$navi_body = array();
foreach ($navi['navi'] as $body) {
    $navi_body[] = array('has_link' => $navi['page'] == $body ? 'no' : 'yes', 'link' => $xoonips_admin['mypage_url'], 'page' => $body);
}
$users_objs =& account_get_userlist($limit, $pagenavi->getStart(), $pagenavi->getSort());
$users = array();
$evenodd = 'odd';
foreach ($users_objs as $users_obj) {
    $uid = $users_obj->getVar('uid', 'e');
    $name = $users_obj->getVar('name', 's');
    $uname = $users_obj->getVar('uname', 's');
    $email = $users_obj->getVar('email', 's');
$breadcrumbs = array(array('name' => _MD_XOONIPS_USERLIST_TITLE, 'url' => XOONIPS_URL . '/userlist.php'), array('name' => $u_obj->getVar('uname', 's'), 'url' => XOONIPS_URL . '/showusers.php?uid=' . $uid));
// publication list
$item_counts = _xoonips_showusers_get_count_items($uid);
$item_type_id = $formdata->getValue('post', 'item_type_id', 'i', false);
$page = $formdata->getValue('post', 'page', 'i', false, 1);
if (count($item_counts) != 0) {
    // validate item type id
    $item_type_order = array_keys($item_counts);
    if (!in_array($item_type_id, $item_type_order)) {
        // override existing item type id
        $item_type_id = $item_type_order[0];
    }
    $limit = 20;
    $sort = 'publication_date';
    $order = 'DESC';
    $navi = new XooNIpsPageNavi($item_counts[$item_type_id]['count'], $limit, $page);
    $navi->setSort($sort);
    $navi->setOrder($order);
    $item_ids = _xoonips_showusers_get_item_ids($item_type_id, $uid, $navi);
    $page = $navi->getPage();
    // set page navi
    $pagenavi = $navi->getTemplateVars(10);
    $pagenavi['onclick'] = 'xoonips_showusers_select_page';
    // set page tabs
    $pagetabs = array();
    foreach ($item_counts as $itid => $item_type) {
        $pagetabs[] = array('id' => $itid, 'label' => sprintf('%s(%u)', $item_type['label'], $item_type['count']), 'selected' => $itid == $item_type_id, 'onclick' => 'xoonips_showusers_select_itemtype');
    }
} else {
    // publication item not found
    $item_ids = array();
     xoonips_eventlog_graph($log_type_id);
     break;
 case 'list':
     if ($limit < 1 || $page < 1 || $log_type_id != 20 && $log_type_id != 21) {
         die('Illegal request');
     }
     $is_users = $log_type_id == 20 ? true : false;
     $users = array();
     $items = array();
     if ($is_users) {
         $total = xoonips_eventlog_count_users();
     } else {
         $total = xoonips_eventlog_count_items();
     }
     include 'class/base/pagenavi.class.php';
     $pagenavi = new XooNIpsPageNavi($total, $limit, $page);
     $start = $pagenavi->getStart();
     $limit = $pagenavi->getLimit();
     if ($is_users) {
         $objs =& xoonips_eventlog_get_users($start, $limit);
         foreach ($objs as $obj) {
             $user = array();
             $uname = $obj->getExtraVar('uname');
             $email = $obj->getExtraVar('email');
             $user['uname'] = $textutil->html_special_chars($uname);
             $user['company_name'] = $textutil->html_special_chars($obj->getVar('company_name', 'n'));
             $user['division'] = $textutil->html_special_chars($obj->getVar('division', 'n'));
             $user['email'] = $textutil->html_special_chars($email);
             $users[] = $user;
         }
     } else {
$xconfig_handler =& xoonips_getormhandler('xoonips', 'config');
$item_show_optional = $xconfig_handler->getValue('item_show_optional');
$is_owner_only = $item_show_optional != 'on';
// calculate page navigation
$page_navi = array();
$total_item_count = 0;
// - get page number in each item types
$page = $formdata->getValueArray('post', 'page', 'i', false);
foreach ($item_type_ids as $it_id) {
    // - get total number of items in each item types
    $item_count = _xoonips_editshowitem_count_public_items($it_id, $uid, $is_owner_only);
    // - maximum number of items per page
    $item_limit = 20;
    // - current page
    $item_page = isset($page[$it_id]) ? $page[$it_id] : 1;
    $navi = new XooNIpsPageNavi($item_count, $item_limit, $item_page);
    // - sort
    $navi->setSort('title');
    // - order
    $navi->setOrder('ASC');
    $page_navi[$it_id] = $navi;
    // - total item count
    $total_item_count += $item_count;
}
// assign template values
$token_ticket = $xoopsGTicket->getTicketHtml(__LINE__, 1800, $ticket_area);
$xoopsOption['template_main'] = 'xoonips_editshowitem.html';
include XOOPS_ROOT_PATH . '/header.php';
// create item list block after loaded header.php,
// because $GLOBALS['xoopsTpl'] variable is used in item list block generator
$item_types = array();