Skip to main content
Version: 4.0 preview

Shapedivermodel, shapediverparameter, shapediverparametervalue, shapedivergeometry

Version
4.0 preview
Updated
View markdown

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

TypeRefers toChain position
shapedivermodela ShapeDiver model configured on the productroot
shapediverparameterone parameter of that modelneeds a model
shapediverparametervaluea value of that parameterneeds a parameter
shapedivergeometrya named geometry within the modelneeds 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