Usando Gedit para PHP/(X)HTML/CSS

Desarrollo web, GNU/Linux, Programación No Comments

Gedit

Gedit [gnome.org] es el editor predeterminado del entorno de escritorio GNOME ( que uso diariamente :P ). Algunas de sus características son:

* Soporte de textos internacionalizados, usando la codificación UTF-8.
* Coloreado del texto según la sintaxis de varios lenguajes de programación: C, C++ Java, Python…
* Corrector ortográfico multi-idioma.
* Incorporación de plugins para ampliar las funcionalidades básicas del programa.
* Posibilidad de cambiar el color y fuente del texto del editor.
* Numeración de líneas.
* Búsqueda y reemplazo de texto.
* Edición de archivos remotamente.
* Copia de seguridad de los ficheros sobre los que se trabaja.
* Soporte propio para SCIM, pudiendo escribir en distintos alfabetos como el japonés, chino, etc. activándolo desde el menú y teniendo instalado el SCIM.

…y un largo etcétera de nuevas funcionalidades que se van incorporando en sucesivas versiones.

http://es.wikipedia.org/wiki/Gedit.

Y bueno, navegando en busca de las funcionalidad de PHP sobre gedit, me di cuenta que tiene soporte para varios plugins que extienden dicha funcionalidad. No, esto no es guía, más bien, es la recopilación de algunos artículos que tratan del tema que me parecieron interesantes:

Customizing gedit as a Web Developer’s IDE. Esta entrada es de uno de los creadores de precisamente un plugin de gedit, habla sobre sus preferencias al usar Gedit, su plugin, cómo tener a la mano las diferentes etiquetas de (X)HTML/CSS/PHP y de algunas herramientas externas (que es algo como crear scripts para que se integren con el editor).

Usar gEdit como si fuera Dreamweaver (o como IDE Web). Trata de básicamente lo mismo pero en español :P .

Haciendo gedit más sociable para el programador. Este me ha gustado por la mención de algunos ejemplos sobre una de las características de gedit, que es la de Recortes (insertar texto que usamos seguido de forma rápida).

Ahora la pregunta obligada: Cuál es mi aporte al tema? xD, ps ninguno :D (no, mentira). Si leyeron algunas de las entradas de blog anteriores, seguramente se dieron cuenta sobre un complemento en gedit que se llama “Herramientas Externas” (External Tools) o en el peor de los casos , están fastidiados por ir al navegador y escribir la URL de la página que están creando (gedit nativa-mente no puede mandar a mostrar en el navegador predeterminado de GNOME la página que estén programando). Entonces, hice un pequeño script para poder mandar al navegador la página actual que se esté editando, para crearlo habrá que ir a Editar > Preferencias > Plugins y seleccionar Herramientas Externas, pulsar en Configurar Plugin. Crear uno nuevo con las siguientes características:

El script es:

#!/bin/sh

# By soullost.org xD

USER=`id --name -u`
NUMBER=`ls -d /home/${USER}/public_html/ | wc -m`
CUT=`echo cut -c${NUMBER}-`
DIR=`echo $GEDIT_CURRENT_DOCUMENT_DIR | $CUT`
NAME=`echo $GEDIT_CURRENT_DOCUMENT_NAME`

if [ -n "$DIR" ]
then
	URL=`echo http://localhost/~${USER}/${DIR}/${NAME}`
else
	URL=`echo http://localhost/~${USER}/${NAME}`
fi

gnome-open $URL > /dev/null 2> /dev/null

Limitaciones del script:

- Hay que tener configurado el Apache para poder tener una carpeta (public_html) en nuestro home (/home/[usuario]/public_html/) y almacenar ahí nuestras páginas web. Esto hace que al acceder desde el navegador, la URL tenga que escribirse así: http://localhost/~[usuario]/. Por lo tanto, la página web a visualizar tiene que estar dentro de este directorio (si no es así, no va a funcionar!).

- gnome-open toma el navegador predeterminado que se especifica en: Sistema > Preferencias > Aplicaciones Preferidas. Yo tengo a epiphany para que abra un nuevo enlace en una pestaña nueva :P .

