Итак, я сделал это.
Представляю на ваш суд свой модуль 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 КБ |
Комментарии
Уже прикрутил к внутрикорпоративному порталу!
нарекания с предложениями:
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 .= ''. "$skss_total_type" . t(' node types are published. ') .'';
}
?>
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 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, он делает то же, что и твой, но в нём есть несколько дополнительных параметров (надо их оттуда слямзить и короче сообщения. Твой модуль правда уже круче
Сделано!
Спасибо : )
Следущая версия, пропатченная, и много интереснее выйдет сегодня.
поставил. если сообщения выведены в столбик, а не в строчку , то между строчками много пространства, как будто две бр-ки стоят , а не одна. ошибок больше не нашёл. как не старался
Поправить то конечно можно.
Но зачем?
Сегодня выйдет следущая версия в которой темизация будет : )
Ну коль пошла такая пьянка, то хочу ещё и свои запросы к статистике добавлять!
Например, заявок - столько-то, задач - столько, просроченых - нет и тому подобное. Названия пунктов статистики и собственно запросы к базе - задаются непосредсвенно администратором сайта.
1.Возможно нужно сделать универсальное поле, которое можно заполнить любым реквизитом, по которому можно было бы собирать статистику.
2.И сколько таких реквизитов, и в каком порядке выводить будет думать сам администратор.
3.Выбор в каком блоке будет выводится каждый реквизит.
Вчера ничего не делал - гости были.
Сегодня продолжим (хоть и болит голова после вчерашнего) : - (
> 1.Возможно нужно сделать универсальное поле, которое можно заполнить любым реквизитом,
> по которому можно было бы собирать статистику.
> 2.И сколько таких реквизитов, и в каком порядке выводить будет думать сам администратор.
Такое поле уже есть - пишите код в теле блока! Чем не устраивает? Если вы в состоянии написать SQL запрос, вам это модуль ни к чему. А кэширование можно и ручками сделать.
Я просто предлагаю дальнейшие развитие именно этого модуля.
Так чтобы он был удобен и тем кто не знаком с sql запросами.
написать-то код прямо в модуль можно... но тогда при каждом обновлении модуля все исправления придётся вносить заново или обновление ставить через diff, что тоже достаточно муторно...
> Меня устраивает, я просто предлагаю дальнейшие развитие именно этого модуля.
Если не 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
Об чём спор? Скоро всё будет. Официально заявляю, что в ближайшем будущем, возможно будет настраивать модуль как угодно, в том числе и под любое количество любых данных.
Вот, кстати, ещё мысль для расширения функциональности:
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: добавить вывод количества терминов таксономии (общее по всем словарям) на сайте (то что на этом сайте выводится внизу как "число категорий и меток к документам").
Будет!
TODO растёт : )
UPD: Сегодня будет промежуточная версия SK Site Summary 5.x-1.0.4.1
Версия 1.0.4.1
Промежуточная версия
Краткий список основных изменений:
* Добавлена поддержка CSS
* Добавлен локализация на русский язык (ru.po)
* Добавлен шаблон для перевода (sksitesummary.pot)
* Doxygen совместимый формат
* Код стал максимально читабельным, насколько это возможно теперь
* Исправлена не критичная ошибка с меню
Весь код, с нуля, был переписан в Eclipse
Полный список изменений в CHANGELOG.txt
Список планов в TODO.txt
Кажется есть ошибочка в определении констант (строки 17 и 18 модуля). В итоге препэндится пустое окончание блока.
Постараюсь разобраться в срочном порядке, как только появится свободное время.
Благодарю.
Еще заметил одну штучку: в администрировании модуля, в секции What should be displayed, чекбокс для Total Users не активизируется не смотря на то, что на данный момент эта опция активна (т.е. количество пользователей отббражается).
Да, я уже поправил это.
Выйдет в следующей версии.
Сегодня будет Update
рульный модуль
Одно но... если поставить галочку - выводить горизонтально, то не хватает пробелов
И... хотелось бы считать материалы не всех типов сразу, а только определенные...
А под семёрку есть?????
а на 6 ?
А под 8-ку????
Очень нада!!!