Google
Web dns.bdat.net

Clase Kdialog

Creo que con lo que ya hemos visto, podemos pasar al apartado más práctico de la programación PHP+KDE.

Con el objetivo de que esto sirva para cortar y pegar lo que voy a hacer es declarar una clase llamada kdialog con todas las funciones necesarias e incluiré como comentarios las descripciones de todas ellas.

En general se hace uso de la función system de PHP que devuelve una cadena con el resultado de ejecución de una orden y toma como argumento, aparte de la cadena que describe la orden que queremos ejecutar, una variable donde recoge el estado que devuelve el sistema tras la ejecución. Esta variable tendremos que comprobarla tras cualquier operación de lectura para saber si hemos pulsado NO o Cancelar y no debemos seguir con la operación.

Por lo demás, en las distintas llamadas a kdialog podremos ver las distintas opciones que tiene para realizar las distintas operaciones.

Las funciones de menúes toman como argumento una array asociativo, que previamente tiene que ser procesado por serialize() y dentro de la función se deshace la transformación. En su caso, el índice del array asociativo será el valor devuelto al seleccionarlo y el contenido del array será la cadena de texto que aparecerá en pantalla.


<?php

class kdialog {
var $error;
/*********************************************************/
/* int error()                                           */
/* Esta función devuelve el código de error generado por */
/* la última operación                                   */
/* Argumentos:                                           */
/*    Ninguno                                            */
/* Devuelve                                              */
/*     int código error:  0 Yes/correcto 1-2 No-Cancelar */
/*********************************************************/

        
  function error()
  {
    return($this->error);
  }

/*********************************************************/
/* string leer()                                         */
/* Devuelve una cadena leído de una ventana              */
/*                                                       */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string msj       "mensaje en la ventana            */
/*    string pre       "valor inicial                    */
/* Devuelve                                              */
/*     string "cadena leída"                             */
/* Error      0=correcto    1=Cancelar                   */
/*********************************************************/
  
  
  function leer($titulo,$msj,$pre="")
  {
    return(system("kdialog --title \"$titulo\" --inputbox \"$msj\" \"$pre\"", $this->error));
  }

/*********************************************************/
/* string leer_clave()                                   */
/* Devuelve una cadena leído de una ventana sin mostrar  */
/* el texto introducido                                  */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string msj       "mensaje en la ventana            */
/*    string pre       "valor inicial                    */
/* Devuelve                                              */
/*     string "cadena leída"                             */
/* Error      0=correcto    1=Cancelar                   */
/*********************************************************/
  
  function leer_clave($titulo,$msj,$pre="")
  {
    return(system("kdialog --title \"$titulo\" --password \"$msj\" \"$pre\"", $this->error));
  }

/*********************************************************/
/* void leer_sino()                                      */
/* Realiza un lectura de un valor Sí/NO                  */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string msj       "mensaje en la ventana            */
/* Devuelve                                              */
/*     Nada                                              */
/* Error      0=correcto    1=No                         */
/*********************************************************/

  function leer_sino($titulo,$msj)
  {
    system("kdialog --title \"$titulo\" --yesno \"$msj\"", $this->error);
  }

/*********************************************************/
/* void leer_avisosino()                                 */
/* Realiza un lectura de un valor Sí/NO en una ventana   */
/* de aviso                                              */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string msj       "mensaje en la ventana            */
/* Devuelve                                              */
/*     Nada                                              */
/* Error      0=correcto    1=No                         */
/*********************************************************/
  
  function leer_avisosino($titulo,$msj)
  {
    system("kdialog --title \"$titulo\" --warningyesno \"$msj\"", $this->error);
  }
  
/*********************************************************/
/* void leer_avisosinocancelar()                         */
/* Realiza un lectura de un valor Sí/NO/Cancelar         */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string msj       "mensaje en la ventana            */
/* Devuelve                                              */
/*     Nada                                              */
/* Error      0=correcto    1=No  2=Cancelar             */
/*********************************************************/
  function leer_avisosinocancelar($titulo,$msj)
  {
    system("kdialog --title \"$titulo\" --yesnocancel \"$msj\"", $this->error);
  }