Uso:

- Si está todo bien, cuando quieras visualizar la página web que estés editando basta con pulsar Ctrl + F12.

Nota: Por supuesto, te puedes sentir libre de modificar el script a tus necesidades :D (sólo basta saber un poco de bash).

Espero les sea útil. Nos vemos y a programar con Gedit ;) .

Califica el tema:
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Básico. Cómo hacer una encuesta en PHP

Desarrollo web, Programación 4 Comments

Ya tiene algo de tiempo desde que empecé a programar en PHP, desde luego, nada serio. Actualmente estoy tomando un curso de PHP en la universidad (no forma parte de alguna materia xD), ya más serio, lleva algo de CSS, MySQL, POO. Así que bueno, ahora estaré escribiendo en una nueva categoría, Desarrollo Web.

Ya que este viernes pasado no asistimos, nos dejaron algunos ejercicios para hacer, de los cuales uno es hacer una pequeña encuesta. Veamos, a simple vista necesitamos:

  • La pregunta.
  • Las opciones.
  • Algunas estadísticas.
  • Manejo de Base da Datos.

Para empezar, hacemos el formulario con la pregunta y las opciones:


¿América ganará su próximo partido? 
Si No Número de votantes: Si: No:

La página se llamará así misma al momento de hacer el voto, entonces, procesará la información a la base de datos para almacenar los valores. Además, si observan, hay que mostrar el número de votantes y el porcentaje de votos para las dos diferentes opciones (si y no).

La base de datos se llamará encuesta1 y es la siguiente (Ojo, por prisa lo hice de la forma menos apropiada xD):

-- phpMyAdmin SQL Dump
-- version 2.8.2.4
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 25-04-2008 a las 18:43:50
-- Versión del servidor: 5.0.24
-- Versión de PHP: 5.1.6
--
-- Base de datos: `ENCUESTA1`
-- 

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `opciones`
-- 

CREATE TABLE `opciones` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `nombre` char(30) NOT NULL,
  `valor` int(10) unsigned NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Volcar la base de datos para la tabla `opciones`
-- 

INSERT INTO `opciones` (`id`, `nombre`, `valor`) VALUES (1, 'Si', 0),
(2, 'No', 0);

Como ven, registramos las dos opciones de la encuesta: Si y No, estableciendo las dos con un valor inicial de cero (ya que nadie ha votado todavía). Una vez teniendo la base de datos tenemos que hacer varias cosas (empezar a armar el funcionamiento de la página web):

1) Conexión con la base de datos:

< ?php
	$link=mysql_connect     ("localhost","admin","*****") or die ("Error en la conexion");
	//se selecciona la base
	mysql_select_db("ENCUESTA1",$link);
?>

2) Registrar el voto del usuario:

< ?php
if($_POST['opc']=='si'){
	$valor[0]++;
	$sql="update opciones set valor=$valor[0] where id='1';";
	mysql_query($sql) or die('Lo sentimos, hay un error en la BD');
	}
elseif($_POST['opc']=='no'){
	$valor[1]++;
	$sql="update opciones set valor=$valor[1] where id='2';";
	mysql_query($sql) or die('Lo sentimos, hay un error en la BD');
	}
?>

$valor[], es un array que contiene las veces que el usuario a votado por dicha opción. $valor[0] para la opción Si, $valor[1] para la opción No. Estos valores junto con el total de votos los sacamos en la siguiente parte:

< ?php
$sql="select * from opciones";
$res=mysql_query($sql);
$total=0;
$indice=0;
while($fila=mysql_fetch_object($res)){
    $total += $fila->valor;
    $valor[$indice]=$fila->valor;
    $indice++;
}
?>

Para obtener el porcentaje de votos de cada opción respecto al total de los mismo, necesitamos, una pequeña operación aritmética (la clásica regla de 3):

< ?php
	$porcentaje[0]=intval(($valor[0]*100)/$total);
	$porcentaje[1]=intval(($valor[1]*100)/$total);
