Модуль SK Site Summary

Главные вкладки

Аватар пользователя Пользователь для тестов Пользователь дл... 9 мая 2007 в 4:23

Итак, я сделал это.
Представляю на ваш суд свой модуль SK Site Summary.
Что он делает?
Ничего экстраординарного, просто выводит, как например в подвале drupal.ru, статистику по сайту.

Пока модуль позволяет отобразить общее количество:

  • Зарегистрированных пользователей на сайте
  • Созданных материалов
  • Комментариев
  • Типов материалов
  • Существующих словарей

Функционал будет расширяться.

Я постарался сделать модуль конфигурабельным, т.е. вы всегда в настройках модуля сможете указать, что конкретно вам нужно отобразить.
Также, в настройках контроля доступа, вы всегда сможете указать какая пользовательская роль должна иметь доступ к этой информации и / или к администрированию модуля. И последнее, зачаток справки тоже существует. С наращиванием функционала, справка тоже будет расти.

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

Идея создания такого модуля родилась после прочтения http://www.drupal.ru/node/5477 около трёх часов дня.
Через 30 минут я нашёл решение, а через 7 часов, вперемешку с общением в джабере, приготовлением еды и ответами на вопросы на drupal.ru модуль был готов.

На самом деле, чего я такое говорю!? Нет, на самом деле, написание модуля упоительнишее занятие, давно так не оттягивался.
Не знаю, кто там что говорит про мануал от IBM по созданию модулей. Но на мой взгляд бестолковый, не актуальный мануал. От себя, будущим разработчикам, посоветую drupal.org - больше ничего и ненужно, ну не считая знаний php и mysql конечно...

Каковы планы в этой версии? Привожу в приоритетном порядке:

  1. Удостовериться в правильном английском
  2. Удостовериться в стопроцентной стабильности
  3. Реализовать настройку отображения (в строку/столбец)
  4. Проработать справку
  5. Упрощение програмного кода, количества запросов к базе
  6. Создание элегантной семантики
  7. Перевод на руский язык
  8. Выпуск первого релиза
  9. Попросить vadbars@drupal.org разместить модуль на drupal.org или попросить его рассказать как это делать самому : )

Код не является элегантным, сделал всё это дело фактически "на коленке", так что до выхода релиза ругать не очень ругайте, лучше подскажите как лучше, если у вс есть своё видение и мнение : )

В общем, пишите если что - поправлю/добавлю/изменю на лету.
Предложения и нарекания принимаются Smile

Внимание, версия модуля, как говорится development snapshot!

ВложениеРазмер
Файл SK Site Summary 5.x-1.x-dev5.56 КБ

Комментарии

Аватар пользователя rranger rranger 9 мая 2007 в 5:00

Уже прикрутил к внутрикорпоративному порталу! Smile
нарекания с предложениями:
1. паковать сразу с директорией! чтоб при установке было меньше ручной работы
2. конфигурабельный внешний вид! чтоб не только в столбик, но и в строчку/две
3. перевод! Lol
4. в ридми не сказано, что надо ещё и соотвествующий блок включить!

спасибо! в аккурат искал нечто подобное! своевременный модуль оказался. Smile

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 9 мая 2007 в 5:04

Спасибо.

Относительно пунктов:
1. Готово
2. Сегодня до вечера
3. Конечно, но в перспективе : )
4. Исправил

Аватар пользователя Natalie Natalie 9 мая 2007 в 7:01

Удобный модуль!
Предложение:
То, что опубликовано столько-то типов нод само по себе ничего не говорит. Лучше сразу сделать разбивку по типам. Например:
Опубликовано стольк-то тем форума, столько-то stories, и т.д.

Замечания по английскому:
мн. число от vocabulary - vocabularies

В Site Summary:

Display the nodes are published.
Лучше Display the number of published nodes.
Соответственно,
If enabled, shows the nodes are published.
будет
If enabled, shows the number of published nodes.

И т.д.

В блоке, чтобы не возиться с единственным и множественном числом, можно переделать фразу. Вместо 4 nodes are published. Number of published nodes: 4.

Аватар пользователя Natalie Natalie 9 мая 2007 в 7:05

