24.03.2011

UncosNews — Компонент для MODx Revolution

UncosNews — Компонент для MODx Revolution

Hey english mans, this is reedme on your lang :)

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

По своей природе, чаще всего, новости — это коротенький текст аля «Ура новая фича у нас!» или «Распродажа! Налетай!», «Скидки на кеды!». Ну и я не знаю что еще. Отводить под этот ЦЕЛЫЙ ресурс — это расточительство.

В общем я наконец сподобился и сделал собственный модуль новостей. Он простой и удобный. И, кстати, ничего подобного в имеющихся модулях для Рево нет.

UncosNews



Это очень простой но очень полезный компонент для MODx Revolution позволяет создавать у себя на сайте простую страницу с новостями.

  • Все новости хранятся в отдельной таблице базы данных, поэтому не будут мешаться в дереве ресурсов
  • Простое и удобное меню для добавления и редактирования новостей находится в разделе Компоненты.
  • Новости можно выводить в любом виде и в любом месте на сайте в списком последних новостей или отдельной расширенной новостью.

UncosNews так же можно использовать для всего чего угодно. Например для мини блога, или списка чего-либо полезного, для отображения цитат или рекламных ссылок.
В любом месте вашего сайта! Просто добавьте вызов сниппета.

Вызов сниппета:

[[!UncosNews]]

Параметры:

&tpl=`rowTpl` // Чанк для списка новостей
&fulltpl=`fullTpl` // Чанк для полной новости
&sort=`id` // Поле сортировки (id:По порядковому номеру, title: по заголовку, desc: по описанию, text: по тексту, createdon: по дате создания, editedon: по дате редактирования)
&dir=`DESC` // направления сортировки (ASC или DESC)
&limit=`0` // Количество новостей в листе (0 - без ограничений)
&newsPage=`` // ID страницы с новостями, где отображается полный текст новости (по умолчанию текущая страница)
&expand=`true`// если `0`, запрещает показывать полную новость в этом вызове сниппета (полезно, если на одной и той же странице находятся как лента так и развернутая новость)

Плейсхолдеры:

[[+createdby]] // ID автора
[[+user.fullname]] //Полное имя автора
[[+user.username]] // Имя автора (такой же как логин)
[[+createdon:strtotime:date=`%d.%m.%Y`]] // Дата создания (с фильтром для примера. по умолчанию дата выводится в формате YYYY-MM-DD)
[[+editedon:strtotime:date=`%d.%m.%Y`]] // Дата редактирования
[[+editedby]] // ID того, кто редактировал
[[+url]] // адрес полной новости
[[+title]] // Заголовок
[[+desc]] // Короткое описание (анонс)
[[+text]] // Полный текст новости

Чанк, используемый по умолчанию:
1
2
3
4
5
6
<div class="news_box">
  <div class="news_credits">Created by [[+user.fullname]] aka [[+user.username]] on [[+createdon:strtotime:date=`%d.%m.%Y`]]</div>
  <div class="news_title"><a href="[[+url]]">[[+title]]</a></div>
  <div class="news_desc">[[+desc]]</div>
  <div class="news_text">[[+text]]</div>
</div>

Примеры


Предположим у вас есть страница новостей с ID 55 и в левой колонке находится 3 свежих новостных заголовка.
Тогда для вывода новостной ленты в колонке мы вызовем сниппет:
[[!UncosNews? &tpl=`NewsListTpl` &limit=`3` &newsPage=`55` &expand=`0`]]
Где tpl — чанк для новостной ленты, limit — количество заголовков, newsPage — страница новостей, где будут отображаться расширенные новости и expand — запрет на отображение расширенных новостей в левой колонке.
Для страницы новостей с ID 55 вызов сниппета будет совсем простой:
[[!UncosNews? &tpl=`FullNewsListTpl`&fulltpl=`FullNewsItemTpl`]]
Где tpl — чанк для новостной ленты на странице новостей, fulltpl — чанк для одной развернутой новости.

Качаем, ставим, комментируем


Текущая версия 1.0.1 RC-1 На modx.com/extras



