Giter Club home page Giter Club logo

dle-blockpro's Introduction

DLE-BlockPro — тот самый модуль для вывода новостей!

Release version DLE License

Установка модуля

  1. Устанавливаем как обычный плагин, файл blockpro_plugin.zip содержит всё необходимое для автоматической установки.
  2. Открыть файл /templates/Default/main.tpl
  3. Добавить после {AJAX} или после {jsfiles}: <link href="{THEME}/blockpro/css/blockpro.css" rel="stylesheet" />
  4. Добавить после {AJAX} или после {jsfiles}: <script src="{THEME}/blockpro/js/blockpro.js"></script>

dle-blockpro's People

Contributors

kohone avatar pafnuty avatar yuribtr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

dle-blockpro's Issues

Пигинация

  • Ещё вариант пагинации - кнопка "Показать ещё" с подгрузкой следующего блока новостей
  • http://lab.hakim.se/flexing-pagination/ - ещё один вариант пагинации и заодно стилизация.

При отрицательном рейтинге не работает "Хит"

Fatal error: SafeMySQL: BIGINT UNSIGNED value is out of range in '((`vip_news`.`e`.`rating` * 100) + (`vip_news`.`p`.`comm_num` * 10))'. Full query: [SELECT p.id, p.autor, p.date, p.short_story, p.full_story, p.xfields, p.title, p.category, p.alt_name, p.allow_comm, p.comm_num, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM `dle_post` p LEFT JOIN `dle_post_extras` e ON (p.id=e.news_id) WHERE approve AND date >= "2015-03-11 19:33:45" - INTERVAL 7 DAY AND date < "2015-03-11 19:33:45" ORDER BY fixed DESC, (e.rating*100+p.comm_num*10+e.news_read) DESC LIMIT 0, 20]. Error initiated in /var/www/html/engine/modules/base/blockpro.php on line 421, thrown in /var/www/html/engine/modules/base/core/SafeMySQL.php on line 610

Добавить файл дополнительных настроек

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

Расширенная работа с датами новостей

  • Указание периода для отбора в днях, а не интервал типа &day=now$dayCount=1 не должен захватывать новости, принадлежащие позавчерашнему дню.
  • Вывод новостей за конкретный интервал по датам &dateInterval=24.01.2015-30.02.2015
  • Вывод новостей на ненаступившую дату &dateFuture=y разрешает вывод новостей на ненаступившую дату несмотря на настройки движка. Так же при указании dayCount не убавляет, а прибавляет дни. Так же нужна поддержка &dateInterval

Не работает author=this

подозреваю, что виной тому $base->db->parse('?s', $_REQUEST["user"]);
нужно проверить все подобные конструкции

Использование статичной функции как обычной

Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/core/base.php on line 44 Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/core/base.php on line 63 Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/core/base.php on line 83 Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/blockpro.php on line 181 Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/blockpro.php on line 409 Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/core/base.php on line 131 Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/core/base.php on line 131 Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/core/base.php on line 133 Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/core/base.php on line 135 Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/core/base.php on line 135 Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/core/base.php on line 137 Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/core/base.php on line 140 Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/core/base.php on line 225 Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/core/base.php on line 231 Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/core/base.php on line 231 Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/core/base.php on line 232 Strict Standards: Accessing static property base::$dle_config as non static in /home/p36186/www/poigrala.ru/engine/modules/base/blockpro.php on line 456

Это на одном из сайтов. Нужно поправить.