  function leer_continue($titulo,$msj)
  {
    system("kdialog --title \"$titulo\" --warningcontinuecancel \"$msj\"", $this->error);
 }
  
/*********************************************************/
/* void leer_aviso()                                     */
/* Muestra un mensaje en una ventana                     */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string msj       "mensaje en la ventana            */
/* Devuelve                                              */
/*     Nada                                              */
/* Error      nada                                       */
/*********************************************************/

 
  function aviso($titulo,$msj)
  {
    system("kdialog --title \"$titulo\" --msgbox \" $msj\"", $this->error);
  }


/*********************************************************/
/* void aviso_fallo()                                    */
/* Muestra un mensaje de fallo en una ventana            */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string msj       "mensaje en la ventana            */
/* Devuelve                                              */
/*     Nada                                              */
/* Error      nada                                       */
/*********************************************************/
 
  function aviso_fallo($titulo,$msj)
  {
    system("kdialog --title \"$titulo\" --sorry \" $msj\"", $this->error);  
  }

/*********************************************************/
/* void aviso_fallo()                                    */
/* Muestra un mensaje de error en una ventana            */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string msj       "mensaje en la ventana            */
/* Devuelve                                              */
/*     Nada                                              */
/* Error      nada                                       */
/*********************************************************/
 
  function aviso_error($titulo,$msj)
  {
    system("kdialog --title \"$titulo\" --error \" $msj\"", $this->error);  
  }

/*********************************************************/
/* void mostrar_fichero()                                */
/* Muestra el contenido de un fichero en una ventana     */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string fichero   "fichero que queremos mostrar     */
/*    int    alto      "Altura de la ventana             */
/*    int    ancho     "Anchura de la ventana            */

/* Devuelve                                              */
/*     Nada                                              */
/* Error      nada                                       */
/*********************************************************/

  function mostrar_fichero($titulo,$fichero,$ancho="", $alto="")
  {
    system("kdialog --title \"$titulo\" --textbox $fichero  $ancho $alto", $this->error);
  }

/*********************************************************/
/* void mostrar_menu()                                   */
/* Muestra un menú de selección en una ventana           */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string msj       "mensaje en la ventana            */
/*    string lista     "array 'serializado' con las      */
/*                      opciones del menú"               */
/* Devuelve                                              */
/*     string  "El valor de la opción seleccionada"      */
/* Error      0=correcto    1=Cancelar                   */
/*********************************************************/
  
  function mostrar_menu($titulo,$msj,$lista)
  {
    $lista=unserialize($lista);
    $opcion="";
    foreach($lista AS $clave => $valor)
    {
      $opcion .="$clave '$valor' ";
      echo "$clave --- $valor\n";
    }
    echo "$opcion\n";
    return(system("kdialog --title \"$titulo\" --menu \"$msj\" $opcion ", $this->error));
  }


/*********************************************************/
/* void mostrar_menu_multiple()                          */
/* Muestra un menú de selección en una ventana con la    */
/* posibilidad de seleccionar varias opciones            */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string msj       "mensaje en la ventana            */
/*    string lista     "array 'serializado' con las      */
/*                      opciones del menú"               */
/* Devuelve                                              */
/*     string  "El valor de las opciones seleccionadas   */
/*              separadas por '\n'                       */
/* Error      0=correcto    1=Cancelar                   */
/*********************************************************/
  
  function mostrar_menu_multiple($titulo,$msj,$lista)
  {
    $lista=unserialize($lista);
    $opcion="";
    foreach($lista AS $clave => $valor)
      $opcion .="$clave \"$valor\" ";
    return(system("kdialog --title \"$titulo\" --separate-output --menu \"$msj\" $opcion ", $this->error));
  }

/*********************************************************/
/* void mostrar_check()                                  */
/* Muestra un menú de opciones marcadas                  */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string msj       "mensaje en la ventana            */
/*    string lista     "array 'serializado' con las      */
/*                      opciones del menú"               */
/*    string inicial   "valor preseleccionado            */
/* Devuelve                                              */
/*     string  "El valor de la opción seleccionada"      */
/* Error      0=correcto    1=Cancelar                   */
/*********************************************************/

