Skip to content
Snippets Groups Projects
load_listinstance.php 6.24 KiB
Newer Older
  • Learn to ignore specific revisions
  • SNA's avatar
    SNA committed
    <?php
    
    SNA's avatar
    SNA committed
    /**
    
    * Copyright Maarch since 2008 under licence GPLv3.
    * See LICENCE.txt file at the root folder for more details.
    * This file is part of Maarch software.
    
    SNA's avatar
    SNA committed
    *
    
    */
    
    /**
    * File : load_listinstance.php
    
    SNA's avatar
    SNA committed
    *
    * @license GPL v3
    
    * @author  dev <dev@maarch.org>
    
    SNA's avatar
    SNA committed
    */
    
    require_once 'modules/entities/class/class_manage_listdiff.php';
    
    SNA's avatar
    SNA committed
    
    
    $db       = new Database();
    $core     = new core_tools();
    
    SNA's avatar
    SNA committed
    $core->load_lang();
    
    SNA's avatar
    SNA committed
    $diffList = new diffusion_list();
    
    $origin   = $_REQUEST['origin'];
    
    Giovannoni Laurent's avatar
    Giovannoni Laurent committed
    
    if (empty($_REQUEST['origin'])) {
        $_SESSION['error'] = _ORIGIN . ' ' . _UNKNOWN;
        echo "{status : 2, error_txt : '" . addslashes($_SESSION['error']) . "'}";
        exit();
    }
    
    SNA's avatar
    SNA committed
    
    
    if ((! isset($_REQUEST['objectType']) || empty($_REQUEST['objectType'])) && $_REQUEST['load_from_model'] == 'true') {
    
    Cyril Vazquez's avatar
    Cyril Vazquez committed
        if ($_REQUEST['mandatory'] <> 'none') {
            $_SESSION['error'] = _OBJECT_TYPE . ' ' . _IS_EMPTY;
        }
    
    Giovannoni Laurent's avatar
    Giovannoni Laurent committed
        $_SESSION[$origin]['diff_list'] = array();
    
    Cyril Vazquez's avatar
    Cyril Vazquez committed
        echo "{status : 1, error_txt : '" . addslashes($_SESSION['error']) . "'}";
        exit();
    
    Cyril Vazquez's avatar
    Cyril Vazquez committed
    
    if ((! isset($_REQUEST['objectId']) || empty($_REQUEST['objectId']))
    
    SNA's avatar
    SNA committed
        && $_REQUEST['load_from_model'] == 'true'
    ) {
    
        // if ($_REQUEST['mandatory'] <> 'none') {
        //     $_SESSION['error'] = _ENTITY_ID . ' ' . _IS_EMPTY;
        // }
    
    Giovannoni Laurent's avatar
    Giovannoni Laurent committed
        $_SESSION[$origin]['diff_list'] = array();
    
    SNA's avatar
    SNA committed
        echo "{status : 1, error_txt : '" . addslashes($_SESSION['error']) . "'}";
    
    SNA's avatar
    SNA committed
    }
    
    
    Cyril Vazquez's avatar
    Cyril Vazquez committed
    if (empty($_REQUEST['collId']) && $_REQUEST['load_from_model'] == 'true') {
        $_SESSION['error'] = _COLL_ID . ' ' . _IS_EMPTY;
        echo "{status : 2, error_txt : '" . addslashes($_SESSION['error']) . "'}";
        exit();
    }
    
    
    $specific_role = $_REQUEST['specific_role'];
    
    
    SNA's avatar
    SNA committed
    $onlyCC = false;
    
    Giovannoni Laurent's avatar
    Giovannoni Laurent committed
    
    
    if (($core->test_service('add_copy_in_process', 'entities', false) && $_REQUEST['origin'] == 'process')
        || ($core->test_service('add_copy_in_indexing_validation', 'entities', false) && ($_REQUEST['origin'] == 'indexing' || $_REQUEST['origin'] == 'redirect'))) {
    
    SNA's avatar
    SNA committed
        $onlyCC = true;
    
    SNA's avatar
    SNA committed
    }
    
    
    // if($_REQUEST['origin'] == 'indexing'){
    //     $onlyCC = false;
    // }
    
    Giovannoni Laurent's avatar
    Giovannoni Laurent committed
    
    
    $objectType = $_REQUEST['objectType'];
    
    $objectId   = $_REQUEST['objectId'];
    
    Cyril Vazquez's avatar
    Cyril Vazquez committed
    
    
    // Get listmodel_parameters
    $_SESSION[$origin]['difflist_type'] = $diffList->get_difflist_type($objectType);
    
    
    SNA's avatar
    SNA committed
    if ($_REQUEST['load_from_model'] == 'true') {
    
        $_SESSION[$origin]['diff_list'] = $diffList->get_listmodel($objectType, $objectId);
    
    Cyril Vazquez's avatar
    Cyril Vazquez committed
        $_SESSION[$origin]['diff_list']['difflist_type'] = $_SESSION[$origin]['diff_list']['object_type'];
    
    SNA's avatar
    SNA committed
    }
    
    
    Giovannoni Laurent's avatar
    Giovannoni Laurent committed
    if ($objectId <> '') {
        $_SESSION[$origin]['difflist_object']['object_id'] = $objectId;
        if ($objectType == 'entity_id') {
    
            $query = "SELECT entity_label FROM entities WHERE entity_id = ?";
    
            $stmt  = $db->query($query, array($objectId));
            $res   = $stmt->fetchObject();
    
    Giovannoni Laurent's avatar
    Giovannoni Laurent committed
            if ($res->entity_label <> '') {
                $_SESSION[$origin]['difflist_object']['object_label'] = $res->entity_label;
            }
        }
    }
    
    if (($specific_role <> null || $specific_role <> '') && empty($_SESSION[$origin]['diff_list'])) {
    
        $diff_list = new diffusion_list();
    
        $res_id    = $_SESSION['doc_id'];
    
        $_SESSION[$origin]['diff_list'] = $diff_list->get_listinstance($res_id);
    }
    
    SNA's avatar
    SNA committed
    $content = '';
    
    if (!empty($_SESSION[$origin]['diff_list'])) {
    
        // Si on redirige en masse plusieurs courriers, on ne récupère pas les roles persistent
    
        if (empty($_SESSION['stockCheckbox']) || count($_SESSION['stockCheckbox']) == 1) {
            if (!empty($_SESSION['stockCheckbox']) && count($_SESSION['stockCheckbox']) == 1) {
    
                // Cas où on redirige en masse un courrier
                $res_id = $_SESSION['stockCheckbox'][0];
            } else {
                $res_id = $_SESSION['doc_id'];
            }
            $_SESSION[$origin]['diff_list'] = $diffList->list_difflist_roles_to_keep($res_id, $_REQUEST['collId'], $objectType, $_SESSION[$origin]['diff_list']);
        }
    
    
        $roles    = $diffList->list_difflist_roles();
    
        $difflist = $_SESSION[$origin]['diff_list'];
    
        // Get content from buffer of difflist_display
    
        ob_start();
        require_once 'modules/entities/difflist_display.php';
        $content .= str_replace(array("\r", "\n", "\t"), array("", "", ""), ob_get_contents());
    
        ob_end_clean();
    
    Cyril Vazquez's avatar
    Cyril Vazquez committed
    
    
        $labelButton = _UPDATE_LIST_DIFF;
    
    SNA's avatar
    SNA committed
    } else {
        $content .= '<p>' . _NO_DIFF_LIST_ASSOCIATED . '</p>';
        $labelButton = _CREATE_LIST;
    
    SNA's avatar
    SNA committed
    }
    
    SNA's avatar
    SNA committed
    if ($onlyCC) {
    
    SNA's avatar
    SNA committed
    }
    
    if ($origin != 'process' && $origin != 'details') {
    
        $content_standard = '<center><b>' . _DIFF_LIST . '</b> | ';
        $content_standard .= '<span class="button" >';
    
        $content_standard .= '<small><input type="button" style="margin-top:0px;" class="button" title="'.$labelButton.'" value="'.$labelButton.'" '
                 . 'onclick="window.open(\'';
    
        $content_standard .= $_SESSION['config']['businessappurl'] . 'index.php?display=true';
    
        if ($specific_role <> null) {
    
            $content_standard .= '&specific_role='.$specific_role;
        }
    
        $content_standard .= '&module=entities&page=manage_listinstance&cat='.$category.'&origin=' . $origin . $arg
    
                 . '\', \'\', \'scrollbars=yes,menubar=no,toolbar=no,status=no,'
    
                 . 'resizable=yes,width=1280,height=800,location=no\');" /></small>';
    
        $content_standard .= '</span></center>';
    
        $full_content = $content_standard . $content;
    
    } else if ($origin == 'details') {
    
        $content_standard .= '<div class="block" style="margin-top:-2px;">';
        $content_standard .= '<h2 style="text-align:center;">' . _DIFF_LIST . '</h2>';
    
        $content_standard .= '<div style="text-align:center;">';
        $content_standard .= '<input type="button" class="button" title="'.$labelButton.'" value="'.$labelButton.'" '
                 . 'onclick="window.open(\''
    
                 . $_SESSION['config']['businessappurl'] . 'index.php?display=true'
    
                 . '&module=entities&page=manage_listinstance&cat='.$category.'&origin=' . $origin . $arg
    
                 . '\', \'\', \'scrollbars=yes,menubar=no,toolbar=no,status=no,'
    
                 . 'resizable=yes,width=1280,height=800,location=no\');" />';
        $content_standard .= '</div>';
    
    
        $full_content = $content_standard . $content. '</div>';
    
    echo "{status : 0, div_content : '" . addslashes($full_content . '<br>') . "', div_content_action : '" . addslashes($content) . "'}";
    
    SNA's avatar
    SNA committed
    exit();