. */ /** * @brief Action : Process a document * * Open a modal box to displays the process form, make the form checks and loads the result in database. * Used by the core (manage_action.php page). * * @file * @author Claire Figueras * @author Laurent Giovannoni * @date $date$ * @version $Revision$ * @ingroup apps */ /** * $confirm bool false */ $confirm = false; /** * $etapes array Contains 2 etaps : form and status (order matters) */ $etapes = array('form'); /** * $frm_width Width of the modal (empty) */ $frm_width=''; /** * $frm_height Height of the modal (empty) */ $frm_height = ''; /** * $mode_form Mode of the modal : fullscreen */ $mode_form = 'fullscreen'; require_once "modules" . DIRECTORY_SEPARATOR . "visa" . DIRECTORY_SEPARATOR . "class" . DIRECTORY_SEPARATOR . "class_modules_tools.php"; include('apps/' . $_SESSION['config']['app_id']. '/definition_mail_categories.php'); /** * Gets the folder data for a given document * * @param $coll_id string Collection identifier * @param $res_id string Resource identifier * @return Array Folder data (folder + subfolder) **/ function get_folder_data($coll_id, $res_id) { require_once('core/class/class_security.php'); $sec = new security(); $view = $sec->retrieve_view_from_coll_id($coll_id); if (empty($view)) { $view = $sec->retrieve_table_from_coll($coll_id); } $db = new Database(); $folder = ''; $stmt = $db->query("SELECT folders_system_id, folder_id, folder_name, fold_parent_id, fold_subject, folder_level FROM " . $view . " WHERE res_id = ?", array($res_id)); if ($stmt->rowCount() == 1) { $res = $stmt->fetchObject(); if (!empty($res->folders_system_id)) { $folder = functions::xssafe($res->folder_id).', '.functions::xssafe($res->folder_name) .' ('.functions::xssafe($res->folders_system_id).')'; } } return $folder; } /** * Returns the indexing form text * * @param $values Array Contains the res_id of the document to process * @param $path_manage_action String Path to the PHP file called in Ajax * @param $id_action String Action identifier * @param $table String Table * @param $module String Origin of the action * @param $coll_id String Collection identifier * @param $mode String Action mode 'mass' or 'page' * @return String The form content text **/ function get_form_txt($values, $path_manage_action, $id_action, $table, $module, $coll_id, $mode) { //print_r($_SESSION['current_basket']); if (preg_match("/MSIE 6.0/", $_SERVER["HTTP_USER_AGENT"])) { $browser_ie = true; $display_value = 'block'; } elseif ( preg_match('/msie/i', $_SERVER["HTTP_USER_AGENT"]) && !preg_match('/opera/i', $_SERVER["HTTP_USER_AGENT"]) ) { $browser_ie = true; $display_value = 'block'; } else { $browser_ie = false; $display_value = 'table-row'; } $_SESSION['req'] = "action"; $res_id = $values[0]; // Ouverture de la modal $docLockerCustomPath = 'apps/maarch_entreprise/actions/docLocker.php'; $docLockerPath = $_SESSION['config']['businessappurl'] . '/actions/docLocker.php'; if (is_file($docLockerCustomPath)) require_once $docLockerCustomPath; else if (is_file($docLockerPath)) require_once $docLockerPath; else exit("can't find docLocker.php"); $docLocker = new docLocker($res_id); if (!$docLocker->canOpen()) { $docLockerscriptError = ''; return $docLockerscriptError; } $frm_str = ''; require_once('core/class/class_security.php'); require_once('modules/basket/class/class_modules_tools.php'); require_once('core/class/class_request.php'); require_once('apps/' . $_SESSION['config']['app_id'] . '/class/class_types.php'); require_once('apps/' . $_SESSION['config']['app_id'] . '/class/class_indexing_searching_app.php'); require_once('apps/' . $_SESSION['config']['app_id'] . '/class/class_chrono.php'); $type = new types(); $sec =new security(); $core_tools =new core_tools(); $doctypes = $type->getArrayTypes($coll_id); $b = new basket(); $is = new indexing_searching_app(); $cr = new chrono(); $db = new Database(); $_SESSION['save_list']['fromProcess'] = "true"; $_SESSION['count_view_baskets']=0; $data = array(); $params_data = array('show_folder' => false); $data = get_general_data($coll_id, $res_id, 'full', $params_data); $process_data = $is->get_process_data($coll_id, $res_id); $chrono_number = $cr->get_chrono_number($res_id, $sec->retrieve_view_from_table($table)); $_SESSION['doc_id'] = $res_id; $indexes = array(); if (isset($data['type_id'])) { $indexes = $type->get_indexes($data['type_id']['value'], $coll_id); $fields = 'res_id'; foreach (array_keys($indexes) as $key) { $fields .= ','.$key; } $stmt = $db->query("SELECT ".$fields." FROM ".$table." WHERE res_id = ?", array($res_id)); $values_fields = $stmt->fetchObject(); //print_r($indexes); } if ($core_tools->is_module_loaded('entities')) { require_once('modules/entities/class/class_manage_listdiff.php'); $listdiff = new diffusion_list(); $roles = $listdiff->list_difflist_roles(); $_SESSION['process']['diff_list'] = $listdiff->get_listinstance($res_id, false, $coll_id); $_SESSION['process']['difflist_type'] = $listdiff->get_difflist_type($_SESSION['process']['diff_list']['object_type']); } // to activate locking decomment these lines /*if ($b->reserve_doc($_SESSION['user']['UserId'], $res_id, $coll_id) == false) { $frm_str = '
'; $frm_str .= '

'._DOC_NUM." ".$res_id ; $frm_str .= '

'; $frm_str .= '
'._DOC_ALREADY_RSV.'
'; $frm_str .= '
'; $frm_str .= '
'; } else { */ //Load multicontacts $query = "SELECT c.firstname, c.lastname, c.society, c.contact_id, c.ca_id "; $query .= "FROM view_contacts c, contacts_res cres "; $query .= "WHERE cres.coll_id = 'letterbox_coll' AND cres.res_id = ? AND cast (c.contact_id as varchar) = cres.contact_id AND c.ca_id = cres.address_id "; $query .= "GROUP BY c.firstname, c.lastname, c.society, c.contact_id, c.ca_id"; $stmt = $db->query($query, array($res_id)); $nbContacts = 0; $frameContacts = ""; $frameContacts = "{"; while($res = $stmt->fetchObject()){ $nbContacts = $nbContacts + 1; $firstname = str_replace("'","\'", $res->firstname); $firstname = str_replace('"'," ", $firstname); $lastname = str_replace("'","\'", $res->lastname); $lastname = str_replace('"'," ", $lastname); $society = str_replace("'","\'", $res->society); $society = str_replace('"'," ", $society); $frameContacts .= "'contact ".$nbContacts."' : '" . functions::xssafe($firstname) . " " . functions::xssafe($lastname) . " " . functions::xssafe($society) . " (contact)', "; } $query = "select u.firstname, u.lastname, u.user_id "; $query .= "from users u, contacts_res cres "; $query .= "where cres.coll_id = 'letterbox_coll' AND cres.res_id = ? AND cast (u.user_id as varchar) = cres.contact_id "; $query .= "GROUP BY u.firstname, u.lastname, u.user_id"; $stmt = $db->query($query, array($res_id)); while($res = $stmt->fetchObject()){ $nbContacts = $nbContacts + 1; $firstname = str_replace("'","\'", $res->firstname); $firstname = str_replace('"'," ", $firstname); $lastname = str_replace("'","\'", $res->lastname); $lastname = str_replace('"'," ", $lastname); $frameContacts .= "'contact ".$nbContacts."' : '" . functions::xssafe($firstname) . " " . functions::xssafe($lastname) . " (utilisateur)', "; } $frameContacts = substr($frameContacts, 0, -2); $frameContacts .= "}"; $frm_str = '