  function mostrar_check($titulo,$msj,$lista,$inicial="")
  {
    $lista=unserialize($lista);
    $opcion="";
    foreach($lista AS $clave => $valor)
    {   
      $sel="off";
      if ("$clave"=="$inicial")
        $sel="on";
      $opcion .="$clave '$valor' $sel ";
    }
    echo "$opcion\n";
    return(system("kdialog --title \"$titulo\" --checklist \"$msj\" $opcion ", $this->error));
  }

 
/*********************************************************/
/* void mostrar_radio()                                  */
/* Muestra un menú de radio botones en una ventana       */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string msj       "mensaje en la ventana            */
/*    string lista     "array 'serializado' con las      */
/*                      opciones del menú"               */
/* Devuelve                                              */
/*     string  "El valor de la opción seleccionada"      */
/* Error      0=correcto    1=Cancelar                   */
/*********************************************************/
  function mostrar_radio($titulo,$msj,$lista)
  {
    $lista=unserialize($lista);
    $opcion="";
    foreach($lista AS $clave => $valor)
      $opcion .="$clave '$valor' ";
    return(system("kdialog --title \"$titulo\" --radiolist \"$msj\" $opcion ", $this->error));      
  }

/*********************************************************/
/* void mostrar_select()                                 */
/* Muestra un menú desplegable en una ventana            */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string fichero   "fichero que queremos mostrar     */
/*    string lista     "array 'serializado' con las      */
/*                      opciones del menú"               */
/* Devuelve                                              */
/*     string  "El valor de la opción seleccionada"      */
/* Error      0=correcto    1=Cancelar                   */
/*********************************************************/
  function mostrar_select($titulo,$msj,$lista)
  {
    $lista=unserialize($lista);
    $opcion="";
    foreach($lista AS $valor)
      $opcion .="'$valor' ";
    return(system("kdialog --title \"$titulo\" --combobox \"$msj\" $opcion ", $this->error));
  }

 
/*********************************************************/
/* void leer_fichero()                                   */
/* Muestra una ventana de apertura de ficheros           */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string filtro   "filtro para los nombres de        */
/*                     ficheros que queremos leer        */
/*                     valor predeterminado todos"       */ 
/* Devuelve                                              */
/*     string  "El valor de la opción seleccionada"      */
/* Error      0=correcto    1=Cancelar                   */
/*********************************************************/
 
  function leer_fichero($titulo, $filtro="*.*|todos")
  {
    return(system("kdialog --title \"$titulo\" --getopenfilename :et1  \"$filtro\"", $this->error));
  }

/*********************************************************/
/* void salvar_fichero()                                 */
/* Muestra una ventana de lectura de ficheros para       */
/*  seleccionar un nombre con el que guardar             */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string filtro   "filtro para los nombres de        */
/*                     ficheros que queremos leer"       */
/* Devuelve                                              */
/*     string  "El valor de la opción seleccionada"      */
/* Error      0=correcto    1=Cancelar                   */
/*********************************************************/

  function salvar_fichero($titulo, $filtro="*.*|todos")
  {
    return(system("kdialog --title \"$titulo\" --getsavefilename :et1    \"$filtro\"", $this->error));
  }

/*********************************************************/
/* void leer_dir()                                       */
/* Muestra una ventana de apertura de directorios        */
/* Argumentos:                                           */
/*    string titulo    "titulo de la ventana             */
/*    string filtro   "filtro para los nombres de        */
/*                     ficheros que queremos leer"       */
/*    string dir      "Directorio inicial"               */
/* Devuelve                                              */
/*     string  "El valor de la opción seleccionada"      */
/* Error      0=correcto    1=Cancelar                   */
/*********************************************************/
  function leer_dir($titulo,$dir=".")
  {
    return(system("kdialog --title \"$titulo\" --getexistingdirectory :et1 \"$dir\"", $this->error));
  }

}
?>