NativeXmlSubmissionFilter::handleChildElement PHP Method

handleChildElement() public method

Handle an element whose parent is the submission element.
public handleChildElement ( $n, $submission )
$n DOMElement
$submission Submission
    function handleChildElement($n, $submission)
    {
        $setterMappings = $this->_getLocalizedSubmissionSetterMappings();
        $controlledVocabulariesMappings = $this->_getControlledVocabulariesMappings();
        if (isset($setterMappings[$n->tagName])) {
            // If applicable, call a setter for localized content
            $setterFunction = $setterMappings[$n->tagName];
            list($locale, $value) = $this->parseLocalizedContent($n);
            if (empty($locale)) {
                $locale = $submission->getLocale();
            }
            $submission->{$setterFunction}($value, $locale);
        } elseif (isset($controlledVocabulariesMappings[$n->tagName])) {
            $controlledVocabulariesDao = $submissionKeywordDao = DAORegistry::getDAO($controlledVocabulariesMappings[$n->tagName][0]);
            $insertFunction = $controlledVocabulariesMappings[$n->tagName][1];
            list($locale, $value) = $this->parseLocalizedContent($n);
            if (empty($locale)) {
                $locale = $submission->getLocale();
            }
            $controlledVocabulary = array();
            for ($nc = $n->firstChild; $nc !== null; $nc = $nc->nextSibling) {
                if (is_a($nc, 'DOMElement')) {
                    $controlledVocabulary[] = $nc->textContent;
                }
            }
            $controlledVocabulariesValues = array();
            $controlledVocabulariesValues[$locale] = $controlledVocabulary;
            $controlledVocabulariesDao->{$insertFunction}($controlledVocabulariesValues, $submission->getId(), false);
        } else {
            switch ($n->tagName) {
                // Otherwise, delegate to specific parsing code
                case 'id':
                    $this->parseIdentifier($n, $submission);
                    break;
                case 'authors':
                    $this->parseAuthors($n, $submission);
                    break;
                case 'submission_file':
                    $this->parseSubmissionFile($n, $submission);
                    break;
                case 'comments_to_editor':
                    $submission->setCommentsToEditor($n->textContent);
                    break;
                default:
                    $deployment->addError(ASSOC_TYPE_SUBMISSION, $submission->getId(), __('plugins.importexport.common.error.unknownElement', array('param' => $n->tagName)));
            }
        }
    }

Usage Example

コード例 #1
0
 /**
  * Handle an element whose parent is the submission element.
  * @param $n DOMElement
  * @param $submission Submission
  */
 function handleChildElement($n, $submission)
 {
     switch ($n->tagName) {
         case 'artwork_file':
             $this->parseSubmissionFile($n, $submission);
             break;
         case 'article_galley':
             $this->parseArticleGalley($n, $submission);
             break;
         default:
             parent::handleChildElement($n, $submission);
     }
 }
All Usage Examples Of NativeXmlSubmissionFilter::handleChildElement