>>Через 30 минут я нашёл решение, а через 7 часов, вперемешку с общением в джабере, приготовлением еды и ответами на вопросы на drupal.ru модуль был готов.

Мдаа... ну что тут можно сказать... жаль, что ты уже женат Smile

Аватар пользователя Dan Dan 9 мая 2007 в 10:06

Критику принимаешь? Smile

1. Самое главное - надо включить кэширование. С возможностью задавать в админке время кэширования.
2. Если я включил показ только одной переменной у меня выборка из базы будет по всем переменным?
Очевидно, надо делать как-то так:
<?php
if($variable_get('sksitesummary_display_type', NULL)) {
$skss_total_type = db_result(db_query("SELECT count(*) AS count FROM {node_type}"));
$block_content .= ''. "$skss_total_type" . t(' node types are published. ') .'';
}
?>

3. Непонял, зачем так: "sizeof($config_sksitesummary_node) > 0", что, без этого не работает?
4. Вынести формирование отображения в ф-цию theme_

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 9 мая 2007 в 13:45

Критика принимается! Smile

1. Кэширование будет. Обязательно будет.
2. Исправлю сегодня.
3. Хм, действительно, надо посмотреть....
4. Реализуем

P.S. Не $variable_get а variable_get : )

Аватар пользователя kosmit kosmit 9 мая 2007 в 16:47

Было бы неплохо реализовать выбор и показ информации, из профилей пользователей.
Чтобы это поле было настраиваемым.
Например, я создаю в профиле поле "день рождения", и модуль выдает данные у каких зарегистрированных пользователей сегодня день рождение.
Или сколько у меня на сайте программистов и бухгалтеров. Эти данные тоже берутся из профиля.

Аватар пользователя AlterEgoEast AlterEgoEast 9 мая 2007 в 18:28

Не являясь программистом- говорю как пользователь.

Модуль очень удобен! Как для админов сайта так и просто для пользователей.

А с точки зрения финансовой (при продаже рекламного места на сайта)- вообще идеальная штука! Отличный инструмент "котрольного выстрела" в голову потенциального клиента.

Кроме того, если реализутся все то о чем в сабже говорится выше- поппулярность модулю по всему Drupal миру обеспечена.

В конце хочу добавить, что именно так, спонтанно, зачастую делаются вещи (не только модули), которые, на деле куда более практичные, нежели заранее продуманные и прописанные
respect' ы

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 9 мая 2007 в 18:45

Версия 1.0.2

Краткий список основных изменений:

  • Исправлена английская орфография
  • Оптимизирован исходный код
  • Минимизировано число запросов к базе
  • Расширена справка
  • Опция горизонтальное / вертикально представление

Полный список изменений в CHANGELOG.txt
Список планов в TODO.txt

В общем, как всегда, пишите свое мнение.
Предложения и нарекания принимаются

UPD 1: Делаю кэширование данных + настройка в админке этого дела. Сегодня реализую
UPD 2: Кэширование и его настройка готовы. Делаю сюрприз Wink

Аватар пользователя RISK RISK 9 мая 2007 в 20:47

Вы будете смеяться, но я скопировал модуль в папку...
и не нашел его на странице! Lol

Предлагаю две вещи:

1. Убрать "package = Core - optional". Непривычно там его искать.
2. Отказаться от "Number of " и сделать все короче.

PS. Сделано было сильно, человек спросил как
вывести статистику, раз и модуль!

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 9 мая 2007 в 21:11

1. Думаю над этим, не решил ещё правильно, но обязательно изменю.
2. Можно зайти в настройки локализации и перевести как угодно, хотя, да, я что нибудь придумаю

P.S. Изменения будут в версии 1.0.3, в которой также будет реализовано кэширование. Версия выйдет до утра.

P.P.S. Спасибо большое

Аватар пользователя Dan Dan 9 мая 2007 в 22:34

Кэширования я пока не дождался, скажу что есть на данный момент.

=== Readme.txt
1. Каталог для модулей лучше изменить:
"1) Copy sksitesummary directory to your_site/modules directory."
на
"1) Copy sksitesummary directory to sites/all/modules directory."

