В настоящее время используется OctoberCMS и Twig для получения динамических c данных из файла json. Основная идея c заключается в следующем:
- Имеет боковую панель с 3 ссылками
- Ссылки боковой панели генерируются случайным образом при загрузке
- Существуют определенные ссылки которые должны показываться чаще других, а некоторые с более низким приоритетом
Вот пример кода, с которого нужно начать, чтобы вы имели представление о том, чего я пытаюсь достичь:
"wiki": {
"resources": {
"items": [
{
"href": "[link]",
"h3": "[Title]",
"p": "[Description]",
"tier": 1
},
{
"href": "[link]",
"h3": "[Title]",
"p": "[Description]",
"tier": 3
},
{
"href": "[link]",
"h3": "[Title]",
"p": "[Description]",
"tier": 2
},
{
"href": "[link]",
"h3": "[Title]",
"p": "[Description]",
"tier": 2
},
{
"href": "[link]",
"h3": "[Title]",
"p": "[Description]",
"tier": 2
},
{
"href": "[link]",
"h3": "[Title]",
"p": "[Description]",
"tier": 1
},
{
"href": "[link]",
"h3": "[Title]",
"p": "[Description]",
"tier": 3
},
{
"href": "[link]",
"h3": "[Title]",
"p": "[Description]",
"tier": 1
},
{
"href": "[link]",
"h3": "[Title]",
"p": "[Description]",
"tier": 2
},
{
"href": "[link]",
"h3": "[Title]",
"p": "[Description]",
"tier": 3
}
]
}
}
{% for item in 'wiki.resources.items'|translations %}
<div class="ressources__item col-12 col-md-4 col-lg-12">
<a href="{{ item.href }}">
<h3 class="ressources__sub">{{ item.h3 }} </h3>
</a>
<p>{{ item.p }}</p>
</div>
{% endfor %}
Мне, очевидно, нужно рандомизировать результаты массива и каким-то образом чаще всего показывать элементы Tier1, чаще всего - Tier2, а наименее часто - Tier3. Фильтр |translations
просто помогает указать на файл json с соответствующими переводами - на всякий случай, если он вас смущает.
Пока я пытался преобразовать ответы из здесь и здесь , но без удачи.
У меня такое чувство, что я не могу переводить код для Twig самым идеальным способом, но я изо всех сил пытаюсь это выяснить. Любая помощь будет оценена!