Задать вопрос
  • Как отправить менеджеру поля о заказе телефон, адрес и.т.п MiniShop2?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    Резюмирую комментарии в ответ:
    1. Когда читаешь инструкции нужно либо выполнять все как там, либо быть более внимательным.
    2. Вы правите исходные файлы - что не есть хорошо и может затереться при первом же обновлении.
    3. Ну и сама ошибка: вы в чанк tpl.msEmail.new.manager добавили код из статьи, в данном коде идет расширение нового чанк {extends 'new.tpl.msEmail'}, который вы не создавали. Следовательно, вместо {extends 'new.tpl.msEmail'} пишите {extends 'tpl.msEmail'} и проблема решена!
    Ответ написан
    Комментировать
  • Где учат собирать семантическое ядро(seo)?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    Открываем Яндекс и вбиваем: семантическое ядро курс, получаем тьму курсов, выбирайте на вкус и цвет) Вот например бесплатно https://dashchinskiy.com/free-semantic-seo-course/ (если блокировки ютуба можете обойти). Я лично в последнее время пользуюсь keys.so, а если прям глубоко и много нужно то moab.tools - все соответственно платное)
    Ответ написан
    Комментировать
  • Чем проверить количество проиндексированных страниц в Яндекс (кроме Я.Вебмастер)?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    Ответ написан
    Комментировать
  • Должен ли уметь системный администратор ремонтировать технику?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    Работал как то сис админом, вот что приходилось делать:
    Ремонт ПК: тупо заменить что либо, плашку памяти, блок питания и т.д. - если есть запчасти, если что то серьезное везешь в сервисный центр.
    С принтерами - поменять картридж, сбросить очередь печати, сбросить чип картриджа, перепрошить принтер, ну пару раз сам картриджи заправлял, серьезная поломка - сервисный центр
    Прокладывал локальные сети.
    В остальном больше администрирование ПК и бегание из кабинета в кабинет, у кого то что то повисло, кто то что то сделать не может и т.п. Ну а вообще это типа мастер на все руки, будут приходить все и спрашивать обо всем: телевизоры, мобильники, подписки и даже программирование)))
    Ответ написан
  • Что делать если изображение не растягивается на всю ширину?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    Судя по скрину оно во всю ширину) Просто нужно убрать отступ сверху
    .header__logo {
      display: flex;
      justify-content: space-between;
      margin-top: 20px;
    }

    Здесь margin нужно заменить на padding и все:
    .header__logo {
      display: flex;
      justify-content: space-between;
      padding-top: 20px;
    }
    Ответ написан
    2 комментария
  • Как написать условие MiniShop2?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    Используйте параметры &tplWrapper и &wrapIfEmpty, подробнее об этом можно почитать здесь: Как ничего не выводить, если ресурсов (товаров) нет?
    Ответ написан
    Комментировать
  • Как исключить родительский товар в MiniShop2?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    В вашем случае поправить &parents=`[[*parent]]` и добавить &resources=`-[[*id]]`. Но я бы лучше использовал msProducts (вместо pdoPage - вам же не нужна пагинация в карточке))).
    Ответ написан
    Комментировать
  • Как реализовать функцию выбота размера товара в MiniShop2?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    Если не нужна смена цены, то примерно так:
    {'msOptions' |snippet:[
           'options' => 'size,
           'tpl' => '@FILE chunks/product/option/size.tpl'
    ]}

    С Fenom на стандартный шаблонизатор, при необходимости надеюсь самостоятельно сможете перевести.
    Где чанк size.tpl:
    {foreach $options as $name => $values}
        <div class="form-group product__option">
            <label class="product__option-label"> {('ms2_product_' ~ $name) | lexicon}</label>
            <div class="input-radio-label">
                <div class="input-radio-label__list">
                    {foreach $values as $value}
                        <label for="option_{$name}_{$value}">
                            <input type="radio" name="options[{$name}]" value="{$value}" id="option_{$name}_{$value}">
                            <span>{$value}</span>
                        </label>
                    {/foreach}
                </div>
            </div>
        </div>
    {/foreach}

    В моем случае на сайте это выглядит так:
    67c588281a7a1337416462.png
    Ответ написан
    Комментировать
  • Как показывать товар в двух категориях MiniShop2?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    Можно. У товара на вкладке "Товар" перейдите во вкладку "Категории", отметьте нужные и сохраните.
    6766ac7a9627d252700666.png
    Ответ написан
    Комментировать
  • Minishop2 где можно изменить текст?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    1. Вам подсказали выше, через управлением лексиконами, либо руками в вызове корзины (в чанке)
    2. По поводу стилизации: вызовите корзину со своим чанком
    [[!msCart?
      &tpl=`myCart`
    ]]

    в чанк myCart скопируйте все из чанка tpl.msCart и добавляйте свои классы и т.д.
    Ответ написан
    Комментировать
  • Как вывести поле content в miniShop2?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    Все есть в документации.
    В вызов добавьте includeContent:
    [[!msProducts?
       &limit=`0`
       &parents=`17,50`
       &depth=`10`
       &includeThumbs=`360x400`
       &includeContent=`1`
       &tpl=`tpl.msProducts`
       &where=`{"Data.popular":"1"}`
    ]]

    Убрал includeTVs - т.к. вы скорее всего не используете TV.
    Далее в чанке tpl.msProducts вызовите [[+content]]
    Ответ написан
    Комментировать
  • Как уменьшить расстояние между абзацами для мобильной версии?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    @media (max-width: 525px) {
    .right-column {
        height: auto;
    }
    прочие стили если нужно
    }
    Ответ написан
    Комментировать
  • Не обновляется миникорзина minishop2. Почему?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    В консоле браузера Uncaught ReferenceError jQuery is not defined, часто такая ошибка, когда нарушен порядок загрузки скриптов. Все скрипты, нуждающиеся в jQuery, должны быть подключены после него.
    А у вас он нарушен, т.к. сначала идет идет минишоповский JS файл, а потом jquery:
    <script src="/assets/components/minishop2/js/web/default.js"></script>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

    Поменяйте их местами
    Ответ написан
  • Как объединить два правила htaccess?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    Примерно так:
    RewriteEngine On
    
    # Redirect www to non-www
    RewriteCond %{HTTP_HOST} ^www\.site\.ru [NC]
    RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]
    
    # Remove trailing slash, question mark, and double slashes in URL
    RewriteCond %{REQUEST_URI} !\?
    RewriteCond %{REQUEST_URI} !\&amp;
    RewriteCond %{REQUEST_URI} !\=
    RewriteCond %{REQUEST_URI} !\.
    RewriteCond %{REQUEST_URI} ![^\/]$
    RewriteCond %{REQUEST_URI} !^/administrator/
    RewriteRule ^(.*)/$ https://site.ru/$1 [R=301,L]
    
    # Remove query string if it's empty
    RewriteCond %{THE_REQUEST} ^[^\\s]+\s+[^?]*?\?
    RewriteCond %{QUERY_STRING} ^$
    RewriteCond %{REQUEST_URI} !^/administrator/
    RewriteRule .? https://site.ru%{REQUEST_URI}? [R=301,L]
    
    # Remove double slashes
    RewriteCond %{THE_REQUEST} //
    RewriteCond %{REQUEST_URI} !^/administrator/
    RewriteRule .* https://site.ru/$0 [R=301,L]
    
    # Redirect home, index, and URLs with trailing slash or query string to main page
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*(home|index)(\.htm?|\.html?|\.php)?\ HTTP/
    RewriteCond %{REQUEST_URI} !^/administrator/
    RewriteRule ^.*$ https://site.ru/ [R=301,L]


    Изменения и объединение правил

    1.Редирект с www на non-www теперь идет в самом начале, чтобы предотвратить промежуточные редиректы с `www`.

    2. Правила для удаления конечного слэша и двойных слэшей теперь не конфликтуют, так как порядок проверки правил происходит до их выполнения, что позволяет обрабатывать дублирующие слэши и делать это в одном шаге.

    3. Все условия, касающиеся административной части (`!^/administrator/`), оставлены для всех правил, чтобы избежать неправильных редиректов на одну из страниц админки.

    Таким образом, теперь при нахождении URL с www или ненужными символами, будет происходить единый шаг перенаправления на правильный адрес без промежуточных этапов.
    Ответ написан
    Комментировать
  • Как на Squarespace сделать перенаправление с http на https?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    На Squarespace перенаправление с HTTP на HTTPS обычно настраивается автоматически, так как платформа сама заботится об использовании безопасного соединения для всех сайтов. Однако если у вас возникают проблемы с перенаправлением, проверьте следующие моменты:

    1. Проверьте настройки домена: Убедитесь, что ваш домен настроен правильно и что вы используете только один домен (например, www.example.com или example.com). Дублирующие настройки домена могут повлиять на редиректы.

    2. Включите SSL в настройках сайта:
    - Перейдите в раздел Settings (Настройки).
    - Выберите Domains (Домены).
    - Найдите ваш домен и убедитесь, что включен параметр SSL.

    3. Редиректы с помощью механизма перенаправления: Squarespace предоставляет возможность создать переадресации на уровне страниц:
    - Перейдите в **Marketing** > **Redirects** (Редиректы).
    - Добавьте новый редирект с адреса HTTP на HTTPS для всех страниц, если у вас есть конкретные страницы, которые нужно перенаправить.

    4. Проверка на наличие проблем с кешем: Иногда браузеры могут кэшировать старые версии страниц. Попробуйте очистить кеш браузера или откройте сайт в режиме инкогнито.

    5. Обратитесь в поддержку Squarespace: Если у вас все еще возникают сложности, вы можете обратиться в службу поддержки Squarespace, они смогут помочь с вашей конкретной ситуацией.

    Обычно с настройками редиректа на Squarespace не возникает проблем, так как система сама создана для обеспечения безопасного соединения. После того как вы убедитесь, что SSL настроен и работает, ваши посетители должны автоматически перенаправляться с HTTP на HTTPS.
    Ответ написан
    Комментировать
  • Как сделать по atomic design?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    В Atomic Design подходе акцент делается на создание компонентов и их повторное использование, что позволяет избежать дублирования кода и улучшить управление стилями. Ваша задача заключается в том, чтобы создать компоненты, которые можно легко настраивать и изменять.

    Для вашей ситуации, когда у .header .title и .footer .title разные цвета и отступы, вы можете использовать CSS-классы для определения стилей, а также модификаторы для изменения их внешнего вида в зависимости от контекста. Вот пример, как это можно сделать:
    <header class="header">
        <h1 class="title title--header">Заголовок</h1>
    </header>
    
    <footer class="footer">
        <h1 class="title title--footer">Подвал</h1>
    </footer>


    .title {
        /* Общие стили для всех заголовков */
        font-size: 24px;
        font-weight: bold;
        margin: 16px 0;
    }
    
    .title--header {
        color: blue;  /* Цвет заголовка в шапке */
        margin-top: 20px; /* Отступ для заголовка в шапке */
    }
    
    .title--footer {
        color: green; /* Цвет заголовка в подвале */
        margin-bottom: 20px; /* Отступ для заголовка в подвале */
    }


    Подходящие классы
    В этом случае вы создаете основной класс .title, который содержит общие стили для всех заголовков, а затем добавляете модификаторы .title--header и .title--footer для настройки стилей в зависимости от контекста.

    Преимущества
    1. Повторное использование: Вы можете переиспользовать общий класс .title для других заголовков, сохраняя при этом возможность настраивать их стили.
    2. Читаемость: Добавляя специальные модификаторы, вы делаете ваш код более понятным и улучшаете его поддержку.
    3. Гибкость: Легко добавлять новые контексты, если это потребуется, просто создавая новые модификаторы.


    Таким образом, вы достигаете принципов Atomic Design, создавая модульные и настраиваемые компоненты.
    Ответ написан
    Комментировать
  • MODx MIGX как исправить проверку ввода?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    "inputTVtype": "text"/ И вообще лучше конфигурации задавать в самом MIGX, а не в TV поле разметку делать.
    Ответ написан
    Комментировать
  • Почему сайт криво отображается на iPhone?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    Используйте вендорные префиксы, т.е. не просто:
    display: flex;
    flex-direction: column;

    , а вот так:
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
            flex-direction: column;

    В общем в помощь вам: Автопрефиксер CSS онлайн
    Ответ написан
  • Как вывести поле color в MiniShop2?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    В TPL, вместо
    <div class="cart-t mb-3">Цвет:&nbsp;[[+color]]</div>
    , вызываете сниппет msOptions:
    [[!msOptions?
        &options=`color`
        &product=`[[+id]]`
        &tpl=`tpl.msOptions`
      ]]
    Ответ написан
    Комментировать
  • Как и нужно ли формировать style.min.css MinifyX в MODX?

    webrevenue
    @webrevenue
    Веб-дизайнер и SEO оптимизатор
    1. Подключен на сайте minifyX, который ссылается на "assets/css/style.min.css" - в вашем случае нет смысла использовать minifyX, просто подключите этот файл локально:
    <link rel="stylesheet" href="/assets/css/style.min.css">
    . Т.к. нет смысла подавать 1 файл - Компонент в первую очередь служит для объединения и сжатия вязанки стилей и скриптов, например:
    [[MinifyX?
    	&minifyCss=`1`
    	&minifyJs=`1`
    	&registerJs=`default`
    	&registerCss=`default`
    	&jsSources=`
    		assets/plugins/jquery/jquery-2.1.4.min.js,
    		assets/js/scripts.js,
    	`
    	&cssSources=`
    		assets/css/bootstrap.min.css,
    		assets/css/essentials.css,
    		assets/css/layout.css,
    		assets/css/header-1.css,
    	`
    ]]

    2. Также есть файл "assets/css/style.css". Как я думаю, в него пишутся стили и на основании стилей должен формироваться файл "style.min.css". - не правильно думаете в случае если данный стиль не подключен к шаблону)
    3. Но как это сделать? как вариант тем же minifyX:
    [[MinifyX?
        	&minifyCss=`1`
        	&minifyJs=`1`
        	&registerJs=`default`
        	&registerCss=`default`
    	    &cssSources=`/assets/css/style.css`
    	]]

    (но как говорил выше не вижу смысла в этом)
    4. А если внести изменения в "style.min.css" и очистить кеш, тогда все работает. - Ну логично, если хотите без очистки кэша, попробуйте вызвать компонент не кэшированным: [[!MinifyX? ...
    Ответ написан