//Add group_owner_permission $xoopsTpl->assign("auto_select_private_index_message", $index_item_link_handler->privateIndexReadable($item_id, $xoopsUser->getVar('uid'))); $checkedIndexIds = explode(',', $formdata->getvalue('post', 'xoonipsCheckedXID', 's', false)); $index_handler =& xoonips_getormhandler('xoonips', 'index'); $index_item_link_handler =& xoonips_getormhandler('xoonips', 'index_item_link'); $index_item_links =& $index_item_link_handler->getObjects(new Criteria('item_id', $formdata->getValue('post', 'item_id', 'i', false))); foreach ($index_item_links as $link) { if (!$index_handler->getPerm($link->get('index_id'), $xoopsUser ? $xoopsUser->getVar('uid') : UID_GUEST, 'read')) { $checkedIndexIds[] = $link->get('index_id'); } } $formdata->set('post', 'xoonipsCheckedXID', implode(',', $checkedIndexIds)); $change_log = $formdata->getValue('post', 'change_log', 's', false); if (!isset($change_log) || $change_log == '') { $item_id = $formdata->getValue('post', 'item_id', 'i', false); $fields = xnpGetModifiedFields($item_id); $fname = $modname . "GetModifiedFields"; if (function_exists($fname)) { $fields = array_merge($fields, $fname($item_id)); } if (count($fields) > 0) { $formdata->set('post', 'change_log', sprintf(_MD_XOONIPS_ITEM_CHANGE_LOG_AUTOFILL_TEXT, implode(_MD_XOONIPS_ITEM_CHANGE_LOG_AUTOFILL_DELIMITER, $fields))); } } eval("\$body = " . $modname . "GetConfirmBlock( " . $item_id . " );"); $xoopsTpl->assign('body', $body); // send basic information using hidden to next(before)page. // - basic inforamtion form data $itemlib_handler =& XooNIpsItemLibraryHandler::getInstance(); $itemlib_obj =& $itemlib_handler->get($item_id); $itemlib_handler->fetchRequest($itemlib_obj, false);
/** * check need to cerity * * @access public * @return bool true if required */ function isCertifyRequired() { $item_id = $this->_item_basic_obj->get('item_id'); // check modified fields $modname = $this->_item_type_obj->get('name'); $viewphp = $this->_item_type_obj->get('viewphp'); include_once XOOPS_ROOT_PATH . '/modules/' . $viewphp; $func = $modname . 'GetModifiedFields'; $modified = xnpGetModifiedFields($item_id) + (function_exists($func) ? $func($item_id) : array()); if (count($modified) == 0) { // modified field not found, no need to certify return false; } // fetch new index ids $formdata =& xoonips_getutility('formdata'); $xids_new = array_map('intval', explode(',', $formdata->getValue('post', 'xoonipsCheckedXID', 's', false, ''))); if (count($modified) == 1 && $modified[0] == _MD_XOONIPS_ITEM_INDEX_LABEL) { // only indexes are modified // get old index ids $xids_old = array(); $item_id = $this->_item_basic_obj->get('item_id'); $index_item_link_handler =& xoonips_getormhandler('xoonips', 'index_item_link'); $criteria = new Criteria('item_id', $item_id); $index_item_link_objs =& $index_item_link_handler->getObjects(); foreach ($index_item_link_objs as $index_item_link_obj) { $xids_old[] = $index_item_link_obj->get('index_id'); } // get newly arrived index ids $xids = array_diff($xids_new, $xids_old); } else { // set all new index ids $xids = $xids_new; } if (count($xids) == 0) { // indexes are not changed return false; } // check open_level of modified indexes $index_handler =& xoonips_getormhandler('xoonips', 'index'); $criteria = new CriteriaCompo(new Criteria('open_level', OL_PRIVATE, '!=')); $criteria->add(new Criteria('index_id', '(' . implode(',', $xids) . ')', 'IN')); return $index_handler->getCount($criteria) > 0; }