~ubuntu-drupal-devs/ubuntu-drupal-countdown/6.x

« back to all changes in this revision

Viewing changes to udcountdown.module

  • Committer: Michael Lustfield
  • Date: 2009-11-05 18:12:05 UTC
  • Revision ID: michael@profarius.com-20091105181205-47otknbnwmdn62ok
Moving settings and cron to individual files

Show diffs side-by-side

added added

removed removed

Lines of Context:
63
63
    'page arguments' => array('udcountdown_admin_settings'),
64
64
    'access arguments' => array('administer udcountdown'),
65
65
    'type' => MENU_NORMAL_ITEM,
 
66
    'file' => 'udcountdown_settings.inc',
66
67
  );
67
68
  $items['admin/settings/udcountdown/settings'] = array(
68
69
    'title' => 'Standard',
72
73
    'page arguments' => array('udcountdown_admin_settings'),
73
74
    'access arguments' => array('administer udcountdown'),
74
75
    'type' => MENU_DEFAULT_LOCAL_TASK,
 
76
    'file' => 'udcountdown_settings.inc',
75
77
  );
76
78
 
77
79
  return $items;
78
80
}
79
81
 
80
 
function udcountdown_admin_settings() {
81
 
 
82
 
  // Standard Settings
83
 
  $form['standard'] = array(
84
 
    '#type' => 'fieldset',
85
 
    '#title' => t('Standard Settings'),
86
 
    '#tree' => FALSE,
87
 
  );
88
 
  $form['standard']['udcountdown_option'] = array(
89
 
    '#type' => 'radios',
90
 
    '#title' => t('Display Option'),
91
 
    '#default_value' =>  t(variable_get('udcountdown_option', 1)),
92
 
    '#options' => udcountdown_list_options(),
93
 
    '#description' => t('Which options from the !link to use.', array( '!link' => l(t('coundown collection'), 'http://www.ubuntu.com/getubuntu/countdown'))),
94
 
    '#required' => TRUE,
95
 
  );
96
 
  $form['standard']['udcountdown_custom'] = array(
97
 
    '#type' => 'textarea',
98
 
    '#title' => t('Custom Code'),
99
 
    '#default_value' => t(variable_get('udcountdown_custom', '')),
100
 
    '#description' => t("Use this area to create your custom block of code."),
101
 
    '#required' => FALSE,
102
 
  );
103
 
 
104
 
  return system_settings_form($form);
105
 
}
106
 
 
107
 
/**
108
 
 * Build list of available options
109
 
 */
110
 
 
111
 
function udcountdown_list_options() {
112
 
  $opts = array();
113
 
 
114
 
  $opt = t('Custom Code');
115
 
  $opts[] = $opt;
116
 
 
117
 
  $handle = fopen(file_directory_path() . '/countdown/data/desc.csv', 'r');
118
 
  if ($handle !== FALSE) {
119
 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
120
 
      $opt = t('Option ' . $data[0] . ' - ' . $data[1]);
121
 
      $opts[] = $opt;
122
 
    }
123
 
  }
124
 
 
125
 
  return $opts;
126
 
}
127
 
 
128
82
/**
129
83
 * Implementation of hook_cron().
130
84
 */
131
 
 
132
85
function udcountdown_cron() {
133
 
  $cache = file_directory_path() . "/countdown/";
134
 
  $pointerver = trim(file_get_contents('http://edge.launchpad.net/ubuntu-drupal-countdown/misc/release-version/+download/pointer'));
135
 
  $pointer = 'https://launchpad.net/ubuntu-drupal-countdown/banners/' . $pointerver;
136
 
 
137
 
  udcountdown_checkver($cache, $pointer);
138
 
}
139
 
 
140
 
/*
141
 
 * Check if banner source changed
142
 
 */
143
 
 
144
 
function udcountdown_checkver($cache, $pointer) {
145
 
  $cur = curl_init();
146
 
  curl_setopt($cur, CURLOPT_URL, $pointer .  '/+download/rv');
147
 
  curl_setopt($cur, CURLOPT_RETURNTRANSFER, TRUE);
148
 
  curl_setopt($cur, CURLOPT_FOLLOWLOCATION, TRUE);
149
 
  $curval = curl_exec($cur);
150
 
  curl_close($cur);
151
 
  $curval = trim($curval);
152
 
 
153
 
  $relver = variable_get('udcountdown_relver', FALSE);
154
 
 
155
 
  if ($relver != $curval) {
156
 
    udcountdown_pullver($cache, $pointer);
157
 
    variable_set('udcountdown_relver', $curval);
158
 
  }
159
 
}
160
 
 
161
 
/*
162
 
 * Pull latest banner source
163
 
 */
164
 
 
165
 
function udcountdown_pullver($cache, $pointer) {
166
 
  shell_exec('rm -rf ' . $cache);
167
 
  shell_exec('/usr/bin/wget -nd -m -P ' . $cache . ' ' . $pointer . '/+download/banners.tgz');
168
 
  shell_exec('cd ' . $cache . '; tar zxf banners.tgz ');
 
86
  module_load_include('inc', 'udcountdown', 'udcountdown_cron');
 
87
  udcountdown_cron_run();
169
88
}
170
89
 
171
90
/**
172
91
 * Implementation of hook_block().
173
92
 */
174
 
 
175
93
function udcountdown_block($op = 'list', $delta = 0, $edit = array()) {
176
94
  if ($op == "list") {
177
95
    $block[0]["info"] = t('Ubuntu Release Countdown');
190
108
/**
191
109
 * Create the block content
192
110
 */
193
 
 
194
111
function udcountdown_content() {
195
112
  $cache = file_directory_path() . '/countdown/';
196
113