Как сделать статистику как на етом сайте [ Опубликовано документов: 5034 Комментариев: 27720 Категорий и меток к документам: 1158 Зарегистрировано пользователей: 3693 ] ?
1. Идём в админку (admin/build/block)
2. Создаём блок (admin/build/block/add)
3. Описание блока, краткое описание вашего блока, которое используется на странице обзора блоков: "Статистика по сайту"
4. В поле "Текст блока" вносим пару любых слов - потом мы их удалим.
5. Жмём ОК.
6. В появившемся списке блоков (admin/build/block ) видим наш блок, жмём "Настроить"
7. Заголовок блока, как он будет показан пользователю заполняем словом <none>
8. Ставим галку на выборе "Пользователи не могут управлять видимостью блока."
9. "Показать блок определенным ролям" — тут ничего не выбираем.
10. "Установки видимости для страницы" — допустим только на главной нужно, тогда пишем в поле ввода <front> и выбираем пункт "Показывать только на перечисленных страницах". Если блок нужно на всех страницах показывать, выбираем первый пункт, а в поле ввода ничего не вводим.
11. Жмём ОК.
12. В появившемся списке блоков (admin/build/block ) , включаем наш блок таким макаром, в колонке "Область" выбираем "Подвал", а вес "-10"
13. Жмём "Сохранить"
14. Открываем Firefox с установленным в него Firebug, жмём в Firebug "Inspect", наводим мышь на наш блок и видим следущее:
У вас ID и Class могут быть не такими, но это не важно, главное, что они есть.
15. Создаём файл с именем подобным ID блока. Так как ID в нашем случае block-block-3, то такое имя файлу и присваиваем.Итак, файл у нас будет называться block-block-3.tpl.php
16. В файле пишем следующий код:
17. XXXXXXXXXX заменяем на следующий код (можно комбинировать):
A) Колличество зарегистрированных пользователей
<p>На сайте зарегистрировано <?phpprintdb_result(db_query("SELECT count(*) AS count FROM {users}"))-1; ?> человек.</p>
Б) Количество материалов
<p>На сайте опубликованно <?phpprintdb_result(db_query("SELECT count(*) AS count FROM {node}")) -1; ?> документов.</p>
В) Количество комментариев
<p>На сайте опубликованно <?phpprintdb_result(db_query("SELECT count(*) AS count FROM {comments}")) -1; ?> комментариев.</p>
Г) Категории, их кол-во.
<p>На сайте опубликованно <?phpprintdb_result(db_query("SELECT count(*) AS count FROM {vocabulary_node_types}"))-1; ?> категорий и меток к документам.</p>
Всё это только что проделал на локалхосте — у меня работает.
но вариант с block-block-3.tpl.php тоже идея
Это фича от разработчиков Друпала
Очень удобно, когда нет нужды давать "темизатору" доступ к блокам, но можно дать ему отдельный фтп-доступ на правку темы.
SadhooKlay (не проверено)
8 мая 2007 в 18:45
Кстати благодаря, твоим постам я вот это всё и знаю.
Помнишь, я на днях благодарил тебя в одноим из твои постов?
Вот это и есть плоды.
Ещё раз спасибо.
SadhooKlay (не проверено)
8 мая 2007 в 19:42
Немного поразмыслив, решил написать всё это красиво.
Думаю, если нечего экстраординарного не случится, к утру сделаю модуль.
UPD 1: Модуль готов. Навожу красоту. UPD 2: Красота готова. Делаю локализацию и раздел справки в admin/help UPD 3: Локализация и раздел справки готовы. Делаю админскую часть. UPD 4: Админка готова. Щас, ещё что нибудь покалякую в справке, протестирую на локалхосте и чере полтора - два часа выложу в блоге. Модуль назвал SK Site Summary, версия 5.x-1.x-dev, а там будет видно...
2SadhooKlay: UPD: Модуль готов. Навожу красоту.
Мдя, круто.. Я не программист, к сожалению, так что респект. Пока моих познаний хватает только на основы темизации.
2ole-studio:
+4 "лишних" запроса к БД Или неважно?
2romand@drupal.org OR 2SadhooKlay:
А почему -1 от числа в запросе, не подскажете?
SadhooKlay (не проверено)
8 мая 2007 в 21:22
Честно говоря, прям щас не готов ответить, но так правильно.
Найду ответ сообщу : )
Решил написать всё это красиво.
К утру сделаю модуль.
Модуль готов. Навожу красоту.
Красота готова.
Модуль под это дело уже сделал.
Админку доделываю...
К утру выложу в своём блоге.
< 20:43
...матёрый чел
SadhooKlay (не проверено)
9 мая 2007 в 1:42
Админка самая приятная, но в тоже время самая тяжёлая часть.
Приятная, потому что можно развернуться и реализовать фактически что угодно.
Тяжёлая по тому, что это 70% всего кода : )
Комментарии
Посчитать PHP запросом из базы данных. К примеру количество зарегистрированных пользователей можно вывести так:
а в других случаях? одним блоком? буду признателен
to SadhooKlay
если совсем точно, то db_result - 1
Ну да : )
народ не отвлекайтесь...
1. Идём в админку (admin/build/block)
2. Создаём блок (admin/build/block/add)
3. Описание блока, краткое описание вашего блока, которое используется на странице обзора блоков: "Статистика по сайту"
4. В поле "Текст блока" вносим пару любых слов - потом мы их удалим.
5. Жмём ОК.
6. В появившемся списке блоков (admin/build/block ) видим наш блок, жмём "Настроить"
7. Заголовок блока, как он будет показан пользователю заполняем словом
<none>
8. Ставим галку на выборе "Пользователи не могут управлять видимостью блока."
9. "Показать блок определенным ролям" — тут ничего не выбираем.
10. "Установки видимости для страницы" — допустим только на главной нужно, тогда пишем в поле ввода
<front>
и выбираем пункт "Показывать только на перечисленных страницах". Если блок нужно на всех страницах показывать, выбираем первый пункт, а в поле ввода ничего не вводим.11. Жмём ОК.
12. В появившемся списке блоков (admin/build/block ) , включаем наш блок таким макаром, в колонке "Область" выбираем "Подвал", а вес "-10"
13. Жмём "Сохранить"
14. Открываем Firefox с установленным в него Firebug, жмём в Firebug "Inspect", наводим мышь на наш блок и видим следущее:
<div class="content">
<p>ТЕСТ</p>
</div>
</div>
У вас ID и Class могут быть не такими, но это не важно, главное, что они есть.
15. Создаём файл с именем подобным ID блока. Так как ID в нашем случае block-block-3, то такое имя файлу и присваиваем.Итак, файл у нас будет называться block-block-3.tpl.php
16. В файле пишем следующий код:
<div class="blockinner">
XXXXXXXXXX
</div>
</div>
17. XXXXXXXXXX заменяем на следующий код (можно комбинировать):
A) Колличество зарегистрированных пользователей
Б) Количество материалов
В) Количество комментариев
Г) Категории, их кол-во.
Всё это только что проделал на локалхосте — у меня работает.
АГРОMНОЕ спасибо. супер. слов нет, чтоб выразить благодарность.
Модуль под это дело уже сделал.
С возможностью выбора какую конкретно информацию показывать/не показывать, где показывать и т.д.
Админку доделываю...
К утру выложу в своём блоге.
я просто создал блок вставил код и все работает... но вариант с block-block-3.tpl.php тоже идея.
спасибо...
Не за что, обращайтесь : )
но вариант с block-block-3.tpl.php тоже идея
Это фича от разработчиков Друпала
Очень удобно, когда нет нужды давать "темизатору" доступ к блокам, но можно дать ему отдельный фтп-доступ на правку темы.
Кстати благодаря, твоим постам я вот это всё и знаю.
Помнишь, я на днях благодарил тебя в одноим из твои постов?
Вот это и есть плоды.
Ещё раз спасибо.
Немного поразмыслив, решил написать всё это красиво.
Думаю, если нечего экстраординарного не случится, к утру сделаю модуль.
UPD 1: Модуль готов. Навожу красоту.
UPD 2: Красота готова. Делаю локализацию и раздел справки в admin/help
UPD 3: Локализация и раздел справки готовы. Делаю админскую часть.
UPD 4: Админка готова. Щас, ещё что нибудь покалякую в справке, протестирую на локалхосте и чере полтора - два часа выложу в блоге. Модуль назвал SK Site Summary, версия 5.x-1.x-dev, а там будет видно...
2SadhooKlay:
UPD: Модуль готов. Навожу красоту.
Мдя, круто.. Я не программист, к сожалению, так что респект. Пока моих познаний хватает только на основы темизации.
2ole-studio:
+4 "лишних" запроса к БД Или неважно?
2romand@drupal.org OR 2SadhooKlay:
А почему -1 от числа в запросе, не подскажете?
Честно говоря, прям щас не готов ответить, но так правильно.
Найду ответ сообщу : )
А почему -1 от числа в запросе
Потому, что в таблице `users` есть служебная запись с uid=0.
ЗЫ: в примере Акселя -1 не надо, у него
"SELECT count(*) AS num FROM {node} WHERE
status > 0".
^^^^^^^^^^
На drupal.ru статистика выводится блоком исполняющим PHP, код блока можно посмотреть здесь: http://www.drupal.ru/node/3068
Ты не будешь против если я кое что позаимствую для своего модуля?
Какие вопросы, конечно можно. Никаких секретных алгоритмов я не применял
Спасибо.
В README.txt модуля, я поблагодарил - глянь : )
15:42 >
Решил написать всё это красиво.
К утру сделаю модуль.
Модуль готов. Навожу красоту.
Красота готова.
Модуль под это дело уже сделал.
Админку доделываю...
К утру выложу в своём блоге.
< 20:43
...матёрый чел
Админка самая приятная, но в тоже время самая тяжёлая часть.
Приятная, потому что можно развернуться и реализовать фактически что угодно.
Тяжёлая по тому, что это 70% всего кода : )
Велкам http://www.drupal.ru/node/5487 !
а если мне нужен пересчёт количества материалов для одного типа, например blog?
что изменить в коде? и стоит ли в данном сучае использовать кэш?
Похожее с количеством документов по типам:
http://setegnom.com/node/284
у меня получилось так:
<?php print db_result(db_query("SELECT count(*) AS count FROM {node} where type='blog'")) -1; ?>
а зачем -1 ?
и скажите правльно ли что у меня должны сосчитаться все материалы типа блог а не все материалы?
просто у меня на том сайте кроме блога ничего нет, но наверное будет..
у меня почему то код, который должен показывать количество категорий и меток неправильно считает
-1 это надо полагать Админ
Нет, а если не только как в вопросе, а и дальше посмотреть: вот это http://www.drupal.ru/stats.html - тоже модуль есть? Это трудно настроить?