Projet

Général

Profil

Révision 59ae487e

Ajouté par Assos Assos il y a presque 7 ans

Weekly update of contrib modules

Voir les différences:

drupal7/sites/all/modules/file_entity/file_entity.field.inc
284 284
      foreach ($items as $delta => $item) {
285 285
        // Protect ourselves from recursive rendering.
286 286
        static $recursive_render_depth = array();
287
        $recursive_render_id = $entity_type . $field['field_name'] . $item['fid'];
287
        if (!empty($item)) {
288
          $recursive_render_id = $entity_type . $field['field_name'] . $item['fid'];
289
          if (isset($recursive_render_depth[$recursive_render_id])) {
290
            $recursive_render_depth[$recursive_render_id]++;
291
          }
292
          else {
293
            $recursive_render_depth[$recursive_render_id] = 1;
294
          }
288 295

  
289
        if (isset($recursive_render_depth[$recursive_render_id])) {
290
          $recursive_render_depth[$recursive_render_id]++;
291
        }
292
        else {
293
          $recursive_render_depth[$recursive_render_id] = 1;
294
        }
296
          if ($recursive_render_depth[$recursive_render_id] > 20) {
297
            watchdog(
298
              'file_entity',
299
              'Recursive rendering detected when rendering entity %entity_type: %entity_id, using the %field_name field. Aborting rendering.',
300
              array(
301
                '%entity_type' => 'file',
302
                '%entity_id' => $item['fid'],
303
                '%field_name' => $field['field_name'],
304
              ),
305
              WATCHDOG_ERROR
306
            );
307
            return $element;
308
          }
309

  
310
          $file = file_load($item['fid']);
311

  
312
          // Add some references to the referencing entity.
313
          // @see https://www.drupal.org/node/2333107
314
          $file->referencing_entity = $entity;
315
          $file->referencing_entity_type = $entity_type;
316
          $file->referencing_field = $field['field_name'];
295 317

  
296
        if ($recursive_render_depth[$recursive_render_id] > 20) {
318
          $element[$delta] = file_view($file, $settings['file_view_mode'], $langcode);
319
        } else {
297 320
          watchdog(
298 321
            'file_entity',
299
            'Recursive rendering detected when rendering entity %entity_type: %entity_id, using the %field_name field. Aborting rendering.',
322
            'In the %referencing_entity_type, the %field_name field refers to a %entity_type which does not exist. Aborting the render for it.',
300 323
            array(
301
              '%entity_type' => 'file',
302
              '%entity_id' => $item['fid'],
324
              '%referencing_entity_type' => $entity_type,
303 325
              '%field_name' => $field['field_name'],
326
              '%entity_type' => 'file',
304 327
            ),
305 328
            WATCHDOG_ERROR
306 329
          );
307
          return $element;
308 330
        }
309

  
310
        $file = (object) $item;
311

  
312
        // Add some references to the referencing entity.
313
        // @see https://www.drupal.org/node/2333107
314
        $file->referencing_entity = $entity;
315
        $file->referencing_entity_type = $entity_type;
316
        $file->referencing_field = $field['field_name'];
317

  
318
        $element[$delta] = file_view($file, $settings['file_view_mode'], $langcode);
319 331
      }
320 332
      break;
321 333

  
322 334
    case 'file_download_link':
335
      // Prevent 'empty' fields from causing a WSOD.
336
      $items = array_filter($items);
323 337
      foreach ($items as $delta => $item) {
324
        $file = (object) $item;
325
        if (file_entity_access('download', $file)) {
338
        if (!empty($item['fid']) && ($file = file_load($item['fid'])) && file_entity_access('download', $file)) {
326 339
          $element[$delta] = array(
327 340
            '#theme' => 'file_entity_download_link',
328 341
            '#file' => $file,
......
342 355
      $source_lists = array();
343 356
      if ($multiple_file_behavior == 'tags') {
344 357
        foreach ($items as $delta => $item) {
345
          if ($item['type'] == 'audio') {
358
          if (file_entity_file_get_mimetype_type($item) == 'audio') {
346 359
            $source_lists[$delta] = array($item);
347 360
          }
348 361
        }
349 362
      }
350 363
      else {
351 364
        foreach ($items as $delta => $item) {
352
          if ($item['type'] == 'audio') {
365
          if (file_entity_file_get_mimetype_type($item) == 'audio') {
353 366
            $source_lists[0][$delta] = $item;
354 367
          }
355 368
        }
......
378 391
      $source_lists = array();
379 392
      if ($multiple_file_behavior == 'tags') {
380 393
        foreach ($items as $delta => $item) {
381
          if ($item['type'] == 'video') {
394
          if (file_entity_file_get_mimetype_type($item) == 'video') {
382 395
            $source_lists[$delta] = array($item);
383 396
          }
384 397
        }
385 398
      }
386 399
      else {
387 400
        foreach ($items as $delta => $item) {
388
          if ($item['type'] == 'video') {
401
          if (file_entity_file_get_mimetype_type($item) == 'video') {
389 402
            $source_lists[0][$delta] = $item;
390 403
          }
391 404
        }

Formats disponibles : Unified diff