MediaWiki/Botclasses.php

From SysadminWiki.ru
Jump to: navigation, search
Other languages:
English • ‎русский

Статистика сайта MediaWiki в теме оформления

Статистику сайта на движке MediaWiki можно отображать на страницах с помощью специальных волшебных слов. Но они не действуют, если мы хотим отображать её где-нибудь в теме оформления (скине) вне текста статьи. В этом случае необходимо использовать API движка и запрашивать требуемые значения напрямую. Для этого необходимо написать соответствующий PHP код.

Можно использовать вспомогательный скрипт botclasses.php, положив его в каталог с темой оформления. Для использования этих классов используем небольшой промежуточный скрипт wikistat.php, который распространяется вместе с botclasses.php. Укажем в нём параметры подключения к сайту. В самой теме оформления в нужном месте вызовем php функцию, указав какая именно статистика нам нужна

  • Пример получения статистики. Количество статей:
require_once( "botclasses.php" ); //include bot functions

<?php echo wiki_statistics('articles'); ?>
  • Пример HTML кода со статистикой количества статей, загруженных файлов и количества статей в категории "Города".
<?php require_once( "botclasses.php" ); ?>

<p><a href="/semantic/Служебная:Все_страницы" title="Показать все статьи">Статей</a>: 
<b><?php echo wiki_statistics('articles'); ?></b>,

<a href="/semantic/Служебная:Список_файлов" title="Показать список всех загруженных файлов">Файлов</a>: 
<b><?php echo wiki_statistics('images'); ?> </b></p> 

<a href="/semantic/Шаблон:Основные_порталы" title="Показать количество статей в категории Города">Городов</a>: 
<b><?php echo wiki_statistics('category', 'Города'); ?></b>,

</p>

Список всех возможных статистических показателей можно увидеть в функции wiki_statistics():

  • activeusers - активные участники
  • admins - администраторы
  • articles - статьи
  • category - категории
  • edits - правки
  • images - загруженные файлы
  • pages - страницы
  • users - участники

Ошибка записи во временную папку /tmp/

Если на хостинге запрещена запись в системную временную папку, то в нужно исправить две строки настройки curl:

curl_setopt($this->ch,CURLOPT_COOKIEJAR, '/tmp/cluewikibot.cookies.'.$this->uid.'.dat');
curl_setopt($this->ch,CURLOPT_COOKIEFILE,'/tmp/cluewikibot.cookies.'.$this->uid.'.dat');

заменив /tmp/ на соответствующий каталог. Например, если у пользователя временный каталог находится по пути /home/www/user/temp/, то строки должны быть заменены на следующие:

curl_setopt($this->ch,CURLOPT_COOKIEJAR, '/home/www/user/temp/cluewikibot.cookies.'.$this->uid.'.dat');
curl_setopt($this->ch,CURLOPT_COOKIEFILE,'/home/www/user/temp/cluewikibot.cookies.'.$this->uid.'.dat');

См. также