Экранирование символа `

Если в названии новости есть ' то выодится ', например I'm выведет как I'm, Как это можно исправить.

Функционал публички

  • Сортировка по кол-ву скачиваний прикреплённых файлов.
  • Брать следующую картинку, если текущая не подходит
     // Вылавливаем URL первой картинки
      if (preg_match_all('/<img(?:\\s[^<>]*?)?\\bsrc\\s*=\\s*(?|"([^"]*)"|\'([^\']*)\'|([^<>\'"\\s]*))[^<>]*>/i', $shortStory, $m)) {
        // Адрес первой нормальной картинки в новости
        $imageUrl = false;
        foreach ($m[1] as $imgItem) {
          $_bl = false;
          foreach ($cfg['mediaBlacklist'] as $blItem) {
            if (($imgItem == null) || (strpos($imgItem, $blItem) !== false)) {
              $_bl = true;
              break;
            }
          }
          if ($_bl) {
            continue;
          }
          else {
            $imageUrl = $imgItem;
            break;
          }

        }
      }
  • Рефакторинг кода получения картинки. А ещё лучше переделать весь класс под нужды модуля, чтоб сам всё, что нужно проверял и выдавал картинку на выходе.
  • Выводить все картинки из новости в виде массива (будет полезно для галереек.)

Значимые переменные для формирования кеша

Нужно внедрить возможность указания значимых переменных из массива $_REQUEST для формирования кеша.
Как то так:
&cachePrefix=request|neswid|cat
Тогда для каждой страницы будет создан свой кеш.
Полезно к пимеру, если в списке новостей нужно выделить текущую.

{set $get = $.request}
<ul class="topnavi">
    {foreach $list as $key => $el}
        <li {if $get.newsid == $el.id} class="active" {/if}>
            <a href="{$el.url}" title="{$el.title}">{$el.xfields['short-name']}</a>
        </li>
    {/foreach}
</ul> <!-- .topnavi -->

Сейчас такое можно реализовать только через отключение кеширования блока.

Блок с новостями на стороннем сайте.

Уже двое просили о подобной возможности.
Я вижу два пути:

  1. Вывод RSS-информера, что удобно - его на стороннем сайте можно выводить и средствами js, а больших телодвижений совершать не требуется, только шаблон вывода и минимодуль для генерации rss-потока.
  2. Вывод через некое API по url или ещё как то, к примеру id блока равен какому-либо кешу или хешу. Возможно придётся подрубать работу с БД, например хранить там характеристики блока. В этом случаи можно будет обойтись дополнительным мини-модулем, работающем на ajax.

Новый установщик.

Необходимо переработать установщик модуля т.к. старый установщик не соответствует требованиям нового модйля.

Умный кроп

Павел, здравствуйте! Помните, просил вас сделать так, чтобы картинки в модуле BlockPro сначала уменьшались до фиксированного размера по ширине, а потом уже и обратилась до фиксированного по вертикали, чтобы сохранялись пропорции картинки. Это реально?

Брать следующую картинку, если текущая не подходит + вывод всех картинок массивом

Так же нужна возможность вывода всего массива картинок, желательно с описаниями.

 // Вылавливаем URL первой картинки
      if (preg_match_all('/<img(?:\\s[^<>]*?)?\\bsrc\\s*=\\s*(?|"([^"]*)"|\'([^\']*)\'|([^<>\'"\\s]*))[^<>]*>/i', $shortStory, $m)) {
        // Адрес первой нормальной картинки в новости
        $imageUrl = false;
        foreach ($m[1] as $imgItem) {
          $_bl = false;
          foreach ($cfg['mediaBlacklist'] as $blItem) {
            if (($imgItem == null) || (strpos($imgItem, $blItem) !== false)) {
              $_bl = true;
              break;
            }
          }
          if ($_bl) {
            continue;
          }
          else {
            $imageUrl = $imgItem;
            break;
          }

        }
      }

Вывод блока в категориях сайта (аналог [catlist=])

идея такая:
что-бы строка модуля
{include file="engine/modules/base/blockpro.php?template=blockpro/randompost&cacheLive=60&limit=4&CatId=2,3-32&sort=date"}

имела параметры для отображения себя ТОЛЬКО в перечисленных категориях.

Таким образом у нас появиться возможность выводить определенных публикации (заданные через модуль) только при просмотре нужных категорий.

ИЛИ тегов.

Вызов модуля в рассылках

Поступило пердложение реализовать возможность встраивания модуля в рассылки с сайта.
Думаю можно попробовать реализовать.
Либо запилить отдельный модуль.

Блок багов и пожеланий от первого покупателя

  • после генерации пропадает ссылка на используемый шаблон, тогда как все остальные параметры сохраняются.
  • нет парсера или хотябы окошка для айди имеющегося блока. Когда (и если) уловишь логику кода, то потом не трудно руками править, но все же с генератором намного удобнее

Админка

  • Реализовать получение строки подключения на ajax
  • Тянуть имена допполей из движка.

Возвращать размеры картинок (width, height)

Задумался над выводом картинок под ретину, и понял, что для этого необходимо хотя бы иметь размер изображения.
Соответственно надо бы доработать класс и метод ресайда под эту задачу.

Пользовательские действия

  • Реализация пользовательской сортировки
  • Реализовать пользовательские фильтры
  • Реализация навигации с перезагрузкой страницы

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.