' . _PROCESS . _LETTER_NUM . ' ' . $res_id; $frm_str .= '

'; $frm_str .=''; $frm_str .=''; /********************************* LEFT PART **************************************/ $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= '

'; $frm_str .= ' >> ' . _GENERAL_INFO . ''; $frm_str .= ' '; $frm_str .= '

'; //GENERAL DATAS $frm_str .= '
'; $frm_str .= '
'; $frm_str .= ''; // Displays the document indexes foreach (array_keys($data) as $key) { if($key != 'is_multicontacts' || ($key == 'is_multicontacts' && $data[$key]['show_value'] == 'Y')){ $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; } } if ($chrono_number <> '') { $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; } if (count($indexes) > 0) { foreach (array_keys($indexes) as $key) { $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; } } //extension $db = new Database(); $stmt = $db->query("SELECT format FROM ".$table." WHERE res_id = ?", array($res_id)); $formatLine = $stmt->fetchObject(); $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= '
' . $data[$key]['label'] . ' :'; if (isset($data[$key]['addon'])) { $frm_str .= ' '.$data[$key]['addon']; } $frm_str .= ''; if ($data[$key]['display'] == 'textinput') { $frm_str .= ''; } elseif ($data[$key]['display'] == 'textarea') { if($key == 'is_multicontacts'){ $frm_str .= ''; $frm_str .= ''; $frm_str .= '' .$data[$key]['show_value'] .''; } } else if ($data[$key]['field_type'] == 'radio') { for($k=0; $k'. $data[$key]['radio'][$k]['LABEL']; } } if($key == 'type_id'){ $_SESSION['category_id_session'] = $data[$key]['value']; } $frm_str .= '
' . _CHRONO_NUMBER . ' :'; $frm_str .= ''; $frm_str .= '
' . $indexes[$key]['label'] . ' :'; $frm_str .= '$key.'" '; } else { $val = ''; for ($i=0; count($indexes[$key]['values']); $i++) { if ($values_fields->$key == $indexes[$key]['values'][$i]['id']) { $val = $indexes[$key]['values'][$i]['label']; break; } } $frm_str .= ' value="'.$val.'" '; } $frm_str .= ' />'; $frm_str .= '
' . _FORMAT . ' :'; $frm_str .= ''; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= '

