All pastes #83868 Raw Edit

ozatomic

public php v1 · immutable
·published 2006-07-10 05:55 UTC
rendered paste body
  /*   * vim: syn=php   * vim: background=dark   */    //require_once('lib/classes/events.class.php');    require_once("lib/classes/calendar.class.php");    function events_node_name($node)    {        return t('Events');    }    function events_help($section = "admin/help#comment")    {        switch ($section)        {            case 'admin/modules#description':                return t('Events Node Module');        }    }    function events_menu()    {        $items = array();        if(arg(0) == 'events')        {            $items[] = array('path'     => 'events',                             'title'    => t('Events'),                             'callback' => 'events_page',                             'access'   => true,                             'weight'   => -10,                             'type'     => MENU_CALLBACK);        }        if(arg(0) == 'events'        AND is_numeric(arg(1)))        {            $node = node_load(array('nid' => arg(1)));            if ($node->nid)            {                $items[] = array('path'     => 'events/'.arg(1),                                 'title'    => t($node->title),                                 'callback' => 'events_page',                                 'access'   => true,                                 'weight'   => -10,                                 'type'     => MENU_CALLBACK);                $items[] = array('path'     => 'events/'.arg(1).'/view',                                 'title'    => t($node->title),                                 'callback' => 'events_page',                                 'access'   => true,                                 'weight'   => -9,                                 'type'     => MENU_DEFAULT_LOCAL_TASK);                $items[] = array('path'     => 'events/'.arg(1).'/edit',                                 'title'    => t('Edit '.$node->title),                                 'callback' => 'events_page',                                 'access'   => true,                                 'weight'   => -8,                                 'type'     => MENU_LOCAL_TASK);            }        }        return $items;    }    function events_perm()    {        return array('events content', 'administer events');    }    function events_page()    {        $switch = arg(1);        if(isset($_POST['edit']))            $edit = $_POST['edit'];        if(isset($_POST['op']))            $switch = $_POST['op'];        if(isset($_POST['edit']['op']))            $switch = $_POST['edit']['op'];        switch($switch)        {            case '':                events_eventlist();                break;            case 'add':                break;            case 'Delete':                print theme('events', node_delete($edit));            case 'Submit':                if($nid = node_submit($edit))                {                    drupal_goto('events/'.$nid);                } else                {                    drupal_goto();                }                break;            default:                switch(arg(2))                {                    case 'edit':                        if($nid = node_submit($edit))                        {                            print theme('events', node_edit(arg(1)));                        } else                        {                            drupal_goto('events');                        }                        break;                   case 'delete':                       events_delete(arg(1));                       break;                    default:                        print theme('events', events_show());                }        }    }    function theme_events($output)    {        return theme('page', $output);    }    function events_show()    {        $node = node_load(array('nid' => arg(1)));        if ($node->nid)        {            drupal_set_title(check_plain($node->title));            return node_show($node, '');        } else        {            return false;        }    }    function events_form_show($output, $show_section = false)    {        //set title        if(is_numeric(arg(1)))        {            $node = node_load(array('nid' => arg(1)));            if($node->nid)            {                $node->section_id = arg(3);                drupal_set_title(check_plain($node->title));            } //end if        }        return $output;    }    function events_access($op, $node)    {        return TRUE;        if($op == 'view')        {            if (user_access('events content'))                return TRUE;        }    }    function events_form(&$node)    {        $output = '';        if (function_exists('taxonomy_node_form'))        {            $output .= implode('', taxonomy_node_form('events', $node));        }        /*          All in one Events Page          Fields:            Title            Event Type (Event/Conferenace/Other)            Details            Email Address            Web Link            Location            Start            Finish        */        if(!empty($node->nid))        {            //Load The Node In            $sql = "SELECT *, unix_timestamp(start_date) as start_date, unix_timestamp(finish_date) as finish_date ".                   "FROM {events} ".                   "WHERE nid = '".$node->nid."'";            $sqlResult = db_query($sql);            while($event_result = db_fetch_assoc($sqlResult))            {                $event = $event_result;            }        }        $event_types = array('event'      => 'Event',                             'conference' => 'Conference');        $output .= form_select(t('Event type'), 'event_type', $event['event_type'], $event_types, '', 0, '', '');        $output .= form_textarea(t('Details'), 'details', $event['details'], 100, 25, '', '', '');        $output .= form_textfield(t('Email Address'), 'email_address', $event['email_address'], 25, 255, '', '', '');        $output .= form_textfield(t('Web Link'), 'web_link', $event['web_link'], 25, 255, '', '', '');        $output .= form_textfield(t('Location'), 'location', $event['location'], 25, 255, '', '', '');        //Create The Two date/time fields        $output .= form_item(t('Start Date'), _events_date('start_date', $event['start_date']), '', '', '');        $output .= form_item(t('End Date'), _events_date('finish_date', $event['finish_date']), '', '', '');        return $output;    }    function _events_date($name = '', $timestamp = '')    {        //Debug        //print('<strong>Debug For _events_date</strong><br />');        //print('<strong>Timestamp:</strong> '.$timestamp.'<br />');        //print('<strong>Formatted:</strong> '.date('Y-n-j h-i', $timestamp).'<br />');        $year    = '';        $month   = '';        $day     = '';        $hour    = '';        $minute = '';        //Selected Values        $year_selected    = (!empty($timestamp) ? date('Y', $timestamp) : date('Y'));        $month_selected   = (!empty($timestamp) ? date('n', $timestamp) : date('n'));        $day_selected     = (!empty($timestamp) ? date('j', $timestamp) : date('j'));        $hour_selected    = (!empty($timestamp) ? date('H', $timestamp) : date('H'));        $minute_selected = (!empty($timestamp) ? date('i', $timestamp) : date('i'));        //$year_selected = (!empty($timestamp) ? date('Y', $timestamp) : date('Y'));        for($y=date('Y')-10;$y<=date('Y')+10;$y++)        {            $year .= "<option value='$y' ".($y == $year_selected ? 'selected="selected"' : '').">$y</option>";        }        for($m=1;$m<=12;$m++)        {            $month .= "<option value='$m' ".($m == $month_selected ? 'selected="selected"' : '').">".date('F', mktime(0,0,0,$m,1,date('Y')))."</option>";        }        for($d=1;$d<=31;$d++)        {            $day .= "<option value='$d' ".($d == $day_selected ? 'selected="selected"' : '').">$d</option>";        }        for($h=0;$h<24;$h++)        {            $hour .= "<option value='".date('H', mktime($h,0,0,1,date('m'),date('Y')))."' ".($h == $hour_selected ? 'selected="selected"' : '').">".date('H', mktime($h,0,0,1,date('m'),date('Y')))."</option>";        }        for($min=0;$min<60;$min++)        {            $temp_min = date('i', mktime(0,$min,0,1,date('m'),date('Y')));            $minute .= "<option value='$min' ".($temp_min == $minute_selected ? 'selected="selected"' : '').">$temp_min</option>";        }        //Create The Select Boxes        $html = 'Date: ';        $html .= "<select name='".$name."[day]' id='edit-".$name."-day'>".$day."</select>&nbsp;";        $html .= "<select name='".$name."[month]' id='edit-".$name."-month'>".$month."</select>&nbsp;";        $html .= "<select name='".$name."[year]' id='edit-".$name."-year'>".$year."</select>&nbsp;";        $html .= '<br />Time: ';        $html .= "<select name='".$name."[hour]' id='edit-".$name."-hour'>".$hour."</select>&nbsp;";        $html .= "<select name='".$name."[minute]' id='edit-".$name."-minute'>".$minute."</select>&nbsp;";        return $html;    }    function events_insert($node)    {        //Construct Timestamps        $start = $_POST['start_date'];        $start_timestamp = date('Y-m-d H:i:s', mktime($start['hour'], $start['minute'], 0, $start['month'], $start['day'], $start['year']));        $finish = $_POST['finish_date'];        $finish_timestamp = date('Y-m-d H:i:s', mktime($finish['hour'], $finish['mintue'], 0, $finish['month'], $finish['day'], $finish['year']));        $query = db_query("INSERT INTO {events} ".                          "(nid, title, event_type, details, email_address, web_link, location, start_date, finish_date) ".                          "VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s') ",                          $node->nid, $node->title, $node->event_type, $node->details, $node->email_address, $node->web_link, $node->location, $start_timestamp, $finish_timestamp);        drupal_goto('events');    }    function events_update($node)    {        //Construct Timestamps        $start = $_POST['start_date'];        $start_timestamp = date('Y-m-d H:i:s', mktime($start['hour'], $start['minute'], 0, $start['month'], $start['day'], $start['year']));        $finish = $_POST['finish_date'];        $finish_timestamp = date('Y-m-d H:i:s', mktime($finish['hour'], $finish['mintue'], 0, $finish['month'], $finish['day'], $finish['year']));        $query = db_query("UPDATE {events} SET ".                          "title = '%s', event_type = '%s', details = '%s', email_address ='%s', web_link = '%s', location = '%s', start_date = '%s', finish_date = '%s' ".                          "WHERE nid = %d",                          $node->title, $node->event_type, $node->details, $node->email_address, $node->web_link, $node->location, $start_timestamp, $finish_timestamp, $node->nid);    }    function events_view(&$node, $teaser = FALSE, $page = FALSE)    {        $content = '';        $result = db_query("SELECT *, unix_timestamp(start_date) as start_date, unix_timestamp(finish_date) as finish_date ".                           "FROM {events} WHERE nid = '".$node->nid."'");        while($events = mysql_fetch_assoc($result))        {            $event = $events;        }        $content .= '<p><strong>Meeting Type:</strong> '.ucfirst($event['type']).'</p>';        $content .= '<p><strong>Start Date:</strong> '.date('jS F Y h:ia', $event['start_date']).'</p>';        $content .= '<p><strong>Finish Date:</strong> '.date('jS F Y h:ia', $event['finish_date']).'</p>';        $content .= '<p><strong>Location:</strong> '.$event['location'].'</p>';        $content .= '<p><strong>Web Link:</strong> '.$event['web_link'].'</p>';        $content .= '<p><strong>Description:</strong> '.$event['details'].'</p>';        $node->body .= $content;    }    function events_eventlist()    {        $content = '';        //Event Listing Page With Snap calendar        $Calendar = new Calendar($_GET);        $Calendar->base_url = "/events/";        //Get events To Feed Into Calendar        $result = db_query("SELECT nid, title, unix_timestamp(start_date) as date ".                           "FROM {events} ");        while($event = mysql_fetch_assoc($result))        {            $calendar_events[$event['nid']] = $event;            $calendar_events[$event['nid']]['date'] = date('Y-n-d', $event['date']);        }        $Calendar->setItems($calendar_events);        $content .= "<div id='ymcacalendar'>".$Calendar->returnCalendar()."</div>";        //Get Events        $select = "SELECT *, unix_timestamp(start_date) as start_date, unix_timestamp(finish_date) as finish_date ".                  "FROM {events} ";        //Construct Wehre Statement        if(isset($_GET['day'])        AND isset($_GET['month'])        AND isset($_GET['year']))        {            $where = "WHERE start_date between '".$_GET['year']."-".$_GET['month']."-".$_GET['day']." 00:00:00' and '".$_GET['year']."-".$_GET['month']."-".($_GET['day'] + 1)." 00:00:00'";        } elseif(isset($_GET['month'])        AND isset($_GET['year']))        {            $where = "WHERE start_date between '".$_GET['year']."-".$_GET['month']."-1' and '".$_GET['year']."-".$_GET['month']."-31'";        } else        {            $where = "WHERE start_date between '".date('Y-m')."-1' and '".date('Y-m')."-31' ";        }        //print('<p>'.$select.$where.'</p>');        $result = db_query($select.$where);        while($event = mysql_fetch_assoc($result))        {            $events[$event['nid']] = $event;        }        $header = array('Event Name', 'Start Date', 'Finish Date', 'Event Type', 'Testing');        foreach($events as $event)        {            $node = node_load(array('nid' => $event['nid']));            if ($node->nid)            {                $load = 'true';            } else            {                $load = 'false';            }            $rows[] = array("<a href='/events/".$event['nid']."'>".$event['title']."</a>", date('d-m-Y', $event['start_date']), date('d-m-Y', $event['finish_date']), ucfirst($event['type']), $load);        }        $content .= theme('table', $header, $rows, array('cellpadding' => '2', 'cellspacing' => '2', 'width' => '90%'));        print theme('page', $content);    }    function events_delete(&$node)    {        db_query('DELETE FROM {events} WHERE nid = %d', $node->nid);        db_query('DELETE FROM {node} WHERE nid = %d', $node->nid);        drupal_goto('events');    }