annotate og_statistics.admin.inc @ 3:13824d66b299 tip

Application du patch sur la 1.0-rc2
author Franck Deroche <franck@defr.org>
date Tue, 24 Nov 2009 14:30:14 +0100
parents 48f07e7acaca
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 }