Вход • Регистрация

Загрузка контента по Ajax

  • 09 июля 2017 г.
  • Привет!

    Есть файл с контентом, типа themes/blocks/counters.php

    Как при клике на ссылку (к примеру) загрузить содержимое файла, если он находится в Теме, не писал прямой путь?
    • 09 июля 2017 г.
    • https://www.diafan.ru/dokument/full-manual/developers/api/custom/
      Код
      BASE_PATH.Custom::path('themes/blocks/counters.php')

      Если есть активная тема и там файл /custom/имя_темы/themes/blocks/counters.php - выведется он, если нет, то /themes/blocks/counters.php
      • 09 июля 2017 г.
      • нет, я не про это.

        Есть кнопка, допустим, "Загрузить контент", при клике на нее, загружается файл themes/blocks/counters.php
        • 10 июля 2017 г. , редакция: 10 июля 2017 г.
        • В php напишите ajax обработчик на js.
          В переменную $path впишите путь, что дал Виталий.
          После в скрипте используйте переменную php $path.

          Не знаю на сколько глупо это звучит, но я так делал и все отрабатывало как надо
  • 14 июля 2017 г.
  • А как сделать так:

    На странице выводится 3 категории товаров через тег show_categoty module=shop и есть кнопка еще, при нажатии на которую загружается 3 категории и так далее и в конце, когда все категории загружены - кнопка пропадает?
    • 18 июля 2017 г. , редакция: 18 июля 2017 г.
    • Как один из вариантов, подходящих для любой CMS:
      Это нужно сделать через ajax ясное дело, и в качестве обработчика использовать файл, в котором ключевой функцией будет "file_get_contents".
      Через ajax в файл нужно передать номер сл.страницы, но сначала нужно узнать сколько вообще страниц, для того чтобы можно было как раз таки скрыть, если сл. страницы нет.
      После получения сл.страницы благодаря функции file_get_contents, нам нужно обозначить начала вывода категорий и конец, затем соответствующими функциями обрезать до начала и после конца, останется только то, что нам нужно, и после то что осталось возвращаем в js, откуда добавляем содержимое в конец списка категорий.

      пример обработчика:
      Код
      $page = file_get_contents($_GET['curp_url']);
      $pos = strpos($page, '<div id="wrap_content-shop_product">');
      $page = substr($page, $pos);
      $pos = strpos($page, '<div id="button_view_product_next">Показать еще</div>');
      $page = substr($page, 0, $pos);

      echo $page;


      Пример ajax:
      Код
      // Кнопка показать еще в каталоге
      $('#button_view_product_next').click(function(){
      var curp = $('#curp').val();
      var curp_url = $('#curp_url').val();
      $('#buttom_paginator' + curp).attr('href', curp_url).removeClass('active');
      curp++;
      curp_url = $('#buttom_paginator' + curp).attr('href');
      $('#curp').val(curp);
      $('#curp_url').val(curp_url);
      $('#buttom_paginator' + curp).removeAttr('href').addClass('active');
      history.replaceState(1, "", curp_url);
      $.ajax({
      url: 'http://impreza-profi.ru/custom/my/modules/shop/views/shop.view.ajax_shop.php',
      data: {curp_url: curp_url},
      beforeSend: function(){
      $('#button_view_product_next').html('<div class="shop_id-loader_product"><img src="http://impreza-profi.ru/custom/my/img/ajax-loader.gif"></div>');
      },
      success: function(result){
      $('footer').append('<div style="display:none;" id="hideShop_block"></div>');
      var pageShop = $('#hideShop_block').append(result).find('#wrap_content-shop_product').html();
      if(getCookie('shop_list_sort') == '2'){
      $('#wrap_content-shop_product').append(pageShop);
      func_productLine();
      }else{
      $('#wrap_content-shop_product').append(pageShop);
      }
      $('#hideShop_block').remove();
      $('#button_view_product_next').text('Показать еще');
      var pages = parseInt($('.block.paginator a').length);
      if(curp == pages) $('#button_view_product_next').remove();
      }
      })
      });
      • 18 июля 2017 г.
      • А где описывается кол-во подгружаемых элементов?
        • 19 июля 2017 г.
        • кол-во будет ровно столько, сколько выводится на странице.
          логика в том, что мы парсим у себя же на сайте.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум