Changeset 1059 for trunk/include/calendar_base.class.php
- Timestamp:
- Feb 28, 2006, 5:28:06 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/calendar_base.class.php
r1057 r1059 38 38 // array of date components e.g. (2005,10,12) ... 39 39 var $date_components; 40 40 // 41 var $calendar_levels; 41 42 42 43 /** … … 53 54 } 54 55 56 function get_display_name() 57 { 58 global $conf; 59 $res = ''; 60 $url = $this->url_base; 61 62 for ($i=0; $i<count($this->date_components); $i++) 63 { 64 $res .= $conf['level_separator']; 65 66 $url .= $this->date_components[$i].'-'; 67 if ( isset($this->date_components[$i+1]) ) 68 { 69 $res .= 70 '<a href="'.$url.'">' 71 .$this->get_date_component_label($i, $this->date_components[$i]) 72 .'</a>'; 73 } 74 else 75 { 76 $res .= 77 '<span class="calInHere">' 78 .$this->get_date_component_label($i, $this->date_components[$i]) 79 .'</span>'; 80 } 81 } 82 return $res; 83 } 84 55 85 //--------------------------------------------------------- private members --- 56 86 /** 57 87 * Returns a display name for a date component optionally using labels 58 88 */ 59 function get_date_component_label($ date_component, $labels=null)89 function get_date_component_label($level, $date_component) 60 90 { 61 91 $label = $date_component; 62 if (isset($ labels[$date_component]))63 { 64 $label = $ labels[$date_component];92 if (isset($this->calendar_levels[$level]['labels'][$date_component])) 93 { 94 $label = $this->calendar_levels[$level]['labels'][$date_component]; 65 95 } 66 96 elseif ($date_component == 'any' ) … … 70 100 return $label; 71 101 } 72 102 73 103 /** 74 104 * Creates a calendar navigation bar. … … 78 108 * @param array selected_item - item currently selected (e.g. 2005) 79 109 * @param string class_prefix - html class attribute prefix for span elements 80 * @param bool allow_any - adds any to the end of the bar 110 * @param bool show_any - adds any link to the end of the bar 111 * @param bool show_empty - shows all labels even those without items 81 112 * @param array labels - optional labels for items (e.g. Jan,Feb,...) 82 113 * @return string the navigation bar 83 114 */ 84 115 function get_nav_bar_from_items($url_base, $items, $selected_item, 85 $class_prefix, $allow_any, $labels=null) 86 { 116 $class_prefix, $show_any, 117 $show_empty=false, $labels=null) 118 { 119 global $conf; 120 87 121 $nav_bar = ''; 88 122 123 if ($conf['calendar_show_empty'] and $show_empty and !empty($labels) ) 124 { 125 foreach ($labels as $item => $label) 126 { 127 if ( ! isset($items[$item]) ) 128 { 129 $items[$item] = -1; 130 } 131 } 132 ksort($items); 133 } 134 89 135 foreach ($items as $item => $nb_images) 90 136 { … … 97 143 { 98 144 $nav_bar .= '<span class="'.$class_prefix.'Sel">'; 145 $nav_bar .= $label; 146 } 147 elseif ($nb_images==-1) 148 { 149 $nav_bar .= '<span class="'.$class_prefix.'Empty">'; 99 150 $nav_bar .= $label; 100 151 } … … 113 164 $nav_bar.= '</span>'; 114 165 } 115 global $conf; 116 if ($conf['calendar_show_any'] and $ allow_any and count($items) > 1)166 167 if ($conf['calendar_show_any'] and $show_any and count($items) > 1) 117 168 { 118 169 $label = l10n('calendar_any'); … … 138 189 * Creates a calendar navigation bar for a given level. 139 190 * 140 * @param string sql_func - YEAR/MONTH/DAY/WEEK/DAYOFWEEK ... 141 * @param string sql_offset - (e.g. +1 for WEEK - first in year is 1) 142 * @param array labels - optional labels to show in the navigation bar 191 * @param int level - the level (0-year,1-month/week,2-day) 143 192 * @return void 144 193 */ 145 function build_nav_bar($level, $sql_func, 146 $sql_offset='', $labels=null) 147 { 148 global $template; 149 194 function build_nav_bar($level, $labels=null) 195 { 196 global $template, $conf; 197 150 198 $query = ' 151 SELECT DISTINCT('.$ sql_func.'('.$this->date_field.')'.$sql_offset199 SELECT DISTINCT('.$this->calendar_levels[$level]['sql'] 152 200 .') as period'; 153 201 $query.= $this->inner_sql; … … 164 212 } 165 213 214 if ( count($level_items)==1 ) 215 { 216 if ( ! isset($this->date_components[$level]) ) 217 { 218 list($key) = array_keys($level_items); 219 $this->date_components[$level] = (int)$key; 220 } 221 } 222 223 if ( $conf['calendar_multi_bar']==false ) 224 { 225 if ( $level<count($this->date_components) and 226 $level!=count($this->calendar_levels)-1 ) 227 { 228 return; 229 } 230 } 231 166 232 $url_base = $this->url_base; 167 233 for ($i=0; $i<$level; $i++) … … 181 247 $level_items, 182 248 $selected, 183 'cal ',249 'calItem', 184 250 true, 185 $labels 251 true, 252 isset($labels) ? $labels : $this->calendar_levels[$level]['labels'] 186 253 ); 187 254
Note: See TracChangeset
for help on using the changeset viewer.