new things and command

This commit is contained in:
Dan Chadwick 2024-04-11 13:00:41 -07:00
parent 38039ed04b
commit c075f78c85
6 changed files with 130 additions and 14 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,5 @@
services:
ufc.commands:
class: \Drupal\ufc\Commands\UfcCommands
tags:
- { name: drush.command }

View File

@ -0,0 +1,43 @@
<?php
namespace Drupal\ufc\Commands;
use Drupal\node\Entity\Node;
use Drush\Commands\DrushCommands;
class UfcCommands extends DrushCommands {
/**
* Update fights with their event date.
*
* @command ufc:update-fight-dates
* @aliases ufc-ufd
*/
public function updateFightDates() {
// Get all fights
// For each fight
// Go get event date.
// Add to new field
// Save.
$fights = \Drupal::entityTypeManager()->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);
}
}