Questa è una risposta parziale e in nessun modo completa. Mi piacerebbe anche scoprire di più su entrambi. Quindi questo può far parte di una discussione; anche se ho scritto come risposta anziché come commento a causa dei seguenti frammenti di codice ed esempi di come ho usato le classi di cui sopra.
Permettetemi di illustrare alcuni dei miei usi apprendi () come - che fa come dice.
Di recente stavo fornendo alcuni dati da importare da un database non drupal. L'entità a cui sto aggiungendo richiede l'inserimento di campi che non ho nell'importazione dei dati.
Quindi, prima che venga creata la mia classe di origine, posso aggiungere
$source_fields = array(
'changed' => t('Timestamp of when the change was made.'),
'created' => t('Timestamp of when the node was Created.'),
);
e quindi nella funzione preposiziona posso fare quanto segue
$nowtimestamp = mktime(date('Y-m-d'));
$row->changed = $nowtimestamp;
$row->created = $nowtimestamp;
puoi anche eseguire istruzioni php if / else qui se necessario.
Ho anche usato la funzione di preparazione nel mio codice e la sto usando per assegnare valori all'entità.
$account->field_job_location [und][0]['tid'] = $row->job_location_tid;
Ho dovuto usare questo in questo scenario solo quando ho creato il mio plug-in nodo personalizzato.
Inoltre, se hai bisogno di fare calcoli su questo, allora puoi farlo in preparazioneRow che viene eseguito prima di prepar ()
Ad esempio, nell'importazione avevo un valore con l'etichetta "Città" e potevo trasformarlo in un ID termine.
if ($TownCity == 'London' ){
$row->job_location_tid = '10';
} else {
$row->job_location_tid = '11';
}
Spero che questo possa essere d'aiuto.