Skip to content

Connettori

OpenContent Developer edited this page Oct 19, 2017 · 5 revisions

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[]

Definire un nuovo connettore

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

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

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 di classe

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 è:

  1. impostazione ini class_identifier/attribute_identifier
  2. impostazione ini attribute_identifier
  3. impostazione ini data_type_string
  4. 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
Clone this wiki locally