'; //RESPONSE FORM $nb_attach = 0; $stmt = $db->query("SELECT answer_type_bitmask FROM " .$_SESSION['collections'][0]['extensions'][0]." WHERE res_id = ?", array($res_id)); $res = $stmt->fetchObject(); $bitmask = $res->answer_type_bitmask; switch ($bitmask) { case "000000": $answer = ''; break; case "000001": $answer = _SIMPLE_MAIL; break; case "000010": $answer = _REGISTERED_MAIL; break; case "000100": $answer = _DIRECT_CONTACT; break; case "001000": $answer = _EMAIL; break; case "010000": $answer = _FAX; break; case "100000": $answer = _ANSWER; break; default: $answer = _ANSWER; } if ($core_tools->is_module_loaded('attachments')) { $stmt = $db->query("SELECT res_id FROM " . $_SESSION['tablename']['attach_res_attachments'] . " WHERE status <> 'DEL' and attachment_type <> 'converted_pdf' and attachment_type <> 'print_folder' and res_id_master = ? and coll_id = ?", array($res_id, $coll_id)); if ($stmt->rowCount() > 0) { $nb_attach = $stmt->rowCount(); } } if ($answer <> '') { $answer .= ': '; } $frm_str .= '

'; $frm_str .= ' <<'; $frm_str .= ' ' . _PJ . ' ('. $nb_attach . ')'; $frm_str .= ' '; $frm_str .= '