2. Перед WMZ поставить WebMoney (http://www.webmoney.ru), вдруг кто не знает Smile
А вообще для буржуинов, на мой вгляд, надо PayPal заводить Smile

=== Модуль
3. Если не ошибаюсь комменты должны быть неотрывны от функций (для системы документации).
Тоесть:
<?php
/**
* Implementation of hook_help()
* Display help and module information
* param section which section of the site we're displaying help
* return help text for section
*/

/*
"/admin/help/$MODULE_NAME"
*/
function sksitesummary_help($section = 'admin/help#sksitesummary') {
?>
надо поменять на
<?php
/**
* Implementation of hook_help()
* Display help and module information (path: "/admin/help/$MODULE_NAME" )
* param section which section of the site we're displaying help
* return help text for section
*/
function sksitesummary_help($section = 'admin/help#sksitesummary') {
?>
...и далее убрать лишние переводы строк между описанием и началом ф-ции.

4. Не надо проверять:
"} else if ($block_content == '' && user_access('access site summary')) {"
т.к. проверка на user_access('access site summary') уже была ранее:
"else if ($op == 'view' && user_access('access site summary')) {"

Все мои замечания вобчем-то не серьёзные, так придираюсь, сам же меня в бета-тестеры записал, вот хлеб и отрабатываю Lol

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 9 мая 2007 в 23:44

Спасибо, щас, за пивом сгоняю (отмечать победу над кэшированием), внесу окончательные изменения + эти и залью новую версию : )

Аватар пользователя rranger rranger 9 мая 2007 в 23:47

Ээээ... это только у меня показывает, что количество опубликованных комментариев 0? Хотя их в системе немерянно...

Аватар пользователя dlynx dlynx 10 мая 2007 в 3:05

>Было бы неплохо реализовать выбор и показ информации, из профилей пользователей.
>Чтобы это поле было настраиваемым.
>Например, я создаю в профиле поле "день рождения", и модуль выдает данные у каких зарегистрированных пользователей >сегодня день рождение.
>Или сколько у меня на сайте программистов и бухгалтеров. Эти данные тоже берутся из профиля.

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

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 10 мая 2007 в 3:07

Версия 1.0.3

Краткий список основных изменений:

  • Добавлено кэширование
  • Добавлено администрирование кэширования
  • Исправлена критическая ошибка с выводом информации о комментариях
  • Дополнен раздел справки
  • Изменена администраторская часть модуля

Полный список изменений в CHANGELOG.txt
Список планов в TODO.txt

Как всегда — Жду реакции : )

Аватар пользователя kosmit kosmit 10 мая 2007 в 3:23

В настройке What should be displayed
все написано на английском, и тут "Опубликованные материалы".
В настройках Data caching
сейчас написано Cahe Date, я не знаток англ языка, но это кажется не так пишется.

+ чего хотелось бы в будущих релизах, так это выбор в какой последовательности выводилась информация.
+ на данный момент данные выводятся в виде
Number of published nodes: 213 Number of users are registered: 2626 Number of comments are published: 122
Визуально смотреть довольно тяжело. Я думаю нужно сделать перегородки каки-нибудь когда информация выводится в линию.

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 10 мая 2007 в 3:30

>"Опубликованные материалы".
Так работает Drupal. Если он встречает перевод на строку и модуль locale включён, он ее переводит автоматом

>сейчас написано Cahe Date,
Не так там написано, а написано Cahe data — кеш данных, хотя да, коламбур, в след. патче сделаю по человечески.

>чего хотелось бы в будущих релизах
Займусь на днях

>Я думаю нужно сделать перегородки к
наболевшая проблема. Решим : )

Аватар пользователя B.X B.X 10 мая 2007 в 4:44

Интересный модуль... надо будет посмотреть...
хех, тебе описание для него не надо? со скриншотами?

Аватар пользователя Dan Dan 10 мая 2007 в 12:40

В модуле неправильно отображаются пути.
Для ссылок надо использовать функцию l() (маленькая L)
пример:
<?php
// вместо
t('No information to be displayed. Please specify what data should be displayed on the page settings.')
// надо
t('No information to be displayed. Please specify what data should be displayed on the '.l(t('page settings'), 'admin/settings/sksitesummary'))

