Разработка кастомного шаблона Statamic (Antlers/Blade)

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Разработка кастомного шаблона Statamic (Antlers/Blade)
Средняя
~5 рабочих дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Разработка кастомного шаблона Statamic (Antlers/Blade)

Statamic поддерживает оба шаблонизатора: Antlers (собственный, рекомендуемый) и Blade (Laravel-стандарт). Выбор зависит от команды: Antlers — проще для контент-ориентированных шаблонов, Blade — знаком Laravel-разработчикам и поддерживает компоненты.

Antlers vs Blade

Antlers Blade
Синтаксис {{ collection:blog }} @foreach($blog as $item)
Переменные {{ title }} {{ $title }}
Теги Statamic Нативные Через фасады
Компоненты Partials Blade Components
Производительность Аналогичная Аналогичная

Antlers: структура шаблонов

{{# resources/views/layouts/app.antlers.html #}}
<!DOCTYPE html>
<html lang="{{ locale:language }}">
<head>
    <meta charset="utf-8">
    <title>
        {{ if meta_title }}{{ meta_title }} | {{ /if }}{{ site:name }}
    </title>
    <meta name="description" content="{{ meta_description ?? excerpt ?? '' | truncate:160 }}">
    {{ vite src="resources/js/app.js|resources/css/app.css" }}
</head>
<body>
    {{ partial:navigation :items="navigation:main" }}
    <main>{{ template_content }}</main>
    {{ partial:footer }}
</body>
</html>

Antlers: работа с данными

{{# Условия #}}
{{ if is_premium and (user:is_logged_in or not config:require_login) }}
    {{ content }}
{{ elseif user:is_logged_in }}
    <p>Upgrade to Premium</p>
{{ else }}
    <p>Please log in</p>
{{ /if }}

{{# Цикл с вложенными данными #}}
{{ collection:blog sort="date:desc" limit="6" }}
    {{ results }}
        <article>
            <h2>{{ title }}</h2>
            {{ categories }}
                <a href="{{ url }}">{{ title }}</a>{{ unless last }}, {{ /unless }}
            {{ /categories }}
            {{ date format="d.m.Y" }}
        </article>
    {{ /results }}
{{ /collection:blog }}

{{# Scope — изоляция данных #}}
{{ scope:post }}
    {{ collection:blog limit="1" }}
        {{ results }}
            {{ scope:category }}
                {{ categories }}
                    {{ title }}: {{ post:title }}
                {{ /categories }}
            {{ /scope:category }}
        {{ /results }}
    {{ /collection:blog }}
{{ /scope:post }}

Blade: шаблоны Statamic

{{-- resources/views/layouts/app.blade.php --}}
<!DOCTYPE html>
<html lang="{{ Statamic::tag('locale:language') }}">
<head>
    <title>{{ $page->get('meta_title') ?? $page->get('title') }} | {{ config('app.name') }}</title>
    @vite(['resources/css/app.css', 'resources/js/app.ts'])
</head>
<body>
    @include('partials.navigation')
    <main>@yield('content')</main>
    @include('partials.footer')
</body>
</html>
{{-- resources/views/blog/index.blade.php --}}
@extends('layouts.app')

@section('content')
<div class="blog-grid">
    @foreach($entries as $post)
        <x-post-card :post="$post" />
    @endforeach
</div>

{{ $paginator->links() }}
@endsection

Blade-компонент для поста:

{{-- resources/views/components/post-card.blade.php --}}
@props(['post'])
<article>
    @if($post->get('featured_image'))
        <img src="{{ Statamic::tag('glide')->src($post->get('featured_image'))->width(800)->height(400)->fit('crop')->fetch() }}"
             alt="{{ $post->get('title') }}">
    @endif
    <h2><a href="{{ $post->url() }}">{{ $post->get('title') }}</a></h2>
    <time>{{ $post->date()->format('d.m.Y') }}</time>
</article>

Partial с параметрами

{{# Вызов partial #}}
{{ partial:card
   title="{ title }"
   url="{ url }"
   image="{ featured_image }"
   show_excerpt="true"
}}

{{# resources/views/partials/card.antlers.html #}}
<article class="card {{ if show_excerpt }}card--with-excerpt{{ /if }}">
    {{ if image }}
        <img src="{{ image | glide:width=600:height=400:fit=crop }}" alt="{{ title }}">
    {{ /if }}
    <h3><a href="{{ url }}">{{ title }}</a></h3>
    {{ if show_excerpt && excerpt }}
        <p>{{ excerpt | truncate:120 }}</p>
    {{ /if }}
</article>

Навигация с деревом

{{ nav:main }}
    <ul>
    {{ tree }}
        <li class="{{ if page:is_current || page:is_parent }}active{{ /if }}">
            <a href="{{ url }}">{{ title }}</a>
            {{ if children }}
                <ul>
                {{ children }}
                    <li><a href="{{ url }}">{{ title }}</a></li>
                {{ /children }}
                </ul>
            {{ /if }}
        </li>
    {{ /tree }}
    </ul>
{{ /nav:main }}

Разработка набора шаблонов (layout, nav, footer, список, детальная, статические страницы) — 4–8 дней.