You are here

static function FlagUpdate_3::update in Flag 7.3

File

includes/flag.export.inc, line 338
Import/Export functionality provided by Flag module.

Class

FlagUpdate_3
Flag update class for API 2 flags -> API 3.

Code

static function update(&$flag) {

  // Change the content_type property to entity_type.
  if (isset($flag->content_type)) {
    $flag->entity_type = $flag->content_type;
    unset($flag->content_type);
  }

  // We can't convert the flag roles data to user permissions at this point
  // because the flag is disabled and hence hook_permission() doesn't see it
  // to define its permissions.
  // Instead, we copy it to import_roles, which the flag add form will handle
  // on new flags (which this flag will behave as when it is re-enabled).
  // @see flag_form()
  if (isset($flag->roles)) {
    $flag->import_roles = $flag->roles;
  }

  // Update show_on_teaser property to use new view mode settings.
  if (!empty($flag->show_on_teaser)) {
    $flag->show_in_links['teaser'] = TRUE;
    unset($flag->show_on_teaser);
  }

  // Update show_on_page property to use new view mode settings.
  if (!empty($flag->show_on_page)) {
    $flag->show_in_links['full'] = TRUE;
    unset($flag->show_on_page);
  }

  // Update show_on_comment and show_on_entity properties to use new view
  // mode settings. Since the old logic was to show on all view modes, do
  // that.
  if (!empty($flag->show_on_entity) || !empty($flag->show_on_comment)) {
    if ($entity_info = entity_get_info($flag->entity_type)) {
      foreach ($entity_info['view modes'] as $view_mode => $value) {
        $flag->show_in_links[$view_mode] = TRUE;
      }
    }
    unset($flag->show_on_entity, $flag->show_on_comment);
  }
}