//Также, вместо
'' .t('Options') . ""
//надо
l(t('Options'),'admin/settings/sksitesummary')
?>

На мой взгляд, все сообщения надо сократить:
Number of node types are published -> Published nodes
Посмотри модуль xstatistic, он делает то же, что и твой, но в нём есть несколько дополнительных параметров (надо их оттуда слямзить Smile и короче сообщения. Твой модуль правда уже круче Smile

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 10 мая 2007 в 13:28

Сделано!
Спасибо : )

Следущая версия, пропатченная, и много интереснее выйдет сегодня.

Аватар пользователя andron13 andron13 10 мая 2007 в 18:23

поставил. если сообщения выведены в столбик, а не в строчку , то между строчками много пространства, как будто две бр-ки стоят , а не одна. ошибок больше не нашёл. как не старался Smile

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 10 мая 2007 в 18:30

Поправить то конечно можно.
Но зачем?
Сегодня выйдет следущая версия в которой темизация будет : )

Аватар пользователя rranger rranger 11 мая 2007 в 8:29

Ну коль пошла такая пьянка, то хочу ещё и свои запросы к статистике добавлять! Smile
Например, заявок - столько-то, задач - столько, просроченых - нет и тому подобное. Названия пунктов статистики и собственно запросы к базе - задаются непосредсвенно администратором сайта. Smile

Аватар пользователя kosmit kosmit 11 мая 2007 в 10:12

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

2.И сколько таких реквизитов, и в каком порядке выводить будет думать сам администратор.

3.Выбор в каком блоке будет выводится каждый реквизит.

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 11 мая 2007 в 12:38

Вчера ничего не делал - гости были.
Сегодня продолжим (хоть и болит голова после вчерашнего) : - (

Аватар пользователя Dan Dan 11 мая 2007 в 12:41

> 1.Возможно нужно сделать универсальное поле, которое можно заполнить любым реквизитом,
> по которому можно было бы собирать статистику.
> 2.И сколько таких реквизитов, и в каком порядке выводить будет думать сам администратор.
Такое поле уже есть - пишите код в теле блока! Чем не устраивает? Если вы в состоянии написать SQL запрос, вам это модуль ни к чему. А кэширование можно и ручками сделать.

Аватар пользователя kosmit kosmit 11 мая 2007 в 13:50

Я просто предлагаю дальнейшие развитие именно этого модуля.
Так чтобы он был удобен и тем кто не знаком с sql запросами.

Аватар пользователя rranger rranger 11 мая 2007 в 16:43

написать-то код прямо в модуль можно... но тогда при каждом обновлении модуля все исправления придётся вносить заново или обновление ставить через diff, что тоже достаточно муторно...

Аватар пользователя Dan Dan 11 мая 2007 в 13:51

> Меня устраивает, я просто предлагаю дальнейшие развитие именно этого модуля.
Если не SQL, то что тогда подразумевалось под словами "любым реквизитом, по которому можно было бы собирать статистику"?

Внешний вид можно будет изменять, когда автор сделает поддержку темизации.
Порядок и "показывать в разных блоках" - перегруз модуля, можно просто написать в readme.txt написать, каким кодом непосредственно в тексте блока это можно сделать.

Аватар пользователя kosmit kosmit 11 мая 2007 в 14:18

Согласен если в readme.txt будет пример кода.
Возможно я неправильно выразил свою мысль.
Пример есть поле в котором выбирается таблица, например таблица.Пользователи
Когда это поле.Пользователи выбрано, ниже активизируется следущее поле по которому можно выбрать реквизит, по которому будет формироваться статистика.
Это я развиваю мысль которую уже взял SadhooKlay и написал в TODO.txt
New:
o Extended abilities for work with fields in user's profiles (kosmit's idea)
o Enhaced CHANGELOG.txt

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 12 мая 2007 в 3:50

Об чём спор? Скоро всё будет. Официально заявляю, что в ближайшем будущем, возможно будет настраивать модуль как угодно, в том числе и под любое количество любых данных.

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 13 мая 2007 в 2:22

Версия 1.0.4

