index.php 8.56 KB
Newer Older
1 2 3 4 5 6
$tabs = array(
  'about' => array('title' => 'About'),
  'geography' => array('title' => 'Geographical reach', 'iframe' => ""),
  'sites' => array('title' => 'Active Sites', 'iframe' => ""),
  'technology' => array('title' => 'Server Technologies', 'iframe' => ""),
  'financials' => array('title' => 'Project financials', 'iframe' => ""),
8 9
$tab = reset(array_keys($tabs));
cividesk's avatar
cividesk committed
if (isset($_REQUEST['tab']) && in_array($_REQUEST['tab'], array_keys($tabs))) {
  $tab = $_REQUEST['tab'];
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
<!DOCTYPE html>
<html lang="en">
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>CiviCRM statistics</title>

    <!-- Bootstrap -->
    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src=""></script>
      <script src=""></script>
  <body style="margin:20px;">

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src=""></script>

39 40 41
    <!-- Latest compiled and minified JavaScript -->
    <script src="" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>

42 43 44 45 46 47
  <div style="width:100%">
if (!empty($tabs[$tab]['iframe'])) {
  echo '
    <div style="float:right;"><h3 style="margin: 0;">by <a href="">
cividesk's avatar
cividesk committed
          <img style="margin-bottom: 5px; height: auto; max-width: 145px;" src="" alt="Cividesk"/>
49 50 51 52 53 54 55
    <div><h1>CiviCRM Statistics</h1></div>
  <div style="display:block; float: none;">
    <ul class="nav nav-tabs">
56 57 58 59 60
foreach ($tabs as $key => $props) {
  echo '<li role="presentation"' . ($tab == $key ? ' class="active"' : '') . "><a href=\"?tab=$key\">$props[title]</a></li>";
61 62
63 64
if (!empty($tabs[$tab]['iframe'])) {
65 66 67 68
  echo '
  <div style="height:100%">
    <iframe src="' . $tabs[$tab]['iframe'] . '" frameborder="0" style="position: absolute; height: 100%; width: 98%"></iframe>
69 70 71
} else {
    <h3>What are the CiviCRM statistics?</h3>
72 73
    <p>As the CiviCRM community grows and is increasingly active, the need emerged to measure our work, our impact, our communications and many other aspects of this community in order to judge our progress and influence our roadmap.</p>
    <p>The CiviCRM statistics project was born.</p>
DaveD's avatar
DaveD committed
    <p>Since its inception, this effort has grown in scope and capabilities and now makes available real-time statistics on:</p>
75 76 77 78 79 80
      <li>the users of CiviCRM (counted as 'sites' representing an active installation of CiviCRM),</li>
      <li>key operational (# contacts, #transactions, ...) and technical metrics (server configuration) on these active installations,</li>
      <li>CiviCRM downloads per day, including from which country,</li>
      <li>metrics on software issues logged into our bug tracker,</li>
      <li>and many more ...</li>
    <p>All of these statistics are produced with the utmost respect for the privacy of our users and contributors: no identifying data of any sort is ever collected (not even IP addresses), these statistics are always presented as aggregates, values below certain thresholds are discarded, etc.</p>
    <h3>What are these statistics used for?</h3>
84 85 86 87 88 89 90
    <p>Well ... click on the tabs and you will see some nice graphics!</p>
    <p>But seriously, these statistics now provide key data points and influence a number of decisions for our marketing, technology roadmap, communications, etc. Example of such decisions include:</p>
      <li>whether we should obsolete support for certain versions of PHP in newer releases,</li>
      <li>if and when we should recruit volunteers to aid in translation to a given language,</li>
      <li>which extensions should be considered stable and/or more actively promoted.</li>
    <h3>How do we produce these statistics?</h3>
92 93 94 95 96 97 98
    <p>These statistics are produced from a number of data sources, including:</p>
      <li>the pingback data from CiviCRM instances</li>
      <li>download data from</li>
      <li>API calls to GitHub, JIRA and our forums</li>
    <p>These data sources are regularly queried for new data, this data is aggregated in a central database and statistics are produced from this database on a daily basis.</p>
cividesk's avatar
cividesk committed
99 100 101 102 103 104 105
    <h3>What is an 'Active site'?</h3>
    <p>We define an 'Active site' as an installation of CiviCRM in which:</p>
      <li>a user with the 'Administrator' role has logged in within the past 100 days
      <li>and where the database contains at least 10 more contacts that what is pre-loaded with the demo datasets.</li>
    <p>While not taking into account all possible use cases, this is certainly a very reasonable definition and the best we can do with the limited amount of information that is available to us. As a matter of comparison, most other statistics on software usage refer to the number of downloads, the number of times the software was installed (without substracting the uninstalls), or the number of users accounts ever created (regardless of their activity).</p>
106 107 108 109 110 111
    <h3>Project Financials</h3>
    <p>The financials tab is based on the CiviCRM Core Team's accounting and is updated monthly. It reflects the income and expenses 
      of <a href="" alt="CiviCRM LLC">CiviCRM LLC</a>. The financials presented do not reflect those of any 
    partner, member, end user or any other type of community member of CiviCRM.</p>
    <p>The project financials were added on March of 2019 and will continue to evolve in order to demonstrate the financial and project-wide 
      performance of CiviCRM.</p>
    <h3>For more information</h3>
113 114 115 116 117 118 119
    <p>Additional resources include:</p>
      <li>the <a href="">blog posts</a> published on these statistics</li>
      <li>the <a href="">data files</a> used to produce these graphics - reuse, remix!</li>
      <li>the <a href="">civicrm-statistics</a> project on github</li>
    <p>Finally, please feel free to contact Nicolas at Cividesk with any questions, concerns or encouragements related to these statistics.</p>
cividesk's avatar
cividesk committed
120 121 122 123 124
if (empty($tabs[$tab]['iframe'])) {
  echo '
    <footer role="contentinfo" style="margin-top: 20px; border-top: 1px solid #c7c7c9;">
    <div class="container">
cividesk's avatar
cividesk committed
      <p style="text-align: center; margin-top: 10px;">
        The CiviCRM Statistics project is produced as part of the <a href="">CiviCRM Marketing Group</a> as<br/>
128 129 130 131 132 133 134 135 136
        an in-kind contribution by <a href="">Cividesk</a>, a CiviCRM partner and contributor.<br/>
        Support for the project are reflected in CiviCRM badges.<br/> Looking for an expert? Look for the badge.<br/>
        <a href="">
          <img style="margin: 10px 0px; height: auto; max-width: 220px;" src="" alt="Cividesk"/>
        <img style="width: 80px;" src="" alt="Sustaining Founding Partner"/>
        <img style="width: 80px;" src="" alt="Sustaining Contributor"/>
cividesk's avatar
cividesk committed
137 138 139