server/src/app/Models/Document.php
changeset 497 f3474aeec884
parent 377 52169c718513
child 498 265992e5b379
equal deleted inserted replaced
496:a53762d61c06 497:f3474aeec884
    27     private $publishers = null;
    27     private $publishers = null;
    28     private $mediaArray = null;
    28     private $mediaArray = null;
    29     private $transcript = false;
    29     private $transcript = false;
    30     private $contributors = null;
    30     private $contributors = null;
    31     private $subjects = null;
    31     private $subjects = null;
       
    32     private $types = null;
    32     private $geoInfo = false;
    33     private $geoInfo = false;
    33 
    34 
    34     protected function clearMemoizationCache() {
    35     protected function clearMemoizationCache() {
    35         parent::clearMemoizationCache();
    36         parent::clearMemoizationCache();
    36         $this->publishers = null;
    37         $this->publishers = null;
    37         $this->mediaArray = null;
    38         $this->mediaArray = null;
    38         $this->contributors = null;
    39         $this->contributors = null;
    39         $this->subjects = null;
    40         $this->subjects = null;
       
    41         $this->types = null;
    40         $this->transcript = false;
    42         $this->transcript = false;
    41         $this->geoInfo = false;
    43         $this->geoInfo = false;
    42     }
    44     }
    43 
    45 
    44     protected function additionalDeltaLists() {
    46     protected function additionalDeltaLists() {
    93         }
    95         }
    94         return $this->mediaArray;
    96         return $this->mediaArray;
    95     }
    97     }
    96 
    98 
    97     public function getTypes() {
    99     public function getTypes() {
    98         return $this->getProvidedCHO()->all('dc11:type');
   100         if(is_null($this->types)) {
       
   101             $this->types = $this->getProvidedCHO()->all('dc11:type');
       
   102         }
       
   103         return $this->types;
    99     }
   104     }
   100 
   105 
   101     public function getDiscourseTypes() {
   106     public function getDiscourseTypes() {
   102         return array_values(array_filter($this->getTypes(), function($v) {
   107         return array_values(array_filter($this->getTypes(), function($v) {
   103             return $v instanceof Resource
   108             return $v instanceof Resource
   348 
   353 
   349             $subjects = array_map(
   354             $subjects = array_map(
   350                 function($s) { return Utils::processLiteralResourceOrString($s); },
   355                 function($s) { return Utils::processLiteralResourceOrString($s); },
   351                 $this->getSubjects()
   356                 $this->getSubjects()
   352             );
   357             );
       
   358             $types = array_map(
       
   359                 function($s) { return Utils::processLiteralResourceOrString($s); },
       
   360                 $this->getTypes()
       
   361             );
   353 
   362 
   354             $res = array_merge($res, [
   363             $res = array_merge($res, [
   355                 'publishers' => $publishers,
   364                 'publishers' => $publishers,
   356                 'contributors' => $contributors,
   365                 'contributors' => $contributors,
   357                 'subjects' => $subjects,
   366                 'subjects' => $subjects,
       
   367                 'types' => $types,
   358                 'transcript' => $transcript,
   368                 'transcript' => $transcript,
   359                 'mediaArray'=> $mediaArray,
   369                 'mediaArray'=> $mediaArray,
   360                 'geoInfo' => $geoInfo
   370                 'geoInfo' => $geoInfo
   361             ]);
   371             ]);
   362 
   372