Add CTAs to daily emails

Add a daily email CTA node type and reference field to attach a CTA to a
daily email.

Also update the RSS feed view to include the referenced body field
value.
This commit is contained in:
Oliver Davies 2025-06-13 11:14:11 +01:00
parent 76868079ac
commit 2d55ea78f1
24 changed files with 1058 additions and 3 deletions

View file

@ -6438,5 +6438,23 @@
],
"path_alias.b9c6a52b-65d7-4122-b132-7b51164a8203": [
"node.0d970bea-36e2-4f0c-b448-4be60af220ef"
],
"node.3074e1e9-c691-4f73-a71c-cfe5920f884e": [
"user.b8966985-d4b2-42a7-a319-2e94ccfbb849"
],
"node.9b4c39a3-702f-486c-a79b-4d7b96a4f3f6": [
"user.b8966985-d4b2-42a7-a319-2e94ccfbb849"
],
"node.20cde1b4-efdc-46a4-a6a4-4fd2264f617e": [
"user.b8966985-d4b2-42a7-a319-2e94ccfbb849"
],
"node.2a6bc8bd-a1e0-4f62-8112-47c3107020c5": [
"user.b8966985-d4b2-42a7-a319-2e94ccfbb849"
],
"node.e3f6c728-7855-4804-8614-e2a0c08c368f": [
"user.b8966985-d4b2-42a7-a319-2e94ccfbb849"
],
"node.c74de3cf-5362-4d08-935a-a9d0d22fcb94": [
"user.b8966985-d4b2-42a7-a319-2e94ccfbb849"
]
}

View file

@ -0,0 +1,92 @@
{
"uuid": [
{
"value": "20cde1b4-efdc-46a4-a6a4-4fd2264f617e"
}
],
"langcode": [
{
"value": "en"
}
],
"type": [
{
"target_id": "daily_email_cta",
"target_type": "node_type",
"target_uuid": "aafaaf8f-2670-4202-bc20-2bc31312859b"
}
],
"revision_timestamp": [
{
"value": "2025-06-13T22:11:07+00:00"
}
],
"revision_uid": [
{
"target_type": "user",
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
}
],
"revision_log": [],
"status": [
{
"value": true
}
],
"uid": [
{
"target_type": "user",
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
}
],
"title": [
{
"value": "Open source sponsorship"
}
],
"created": [
{
"value": "2025-06-13T22:10:36+00:00"
}
],
"changed": [
{
"value": "2025-06-13T22:11:07+00:00"
}
],
"promote": [
{
"value": false
}
],
"sticky": [
{
"value": false
}
],
"default_langcode": [
{
"value": true
}
],
"revision_translation_affected": [
{
"value": true
}
],
"path": [
{
"alias": "",
"pid": null,
"langcode": "en"
}
],
"body": [
{
"value": "<p>P.S. Do you want to contribute more to open source but don't have the time? <a href=\"\/sponsor\">Sponsor me to do it for you<\/a>!<\/p>",
"format": "basic_html",
"processed": "<p>P.S. Do you want to contribute more to open source but don't have the time? <a href=\"http:\/\/localhost:8888\/sponsor\">Sponsor me to do it for you<\/a>!<\/p>",
"summary": ""
}
]
}

View file

