-
Notifications
You must be signed in to change notification settings - Fork 1
Connettori
L'estensione espone gli endpoint che possono essere utilizzati dai connettori di alpacajs attraverso il modulo form/connector
:
/form/connector/<identificatore-connettore>/data
/form/connector/<identificatore-connettore>/schema
/form/connector/<identificatore-connettore>/options
/form/connector/<identificatore-connettore>/view
I connettori disponibili sono definiti in ocopendata_forms.ini
nel blocco:
[ConnectorSettings]
AvailableConnectors[]
Per definire un connettore è necessario definirne l'identificativo in in ocopendata_forms.ini
:
[ConnectorSettings]
AvailableConnectors[]=il-mio-connettore
e definirne le configurazioni in un blocco ini ad hoc:
[il-mio-connettore_ConnectorSettings]
PHPClass=\Mio\Namespace\Di\Esempio\IlMioConnettoreConnector
La classe \Opencontent\Ocopendata\Forms\ConnectorBuilder
si occupa di caricare la classe php definita in PHPClass
in base all'identificatore.
I connettori devono estendere l'interfaccia \Opencontent\Ocopendata\Forms\ConnectorInterface
Il connettore demo
interrogabile nel modulo di demo http://your-domain/forms/demo ha solo scopo dimostrativo, non utitlizza nessun valore dinamico e non salva alcun dato.
E' l'implementazione del tutorial di alpacajs
Il connettore default
è definito dalla classe \Opencontent\Ocopendata\Forms\Connectors\OpendataConnector
ed è utilizzabile per creare/aggiornare oggetti eZ.
Il connettore carica la definizione della classe in base al parametro $_GET['class']
(in caso di creazione) o $_GET['object']
(in caso di aggiornamento).
Ad esempio in creazione di un nuovo oggetto di classe 'folder' le chiamate sono del tipo
/form/connector/default/.../?class=folder
oppure in modifica dell'oggetto 14 le chiamate sono del tipo /form/connector/default/.../?object=14
.
Se si desidera esporre il form di creazione di un nuovo oggetto copiandolo da un altro occorre passare il parametro $_GET['from']
, le chiamate saranno del tipo /form/connector/default/.../?from=14
Il connettore default
utilizza la libreria \Opencontent\Ocopendata\Forms\Connectors\OpendataConnector\ClassConnectorFactory
per ricavare i valori da esporre nel form in base alla classe eZ che si sta creando o aggiornando.
Il ClassConnectorFactory
ricava dal file ocopendata_connectors.ini
la libreria php adatta a renderizzare la classe eZ che si vuole utilizzare.
Per default utilizza \Opencontent\Ocopendata\Forms\Connectors\OpendataConnector\ClassConnector
ma è possibile specificare la propria libreria custom con l'impostazione in ocopendata_connectors.ini
:
[ClassSettings]
ClassConnectors[article]=MyAwesomeArticleClassConnector
Oppure configurare una libreria custom per gruppo di classi con l'impostazione in ocopendata_connectors.ini
:
[ClassSettings]
ClassGroupConnectors[1]=MyAwesomeContentClassConnector
La configurazione ClassConnectors
ha la priorità su ClassGroupConnectors
I connettori di classe devono estendere l'interfaccia \Opencontent\Ocopendata\Forms\Connectors\OpendataConnector\ClassConnectorInterface
I connettore \Opencontent\Ocopendata\Forms\Connectors\OpendataConnector\ClassConnector
utilizza la libreria \Opencontent\Ocopendata\Forms\Connectors\OpendataConnector\FieldConnectorFactory
per caricare librerie php utili a renderizzare ciascun attributo nel form.
I FieldConnectors sono customizzabili con l'impostazione ocopendata_connectors.ini
[FieldSettings]
FieldConnectors[article/title]=MyAwesomeArticleTitleFieldConnector
FieldConnectors[title]=MyAwesomeOverrideTitleFieldConnector
FieldConnectors[ezstring]=MyAwesomeOverrideEzStringFieldConnector
La priorità di caricamento di un FieldConnector è:
- impostazione ini class_identifier/attribute_identifier
- impostazione ini attribute_identifier
- impostazione ini data_type_string
- default
I connettori di attributo devono estendere l'interfaccia \Opencontent\Ocopendata\Forms\Connectors\OpendataConnector\FieldConnectorInterface
I connettori di default attualmente implementati sono:
Datatype | Libreria PHP (namespace \Opencontent\Ocopendata\Forms\Connectors\OpendataConnector\FieldConnector
|
---|---|
ezselection | SelectionField |
ezprice | PriceField |
ezkeyword | KeywordsField |
eztags | TagsField |
ezgmaplocation | GeoField |
ezdate | DateField |
ezdatetime | DateTimeField |
eztime | TimeField |
ezmatrix | MatrixField |
ezxmltext | EzXmlField |
ezauthor | AuthorField |
ezobjectrelation | RelationField |
ezobjectrelationlist | RelationsField |
ezbinaryfile | FileField |
ezimage | ImageField |
ezpage | PageField |
ezboolean | BooleanField |
ezuser | UserField |
ezfloat | FloatField |
ezinteger | IntegerField |
ezstring | StringField |
ezsrrating | RatingField |
ezemail | EmailField |
ezcountry | CountryField |
ezurl | UrlField |
eztext | TextField |