diff --git a/src/components/Testimonials.astro b/src/components/Testimonials.astro index c681e6b8f..905f9e3b2 100644 --- a/src/components/Testimonials.astro +++ b/src/components/Testimonials.astro @@ -1,5 +1,5 @@ --- -import { getCollection, getEntries, getEntry } from 'astro:content'; +import { getCollection } from 'astro:content'; import _ from "lodash"; interface Props { @@ -8,23 +8,26 @@ interface Props { const names = _(Astro.props.names); const testimonials = await getCollection('testimonial', ({ id }) => names.includes(id)); -const reversedTestimonials = _(testimonials).reverse() +const sortedTestimonials = _(testimonials) + .sort((a, b) => new Date(a.date) < new Date(b.date)) + .reverse() + .value(); --- {testimonials && (

What others have said

- {reversedTestimonials.map(testimonial => ( + {_(sortedTestimonials).map(({ data: { image, name, tagline, text } }) => (
-
+
- {testimonial.data.name} - {testimonial.data.tagline} + {name}{tagline && (<> - {tagline})} - {testimonial.data.image && ( + {image && ( - + )}
diff --git a/src/content/config.ts b/src/content/config.ts index 7e42be391..82637f0e5 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -53,9 +53,10 @@ const talkCollection = defineCollection({ const testimonialCollection = defineCollection({ type: 'data', schema: z.object({ + date: z.string().optional(), image: z.string().or(z.null()), name: z.string(), - tagline: z.string(), + tagline: z.string().or(z.null()), text: z.string(), url: z.string().or(z.null()), }), diff --git a/src/content/testimonial/michael-itkoff2.json b/src/content/testimonial/michael-itkoff2.json new file mode 100644 index 000000000..db492d427 --- /dev/null +++ b/src/content/testimonial/michael-itkoff2.json @@ -0,0 +1,8 @@ +{ + "name": "Michael Itkoff", + "tagline": "Cofounder", + "url": "https://www.daylightbooks.org", + "text": "

Ollie handled the tech support issues efficiently and effectively, leaving time at the end for further troubleshooting and follow up. Much appreciated!

", + "image": "", + "date": "2023-07-13" +} diff --git a/src/content/testimonial/tom-evans.json b/src/content/testimonial/tom-evans.json new file mode 100644 index 000000000..d2ac193d2 --- /dev/null +++ b/src/content/testimonial/tom-evans.json @@ -0,0 +1,9 @@ + +{ + "name": "Tom Evans", + "tagline": null, + "text": "

I had the opportunity and good fortune to work with Oliver solving two problems that I was having on a Drupal Commerce site. I have done several Drupal sites using UberCart, but since it is deprecated, I chose to use Commerce. I had searched, posted to forums, and other normal means to find answers to my problems, to no response and to no avail.

I got a referral to Oliver and scheduled an appointment to discuss the problems on a Zoom call. After showing him via screen share where I was stumped, he offered different approaches to what I was doing, which I was fine with as long as it worked.

Once we solved the first problem, I was really elated and then focused on the second one, which was an easier fix. So in a short period of time, both problems were fixed and tested.

I found Oliver was affable and easy to work with. He has a strong work ethic and a desire to solve problems for his customers and can recommend working with him. I think one of his strengths is to find alternative solutions to problems.

", + "image": null, + "url": null, + "date": "2023-07-14" +} diff --git a/src/pages/call.mdx b/src/pages/call.mdx index 0ef026651..b7b50d71d 100644 --- a/src/pages/call.mdx +++ b/src/pages/call.mdx @@ -2,13 +2,10 @@ layout: ~/layouts/PageLayout.astro title: Book a 1-on-1 consulting call link: https://savvycal.com/opdavies/consulting-call -price: 350 +price: £350 testimonials: - - anonymous - - mick-felton - - michael-itkoff - - huw-davies - - scott-euser + - michael-itkoff2 + - tom-evans --- import Button from "~/components/Button.astro"; @@ -20,21 +17,34 @@ import { numberOfYears } from '~/utils'; ## Who is this for? */} -## What I can help you with +As a professional Software Developer and Consultant with over {numberOfYears} years of Drupal and PHP experience, I have a lot of knowledge that I use to help customers and their projects. + +## Some things I can help you with - How to approach a new project or task. -- Writing your first automated tests or starting with test-driven development. +- PHP and Drupal fundamentals and best practices. +- Adding eCommerce functionality with Drupal Commerce. +- Upgrading Drupal websites from unsupported versions. +- Writing your first automated tests with PHPUnit or starting with test-driven development. - Introducing static analysis or other code quality tools to your project. +- Adopting a utility-first CSS approach, e.g. Tailwind CSS, within a new or existing theme. +- Configuring continuous integration (CI) pipelines with GitHub Actions, GitLab CI or Bitbucket Pipelines. - Automating tasks with Docker or Ansible. -- Help to fix a bug or some broken code. +- Help fixing a bug or some broken code. - Reviewing your code and providing advice and suggestions. In this 1-on-1 video call, I can help you answer questions in these areas or any others you may have. -Price: £{frontmatter.price} +Price: {frontmatter.price}