function xnppresentationGetConfirmBlock($item_id)
{
    $formdata =& xoonips_getutility('formdata');
    $creator_handler =& xoonips_getormhandler('xnppresentation', 'creator');
    $creator_objs =& $formdata->getObjectArray('post', $creator_handler->getTableName(), $creator_handler, false);
    // retrieve blocks of BasicInformation / Preview / index block
    $basic = xnpGetBasicInformationConfirmBlock($item_id);
    $preview = xnpGetPreviewConfirmBlock($item_id);
    $index = xnpGetIndexConfirmBlock($item_id);
    $presentation_file = xnpGetAttachmentConfirmBlock($item_id, 'presentation_file');
    $lengths = xnpGetColumnLengths('xnppresentation_item_detail');
    $readme = xnpGetTextFileConfirmBlock($item_id, 'readme', $lengths['readme']);
    $rights = xnpGetRightsConfirmBlock($item_id, $lengths['rights']);
    // retrieve detail information
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $detail = array('presentation_type' => array('value' => $formdata->getValue('post', 'presentation_type', 's', false)));
        xnpConfirmHtml($detail, 'xnppresentation_item_detail', array_keys($detail), _CHARSET);
        $types = xnppresentationGetTypes();
        $detail['presentation_type_str'] = array('value' => htmlspecialchars($types[$detail['presentation_type']['value']], ENT_QUOTES));
    } else {
        $detail = array();
    }
    // trim strings
    if (xnpHasWithout($basic) || xnpHasWithout($readme) || xnpHasWithout($rights) || xnpHasWithout($detail) || xnpHasWithout($preview) || xnpHasWithout($presentation_file) || xoonips_is_multiple_field_too_long($creator_objs, 'xnppresentation', 'creator')) {
        global $system_message;
        $system_message = $system_message . "\n<br /><font color='#ff0000'>" . _MD_XOONIPS_ITEM_WARNING_FIELD_TRIM . '</font><br />';
    }
    // assign to template
    global $xoopsTpl;
    $tpl = new XoopsTpl();
    $tpl->assign($xoopsTpl->get_template_vars());
    // variables assigned to xoopsTpl are copied to tpl
    $tpl->assign('basic', $basic);
    $tpl->assign('preview', $preview);
    $tpl->assign('index', $index);
    $tpl->assign('presentation_file', $presentation_file);
    $tpl->assign('attachment_dl_limit', xnpGetDownloadLimitationOptionConfirmBlock('xnppresentation'));
    $tpl->assign('attachment_dl_notify', xnpGetDownloadNotificationOptionConfirmBlock('xnppresentation'));
    $tpl->assign('detail', $detail);
    $tpl->assign('readme', $readme);
    $tpl->assign('rights', $rights);
    $tpl->assign('xnppresentation_creator', xoonips_get_multiple_field_template_vars($creator_objs, 'xnppresentation', 'creator'));
    // return HTML content
    return $tpl->fetch('db:xnppresentation_confirm_block.html');
}
function xnpsimulatorGetConfirmBlock($item_id)
{
    $textutil =& xoonips_getutility('text');
    $formdata =& xoonips_getutility('formdata');
    $developer_handler =& xoonips_getormhandler('xnpsimulator', 'developer');
    $developer_objs =& $formdata->getObjectArray('post', $developer_handler->getTableName(), $developer_handler, false);
    // retrive detail information
    $detail = array();
    $simulator_type = $formdata->getValue('post', 'simulator_type', 's', false);
    if ($simulator_type !== false) {
        $simulator_types = xnpsimulator_get_type_array();
        $detail['simulator_type'] = array('value' => $textutil->html_special_chars($simulator_type), 'display_value' => $textutil->html_special_chars($simulator_types[$simulator_type]));
    }
    // retrieve blocks of BasicInformation / Preview / index block
    $basic = xnpGetBasicInformationConfirmBlock($item_id);
    xnpConfirmHtml($detail, 'xnpsimulator_item_detail', array_keys($detail), _CHARSET);
    $preview = xnpGetPreviewConfirmBlock($item_id);
    $attachment = xnpGetAttachmentConfirmBlock($item_id, 'simulator_data');
    $index = xnpGetIndexConfirmBlock($item_id);
    $lengths = xnpGetColumnLengths('xnpsimulator_item_detail');
    $readme = xnpGetTextFileConfirmBlock($item_id, 'readme', $lengths['readme']);
    $rights = xnpGetRightsConfirmBlock($item_id, $lengths['rights']);
    if (xnpHasWithout($basic) || xnpHasWithout($detail) || xnpHasWithout($preview) || xnpHasWithout($attachment) || xnpHasWithout($readme) || xnpHasWithout($rights) || xoonips_is_multiple_field_too_long($developer_objs, 'xnpsimulator', 'developer')) {
        global $system_message;
        $system_message = $system_message . "\n<br /><font color='#ff0000'>" . _MD_XOONIPS_ITEM_WARNING_FIELD_TRIM . '</font><br />';
    }
    // assign to template
    global $xoopsTpl;
    $tpl = new XoopsTpl();
    // variables assigned to xoopsTpl are copied to tpl
    $tpl->assign($xoopsTpl->get_template_vars());
    $tpl->assign('basic', $basic);
    $tpl->assign('preview', $preview);
    $tpl->assign('index', $index);
    $tpl->assign('attachment', $attachment);
    $tpl->assign('attachment_dl_limit', xnpGetDownloadLimitationOptionConfirmBlock('xnpsimulator'));
    $tpl->assign('attachment_dl_notify', xnpGetDownloadNotificationOptionConfirmBlock('xnpsimulator'));
    $tpl->assign('detail', $detail);
    $tpl->assign('readme', $readme);
    $tpl->assign('rights', $rights);
    if (isset($simulator_date)) {
        $tpl->assign('simulator_date', $simulator_date);
        if ($simulator_date['Date_Year']) {
            $tpl->assign('system_message', $tpl->get_template_vars('system_message') . '<br/><font color=\'#ff0000\'>' . _MD_XOONIPS_ITEM_TITLE_REQUIRED . '</font>');
        }
    }
    $tpl->assign('xnpsimulator_developer', xoonips_get_multiple_field_template_vars($developer_objs, 'xnpsimulator', 'developer'));
    // return HTML content
    return $tpl->fetch('db:xnpsimulator_confirm_block.html');
}
function xnpmodelGetConfirmBlock($item_id)
{
    $textutil =& xoonips_getutility('text');
    $formdata =& xoonips_getutility('formdata');
    $creator_handler =& xoonips_getormhandler('xnpmodel', 'creator');
    $creator_objs =& $formdata->getObjectArray('post', $creator_handler->getTableName(), $creator_handler, false);
    // retrive creator, model_type from GET/POST array
    foreach (array('model_type', 'creator', 'readme', 'rights') as $k) {
        $tmp = $formdata->getValue('both', $k, 's', false);
        if ($tmp !== NULL) {
            ${$k} = $tmp;
        } else {
            ${$k} = false;
        }
    }
    // get BasicInformation / Preview / index block
    $basic = xnpGetBasicInformationConfirmBlock($item_id);
    // TODO xnpConfirmHtml
    $model_types = xnpmodel_get_type_array();
    // reject if illegal model_type
    if (isset($model_types[$model_type])) {
        $detail['model_type'] = array('value' => $textutil->html_special_chars($model_type), 'display_value' => $textutil->html_special_chars($model_types[$model_type]));
    }
    $preview = xnpGetPreviewConfirmBlock($item_id);
    $attachment = xnpGetAttachmentConfirmBlock($item_id, 'model_data');
    $index = xnpGetIndexConfirmBlock($item_id);
    $lengths = xnpGetColumnLengths('xnpmodel_item_detail');
    $readme = xnpGetTextFileConfirmBlock($item_id, 'readme', $lengths['readme']);
    $rights = xnpGetRightsConfirmBlock($item_id, $lengths['rights']);
    if (xnpHasWithout($basic) || xnpHasWithout($readme) || xnpHasWithout($rights) || xnpHasWithout($detail) || xoonips_is_multiple_field_too_long($creator_objs, 'xnpmodel', 'creator')) {
        global $system_message;
        $system_message = $system_message . "\n" . '<br /><font color="#ff0000">' . _MD_XOONIPS_ITEM_WARNING_FIELD_TRIM . '</font><br />';
    }
    $detail['creator_str'] = array('value' => '');
    if (!empty($detail['creator'])) {
        $detail['creator_str']['value'] = "<table>\n";
        $creator = explode("\n", $detail['creator']['value']);
        $i = 0;
        foreach ($creator as $value) {
            $detail['creator_str']['value'] .= '<tr class="oddeven' . fmod($i, 2) . '"><td>' . $value . "</td></tr>\n";
            $i++;
        }
        $detail['creator_str']['value'] .= '</table>';
        $detail['creator_cnt'] = array('value' => strval(fmod(count($creator), 2)));
    }
    // set to template
    global $xoopsTpl;
    $tpl = new XoopsTpl();
    // copy variables in $xoopsTpl to $tpl
    $tpl->assign($xoopsTpl->get_template_vars());
    $tpl->assign('basic', $basic);
    $tpl->assign('preview', $preview);
    $tpl->assign('index', $index);
    $tpl->assign('attachment', $attachment);
    $tpl->assign('attachment_dl_limit', xnpGetDownloadLimitationOptionConfirmBlock('xnpmodel'));
    $tpl->assign('attachment_dl_notify', xnpGetDownloadNotificationOptionConfirmBlock('xnpmodel'));
    $tpl->assign('detail', $detail);
    $tpl->assign('readme', $readme);
    $tpl->assign('rights', $rights);
    $tpl->assign('model_type', $model_type);
    $tpl->assign('xnpmodel_creator', xoonips_get_multiple_field_template_vars($creator_objs, 'xnpmodel', 'creator'));
    // return as HTML
    return $tpl->fetch('db:xnpmodel_confirm_block.html');
}
function xnpdataGetConfirmBlock($item_id)
{
    $formdata =& xoonips_getutility('formdata');
    $experimenter_handler =& xoonips_getormhandler('xnpdata', 'experimenter');
    $experimenter_objs =& $formdata->getObjectArray('post', $experimenter_handler->getTableName(), $experimenter_handler, false);
    $textutil =& xoonips_getutility('text');
    // get BasicInformation / Preview / index block
    $ar = array();
    $basic = xnpGetBasicInformationConfirmBlock($item_id);
    $preview = xnpGetPreviewConfirmBlock($item_id);
    $index = xnpGetIndexConfirmBlock($item_id);
    $data_file = xnpGetAttachmentConfirmBlock($item_id, 'data_file');
    $lengths = xnpGetColumnLengths('xnpdata_item_detail');
    $readme = xnpGetTextFileConfirmBlock($item_id, 'readme', $lengths['readme']);
    $rights = xnpGetRightsConfirmBlock($item_id, $lengths['rights']);
    $attachment_dl_limit = xnpGetDownloadLimitationOptionConfirmBlock('xnpdata');
    $attachment_dl_notify = xnpGetDownloadNotificationOptionConfirmBlock('xnpdata');
    // get DetailInformation
    $detail = array('data_type' => array('value' => $formdata->getValue('post', 'data_type', 's', false)));
    xnpConfirmHtml($detail, 'xnpdata_item_detail', array_keys($detail), _CHARSET);
    $types = xnpdataGetTypes();
    $detail['data_type_str'] = array('value' => $textutil->html_special_chars($types[$detail['data_type']['value']], ENT_QUOTES));
    if (xnpHasWithout($basic) || xnpHasWithout($readme) || xnpHasWithout($rights) || xnpHasWithout($detail) || xoonips_is_multiple_field_too_long($experimenter_objs, 'xnpdata', 'experimenter')) {
        global $system_message;
        $system_message = $system_message . "\n" . '<br /><font color="#ff0000">' . _MD_XOONIPS_ITEM_WARNING_FIELD_TRIM . '</font><br />';
    }
    // set to template
    global $xoopsTpl;
    $tpl = new XoopsTpl();
    // copy variables in $xoopsTpl to $tpl
    $tpl->assign($xoopsTpl->get_template_vars());
    $tpl->assign('basic', $basic);
    $tpl->assign('preview', $preview);
    $tpl->assign('index', $index);
    $tpl->assign('attachment_dl_limit', $attachment_dl_limit);
    $tpl->assign('attachment_dl_notify', $attachment_dl_notify);
    $tpl->assign('data_file', $data_file);
    $tpl->assign('detail', $detail);
    $tpl->assign('readme', $readme);
    $tpl->assign('rights', $rights);
    $tpl->assign('xnpdata_experimenter', xoonips_get_multiple_field_template_vars($experimenter_objs, 'xnpdata', 'experimenter'));
    // return as HTML
    return $tpl->fetch('db:xnpdata_confirm_block.html');
}