25 комментариев

  1. There is an error in line 83 of the snippet: You should use ‘&n=’ instead ‘?n=’ ….

    Summerson

    • Hmm.. Why I must use amp instead of «?». There is only one parameter. Probably will not work unless you use the friendly URL

    • I tried it with «?» —> I’m always referred to the index-page
      I changed «?» to «&» —> It workes fine …with the output: …id=50&n=1
      But you are right: I don’t use friendly URLs. Maybe It won’t work with an «&» after switching to friendly URLs.

      SummerSon

    • Thank you for your bag report. I added fix for users, who don’t use frendly URLs.
      You can fix it manualy. On line 83 simply replace the —’?— to this code:
      ($modx->getOption(‘friendly_urls’)? ‘?’ : ‘&’).’

  2. Анонимус:

    Отличный модуль, но почему редактор не tynemce? в встроеном редакторе невозможно добавить картинки в посту что очень неудобно

  3. Анонимус:

    Привет, благодарю за дополнение. От себя хотелось бы попросить добавить возможность редактирования/изменения даты создания новости.

  4. Анонимус:

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

  5. Is this available on github? Would be cool to set bugs, feature-requests and I can do translation EN->DE

  6. Анонимус:

    Добавить бы возможность добавления полей в настройках, чтоб можно было добавлять поля типа картинка, картинка2, автор, ссылка на фото (видео) галлерею и т.д.

  7. Анонимус:

    Можно ли сделать листание страниц с заголовками новостей штук по 10, если в архиве их уже много? очень желательно с примером. спасибо, классный модуль =)

  8. Анонимус:

    Добрый день!

    А пагинации нет? Если у меня 100 новостей на сайте, я в боковое меню вставляю limit 5 — отлично, показывает последние 5. А при переходе на главную страницу с полными версиями новостей — там все 100 подряд будут показаны?

  9. user:

    Замечательно, но пара замечаний все же есть:
    1. При создании новости не проставляется дата последнего исправления. Более правильно выводить новости в сортировке последнего изменения: поправил новость — и вот она уже on-top, для тех же кому это не нужно — можно и по дате создания. А то получается, что не правленные новости не получается отсортировать в одном списке вместе с правленными.
    2. Не совсем прозрачно из описания, как все же использовать «из коробки», пока ручками не допилишь, пока мозгами не дойдешь не применишь. Здорово б было, если в пакете сразу устанавливались дефолтные чанки для новостного информера, для списка новостей, для страницы с полной новостью и в описании примеры их использования. Дефолтный же вид можно из кода сниппета вынести. Тогда и экспериментировать не так страшно будет :) и быстрее к использованию переход.

    Спасибо.

  10. Анонимус:

    Хороший модуль.
    Нет ли возможности выбирать новости с определенного айди и до другого определенного, чтобы можно было сделать пейдж навигатор?

    • Анонимус:

      Сам разобрался =)
      Добавил в код сниппета строчку
      $from = $modx->getOption(‘from’,$scriptProperties,false);
      и выбор лимита подредактировал
      if($limit) $c->limit($limit, $from);
      Теперь можно использовать параметр from при вызове сниппета.

  11. I have website in two languages. I’d like to show english post in english version and polish post in polish version. Is ther any possible to do this with uncosnews

  12. Добрый день.
    Отличный компонент!
    Только очень не хватает mce. Еще не сделали обновления?

  13. Анонимус:

    Спасибо за отличный модуль! Когда можно ждать следующего релиза с полным редактором TinyMCE?

  14. df:

    Здарова. Установил модуль, прописал chunks, влепил в шаблон в левую колонку список новостей, при нажатии на заголовок браузер должен переходить на index.php?10&n=1. В хроме все нормально, а в остальных трех (IE,moz,opera) возвращает индексную страницу. В чем может быть проблема? Спасибо.

  15. Анонимус:

    Спасибо за модуль Александр!
    Мне удалось прикрутить Tiny к uncosnews. Правда не знаю на сколько правильно сделано, но работает.
    Так что если есть интерес, могу дать исходники. Если все ок, можете опубликовать версию с tinymce.
    Профильной ветки на сайте модекс не нашел, по этому пишу сюда.

  16. Анонимус:

    Это суперштука. Единственное чего ей не хватает это возможности фильтрации новостей. В идеале было бы круто если бы появилась возможность создавать вкладки сверху (там где сейчас вкладка ВСЕ НОВОСТИ) и добавлять туда новости разной тематики, а вызове сниппета указывать из каких вкладок выводить новости.

    Или другой вариант — ввести ещё одно поле — метка новости, куда ручками вписываем тэг и потом так же через сниппет выводим в одном месте новости только с этим тэгом, а в другом месте — с другим тэгом.

  17. Hello and thank you for great exta.
    Do you consider implementing some pagination? I tried to use getPage with UncosNews as there a «limit» property but it didn’t work…
    Any ideas?

  18. Анонимус:

    без редактора tynemce очень тяжко, так как новости получаются слабоватыми без контента графического и флэш

  19. Анонимус:

    Добрый день.
    Воспользовался вашим плагином…все удобно за исключением мелочи.

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

    К примеру по 10 новостей на страницу и список страниц страниц. С отдельным чанком под список.

    насколько я понял сейчас имеется возможность вывести либо все новости на страницу либо нужное количество с конца или начала таблицы

    Не планируется, чего либо такого ? Очень бы хотелось

  20. А почему сайт не на Модексе? ;) Спасибо за модуль. Как раз меня недавно спрашивали по новостному модулю — порекомендую Ваш.

Оставить комментарий