'; $frm_str .= ''; $frm_str .= '
'; //TAGS if ( $core_tools->is_module_loaded('tags') && ( $core_tools->test_service('tag_view', 'tags',false) == 1) ) { include_once("modules".DIRECTORY_SEPARATOR."tags". DIRECTORY_SEPARATOR."templates/process/index.php"); } //CASES if ($core_tools->is_module_loaded('cases')) { require_once('modules/cases/class/class_modules_tools.php'); $cases = new cases(); $case_id = $cases->get_case_id($res_id); if ($case_id <> false) { $case_properties = $cases->get_case_info($case_id); } else { $case_properties = array(); } $frm_str .= '

'; $frm_str .= ' << ' . _CASE . ''; $frm_str .= ' '; $frm_str .= '

'; $frm_str .= '
'; } //FOLDERS if ($core_tools->is_module_loaded('folder') && ($core->test_service('associate_folder', 'folder',false) == 1)) { // Displays the folder data $folder = get_folder_data($coll_id, $res_id); $frm_str .= '

'; $frm_str .= ' << ' . _FOLDER_ATTACH . ''; $frm_str .= ' '; $frm_str .= '

'; $frm_str .= ''; $frm_str .=''; $frm_str .= '
'; } //PRINT FOLDER if ($core_tools->test_service('print_folder_doc', 'visa', false)){ $frm_str .= '

'; $frm_str .= ' << '. _PRINTFOLDER .''; $frm_str .= ' '; $frm_str .= '

'; $frm_str .= '
'; } //ACTIONS $frm_str .= '
'; $frm_str .= '

'; $frm_str .= ''._ACTIONS.' : '; $actions = $b->get_actions_from_current_basket($res_id, $coll_id, 'PAGE_USE'); if (count($actions) > 0) { $frm_str .='
'; $frm_str .= ' '; } $frm_str .= ''; $frm_str .= '

