server/src/app/Models/Document.php
changeset 500 4f507ba2bb4c
parent 498 265992e5b379
child 501 7b2dcd2b31c1
equal deleted inserted replaced
499:b5cff30efa0a 500:4f507ba2bb4c
    30     private $contributors = null;
    30     private $contributors = null;
    31     private $subjects = null;
    31     private $subjects = null;
    32     private $types = null;
    32     private $types = null;
    33     private $descriptions = null;
    33     private $descriptions = null;
    34     private $geoInfo = false;
    34     private $geoInfo = false;
       
    35     private $alternativeTitle = false;
    35 
    36 
    36     protected function clearMemoizationCache() {
    37     protected function clearMemoizationCache() {
    37         parent::clearMemoizationCache();
    38         parent::clearMemoizationCache();
    38         $this->publishers = null;
    39         $this->publishers = null;
    39         $this->mediaArray = null;
    40         $this->mediaArray = null;
   311         );
   312         );
   312     }
   313     }
   313 
   314 
   314 
   315 
   315     /**
   316     /**
   316      * Get subjects list
   317      * Get descriptions
   317      */
   318      */
   318     public function getDescriptions() {
   319     public function getDescriptions() {
   319         if(is_null($this->descriptions)) {
   320         if(is_null($this->descriptions)) {
   320             $this->descriptions = [];
   321             $this->descriptions = [];
   321             $this->descriptions = array_merge($this->descriptions, $this->getProvidedCHO()->all('<http://purl.org/dc/elements/1.1/description>'));
   322             $this->descriptions = array_merge($this->descriptions, $this->getProvidedCHO()->all('<http://purl.org/dc/elements/1.1/description>'));
   323             $this->descriptions = array_merge($this->descriptions, $this->getProvidedCHO()->all('<http://purl.org/dc/terms/tableOfContents>'));
   324             $this->descriptions = array_merge($this->descriptions, $this->getProvidedCHO()->all('<http://purl.org/dc/terms/tableOfContents>'));
   324         }
   325         }
   325         return $this->descriptions;
   326         return $this->descriptions;
   326     }
   327     }
   327 
   328 
       
   329     /**
       
   330      * Get Alternative Title
       
   331      */
       
   332     public function getAlternativeTitle() {
       
   333         if($this->alternativeTitle === false) {
       
   334             try {
       
   335                 $this->alternativeTitle = $this->getProvidedCHO()->getLiteral('<http://purl.org/dc/terms/alternative>');
       
   336             } catch(\Exception $e) {
       
   337                 $this->alternativeTitle = null;
       
   338             }
       
   339         }
       
   340         return $this->alternativeTitle;
       
   341     }
       
   342 
       
   343     public function getAlternativeTitleValue() {
       
   344         $alternativeTitle = $this->getAlternativeTitle();
       
   345         return is_null($alternativeTitle)?null:$alternativeTitle->getValue();
       
   346     }
   328 
   347 
   329     public function isIsomorphic($doc) {
   348     public function isIsomorphic($doc) {
   330         return Isomorphic::isomorphic($this->graph, $doc->graph);
   349         return Isomorphic::isomorphic($this->graph, $doc->graph);
   331     }
   350     }
   332 
   351 
   385                 'subjects' => $subjects,
   404                 'subjects' => $subjects,
   386                 'types' => $types,
   405                 'types' => $types,
   387                 'transcript' => $transcript,
   406                 'transcript' => $transcript,
   388                 'mediaArray'=> $mediaArray,
   407                 'mediaArray'=> $mediaArray,
   389                 'geoInfo' => $geoInfo,
   408                 'geoInfo' => $geoInfo,
   390                 'descriptions' => $descriptions
   409                 'descriptions' => $descriptions,
       
   410                 'alternativeTitle' => $this->getAlternativeTitleValue(),
   391             ]);
   411             ]);
   392 
   412 
   393         }
   413         }
   394         return $res;
   414         return $res;
   395 
   415