diff options
Diffstat (limited to 'views/default/navigation/tabs.php')
| -rw-r--r-- | views/default/navigation/tabs.php | 81 | 
1 files changed, 81 insertions, 0 deletions
diff --git a/views/default/navigation/tabs.php b/views/default/navigation/tabs.php new file mode 100644 index 000000000..95e3f2669 --- /dev/null +++ b/views/default/navigation/tabs.php @@ -0,0 +1,81 @@ +<?php +/** + * Tab navigation + * + * @uses string $vars['type'] horizontal || vertical - Defaults to horizontal + * @uses string $vars['class'] Additional class to add to ul + * @uses array $vars['tabs'] A multi-dimensional array of tab entries in the format array( + * 	'text' => string, // The string between the <a></a> tags + * 	'href' => string, // URL for the link + * 	'class' => string  // Class of the li element + * 	'id' => string, // ID of the li element + * 	'selected' => bool // if this tab is currently selected (applied to li element) + * 	'link_class' => string, // Class to pass to the link + * 	'link_id' => string, // ID to pass to the link + * ) + */ +$options = elgg_clean_vars($vars); + +$type = elgg_extract('type', $vars, 'horizontal'); + +if ($type == 'horizontal') { +	$options['class'] = "elgg-tabs elgg-htabs"; +} else { +	$options['class'] = "elgg-tabs elgg-vtabs"; +} +if (isset($vars['class'])) { +	$options['class'] = "{$options['class']} {$vars['class']}"; +} + +unset($options['tabs']); +unset($options['type']); + +$attributes = elgg_format_attributes($options); + +if (isset($vars['tabs']) && is_array($vars['tabs']) && !empty($vars['tabs'])) { +	?> +	<ul <?php echo $attributes; ?>> +		<?php +		foreach ($vars['tabs'] as $info) { +			$class = elgg_extract('class', $info, ''); +			$id = elgg_extract('id', $info, ''); + +			$selected = elgg_extract('selected', $info, FALSE); +			if ($selected) { +				$class .= ' elgg-state-selected'; +			} + +			$class_str = ($class) ? "class=\"$class\"" : ''; +			$id_str = ($id) ? "id=\"$id\"" : ''; + +			$options = $info; +			unset($options['class']); +			unset($options['id']); +			unset($options['selected']); + +			if (!isset($info['href']) && isset($info['url'])) { +				$options['href'] = $info['url']; +				unset($options['url']); +			} +			if (!isset($info['text']) && isset($info['title'])) { +				$options['text'] = $options['title']; +				unset($options['title']); +			} +			if (isset($info['link_class'])) { +				$options['class'] = $options['link_class']; +				unset($options['link_class']); +			} + +			if (isset($info['link_id'])) { +				$options['id'] = $options['link_id']; +				unset($options['link_id']); +			} + +			$link = elgg_view('output/url', $options); + +			echo "<li $id_str $class_str>$link</li>"; +		} +		?> +	</ul> +	<?php +}  | 