'; $frm_str .= '
'; $frm_str .= '
'; $frm_str .= ''; // ****************************** RIGHT PART *******************************************/ $frm_str .= '
'; /*** TOOLBAR ***/ $frm_str .= '
'; $frm_str .= ''; $frm_str .= ''; //HISTORY if ($core_tools->test_service('view_doc_history', 'apps', false)) { $frm_str .= ''; } //NOTE if ($core_tools->is_module_loaded('notes')) { $frm_str .= ''; } //SENDMAILS if ($core_tools->is_module_loaded('sendmail') === true && $core_tools->test_service('sendmail', 'sendmail', false) === true ) { require_once "modules" . DIRECTORY_SEPARATOR . "sendmail" . DIRECTORY_SEPARATOR . "class" . DIRECTORY_SEPARATOR . "class_modules_tools.php"; $sendmail_tools = new sendmail(); //Count mails $nbr_emails = 0; $nbr_emails = $sendmail_tools->countUserEmails($res_id, $coll_id); $frm_str .= ''; } //DIFFUSION LIST if ($core_tools->is_module_loaded('entities')) { $frm_str .= ''; } //test service add new version $viewVersions = false; if ($core->test_service('add_new_version', 'apps', false)) { $viewVersions = true; } //VERSIONS if ($core->is_module_loaded('content_management') && $viewVersions) { $versionTable = $sec->retrieve_version_table_from_coll_id( $coll_id ); $selectVersions = "SELECT res_id FROM " . $versionTable . " WHERE res_id_master = ? and status <> 'DEL' order by res_id desc"; $dbVersions = new Database(); $stmt = $dbVersions->query($selectVersions, array($res_id)); $nb_versions_for_title = $stmt->rowCount(); $lineLastVersion = $stmt->fetchObject(); $lastVersion = $lineLastVersion->res_id; if ($lastVersion <> '') { $objectId = $lastVersion; $objectTable = $versionTable; } else { $objectTable = $sec->retrieve_table_from_coll( $coll_id ); $objectId = $res_id; $_SESSION['cm']['objectId4List'] = $res_id; } if ($nb_versions_for_title == 0) { $extend_title_for_versions = '0'; } else { $extend_title_for_versions = $nb_versions_for_title; } $_SESSION['cm']['resMaster'] = ''; $frm_str .= ''; } //LINKS $frm_str .= ''; //VISA CIRCUIT if ($core->test_service('config_visa_workflow', 'visa', false)){ $frm_str .= ''; } //AVIS CIRCUIT if ($core->test_service('config_avis_workflow', 'visa', false)){ $frm_str .= ''; } //END TOOLBAR $frm_str .= '
'; $frm_str .= ''; $frm_str .= '<<' . ' ' . _DOC_HISTORY . ''; $frm_str .= ''; $frm_str .= ''; require_once 'modules/notes/class/class_modules_tools.php'; $notes_tools = new notes(); //Count notes $nbr_notes = $notes_tools->countUserNotes($res_id, $coll_id); if ($nbr_notes == 0) $nbr_notes = ' ('.$nbr_notes.')'; else $nbr_notes = ' ('.$nbr_notes.')'; $frm_str .= ''; $frm_str .= '<<' . ' ' . _NOTES . $nbr_notes . ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ' << ' . '' ._SENDED_EMAILS . ' ('.$nbr_emails.')'; $frm_str .= ' '; $frm_str .= ''; $frm_str .= ''; $frm_str .= '<<' . ' ' . _DIFF_LIST_COPY . ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= '<<' . ' ' . _VERSIONS . ' (' . $extend_title_for_versions . ')'; $frm_str .= ''; $frm_str .= ''; require_once('core/class/LinkController.php'); $Class_LinkController = new LinkController(); $nbLink = $Class_LinkController->nbDirectLink( $res_id, $coll_id, 'all' ); $frm_str .= ''; $frm_str .= '<<' . ' ' . _LINK_TAB . ' (' . $nbLink . ')'; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= '<<' . ' ' . _VISA_WORKFLOW . ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= ''; $frm_str .= '<<' . ' ' . _AVIS_WORKFLOW . ''; $frm_str .= ''; $frm_str .= '
'; $frm_str .= '
'; //ATTACHMENTS FRAME if ($core_tools->is_module_loaded('attachments')) { require 'modules/templates/class/templates_controler.php'; $templatesControler = new templates_controler(); $templates = array(); $templates = $templatesControler->getAllTemplatesForProcess($data['destination']['value']); $_SESSION['destination_entity'] = $data['destination']['value']; //var_dump($templates); $frm_str .= ''; } //DIFFUSION FRAME if ($core_tools->is_module_loaded('entities')) { $frm_str .= ''; } //HISTORY FRAME $frm_str .= ''; //NOTES FRAME if ($core_tools->is_module_loaded('notes')) { $frm_str .= ''; } //SENDMAIL FRAME if ($core_tools->test_service('sendmail', 'sendmail', false) === true) { $frm_str .= ''; } //CASES FRAME if ($core_tools->is_module_loaded('cases')) { if (!isset($case_properties['case_id'])) { $case_properties = array(); $case_properties['case_id'] = ''; $case_properties['case_label'] = ''; $case_properties['case_description'] = ''; } $frm_str .= ''; } //PRINT FOLDER FRAME if ($core_tools->test_service('print_folder_doc', 'visa', false)){ $frm_str .= ''; } //LINKS FRAME $frm_str .= ''; //VERSIONS FRAME //test service add new version $addNewVersion = false; if ($core->test_service('add_new_version', 'apps', false)) { $addNewVersion = true; } $frm_str .= ''; //VISA CIRCUIT FRAME $modifVisaWorkflow = false; if ($core->test_service('config_visa_workflow', 'visa', false)) { $modifVisaWorkflow = true; } $frm_str .= ''; //AVIS CIRCUIT FRAME $modifVisaWorkflow = false; if ($core->test_service('config_avis_workflow', 'visa', false)) { $modifVisaWorkflow = true; } $frm_str .= ''; //RESOURCE FRAME $frm_str .= ''; $frm_str .= '
'; //SCRIPT $frm_str .= ''; //} // À la fin de la methode d’ouverture de la modale $docLocker->lock(); return addslashes($frm_str); } /** * Checks the action form * * @param $form_id String Identifier of the form to check * @param $values Array Values of the form * @return Bool true if no error, false otherwise **/ function check_form($form_id,$values) { $check = false; $other_checked = false; $other_txt = ''; $folder = ''; $core = new core_tools(); //print_r($values); for ($i=0; $i html_entity_decode('['._DEFINE.']', ENT_NOQUOTES, 'UTF-8')) { $other_txt = $values[$i]['VALUE']; } if ($values[$i]['ID'] == "folder") { $folder = $values[$i]['VALUE']; } if ($values[$i]['ID'] == "coll_id") { $coll_id = $values[$i]['VALUE']; } if ($values[$i]['ID'] == "res_id_to_process") { $res_id = $values[$i]['VALUE']; } } if ($core->is_module_loaded('folder')) { $db = new Database(); $folder_id = ''; if (!empty($folder)) { if (!preg_match('/\([0-9]+\)$/', $folder)) { $_SESSION['action_error'] = _FOLDER." "._WRONG_FORMAT.""; return false; } $folder_id = str_replace(')', '', substr($folder, strrpos($folder,'(')+1)); $stmt = $db->query("SELECT folders_system_id FROM ".$_SESSION['tablename']['fold_folders']." WHERE folders_system_id = ?", array($folder_id)); if ($stmt->rowCount() == 0) { $_SESSION['action_error'] = _FOLDER.' '.$folder_id.' '._UNKNOWN; return false; } } if (!empty($res_id) && !empty($coll_id) && !empty($folder_id)) { require_once('core'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_security.php'); $sec = new security(); $table = $sec->retrieve_table_from_coll($coll_id); if (empty($table)) { $_SESSION['action_error'] .= _COLLECTION.' '._UNKNOWN; return false; } $stmt = $db->query("SELECT type_id FROM ".$table." WHERE res_id = ?", array($res_id)); $res = $stmt->fetchObject(); $type_id = $res->type_id; $foldertype_id = ''; $stmt = $db->query("SELECT foldertype_id FROM ".$_SESSION['tablename']['fold_folders']." WHERE folders_system_id = ?", array($folder_id)); $res = $stmt->fetchObject(); $foldertype_id = $res->foldertype_id; $stmt = $db->query("SELECT fdl.foldertype_id FROM ".$_SESSION['tablename']['fold_foldertypes_doctypes_level1'] ." fdl, ".$_SESSION['tablename']['doctypes'] ." d WHERE d.doctypes_first_level_id = fdl.doctypes_first_level_id and fdl.foldertype_id = ? and d.type_id = ?", array($foldertype_id, $type_id)); if ($stmt->rowCount() == 0) { $_SESSION['action_error'] .= _ERROR_COMPATIBILITY_FOLDER; return false; } } } if ($other_checked && $other_txt == '') { $_SESSION['action_error'] = _MUST_DEFINE_ANSWER_TYPE; return false; } if ($check == false) { $_SESSION['action_error'] = _MUST_CHECK_ONE_BOX; } return $check; } /** * Action of the form : loads the index in the db * * @param $arr_id Array Not used here * @param $history String Log the action in history table or not * @param $id_action String Action identifier * @param $label_action String Action label * @param $status String Not used here * @param $coll_id String Collection identifier * @param $table String Table * @param $values_form String Values of the form to load * @return false or an array * $data['result'] : res_id of the new file followed by # * $data['history_msg'] : Log complement (empty by default) **/ function manage_form($arr_id, $history, $id_action, $label_action, $status, $coll_id, $table, $values_form) { if (empty($values_form) || count($arr_id) < 1 || empty($coll_id)) { return false; } require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_security.php"); $sec =new security(); $db = new Database(); $core = new core_tools(); $res_table = $sec->retrieve_table_from_coll($coll_id); $ind = $sec->get_ind_collection($coll_id); $table = $_SESSION['collections'][$ind]['extensions'][0]; $simple_mail = '0'; $AR_mail = '0'; $contact = '0'; $email = '0'; $fax = '0'; $other = '0'; $no_answer = '0'; $other_txt = ''; $process_notes = ''; $folder = ''; for ($j=0; $j html_entity_decode('['._DEFINE.']', ENT_NOQUOTES, 'UTF-8')) { $other_txt = $values_form[$j]['VALUE']; } if ($values_form[$j]['ID'] == "process_notes") { $process_notes = $values_form[$j]['VALUE']; } if ($values_form[$j]['ID'] == "folder") { $folder = $values_form[$j]['VALUE']; } } if ($no_answer == '1') { $bitmask = '000000'; } else { $bitmask = $other.$fax.$email.$contact.$AR_mail.$simple_mail; } if ($core->is_module_loaded('tags')) { include_once("modules".DIRECTORY_SEPARATOR."tags". DIRECTORY_SEPARATOR."tags_update.php"); } if ($core->is_module_loaded('folder') && ($core->test_service('associate_folder', 'folder',false) == 1)) { $folder_id = ''; $old_folder_id = ''; //get old folder ID $stmt = $db->query("SELECT folders_system_id FROM ".$res_table." WHERE res_id = ?", array($arr_id[0])); $res = $stmt->fetchObject(); $old_folder_id = $res->folders_system_id; if (!empty($folder)) { $folder_id = str_replace(')', '', substr($folder, strrpos($folder,'(')+1)); if ($folder_id <> $old_folder_id && $_SESSION['history']['folderup']) { require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_history.php"); $hist = new history(); $hist->add($_SESSION['tablename']['fold_folders'], $folder_id, "UP", 'folderup', _DOC_NUM.$arr_id[0]._ADDED_TO_FOLDER, $_SESSION['config']['databasetype'],'apps'); if (isset($old_folder_id) && !empty($old_folder_id)) { $hist->add($_SESSION['tablename']['fold_folders'], $old_folder_id, "UP", 'folderup', _DOC_NUM.$arr_id[0]._DELETED_FROM_FOLDER, $_SESSION['config']['databasetype'],'apps'); } } $db->query("UPDATE ".$res_table." SET folders_system_id = ? WHERE res_id = ? ", array($folder_id, $arr_id[0])); } else if(empty($folder) && !empty($old_folder_id)) { //Delete folder reference in res_X $db->query("UPDATE ".$res_table." SET folders_system_id = NULL WHERE res_id = ?", array($arr_id[0])); } } if ($core->is_module_loaded('entities') && count($_SESSION['redirect']['diff_list']) == 0) { require_once('modules/entities/class/class_manage_listdiff.php'); $list = new diffusion_list(); $params = array('mode'=> 'listinstance', 'table' => $_SESSION['tablename']['ent_listinstance'], 'coll_id' => $coll_id, 'res_id' => $arr_id[0], 'user_id' => $_SESSION['user']['UserId'], 'concat_list' => true, 'only_cc' => true); $list->load_list_db($_SESSION['process']['diff_list'], $params); //pb enchainement avec action redirect } //$_SESSION['process']['diff_list'] = array(); $_SESSION['redirect']['diff_list'] = array(); unset($_SESSION['redirection']); unset($_SESSION['redirect']); $db->query("UPDATE ".$table." SET answer_type_bitmask = ?, process_notes = ?, other_answer_desc = ? WHERE res_id= ?", array($bitmask, $process_notes, $other_txt, $arr_id[0])); return array('result' => $arr_id[0].'#', 'history_msg' => ''); } function manage_unlock($arr_id, $history, $id_action, $label_action, $status, $coll_id, $table) { $db = new Database(); $result = ''; for ($i=0; $iquery("UPDATE ".$table. " SET video_user = '', video_time = 0 WHERE res_id = ?", array($arr_id[$i])); } return array('result' => $result, 'history_msg' => ''); }