incluir parametro media en stylesheet_link_tag

Me parece que seria recomendable incluir el parametro media para agregar las hojas de estilo, creo que la mejor manera es através de parametros con nombre, para poder hacer algo como:
<?= stylesheet_link_tag('informe', 'media: print') ?>
<?= stylesheet_link_tag('informe', 'media: all', 'use_variables: true') ?>

Aqui les presento una implementacion:
function stylesheet_link_tag(){
	$params = get_params(func_get_args());
	$src = isset($params[0]) ? $params[0] : $_REQUEST['action'];

	if(isset($params['use_variables'])){
		unset($params['use_variables']);
		$kb = substr(KUMBIA_PATH, 0, strlen(KUMBIA_PATH)-1);
		$code = "<link rel=\"stylesheet\" type=\"text/css\" href=\"".KUMBIA_PATH."css.php?c=$src&p=$kb\"";
	} else {
		$code = "<link rel=\"stylesheet\" type=\"text/css\" href=\"".KUMBIA_PATH."css/$src.css\"";
	}
	
	foreach($params as $at => $val){
		if(!is_numeric($at)){
			$code.=" $at=\"".$val."\"";
		}
	}
	
	$code .= "/>\r\n";
	
	return $code;
}

Que les parece?

Saludos

Comentarios

  • edited 12:20
    Interesante, de verdad cada vez, kumbia se vuelve mas robusto.
    Yo pienso que va bien esa funcionalidad!
  • Se me ocurrio una implementacion mas potenciada, en la cual incluso se pueden especificar de un solo golpe varias hojas de estilo con los mismos atributos para link.
    <?= stylesheet_link_tag('informe', 'media: print') ?>
    <?= stylesheet_link_tag('informe', 'formulario', 'media: all', 'use_variables: true') ?>
    <?= stylesheet_link_tag('layout1', 'formularios') ?>
    

    Aqui el codigo:
    function stylesheet_link_tag(){
    	$params = get_params(func_get_args());
    	$use_variables = isset($params['use_variables']);
    	unset($params['use_variables']);
    	
    	$atts = '';
    	foreach($params as $at => $val){
    		if(!is_numeric($at)){
    			$atts.=" $at=\"".$val."\"";
    		}
    	}
    
    	$kb = substr(KUMBIA_PATH, 0, strlen(KUMBIA_PATH)-1);
    	$code = '';
    	
    	for($i=0; isset($params[$i]); $i++){
    		$src = $params[$i];
    		if($use_variables){
    			$code.="<link rel=\"stylesheet\" type=\"text/css\" href=\"".KUMBIA_PATH."css.php?c=$src&p=$kb\"$atts/>\r\n";
    		} else {
    			$code.="<link rel=\"stylesheet\" type=\"text/css\" href=\"".KUMBIA_PATH."css/$src.css\"$atts/>\r\n";
    		}	
    	}
    
    	if(!$i){ //$i=0 si no se especificaron hojas de estilo
    		$src = $_REQUEST['action'];
    		if($use_variables){
    			$code.="<link rel=\"stylesheet\" type=\"text/css\" href=\"".KUMBIA_PATH."css.php?c=$src&p=$kb\"$atts/>\r\n";
    		} else {
    			$code.="<link rel=\"stylesheet\" type=\"text/css\" href=\"".KUMBIA_PATH."css/$src.css\"$atts/>\r\n";
    		}	
    	}
    
    	return $code;
    }
    
  • Excelente trabajo. Vale la pena incluirlo en el SVN.

    Saludos
  • Listo, ya lo subi a la 0.4 y la 0.5
Sign In or Register to comment.