@ -0,0 +1,92 @@
{
"uuid": [
{
"value": "2a6bc8bd-a1e0-4f62-8112-47c3107020c5"
}
],
"langcode": [
{
"value": "en"
}
],
"type": [
{
"target_id": "daily_email_cta",
"target_type": "node_type",
"target_uuid": "aafaaf8f-2670-4202-bc20-2bc31312859b"
}
],
"revision_timestamp": [
{
"value": "2025-06-13T23:03:11+00:00"
}
],
"revision_uid": [
{
"target_type": "user",
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
}
],
"revision_log": [],
"status": [
{
"value": true
}
],
"uid": [
{
"target_type": "user",
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
}
],
"title": [
{
"value": "Subscription"
}
],
"created": [
{
"value": "2025-06-13T23:02:52+00:00"
}
],
"changed": [
{
"value": "2025-06-13T23:03:11+00:00"
}
],
"promote": [
{
"value": false
}
],
"sticky": [
{
"value": false
}
],
"default_langcode": [
{
"value": true
}
],
"revision_translation_affected": [
{
"value": true
}
],
"path": [
{
"alias": "",
"pid": null,
"langcode": "en"
}
],
"body": [
{
"value": "<p>Do you need immediate access to an expert Drupal Developer? With my <a href=\"\/subscription\">Drupal development subscription<\/a>, make unlimited requests for a fixed monthly price in less time than posting to a job board!<\/p>",
"format": "basic_html",
"processed": "<p>Do you need immediate access to an expert Drupal Developer? With my <a href=\"http:\/\/localhost:8888\/subscription\">Drupal development subscription<\/a>, make unlimited requests for a fixed monthly price in less time than posting to a job board!<\/p>",
"summary": ""
}
]
}

View file

@ -0,0 +1,92 @@
{
"uuid": [
{
"value": "3074e1e9-c691-4f73-a71c-cfe5920f884e"
}
],
"langcode": [
{
"value": "en"
}
],
"type": [
{
"target_id": "daily_email_cta",
"target_type": "node_type",
"target_uuid": "aafaaf8f-2670-4202-bc20-2bc31312859b"
}
],
"revision_timestamp": [
{
"value": "2025-06-13T22:10:23+00:00"
}
],
"revision_uid": [
{
"target_type": "user",
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
}
],
"revision_log": [],
"status": [
{
"value": true
}
],
"uid": [
{
"target_type": "user",
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
}
],
"title": [
{
"value": "Call"
}
],
"created": [
{
"value": "2025-06-13T22:07:32+00:00"
}
],
"changed": [
{
"value": "2025-06-13T22:10:23+00:00"
}
],
"promote": [
{
"value": false
}
],
"sticky": [
{
"value": false
}
],
"default_langcode": [
{
"value": true
}
],
"revision_translation_affected": [
{
"value": true
}
],
"path": [
{
"alias": "",
"pid": null,
"langcode": "en"
}
],
"body": [
{
"value": "<p>P.S. Are you still using Drupal 7 and don\u2019t know what\u2019s involved to upgrade to Drupal 10? <a href=\"\/call\">Book a Drupal 7 upgrade consultation call<\/a> or <a href=\"\/drupal-upgrade\">an upgrade roadmap<\/a>.<\/p>",
"format": "basic_html",
"processed": "<p>P.S. Are you still using Drupal 7 and don\u2019t know what\u2019s involved to upgrade to Drupal 10? <a href=\"http:\/\/localhost:8888\/call\">Book a Drupal 7 upgrade consultation call<\/a> or <a href=\"http:\/\/localhost:8888\/drupal-upgrade\">an upgrade roadmap<\/a>.<\/p>",
"summary": ""
}
]
}

View file

@ -0,0 +1,92 @@
{
"uuid": [
{
"value": "9b4c39a3-702f-486c-a79b-4d7b96a4f3f6"
}
],
"langcode": [
{
"value": "en"
}
],
"type": [
{
"target_id": "daily_email_cta",
"target_type": "node_type",
"target_uuid": "aafaaf8f-2670-4202-bc20-2bc31312859b"
}
],
"revision_timestamp": [
{
"value": "2025-06-13T22:09:58+00:00"
}
],
"revision_uid": [
{
"target_type": "user",
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
}
],
"revision_log": [],
"status": [
{
"value": true
}
],
"uid": [
{
"target_type": "user",
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
}
],
"title": [
{
"value": "Drupal 7 EOL"
}
],
"created": [
{
"value": "2025-06-13T22:08:54+00:00"
}
],
"changed": [
{
"value": "2025-06-13T22:09:58+00:00"
}
],
"promote": [
{
"value": false
}
],
"sticky": [
{
"value": false
}
],
"default_langcode": [
{
"value": true
}
],
"revision_translation_affected": [
{
"value": true
}
],
"path": [
{
"alias": "",
"pid": null,
"langcode": "en"
}
],
"body": [
{
"value": "<p>P.S. Are you stuck on Drupal 7? <a href=\"\/drupal-upgrade\">Plan your upgrade to Drupal 10 now!<\/a><\/p>",
"format": "basic_html",
"processed": "<p>P.S. Are you stuck on Drupal 7? <a href=\"http:\/\/localhost:8888\/drupal-upgrade\">Plan your upgrade to Drupal 10 now!<\/a><\/p>",
"summary": ""
}
]
}

