Exemplo n.º 1
0
function saveDocument($uid)
{
    DOCMAN_token::check() or die('Invalid Token');
    global $database, $_DMUSER;
    //fetch params
    $params = mosGetParam($_REQUEST, 'params', '');
    if (is_array($params)) {
        $txt = array();
        foreach ($params as $k => $v) {
            $txt[] = "{$k}={$v}";
        }
        $_POST['attribs'] = implode("\n", $txt);
    }
    $doc = new mosDMDocument($database);
    $doc->load($uid);
    // Load from id
    $doc->bind($_POST);
    /* ------------------------------ *
     *   MAMBOT - Setup All Mambots   *
     * ------------------------------ */
    $logbot = new DOCMAN_mambot('onLog');
    $postbot = new DOCMAN_mambot('onAfterEditDocument');
    $logbot->setParm('document', $doc);
    $logbot->setParm('file', $_POST['dmfilename']);
    $logbot->setParm('user', $_DMUSER);
    if (!$uid) {
        $logbot->copyParm('process', 'new document');
    } else {
        $logbot->copyParm('process', 'edit document');
    }
    $logbot->copyParm('new', !$uid);
    $postbot->setParmArray($logbot->getParm());
    $postbot->trigger();
    if ($postbot->getError()) {
        $logbot->copyParm('msg', $postbot->getErrorMsg());
        $logbot->copyParm('status', 'LOG_ERROR');
        $logbot->trigger();
        _returnTo('cat_view', $postbot->getErrorMsg());
    }
    // let's indicate last update information to store
    if ($doc->save()) {
        $logbot->copyParm('msg', 'Document saved');
        $logbot->copyParm('status', 'LOG_OK');
        $logbot->trigger();
        // if submited for the first time lets do auto-approve/publish operations
        if (!$uid) {
            autoApprove($doc);
            autoPublish($doc);
        }
        /* removed $message: undefined
         * original code:
         * _returnTo('cat_view', _DML_THANKSDOCMAN . $message ? "<br />" . $message : '', $doc->catid);
         */
        _returnTo('cat_view', _DML_THANKSDOCMAN, $doc->catid);
    }
    // doc->save failed. Log error
    $logbot->copyParm('msg', $doc->getError());
    $logbot->copyParm('status', 'LOG_ERROR');
    $logbot->trigger();
    _returnTo('cat_view', _DML_PROBLEM_SAVING_DOCUMENT);
}
Exemplo n.º 2
0
function saveDocument($uid)
{
    DOCMAN_token::check() or die('Invalid Token');
    global $_DOCMAN, $_DMUSER;
    jimport('joomla.filesystem.file');
    $database = JFactory::getDBO();
    //fetch params
    $params = JRequest::getVar('params', array(), 'request', 'array');
    if (is_array($params)) {
        $txt = array();
        foreach ($params as $k => $v) {
            $txt[] = "{$k}={$v}";
        }
        $_POST['attribs'] = implode("\n", $txt);
    }
    $doc = new mosDMDocument($database);
    $doc->load(JRequest::getInt('id'));
    // get the uploaded filename from the session
    $session = JFactory::getSession();
    if ($session->get('docman.dmfilename')) {
        $_POST['dmfilename'] = $session->get('docman.dmfilename');
        $_POST['document_url'] = $session->get('docman.document_url');
    } else {
        $_POST['dmfilename'] = $doc->dmfilename;
        unset($_POST['document_url']);
    }
    $doc->bind(DOCMAN_Utils::stripslashes($_POST));
    // plugins
    $logbot = new DOCMAN_mambot('onLog');
    $postbot = new DOCMAN_mambot('onAfterEditDocument');
    $logbot->setParm('document', $doc);
    $logbot->setParm('file', $_POST['dmfilename']);
    $logbot->setParm('user', $_DMUSER);
    if (!$uid) {
        $logbot->copyParm('process', 'new document');
    } else {
        $logbot->copyParm('process', 'edit document');
    }
    $logbot->copyParm('new', !$uid);
    $postbot->setParmArray($logbot->getParm());
    // let's indicate last update information to store
    if ($doc->save()) {
        $session->set('docman.dmfilename', null);
        $session->set('docman.document_url', null);
        $logbot->copyParm('msg', 'Document saved');
        $logbot->copyParm('status', 'LOG_OK');
        $logbot->trigger();
        // if submited for the first time lets do auto-approve/publish operations
        if (!$uid) {
            autoApprove($doc);
            autoPublish($doc);
        }
        // If document is saved, trigger the postbot.
        $postbot->trigger();
        if ($postbot->getError()) {
            $logbot->copyParm('msg', $postbot->getErrorMsg());
            $logbot->copyParm('status', 'LOG_ERROR');
            $logbot->trigger();
            _returnTo('cat_view', $postbot->getErrorMsg());
        }
        _returnTo('cat_view', _DML_THANKSDOCMAN, $doc->catid);
    }
    // doc->save failed. Log error
    $logbot->copyParm('msg', $doc->getError());
    $logbot->copyParm('status', 'LOG_ERROR');
    $logbot->trigger();
    _returnTo('cat_view', _DML_PROBLEM_SAVING_DOCUMENT);
}