//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;
 }