diff --git a/app/components/FAQSection.vue b/app/components/FAQSection.vue
index 28711db..1ef1c1e 100644
--- a/app/components/FAQSection.vue
+++ b/app/components/FAQSection.vue
@@ -32,6 +32,10 @@ watchEffect(() => {
panel.value = faqs.value[0].id
}
})
+
+function selectPanel(section) {
+ panel.value = section
+}
\ No newline at end of file
diff --git a/app/components/VideoCustomerStory.vue b/app/components/VideoCustomerStory.vue
new file mode 100644
index 0000000..4d391f9
--- /dev/null
+++ b/app/components/VideoCustomerStory.vue
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/components/VideoTestimonial.vue b/app/components/VideoTestimonial.vue
new file mode 100644
index 0000000..f037270
--- /dev/null
+++ b/app/components/VideoTestimonial.vue
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/composables/useVideoCustomerStories.js b/app/composables/useVideoCustomerStories.js
new file mode 100644
index 0000000..2d45cd7
--- /dev/null
+++ b/app/composables/useVideoCustomerStories.js
@@ -0,0 +1,12 @@
+export function useVideoCustomerStories(locale) {
+ async function queryVideoCustomerStories() {
+ let res = await queryCollection('jsonPages')
+ .where('lang', '=', locale.value)
+ .where('pageType', '=', 'video_testimonials')
+ .all()
+
+ return res
+ }
+
+ return { queryVideoCustomerStories }
+}
diff --git a/app/composables/useVideoCustomerStory.js b/app/composables/useVideoCustomerStory.js
new file mode 100644
index 0000000..5bd5855
--- /dev/null
+++ b/app/composables/useVideoCustomerStory.js
@@ -0,0 +1,14 @@
+export function useVideoCustomerStory(slug, locale) {
+ async function queryVideoCustomerStory() {
+ let res = await queryCollection('jsonPages')
+ .where('lang', '=', locale.value)
+ .where('pageType', '=', 'video_testimonials')
+ .all()
+
+ res = res.filter(t => t.stem.split('/')[2] == slug.value)
+
+ return res[0]
+ }
+
+ return { queryVideoCustomerStory }
+}
diff --git a/app/composables/useVideoTestimonial.js b/app/composables/useVideoTestimonial.js
new file mode 100644
index 0000000..68dd853
--- /dev/null
+++ b/app/composables/useVideoTestimonial.js
@@ -0,0 +1,14 @@
+export function useVideoTestimonial(slug, locale) {
+ async function queryVideoTestimonial() {
+ let res = await queryCollection('jsonPages')
+ .where('lang', '=', locale.value)
+ .where('pageType', '=', 'video_testimonials')
+ .all()
+
+ res = res.filter(t => t.stem.split('/')[2] == slug.value)
+
+ return res[0]
+ }
+
+ return { queryVideoTestimonial }
+}
diff --git a/app/composables/useVideoTestimonials.js b/app/composables/useVideoTestimonials.js
new file mode 100644
index 0000000..526e326
--- /dev/null
+++ b/app/composables/useVideoTestimonials.js
@@ -0,0 +1,12 @@
+export function useVideoTestimonials(locale) {
+ async function queryVideoTestimonials() {
+ let res = await queryCollection('jsonPages')
+ .where('lang', '=', locale.value)
+ .where('pageType', '=', 'video_testimonials')
+ .all()
+
+ return res
+ }
+
+ return { queryVideoTestimonials }
+}
diff --git a/app/pages/customer-stories.vue b/app/pages/customer-stories.vue
index 62f0570..71a1c79 100644
--- a/app/pages/customer-stories.vue
+++ b/app/pages/customer-stories.vue
@@ -3,6 +3,9 @@
{{ page.meta.header.title }}
+
+
+
Advertisement
diff --git a/content.config.ts b/content.config.ts
index 2746a12..0bdc7b3 100644
--- a/content.config.ts
+++ b/content.config.ts
@@ -19,7 +19,9 @@ const COLLECTIONS = [
{ key: 'audiences' },
{ key: 'studios' },
{ key: 'testimonials' },
- { key: 'customer_stories' }
+ { key: 'customer_stories' },
+ { key: 'video_testimonials' },
+ { key: 'video_customer_stories' }
]
// Structural validation per pageType, enforced in getItem so a shape drift
diff --git a/content/en_pages.json b/content/en_pages.json
index 63a9ac6..4311b33 100644
--- a/content/en_pages.json
+++ b/content/en_pages.json
@@ -4018,5 +4018,45 @@
"quote": "I knew that if I brought in a new tool, I needed to address a need that hadn't been identified by the core team already in place. The main challenge right away was not to constrain them.",
"category": "Feature Films (2D)"
}
+ },
+ "video_testimonials": {
+ "wizz": {
+ "url": "https://www.youtube.com/embed/_cotJ52cfD8"
+ },
+ "miyu-1": {
+ "url": "https://www.youtube.com/embed/8yJVP2aI2gE"
+ },
+ "miyu-2": {
+ "url": "https://www.youtube.com/embed/6_2sJYksR9U"
+ },
+ "fees": {
+ "url": "https://www.youtube.com/embed/4mDWlwm6oU0"
+ },
+ "normaal": {
+ "url": "https://www.youtube.com/embed/3wWdfLDWBPM"
+ },
+ "remembers": {
+ "url": "https://www.youtube.com/embed/eBl-z8kdfSs"
+ }
+ },
+ "video_customer_stories": {
+ "wizz": {
+ "url": "https://www.youtube.com/embed/DLstftZIZ_s"
+ },
+ "miyu-1": {
+ "url": "https://www.youtube.com/embed/s784-XMgeLA"
+ },
+ "miyu-2": {
+ "url": "https://www.youtube.com/embed/qX8s9Wy_hnU"
+ },
+ "fees": {
+ "url": "https://www.youtube.com/embed/m4YqTqWusSs?si=GPvxX1pXrQHqtJM4&controls=0"
+ },
+ "normaal": {
+ "url": "https://www.youtube.com/embed/S3FDuitepJc"
+ },
+ "remembers": {
+ "url": "https://www.youtube.com/embed/W1q7AobU1lw"
+ }
}
-}
+}
\ No newline at end of file
diff --git a/content/fr_pages.json b/content/fr_pages.json
index a3e1e2f..7781c30 100644
--- a/content/fr_pages.json
+++ b/content/fr_pages.json
@@ -3977,5 +3977,45 @@
"quote": "Je savais que si j'introduisais un nouvel outil, je devais répondre à un besoin qui n'avait pas encore été identifié par l'équipe en place. Le principal défi dès le départ était de ne pas les contraindre.",
"category": "Longs métrages (2D)"
}
+ },
+ "video_testimonials": {
+ "wizz": {
+ "url": "https://www.youtube.com/embed/_cotJ52cfD8"
+ },
+ "miyu-1": {
+ "url": "https://www.youtube.com/embed/8yJVP2aI2gE"
+ },
+ "miyu-2": {
+ "url": "https://www.youtube.com/embed/6_2sJYksR9U"
+ },
+ "fees": {
+ "url": "https://www.youtube.com/embed/4mDWlwm6oU0"
+ },
+ "normaal": {
+ "url": "https://www.youtube.com/embed/3wWdfLDWBPM"
+ },
+ "remembers": {
+ "url": "https://www.youtube.com/embed/eBl-z8kdfSs"
+ }
+ },
+ "video_customer_stories": {
+ "wizz": {
+ "url": "https://www.youtube.com/embed/DLstftZIZ_s"
+ },
+ "miyu-1": {
+ "url": "https://www.youtube.com/embed/s784-XMgeLA"
+ },
+ "miyu-2": {
+ "url": "https://www.youtube.com/embed/qX8s9Wy_hnU"
+ },
+ "fees": {
+ "url": "https://www.youtube.com/embed/m4YqTqWusSs?si=GPvxX1pXrQHqtJM4&controls=0"
+ },
+ "normaal": {
+ "url": "https://www.youtube.com/embed/S3FDuitepJc"
+ },
+ "remembers": {
+ "url": "https://www.youtube.com/embed/W1q7AobU1lw"
+ }
}
}
diff --git a/content/ja_pages.json b/content/ja_pages.json
index 37e1c16..4884a02 100644
--- a/content/ja_pages.json
+++ b/content/ja_pages.json
@@ -3953,5 +3953,45 @@
"quote": "新しいツールを導入するなら、既存のチームがまだ気づいていないニーズに応えるものでなければならないと分かっていました。最初の課題は、チームを制約しないことでした。",
"category": "長編映画(2D)"
}
+ },
+ "video_testimonials": {
+ "wizz": {
+ "url": "https://www.youtube.com/embed/_cotJ52cfD8"
+ },
+ "miyu-1": {
+ "url": "https://www.youtube.com/embed/8yJVP2aI2gE"
+ },
+ "miyu-2": {
+ "url": "https://www.youtube.com/embed/6_2sJYksR9U"
+ },
+ "fees": {
+ "url": "https://www.youtube.com/embed/4mDWlwm6oU0"
+ },
+ "normaal": {
+ "url": "https://www.youtube.com/embed/3wWdfLDWBPM"
+ },
+ "remembers": {
+ "url": "https://www.youtube.com/embed/eBl-z8kdfSs"
+ }
+ },
+ "video_customer_stories": {
+ "wizz": {
+ "url": "https://www.youtube.com/embed/DLstftZIZ_s"
+ },
+ "miyu-1": {
+ "url": "https://www.youtube.com/embed/s784-XMgeLA"
+ },
+ "miyu-2": {
+ "url": "https://www.youtube.com/embed/qX8s9Wy_hnU"
+ },
+ "fees": {
+ "url": "https://www.youtube.com/embed/m4YqTqWusSs?si=GPvxX1pXrQHqtJM4&controls=0"
+ },
+ "normaal": {
+ "url": "https://www.youtube.com/embed/S3FDuitepJc"
+ },
+ "remembers": {
+ "url": "https://www.youtube.com/embed/W1q7AobU1lw"
+ }
}
}