Mercurial > defr > drupal > og_statistics
annotate og_statistics.admin.inc @ 2:48f07e7acaca
OG Stats 1.0-rc2
author | Franck Deroche <franck@defr.org> |
---|---|
date | Tue, 24 Nov 2009 14:27:37 +0100 |
parents | |
children |
rev | line source |
---|---|
franck@2 | 1 <?php |
franck@2 | 2 // $Id: og_statistics.admin.inc,v 1.1.2.1 2009/09/08 20:42:56 dereine Exp $ |
franck@2 | 3 /** |
franck@2 | 4 * @file |
franck@2 | 5 * Admin settings for og_statistics module. |
franck@2 | 6 */ |
franck@2 | 7 |
franck@2 | 8 function og_statistics_settings() { |
franck@2 | 9 $form['rebuild'] = array( |
franck@2 | 10 '#type' => 'submit', |
franck@2 | 11 '#value' => t('Rebuild og_statistics') |
franck@2 | 12 ); |
franck@2 | 13 |
franck@2 | 14 return $form; |
franck@2 | 15 } |
franck@2 | 16 |
franck@2 | 17 function og_statistics_settings_submit(&$form, &$form_state) { |
franck@2 | 18 // get all group nodes |
franck@2 | 19 $types = og_get_types('group'); |
franck@2 | 20 $placeholders = db_placeholders($types, 'varchar'); |
franck@2 | 21 $result = db_query("SELECT nid FROM {node} WHERE type IN($placeholders)", $types); |
franck@2 | 22 while ($item = db_fetch_object($result)) { |
franck@2 | 23 $nodes[$item->nid] = $item->nid; |
franck@2 | 24 } |
franck@2 | 25 $counter = 0; |
franck@2 | 26 foreach ($nodes as $nid) { |
franck@2 | 27 $counter ++; |
franck@2 | 28 $array[] = $nid; |
franck@2 | 29 if (($counter % 20) == 1) { |
franck@2 | 30 $operations[] = array('og_statistcs_recalc', array($array)); |
franck@2 | 31 $array = array(); |
franck@2 | 32 } |
franck@2 | 33 } |
franck@2 | 34 $operations[] = array('og_statistcs_recalc', array($array)); |
franck@2 | 35 // Execute the batch progress |
franck@2 | 36 $batch = array( |
franck@2 | 37 'operations' => $operations, |
franck@2 | 38 'title' => 'Generating statistics', |
franck@2 | 39 'init_message' => 'Loading group nodes', |
franck@2 | 40 'error_message' => 'An unrecoverable error has occurred. You can find the error message below. It is advised to copy it to the clipboard for reference.', |
franck@2 | 41 'finished' => 'og_statistcs_settings_finished', |
franck@2 | 42 ); |
franck@2 | 43 batch_set($batch); |
franck@2 | 44 batch_process('admin/settings/og_statistics'); |
franck@2 | 45 } |