• Как правильно сверстать такой ряд?

    @Asokr Автор вопроса
    В общем, без пару строчек JS не обошлось...
    $(document).ready(function() {
        setBallsSize();
    });
    
    $(window).resize(function() {
        setBallsSize();
    })
    
    function setBallsSize() {
        setTimeout(function () {
            var ballWidth = $('.ball_row1 .ball_image').width();
            $('.ball_row2 img').each(function() {        
                $(this).css('width', ballWidth);
            });        
        }, 200);
    }
    Ответ написан
    Комментировать
  • Интересно мнение о моем коде, и так же интересно как это будет выглядеть на javascript?

    @Asokr
    Сложно наговнокодить добавляя/удаляя классы.
    В JS:
    classList.add
    classList.remove
    и клик addEventListenter('click')
    Элемент ищем document.querySelector();

    Учить можно на javascript.ru или взять курс на udemy.com, к примеру...
    Ответ написан
    Комментировать
  • Как сделать несколько модальных окон JS?

    @Asokr
    Неоднозначный вопрос. Если я правильно понял, то:
    Вам на кнопку, по клику на которую должно открываться окно, нужно добавить атрибут data-target="modal1"
    Ответ написан
  • Opencart как сделать такой вид валюты?

    @Asokr
    /catalog/language/ru-ru

    $_['decimal_point']         = '.';
    $_['thousand_point']        = ' ';
    Ответ написан
    Комментировать
  • Как сделать регистрацию без пароля в Opencart?

    @Asokr
    Не принимайте в контроллере пароль от пользователя - генерите его сами, и отправляйте пользователю...
    catalog/controller/account/register.php
    Переписывайте
    if (isset($this->request->post['password'])) {
    			$data['password'] = $this->request->post['password'];
    		} else {
    			$data['password'] = '';
    		}

    на что-то типа
    $data['password'] = вами сгенерированный пароль
    И тут -же можно отправить письмо о регистрации...
    Ответ написан
    1 комментарий
  • Как сделать редирект opencart?

    @Asokr
    Как вариант, установите 301 редирект в контроллере account/account
    catalog\controller\account
    Сразу после
    public function index() {
    Вставьте редирект
    $this->response->redirect($this->url->link('account/edit', '', true));
    Ответ написан
  • Как разместить лого по центру меню?

    @Asokr
    Вам нужно разбить массив $categories на два равных массива
    list($first_cat, $second_cat) = array_chunk($categories, ceil(count($categories)/2));

    И затем итерировать каждый уже в вашей верстке таким же образом, как это сделано в шаблоне...
    Ответ написан
    2 комментария
  • Как добавить кнопке disabled, если input равен 1?

    @Asokr
    0_o
    $(document).on("click", ".stepper button", function () {
      var c = $(this),
        b = c.closest(".stepper").find("input").val().trim(),
        a = 1;
      if (c.attr("spinner-button") == "up") {
        a = parseInt(b) + 1
    
         Повешайте вот тут c.prop("disabled", false); на минусовую кнопку
    
      } else {
        if (b > 1) {
          a = parseInt(b) - 1
        } else {
          c.prop("disabled", true);
          return false
        }
      }
      c.closest(".stepper").find("input").val(a)
    });
    Ответ написан
  • Как создавать дополнительные текстовые страницы?

    @Asokr
    Если дизайн блоков (header, footer) одинаковый - вставляйте верстку непосредственно в стутью в админ панели.
    Если страница полностью отличается от основного сайта, то я бы сделал в информации поле, чекбокс типа "своя верстка", и в контролере выводил бы отдельный файл шаблона для своей верстки, что то типа:
    if ($svoya_verstka) {
    $this->response->setOutput($this->load->view('information/information_empty', $data)); // наш файл шаблона
    } else {
    $this->response->setOutput($this->load->view('information/information', $data));
    }

    Ну, и соответственно, в шаблоне information_empty - оставил бы только вывод контента статьи:
    <?php echo $description; ?>
    И верстку так-же добавлял в админ панели...
    -----------------
    Если вы хотите что-то типа contact.tpl - то есть на все 10 дизайнов - 10 файлов шаблона - то просто скопируйте структуру contact.tpl (контроллер, файл шаблона, и языковой файл) - и везде поменяйте contact - на собственный индификатор, типа design1.tpl для файла шаблона, и design1.php - для контроллера и языка, и в контроллере так-же везде придется заменить contact на design1 и так 10 раз...))
    Ответ написан
    Комментировать
  • Как сделать автоматический отступ от блока?

    @Asokr
    грубо - body во flex, высота 100%, блоку с контентом flex-grow: 1;
    Точнее, уже с версткой...
    Ответ написан
    1 комментарий
  • Почему хлебные крошки ведут себя неадекватно?

    @Asokr
    Вы версию не указали Opencart, для второй версии я всегда использую этот фикс для хлебных крошек.
    Ответ написан
  • Как выделить пункт меню WordPress?

    @Asokr
    У Вас как минимум ошибка в написании классов, в верстке custommycab,
    а описываете вы cuctommycab.
    Укажите один класс, и используйте important, если WP перекрывает ваш стиль
    .custommycab{
    color: blue !important;
    }
    Ответ написан
    Комментировать
  • Почему не достигаются цели в яндекс метрике?

    @Asokr
    Столкнулся с подобной проблемой. Через пару часов обнаружил, что FireFox, на котором происходило тестирование достижения целей - обзавелся новой штукой - "Защита от отслеживания" - она в свою очередь у меня была включена, и блокировала tag.js яндекса, и пиксель фейсбука. Таким образом они не грузились, ошибок не было, как и достижения целей.

    Обратите на это внимание, при тестировании.
    Ответ написан
    Комментировать
  • Как добавить класс всем ul внутри div по клику?

    @Asokr
    Это не весь код? Что такое ul?
    Тем не менее, вам нужно выбрать все ul на странице
    document.querySelectorAll('ul')
    И добавлять каждому элементу класс show
    .forEach(el => el.classList.toggle('show'));
    С вашим примером, наверное так. Но, что такое ul.classList.toggle('show');
    const btnn = document.querySelector('#btnn');
        btnn.addEventListener('click', () => {
          [...document.querySelectorAll('ul')]
            .forEach(el => el.classList.toggle('show'));
            ul.classList.toggle('show');
            btnn.classList.toggle('show');
        });
    Ответ написан
  • Как вывести все дочерние категории в header.tpl?

    @Asokr
    Модуль входит в состав Opencart.pro (бесплатной версии;) ) - можете скачать - и посмотреть более подробно, но в общем - как -то так:
    Контролер
    $data['categories'] = array();
    
    		$categories = $this->model_catalog_category->getCategories(0);
    
    		foreach ($categories as $category) {
    
    			$children_data = array();
    
    			$children = $this->model_catalog_category->getCategories($category['category_id']);
    
    			foreach ($children as $child) {
    			
    			$children2_data = array();
    			$children2 = $this->model_catalog_category->getCategories($child['category_id']);
    			
    				foreach ($children2 as $child2) {
    				
    					$children3_data = array();
    					$children3 = $this->model_catalog_category->getCategories($child2['category_id']);
    					
    						foreach ($children3 as $child3) {
    							
    							$filter_data3 = array(
    								'filter_category_id'  => $child3['category_id'],
    							);				
    
    							$children3_data[] = array(
    								'category_id' => $child3['category_id'],
    								'name'        => $child3['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data3) . ')' : ''),
    								'href'        => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']. '_' . $child2['category_id']. '_' . $child3['category_id'])	
    							);		
    						
    						
    						}
    				
    					$filter_data2 = array(
    						'filter_category_id'  => $child2['category_id'],
    					);				
    
    					$children2_data[] = array(
    						'category_id' => $child2['category_id'],
    						'name'        => $child2['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data2) . ')' : ''),
    						'children3'    => $children3_data,
    						'href'        => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']. '_' . $child2['category_id'])	
    					);		
    				
    				
    				}
    				
    				$filter_data1 = array(
    						'filter_category_id'  => $child['category_id'],
    					);	
    
    				$children_data[] = array(
    					'category_id' => $child['category_id'],
    					'name'        => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data1) . ')' : ''),
    					'children2'    => $children2_data,
    					'href'        => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])	
    				);		
    			}
    			
    			$filter_data = array(
    				'filter_category_id'  => $category['category_id'],
    			);
    
    			$data['categories'][] = array(
    				'category_id' => $category['category_id'],
    				'name'        => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
    				'children'    => $children_data,
    				'href'        => $this->url->link('product/category', 'path=' . $category['category_id'])
    			);	
    		}

    Код шаблона
    <div class="list-group">
          <?php foreach ($categories as $category) { ?>
            <?php if ($category['category_id'] == $category_id) { ?>
            <a href="<?php echo $category['href']; ?>" class="list-group-item active"><?php echo $category['name']; ?></a>
            <?php } else { ?>
            <a href="<?php echo $category['href']; ?>" class="list-group-item"><?php echo $category['name']; ?></a>
            <?php } ?>
            <?php if (($category['children']) && ($category['category_id'] == $category_id)) { ?>
              <?php foreach ($category['children'] as $child) { ?>
                <?php if ($child['category_id'] == $child_id) { ?>
                <a href="<?php echo $child['href']; ?>" class="list-group-item active">&nbsp;- <?php echo $child['name']; ?></a>
                <?php } else { ?>
                <a href="<?php echo $child['href']; ?>" class="list-group-item">&nbsp;- <?php echo $child['name']; ?></a>
                <?php } ?>
    			        <?php if (($child['children2']) &&  ($category['category_id'] == $category_id)) { ?>
    						  <?php foreach ($child['children2'] as $child2) { ?>
    							<?php if ($child2['category_id'] == $child_id2) { ?>
    							<a href="<?php echo $child2['href']; ?>" class="list-group-item active">&nbsp;&nbsp;&nbsp;- <?php echo $child2['name']; ?></a>
    							<?php } else { ?>
    							<a href="<?php echo $child2['href']; ?>" class="list-group-item">&nbsp;&nbsp;&nbsp;- <?php echo $child2['name']; ?></a>
    							<?php } ?>
    								<?php if (($child2['children3']) &&  ($category['category_id'] == $category_id)) { ?>
    									  <?php foreach ($child2['children3'] as $child3) { ?>
    										<?php if ($child3['category_id'] == $child_id3) { ?>
    										<a href="<?php echo $child3['href']; ?>" class="list-group-item active">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- <?php echo $child3['name']; ?></a>
    										<?php } else { ?>
    										<a href="<?php echo $child3['href']; ?>" class="list-group-item">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- <?php echo $child3['name']; ?></a>
    										<?php } ?>
    									  <?php } ?>
    								 <?php } ?>
    						  <?php } ?>
    					 <?php } ?>
              <?php } ?>
            <?php } ?>
          <?php } ?>
    </div>
    Ответ написан
    1 комментарий
  • Как с помощью событий отменить отправку заявки с сайта, плагин CF7?

    @Asokr
    Вместо
    alert("У формы №32 была нажата кнопка отправить");
    Как вариант
    event.target.querySelector('кнопка').remove()
    Ответ написан
    Комментировать
  • Почему отображается только один элемент в строке?

    @Asokr
    Добавлю в ответ...

    У вас цикл {% for product in products %} повторяет
    <div class="col-md-8">
          <div class="col-md-8 products">


    А должен только продукт
    <div class="col-sm-4">
           <div class="product">


    Вот ваш код:
    <div class="container content">
      <div class="row">
        <div class="col-md-4">
          <div class="list-group">
            <a href="{% url 'products:productsList' %}"
              class="list-group-item {% if not category %}selected{% endif %}">Все</a>
            {% for c in categories %}
            <a href="{{ c.get_absolute_url }}"
              class="list-group-item {% if category.id == c.id %}selected{% endif %}">{{ c.name }}</a>
            {% endfor %}
          </div>
        </div>>
        <div class="col-md-8 products">
          <div class="row">
             {% for product in products %}
            <div class="col-sm-4">
              <div class="product">
                <div class="product-img">
                <img src="{% if product.image %}{{ product.image.url }}{% else %}{% endif %}" alt="">
                </div>
                <p class="product-title">
                  <a href="{{ product.get_absolute_url }}">{{ product.title }}</a>
                </p>
                <p class="product-price">{{ product.price }} руб.</p>
              </div>
            </div>
              {% endfor %}
          </div>
        </div>
      </div>
    </div>
    Ответ написан
    Комментировать
  • Подсветка активного пункта меню wordpress?

    @Asokr
    Ну, если есть -
    <script>
        $(function(){
      $('a[href^="#"]').on('click', function(event) {
        event.preventDefault();
    
        var sc = $(this).attr("href"),
            dn = $(sc).offset().top - 100;
        $('html, body').animate({scrollTop: dn}, 1000);
      });
    });
    </script>

    Не вариант по этому же клику просто добавлять класс куда нужно, например на саму ссылку:
    $(this).addClass('currentActive');

    Если нужно только на пункт меню, можете по условию добавлять класс через JS, или задать стили для класса только меню....
    Ответ написан
    Комментировать
  • Почему не работает display на радио-кнопке по селектору :checked?

    @Asokr
    С такой версткой - только js.
    Если css, нужно поменять верстку и подправить css
    Ответ написан
    Комментировать