Перейти к публикации

Shohxusrav

новички
  • Публикации

    5
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем Shohxusrav

  1. В 30.11.2017 в 15:30, redissx сказал:

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

     

    Загрузка при клике по кнопке


    В итоге мы получим это

    1512035499_firefox_screenshot_2017-11-30

     

    1. В navigation.tpl вашего шаблона

    
    <div class="bottom-nav ignore-select" id="bottom-nav">
    	    <div class="nav-load" id="nav-load">[next-link]Загрузить еще[/next-link]</div>
        
        <!-- сюда можете вставить дополнительно обычную навигацию -->
        
    </div>

    2. В конец css файла вашего шаблона

    
    .bottom-nav {clear: both; padding-top: 60px;}
    .nav-load {text-align: center;}
    .nav-load a {padding: 0 60px; display: inline-block; height: 60px; line-height: 60px; border-radius: 30px;
    font-weight: 700; font-size: 18px; background-color: #2980b9; color: #fff;}
    .nav-load a:hover {background-color: #00a652; color: #fff;}
    .nav-load span {display: none;}

    3. В конец js файла вашего шаблона

    
    $(document).ready(function(){
        
             $('body').on('click','#nav-load a',function(){
            var urlNext = $(this).attr('href');
            var scrollNext = $(this).offset().top - 200;
            if (urlNext !== undefined) {
                $.ajax({
                    url: urlNext,
                    beforeSend: function() {
                        ShowLoading('');
                    },            
                    success: function(data) {
                        $('#bottom-nav').remove();
                        $('#dle-content').append($('#dle-content', data).html());
                        $('#dle-content').after($('#bottom-nav'));
                        window.history.pushState("", "", urlNext);
                        $('html, body').animate({scrollTop:scrollNext}, 800);    
                        HideLoading('');
                    },
                      error: function() {                
                        HideLoading('');
                        alert('что-то пошло не так');
                      }
                });
            };
            return false;
        });
        
    });


    Автоматическая загрузка при скролле


    В итоге по мере прокрутки к нижним новостям следующие новости будут автоматически загружаться.

     

    1. В navigation.tpl вашего шаблона

    
    <div class="bottom-nav ignore-select" id="bottom-nav">
    	    <div class="nav-load" id="nav-load">[next-link]Загрузить еще[/next-link]</div>
        
    </div>

    2. В конец css файла вашего шаблона

    
    .bottom-nav {clear: both; opacity:0;}

    3. В конец js файла вашего шаблона

    
    $(document).ready(function(){
        
        var loadLink = $('#nav-load'), loadStatus = 0;
        $(window).scroll (function () {
            if ($(this).scrollTop() + $(this).height() + 50 > loadLink.offset().top) {
                var urlNext = loadLink.find('a').attr('href');
                if (urlNext !== undefined && loadStatus == 0) {
                    loadStatus = 1;
                    $.ajax({
                        url: urlNext,
                        beforeSend: function() {
                            ShowLoading();
                        },            
                        success: function(data) {
                            $('#bottom-nav').remove();
                            $('#dle-content').append($('#dle-content', data).html()).after($('#bottom-nav'));
                            window.history.pushState("", "", urlNext);
                            HideLoading();
                            loadStatus = 0, loadLink = $('#nav-load');
                        }
                    });
                } else {
                    loadLink.remove();
                };
            };
        });  
        
    });

    здесь в строке

    
            if ($(this).scrollTop() + $(this).height() + 50 > loadLink.offset().top) {


    цифра 50 - это расстояние до нижнего края новостей при котором начинается загрузка. То есть вы можете немного заранее загружать, пока юзер не доскроллил до конца, меняя эту цифру. Например, 250 - новости будут загружаться раньше.


    Также замечу, что рекомендуется использовать загрузку только на главной и в категории во избежание проблем. Обычно я делаю так в navigation.tpl

    
    [aviable=main|cat]
    <div class="bottom-nav ignore-select" id="bottom-nav">
    	    <div class="nav-load" id="nav-load">[next-link]Загрузить еще[/next-link]</div>
        
        <!-- сюда можете вставить дополнительно обычную навигацию -->
        
    </div>
    [/aviable]
    	[not-aviable=main|cat]
    <!-- обычная навигация -->
    [/not-aviable]

    Еще раз здравствуйте!

     

    А как можно сделать что бы рекламный баннеры показался между контентом после каждый 20 новость.

     

    Мой конф:

    <div id="dle-content">{custom category="11,13-20" template="shortstory" aviable="main" from="0" limit="20" order="date" navigation="yes"}</div>

    Спасибо!

  2. 6 минут назад, Captain сказал:

    Читай доки, такого тега в этом файле нет

    https://dle-news.ru/extras/online/relatednews.html

    Правила, касающиеся данного раздела

    1. В данном разделе разрешено публиковать только готовые модули или хаки, а также полезные советы. Любые запросы на создание того или иного, а также вопросы, касающиеся движка, публикуются в соседнем разделе.

     

    Знаю, но как можно реализовать ?

  3. Всем привет.

     

    У меня появится такая проблема. Вот поставлю код {views} на realtednews.tpl и не появится просмотры.

     

    В гугле есть готовый хаки но они не для DLE 13.0

     

    https://dle-faq.ru/faq/phpquest/17616-kak-vyvesti-v-relatednewstpl-kolichestvo-prosmotrov-i-logi-polzovatelya-dlya-dle-106.html

     

    Спасибо!

  4. Здравствуйте!

     

    У вас отличный хак. Но есть вопрос. Если новости показывает в main.tpl с помощью тег {content} работает без проблем.

    А я пользуюсь с тег {custom}. Потому что мне нужно выводить определенный новости с категориями. 

     

    Мой вариант:

    {custom category="5-6" template="shortstory" aviable="global" from="0" limit="20" order="date" navigation="yes"}

     

    Как можно разобраться что хак работал тоже с {custom} тегам.

     

    Спасибо!

×
×
  • Создать...