Модуль SK Site Summary
Прислано: Пользователь для тестов
ср, 09/05/2007 - 00:23
Итак, я сделал это.
Представляю на ваш суд свой модуль SK Site Summary.
Что он делает?
Ничего экстраординарного, просто выводит, как например в подвале drupal.ru, статистику по сайту.
Пока модуль позволяет отобразить общее количество:
- Зарегистрированных пользователей на сайте
- Созданных материалов
- Комментариев
- Типов материалов
- Существующих словарей
Функционал будет расширяться.
Я постарался сделать модуль конфигурабельным, т.е. вы всегда в настройках модуля сможете указать, что конкретно вам нужно отобразить.
Также, в настройках контроля доступа, вы всегда сможете указать какая пользовательская роль должна иметь доступ к этой информации и / или к администрированию модуля. И последнее, зачаток справки тоже существует. С наращиванием функционала, справка тоже будет расти.
Играясь с настройками блока, можно указать на каких страницах вам нужно отобразить эту информацию.
И естественно, вы можете указать, где конкретно, в каком регионе вам нужен вывод этой информации, например в подвале или в правой колонке.
Идея создания такого модуля родилась после прочтения http://www.drupal.ru/node/5477 около трёх часов дня.
Через 30 минут я нашёл решение, а через 7 часов, вперемешку с общением в джабере, приготовлением еды и ответами на вопросы на drupal.ru модуль был готов.
На самом деле, чего я такое говорю!? Нет, на самом деле, написание модуля упоительнишее занятие, давно так не оттягивался.
Не знаю, кто там что говорит про мануал от IBM по созданию модулей. Но на мой взгляд бестолковый, не актуальный мануал. От себя, будущим разработчикам, посоветую drupal.org - больше ничего и ненужно, ну не считая знаний php и mysql конечно...
Каковы планы в этой версии? Привожу в приоритетном порядке:
- Удостовериться в правильном английском
- Удостовериться в стопроцентной стабильности
- Реализовать настройку отображения (в строку/столбец)
- Проработать справку
- Упрощение програмного кода, количества запросов к базе
- Создание элегантной семантики
- Перевод на руский язык
- Выпуск первого релиза
- Попросить vadbars@drupal.org разместить модуль на drupal.org или попросить его рассказать как это делать самому : )
Код не является элегантным, сделал всё это дело фактически "на коленке", так что до выхода релиза ругать не очень ругайте, лучше подскажите как лучше, если у вс есть своё видение и мнение : )
В общем, пишите если что - поправлю/добавлю/изменю на лету.
Предложения и нарекания принимаются :)
Внимание, версия модуля, как говорится development snapshot!
| Прикрепленный файл | Размер |
|---|---|
| SK Site Summary 5.x-1.x-dev | 5.56 кб |
- Пользователь для тестов's blog
- Для комментирования войдите или зарегистрируйтесь
Уже прикрутил к внутрикорпоративному порталу! :)
нарекания с предложениями:
1. паковать сразу с директорией! чтоб при установке было меньше ручной работы
2. конфигурабельный внешний вид! чтоб не только в столбик, но и в строчку/две
3. перевод! :)))
4. в ридми не сказано, что надо ещё и соотвествующий блок включить!
спасибо! в аккурат искал нечто подобное! своевременный модуль оказался. :)
- Для комментирования войдите или зарегистрируйтесь
Спасибо.
Относительно пунктов:
1. Готово
2. Сегодня до вечера
3. Конечно, но в перспективе : )
4. Исправил
- Для комментирования войдите или зарегистрируйтесь
Удобный модуль!
Предложение:
То, что опубликовано столько-то типов нод само по себе ничего не говорит. Лучше сразу сделать разбивку по типам. Например:
Опубликовано стольк-то тем форума, столько-то 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.
- Для комментирования войдите или зарегистрируйтесь
>>Через 30 минут я нашёл решение, а через 7 часов, вперемешку с общением в джабере, приготовлением еды и ответами на вопросы на drupal.ru модуль был готов.
Мдаа... ну что тут можно сказать... жаль, что ты уже женат :)
- Для комментирования войдите или зарегистрируйтесь
Критику принимаешь? :)
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 .= '<p>'. "$skss_total_type" . t(' node types are published. ') .'</p>';
}
?>3. Непонял, зачем так: "sizeof($config_sksitesummary_node) > 0", что, без этого не работает?
4. Вынести формирование отображения в ф-цию theme_
- Для комментирования войдите или зарегистрируйтесь
Огромное спасибо.
Сегодня пофиксю.
- Для комментирования войдите или зарегистрируйтесь
Критика принимается! :)
1. Кэширование будет. Обязательно будет.
2. Исправлю сегодня.
3. Хм, действительно, надо посмотреть....
4. Реализуем
P.S. Не $variable_get а variable_get : )
- Для комментирования войдите или зарегистрируйтесь
Было бы неплохо реализовать выбор и показ информации, из профилей пользователей.
Чтобы это поле было настраиваемым.
Например, я создаю в профиле поле "день рождения", и модуль выдает данные у каких зарегистрированных пользователей сегодня день рождение.
Или сколько у меня на сайте программистов и бухгалтеров. Эти данные тоже берутся из профиля.
- Для комментирования войдите или зарегистрируйтесь
Очень интересно!
Да, думаю, реализую в след. версии.
- Для комментирования войдите или зарегистрируйтесь
Не являясь программистом- говорю как пользователь.
Модуль очень удобен! Как для админов сайта так и просто для пользователей.
А с точки зрения финансовой (при продаже рекламного места на сайта)- вообще идеальная штука! Отличный инструмент "котрольного выстрела" в голову потенциального клиента.
Кроме того, если реализутся все то о чем в сабже говорится выше- поппулярность модулю по всему Drupal миру обеспечена.
В конце хочу добавить, что именно так, спонтанно, зачастую делаются вещи (не только модули), которые, на деле куда более практичные, нежели заранее продуманные и прописанные
respect' ы
- Для комментирования войдите или зарегистрируйтесь
Версия 1.0.2
Краткий список основных изменений:
- Исправлена английская орфография
- Оптимизирован исходный код
- Минимизировано число запросов к базе
- Расширена справка
- Опция горизонтальное / вертикально представление
Полный список изменений в CHANGELOG.txt
Список планов в TODO.txt
В общем, как всегда, пишите свое мнение.
Предложения и нарекания принимаются
UPD 1: Делаю кэширование данных + настройка в админке этого дела. Сегодня реализую
UPD 2: Кэширование и его настройка готовы. Делаю сюрприз ;-)
- Для комментирования войдите или зарегистрируйтесь
Спасибо!
- Для комментирования войдите или зарегистрируйтесь
Вы будете смеяться, но я скопировал модуль в папку...
и не нашел его на странице! :)))
Предлагаю две вещи:
1. Убрать "package = Core - optional". Непривычно там его искать.
2. Отказаться от "Number of " и сделать все короче.
PS. Сделано было сильно, человек спросил как
вывести статистику, раз и модуль!
- Для комментирования войдите или зарегистрируйтесь
1. Думаю над этим, не решил ещё правильно, но обязательно изменю.
2. Можно зайти в настройки локализации и перевести как угодно, хотя, да, я что нибудь придумаю
P.S. Изменения будут в версии 1.0.3, в которой также будет реализовано кэширование. Версия выйдет до утра.
P.P.S. Спасибо большое
- Для комментирования войдите или зарегистрируйтесь
Кэширования я пока не дождался, скажу что есть на данный момент.
=== 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), вдруг кто не знает :)
А вообще для буржуинов, на мой вгляд, надо PayPal заводить :)
=== Модуль
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')) {"
Все мои замечания вобчем-то не серьёзные, так придираюсь, сам же меня в бета-тестеры записал, вот хлеб и отрабатываю :)))
- Для комментирования войдите или зарегистрируйтесь
Спасибо, щас, за пивом сгоняю (отмечать победу над кэшированием), внесу окончательные изменения + эти и залью новую версию : )
- Для комментирования войдите или зарегистрируйтесь
Ээээ... это только у меня показывает, что количество опубликованных комментариев 0? Хотя их в системе немерянно...
- Для комментирования войдите или зарегистрируйтесь
А вот и долгожданный баг... или не баг, щас проверю.
- Для комментирования войдите или зарегистрируйтесь
Исправил.
Огромное, человеческое спасибо!
Щас залью изменения.
- Для комментирования войдите или зарегистрируйтесь
>Было бы неплохо реализовать выбор и показ информации, из профилей пользователей.
>Чтобы это поле было настраиваемым.
>Например, я создаю в профиле поле "день рождения", и модуль выдает данные у каких зарегистрированных пользователей >сегодня день рождение.
>Или сколько у меня на сайте программистов и бухгалтеров. Эти данные тоже берутся из профиля.
для этого это самое поле в профиле должно быть стандартным, в противном случае не у всех работать будет либо модуль будет узконаправленным :)
- Для комментирования войдите или зарегистрируйтесь
Версия 1.0.3
Краткий список основных изменений:
- Добавлено кэширование
- Добавлено администрирование кэширования
- Исправлена критическая ошибка с выводом информации о комментариях
- Дополнен раздел справки
- Изменена администраторская часть модуля
Полный список изменений в CHANGELOG.txt
Список планов в TODO.txt
Как всегда — Жду реакции : )
- Для комментирования войдите или зарегистрируйтесь
В настройке 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
Визуально смотреть довольно тяжело. Я думаю нужно сделать перегородки каки-нибудь когда информация выводится в линию.
- Для комментирования войдите или зарегистрируйтесь
>"Опубликованные материалы".
Так работает Drupal. Если он встречает перевод на строку и модуль locale включён, он ее переводит автоматом
>сейчас написано Cahe Date,
Не так там написано, а написано Cahe data — кеш данных, хотя да, коламбур, в след. патче сделаю по человечески.
>чего хотелось бы в будущих релизах
Займусь на днях
>Я думаю нужно сделать перегородки к
наболевшая проблема. Решим : )
- Для комментирования войдите или зарегистрируйтесь
Не, можно сделать универсально и красиво.
Скоро покажу как :)
- Для комментирования войдите или зарегистрируйтесь
Интересный модуль... надо будет посмотреть...
хех, тебе описание для него не надо? со скриншотами?
- Для комментирования войдите или зарегистрируйтесь
Надо, давай : )
- Для комментирования войдите или зарегистрируйтесь
В модуле неправильно отображаются пути.
Для ссылок надо использовать функцию l() (маленькая L)
пример:
<?php
// вместо
t('No information to be displayed. Please specify what data should be displayed on the <a href="admin/settings/sksitesummary">page settings</a>.')
// надо
t('No information to be displayed. Please specify what data should be displayed on the '.l(t('page settings'), 'admin/settings/sksitesummary'))
//Также, вместо
'<a href="admin/settings/sksitesummary">' .t('Options') . "</a>"
//надо
l(t('Options'),'admin/settings/sksitesummary')
?>На мой взгляд, все сообщения надо сократить:
Number of node types are published -> Published nodes
Посмотри модуль xstatistic, он делает то же, что и твой, но в нём есть несколько дополнительных параметров (надо их оттуда слямзить :) и короче сообщения. Твой модуль правда уже круче :)
- Для комментирования войдите или зарегистрируйтесь
Сделано!
Спасибо : )
Следущая версия, пропатченная, и много интереснее выйдет сегодня.
- Для комментирования войдите или зарегистрируйтесь
поставил. если сообщения выведены в столбик, а не в строчку , то между строчками много пространства, как будто две бр-ки стоят , а не одна. ошибок больше не нашёл. как не старался :)
- Для комментирования войдите или зарегистрируйтесь
Поправить то конечно можно.
Но зачем?
Сегодня выйдет следущая версия в которой темизация будет : )
- Для комментирования войдите или зарегистрируйтесь
Ну коль пошла такая пьянка, то хочу ещё и свои запросы к статистике добавлять! :)
Например, заявок - столько-то, задач - столько, просроченых - нет и тому подобное. Названия пунктов статистики и собственно запросы к базе - задаются непосредсвенно администратором сайта. :)
- Для комментирования войдите или зарегистрируйтесь
1.Возможно нужно сделать универсальное поле, которое можно заполнить любым реквизитом, по которому можно было бы собирать статистику.
2.И сколько таких реквизитов, и в каком порядке выводить будет думать сам администратор.
3.Выбор в каком блоке будет выводится каждый реквизит.
- Для комментирования войдите или зарегистрируйтесь
Вчера ничего не делал - гости были.
Сегодня продолжим (хоть и болит голова после вчерашнего) : - (
- Для комментирования войдите или зарегистрируйтесь
> 1.Возможно нужно сделать универсальное поле, которое можно заполнить любым реквизитом,
> по которому можно было бы собирать статистику.
> 2.И сколько таких реквизитов, и в каком порядке выводить будет думать сам администратор.
Такое поле уже есть - пишите код в теле блока! Чем не устраивает? Если вы в состоянии написать SQL запрос, вам это модуль ни к чему. А кэширование можно и ручками сделать.
- Для комментирования войдите или зарегистрируйтесь
Я просто предлагаю дальнейшие развитие именно этого модуля.
Так чтобы он был удобен и тем кто не знаком с sql запросами.
- Для комментирования войдите или зарегистрируйтесь
> Меня устраивает, я просто предлагаю дальнейшие развитие именно этого модуля.
Если не SQL, то что тогда подразумевалось под словами "любым реквизитом, по которому можно было бы собирать статистику"?
Внешний вид можно будет изменять, когда автор сделает поддержку темизации.
Порядок и "показывать в разных блоках" - перегруз модуля, можно просто написать в readme.txt написать, каким кодом непосредственно в тексте блока это можно сделать.
- Для комментирования войдите или зарегистрируйтесь
Согласен если в readme.txt будет пример кода.
Возможно я неправильно выразил свою мысль.
Пример есть поле в котором выбирается таблица, например таблица.Пользователи
Когда это поле.Пользователи выбрано, ниже активизируется следущее поле по которому можно выбрать реквизит, по которому будет формироваться статистика.
Это я развиваю мысль которую уже взял SadhooKlay и написал в TODO.txt
New:
o Extended abilities for work with fields in user's profiles (kosmit's idea)
o Enhaced CHANGELOG.txt
- Для комментирования войдите или зарегистрируйтесь
написать-то код прямо в модуль можно... но тогда при каждом обновлении модуля все исправления придётся вносить заново или обновление ставить через diff, что тоже достаточно муторно...
- Для комментирования войдите или зарегистрируйтесь
Об чём спор? Скоро всё будет. Официально заявляю, что в ближайшем будущем, возможно будет настраивать модуль как угодно, в том числе и под любое количество любых данных.
- Для комментирования войдите или зарегистрируйтесь
Вот, кстати, ещё мысль для расширения функциональности:
http://drupal.org/node/130051
Хотя... наверно лучше для другого модуля UserSummary... :)))
- Для комментирования войдите или зарегистрируйтесь
Версия 1.0.4
Краткий список основных изменений:
- Добавлено понятие "Все пользователи" и "Активные пользователи"
- Добавлено понятие "Все материалы" и "Опубликованные материалы"
- Добавлено понятие "Все комментарии" и "Опубликованные комментарии"
- Добавлено значение "Все модули"
- Добавлено значение "Включённые модули"
- Расширена справка
- Исправлены мелкие неточности
Полный список изменений в CHANGELOG.txt
Список планов в TODO.txt
UPD: Начал разрабатывать следующую версию
- Для комментирования войдите или зарегистрируйтесь
Спасибо!
- Для комментирования войдите или зарегистрируйтесь
Всегда пожалуйста : )
- Для комментирования войдите или зарегистрируйтесь
Жутко удобная штука, автору гранд-респект ;)
- Для комментирования войдите или зарегистрируйтесь
Совсем скоро (не без советов Dan-a) выйдет версия с темизацией и выбором веса строк.
Вот это будет удобно, а пока так, баловство : )
Сегодня, к 5 утра, полностью переписал ядро модуля.
Щас посплю пару часиков, к обеду протестирую на localhost и видимо выложу первую бета версию в истории модуля : )
Ожидается много кардинальных нововведений.
UPD: Не за горами первый релиз модуля.
- Для комментирования войдите или зарегистрируйтесь
При входе в настройки есть надписи "Data caching", "Other". Так вот, они у меня почему то не раскрываются (то есть это просто текстовые строки). И так, кажись, на всем сайте. В чем может быть проблема?
- Для комментирования войдите или зарегистрируйтесь
Хм... странно.
У меня всё открывается и насколько я понимаю у всех тоже.
Скоро выйдет следущая версия (времени нехватает), я постараюсь найти ошибку, если таковая имеется.
Но всё же проверьте - всё ли у вас правильно настроено/установлено.
- Для комментирования войдите или зарегистрируйтесь
> И так, кажись, на всем сайте. В чем может быть проблема?
Что-то с яваскриптами наверное.
Возможно что-то мешает друпаловским яваскриптам :)
- Для комментирования войдите или зарегистрируйтесь
Да нет, Ваш модуль ни при чем, это что-то с Друпалом (наверное при закачке на хост где-то глюканул, так что сорри, здесь это скорее оффтоп :().
Кстати, большое спасибо, модуль действительно очень полезен, и очень вовремя и удобно подвернулся.
А насчет нераскрывающихся настроек - никто не знает, что и где за них отвечает? Может просто файлы проверю, заменю.
UPD
а, еще: .htaccess'a на сайте нет, т.к. он не давал доступ на сайт (IISPassword The page cannot be displayed...) может ли быть проблема в этом и как с ней разобраться?
- Для комментирования войдите или зарегистрируйтесь
Небольшой feature request: добавить вывод количества терминов таксономии (общее по всем словарям) на сайте (то что на этом сайте выводится внизу как "число категорий и меток к документам").
- Для комментирования войдите или зарегистрируйтесь











Комментарии