diff --git a/config/default/core.entity_form_display.node.fight.default.yml b/config/default/core.entity_form_display.node.fight.default.yml index 30bb385..4273fed 100644 --- a/config/default/core.entity_form_display.node.fight.default.yml +++ b/config/default/core.entity_form_display.node.fight.default.yml @@ -6,6 +6,7 @@ dependencies: - field.field.node.fight.body - field.field.node.fight.field_accuracy - field.field.node.fight.field_event + - field.field.node.fight.field_fight_date - field.field.node.fight.field_fighter_one - field.field.node.fight.field_fighter_two - field.field.node.fight.field_prediction @@ -35,6 +36,12 @@ content: size: 60 placeholder: '' third_party_settings: { } + field_fight_date: + type: datetime_timestamp + weight: 29 + region: content + settings: { } + third_party_settings: { } field_fighter_one: type: entity_reference_autocomplete_tags weight: 2 @@ -89,3 +96,4 @@ hidden: status: true sticky: true uid: true + diff --git a/config/default/core.entity_view_display.node.fight.default.yml b/config/default/core.entity_view_display.node.fight.default.yml index bb0b4c9..19f6c63 100644 --- a/config/default/core.entity_view_display.node.fight.default.yml +++ b/config/default/core.entity_view_display.node.fight.default.yml @@ -6,6 +6,7 @@ dependencies: - field.field.node.fight.body - field.field.node.fight.field_accuracy - field.field.node.fight.field_event + - field.field.node.fight.field_fight_date - field.field.node.fight.field_fighter_one - field.field.node.fight.field_fighter_two - field.field.node.fight.field_prediction @@ -21,7 +22,7 @@ bundle: fight mode: default content: field_accuracy: - weight: 8 + type: number_decimal label: above settings: thousand_separator: '' @@ -29,54 +30,74 @@ content: scale: 2 prefix_suffix: true third_party_settings: { } - type: number_decimal + weight: 8 region: content field_event: - weight: 1 + type: entity_reference_label label: hidden settings: link: true third_party_settings: { } - type: entity_reference_label + weight: 1 + region: content + field_fight_date: + type: timestamp + label: above + settings: + date_format: medium + custom_date_format: '' + timezone: '' + tooltip: + date_format: long + custom_date_format: '' + time_diff: + enabled: false + future_format: '@interval hence' + past_format: '@interval ago' + granularity: 2 + refresh: 60 + third_party_settings: { } + weight: 9 region: content field_fighter_one: - weight: 2 + type: entity_reference_entity_view label: hidden settings: view_mode: teaser link: false third_party_settings: { } - type: entity_reference_entity_view + weight: 2 region: content field_fighter_two: - weight: 3 + type: entity_reference_entity_view label: hidden settings: view_mode: teaser link: false third_party_settings: { } - type: entity_reference_entity_view + weight: 3 region: content field_prediction: - weight: 6 + type: string label: above settings: link_to_entity: false third_party_settings: { } - type: string + weight: 6 region: content field_result: - weight: 5 + type: entity_reference_label label: hidden settings: link: true third_party_settings: { } - type: entity_reference_label + weight: 5 region: content links: - weight: 0 - region: content settings: { } third_party_settings: { } + weight: 0 + region: content hidden: body: true + diff --git a/config/default/field.field.node.fight.field_fight_date.yml b/config/default/field.field.node.fight.field_fight_date.yml new file mode 100644 index 0000000..d8af70e --- /dev/null +++ b/config/default/field.field.node.fight.field_fight_date.yml @@ -0,0 +1,20 @@ +uuid: 7357cd39-f97c-4f35-9c71-8bb4c5232045 +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_fight_date + - node.type.fight +id: node.fight.field_fight_date +field_name: field_fight_date +entity_type: node +bundle: fight +label: 'Fight Date' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: timestamp + diff --git a/config/default/field.storage.node.field_fight_date.yml b/config/default/field.storage.node.field_fight_date.yml new file mode 100644 index 0000000..1d887a5 --- /dev/null +++ b/config/default/field.storage.node.field_fight_date.yml @@ -0,0 +1,19 @@ +uuid: 08df81a1-8bd2-45d3-9db9-cc7d6e482fcc +langcode: en +status: true +dependencies: + module: + - node +id: node.field_fight_date +field_name: field_fight_date +entity_type: node +type: timestamp +settings: { } +module: core +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false + diff --git a/web/modules/custom/ufc/drush.services.yml b/web/modules/custom/ufc/drush.services.yml new file mode 100644 index 0000000..71e906c --- /dev/null +++ b/web/modules/custom/ufc/drush.services.yml @@ -0,0 +1,5 @@ +services: + ufc.commands: + class: \Drupal\ufc\Commands\UfcCommands + tags: + - { name: drush.command } diff --git a/web/modules/custom/ufc/src/Commands/UfcCommands.php b/web/modules/custom/ufc/src/Commands/UfcCommands.php new file mode 100644 index 0000000..6d87c5d --- /dev/null +++ b/web/modules/custom/ufc/src/Commands/UfcCommands.php @@ -0,0 +1,43 @@ +getStorage('node')->loadByProperties(['type' => 'fight']); + foreach ($fights as $fight) { + $fight->field_fight_date = $this->getEventDateTimestampFromFight($fight); + if ($fight->save()) { + $this->output->writeln($fight->title->value . " updated successfully."); + } + else { + $this->output->writeln($fight->title->value . " failed."); + } + } + } + + + private function getEventDateTimestampFromFight(Node $fight_node) { + // Get field value. + $event_date_value = $fight_node->field_event->entity->field_event_date->value; + assert($event_date_value, !null); + + return strtotime($event_date_value); + } + +}