#0001
#0002
#0003
#0004
#0005
#0006
#0007
#0008
#0009
#0010
#0011
#0012
#0013
#0014
#0015
#0016
#0017
#0018
#0019
#0020
#0021
#0022
#0023
#0024
#0025
#0026
#0027
#0028
#0029
#0030
#0031
#0032
#0033
#0034
#0035
#0036
#0037
#0038
#0039
#0040
#0041
#0042
#0043
#0044
#0045
#0046
#0047
#0048
#0049
#0050
#0051
#0052
#0053
#0054
#0055
#0056
#0057
#0058
#0059
#0060
#0061
#0062
#0063
#0064
#0065
#0066
#0067
#0068
#0069
#0070
#0071
#0072
#0073
#0074
#0075
#0076
#0077
#0078
#0079
#0080
#0081
#0082
#0083
#0084
#0085
#0086
#0087
#0088
#0089
#0090
#0091
#0092
#0093
#0094
#0095
#0096
#0097
#0098
#0099
#0100
#0101
#0102
#0103
#0104
#0105
#0106
#0107
#0108
#0109
#0110
#0111
#0112
#0113
#0114
#0115
#0116
#0117
#0118
#0119
#0120
#0121
#0122
#0123
#0124
#0125
#0126
#0127
#0128
#0129
#0130
#0131
#0132
#0133
#0134
#0135
#0136
#0137
#0138
#0139
#0140
#0141
#0142
#0143
#0144
#0145
#0146
#0147
#0148
#0149
#0150
#0151
#0152
#0153
#0154
#0155
#0156
#0157
#0158
#0159
#0160
#0161
#0162
#0163
#0164
#0165
#0166
#0167
#0168
#0169
#0170
#0171
#0172
#0173
#0174
#0175
#0176
#0177
#0178
#0179
#0180
#0181
#0182
#0183
#0184
#0185
#0186
#0187
#0188
#0189
#0190
#0191
#0192
#0193
#0194
#0195
#0196
#0197
#0198
#0199
#0200
#0201
#0202
#0203
#0204
#0205
#0206
#0207
#0208
#0209
#0210
#0211
#0212
#0213
#0214
#0215
#0216
#0217
#0218
#0219
#0220
#0221
#0222
#0223
#0224
#0225
#0226
#0227
#0228
#0229
#0230
#0231
#0232
#0233
#0234
#0235
#0236
#0237
#0238
#0239
#0240
#0241
#0242
#0243
#0244
#0245
#0246
#0247
#0248
#0249
#0250
#0251
#0252
|
<?php /* * HTML helpers here. */ /** * Redirects the page. **Note should only be used on the contrller. * * @params string $controller required * @params string $action required * @params int $id optional */ function redirect_to($controller = '', $action = '', $id = '') {
header('location: ' . url_for($controller, $action, $id)); die; }
/** * Returns a stylesheets include tag. * * @author Nesbert Hidalgo * @param string/array $url required * @mparam string $/array optional default set to "screen" */ function stylesheet_include_tag($url, $media = 'screen') { if ( is_array($url) ) { foreach ( $url as $path ) { $str .= "<link rel=\"stylesheet\" type=\"text/css\" media=\"".$media."\" href=\"/stylesheets/".$path.".css\">\n"; } return $str; } else { return sprintf('<link rel="stylesheet" type="text/css" media="'.$media.'" href="%s">', $url); } }
/** * Returns a javascript script tag. * * @author Nesbert Hidalgo * @param string $script required */ function javascript_tag($script) { return sprintf('<script language="javascript" type="text/javascript">%s</script>'."\n", $script); }
/** * Returns a javascript include tag. * * @author Nesbert Hidalgo * @param string/array $url required */ function javascript_include_tag($url) { if ( is_array($url) ) { foreach ( $url as $path ) { $str .= "<script language=\"javascript\" type=\"text/javascript\" src=\"/javascripts/".$path.".js\"></script>\n"; } return $str; } else { return sprintf('<script language="javascript" type="text/javascript" src="%s"></script>', $url); } }
/** * Creates a url path for lazy programmers. Example: * * url_for('user', 'edit', 1234) * * @author Nesbert Hidalgo * @param string $controller required * @param string $action required * @param mixed $id optional */ function url_for($controller = '', $action = '', $id = '') {
if ( is_array($id) ){ $params = '?'; foreach ($id as $key => $value ) { if (is_array($value)) { $params .= http_build_query(array($key=>$value)) .'&'; } else if ($key == '#') { $params .= '#' . $value .'&'; } else { $params .= ( $key ? $key : '' ).( $key && ($value !== '') ? '='.$value : $value ).'&'; } } $id = substr($params, 0, -1); }
return DS.($controller?$controller.DS.($action?$action.DS:'').($action&&$id?$id:''):''); }
/** * Creates a anchor link for lazy programmers. Example: * * link_to('Edit', 'agent', 'edit', $this->agent->id, array( 'class' => 'classname', 'name' => 'top')) * * @author Nesbert Hidalgo * @param string $link_title optional defaults to "Goto" * @param string $controller required * @param string $action required * @param mixed $id optional * @param array $html_options optional */ function link_to($link_title = 'Goto', $controller = '', $action = '', $id = '', $html_options = null) { return '<a href="'.( $html_options['href'] ? $html_options['href'] : url_for($controller, $action, $id) ).'"'.html_options_str($html_options).'>'.$link_title.'</a>'; }
/** * Creates an email link * * @author Nesbert Hidalgo * @param string $email required * @param string $link_title optional * @param array $html_options optional */ function mail_to($email, $link_title = null, $html_options = null) { return '<a href="mailto:'.$email.'"'.html_options_str($html_options).'>'.( $link_title ? $link_title : $email ) .'</a>'; }
/** * Creates a string of html tag attributes * * @author Nesbert Hidalgo * @param string $html_options required */ function html_options_str($html_options) {
if ( is_array($html_options) && count($html_options) > 0){ // lowercase all attributes foreach ( $html_options as $attribute => $value ) $temp_arr[strtolower($attribute)] = $value; $html_options = $temp_arr;
// add confirm pop up if ( is_array($html_options) && in_array('confirm', array_keys($html_options)) ) { $msg = str_replace("'", "\'", htmlentities($html_options['confirm'])); $html_options['onclick'] = "if ( !window.confirm('{$msg}') ) return false; ".$html_options['onclick']; } $extra = ''; foreach ($html_options as $attribute => $value ) { switch ($attribute) { case 'name': case 'id': case 'value': case 'method': case 'action': case 'confirm': case 'controller': case 'href': continue; break; default: $extra .= ' '.$attribute.( $value ? '="'.$value.'"' : '' ); break; } } } return $extra;
}
/* * Creates the floating tabs. Expects an array, key = url/javascript, value = label * * @author Nesbert Hidalgo * @param array $links required * @param string $current optional default set to 1 * @param bool $use_small_tabs optional default set to false * @return string */ function tabs($links, $current = 1, $use_small_tabs = false) {
$tabs_id = 'tab'.rand();
$tabs = '<ul class="tabs'.( $use_small_tabs ? ' small_tabs' : '' ).'">'; $count = 1; foreach ( $links as $link => $text ) { $text_id = (is_numeric($current) ? $count : underscore(strip_tags($text))); $tabs .= '<li id="'.$tabs_id.'_'.$count.'" '.( $text_id == $current ? ' class="current"' : '').'><a href="'.$link.'" '.( strstr($link, 'javascript:') ? 'onclick="'.$tabs_id.'('.$count.', '.count($links).');"' : '' ).'><span>'.$text.'</span></a></li>'; $count++; } $tabs .= '</ul>'; ?> <script language="javascript" type="text/javascript"> <!-- function <?=$tabs_id?>(tab_id, tabs_count) {
for (var i=1; i <= tabs_count; i++) { if (tab_id == i) { document.getElementById('<?=$tabs_id?>_' + i).className = 'current'; } else { document.getElementById('<?=$tabs_id?>_' + i).className = ''; } } } --> </script> <? return $tabs; }
?>
|