All pastes #88790 Raw Edit

brainless

public php v1 · immutable
#88790 ·published 2006-07-15 09:46 UTC
rendered paste body
 <?php// $Id: alexa.module,v 1.0 2006/07/07 on #drupal : heine , xxx_xxx_ , brainless, merlinofchaos, Exp $/*** @file* Grab the latest info from Alexa*//********************************************************************* Drupal Hooks********************************************************************//*** Implementation of hook_help().*/function alexa_help($section) {  switch ($section) {    case 'admin/modules#description':      return t('Grab the latest alexa data from www.alexa.com');  }}function alexa_perm() {  return array ('access alexa');}function alexa_link($type, $node = 0, $main = 0) {  global $user;  $links = array();  if ($type == 'page' && user_access('use alexa')) {    $links[] = l(t('alexa'), 'alexa');  }  return $links;}function alexa_menu($may_cache) {        if ($may_cache) {     $items[] = array(     'path' => 'alexa',     'title' => t('Alexa'),     'callback' => 'alexa_page',     'access' => user_access('access alexa'),    );  }     return $items;}function alexa_page() {  $form['text1'] = array(    '#type' => 'textfield',    '#default_value' =>  'www.thingstoday.com' ,  );  $form['text2'] = array(    '#type' => 'textfield',    '#default_value' => 'www.drupal.org' ,  );  $form['text3'] = array(    '#type' => 'textfield',    '#default_value' =>  'www.brainless-website.com' ,  );  $form['text4'] = array(    '#type' => 'textfield',    '#default_value' =>  'www.slashdot.org' ,  );  $form['text5'] = array(    '#type' => 'textfield',    '#default_value' =>  'www.digg.com' ,  );  $form['chart_type'] = array(    '#type' => 'select',    '#title' => t('Type of Chart'),    '#options' => array(      'r' => t('Reach'),      'p' => t('Page Views'),      't' => t('Traffic Rank'),      ),    '#description' => t('This is the Type of Chart to be displayed.'),  );  $form['chart_range'] = array(    '#type' => 'select',    '#title' => t('Display Range of Chart'),    '#options' => array(      '7d' => t('7 days'),      '14d' => t('14 days'),      '1m' => t('1 month'),      '3m' => t('3 month'),      '6m' => t('6 month'),      '1y' => t('1 year'),      '2y' => t('2 year'),      '3y' => t('3 year'),      '4y' => t('4 year'),      '5y' => t('5 year'),    ),    '#description' => t('Time Frame of the page to be displayed.'),  );  $form['submit'] = array(    '#type' => 'submit',    '#value' => t('Get Alexa Charts'),  );  return drupal_get_form('alexa_page',$form);}function alexa_page_submit($form_id, $form_values) {  $image = <<<STR<img src="http://traffic.alexa.com/graph?w=450&h=285&z=1STR;  ($form_values['text1'] != '')?($image.='&u='.$form_values['text1']):'';  ($form_values['text2'] != '')?($image.='&u='.$form_values['text2']):'';  ($form_values['text3'] != '')?($image.='&u='.$form_values['text3']):'';  ($form_values['text4'] != '')?($image.='&u='.$form_values['text4']):'';  ($form_values['text5'] != '')?($image.='&u='.$form_values['text5']):'';  ($form_values['chart_type'] != '')?($image.='&y='.$form_values['chart_type']):'';  ($form_values['chart_range'] != '')?($image.='&r='.$form_values['chart_range']):'';    $image .= <<<STR" width="450" height="285" alt="Alexa">STR;  if($image != '<img src="http://traffic.alexa.com/graph?w=379&h=216&r=3m&z=1&y=r" width="450" height="285" alt="Alexa">')    drupal_set_message($image);  return ('alexa');}/*** Fetch the alexa info for a given ticker symbol from alexa!*/function alexa_fetch($form) {  if (empty($form)) {    return FALSE;    }  $host = 'http://traffic.alexa.com/graph?w=725&h=370&r=1m&y=r&a=1&z=1&u=';  $url = $host . urlencode($form['button1']) .'&u='.urlencode($form['button2']).'&u='.urlencode($form['button3']).'&u='.urlencode($form['button4']).'&u='.urlencode($form['button5']);  $contents = @file_get_contents($url);  if ($contents) {    if ($data = explode(',', str_replace('"', '', $contents))) {      $data = array_map('trim', $data);      return $data;    }  }  return FALSE;}function alexa_load($form_values) {  if (!empty($form_values)) {    $form_values = db_fetch_array(db_query("SELECT * FROM {alexa} WHERE form_values = '%s'", $form_values));    if (!$alexa) {      $alexa = alexa_fetch($form_values);      if ($alexa) {        if ($alexa[5] != 'N/A') {          // Date is 'N/A' means an invalid entry line          alexa_save($alexa);          // Load again so it can show for the first time          $alexa = alexa_load($form_values);		          }      }    }  }  return $alexa;}