Ejemplo n.º 1
0
 public function addResource($resourceUrl, $relative = true, $elementType = null)
 {
     $resourceCacheKey = $this->wf->SharedMemcKey('SDContextResource', $resourceUrl);
     $resourceData = $this->wg->Memc->get($resourceCacheKey);
     if (empty($resourceData)) {
         $resourceData = $this->APIClient->getContext($resourceUrl, $relative);
         $this->resources[$resourceUrl] = $resourceData->{"@context"};
         $this->wg->Memc->set($resourceCacheKey, $this->resources[$resourceUrl], self::RESOURCE_CACHE_TTL);
     } else {
         $this->resources[$resourceUrl] = $resourceData;
     }
     // @todo tmp hack! remove when API will be fixed back
     $elementType = null;
     if (!empty($elementType)) {
         $descriptionCacheKey = $this->wf->SharedMemcKey('SDContextDescription', $resourceUrl);
         $objectDescriptionData = $this->wg->Memc->get($descriptionCacheKey);
         if (empty($objectDescriptionData)) {
             $objectDescriptionData = $this->APIClient->getObjectDescription($elementType);
             $this->objectDescriptions[$elementType] = $objectDescriptionData;
             $this->wg->Memc->set($descriptionCacheKey, $this->objectDescriptions[$elementType], self::DESCRIPTION_CACHE_TTL);
         } else {
             $this->objectDescriptions[$elementType] = $objectDescriptionData;
         }
     }
     $this->processResource($resourceUrl, $elementType);
 }
 public function getTemplate()
 {
     // force json format
     $this->getResponse()->setFormat('json');
     $objectType = $this->request->getVal('objectType', false);
     if (!empty($objectType)) {
         $template = $this->APIClient->getTemplate($objectType, true);
         $this->response->setBody($template);
     }
 }
Ejemplo n.º 3
0
 private function getSDElement(stdClass $element, $elementDepth = 0)
 {
     $template = $this->APIClient->getTemplate($element->type);
     $SDElement = F::build('SDElement', array('template' => $template, 'context' => $this->context, 'data' => $element, 'depth' => $elementDepth), 'newFromTemplate');
     return $SDElement;
 }