я столкнулся та же проблема и наткнулся на ваш вопрос.
После некоторых исследований выяснилось, что GRAV имеет встроенные функции. Более или менее.
Я знаю, что это было некоторое время, но лучше поздно, чем никогда: D
Первое: Добавить content
к переднему вопросу
user/pages/pagename/pagename.md
content:
items: '@root'
order:
by: folder
dir: desc
Второе: Добавить список в план
user/themes/themename/blueprints/pagename.yaml
title: Downloads
'@extends':
type: default
context: blueprints://pages
form:
fields:
tabs:
type: tabs
active: 1
fields:
options:
type: tab
title: PLUGIN_ADMIN.OPTIONS
fields:
filelist:
type: section
title: File List
underline: true
fields:
header.folders:
name: folders
type: list
style: vertical
label: Folders
fields:
.folder:
type: pages
label: Folder
show_all: false
show_modular: false
show_root: false
В-третьих: Петля внутри шаблона.
user/themes/themename/templates/pagename.html.twig
{% extends 'partials/base.html.twig' %}
{% block content %}
{% for current in header.folders %}
<h3>{{ page.find(current['folder']).title }}</h3>
{% if page.find(current['folder']).media.files %}
<h4>Files:</h4>
{% for pFile in page.find(current['folder']).media.files %}
{{ pFile.filename }}
<br/>
{% endfor %}
{% endif %}
{% if page.find(current['folder']).media.images %}
<h4>Images:</h4>
{% for pImage in page.find(current['folder']).media.images %}
{{ pImage.filename }}
<br/>
{% endfor %}
{% endif %}
{% endfor %}
{% endblock %}
Так что же делать?
В приведенном выше коде вы можете выбрать определенные папки и перечислить каждый файл и изображение внутри него. Видео и аудио игнорируются.
Если у вас установлена панель администратора, вы можете выбрать страницы на вкладке «Параметры» каждой страницы с выбранным шаблоном.
Поскольку у вас есть регулярные объекты гравитационных, вы можете легко получить доступ к их path
, file names
и т.д.
Звучит хорошо, спасибо. Но когда я создаю файл PHP, как я могу сказать GRAV для выполнения функции? – jpfaller93