Shapedivermodel, shapediverparameter, shapediverparametervalue, shapedivergeometry
- Version
- 4.0 preview
- Updated
The ShapeDiver integration: a reference to a 3D model, to one of its parameters, to a value of such a parameter, and to a geometry within it.
Storage kind: column · Column: varchar(255) inherited — see below
Four types rather than one because each renders a different picker and each is only meaningful against the one above it. You will not reach for these outside the ShapeDiver feature; they exist to give the visualization settings on a product typed fields rather than free text.
The four types
| Type | Refers to | Chain position |
|---|---|---|
shapedivermodel | a ShapeDiver model configured on the product | root |
shapediverparameter | one parameter of that model | needs a model |
shapediverparametervalue | a value of that parameter | needs a parameter |
shapedivergeometry | a named geometry within the model | needs a model |
A parameter reference is only meaningful against a model, and a value only against a parameter. The pickers narrow each other accordingly.
Settings
They take the shared settings only — none reads a setting of its own. All four read their value from the request as a plain string, and the picker's option list comes from the ShapeDiver model configured on the product, not from the property definition.
shapedivermodel is the only one that validates. Its value is a JSON blob, and check() refuses it
when the decoded object has no ticket — the ShapeDiver ticket id is what every later call needs, so
a model reference without one is refused on save rather than discovered at render time. An empty
value, or one on a field that appliesWhen says does not apply, passes.
These fields are typically conditional:
'appliesWhen' => array('visualization_type' => 'shapediver'),
Column widths are declared, not inherited
None of these types declares a getDefaultDataType(), so each inherits the base varchar(255).
That is rarely what you want: shapediver_model_data holds a JSON blob and carries an explicit
'dataType' => 'text' in its definition.
If you add one, decide the width deliberately. A reference to a ShapeDiver entity is an external identifier whose length is not ours to choose, and the default is a guess rather than a decision.
Notes
The engine helper behind them (ConfigboxShapediverHelper) ships ionCube-encoded, so the picker
behaviour cannot be read from this tree — this page is the reference for it.
@see ../com_configbox_property_definition_settings.md §7