コード例 #1
0
ファイル: fsCalendarAdmin.php プロジェクト: rtgibbons/bya.org
    /**
     * Creates the filter and pagination bar in the overview
     * @param $filter
     * @param $part
     * @param $page
     * @param $epp
     * @param $count
     * @param $bl
     * @return unknown_type
     */
    function printNavigationBar($filter = array(), $part = 1, $page = 1, $epp = 20, $count = 0, $bl = '')
    {
        global $wpdb;
        global $fsCalendar;
        ?>
		<div class="tablenav">
			<div class="alignleft actions">
				<select name="action<?php 
        echo $part == 2 ? '2' : '';
        ?>
">
					<option selected="selected" value=""><?php 
        _e('Choose action', fsCalendar::$plugin_textdom);
        ?>
</option>
					<option value="delete"><?php 
        _e('Delete', fsCalendar::$plugin_textdom);
        ?>
</option>
					<?php 
        if ($fsCalendar->userCanPublishEvents()) {
            echo '<option value="publish">' . __('Publish', fsCalendar::$plugin_textdom) . '</option>';
        }
        ?>
					<?php 
        if ($fsCalendar->userCanEditEvents()) {
            echo '<option value="draft">' . __('Set to Draft', fsCalendar::$plugin_textdom) . '</option>';
        }
        ?>
				</select>
				<input id="doaction<?php 
        echo $part;
        ?>
" class="button-secondary action" type="submit" name="doaction" value="<?php 
        _e('Apply', fsCalendar::$plugin_textdom);
        ?>
" />
				<?php 
        if ($part == 1) {
            ?>
					<select name="event_start">
					<option value="-1"<?php 
            echo !isset($filter['datefrom']) ? ' selected="selected"' : '';
            ?>
><?php 
            _e('Show all dates', fsCalendar::$plugin_textdom);
            ?>
</option>
					<option value="0"<?php 
            echo isset($filter['datefrom']) && !isset($filter['dateto']) ? ' selected="selected"' : '';
            ?>
><?php 
            _e('Show future dates only', fsCalendar::$plugin_textdom);
            ?>
</option>
					<?php 
            $min = $wpdb->get_var('SELECT MIN(tsfrom) AS min FROM ' . $wpdb->prefix . 'fsevents');
            $max = $wpdb->get_var('SELECT MAX(tsto)   AS max FROM ' . $wpdb->prefix . 'fsevents');
            if ($min != NULL && $max != NULL) {
                $ms = fsCalendar::date('m', $min);
                $ys = fsCalendar::date('Y', $min);
                $me = fsCalendar::date('m', $max);
                $ye = fsCalendar::date('Y', $max);
                while ($ys <= $ye) {
                    while ($ms <= 12 && ($ys < $ye || $ms <= $me)) {
                        $time = mktime(0, 0, 0, $ms, 1, $ys);
                        echo '<option value="' . $time . '"' . ($time == $filter['datefrom'] ? ' selected="selected"' : '') . '>' . fsCalendar::date_i18n('F Y', $time) . '</option>';
                        $ms++;
                    }
                    $ms = 1;
                    $ys++;
                }
            }
            ?>
					</select>
					
					<?php 
            $dropdown_options = array('show_option_all' => __('View all categories'), 'hide_empty' => 0, 'hierarchical' => 1, 'show_count' => 0, 'name' => 'event_category', 'orderby' => 'name');
            if (isset($filter['categories'][0])) {
                $dropdown_options['selected'] = $filter['categories'][0];
            }
            wp_dropdown_categories($dropdown_options);
            ?>
					<input id="event-query-submit" class="button-secondary" type="submit" value="<?php 
            _e('Filter', fsCalendar::$plugin_textdom);
            ?>
" />
				<?php 
        }
        ?>
			</div>
		<?php 
        if ($count > $epp) {
            $evon = ($page - 1) * $epp + 1;
            $ebis = $page * $epp;
            $pages = ceil($count / $epp);
            ?>
			<div class="tablenav-pages">		
			<span class="displaying-num"><?php 
            printf('Showing %d-%d of %d', $evon, $ebis, $count);
            ?>
</span>
				<?php 
            if ($page > 1) {
                echo '<a class="prev page-numbers" href="' . $bl . 'paged=1">&laquo;</a>';
            }
            for ($i = 1; $i <= $pages; $i++) {
                if ($i == $page) {
                    echo '<span class="page-numbers current">' . $i . '</span>';
                } else {
                    echo '<a class="page-numbers" href="' . $bl . 'paged=' . $i . '">' . $i . '</a>';
                }
            }
            if ($page < $pages) {
                echo '<a class="next page-numbers" href="' . $bl . 'paged=' . $pages . '">&raquo;</a>';
            }
            ?>
			</div>
		<?php 
        }
        ?>
		</div>
		<?php 
    }