Краткий список основных изменений:

  • Добавлено понятие "Все пользователи" и "Активные пользователи"
  • Добавлено понятие "Все материалы" и "Опубликованные материалы"
  • Добавлено понятие "Все комментарии" и "Опубликованные комментарии"
  • Добавлено значение "Все модули"
  • Добавлено значение "Включённые модули"
  • Расширена справка
  • Исправлены мелкие неточности

Полный список изменений в CHANGELOG.txt
Список планов в TODO.txt

UPD: Начал разрабатывать следующую версию

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 14 мая 2007 в 5:04

Совсем скоро (не без советов Dan-a) выйдет версия с темизацией и выбором веса строк.
Вот это будет удобно, а пока так, баловство : )
Сегодня, к 5 утра, полностью переписал ядро модуля.
Щас посплю пару часиков, к обеду протестирую на localhost и видимо выложу первую бета версию в истории модуля : )
Ожидается много кардинальных нововведений.

UPD: Не за горами первый релиз модуля.

Аватар пользователя keymasterr keymasterr 16 мая 2007 в 23:33

При входе в настройки есть надписи "Data caching", "Other". Так вот, они у меня почему то не раскрываются (то есть это просто текстовые строки). И так, кажись, на всем сайте. В чем может быть проблема?

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 17 мая 2007 в 16:47

Хм... странно.
У меня всё открывается и насколько я понимаю у всех тоже.
Скоро выйдет следущая версия (времени нехватает), я постараюсь найти ошибку, если таковая имеется.
Но всё же проверьте - всё ли у вас правильно настроено/установлено.

Аватар пользователя cwer cwer 17 мая 2007 в 21:19

> И так, кажись, на всем сайте. В чем может быть проблема?
Что-то с яваскриптами наверное.
Возможно что-то мешает друпаловским яваскриптам Smile

Аватар пользователя keymasterr keymasterr 18 мая 2007 в 0:19

Да нет, Ваш модуль ни при чем, это что-то с Друпалом (наверное при закачке на хост где-то глюканул, так что сорри, здесь это скорее оффтоп :().
Кстати, большое спасибо, модуль действительно очень полезен, и очень вовремя и удобно подвернулся.
А насчет нераскрывающихся настроек - никто не знает, что и где за них отвечает? Может просто файлы проверю, заменю.
UPD
а, еще: .htaccess'a на сайте нет, т.к. он не давал доступ на сайт (IISPassword The page cannot be displayed...) может ли быть проблема в этом и как с ней разобраться?

Аватар пользователя axel axel 26 мая 2007 в 15:21

Небольшой feature request: добавить вывод количества терминов таксономии (общее по всем словарям) на сайте (то что на этом сайте выводится внизу как "число категорий и меток к документам").

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 26 мая 2007 в 15:49

Будет!

TODO растёт : )

UPD: Сегодня будет промежуточная версия SK Site Summary 5.x-1.0.4.1

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 9 июня 2007 в 21:04

Версия 1.0.4.1
Промежуточная версия

Краткий список основных изменений:

* Добавлена поддержка CSS
* Добавлен локализация на русский язык (ru.po)
* Добавлен шаблон для перевода (sksitesummary.pot)
* Doxygen совместимый формат
* Код стал максимально читабельным, насколько это возможно теперь
* Исправлена не критичная ошибка с меню

Весь код, с нуля, был переписан в Eclipse

Полный
список изменений в CHANGELOG.txt
Список планов в TODO.txt

Аватар пользователя Hakimoto Hakimoto (не проверено) 19 июня 2007 в 17:41

Кажется есть ошибочка в определении констант (строки 17 и 18 модуля). В итоге препэндится пустое окончание блока.

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 19 июня 2007 в 17:45

Постараюсь разобраться в срочном порядке, как только появится свободное время.
Благодарю.

Аватар пользователя Hakimoto Hakimoto 19 июня 2007 в 19:37

Еще заметил одну штучку: в администрировании модуля, в секции What should be displayed, чекбокс для Total Users не активизируется не смотря на то, что на данный момент эта опция активна (т.е. количество пользователей отббражается).

Аватар пользователя MDD MDD 26 октября 2007 в 0:46

рульный модуль Smile

Одно но... если поставить галочку - выводить горизонтально, то не хватает пробелов

И... хотелось бы считать материалы не всех типов сразу, а только определенные... Smile