Ejemplo n.º 1
0
 /**
  * Parses a given fragment. For internal usage.
  *
  * @param  \stdClass                           $json the json bit retrieved from the API that represents any fragment.
  * @return \Prismic\Fragment\FragmentInterface the manipulable object for that fragment.
  */
 public static function parseFragment($json)
 {
     if (is_object($json) && property_exists($json, "type")) {
         if ($json->type === "Image") {
             $data = $json->value;
             $views = array();
             foreach ($json->value->views as $key => $jsonView) {
                 $views[$key] = ImageView::parse($jsonView);
             }
             $mainView = ImageView::parse($data->main, $views);
             return new Image($mainView, $views);
         }
         if ($json->type === "Color") {
             return new Color($json->value);
         }
         if ($json->type === "GeoPoint") {
             return new GeoPoint($json->value->latitude, $json->value->longitude);
         }
         if ($json->type === "Number") {
             return new Number($json->value);
         }
         if ($json->type === "Date") {
             return new Date($json->value);
         }
         if ($json->type === "Timestamp") {
             return new Timestamp($json->value);
         }
         if ($json->type === "Text") {
             return new Text($json->value);
         }
         if ($json->type === "Select") {
             return new Text($json->value);
         }
         if ($json->type === "Embed") {
             return Embed::parse($json->value);
         }
         if ($json->type === "Link.web") {
             return WebLink::parse($json->value);
         }
         if ($json->type === "Link.document") {
             return DocumentLink::parse($json->value);
         }
         if ($json->type === "Link.file") {
             return FileLink::parse($json->value);
         }
         if ($json->type === "Link.image") {
             return ImageLink::parse($json->value);
         }
         if ($json->type === "StructuredText") {
             return StructuredText::parse($json->value);
         }
         if ($json->type === "Group") {
             return Group::parse($json->value);
         }
         if ($json->type === "SliceZone") {
             return SliceZone::parse($json->value);
         }
         return null;
     }
 }
Ejemplo n.º 2
0
 /**
  * Parses a given StructuredText fragment (for internal use)
  *
  * @param  \stdClass  $json the json bit retrieved from the API that represents a StructuredText fragment.
  *
  * @return \Prismic\Fragment\StructuredText  the manipulable object for that StructuredText fragment.
  */
 public static function parse($json)
 {
     $blocks = array();
     foreach ($json as $blockJson) {
         $maybeBlock = StructuredText::parseBlock($blockJson);
         if (isset($maybeBlock)) {
             array_push($blocks, $maybeBlock);
         }
     }
     return new StructuredText($blocks);
 }
Ejemplo n.º 3
0
 /**
  * Parses a given image view fragment. Not meant to be used except for testing.
  *
  * @param  \stdClass                    $json the json bit retrieved from the API that represents an image view.
  * @return \Prismic\Fragment\ImageView  the manipulable object for that image view.
  */
 public static function parse($json)
 {
     return new ImageView($json->url, $json->alt, $json->copyright, $json->dimensions->width, $json->dimensions->height, isset($json->linkTo) ? StructuredText::extractLink($json->linkTo) : null);
 }