コード例 #2
0
ファイル: FormEvent.php プロジェクト: rtgibbons/bya.org
						</div>
						<div class="misc-pub-section">
							<?php 
    _e('Published by', fsCalendar::$plugin_textdom);
    ?>
: <span id="post-status-display"> <?php 
    echo empty($evt->publishauthor_t) ? '-' : esc_attr($evt->publishauthor_t);
    ?>
</span>
						</div>
						<div class="misc-pub-section">
							<?php 
    _e('Published', fsCalendar::$plugin_textdom);
    ?>
: <span id="post-status-display"> <?php 
    echo !empty($evt->publishdate) ? fsCalendar::date_i18n($evt->date_time_format, $evt->publishdate) : '-';
    ?>
</span>
						</div>
						<?php 
    if ($action != 'view' && $evt->updatedbypost == true) {
        echo '<div class="misc-pub-section">';
        echo sprintf(__('This event is synchronized with <a href="post.php?post=%d&action=edit">this post</a>. Click ' . "<a class=\"hide-if-no-js\" href=\"\" onClick=\"document.forms['event'].jsaction.value='nosync'; document.forms['event'].submit(); return false;\"'>" . 'here</a> to disable the synchronization.', fsCalendar::$plugin_textdom), $evt->postid);
        echo '</div>';
    }
    ?>
					</div>
					<div class="clear"/></div>
				</div>
			
				<?php 