?>

Nota: la función intval() regresa el valor entero de una variable.

3) Lo único que hace falta es agregar las estadísticas (mostrar a los usuarios como va la votación), eso lo he puesto abajo de la encuesta (mirar el código html al principio). Entonces, falta sólo agregar el código PHP que haga lo descrito anteriormente.


 Número de votantes: < ?php echo " ".$total; ?>  


		Si:
		< ?php
			for ( $i = intval($porcentaje[0]/10); $i>0; $i-=2){ ?>
				porcentaje
		< ?php } ?>
		Porcentaje: < ?php echo " " . $porcentaje[0] . " % con " . $valor[0] . " votos"; ?>
	


		No:
		< ?php
			for ( $i = intval($porcentaje[1]/10); $i>0; $i-=2){ ?>
				porcentaje
		< ?php } ?>
		Porcentaje: < ?php echo " " . $porcentaje[1] . " % con " . $valor[1] . " votos"; ?>
	

Si se dan cuenta, debes tener la imagen palomita.gif en el directorio images (me quebré mucho la cabeza buscando-la, que tardé ~1/2 min. en obtenerla de google). Ésta imagen sirve como un pequeño histograma del porcentaje que ocupa la opción en comparación con el total de votos emitidos (que ya calculamos antes).

Una forma de hacer el histograma es de una escala de 20%, osea, quedaría:

1 Palomita: 20%
2 Palomitas: 40%
3 Palomitas: 60%
4 Palomitas: 80%
5 Palomitas: 100%

Por ejemplo, si el porcentaje de la opción Si es 40.5%, divididos sobre 10, es igual a 4 (el resultado lo deja sin decimales por la función intval()). El for toma este 4 y en cada ciclo le resta 2 y coloca una palomita; hasta que este 4 sea menor que cero. En el ejemplo del 40%, realizará 2 ciclos y por lo tanto, dibujará la palomita dos veces :P .

La página final queda de esta manera:

Código:

< ?php
	$link=mysql_connect     ("localhost","admin","******") or die ("Error en la conexion");
	//se selecciona la base
	mysql_select_db("ENCUESTA1",$link);

	//consulta
	$sql="select * from opciones";
	$res=mysql_query($sql);
	$total=0;
	$indice=0;
	while($fila=mysql_fetch_object($res)){
	    $total += $fila->valor;
	    $valor[$indice]=$fila->valor;
	    $indice++;
	}

	$porcentaje[0]=intval(($valor[0]*100)/$total);
	$porcentaje[1]=intval(($valor[1]*100)/$total);

	if($_POST['opc']=='si'){
	$valor[0]++;
	$sql="update opciones set valor=$valor[0] where id='1';";
	mysql_query($sql) or die('Lo sentimos, hay un error en la BD');
	}
	elseif($_POST['opc']=='no'){
	$valor[1]++;
	$sql="update opciones set valor=$valor[1] where id='2';";
	mysql_query($sql) or die('Lo sentimos, hay un error en la BD');
	}

	/*
	elseif(!$_POST['opc']){
	echo "

No se ha seleccionado nada!.

";
	}*/
?>

¿América ganará su próximo partido? 
Si No Número de votantes: < ?php echo " ".$total; ?> Si: < ?php for ( $i = intval($porcentaje[0]/10); $i>0; $i-=2){ ?> porcentaje < ?php } ?> Porcentaje: < ?php echo " " . $porcentaje[0] . " % con " . $valor[0] . " votos"; ?> No: < ?php for ( $i = intval($porcentaje[1]/10); $i>0; $i-=2){ ?> porcentaje < ?php } ?> Porcentaje: < ?php echo " " . $porcentaje[1] . " % con " . $valor[1] . " votos"; ?>
< ?php mysql_close($link); ?>

Obviamente se puede mejor bastante, agregando CSS, Ajax y cualquier cosa que se nos ocurra (hasta llegar a crear un sistema que cree encuestas).

Califica el tema:
1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 5 out of 5)
Loading ... Loading ...