Propongo los siguientes cambios:
Modificar el file del directorio views\index.phtml por…
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http:///www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml">
<html>
<head>
<meta http-equiv='Content-type' content='text/html; charset=iso8859-1' />
<title>Kumbia PHP Framework</title>
<? stylesheet_link('style') ?>
<? kumbia::javascript_base() ?>
<? kumbia::javascript_use_drag() ?>
</head>
<body>
<?php content() ?>
</body>
</html>
Para poder trabajar con xhtml como mencionaron en anteriores post, y de una vez que el proyecto sea mas serio.
Modificar en el file del directorio forms\xml\main.php el siguiente metodo…
function simpleXMLResponse(){
$this->code.="<?xml version='1.0' encoding='UTF-8'?>\r\n<response>\r\n";
}
Evitar el problema caracteristicos de los caracteres especiales en español, suceden cuando usan ajax en sus aplicaciones y utf-8 habarca estos caracteres sin problema.
Modificar en el file del directorio public\javascript\kumbia\base .js los siguientes metodos.
function enable_upload_file(file){
if (navigator.appName == 'Microsoft Internet Explorer'){
$(file).name = file+"_ix"
$(file+"_file").name = file
$(file+"_in").show()
}else{
$(file+"_file").id = file+"_tmp"
$(file).id = file+"_file"
$(file+"_file").name = file+"_file"
$(file+"_tmp").id = file
$(file).name = file
}
$(file+"_span").show()
$(file+"_span_pre").hide()
$(file+"_im").hide()
}
function upload_file(file){
if (navigator.appName == 'Microsoft Internet Explorer'){
if ($(file+"_in").src){
$(file+"_in").show()
}
$(file+"_in").src = "file://"+$(file+'_file').value
}
}
function cancel_upload_file(file){
if (navigator.appName != 'Microsoft Internet Explorer'){
$(file+"_file").id = file+"_tmp"
$(file).name = file+"_file"
$(file).id = file+"_file"
$(file+"_file").name = file+"_file"
$(file+"_tmp").id = file
$(file).name = file
}else {
$(file+"_file").name = file+"_file"
$(file).name = file
$(file+"_in").hide()
}
if ($(file).selectedIndex != 0){
$(file+"_im").show()
}
$(file+"_span").hide()
$(file+"_span_pre").show()
}
Modificar en el file del directorio lib\kumbia\tags.php el siguiente metodo…
function upload_image_tag(){
$opts = get_params(func_get_args());
if(!$opts){
$opts = $opts[0];
}
$code.="<span id='{$opts}_span_pre'>
<select name='{$opts[0]}' id='{$opts[0]}' onchange='show_upload_image(this)'>";
$code.="<option value='
@'>Seleccione...\n";
foreach(scandir("public/img/upload") as $file){
if($file!='index.html'&&$file!='.'&&$file!='..'&&$file!='Thumbs.db'&&$file!='desktop.ini'&&$file!='CVS'){
$nfile = str_replace('.gif', '', $file);
$nfile = str_replace('.jpg', '', $nfile);
$nfile = str_replace('.png', '', $nfile);
$nfile = str_replace('.bmp', '', $nfile);
$nfile = str_replace('_', ' ', $nfile);
$nfile = ucfirst($nfile);
if(urlencode("upload/$file")==$opts){
$code.="<option selected value='upload/$file' style='background: #EAEAEA'>$nfile</option>\n";
} else {
$code.="<option value='upload/$file'>$nfile</option>\n";
}
}
}
$code.="</select> <a href='#{$opts}_up' name='{$opts}_up' id='{$opts}_up' onclick='enable_upload_file(\"{$opts}\")'>Subir Imagen</a></span>
<span style='display:none' id='{$opts}_span'>
<input type='file' name='{$opts}_file' id='{$opts}_file' onchange='upload_file(\"{$opts}\")' >
<a href='#{$opts}_can' name='{$opts}_can' id='{$opts}_can' style='color:red' onclick='cancel_upload_file(\"{$opts}\")'>Cancelar</a></span>
";
if(!$opts) $opts = 128;
if($opts){
$opts="border: 1px solid black;margin: 5px;".$opts;
} else {
$opts="border: 1px solid black;display: none;margin: 5px;".$opts;
}
$code.="<div>".img_tag(urldecode($opts), 'width: '.$opts, 'style: '.$opts, 'id: '.$opts."_im")."</div>";
$code.="<div>".img_tag(urldecode($opts), 'width: '.$opts, 'style: '.$opts, 'id: '.$opts."_in")."</div>";
return $code;
}
Estos metodos hacen completamente funcional al metodo ‘upload_image_tag’, probado en Opera, Firefox y IE. Este codigo ya se encuentra en el ejemplo llamado ‘prueba’ que subi a los grupos pero que no tomaron en cuenta, espero que para las futuras versiones si lo hagan. Al hacer todo este codigo se me presento una interrogante y me gustaria que la comunidad me de su opnion al respecto…
Comentarios
EL FRAMEWORK KUMBIA CON TODAS SUS BONDADES(conjunto de herramientas) QUE BRINDA A TODOS LOS PROGRAMADORES DEBERA TENER UN RESULTADO(A NIVEL DE RESULTADO DE APLIACIONES) IGUAL EN TODOS LOS NAVEGADORES, O EXPLOTAREMOS AL MAXIMO PERMITIDO LAS FUNCIONALIDADES JAVASCRIPT QUE NOS PERMITE??
Mi opinión personal es, si estamos trabajando en una super herramienta Framework, la vista final de las aplicaciones deberia ser igual en todos los navegadores, seria una manera de standarizar aplicaciones. Espero comprendan lo que quiero decir y opinen al respecto. Dejo un ejemplo en los grupos ‘fechaDate_image.zip’ este ejemplo ya cuentan con estas modificaciones lo probe en OPERA, FIREFOX y IE. Por favor pruebenlo con los diferentes navegadores.
Dato.- Me habria encantado poder tener la misma vista por igual en los diferentes navegadores, pero Firefox y Opera tienen problemas en el ‘src’ de una imagen, en otras palabras no carga la imagen ‘no lee correctamente el directorio’, tb me interesaria sus comentarios sobre este tema.
Estoy revisando tu codigo para llevarlo al SVN.
Gracias y Saludos
En cuanto a lo del upload file lo he revisado y esta bien. Buen trabajo irraco. Puedes subirlo al SVN?
Saludos
y sigan opinando sobre el post principal, Las aplicaciones desarrolladas en Kumbia tendrian que tener la misma vista en losdiferentes navegadores??