Есть страница новостей url = "/articles" layout = "default" Можно ли в самом

шаблоне default.htm
вставить в нужном месте
{% placeholder breadcrumb %}

и тут же.. (в самом низу) подключить breadcrumb ?
{% put breadcrumb %}
{% if this.page.id != 'frontpage' %}
{% partial 'breadcrumbs'%}
{% endif %}
{% endput %}

Просто сейчас на странице articles не подключилась навигация. Это нужно для того, чтоб не подключать на каждой странице {% put breadcrumb %}
Также чтоб уменьшить кол-во запросов на страницу.

29 ответов

14 просмотров

{% placeholder breadcrumbs default %} Все что тут будет отображено по умолчанию на всех страницах {% endplaceholder %}

Но я бы честно сказать сделал это через партиал. {% if links is not empty %} <div class="breadcrumbs"> <div class="breadcrumbs__links"> <a href="/" class="breadcrumbs__links-item">Главная</a> {% for link in links %} <a href="{{ url }}" class="breadcrumbs__links-item {{ (loop.last) ? '—active' }}">{{ name }}</a> {% endfor %} </div> </div> {% endif %} {% partial 'layout/breadcrumbs' links=[{ name: 'Блог', url: 'blog/posts' | page }, { name: 'Как накачать бицуху как сталоне' } ] %}

Lugovskoy-Dmitriy Автор вопроса
Black Cat
{% placeholder breadcrumbs default %} Все что тут ...

+ Не знаю, правильно ли вообще так писать в самом макете default? Но по крайней мере работает {# Хлебные крошки #} {% put breadcrumb %} {% if this.page.id != 'frontpage' %} {% partial 'breadcrumbs'%} {% endif %} {% endput %} {% placeholder breadcrumb %}

Lugovskoy-Dmitriy Автор вопроса
Black Cat
{% placeholder breadcrumbs default %} Все что тут ...

В начале в общем и размещал через partial, но сказали, что надо теперь через put это сделать. Не вижу в принципе разницу, каким боком это уменьшит запросы на страницах, тоже не понятно.

Lugovskoy Dmitriy
В начале в общем и размещал через partial, но сказ...

Я как то слышал от одного человека года 2 назад. Что ни в коем случае нельзя все дробить на кусочки (фрагменты, партиалы и тд). Ведь бедный php это же инклюдит, а это тратил столько то времени. Но собеседник не учитывает наличие ssd почти в любой железяке и тот факт, что шаблоны кешируются блять) Так что не совсем понятно что имелось ввиду под запросами в твоем случае. Ты данные по сути берешь из файла, фактически это статика. Если бы крошки брались из бд то был бы запрос. Но я пока не видел таких крошек))

Black Cat
Я как то слышал от одного человека года 2 назад. Ч...

Ну не дробить на кусочки лучше из других соображений. Дробить надо так, чтобы следовать DRY в идеале, не все и вся по желанию. Вдобавок не стоит дробить на input’ы.. так как есть form_* методы в твиг, для реализации инпутов разных типов.

А что там такого, что через метод не добавить? Те же аттрибуты, те же данные. Все добавляется

Black Cat
Там например x-model, x-init, @click.prevent и тд

{{ form_text('example', null, {'x-model': 'model'}) }}

Vladimir 
{{ form_text('example', null, {'x-model': 'model'}...

Владимир всегда в поиске истины)) На самом деле поля с того же альпайна даже через партиал неудобно вызывать. Бывает что надо ебануть лапшу js кода, например в alpine v2 не была доступна this.$el в биндах. Это очень огорчало. Приходилось делать так: <input type="text" name="penis_height" value="{{ penis_height }}" x-init="fields.penis_height = {{ penis_height }}"> В целом такую констуктевину можно сунуть в partial и передавать нужные атрибуты Можно и через форм хелпер вызвать, но в таком случае для каждого вызова придется написать это: x-init="fields.penis_height = {{ penis_height }}"

Black Cat
Владимир всегда в поиске истины)) На самом деле п...

Лапша js кода? Возможно стоит пересмотреть структурирвоание ?

Vladimir 
Лапша js кода? Возможно стоит пересмотреть структу...

