The following variables are exposed in the view templates (index.blade.php
, assets.blade.php
, scene.blade.php
).
Variable | Description |
---|---|
$space_url | The URL used for this space. |
$space_title | The title of this space. |
$origin_trial_token | Origin Trial Token for enabling WebVR in Chrome browsers. |
$theme_dir | The directory path of the active theme for this space. |
$theme_view | The name of the theme view. Default value is: scene. |
$content | Content variable containing all content type and field related data entered by the user. A detailed description of field type $content array structures can be found here. |
Example: $content
variable structure for field type textfield
:
@foreach ($content['your-content-type-key'] as $textfield)
{{ $textfield['your-textfield-key']['#id'] }}
{{ $textfield['your-textfield-key']['#content-id'] }}
{{ $textfield['your-textfield-key']['#type'] }}
{{ $textfield['your-textfield-key']['#value'] }}
@endforeach
Example: $content
variable structure for field type photosphere
:
@foreach ($content['your-content-type-key'] as $photosphere)
{{ $photosphere['your-photosphere-key']['#id'] }}
{{ $photosphere['your-photosphere-key']['#content-id'] }}
{{ $photosphere['your-photosphere-key']['#type'] }}
{{ $photosphere['your-photosphere-key']['#caption'] }}
{{ $photosphere['your-photosphere-key']['#description'] }}
{{ $photosphere['your-photosphere-key']['#width'] }}
{{ $photosphere['your-photosphere-key']['#height'] }}
{{ $photosphere['your-photosphere-key']['#uri']['#value'] }}
@endforach
Example: $content
variable structure for field type position
:
@foreach ($content['your-content-type-key'] as $position)
{{ $position['your-position-key']['#id'] }}
{{ $position['your-position-key']['#content-id'] }}
{{ $position['your-position-key']['#type'] }}
@foreach ($position['your-position-key']['#positions'] as $position_item)
{{ $position_item['#scale']['#x'] }}
{{ $position_item['#scale']['#y'] }}
{{ $position_item['#scale']['#z'] }}
{{ $position_item['#rotation']['#x'] }}
{{ $position_item['#rotation']['#y'] }}
{{ $position_item['#rotation']['#z'] }}
{{ $position_item['#position']['#x'] }}
{{ $position_item['#position']['#y'] }}
{{ $position_item['#position']['#z'] }}
{{ $position_item['#position']['#content-id'] }}
@endforeach
@endforeach
The view template variables are exposed via JavaScript and JSON as well. Example: you want to load assets in an A-Frame component.
<a-entity
load-assets="url:{{ $space_url }}/content/your-content-type-key?per-page=3&page=1"
</a-entity>
load-assets
is an A-Frame component with url
as a parameter which returns a JSON structure. IdeaSpaceVR uses pagination in order to return chuncks of content. per-page
parameter defines how many items should be returned 'per page'. page
parameter defines at which page number we want to start the pagination.
In the load-assets
component you can iterate through the JSON result. The JavaScript structure is the same structure as exposed in the view templates.
init: function() {
this.xmlhttp = new XMLHttpRequest();
this.xmlhttp.onreadystatechange = this.responseHandler.bind(this);
/* this.data.url contains the URL as shown in the example above */
this.xmlhttp.open('GET', this.data.url, true);
this.xmlhttp.send();
},
responseHandler: function() {
var obj = JSON.parse(this.xmlhttp.responseText);
for (var i=0; i<obj['your-content-type-key'].length; i++) {
var img = new Image();
img.src = obj['your-content-type-key'][i]['your-photosphere-key']['#uri']['#value'];
}
}
You can also load content by using the content id. For example, loading space content with id 12:
<a-entity
load-assets="url:{{ $space_url }}/content-id/12"
</a-entity>