View file

@ -0,0 +1,92 @@
{
"uuid": [
{
"value": "c74de3cf-5362-4d08-935a-a9d0d22fcb94"
}
],
"langcode": [
{
"value": "en"
}
],
"type": [
{
"target_id": "daily_email_cta",
"target_type": "node_type",
"target_uuid": "aafaaf8f-2670-4202-bc20-2bc31312859b"
}
],
"revision_timestamp": [
{
"value": "2025-06-13T23:04:29+00:00"
}
],
"revision_uid": [
{
"target_type": "user",
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
}
],
"revision_log": [],
"status": [
{
"value": true
}
],
"uid": [
{
"target_type": "user",
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
}
],
"title": [
{
"value": "Pair programming"
}
],
"created": [
{
"value": "2025-06-13T23:04:05+00:00"
}
],
"changed": [
{
"value": "2025-06-13T23:04:29+00:00"
}
],
"promote": [
{
"value": false
}
],
"sticky": [
{
"value": false
}
],
"default_langcode": [
{
"value": true
}
],
"revision_translation_affected": [
{
"value": true
}
],
"path": [
{
"alias": "",
"pid": null,
"langcode": "en"
}
],
"body": [
{
"value": "<p>Need help or want another pair of eyes on your code? Book a <a href=\"\/call\">1-on-1 consulting call<\/a> or an <a href=\"\/pair\">online pair programming session<\/a> with a 100% money-back guarantee.,<\/p>",
"format": "basic_html",
"processed": "<p>Need help or want another pair of eyes on your code? Book a <a href=\"http:\/\/localhost:8888\/call\">1-on-1 consulting call<\/a> or an <a href=\"http:\/\/localhost:8888\/pair\">online pair programming session<\/a> with a 100% money-back guarantee.,<\/p>",
"summary": ""
}
]
}

View file

@ -0,0 +1,92 @@
{
"uuid": [
{
"value": "e3f6c728-7855-4804-8614-e2a0c08c368f"
}
],
"langcode": [
{
"value": "en"
}
],
"type": [
{
"target_id": "daily_email_cta",
"target_type": "node_type",
"target_uuid": "aafaaf8f-2670-4202-bc20-2bc31312859b"
}
],
"revision_timestamp": [
{
"value": "2025-06-13T23:03:45+00:00"
}
],
"revision_uid": [
{
"target_type": "user",
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
}
],
"revision_log": [],
"status": [
{
"value": true
}
],
"uid": [
{
"target_type": "user",
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
}
],
"title": [
{
"value": "Drupal testing course"
}
],
"created": [
{
"value": "2025-06-13T23:03:26+00:00"
}
],
"changed": [
{
"value": "2025-06-13T23:03:45+00:00"
}
],
"promote": [
{
"value": false
}
],
"sticky": [
{
"value": false
}
],
"default_langcode": [
{
"value": true
}
],
"revision_translation_affected": [
{
"value": true
}
],
"path": [
{
"alias": "",
"pid": null,
"langcode": "en"
}
],
"body": [
{
"value": "<p>Do you want to learn about automated testing in Drupal? Take my <a href=\"\/atdc\">free 10-day email course<\/a> and get daily lessons straight to your inbox.<\/p>",
"format": "basic_html",
"processed": "<p>Do you want to learn about automated testing in Drupal? Take my <a href=\"http:\/\/localhost:8888\/atdc\">free 10-day email course<\/a> and get daily lessons straight to your inbox.<\/p>",
"summary": ""
}
]
}