Нет именно присвоить модели значение нельзя было в отдельном компоненте в alpine v2 Сейчас уже 3 версия и там можно ебануть прям в компоненте более элегантно: bindField: { let value = this.$el.value, model = this.$el.getAttribute('name'); this.fields[model] = value; } <input name="penis_height" type="text" x-bind="bindField" value="{{ penis_height }}">

Black Cat
Нет именно присвоить модели значение нельзя было в...

Все-равно не понимаю проблемы инструмента. FormBuilder лишь абстракция над типовым html форм. Альпин спокойно дружит и 2, и 3 версии. Лапшу пока не приходилось делать.

Vladimir 
Все-равно не понимаю проблемы инструмента. FormBui...

А по поводу лапши зависит от задачи. Если делать на каждый чих компонент, то все будет красиво и славно. Правда кода вагон писать. Если нужно универсально Аля cms, crm когда однотипные листинги и формы, тут немного иначе.

Black Cat
А по поводу лапши зависит от задачи. Если делать ...

не всегда... видел я проект, где было куча компонентов... ух жесть

не знаю, cms, crm, делал, и однотипные листинги и даже лапши не было и вагона кода не было ) Возможно я не правильно делал, надо будет позже документации еще раз пролистать.

Artem N
не всегда... видел я проект, где было куча компоне...

У меня такой есть. Наверное штук 20) tabs.js team_form.js team_list.js ... На каждую хрень по сути) работает хорошо, красиво но меня потом от джаваскрипт тошнило)

Black Cat
У меня такой есть. Наверное штук 20) tabs.js team...

не.. я видел crm . там компонентов было под сотню

Vladimir 
не знаю, cms, crm, делал, и однотипные листинги и ...

Могу скинуть гит на свой проект, глянешь опытным глазом. Я не претендую на то, что я не ебаться какой программист и у меня все юзерфул. День от дня захожу чищу лишнее в компонентах. У меня самое интересное сейчас есть абсолютно 2 одинаковые, недописанные crm одна чисто на alpine.js другая на alpine + livewire

Vladimir 
Тогда вопрос - зачем тебе 2 CRM ?)

что за вопросы у каждого прогера должна быть своя crm

Vladimir 
но не две же )

а это еще лучше

Artem N
не.. я видел crm . там компонентов было под сотню

Это может быть неплохо на самом деле. Да это не dry зато сохраняется принцип единой ответственности и можно гибко менять под задачи. Но я бы выбрал наследование, иначе до седых седин поддерживать это все)

Artem N
не.. я видел crm . там компонентов было под сотню

Смотря каких… Например один Column компонент того же filament, один, но переиспользуемый.

Vladimir 
Тогда вопрос - зачем тебе 2 CRM ?)

Это одна crm я исследовал технологии. Они визуально одинаковы. 1. Пробовал alpine + resourse контролёры. Там есть один Backend контроллер остальные его наследуют. 2. alpine + livewire Есть мастер компоненты RecordList, RecordForm остальные его наследуют. Контролёров как таковых нет) Просто писал одну, понял что в связке alpine + контроллеры тяжко, решил махнуть технологии

Black Cat
Это одна crm я исследовал технологии. Они визуаль...

alpine так крут ? часто просто стал видеть что юзают

Artem N
alpine так крут ? часто просто стал видеть что юза...

Да. Он крут тем, что это не vue.js) Он работает в реальном дом дереве и вполне неплохо может получать данные прямо в шаблоне. У него крошечный размер при этом. Для рядовых проектов сайты, магазины и ТД. Ну просто пушка. Особенно когда в магазине надо развернуть каталог с фильтрами, пагинацией, сортировкой и ТД. С ним эта задача очень простая Из минусов гадит в дом дерево. Валидатор html ругается

Black Cat
Да. Он крут тем, что это не vue.js) Он работает в...

>Из минусов гадит в дом дерево. Мы на некоторых проектах динамически прокидывали x-атрибуты на нужные ноды, чтобы не портить разметку. Вроде и звучит как изврат, но в целом получалось более читаемо и поддерживаемо, чем если бы залепили всё это в HTML

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта