• Ругается валидатор "неверный конечный тег span." в чем проблема?

    @Asokr
    Смотреть нужно исходный код, а не девтулс, браузер правит такие очевидные ошибки, чтобы они не разваливали страницу.
    Всё правильно вам говорит валидатор - у вас лишний закрывающийся тег span, Найдите исходник крошек и смотрите что там не так...
    Ответ написан
    Комментировать
  • Как получают зарплаты с запада?

    @Asokr
    Карта любого соседнего государства, как вариант....
    Ответ написан
    Комментировать
  • Как получить get параметр в twig opencart?

    @Asokr
    Вы должны получить GET в контроллере, а уже потом его можно передать в шаблон.
    if (isset($this->request->get['any_param'])) {
    $data['any_param'] = $this->request->get['any_param'];
    }
    Ответ написан
    Комментировать
  • Почему не отображаются иконки?

    @Asokr
    Разве это верный путь?
    background-image: url(../star_active.png);
    Вы выходите из папки, а иконка лежит рядом с css файлом...
    Ответ написан
    8 комментариев
  • Как убрать disabled при повторном нажатии на чекбокс?

    @Asokr
    Условием к примеру
    reg_chekbox.onclick = () => {
    if (reg_button.disabled) ? reg_button.disabled = false : reg_button.disabled = true
         
        };
    Ответ написан
    Комментировать
  • Как исправить ошибку при добавлении в статью блога связанных товаров?

    @Asokr
    Написано, что он хочет картинку, а вы ему или не даёте, или где-то другая ошибка, связанная с картинкой...
    Смотрите код, в частности в контроллере "статью блога связанных товаров"
    Ответ написан
    Комментировать
  • Как сделать 2-ух этапную форму?

    @Asokr
    1) Сделать и первую форму, и попап в одном теге
    <form>
    2) Делать что хочешь, где хочешь, отправлять через JS. Данные можно собрать откуда нужно...
    Ответ написан
    Комментировать
  • Как настроить redirect после смены ЧПУ для подразделов каталога bitrix?

    @Asokr
    Спасибо PetrPo.
    Оставлю тут готовый, рабочий код из диалога выше. Происходит редирект разделов и элементов.
    В моем случае, еще были нижние подчеркивания у старых URL, у новых тире...+ 301 редирект, вместо 302...
    <?
    if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
    $this->setFrameMode(true);
    
    $variables['SECTION_CODE_PATH'] = $arResult['VARIABLES']['SECTION_CODE_PATH'].'/'.$arResult['VARIABLES']['ELEMENT_ID'];
    $variables['SECTION_CODE_PATH'] = str_replace('_', '-', $variables['SECTION_CODE_PATH']);
    
    CIBlockFindTools::checkSection($arParams['IBLOCK_ID'], $variables);
    
    if(isset($variables['SECTION_ID']) && $variables['SECTION_ID']) {
      $iblock = \Bitrix\Iblock\IblockTable::getList([
        'select' => ['SECTION_PAGE_URL'],
        'filter' => ['ID' => $arParams['IBLOCK_ID']],
        'cache' => ['ttl' => 31536000]
      ])->fetch();
    
      if(strpos($iblock['SECTION_PAGE_URL'], '#SECTION_CODE_PATH#') !== false) {
        $sectionId = $variables['SECTION_ID'];
    
        $filter = ['IBLOCK_ID' => $arParams['IBLOCK_ID'], 'ID' => $sectionId];
    
    
        $obCache = new CPHPCache();
        if($obCache->InitCache(36000, serialize($filter), '/iblock/catalog/redirect')) {
          $section = $obCache->GetVars();
        }
        elseif($obCache->StartDataCache()) {
          $section = [];
    
          $iterator = CIBLockSection::GetList([], $filter, false, ["IBLOCK_ID", "ID", "SECTION_PAGE_URL", "IBLOCK_TYPE_ID", "IBLOCK_SECTION_ID", "CODE", "SECTION_ID", "NAME"]);
    
          if(defined("BX_COMP_MANAGED_CACHE")) {
            global $CACHE_MANAGER;
            $CACHE_MANAGER->StartTagCache('/iblock/catalog/redirect');
    
            if($row = $iterator->GetNext()) {
              $section = $row;
              $CACHE_MANAGER->RegisterTag('iblock_id_'.$arParams['IBLOCK_ID']);
            }
    
            $CACHE_MANAGER->EndTagCache();
          }
          else {
            if($row = $iterator->GetNext()) {
              $section = $row;
            }
          }
    
          $obCache->EndDataCache($section);
        }
        if($section['SECTION_PAGE_URL']) { 
          LocalRedirect($section['SECTION_PAGE_URL'], false, '301 Moved permanently');
        }
      }
    } else {
      $iblock = \Bitrix\Iblock\IblockTable::getList([
        'select' => ['DETAIL_PAGE_URL'],
        'filter' => ['ID' => $arParams['IBLOCK_ID']],
        'cache' => ['ttl' => 31536000]
      ])->fetch();
    
      if(strpos($iblock['DETAIL_PAGE_URL'], '#ELEMENT_CODE#') !== false) {
        $elementId = $arResult['VARIABLES']['ELEMENT_ID'];
        $filter = ['IBLOCK_ID' => $arParams['IBLOCK_ID'], 'ID' => $elementId];
        
        $obCache = new CPHPCache();
        if($obCache->InitCache(36000, serialize($filter), '/iblock/catalog/redirect')) {
          $element = $obCache->GetVars();
        }
        elseif($obCache->StartDataCache()) {
          $element = [];
    
          $iterator = CIBLockElement::GetList([], $filter, false, false, ['IBLOCK_ID', 'ID', 'DETAIL_PAGE_URL']);
          
          if(defined("BX_COMP_MANAGED_CACHE")) {
            global $CACHE_MANAGER;
            $CACHE_MANAGER->StartTagCache('/iblock/catalog/redirect');
    
            if($row = $iterator->GetNext()) {
              $element = $row;
              $CACHE_MANAGER->RegisterTag('iblock_id_'.$arParams['IBLOCK_ID']);
            }
    
            $CACHE_MANAGER->EndTagCache();
          }
          else {
            if($row = $iterator->GetNext()) {
              $element = $row;
            }
          }
            
            
          $obCache->EndDataCache($element);
        }
    
    
        if($element['DETAIL_PAGE_URL']) {
          LocalRedirect($element['DETAIL_PAGE_URL'], false, '301 Moved permanently');
        }
      }
    }
    Ответ написан
    Комментировать
  • Редирект Битрикс?

    @Asokr
    Спасибо PetrPo.
    Оставлю тут готовый, рабочий код. Происходит редирект разделов и элементов.
    <?
    if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
    $this->setFrameMode(true);
    
    $variables['SECTION_CODE_PATH'] = $arResult['VARIABLES']['SECTION_CODE_PATH'].'/'.$arResult['VARIABLES']['ELEMENT_ID'];
    $variables['SECTION_CODE_PATH'] = str_replace('_', '-', $variables['SECTION_CODE_PATH']);
    
    CIBlockFindTools::checkSection($arParams['IBLOCK_ID'], $variables);
    
    if(isset($variables['SECTION_ID']) && $variables['SECTION_ID']) {
      $iblock = \Bitrix\Iblock\IblockTable::getList([
        'select' => ['SECTION_PAGE_URL'],
        'filter' => ['ID' => $arParams['IBLOCK_ID']],
        'cache' => ['ttl' => 31536000]
      ])->fetch();
    
      if(strpos($iblock['SECTION_PAGE_URL'], '#SECTION_CODE_PATH#') !== false) {
        $sectionId = $variables['SECTION_ID'];
    
        $filter = ['IBLOCK_ID' => $arParams['IBLOCK_ID'], 'ID' => $sectionId];
    
    
        $obCache = new CPHPCache();
        if($obCache->InitCache(36000, serialize($filter), '/iblock/catalog/redirect')) {
          $section = $obCache->GetVars();
        }
        elseif($obCache->StartDataCache()) {
          $section = [];
    
          $iterator = CIBLockSection::GetList([], $filter, false, ["IBLOCK_ID", "ID", "SECTION_PAGE_URL", "IBLOCK_TYPE_ID", "IBLOCK_SECTION_ID", "CODE", "SECTION_ID", "NAME"]);
    
          if(defined("BX_COMP_MANAGED_CACHE")) {
            global $CACHE_MANAGER;
            $CACHE_MANAGER->StartTagCache('/iblock/catalog/redirect');
    
            if($row = $iterator->GetNext()) {
              $section = $row;
              $CACHE_MANAGER->RegisterTag('iblock_id_'.$arParams['IBLOCK_ID']);
            }
    
            $CACHE_MANAGER->EndTagCache();
          }
          else {
            if($row = $iterator->GetNext()) {
              $section = $row;
            }
          }
    
          $obCache->EndDataCache($section);
        }
        if($section['SECTION_PAGE_URL']) { 
          LocalRedirect($section['SECTION_PAGE_URL'], false, '301 Moved permanently');
        }
      }
    } else {
      $iblock = \Bitrix\Iblock\IblockTable::getList([
        'select' => ['DETAIL_PAGE_URL'],
        'filter' => ['ID' => $arParams['IBLOCK_ID']],
        'cache' => ['ttl' => 31536000]
      ])->fetch();
    
      if(strpos($iblock['DETAIL_PAGE_URL'], '#ELEMENT_CODE#') !== false) {
        $elementId = $arResult['VARIABLES']['ELEMENT_ID'];
        $filter = ['IBLOCK_ID' => $arParams['IBLOCK_ID'], 'ID' => $elementId];
        
        $obCache = new CPHPCache();
        if($obCache->InitCache(36000, serialize($filter), '/iblock/catalog/redirect')) {
          $element = $obCache->GetVars();
        }
        elseif($obCache->StartDataCache()) {
          $element = [];
    
          $iterator = CIBLockElement::GetList([], $filter, false, false, ['IBLOCK_ID', 'ID', 'DETAIL_PAGE_URL']);
          
          if(defined("BX_COMP_MANAGED_CACHE")) {
            global $CACHE_MANAGER;
            $CACHE_MANAGER->StartTagCache('/iblock/catalog/redirect');
    
            if($row = $iterator->GetNext()) {
              $element = $row;
              $CACHE_MANAGER->RegisterTag('iblock_id_'.$arParams['IBLOCK_ID']);
            }
    
            $CACHE_MANAGER->EndTagCache();
          }
          else {
            if($row = $iterator->GetNext()) {
              $element = $row;
            }
          }
            
            
          $obCache->EndDataCache($element);
        }
    
    
        if($element['DETAIL_PAGE_URL']) {
          LocalRedirect($element['DETAIL_PAGE_URL'], false, '301 Moved permanently');
        }
      }
    }
    Ответ написан
    Комментировать
  • Если стоит галочка то прибавляем цену, при обновлении страницы не срабатывает, как запустить скрипт?

    @Asokr
    Проверяйте, отмечен-ли чекбокс при загрузке страницы, и если отмечен, выполняйте нужный код, то есть всё тоже самое, только без события клика...чтобы не повторять один и тот же код, можете вынести его в функцию...
    $(document).ready(function() {
            const priceKbm = 500;
            const cenagibdd = 100;
            if ($('#star').is(':checked')) {
              let rezult = (Number(priceKbm) + Number(cenagibdd)).toString();
            } else {
              let rezult = (Number(priceKbm) + Number(0)).toString();
            }
      });
    Ответ написан
  • Как отключить функцию при наведении на блок?

    @Asokr
    Что? :)
    Покажите код, который это делает.
    Вряд ли ваша функция "запущена", наверное она отрабатывает один раз, и обрезает текст. Поэтому ее отключать не нужно. Нужно знать, как она обрезает текст (удаляет его, или скрывает). Если удаляет - то нужно сделать так, чтобы скрывала...
    Ну и, соответственно, потом использовать событие onmouseover к блоку, чтобы показывать скрытый функцией текст...
    Ответ написан
    Комментировать
  • Как поменять местами блоки, только в мобильной версии?

    @Asokr
    1) Скрыть десктопные на мобилке, показать те же блоки на мобильной в нужном месте.
    2) Если один общий родитель, верстать флексами, использовать порядок (order).
    Ответ написан
    5 комментариев
  • Burger menu - в чем может быть проблема?

    @Asokr
    Ну, наверное, нужно отслеживать событие клика по пункту меню, и убирать класс acivate, как вы это делаете на оверлее...
    Ответ написан
    2 комментария
  • Как в Ocstore поменять стиль выбора главной категории?

    @Asokr
    Возможность есть - открыть шаблон формы продукта (product_form), посмотреть, как выбираются категории, и сделать тоже самое для "Главной категории".
    Только учесть человеческий фактор - "Главная категория" должна быть одна.
    Ответ написан
    Комментировать
  • Не работает dataset.order (Он вообще существует в js на данный момент)?

    @Asokr
    Ошибки вроде как есть
    (let i = 0; i < slides.lenght; i++) {
    lenght - что это?

    В консоле такая ошибка должна быть видна...
    Ответ написан
    2 комментария
  • Как выровнять блоки по высоте?

    @Asokr
    1) Задать контейнеру слайдера display:flex.
    Если такой возможности нет:
    2) Задать слайду фиксированную высоту.
    3) Явно указать размеры блока для изображения и названия статьи
    Ответ написан
    2 комментария
  • Как вставить html код в классический текстовый редактор wordpress?

    @Asokr
    Вы можете создавать отдельные шаблоны для каждой записи. То есть вам нужно создать отдельный шаблон записи с вашим блоком, а потом для нужных записей выбрать этот шаблон в WP.
    Насчёт древнего WP - уточните эту возможность....но она была сколько я себя помню...
    Ответ написан
    Комментировать
  • Как управлять категориями и товарами из модуля в OpenCart3?

    @Asokr
    Ответ на все ваши вопросы есть в файлах Opencart.

    Посмотрите контроллер категорий в админ части - увидите, как работать с категориями. То же самое и по товару.
    В кратце - подключайте в свой модуль модель категорий/продукта - и используйте для своей работы уже готовые функции.

    Посмотрите, как идёт покупка товара - опенкарт так-же отправляет JSON в контроллер cart.php - посмотрите, как cart.php его обрабатывает....
    Ответ написан
    1 комментарий
  • Почему не отрывается react-лендинг на хостинге?

    @Asokr
    скрин хорош, а то что 9 ошибок в консоле, а консоль - это соседняя вкладка, не на что не намекает? ))

    Скорее всего у вас не верные пути к файлам.
    Добавьте путь в pakage.json проекта в директиву homepage
    "version": "0.1.0",
      "private": true,
      "homepage": ".",
    Ответ написан
    Комментировать
  • Как исправить ошибку "Maximum execution time exceeded"?

    @Asokr
    Такого быть не должно. Скачайте другой дистрибутив, OCstore к примеру....
    И создайте новую базу для этой установки...
    Ответ написан