Александр Янк

Александр Янк

Был в сети 21 июля 2022, 16:49
Заказы принимаю
те же яйца, только вид сбоку…

Некоторые правила CSS требуют пробелов. Например, Bootstrap имеет следующие элементы ввода: height: calc (2.25rem + 2px). «+» Требует пространства с обеих сторон или оно не работает. К сожалению, пробелы разделяются, оставляя входные данные странно.
Пока нашел только такое решение:

<ul class="news-filter row">
      {'pdoMenu' | snippet : [
        'parents' => '15',
        'displayStart' => 1,
        'resources' => '',
        'level' => 0,
        'firstClass' => '',
        'lastClass' => '',
        'hereClass' => 'news-filter__active',
        'showHidden' => '1',
        'outerClass' => '',
        'rowClass' => 'news-filter__item',
        'tplOuter' => '@INLINE {$wrapper}',
        'tplStart' => '@INLINE {$wrapper} <li{$classes}><a href="{$link}" class="news-filter__link">{$menutitle}</a></li>',
        'tpl' => '@INLINE <li{$classes}><a href="{$link}" class="news-filter__link" {$attributes}>{$menutitle}</a></li>'
      ]}
    </ul>
Что я сделал:

1. Настроил правильный вывод HTML.

2. Поместил пункт родителя в конце списка!

<ul>
    <li>— Дочка</li>
    <li>— Дочка</li>
    <li>— Дочка</li>
    <li>— Дочка</li>
    <li class="active">— Родитель</li>
</ul>
3. Далее ul задал стили:
ul {
  display: flex;
  flex-wrap: wrap-reverse;
  flex-direction: row-reverse;
  justify-content: flex-end;

  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}
Вся идея в первой половине, с помощью flexbox я задал направление пунктам меню.

4. Стили для активных пунктов меню:
.active {
  // стили для активного пункта
}

.active  ~ .active {
    //перестиливаем стили активного меню
}
В активном пункте говорится, что все элементы после него, с активным классом будут перестилены.

Вот так вот, товарищи, бэкэнд + css = профит :)
Тогда выведется вот такой HTML код:
<ul class="news-filter row">
<h2 class="news-filter__item news-filter__active">Все новости</h2>
<ul class="">
<li class="news-filter__item"><a href="all-news/goszakupki/" class="news-filter__text">Госзакупки</a></li>
<li class="news-filter__item"><a href="all-news/samoregulirovanie/" class="news-filter__text">Саморегулирование</a></li>
<li class="news-filter__item"><a href="all-news/stroitelnaya-otrasl/" class="news-filter__text">Строительная отрасль</a></li>
<li class="news-filter__item"><a href="all-news/novosti-kompanii/" class="news-filter__text">Новости компании</a></li>
</ul>
</ul>
а в добавок всегда подсвечивается активный пункт у родителя…
Илья, если не сложно поясни действия этого кода:
{var $defaul = true}
{switch $_modx->resource.id}
    {case 4}
        {var $defaul = false}
        {include 'specialists'}
{/switch}
{switch $_modx->resource.parent}
    {case 4}
        {var $defaul = false}
        {include 'content_specialist'}
{/switch}
{if $defaul}
    {include 'content_default'}
{/if}
В целом я вижу условия, я их понимаю, но не понимаю, что означает
{var $defaul = false}
1. Попробуйте вручную удалить все папки в папке cache путь к папке с кешем /core/cache/
Если не помогло, то:
2. Переименуйте алиас (УРЛ) ресурса, добавив цифры или буквы (для теста) и сохраниться попробуйте.

3. По шагам попробуйте это выполнить:
— Перейдите в раздел Система> Настройки системы
— Найдите настройку friendly_urls.
— Измените его на « Нет» и в ресурсе сохраниться попробуйте
— Далее измените его на « Да».
Почти во всех случаях проблема была mod_security:

Создайте в корне файл например info.php
и поместите туда этот код:
<?php
// Показывать всю информацию, по умолчанию INFO_ALL
phpinfo();
?>
или этот
<?php
// Показывать информацию только о загруженных модулях.
// phpinfo(8) выдает тот же результат.
phpinfo(INFO_MODULES);
?>
Потом в браузере откройте ваш-сайт.ру/info.php

У вас хостинг с cPanel?

Теребите хостера, пусть отключит mod_security, в нем проблема…