[ PHPXref.com ] [ Generated: Sun Jul 20 19:13:40 2008 ] [ osCommRes 1.2.0 ]
[ Index ]     [ Variables ]     [ Functions ]     [ Classes ]     [ Constants ]     [ Statistics ]

title

Body

[close]

/includes/functions/ -> events_sessions.php (source)

   1  <?php
   2  /*

   3  

   4    osCommerce, Open Source E-Commerce Solutions

   5    http://www.oscommerce.com

   6  

   7    Copyright (c) 2003 osCommerce

   8    

   9    osCommRes, Services Online

  10    http://www.oscommres.com

  11  

  12    Copyright (c) 2005 osCommRes

  13  

  14    Released under the GNU General Public License

  15  */
  16    function get_dates_array($sInfo,$type)
  17    {
  18      $result_dates=array();
  19        $caldate=$sInfo->sessions_start_date;
  20        $edate=$sInfo->sessions_end_date;
  21        $sdate=$sInfo->sessions_start_date;
  22        //daily type

  23        if ($type=='DD')
  24        {
  25            while ($caldate<=$edate)
  26            {
  27                $result_dates[]=$caldate;
  28              $query = tep_db_query("select date_add('" . $caldate . "',interval '" . $sInfo->sessions_type_daily_days . "' day) as datenew");
  29              $result=tep_db_fetch_array($query);
  30              $caldate=$result['datenew'];
  31            }
  32        }
  33        // weekly type

  34        else if ($type=='WW')
  35        {
  36           $weekno=$sInfo->sessions_type_weekly_weeks;
  37           $weekday=$sInfo->sessions_type_weekly_days;
  38  
  39                $query = tep_db_query("select date_format('" . $caldate . "', '%w') as weekdate");
  40           $result=tep_db_fetch_array($query);
  41                $query = tep_db_query("select date_sub('" . $caldate . "',interval '" . ($result['weekdate']-1) . "' day) as caldate");
  42  
  43           $result=tep_db_fetch_array($query);
  44           $caldate=$result['caldate'];
  45           while ($caldate<=$edate)
  46            {
  47             $query = tep_db_query("select date_format('" . $caldate . "', '%d') as day,date_format('" . $caldate .  "', '%m') as month,date_format('" . $caldate . "', '%Y') as year");
  48             $result=tep_db_fetch_array($query);
  49  
  50             $startday=$result['day'];  
  51             $month=$result['month'];
  52             $year=$result['year'];
  53             
  54             $caldate=date('Y-m-d',mktime(0,0,0,$month,$startday,$year));
  55             if ($caldate>$edate) break;
  56             for ($icnt=0;$icnt<7;$icnt++){
  57               $caldate=date('Y-m-d',mktime(0,0,0,$month,$startday,$year));
  58                   if ($caldate>$edate) break;
  59               if ($caldate>$sdate && substr($weekday,$icnt,1)=='1'){ 
  60                   $result_dates[]=$caldate;}
  61              $startday=$startday+1;
  62                 }
  63              $query = tep_db_query("select date_add('" . $caldate . "',interval '" . (($sInfo->sessions_type_weekly_weeks-1) * 7) . "' day) as datenew");
  64              $result=tep_db_fetch_array($query);
  65              $caldate=$result['datenew'];
  66            }             
  67        }
  68        //monthly day

  69        else if ($type=='MD')
  70        {
  71           $query = tep_db_query("select date_format('" . $caldate . "', '%d') as day,date_format('" . $caldate .  "', '%m') as month,date_format('" . $caldate . "', '%Y') as year");
  72           $result=tep_db_fetch_array($query);
  73           $day=$sInfo->sessions_type_monthly_days;
  74           $month=$result['month'];
  75           $year=$result['year'];
  76           if ($day<$result['day']) $month=$month+$sInfo->sessions_type_monthly_months;
  77                   $caldate=date('Y-m-d',mktime(0,0,0,$month,$day,$year));
  78                 while ($caldate<=$edate)
  79            {
  80              $result_dates[]=$caldate;
  81              $month=$month+$sInfo->sessions_type_monthly_months;
  82              $caldate=date('Y-m-d',mktime(0,0,0,$month,'01',$year));
  83            }             
  84        }
  85        //Monthly month

  86        else if ($type=='MM')
  87        {
  88           $query = tep_db_query("select date_format('" . $caldate . "', '%d') as day,date_format('" . $caldate .  "', '%m') as month,date_format('" . $caldate . "', '%Y') as year");
  89           $result=tep_db_fetch_array($query);
  90           $weekno=$sInfo->sessions_type_monthly_weeks;
  91           $weekday=$sInfo->sessions_type_monthly_weekdays;
  92           $day=1;
  93           $month=$result['month'];
  94           $year=$result['year'];
  95           //if ($day<$result['day']) $month=$month+$sInfo->sessions_type_monthly_months;

  96       $caldate=date('Y-m-d',mktime(0,0,0,$month,$day,$year));
  97           while ($caldate<=$edate)
  98            {
  99             $day='01';
 100             $query = tep_db_query("select date_format('" . $caldate . "', '%w') as weekdate");
 101             $result=tep_db_fetch_array($query);              
 102             $weekdate=$result['weekdate'];
 103             if ($weekdate>$weekday)
 104               $day=$day+(7-$weekdate)+$weekday;
 105             else
 106               $day=$day+($weekday-$weekdate);
 107         if ($weekno>1) $day=$day+($weekno-1)*7; 
 108             $caldate=date('Y-m-d',mktime(0,0,0,$month,$day,$year));
 109             if ($caldate>$edate) break;
 110             if ($caldate>$sdate){
 111              $result_dates[]=$caldate;
 112              }
 113              $month=$month+$sInfo->sessions_type_monthly_weekmonths;
 114              $caldate=date('Y-m-d',mktime(0,0,0,$month,'01',$year));
 115            }             
 116        }
 117        else if ($type=='YD')
 118        {
 119           $query = tep_db_query("select date_format('" . $caldate . "', '%d') as day,date_format('" . $caldate .  "', '%m') as month,date_format('" . $caldate . "', '%Y') as year");
 120           $result=tep_db_fetch_array($query);
 121           $day=$sInfo->sessions_type_yearly_monthdays;
 122           $month=$sInfo->sessions_type_yearly_months;
 123           $year=$result['year'];
 124           if ($day<$result['day']) $year=$year+1;
 125       $caldate=date('Y-m-d',mktime(0,0,0,$month,$day,$year));
 126           while ($caldate<=$edate)
 127            {
 128                       $result_dates[]=$caldate;
 129              $year=$year+1;
 130              $caldate=date('Y-m-d',mktime(0,0,0,$month,$day,$year));
 131            }             
 132        }
 133        else if ($type=='YY')
 134        {
 135           $query = tep_db_query("select date_format('" . $caldate . "', '%d') as day,date_format('" . $caldate .  "', '%m') as month,date_format('" . $caldate . "', '%Y') as year");
 136           $result=tep_db_fetch_array($query);
 137           $weekno=$sInfo->sessions_type_yearly_weeks;
 138           $weekday=$sInfo->sessions_type_yearly_weekdays;
 139           $day=1;
 140           $month=$sInfo->sessions_type_yearly_weekmonths;
 141           $year=$result['year'];
 142       $caldate=date('Y-m-d',mktime(0,0,0,$month,$day,$year));
 143           while ($caldate<=$edate)
 144            {
 145             $day='1';
 146             $query = tep_db_query("select date_format('" . $caldate . "', '%w') as weekdate");
 147             $result=tep_db_fetch_array($query);              
 148             $weekdate=$result['weekdate'];
 149             if ($weekdate>$weekday)
 150               $day=$day+(7-$weekdate)+$weekday;
 151             else
 152               $day=$day+($weekday-$weekdate);
 153                       if ($weekno>1) $day=$day+($weekno-1)*7; 
 154             
 155             $caldate=date('Y-m-d',mktime(0,0,0,$month,$day,$year));
 156             if ($caldate>$edate) break;
 157             if ($caldate>$sdate){
 158                          $result_dates[]=$caldate;              
 159              }
 160              $year=$year+1;
 161              $caldate=date('Y-m-d',mktime(0,0,0,$month,'01',$year));
 162            }             
 163        }
 164     return $result_dates;
 165   }
 166   
 167   function tep_delete_multiple_sessions($session_id)
 168   {
 169     $session_query=tep_db_query("select sessions_id from " . TABLE_EVENTS_SESSIONS . " where recursive_sessions_id='" . $session_id . "' and sessions_type='R'");
 170  
 171     while($result=tep_db_fetch_array($session_query))
 172     {
 173        if (!tep_check_linked_reservation($result['sessions_id']))
 174           tep_db_query("delete from " . TABLE_EVENTS_SESSIONS . " where sessions_id='" . $result['sessions_id'] . "'");
 175        else
 176           tep_db_query("update " . TABLE_EVENTS_SESSIONS . " set sessions_type='' where sessions_id='" . $result['sessions_id'] . "'");
 177     }
 178   }
 179   function tep_add_multiple_session($sql_data_array)
 180   {
 181     $session_query=tep_db_query("select sessions_id from " . TABLE_EVENTS_SESSIONS . " where events_id='" . $sql_data_array['events_id'] . "' and start_date='". $sql_data_array['start_date'] . "'");
 182     $cnt=tep_db_num_rows($session_query);
 183     if ($cnt>0){
 184       $result=tep_db_fetch_array($session_query);
 185       tep_db_query("update " . TABLE_EVENTS_SESSIONS . " set sessions_type='R', recursive_sessions_id='" . $sql_data_array['recursive_sessions_id'] . "' where sessions_id='" . $result['sessions_id'] . "'");
 186       return;
 187     }
 188     tep_db_perform(TABLE_EVENTS_SESSIONS, $sql_data_array);
 189   }
 190   function tep_delete_single_session($session_id)
 191   {
 192      if (!tep_check_linked_reservation($session_id))
 193       tep_db_query("delete from " . TABLE_EVENTS_SESSIONS . " where sessions_id='" . $session_id . "'");
 194      else
 195       tep_db_query("update " . TABLE_EVENTS_SESSIONS . " set sessions_type='' where sessions_id='" . $session_id . "'");
 196   }
 197   function tep_delete_recursive_session($session_id)
 198   {
 199      tep_db_query("delete from " . TABLE_RECURSIVE_SESSIONS . " where recursive_sessions_id='" . $session_id . "'");
 200   }
 201   function tep_change_event_valid($event_id,$old_id)
 202   {
 203     if ((int)$old_id=='') $old_id=0;
 204     if ($event_id==$old_id)
 205        return '';
 206        
 207     $session_type_new=tep_get_session_type($event_id);
 208     $session_type_old=tep_get_session_type($old_id);
 209  
 210     if ($session_type_new=='' && $session_type_old=='')
 211        return '';
 212  
 213     if ($session_type_new=='' && $session_type_old!='')
 214        return '';
 215  
 216     if ($session_type_new=='S' && $session_type_old=='S')
 217        return '';
 218  
 219     if ($session_type_new=='R' && $session_type_old=='R')
 220        return '';
 221     
 222     if ($session_type_new=='S' && $session_type_old!='S')
 223        return sprintf(TEXT_ERR_RECUR_SINGLE,tep_get_events_name($event_id));
 224     
 225     if ($session_type_new=='R' && $session_type_old!='R')
 226        return sprintf(TEXT_ERR_SINGLE_RECUR,tep_get_events_name($event_id));
 227     else
 228        return sprintf(TEXT_ERR_RECUR_SINGLE,tep_get_events_name($event_id));
 229   }
 230   function tep_add_single_session($sql_data_array)
 231   {
 232     global $session_id;
 233     $session_query=tep_db_query("select sessions_id from " . TABLE_EVENTS_SESSIONS . " where events_id='" . $sql_data_array['events_id'] . "' and start_date='". $sql_data_array['start_date'] . "'");
 234     $cnt=tep_db_num_rows($session_query);
 235     if ($cnt>0){
 236       $result=tep_db_fetch_array($session_query);
 237       tep_db_query("update " . TABLE_EVENTS_SESSIONS . " set sessions_type='S' where sessions_id='" . $result['sessions_id'] . "'");
 238       return;
 239     }
 240     tep_db_perform(TABLE_EVENTS_SESSIONS, $sql_data_array);
 241     $session_id=tep_db_insert_id();
 242   }
 243   function tep_check_dates_collide($start_date,$end_date,$session_id,$event_id){
 244      $date_query=tep_db_query("select sessions_start_date,sessions_end_date from " . TABLE_RECURSIVE_SESSIONS . " where ('" . $start_date . "' between sessions_start_date and sessions_end_date or '" . $end_date . "' between sessions_start_date and sessions_end_date or ('" . $start_date . "'< sessions_start_date and '" . $end_date . "'>sessions_end_date)) and recursive_sessions_id!='" . $session_id . "' and events_id='" . $event_id . "'");
 245      $cnt=tep_db_num_rows($date_query);
 246      if ($cnt>0) 
 247        return true;
 248      else
 249        return false;
 250   }
 251  ?>


[ Powered by PHPXref - Served by Debian GNU/Linux ]