web/wp-content/plugins/event-calendar/options.php
changeset 136 bde1974c263b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/plugins/event-calendar/options.php	Wed Feb 03 15:37:20 2010 +0000
@@ -0,0 +1,281 @@
+<?php
+/*
+Copyright (c) 2005-2008, Alex Tingle.  $Revision: 281 $
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+*/
+
+/** Singleton class. Manages EC3 options. Global options that are guaranteed to
+ *  exist (start of week, siteurl, home) are not managed by this class. */
+class ec3_Options
+{
+  // Some global variables.
+  var $version='3.1.4';
+  var $myfiles='';
+  var $call_count=0;
+  var $schedule='ec3_schedule'; // table name
+
+  // Code differences required by different versions of WordPress.
+  // Defaults represent the latest version of WP.
+
+  /** The name of the column wp_posts.user_nicename. */
+  var $wp_user_nicename='user_nicename';
+  /** The root of the XHTML id of the category checkboxes (edit page). */
+  var $wp_in_category='in-category-';
+  /** Is DBX available? */
+  var $wp_have_dbx=true;
+  /** Do we have categories? (WP<2.3) */
+  var $wp_have_categories=false;
+
+  // Settings used to flags activity between posts_where and other filters:
+  var $is_listing=false;
+  var $is_date_range=false;
+  var $is_today=false;
+  var $days=false;
+  var $range_from=false;
+  var $range_before=false;
+  var $join_ec3_sch=false;
+  var $join_only_active_events=false;
+  var $order_by_start=false;
+  
+  /** May be set TRUE by a template before the call to wp_head().
+    * Turns off CSS in header. */
+  var $nocss=false;
+
+  /** Which category is used for events? DEFAULT=0 */
+  var $event_category;
+  /** Show only events in calendar. DEFAULT=false */
+  var $show_only_events;
+  /** Number to months displayed by get_calendar(). DEFAULT=1 */
+  var $num_months;
+  /** Should day names be abbreviated to 1 or 3 letters? DEFAULT=1 */
+  var $day_length;
+  /** Hide the 'EC' logo on calendar displays? DEFAULT=0 */
+  var $hide_logo;
+  /** Display event box within post. DEFAULT=0 */
+  var $hide_event_box;
+  /** Use advanced post behaviour? DEFAULT=0 */
+  var $advanced;
+  /** Position navigation links or hide them. DEFAULT=0 */
+  var $navigation;
+  /** Disable popups? DEFAULT=0 */
+  var $disable_popups;
+  /** Local timezone. */
+  var $tz;
+
+  function ec3_Options()
+  {
+    global $table_prefix,$wp_version;
+
+    $mydir=
+      preg_replace('%^.*[/\\\\]([^/\\\\]+)[/\\\\]options.php$%','$1',__FILE__);
+    load_plugin_textdomain('ec3','wp-content/plugins/'.$mydir.'/gettext');
+
+    $this->myfiles=get_option('siteurl').'/wp-content/plugins/'.$mydir;
+    $this->schedule=$table_prefix.$this->schedule; // table name
+
+    // wp_version < 2.0
+    if(ereg('^1[.]',$wp_version))
+    {
+      $this->wp_user_nicename='user_nickname';
+      $this->wp_have_dbx=false;
+    }
+    // wp_version < 2.1
+    if(ereg('^(1[.]|2[.]0)',$wp_version))
+    {
+      $this->wp_in_category='category-';
+    }
+    // wp_version < 2.3
+    if(ereg('^(1[.]|2[.][012])',$wp_version))
+    {
+      $this->wp_have_categories=true;
+    }
+
+    $this->read_event_category();
+    $this->read_show_only_events();
+    $this->read_num_months();
+    $this->read_day_length();
+    $this->read_hide_logo();
+    $this->read_hide_event_box();
+    $this->read_advanced();
+    $this->read_navigation();
+    $this->read_disable_popups();
+    $this->read_tz();
+  }
+  
+  function reset_query()
+  {
+    $this->is_listing=false;
+    $this->is_date_range=false;
+    $this->is_today=false;
+    $this->days=false;
+    $this->range_from=false;
+    $this->range_before=false;
+    $this->join_ec3_sch=false;
+    $this->join_only_active_events=false;
+    $this->order_by_start=false;
+  }
+
+  // READ functions
+  function read_event_category()
+  {
+    $this->event_category=intval( get_option('ec3_event_category') );
+  }
+  function read_show_only_events()
+  {
+    $this->show_only_events=intval(get_option('ec3_show_only_events'));
+  }
+  function read_num_months()
+  {
+    $this->num_months =abs(intval(get_option('ec3_num_months')));
+    if(!$this->num_months)
+        $this->num_months=1;
+  }
+  function read_day_length()
+  {
+    $this->day_length=intval(get_option('ec3_day_length'));
+    if($this->day_length==0)
+        $this->day_length=1;
+  }
+  function read_hide_logo()
+  {
+    $this->hide_logo=intval(get_option('ec3_hide_logo'));
+  }
+  function read_hide_event_box()
+  {
+    $this->hide_event_box=intval(get_option('ec3_hide_event_box'));
+  }
+  function read_advanced()
+  {
+    $this->advanced=intval(get_option('ec3_advanced'));
+    // Sometimes we want to play around with the value of advanced.
+    // 'advanced_setting' ALWAYS holds the REAL value.
+    $this->advanced_setting=$this->advanced;
+  }
+  function read_navigation()
+  {
+    $this->navigation=intval(get_option('ec3_navigation'));
+  }
+  function read_disable_popups()
+  {
+    $this->disable_popups=intval(get_option('ec3_disable_popups'));
+  }
+  function read_tz()
+  {
+    $this->tz = get_option('ec3_tz');
+    if(empty($this->tz) || $this->tz=='wordpress')
+    {
+      // Use WordPress default (doesn't understand daylight saving time).
+      $gmt_offset=-intval(get_option('gmt_offset'));
+      $this->tz='UTC';
+      if($gmt_offset>0)
+        $this->tz.='+'.$gmt_offset;
+      elseif($gmt_offset<0)
+        $this->tz.=$gmt_offset;
+    }
+  }
+  
+  // SET functions
+  function set_event_category($val)
+  {
+    if($this->event_category!=$val)
+    {
+      update_option('ec3_event_category',$val);
+      $this->read_event_category();
+    }
+  }
+  function set_show_only_events($val)
+  {
+    if($this->show_only_events!=$val)
+    {
+      update_option('ec3_show_only_events',$val);
+      $this->read_show_only_events();
+    }
+  }
+  function set_num_months($val)
+  {
+    if($this->num_months!=$val)
+    {
+      update_option('ec3_num_months',$val);
+      $this->read_num_months();
+    }
+  }
+  function set_day_length($val)
+  {
+    if($this->day_length!=$val)
+    {
+      update_option('ec3_day_length',$val);
+      $this->read_day_length();
+    }
+  }
+  function set_hide_logo($val)
+  {
+    if($this->hide_logo!=$val)
+    {
+      update_option('ec3_hide_logo',$val);
+      $this->read_hide_logo();
+    }
+  }
+  function set_hide_event_box($val)
+  {
+    if($this->hide_event_box!=$val)
+    {
+      update_option('ec3_hide_event_box',$val);
+      $this->read_hide_event_box();
+    }
+  }
+  function set_advanced($val)
+  {
+    if($this->advanced_setting!=$val)
+    {
+      update_option('ec3_advanced',$val);
+    }
+    // read_advanced() does some special magic, so we always call it.
+    $this->read_advanced();
+  }
+  function set_navigation($val)
+  {
+    if($this->navigation!=$val)
+    {
+      update_option('ec3_navigation',$val);
+      $this->read_navigation();
+    }
+  }
+  function set_disable_popups($val)
+  {
+    if($this->disable_popups!=$val)
+    {
+      update_option('ec3_disable_popups',$val);
+      $this->read_disable_popups();
+    }
+  }
+  function set_tz($val)
+  {
+    if(!preg_match('/(WordPress|[_a-zA-Z\/]+)/',$val))
+      return;
+    if($this->tz!=$val)
+    {
+      update_option('ec3_tz',$val);
+      $this->read_tz();
+    }
+  }
+} // end class ec3_Options
+
+
+/** Singleton instance of ec3_Options. */
+$ec3=new ec3_Options();
+
+
+?>