'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; if($image != '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; }