{{ page.h1 }}
+{{ page.lead }}
+{{ feature.title }}
+{{ feature.body }}
+پرسشهای متداول
+{{ item.q }}
+{{ item.a }}
+From 68b8b056304738fc5abeab38ebfeeab0bd7d18b4 Mon Sep 17 00:00:00 2001 From: hamed <15238-genius.ha@users.noreply.drupalcode.org> Date: Mon, 10 Aug 2026 14:38:27 +0330 Subject: [PATCH] feat: add landing page templates and registration modal - Implemented header and hero section in _header.html.twig and _hero_art.html.twig. - Created a pre-registration modal in _reg_modal.html.twig with form fields and validation. - Added page scripts for dynamic behavior and interaction in _page_scripts.html.twig. - Developed landing page structure in landing.html.twig, integrating header, footer, and modal. - Introduced tests for landing page rendering and registry validation in LandingPageTest.php and LandingRegistryTest.php. --- .claude/prompt/seo-landing-pages.md | 325 +++++++++++ config/packages/twig.yaml | 4 + docs/landing-pages.md | 69 +++ src/Shared/Controller/LandingController.php | 44 ++ src/Shared/Controller/SeoController.php | 27 +- src/Shared/Landing/LandingPage.php | 30 + src/Shared/Landing/LandingRegistry.php | 208 +++++++ templates/public/_footer.html.twig | 86 +++ templates/public/_header.html.twig | 27 + templates/public/_hero_art.html.twig | 80 +++ templates/public/_page_scripts.html.twig | 166 ++++++ templates/public/_reg_modal.html.twig | 240 ++++++++ templates/public/home.html.twig | 595 +------------------- templates/public/landing.html.twig | 146 +++++ tests/Shared/LandingPageTest.php | 132 +++++ tests/Shared/LandingRegistryTest.php | 93 +++ 16 files changed, 1676 insertions(+), 596 deletions(-) create mode 100644 .claude/prompt/seo-landing-pages.md create mode 100644 docs/landing-pages.md create mode 100644 src/Shared/Controller/LandingController.php create mode 100644 src/Shared/Landing/LandingPage.php create mode 100644 src/Shared/Landing/LandingRegistry.php create mode 100644 templates/public/_footer.html.twig create mode 100644 templates/public/_header.html.twig create mode 100644 templates/public/_hero_art.html.twig create mode 100644 templates/public/_page_scripts.html.twig create mode 100644 templates/public/_reg_modal.html.twig create mode 100644 templates/public/landing.html.twig create mode 100644 tests/Shared/LandingPageTest.php create mode 100644 tests/Shared/LandingRegistryTest.php diff --git a/.claude/prompt/seo-landing-pages.md b/.claude/prompt/seo-landing-pages.md new file mode 100644 index 00000000..ecff266f --- /dev/null +++ b/.claude/prompt/seo-landing-pages.md @@ -0,0 +1,325 @@ +# هفت لندینگپیج سئویی با تم صفحهٔ اصلی + +## زمینه + +سایت عمومی کلینیکپرو الان فقط یک صفحه دارد: `/` که با +`src/Shared/Controller/HomeController.php` رندر میشود و کل محتوایش در یک فایل +۹۹۳ خطی `templates/public/home.html.twig` هاردکد است — شامل `
` کامل، متای سئو، +JSON-LD، هدر، شش بخش محتوا، مودال ثبتنام و فوتر. + +`sitemap.xml` هم فقط همان یک URL را دارد +(`src/Shared/Controller/SeoController.php`). + +برای هفت کلیدواژهٔ تجاری، هفت صفحهٔ فرود جدا لازم است. هرکدام باید عنوان، توضیحات، +canonical، `h1` و متن مخصوص خودش را داشته باشد، ولی ظاهرش دقیقاً همان تم صفحهٔ اصلی +باشد. + +## مشکل / هدف + +هفت لندینگ با این کلیدواژهها: + +| کلیدواژه | آدرس | +|---|---| +| نرمافزار مدیریت کلینیک زیبایی | `/نرم-افزار-مدیریت-کلینیک-زیبایی` | +| نرمافزار مدیریت کلینیک دندانپزشکی | `/نرم-افزار-مدیریت-کلینیک-دندانپزشکی` | +| نرمافزار مدیریت کلینیک فیزیوتراپی | `/نرم-افزار-مدیریت-کلینیک-فیزیوتراپی` | +| سیستمهای جامع درمانگاهی | `/سیستم-جامع-درمانگاهی` | +| نرمافزار مجانی مدیریت کلینیک | `/نرم-افزار-رایگان-مدیریت-کلینیک` | +| نرمافزار مدیریت مطب | `/نرم-افزار-مدیریت-مطب` | +| CRM کلینیکها | `/crm-کلینیک` | + +**تصمیم معماری (تأییدشده):** یک قالب مشترک + رجیستری PHP. کپیکردن +`home.html.twig` هفت بار یعنی هر تغییر تم باید هشت بار تکرار شود و بعد از دو ماه هشت +نسخهٔ واگرا داریم. متن هر صفحه داده است، نه کد. + +## معیار پذیرش + +- ✅ موفق: `GET /نرم-افزار-مدیریت-کلینیک-زیبایی` → ۲۰۰ با `{{ page.lead }}
+{{ feature.body }}
+{{ item.a }}
+