コード例 #3
0
ファイル: fsCalendar.php プロジェクト: rtgibbons/bya.org
 /**
  * Filters all {event*} tags
  * @param $content Content to filter
  * @param $evt Event Object (optional)
  * @return String Filtered content
  */
 function filterContent($content, $evt = NULL)
 {
     // Match all tags, but make sure that no escaped {} are selected!
     preg_match_all('/[^\\\\]?(\\{event[s]?_(.+?[^\\\\])\\})/is', $content, $matches, PREG_SET_ORDER);
     foreach ($matches as $k => $m) {
         $matches[$k][0] = $m[1];
         $matches[$k][1] = $m[2];
         unset($matches[$k][2]);
     }
     if (count($matches) == 0) {
         return $content;
     }
     // Get Page url if any
     $page_id = intval(get_option('fse_page'));
     if (!empty($page_id)) {
         $page_url = get_permalink($page_id);
         if (!empty($page_url)) {
             if (strpos($page_url, '?') === false) {
                 $page_url .= '?event=';
             } else {
                 $page_url .= '&event=';
             }
         }
     }
     $showenddate = get_option('fse_show_enddate') == true ? true : false;
     $hideifallday = get_option('fse_allday_hide_time') == true ? true : false;
     if (!empty($evt)) {
         // We just create an event object, if it does no exist, all var are empty!
     } elseif (isset($_GET['event'])) {
         $evt = new fsEvent(intval($_GET['event']), 'publish');
     } else {
         // Load an empty event, to get all attributes in the correct format
         $evt = new fsEvent(-1);
     }
     // Calculate duration
     $start = floor($evt->tsfrom / 60);
     $end = floor($evt->tsto / 60);
     $diff = $end - $start;
     if ($evt->allday == true) {
         $dur_days = floor($diff / 1440) + 1;
         // Add 1 day
     } else {
         $dur_days = floor($diff / 1440);
         $diff -= $dur_days * 1440;
         $dur_hours = floor($diff / 60);
         $diff -= $dur_hours * 60;
         $dur_minutes = $diff;
     }
     foreach ($matches as $m) {
         //$token = explode(';', $m[1]);
         $token = array();
         $qopen = false;
         $esc = false;
         $temp = '';
         // Covert URL Encodings
         $m[1] = html_entity_decode($m[1]);
         $m[1] = str_replace(array('&#8221;', '&#8243;', '&#8220;'), array('"', '"', '"'), $m[1]);
         /*$m[1] = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $m[1]);
         		$m[1] = preg_replace('~&#([0-9]+);~e', 'chr("\\1")', $m[1]);*/
         for ($i = 0; $i < strlen($m[1]); $i++) {
             if ($m[1][$i] == '"' && $esc == false) {
                 $qopen = !$qopen;
                 $esc = false;
                 $temp .= '"';
             } elseif ($m[1][$i] == "\\") {
                 // Maybe already escaped, just add it as well
                 if ($esc == true) {
                     $temp .= '\\';
                     // Make 2!
                     $esc = false;
                 } else {
                     $esc = true;
                 }
             } elseif ($m[1][$i] == ';' && $qopen == false) {
                 $token[] = trim($temp);
                 $temp = '';
                 $esc = false;
             } else {
                 $temp .= $m[1][$i];
                 $esc = false;
             }
         }
         if (!empty($temp)) {
             $token[] = $temp;
         }
         $opts = array();
         $opts_orig = array();
         if (count($token) > 1) {
             for ($i = 1; $i < count($token); $i++) {
                 list($opt_orig, $val) = explode('=', $token[$i], 2);
                 $val = trim($val);
                 $opt_orig = trim($opt_orig);
                 $opt = strtolower($opt_orig);
                 // Remove " "
                 preg_match('/^"(.*)"$/s', $val, $matches);
                 if (count($matches) > 0) {
                     $val = $matches[1];
                 }
                 $opts[$opt] = $val;
                 $opts_orig[$opt_orig] = $val;
             }
         }
         $tag = strtolower(trim($token[0]));
         // Reset!
         $rep = '';
         switch ($tag) {
             case 'id':
                 if (isset($opts['id'])) {
                     unset($evt);
                     $evt = new fsEvent(intval($opts['id']), 'publish');
                     $rep = '';
                 } else {
                     $rep = $evt->eventid;
                 }
                 break;
             case 'subject':
                 if (empty($evt->subject)) {
                     $rep = __('Event not found');
                 } else {
                     $rep = $evt->subject;
                 }
                 break;
             case 'location':
                 $rep = $evt->location;
                 break;
             case 'description':
                 $rep = $evt->getDescription();
                 break;
             case 'author':
                 $rep = $evt->author_t;
                 break;
             case 'publisher':
                 $rep = $evt->publishauthor_t;
                 break;
             case 'authorid':
                 $rep = $evt->author;
                 break;
             case 'publisherid':
                 $rep = $evt->publishauthor;
                 break;
             case 'startdate':
                 if (!empty($evt->tsfrom)) {
                     if (isset($opts['fmt'])) {
                         $rep = $evt->getStart($opts['fmt'], 2);
                     } else {
                         $rep = $evt->getStart('', 2);
                     }
                 } else {
                     $rep = '';
                 }
                 break;
             case 'enddate':
                 if (!empty($evt->tsto)) {
                     if (isset($opts['alwaysshowenddate'])) {
                         $l_sed = $opts['alwaysshowenddate'] == true ? true : false;
                     } else {
                         $l_sed = $showenddate;
                     }
                     // Do not display if date AND time is the same
                     if ($l_sed == false && (fsCalendar::date('d', $evt->tsto) == fsCalendar::date('d', $evt->tsfrom) && fsCalendar::date('m', $evt->tsto) == fsCalendar::date('m', $evt->tsfrom) && fsCalendar::date('Y', $evt->tsto) == fsCalendar::date('Y', $evt->tsfrom))) {
                         $rep = '';
                     } else {
                         if (isset($opts['before'])) {
                             $rep = $opts['before'];
                         } else {
                             $rep = '';
                         }
                         if (isset($opts['fmt'])) {
                             $rep .= $evt->getEnd($opts['fmt'], 2);
                         } else {
                             $rep .= $evt->getEnd('', 2);
                         }
                     }
                 } else {
                     $rep = '';
                 }
                 break;
             case 'starttime':
                 if (!empty($evt->tsfrom)) {
                     if (isset($opts['hideifallday'])) {
                         $l_hide = $opts['hideifallday'] == true ? true : false;
                     } else {
                         $l_hide = $hideifallday;
                     }
                     if ($evt->allday == true && $l_hide == true) {
                         $rep = '';
                     } else {
                         // Do not display if date AND time is the same
                         if (isset($opts['fmt'])) {
                             $rep = $evt->getStart($opts['fmt'], 3);
                         } else {
                             $rep = $evt->getStart('', 3);
                         }
                     }
                 } else {
                     $rep = '';
                 }
                 break;
             case 'endtime':
                 if (!empty($evt->tsto)) {
                     if (isset($opts['hideifallday'])) {
                         $l_hide = $opts['hideifallday'] == true ? true : false;
                     } else {
                         $l_hide = $hideifallday;
                     }
                     // Do not display if date AND time is the same
                     if (isset($opts['alwaysshowenddate'])) {
                         $l_sed = $opts['alwaysshowenddate'] == true ? true : false;
                     } else {
                         $l_sed = $showenddate;
                     }
                     if ($evt->allday == true && $l_hide == true || $l_sed == false && $evt->tsfrom == $evt->tsto) {
                         $rep = '';
                     } else {
                         if (isset($opts['before'])) {
                             $rep = $opts['before'];
                         } else {
                             $rep = '';
                         }
                         if (isset($opts['fmt'])) {
                             $rep .= $evt->getEnd($opts['fmt'], 3);
                         } else {
                             $rep .= $evt->getEnd('', 3);
                         }
                     }
                 } else {
                     $rep = '';
                 }
                 break;
             case 'duration':
                 $t = $opts['type'];
                 $a = $opts['suffix'];
                 $e = isset($opts['empty']) ? $opts['empty'] : 0;
                 if (in_array($t, array('d', 'h', 'm'))) {
                     if ($evt->allday == true) {
                         if ($t == 'd') {
                             $rep = $dur_days . $a;
                         } else {
                             $rep = '';
                         }
                     } else {
                         switch ($t) {
                             case 'd':
                                 $rep = $dur_days;
                                 break;
                             case 'h':
                                 $rep = $dur_hours;
                                 break;
                             case 'm':
                                 $rep = $dur_minutes;
                                 break;
                         }
                         if (empty($rep) && $e != 1) {
                             $rep = '';
                         } else {
                             $rep .= $a;
                         }
                     }
                 } else {
                     $rep = '';
                 }
                 break;
             case 'allday':
                 if ($evt->allday == true && isset($opts['text'])) {
                     $rep = $opts['text'];
                 } else {
                     $rep = '';
                 }
                 break;
             case 'publishdate':
                 if (!empty($evt->publishdate)) {
                     if (isset($opts['fmt'])) {
                         $rep = fsCalendar::date_i18n($opts['fmt'], $evt->publishdate);
                     } else {
                         $rep = fsCalendar::date_i18n('d.m.Y', $evt->publishdate);
                     }
                 } else {
                     $rep = '';
                 }
                 break;
             case 'publishtime':
                 if (!empty($evt->publishdate)) {
                     if (isset($opts['fmt'])) {
                         $rep = fsCalendar::date_i18n($opts['fmt'], $evt->publishdate);
                     } else {
                         $rep = fsCalendar::date_i18n('H:i', $evt->publishdate);
                     }
                 } else {
                     $rep = '';
                 }
                 break;
             case 'categories':
                 $excl = array();
                 if (isset($opts['exclude'])) {
                     $excl = explode(',', $opts['exclude']);
                 }
                 if (isset($opts['sep'])) {
                     $sep = $opts['sep'];
                 } else {
                     $sep = ', ';
                 }
                 $rep = '';
                 $first = true;
                 foreach ($evt->categories_t as $k => $c) {
                     if (!in_array($k, $excl)) {
                         if ($first == true) {
                             $first = false;
                         } else {
                             if ($sep != 'list') {
                                 $rep .= $sep;
                             }
                         }
                         if ($sep == 'list') {
                             $rep .= '<li>' . $c . '</li>';
                         } else {
                             $rep .= $c;
                         }
                     }
                 }
                 if ($sep == 'list') {
                     $rep = '<ul class="eventcategories">' . $rep . '</ul>';
                 }
                 break;
             case 'url':
                 if ($opts['linktopost'] == true && !empty($evt->postid)) {
                     $rep = get_permalink($evt->postid);
                 } elseif (!empty($page_url) && !empty($evt->eventid)) {
                     $rep = $page_url . $evt->eventid;
                 } else {
                     $rep = '';
                 }
                 break;
             case 'print':
                 $opts['echo'] = false;
                 // No echo!
                 $rep = $this->printEvents($opts);
                 break;
             case 'printlist':
                 $opts['echo'] = false;
                 // No echo!
                 $rep = $this->printEventsList($opts);
                 break;
             case 'calendar':
                 $uniqueId = substr(uniqid('fscal-'), 0, 12);
                 $rep = '<div id="' . $uniqueId . '"></div>';
                 $rep .= "<script type=\"text/javascript\">jQuery(document).ready(function() {jQuery('#{$uniqueId}').fullCalendar({";
                 // Convert hierarchical options
                 if (is_array($opts_orig)) {
                     foreach ($opts_orig as $key => $val) {
                         $keys = explode('->', $key);
                         // Process from the last to the second
                         for ($i = count($keys) - 1; $i > 0; $i--) {
                             $tmp[trim($keys[$i])] = $val;
                             $val = $tmp;
                         }
                         if (trim($keys[0]) != $key) {
                             unset($opts_orig[$key]);
                         }
                         $opts_orig[trim($keys[0])] = $val;
                     }
                 }
                 // First day of week
                 if (!isset($opts_orig['firstDay'])) {
                     if (get_option('fse_ws_wp') == true) {
                         $weekstart = get_option('start_of_week');
                     } else {
                         $weekstart = get_option('fse_ws');
                     }
                     $rep .= "firstDay: {$weekstart},";
                 }
                 // Date formats
                 if (!isset($opts_orig['timeFormat'])) {
                     $fmt = $this->convertDateFmt(get_option('time_format'));
                     $rep .= "timeFormat: \"{$fmt}\",";
                 }
                 // Translation of month and day names
                 if (!isset($opts_orig['monthNames'])) {
                     $rep .= 'monthNames: ["' . implode('","', $GLOBALS['month']) . '"],';
                 }
                 if (!isset($opts_orig['monthNamesShort'])) {
                     $rep .= 'monthNamesShort: ["' . implode('","', $GLOBALS['month_abbrev']) . '"],';
                 }
                 if (!isset($opts_orig['dayNames'])) {
                     $rep .= 'dayNames: ["' . implode('","', $GLOBALS['weekday']) . '"],';
                 }
                 if (!isset($opts_orig['dayNamesShort'])) {
                     $rep .= 'dayNamesShort: ["' . implode('","', $GLOBALS['weekday_abbrev']) . '"],';
                 }
                 if (!isset($opts_orig['titleFormat'])) {
                     $rep .= 'titleFormat: {' . 'month: "' . addslashes($this->convertDateFmt(get_option('fse_fc_tit_month_fmt'))) . '",' . 'week: "' . addslashes($this->convertDateFmt(get_option('fse_fc_tit_week_fmt'))) . '",' . 'day: "' . addslashes($this->convertDateFmt(get_option('fse_fc_tit_day_fmt'))) . '"' . '},';
                 }
                 if (!isset($opts_orig['columnFormat'])) {
                     $rep .= 'columnFormat: {' . "month: '" . addslashes($this->convertDateFmt(get_option('fse_fc_col_month_fmt'))) . "'," . "week: '" . addslashes($this->convertDateFmt(get_option('fse_fc_col_week_fmt'))) . "'," . "day: '" . addslashes($this->convertDateFmt(get_option('fse_fc_col_day_fmt'))) . "'" . '},';
                 }
                 // Button Texts
                 if (!isset($opts_orig['buttonText'])) {
                     $rep .= 'buttonText: {' . "prev: '" . __('&nbsp;&#9668;&nbsp;', self::$plugin_textdom) . "'," . "next: '" . __('&nbsp;&#9658;&nbsp;', self::$plugin_textdom) . "'," . "prevYear: '" . __('&nbsp;&lt;&lt;&nbsp;', self::$plugin_textdom) . "'," . "nextYear: '" . __('&nbsp;&gt;&gt;&nbsp;', self::$plugin_textdom) . "'," . "today: '" . __('today', self::$plugin_textdom) . "'," . "month: '" . __('month', self::$plugin_textdom) . "'," . "week: '" . __('week', self::$plugin_textdom) . "'," . "day: '" . __('day', self::$plugin_textdom) . "'},";
                 }
                 //Add all original options
                 if (is_array($opts_orig)) {
                     foreach ($opts_orig as $key => $val) {
                         $rep .= $this->filterContentProcessCalOpts($key, $val);
                     }
                 }
                 // Link Click
                 $postlink = isset($opts_orig['linktopost']) && $opts_orig['linktopost'] == true;
                 if ($postlink || isset($page_url)) {
                     $rep .= "eventClick: function(calEvent, jsEvent, view) {";
                     if ($postlink) {
                         $rep .= "if (calEvent.post_url != '') { document.location.href=calEvent.post_url; return; }";
                     }
                     if (!empty($page_url)) {
                         $rep .= "document.location.href='{$page_url}'+calEvent.id;";
                     }
                     $rep .= "},";
                 }
                 $rep .= "events: function(start, end, callback) {\n\t\t\t\t\t    \tjQuery.post(\n\t\t\t\t\t    \t\tWPCalendar.ajaxUrl,\n\t\t\t\t\t    \t\t{\n\t\t\t\t\t    \t\t\taction: 'wpcal-getevents',\n\t\t\t\t\t                start: Math.round(start.getTime() / 1000),\n\t\t\t\t\t                end: Math.round(end.getTime() / 1000)" . (isset($opts['include']) ? ",include:'" . $opts['include'] . "'" : '') . (isset($opts['exclude']) ? ",exclude:'" . $opts['exclude'] . "'" : '') . (isset($opts['categories']) ? ",categories:'" . $opts['categories'] . "'" : '') . (isset($opts['state']) ? ",state:'" . $opts['state'] . "'" : '') . (isset($opts['author']) ? ",author:'" . $opts['author'] . "'" : '') . "},\n\t\t\t\t\t    \t\tfunction(events) {\n\t\t\t\t\t    \t\t\tvar evt = eval(events);\n\t\t\t\t\t    \t\t\tcallback(evt);\n\t\t\t\t\t    \t\t}\n\t\t\t\t\t    \t);\n\t\t\t\t\t    },";
                 if ($rep[strlen($rep) - 1] == ',') {
                     $rep = substr($rep, 0, strlen($rep) - 1);
                 }
                 $rep .= '})});';
                 $rep .= '</script>';
                 break;
         }
         $content = preg_replace('/' . preg_quote($m[0], '/') . '/', str_replace('$', '\\$', $rep), $content, 1);
     }
     return $content;
 }
コード例 #4
0
ファイル: fsCalendarEvent.php プロジェクト: rtgibbons/bya.org
 /**
  * Returns the formatted end date/time string
  * @param $fmt Format (See PHP function date())
  * @param $mode Mode (1=Date+Time, 2=Date only, 3=Time only)
  * @return String Formatted date string
  */
 function getEnd($fmt = '', $mode = 1)
 {
     if (empty($this->tsto)) {
         return '';
     }
     if (empty($fmt)) {
         switch ($mode) {
             case 1:
                 $fmt = $this->date_format . ' ' . $this->time_format;
                 break;
             case 2:
                 $fmt = $this->date_format;
                 break;
             case 3:
                 $fmt = $this->time_format;
                 break;
         }
     }
     return fsCalendar::date_i18n($fmt, $this->tsto);
 }