Пример #1
0
function mainEdit($get)
{
    //function mainEdit($recno, $uuid, $package, $profil, $copy=TRUE) {
    $recno = isset($get['recno']) && $get['recno'] != '' ? htmlspecialchars($get['recno']) : -1;
    $uuid = isset($get['uuid']) && $get['uuid'] != '' ? htmlspecialchars($get['uuid']) : '';
    if ($recno == -1 && $uuid == '' && isset($get['id'])) {
        $uuid = $get['id'] != '' ? htmlspecialchars($get['id']) : '';
    }
    $package = isset($get['package']) && $get['package'] != '' ? htmlspecialchars($get['package']) : '';
    $profil = isset($get['profil']) && $get['profil'] != '' ? htmlspecialchars($get['profil']) : '';
    $copy = isset($get['copy']) && $get['copy'] == FALSE ? FALSE : TRUE;
    $rs = array();
    $rs['akce'] = 'error';
    $rs['ok'] = FALSE;
    $rs['report'] = '';
    $rs['data'] = '';
    $md_record = new MdRecord();
    if ($uuid != '') {
        if ($copy === FALSE) {
            $md_record->setTableMode('tmp');
        }
        $record = $md_record->getMd('uuid', $uuid);
        if ($record['report'] != 'ok') {
            $rs['report'] = $record['report'];
            require PHPINC_DIR . '/templates/404_record.php';
            return $rs;
        }
        if ($record['right'] != 'w') {
            $rs['report'] = 'Not rights';
            require PHPINC_DIR . '/templates/403.php';
            return $rs;
        }
        $recno = $record['md']['RECNO'];
    }
    if ($recno > -1) {
        $recnoSession = getEditValueFromSession($recno, 'recno', 'recnoTmp');
        if ($recnoSession != '' && $recnoSession != -1) {
            $copy = FALSE;
            if ($profil == '') {
                $profil = getEditValueFromSession($recno, 'recno', 'profil');
            }
            if ($package == '') {
                $package = getEditValueFromSession($recno, 'recno', 'package');
            }
            $recno = $recnoSession;
        }
        if ($copy === TRUE) {
            $pom = $md_record->copyRecordToTmp($recno);
            $recnoTmp = $pom['recno_tmp'];
            setEditId2Session('recno', $recno);
            setEditId2Session('recnoTmp', $recnoTmp);
            setUrlEdit2Session();
        } else {
            $recnoTmp = $recno;
        }
        if ($recnoTmp == -1) {
            $rs['report'] = $pom['report'];
            require PHPINC_DIR . '/templates/403.php';
            return $rs;
        }
        if ($package == '' && $profil == '') {
            $package = 1;
            $profil = START_PROFIL;
        }
        $md_record->setTableMode('tmp');
        //echo $profil; FIXME?
        $record = $md_record->getMdValues($recnoTmp, $value_lang = 'xxx', $profil, $package);
        if ($record['report'] != 'ok' || $record['user_right'] != 'w') {
            Debugger::log('[micka_main_lib.mainEdit] ' . "Recno={$recnoTmp}, " . $record['report'], 'ERROR');
            $rs['report'] = $record['report'];
            require PHPINC_DIR . '/templates/403.php';
            return $rs;
        }
        $rs['publisher'] = $record['publisher'];
        $rs['saver'] = $record['saver'];
        $rs['hierarchy'] = array_key_exists('hierarchy', $record) ? $record['hierarchy'] : '';
        $rs['data']['md']['RECNO'] = $recnoTmp;
        $rs['data']['md']['MD_STANDARD'] = $record['md']['MD_STANDARD'];
        $rs['data']['md']['LANG'] = $record['md']['LANG'];
        $rs['data']['md']['TITLE'] = $record['md']['TITLE'];
        $rs['data']['md']['UUID'] = $record['md']['UUID'];
        $rs['data']['md']['PXML'] = $record['md']['PXML'];
        $rs['data']['md']['DATA_TYPE'] = $record['md']['DATA_TYPE'];
        $rs['data']['md']['VIEW_GROUP'] = $record['md']['VIEW_GROUP'];
        $rs['data']['md']['EDIT_GROUP'] = $record['md']['EDIT_GROUP'];
        if ($record['md']['MD_STANDARD'] == 0 || $record['md']['MD_STANDARD'] == 10) {
            foreach ($record['md_values'] as $value) {
                if ($value['MD_ID'] == 11 || $value['MD_ID'] == 5063) {
                    if ($value['LANG'] == MICKA_LANG) {
                        $rs['data']['md']['TITLE'] = $value['MD_VALUE'];
                        break;
                    }
                }
            }
        }
        if (isset($record['template']) && $record['template'] != '') {
            // micka LITE
            $rs['data']['md']['PXML'] = $record['md']['PXML'];
            $rs['akce'] = 'lite';
            $rs['template'] = $record['template'];
            $rs['profil'] = $record['profil'];
            $rs['ok'] = TRUE;
            return $rs;
        }
        $rs['data']['package'] = $record['md_value_package'];
        if ($record['md_value_profil'] == -1 && $record['md']['MD_STANDARD'] == 0) {
            $rs['data']['profil'] = 0;
        } elseif ($record['md_value_profil'] == -1 && $record['md']['MD_STANDARD'] == 10) {
            $rs['data']['profil'] = 100;
        } else {
            $rs['data']['profil'] = $record['md_value_profil'];
        }
        $rs['data']['keywords_uri'] = $md_record->getKeywordsUri($recnoTmp);
        require PHPPRG_DIR . '/MdEditForm.php';
        $form = new EditForm();
        $rs['data']['md_values'] = $form->getEditForm($record['md']['MD_STANDARD'], $recnoTmp, $record['md']['LANG'], $record['md_value_profil'], $record['md_value_package'], $record['md_values']);
        $rs['data']['md_values_end'] = $form->getEditFormEnd();
        $rs['akce'] = 'edit';
        return $rs;
    } else {
        Debugger::log('[micka_main_lib.mainEdit] ' . 'Not complete input!', 'ERROR');
        $rs['report'] = 'Not complete input!';
        require PHPINC_DIR . '/templates/404_record.php';
        return $rs;
    }
}