View Source

/hsphere/local/home/c251266/sunsetvines.com/www.sunsetvines.com/sunsetvines/current/vendor/creovel/helpers/html.php (5.683 KB)

#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($params0, -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;
    
}

?>