diff --git a/shrtr.module b/shrtr.module index f6acb0e..0109826 100644 --- a/shrtr.module +++ b/shrtr.module @@ -35,9 +35,19 @@ function shrtr_new_form($form = array(), &$form_state) { '#title' => t('URL'), '#size' => 30, ); - $form['expire'] = array( + $form['expire_type'] = array( + '#type' => 'radios', + '#title' => t('Expire type'), + '#description' => t('Choose a method of expiry.'), + '#options' => array( + 'remain'=>t('Remain'), + 'date'=>t('Date'), + ), + '#default_value' => 'remain', + ); + $form['expire_remain'] = array( '#type' => 'select', - '#title' => t('Expire'), + '#title' => t('Expire remain'), '#options' => array( 0 => t('Never'), 600 => '10' . t('min'), @@ -46,6 +56,13 @@ function shrtr_new_form($form = array(), &$form_state) { '#default_value' => 0, '#description' => t('Time to expire'), ); + $form['expire_date'] = array( + '#type' => 'date', + '#title' => t('Expire date'), + '#default_value' => 0, + '#description' => t('Time to expire'), + '#required' => FALSE, + ); $form['submit'] = array( '#type' => 'submit', '#value' => t('Submit'), @@ -75,8 +92,11 @@ function shrtr_new_form_submit($form, &$form_state) { } while (!empty($result)); variable_set('shrtr_alias', $alias); - if ($form_state['values']['expire'] != 0) { - $expire = REQUEST_TIME + $form_state['values']['expire']; + if (($form_state['values']['expire_type'] == 'remain') && ($form_state['values']['expire_remain'] != 0)) { + $expire = REQUEST_TIME + $form_state['values']['expire_remain']; + } + else if ($form_state['values']['expire_type'] == 'date') { + $expire = date_to_timestamp($form_state['values']['expire_date']); } else { $expire = 0; @@ -179,3 +199,7 @@ function shrtr_list_page() { return $content; } + +function date_to_timestamp($expire_date) { + return mktime(0, 0, 0, $expire_date['month'], $expire_date['day'], $expire_date['year']); +}