} $xil_objs =& $xil_handler->getObjects($criteria, false, '', false, $join); $items = array(); include XOOPS_ROOT_PATH . '/header.php'; foreach ($xil_objs as $xil_obj) { $iid = $xil_obj->get('item_id'); $xid = $xil_obj->get('index_id'); if (!isset($items[$iid])) { $itemlib_handler =& XooNIpsItemLibraryHandler::getInstance(); $itemlib_obj =& $itemlib_handler->get($iid); if (!is_object($itemlib_obj)) { continue; } $items[$iid] = array('item_id' => $iid, 'indexes' => array(), 'item_body' => $itemlib_obj->getItemListBlock()); } $items[$iid]['indexes'][] = array('id' => $xid, 'path' => xnpGetIndexPathString($xnpsid, $xid)); } $xoopsOption['template_main'] = 'xoonips_certify.html'; if (isset($menu_id)) { $xoopsTpl->assign('menu_id', $menu_id); } $xoopsTpl->assign('pankuzu', $pankuzu); $xoopsTpl->assign('certify_button_label', _MD_XOONIPS_ITEM_CERTIFY_BUTTON_LABEL); $xoopsTpl->assign('uncertify_button_label', _MD_XOONIPS_ITEM_UNCERTIFY_BUTTON_LABEL); $xoopsTpl->assign('item_label', _MD_XOONIPS_ITEM_ITEM_LABEL); $xoopsTpl->assign('index_label', _MD_XOONIPS_ITEM_INDEX_LABEL); if (count($items) > 0) { $xoopsTpl->assign('items', $items); } $xoopsTpl->assign('xoonips_editprofile_url', XOOPS_URL . '/modules/xoonips/edituser.php?uid=' . $uid); // token ticket
} $dirArray = xoonipsGetPathArray($xnpsid, $xid); // get Children // -> childIndexes $childIndexes = array(); $index_compo_handler =& xoonips_getormcompohandler('xoonips', 'index'); $join = new XooNIpsJoinCriteria('xoonips_index', 'item_id', 'index_id'); $criteria2 =& new Criteria('parent_index_id', $xid); $criteria2->setSort('sort_number'); foreach ($index_compo_handler->getObjects($criteria2, true, '', false, $join) as $index_id => $childindex) { $item_lock_handler =& xoonips_getormhandler('xoonips', 'item_lock'); $index_group_index_link_handler =& xoonips_getormhandler('xoonips', 'index_group_index_link'); $titles =& $childindex->getVar('titles'); $childIndexes[$index_id] = array('isLocked' => $item_lock_handler->isLocked($index_id), 'titles' => array($titles[0]->getVar('title', 's')), 'item_id' => $index_id, 'lockTypeString' => $textutil->html_special_chars(get_lock_type_string($index_id)), 'write_permission' => $index_handler->getPerm($index_id, @$_SESSION['xoopsUserId'], 'write'), 'public_index_string' => '', 'public_index_pending_string' => ''); foreach ($index_group_index_link_handler->getByGroupIndexId($index_id, @$_SESSION['xoopsUserId']) as $link) { $childIndexes[$index_id]['public_index_string'] .= xnpGetIndexPathString($xnpsid, $link->get('index_id')) . "<br />"; $childIndexes[$index_id]['public_index_pending_string'] .= _MD_XOONIPS_ITEM_PENDING_NOW . "<br />"; } } // prev_idnex_id, next_index_id are set reset($childIndexes); function get_lock_type_string($index_id) { $item_lock_handler =& xoonips_getormhandler('xoonips', 'item_lock'); if ($item_lock_handler->isLocked($index_id)) { return sprintf(_MD_XOONIPS_WARNING_CANNOT_EDIT_LOCKED_INDEX, xoonips_get_lock_type_string($item_lock_handler->getLockType($index_id))); } return ''; } // generate list about 'moveto' require_once 'include/gentree.php';
/** * add item to index, set certify_state and lock item and indexes * * @param $index_id integer id of index item is registerd to * @param $uid integer user id of executor * @param $old_selected_item_ids array id of all of already registerd items to the index($index_id) * @param $new_selected_item_ids array id of all of items to be registered to the index($index_id) * */ function xoonips_add_selected_item($index_id, $uid, $old_selected_item_ids, $new_selected_item_ids) { global $xoopsDB; $uid_list = array(); // uid(s) who receive notification. $add_item_ids = array_diff($new_selected_item_ids, $old_selected_item_ids); $del_item_ids = array_diff($old_selected_item_ids, $new_selected_item_ids); $index_handler =& xoonips_getormhandler('xoonips', 'index'); $index = $index_handler->get($index_id); switch ($index->get('open_level')) { case OL_GROUP_ONLY: // get uid list of group admins $xgroup_handler =& xoonips_gethandler('xoonips', 'group'); $uid_list = $xgroup_handler->getUserIds($index->get('gid'), true); break; case OL_PUBLIC: // get uid list of moderators $xoonips_users_handler =& xoonips_getormhandler('xoonips', 'users'); $xoonips_config_handler =& xoonips_getormhandler('xoonips', 'config'); $moderator_gid = $xoonips_config_handler->getValue('moderator_gid'); $member_handler =& xoops_gethandler('member'); $users = $member_handler->getUsersByGroup($moderator_gid, true); foreach ($users as $u) { if ($xoonips_users_handler->get($u->getVar('uid'))) { $uid_list[] = $u->getVar('uid'); } } break; } $xoonips_config_handler =& xoonips_getormhandler('xoonips', 'config'); $index_item_link_handler =& xoonips_getormhandler('xoonips', 'index_item_link'); // add selected item into index foreach ($add_item_ids as $item_id) { // can't add items when the item is certified already or is in pending state. $criteria = new CriteriaCompo(new Criteria('index_id', $index_id)); $criteria = $criteria->add(new Criteria('item_id', $item_id)); $index_item_link =& $index_item_link_handler->getObjects($criteria); if (isset($index_item_link[0]) && $index_item_link[0]->get('certify_state') == CERTIFY_REQUIRED || isset($index_item_link[0]) && $index_item_link[0]->get('certify_state') == CERTIFIED) { continue; } // add $certify_item = $xoonips_config_handler->getValue(XNP_CONFIG_CERTIFY_ITEM_KEY); $index_item_link = $index_item_link_handler->create(); $index_item_link->set('index_id', $index_id); $index_item_link->set('item_id', $item_id); $index_item_link->set('certify_state', $certify_item == 'auto' ? CERTIFIED : CERTIFY_REQUIRED); if (!$index_item_link_handler->insert($index_item_link)) { redirect_header(XOOPS_URL . '/', 3, "ERROR can't create index_item_link"); exit; } $changelogs_handler =& xoonips_getormhandler('xoonips', 'changelog'); $change_log = $changelogs_handler->create(); $change_log->set('uid', $uid); $change_log->set('item_id', $item_id); $change_log->set('log_date', time()); $change_log->set('log', sprintf(_MD_XOONIPS_ITEM_CHANGE_LOG_AUTOFILL_TEXT, implode(_MD_XOONIPS_ITEM_CHANGE_LOG_AUTOFILL_DELIMITER, array(_MD_XOONIPS_ITEM_INDEX_LABEL)))); $item_handler =& xoonips_getormcompohandler('xoonips', 'item'); $item = $item_handler->get($item_id); $item_basic = $item->getVar('basic'); $change_logs = $item->getVar('changelogs'); $item_basic->set('last_update_date', time()); $change_logs[] = $change_log; $item->setVar('changelogs', $change_logs); $item->setVar('basic', $item_basic); if (!$item_handler->insert($item)) { redirect_header(XOOPS_URL . '/', 3, "ERROR in updating item"); } trigger_error("TODO lock item and indexes"); // lock if imported items are registered to public/group index and certify required $item_basic_handler =& xoonips_getormhandler('xoonips', 'item_basic'); $index_item_links =& $item->getVar('indexes'); $index_handler =& xoonips_getormhandler('xoonips', 'index'); foreach ($index_item_links as $index_item_link) { if ($index_item_link->get('certify_state') == CERTIFY_REQUIRED) { $index = $index_handler->get($index_item_link->get('index_id')); if ($index->get('open_level') == OL_PUBLIC || $index->get('open_level') == OL_GROUP_ONLY) { $basic =& $item->getVar('basic'); $item_basic_handler->lockItemAndIndexes($basic->get('item_id'), $index_item_link->get('index_id')); } } } // record events(update item) $eventlog_handler =& xoonips_getormhandler('xoonips', 'event_log'); $eventlog_handler->recordUpdateItemEvent($item_id); if (OL_PUBLIC == $index->get('open_level') || OL_GROUP_ONLY == $index->get('open_level')) { $certify_item = $xoonips_config_handler->getValue(XNP_CONFIG_CERTIFY_ITEM_KEY); switch ($certify_item) { case 'auto': // record events(certify item) $eventlog_handler->recordCertifyItemEvent($item_id, $index_id); break; case 'on': global $xoopsModule; $notification_handler =& xoops_gethandler('notification'); //define tags here for notification message $tags = array(); $tags['ITEM_URL'] = XOOPS_URL . '/modules/' . $xoopsModule->dirname() . "/detail.php?item_id={$item_id}"; $tags['CERTIFY_URL'] = XOOPS_URL . '/modules/' . $xoopsModule->dirname() . "/certify.php"; $tags['INDEX'] = xnpGetIndexPathString($_SESSION['XNPSID'], $index_id); $notification_handler =& xoops_gethandler('notification'); $result = $notification_handler->triggerEvent('administrator', 0, 'item_certify_request', $tags, $uid_list); break; } } } }
if ($size != false) { header("Content-Length: {$size}"); } readfile($zipFile . ".zip"); foreach ($removeFiles as $f) { unlink($f); } @rmdir($export_dir . "/files"); //remove files/ folder(xnpExportFile makes this dir. see also imexport.php.) rmdir($export_dir); exit; } while (false); } else { if ($op == 'list') { if ($export_type == 'index') { $indexpath = xnpGetIndexPathString($_SESSION['XNPSID'], $index_id); $export_index = _MD_XOONIPS_ITEM_INDEX_LABEL; $yesno = $recursive_index == 1 ? _YES : _NO; $export_recursive = _MD_XOONIPS_EXPORT_RECURSIVE; $submit = _MD_XOONIPS_EXPORT_LICENSE_AGREEMENT_SUBMIT; $pankuzu = _MD_XOONIPS_EXPORT_PANKUZU_EXPORT . _MI_XOONIPS_ACCOUNT_PANKUZU_SEPARATOR . _MD_XOONIPS_EXPORT_PANKUZU_EXPORT_INDEX; $message = _MD_XOONIPS_EXPORT_EXPORT_INDEX; include XOOPS_ROOT_PATH . '/header.php'; echo <<<EOT <p> {$pankuzu} </p> <p> {$message} </p> <form id='export_list' action='export.php' method='post'>
function xnpGetIndexRegisterBlock() { $xnpsid = $_SESSION['XNPSID']; $indexes = array(); $formdata =& xoonips_getutility('formdata'); $xoonipsCheckedXID = $formdata->getValue('post', 'xoonipsCheckedXID', 's', false); if (isset($xoonipsCheckedXID)) { $index_ids = explode(',', $xoonipsCheckedXID); $index_handler =& xoonips_getormhandler('xoonips', 'index'); foreach ($index_ids as $xid) { if ($xid > 0) { if (!$index_handler->getPerm($xid, $_SESSION['xoopsUserId'], 'read')) { continue; } $str = xnpGetIndexPathString($xnpsid, $xid); $indexes[$xid] = "{$str}"; } } } if (count($indexes) == 0) { return array('name' => _MD_XOONIPS_ITEM_INDEX_LABEL . _MD_XOONIPS_ITEM_REQUIRED_MARK); } else { return array('name' => _MD_XOONIPS_ITEM_INDEX_LABEL . _MD_XOONIPS_ITEM_REQUIRED_MARK, 'value' => implode('<br />', array_values($indexes))); } }