You are here

protected function EntityShareMediasScaldImport::getImportRteFieldCallback in Entity Share 7

Generate the callback to treat the scald content from the field data.

Return value

callable The callback to treat RTE.

1 call to EntityShareMediasScaldImport::getImportRteFieldCallback()
EntityShareMediasScaldImport::rteManagement in modules/entity_share_medias/modules/entity_share_medias_scald/includes/entity_share_medias_scald.import.inc
Alter RTE datas.

File

modules/entity_share_medias/modules/entity_share_medias_scald/includes/entity_share_medias_scald.import.inc, line 64
Class for handling scald Medias in RTE.

Class

EntityShareMediasScaldImport
Class to manage scald atoms import.

Code

protected function getImportRteFieldCallback() {
  $instance = $this;
  return function ($matches, &$field_value) use ($instance) {
    foreach ($matches as $match) {
      $full_pattern_match = $match[0];
      $uuid = $match[1];
      $context = $match[2];
      $url = $match[3];
      $orisid = $match[4];
      $infos = $match[5];
      $scald_atom = $instance->entity->entity_share['scald_atoms'][$orisid];
      if (!empty($scald_atom)) {
        $sid = $instance
          ->importScaldAtom((object) $scald_atom, $uuid, $url);

        // Replace sid per file uuid (alter the original
        // field_value, be careful with all references).
        $field_value = str_replace($full_pattern_match, $instance
          ->generateImportRteMediaString($sid, $context, $infos), $field_value);

        // Replace remote copyright id.
        $instance
          ->manageCopyrights($orisid, $sid, $field_value);
      }
    }
  };
}