156 lines
5.8 KiB
Twig
156 lines
5.8 KiB
Twig
{# قالب مشترک صفحات فرود. تم دقیقاً همان صفحهٔ اصلی است — همان entry وبپک، همان هدر و
|
|
فوتر و مودال. فقط متن و متادیتا از LandingPage میآید. #}
|
|
{% set base = app.request.schemeAndHttpHost %}
|
|
{% set url = base ~ '/' ~ page.slug %}
|
|
<!DOCTYPE html>
|
|
<html lang="fa" dir="rtl">
|
|
<head>
|
|
<meta charset="UTF-8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
|
<title>{{ page.metaTitle }}</title>
|
|
<link rel="icon" type="image/svg+xml" href="/logo.svg"/>
|
|
<link rel="apple-touch-icon" href="/logo.svg"/>
|
|
<meta name="description" content="{{ page.metaDescription }}"/>
|
|
<meta name="keywords" content="{{ page.keywords }}"/>
|
|
<link rel="canonical" href="{{ url }}"/>
|
|
<meta name="robots" content="index, follow, max-image-preview:large"/>
|
|
|
|
<meta property="og:type" content="website"/>
|
|
<meta property="og:site_name" content="کلینیک پرو"/>
|
|
<meta property="og:title" content="{{ page.metaTitle }}"/>
|
|
<meta property="og:description" content="{{ page.metaDescription }}"/>
|
|
<meta property="og:url" content="{{ url }}"/>
|
|
<meta property="og:image" content="{{ base }}/logo.svg"/>
|
|
<meta property="og:locale" content="fa_IR"/>
|
|
|
|
<meta name="twitter:card" content="summary_large_image"/>
|
|
<meta name="twitter:title" content="{{ page.metaTitle }}"/>
|
|
<meta name="twitter:description" content="{{ page.metaDescription }}"/>
|
|
<meta name="twitter:image" content="{{ base }}/logo.svg"/>
|
|
|
|
{# JSON-LD با json_encode ساخته میشود نه رشتهٔ دستی: متن فارسی نقلقول و کاراکتر
|
|
کنترلی دارد و JSONِ دستساز در Twig خیلی راحت نامعتبر میشود. #}
|
|
<script type="application/ld+json">
|
|
{{ {
|
|
'@context': 'https://schema.org',
|
|
'@graph': [
|
|
{
|
|
'@type': 'SoftwareApplication',
|
|
'@id': url ~ '#software',
|
|
'name': page.h1,
|
|
'applicationCategory': 'BusinessApplication',
|
|
'operatingSystem': 'Web',
|
|
'url': url,
|
|
'description': page.metaDescription,
|
|
'inLanguage': 'fa-IR',
|
|
'offers': {
|
|
'@type': 'Offer',
|
|
'price': '0',
|
|
'priceCurrency': 'IRR',
|
|
'description': 'پلن رایگان برای شروع'
|
|
},
|
|
'publisher': { '@type': 'Organization', 'name': 'کلینیک پرو', 'url': base ~ '/' }
|
|
},
|
|
{
|
|
'@type': 'BreadcrumbList',
|
|
'@id': url ~ '#breadcrumb',
|
|
'itemListElement': [
|
|
{ '@type': 'ListItem', 'position': 1, 'name': 'کلینیک پرو', 'item': base ~ '/' },
|
|
{ '@type': 'ListItem', 'position': 2, 'name': page.h1, 'item': url }
|
|
]
|
|
}
|
|
]|merge(page.faq is not empty ? [{
|
|
'@type': 'FAQPage',
|
|
'@id': url ~ '#faq',
|
|
'mainEntity': page.faq|map(item => {
|
|
'@type': 'Question',
|
|
'name': item.q,
|
|
'acceptedAnswer': { '@type': 'Answer', 'text': item.a }
|
|
})
|
|
}] : [])
|
|
}|json_encode(constant('JSON_UNESCAPED_UNICODE') b-or constant('JSON_UNESCAPED_SLASHES'))|raw }}
|
|
</script>
|
|
|
|
{{ encore_entry_link_tags('home') }}
|
|
</head>
|
|
|
|
<body>
|
|
{{ include('public/_header.html.twig') }}
|
|
|
|
<main>
|
|
<section class="hero" id="hero">
|
|
<div class="wrap hero-grid">
|
|
<div class="hero-copy">
|
|
<h1 class="reveal">{{ page.h1 }}</h1>
|
|
<p class="reveal d1">{{ page.lead }}</p>
|
|
<div class="hero-actions reveal d2">
|
|
{# همان idهایی که اسکریپت مودال به آنها bind میشود. #}
|
|
<button class="btn btn-coral" id="openRegModal2">رایگان شروع کنید</button>
|
|
<a href="#contact" class="btn btn-blue">درخواست دمو</a>
|
|
</div>
|
|
</div>
|
|
{{ include('public/_hero_art.html.twig') }}
|
|
</div>
|
|
</section>
|
|
|
|
<section class="fcols" id="features">
|
|
<div class="wrap fcols-grid">
|
|
{% for feature in page.features %}
|
|
<div class="fcol reveal{% if loop.index0 % 3 == 1 %} d1{% elseif loop.index0 % 3 == 2 %} d2{% endif %}">
|
|
<h3>{{ feature.title }}</h3>
|
|
<p>{{ feature.body }}</p>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</section>
|
|
|
|
{% if page.faq is not empty %}
|
|
{# specs-head عنوان را وسط و با فاصلهٔ درست مینشاند؛ h2 لخت داخل گرید
|
|
میافتد و به کارت اول میچسبد. #}
|
|
<section class="specs" id="faq">
|
|
<div class="wrap">
|
|
<div class="specs-head reveal">
|
|
<span class="eyebrow">پرسشهای متداول</span>
|
|
<h2>{{ page.h1 }} — آنچه بیشتر پرسیده میشود</h2>
|
|
</div>
|
|
<div class="fcols-grid">
|
|
{% for item in page.faq %}
|
|
<div class="fcol reveal">
|
|
<h3>{{ item.q }}</h3>
|
|
<p>{{ item.a }}</p>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
</section>
|
|
{% endif %}
|
|
|
|
{% if related is not empty %}
|
|
<section class="specs" id="related">
|
|
<div class="wrap">
|
|
<div class="specs-head reveal">
|
|
<span class="eyebrow">راهکارهای دیگر</span>
|
|
<h2>کلینیک پرو برای صنف شما</h2>
|
|
<p>هر مجموعه نیاز خودش را دارد؛ نسخهٔ متناسب با کار خود را ببینید.</p>
|
|
</div>
|
|
<div class="specs-grid">
|
|
{% for item in related %}
|
|
<a class="spec-card reveal" href="/{{ item.slug }}" style="text-decoration:none;color:inherit;display:block">
|
|
<h3>{{ item.h1 }}</h3>
|
|
<p style="font-size:13.5px;color:var(--muted);line-height:1.9;margin-top:12px">{{ item.metaDescription }}</p>
|
|
</a>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
</section>
|
|
{% endif %}
|
|
|
|
{{ include('public/_reg_modal.html.twig') }}
|
|
</main>
|
|
|
|
{{ include('public/_footer.html.twig') }}
|
|
{{ include('public/_page_scripts.html.twig') }}
|
|
{{ encore_entry_script_tags('home') }}
|
|
</body>
|
|
</html>
|