function xnpbook_get_list_block_array($item_id) { $item_basic_handler =& xoonips_getormhandler('xoonips', 'item_basic'); $item_basic = $item_basic_handler->get($item_id); $item_title_handler =& xoonips_getormhandler('xoonips', 'title'); $criteria = new Criteria('item_id', $item_id); $criteria->setSort('title_id'); $item_titles =& $item_title_handler->getObjects($criteria); $titles = array(); foreach ($item_titles as $t) { $titles[] = $t->getVarArray('n'); } $item_detail_handler =& xoonips_getormhandler('xnpbook', 'item_detail'); $item_detail = $item_detail_handler->get($item_id); return array('basic' => $item_basic->getVarArray('n'), 'titles' => $titles, 'detail' => $item_detail->getVarArray('n'), 'pending' => xnpIsPending($item_id) ? true : false); }
/** * return template variables of item basic part * * @param string $type defined symbol * XOONIPS_TEMPLATE_TYPE_TRANSFER_ITEM_DETAIL * , XOONIPS_TEMPLATE_TYPE_TRANSFER_ITEM_LISTL * , XOONIPS_TEMPLATE_TYPE_ITEM_DETAIL * or XOONIPS_TEMPLATE_TYPE_ITEM_LIST * @param object $item item compo object * @param int $uid * @return array variables */ function getBasicTemplateVar($type, &$item, $uid) { if (!in_array($type, array(XOONIPS_TEMPLATE_TYPE_TRANSFER_ITEM_DETAIL, XOONIPS_TEMPLATE_TYPE_TRANSFER_ITEM_LIST, XOONIPS_TEMPLATE_TYPE_ITEM_DETAIL, XOONIPS_TEMPLATE_TYPE_ITEM_LIST))) { return array(); } $textutil =& xoonips_getutility('text'); $item_type_handler =& xoonips_getormhandler('xoonips', 'item_type'); $basic =& $item->getVar('basic'); $item_id = $basic->get('item_id'); $result = array('basic' => array('item_id' => $basic->getVar('item_id', 's'), 'description' => $basic->getVar('description', 's'), 'doi' => $basic->getVar('doi', 's'), 'creation_date' => $basic->getVar('creation_date', 's'), 'last_update_date' => $basic->getVar('last_update_date', 's'), 'publication_year' => $this->get_year_template_var($basic->get('publication_year'), $basic->get('publication_month'), $basic->get('publication_mday')), 'publication_month' => $this->get_month_template_var($basic->get('publication_year'), $basic->get('publication_month'), $basic->get('publication_mday')), 'publication_mday' => $this->get_mday_template_var($basic->get('publication_year'), $basic->get('publication_month'), $basic->get('publication_mday')), 'lang' => $this->get_lang_label($basic->get('lang'))), 'contributor' => array(), 'item_type' => array(), 'titles' => array(), 'keywords' => array(), 'changelogs' => array(), 'indexes' => array(), 'related_tos' => array()); $user_handler =& xoonips_getormhandler('xoonips', 'xoops_users'); $user =& $user_handler->get($basic->get('uid')); if (is_object($user)) { $result['contributor']['name'] = $user->getVar('name', 's'); $result['contributor']['uname'] = $user->getVar('uname', 's'); } else { $result['contributor']['name'] = 'unknown'; $result['contributor']['uname'] = 'Zombie User'; } $item_type =& $item_type_handler->get($basic->get('item_type_id')); $result['item_type']['display_name'] = $item_type->getVar('display_name', 's'); foreach ($item->getVar('titles') as $title) { $result['titles'][] = array('title' => $title->getVar('title', 's')); } foreach ($item->getVar('keywords') as $keyword) { $result['keywords'][] = array('keyword' => $keyword->getVar('keyword', 's')); } $changelogs = $item->getVar('changelogs'); usort($changelogs, array('XooNIpsItemInfoCompoHandler', 'usort_desc_by_log_date')); foreach ($changelogs as $changelog) { $result['changelogs'][] = array('log_date' => $changelog->getVar('log_date', 's'), 'log' => $changelog->getVar('log', 's')); } // get indexes only not item listing for loading performance improvement if ($type != XOONIPS_TEMPLATE_TYPE_ITEM_LIST && $type != XOONIPS_TEMPLATE_TYPE_TRANSFER_ITEM_LIST) { $xoonips_user_handler =& xoonips_getormhandler('xoonips', 'users'); $xoonips_user =& $xoonips_user_handler->get($basic->get('uid')); $private_index_id = $xoonips_user->get('private_index_id'); foreach ($item->getVar('indexes') as $link) { $result['indexes'][] = array('path' => $this->get_index_path_by_index_id($link->get('index_id'), $private_index_id, 's')); } } // get related to part only not item listing for disable to recursive calling if ($type != XOONIPS_TEMPLATE_TYPE_ITEM_LIST && $type != XOONIPS_TEMPLATE_TYPE_TRANSFER_ITEM_LIST) { $basic_handler =& xoonips_getormhandler('xoonips', 'item_basic'); foreach ($item->getVar('related_tos') as $related_to) { $related_basic =& $basic_handler->get($related_to->get('item_id')); if (is_null($related_basic)) { continue; } // ignore invalid item id $related_item_type =& $item_type_handler->get($related_basic->get('item_type_id')); $related_item_type_id = $related_item_type->get('item_type_id'); if ($related_item_type_id == ITID_INDEX) { continue; } // ignore index id $item_compo_handler =& xoonips_getormcompohandler($related_item_type->getVar('name', 's'), 'item'); if ($item_compo_handler->getPerm($item_id, $uid, 'read')) { $result['related_tos'][] = array('filename' => 'db:' . $item_compo_handler->getTemplateFileName(XOONIPS_TEMPLATE_TYPE_TRANSFER_ITEM_LIST), 'var' => $item_compo_handler->getTemplateVar(XOONIPS_TEMPLATE_TYPE_TRANSFER_ITEM_LIST, $related_basic->get('item_id'), $uid)); } } } //additional type specific template vars switch ($type) { case XOONIPS_TEMPLATE_TYPE_TRANSFER_ITEM_LIST: $result['url'] = $textutil->html_special_chars(xoonips_get_transfer_request_item_detail_url($basic->get('item_id'))); case XOONIPS_TEMPLATE_TYPE_ITEM_LIST: $result['pending'] = xnpIsPending($item_id); } return $result; }