$iteminfo['files']['preview'] = null; // null if preview is not used $iteminfo['files']['others'] = array(); // // define compo $iteminfo['ormcompo']['module'] = 'xnpbook'; $iteminfo['ormcompo']['name'] = 'item'; $iteminfo['ormcompo']['primary_orm'] = 'basic'; $iteminfo['ormcompo']['primary_key'] = 'item_id'; // // define orm of compo $author_order_criteria = new Criteria(1, 1); $author_order_criteria->setSort('author_order'); $iteminfo['orm'][] = array('module' => 'xnpbook', 'name' => 'item_detail', 'field' => 'detail', 'foreign_key' => 'book_id', 'multiple' => false, 'required' => true); $iteminfo['orm'][] = array('module' => 'xnpbook', 'name' => 'author', 'field' => 'author', 'foreign_key' => 'book_id', 'multiple' => true, 'criteria' => $author_order_criteria); $iteminfo['orm'][] = array('module' => 'xoonips', 'name' => 'file', 'field' => 'book_pdf', 'foreign_key' => 'item_id', 'criteria' => iteminfo_file_criteria('book_pdf'), 'multiple' => false); // // define database table information $iteminfo['ormfield']['detail'] = array(array('name' => 'editor', 'type' => 'string', 'required' => false), array('name' => 'publisher', 'type' => 'string', 'required' => true), array('name' => 'isbn', 'type' => 'string', 'required' => false), array('name' => 'url', 'type' => 'string', 'required' => false), array('name' => 'attachment_dl_limit', 'type' => 'int', 'required' => false), array('name' => 'attachment_dl_notify', 'type' => 'int', 'required' => false)); $iteminfo['ormfield']['author'] = array(array('name' => 'author', 'type' => 'string', 'required' => true), array('name' => 'order', 'type' => 'int', 'required' => true)); // // publication_year(creation_date in XML-RPC) is required foreach ($iteminfo['io']['xmlrpc']['item'] as $key => $val) { if ($val['xmlrpc']['field'][0] == 'creation_year') { $iteminfo['io']['xmlrpc']['item'][$key]['xmlrpc']['required'] = true; $iteminfo['io']['xmlrpc']['item'][$key]['xmlrpc']['display_name'] = '_MD_XNPBOOK_XMLRPC_DISPLAY_NAME_CREATION_YEAR'; } else { if ($val['xmlrpc']['field'][0] == 'creation_month') { $iteminfo['io']['xmlrpc']['item'][$key]['xmlrpc']['display_name'] = '_MD_XNPBOOK_XMLRPC_DISPLAY_NAME_CREATION_MONTH'; } else { if ($val['xmlrpc']['field'][0] == 'creation_mday') {
$iteminfo['files']['preview'] = 'preview'; $iteminfo['files']['others'] = array(); // // define compo $iteminfo['ormcompo']['module'] = 'xnpmodel'; $iteminfo['ormcompo']['name'] = 'item'; $iteminfo['ormcompo']['primary_orm'] = 'basic'; $iteminfo['ormcompo']['primary_key'] = 'item_id'; // // define orm of compo $creator_order_criteria = new Criteria(1, 1); $creator_order_criteria->setSort('creator_order'); $iteminfo['orm'][] = array('module' => 'xnpmodel', 'name' => 'item_detail', 'field' => 'detail', 'foreign_key' => 'model_id', 'multiple' => false, 'required' => true); $iteminfo['orm'][] = array('module' => 'xnpmodel', 'name' => 'creator', 'field' => 'creator', 'foreign_key' => 'model_id', 'multiple' => true, 'criteria' => $creator_order_criteria); $iteminfo['orm'][] = array('module' => 'xoonips', 'name' => 'file', 'field' => 'model_data', 'foreign_key' => 'item_id', 'criteria' => iteminfo_file_criteria('model_data'), 'multiple' => false); $iteminfo['orm'][] = array('module' => 'xoonips', 'name' => 'file', 'field' => 'preview', 'foreign_key' => 'item_id', 'criteria' => iteminfo_file_criteria('preview'), 'multiple' => true); // // define database table information $iteminfo['ormfield']['detail'] = array(array('name' => 'model_id', 'type' => 'int', 'required' => ' false'), array('name' => 'model_type', 'type' => 'string', 'required' => ' true'), array('name' => 'readme', 'type' => 'string', 'required' => ' false'), array('name' => 'rights', 'type' => 'string', 'required' => ' false'), array('name' => 'use_cc', 'type' => 'int', 'required' => ' false'), array('name' => 'cc_commercial_use', 'type' => 'int', 'required' => ' false'), array('name' => 'cc_modification', 'type' => 'int', 'required' => ' false'), array('name' => 'attachment_dl_limit', 'type' => 'int', 'required' => ' false'), array('name' => 'attachment_dl_notify', 'type' => 'int', 'required' => ' false')); $iteminfo['ormfield']['creator'] = array(array('name' => 'creator', 'type' => 'string', 'required' => true), array('name' => 'creator_order', 'type' => 'int', 'required' => true)); // // detail information (modify below for each item types) $iteminfo['io']['xmlrpc']['item'][] = array('orm' => array('field' => array(array('orm' => 'detail', 'field' => 'model_id'))), 'xmlrpc' => array('field' => array('detail_field', 'model_id'), 'display_name' => '_MD_XNPMODEL_XMLRPC_DISPLAY_NAME_MODEL_ID', 'type' => 'string', 'multiple' => false, 'readonly' => true)); $iteminfo['io']['xmlrpc']['item'][] = array('orm' => array('field' => array(array('orm' => 'detail', 'field' => 'model_type'))), 'xmlrpc' => array('field' => array('detail_field', 'model_type'), 'display_name' => '_MD_XNPMODEL_XMLRPC_DISPLAY_NAME_MODEL_TYPE', 'type' => 'string', 'options' => array(array('option' => 'matlab', 'display_name' => '_MD_XNPMODEL_XMLRPC_DISPLAY_NAME_MODEL_TYPE_MATLAB'), array('option' => 'neuron', 'display_name' => '_MD_XNPMODEL_XMLRPC_DISPLAY_NAME_MODEL_TYPE_NEURON'), array('option' => 'original_program', 'display_name' => '_MD_XNPMODEL_XMLRPC_DISPLAY_NAME_MODEL_TYPE_ORIGINAL_PROGRAM'), array('option' => 'satellite', 'display_name' => '_MD_XNPMODEL_XMLRPC_DISPLAY_NAME_MODEL_TYPE_SATELLITE'), array('option' => 'genesis', 'display_name' => '_MD_XNPMODEL_XMLRPC_DISPLAY_NAME_MODEL_TYPE_GENESIS'), array('option' => 'a_cell', 'display_name' => '_MD_XNPMODEL_XMLRPC_DISPLAY_NAME_MODEL_TYPE_A_CELL'), array('option' => 'other', 'display_name' => '_MD_XNPMODEL_XMLRPC_DISPLAY_NAME_MODEL_TYPE_OTHER')), 'multiple' => false, 'required' => true)); $iteminfo['io']['xmlrpc']['item'][] = array('orm' => array('field' => array(array('orm' => 'creator', 'field' => 'creator'))), 'xmlrpc' => array('field' => array('detail_field', 'creator'), 'display_name' => '_MD_XNPMODEL_XMLRPC_DISPLAY_NAME_CREATOR', 'type' => 'string', 'multiple' => true, 'required' => true)); $iteminfo['io']['xmlrpc']['item'][] = array('orm' => array('field' => array(array('orm' => 'detail', 'field' => 'readme'))), 'xmlrpc' => array('field' => array('detail_field', 'readme'), 'display_name' => '_MD_XNPMODEL_XMLRPC_DISPLAY_NAME_README', 'type' => 'string', 'multiple' => false)); $iteminfo['io']['xmlrpc']['item'][] = array('orm' => array('field' => array(array('orm' => 'detail', 'field' => 'rights'))), 'xmlrpc' => array('field' => array('detail_field', 'rights'), 'display_name' => '_MD_XNPMODEL_XMLRPC_DISPLAY_NAME_RIGHTS', 'type' => 'string', 'multiple' => false)); $iteminfo['io']['xmlrpc']['item'][] = array('orm' => array('field' => array(array('orm' => 'detail', 'field' => 'use_cc'))), 'xmlrpc' => array('field' => array('detail_field', 'use_cc'), 'display_name' => '_MD_XNPMODEL_XMLRPC_DISPLAY_NAME_USE_CC', 'type' => 'string', 'multiple' => false)); $iteminfo['io']['xmlrpc']['item'][] = array('orm' => array('field' => array(array('orm' => 'detail', 'field' => 'cc_commercial_use'))), 'xmlrpc' => array('field' => array('detail_field', 'cc_commercial_use'), 'display_name' => '_MD_XNPMODEL_XMLRPC_DISPLAY_NAME_CC_COMMERCIAL_USE', 'type' => 'string', 'multiple' => false)); $iteminfo['io']['xmlrpc']['item'][] = array('orm' => array('field' => array(array('orm' => 'detail', 'field' => 'cc_modification'))), 'xmlrpc' => array('field' => array('detail_field', 'cc_modification'), 'display_name' => '_MD_XNPMODEL_XMLRPC_DISPLAY_NAME_CC_MODIFICATION', 'type' => 'string', 'multiple' => false)); $iteminfo['io']['xmlrpc']['item'][] = array('orm' => array('field' => array(array('orm' => 'detail', 'field' => 'attachment_dl_limit'))), 'xmlrpc' => array('field' => array('detail_field', 'attachment_dl_limit'), 'display_name' => '_MD_XNPMODEL_XMLRPC_DISPLAY_NAME_ATTACHMENT_DL_LIMIT', 'type' => 'string', 'multiple' => false));
$iteminfo['files']['others'] = array('conference_paper'); // // // define compo $iteminfo['ormcompo']['module'] = 'xnpconference'; $iteminfo['ormcompo']['name'] = 'item'; $iteminfo['ormcompo']['primary_orm'] = 'basic'; $iteminfo['ormcompo']['primary_key'] = 'item_id'; // // define orm of compo $author_order_criteria = new Criteria(1, 1); $author_order_criteria->setSort('author_order'); $iteminfo['orm'][] = array('module' => 'xnpconference', 'name' => 'item_detail', 'field' => 'detail', 'foreign_key' => 'conference_id', 'multiple' => false, 'required' => true); $iteminfo['orm'][] = array('module' => 'xnpconference', 'name' => 'author', 'field' => 'author', 'foreign_key' => 'conference_id', 'multiple' => true, 'criteria' => $author_order_criteria); $iteminfo['orm'][] = array('module' => 'xoonips', 'name' => 'file', 'field' => 'conference_file', 'foreign_key' => 'item_id', 'criteria' => iteminfo_file_criteria('conference_file'), 'multiple' => false); $iteminfo['orm'][] = array('module' => 'xoonips', 'name' => 'file', 'field' => 'conference_paper', 'foreign_key' => 'item_id', 'criteria' => iteminfo_file_criteria('conference_paper'), 'multiple' => false); // // define database table information $iteminfo['ormfield']['detail'] = array(array('name' => 'conference_id', 'type' => 'int', 'required' => false), array('name' => 'presentation_type', 'type' => 'string', 'required' => false), array('name' => 'conference_title', 'type' => 'string', 'required' => false), array('name' => 'place', 'type' => 'string', 'required' => false), array('name' => 'abstract', 'type' => 'string', 'required' => false), array('name' => 'conference_from_year', 'type' => 'int', 'required' => false), array('name' => 'conference_from_month', 'type' => 'int', 'required' => false), array('name' => 'conference_from_mday', 'type' => 'int', 'required' => false), array('name' => 'conference_to_year', 'type' => 'int', 'required' => false), array('name' => 'conference_to_month', 'type' => 'int', 'required' => false), array('name' => 'conference_to_mday', 'type' => 'int', 'required' => false), array('name' => 'attachment_dl_limit', 'type' => 'int', 'required' => false), array('name' => 'attachment_dl_notify', 'type' => 'int', 'required' => false)); $iteminfo['ormfield']['author'] = array(array('name' => 'author', 'type' => 'string', 'required' => true), array('name' => 'author_order', 'type' => 'int', 'required' => true)); // // publication_year(creation_date in XML-RPC) is required foreach ($iteminfo['io']['xmlrpc']['item'] as $key => $val) { if ($val['xmlrpc']['field'][0] == 'titles') { $iteminfo['io']['xmlrpc']['item'][$key]['xmlrpc']['display_name'] = '_MD_XNPCONFERENCE_XMLRPC_DISPLAY_NAME_TITLES'; } } // // detail information (modify below for each item types) $iteminfo['io']['xmlrpc']['item'][] = array('orm' => array('field' => array(array('orm' => 'detail', 'field' => 'conference_id'))), 'xmlrpc' => array('field' => array('detail_field', 'conference_id'), 'display_name' => '_MD_XNPCONFERENCE_XMLRPC_DISPLAY_NAME_CONFERENCE_ID', 'type' => 'string', 'readonly' => true)); $iteminfo['io']['xmlrpc']['item'][] = array('orm' => array('field' => array(array('orm' => 'detail', 'field' => 'presentation_type'))), 'xmlrpc' => array('field' => array('detail_field', 'presentation_type'), 'display_name' => '_MD_XNPCONFERENCE_XMLRPC_DISPLAY_NAME_PRESENTATION_TYPE', 'type' => 'string', 'required' => true, 'options' => array(array('option' => 'powerpoint', 'display_name' => '_MD_XNPCONFERENCE_XMLRPC_DISPLAY_NAME_PRESENTATION_TYPE_POWERPOINT'), array('option' => 'pdf', 'display_name' => '_MD_XNPCONFERENCE_XMLRPC_DISPLAY_NAME_PRESENTATION_TYPE_PDF'), array('option' => 'illustrator', 'display_name' => '_MD_XNPCONFERENCE_XMLRPC_DISPLAY_NAME_PRESENTATION_TYPE_ILLUSTRATOR'), array('option' => 'other', 'display_name' => '_MD_XNPCONFERENCE_XMLRPC_DISPLAY_NAME_PRESENTATION_TYPE_OTHER'))));