Proyecto de Internet Social y sección Escuelas en Madariaga
El día viernes 7 de octubre realizamos la presentación oficial del sitio web de Internet Social www.ismadariaga.gov.ar en la Casa de la Cultura de General Juan Madariaga. Ademas se expuso sobre cuales son las ubicaciones de los puntos de conexión a Internet Social y los equipos utilizados provistos por el municipio.
El sitio cuenta con: un mapa con el efecto de zoom en donde se pueden ver los distintos puntos de conexión, fotos de los mismos y un reproductor de música con temas de artistas o bandas de la localidad de Madariaga.
El encargado de la parte técnica de los equipos es Gastón Brito. El diseño y la comunicación visual del proyecto está a cargo de Mariana Gómez, con quien trabajé en conjunto desde la programación y desarrollo del sitio web de Internet Social.
Por otro lado se pensó en ofrecer a las escuelas que hayan recibido las netbooks del plan Conectar Igualdad, una sección en la cuál puedan compartir noticias y galerías de fotos sobre actividades pertinentes a cada institución, para socializar con la comunidad. Dicha sección se incorporará dentro del sitio web de la Dirección de Cultura y Educación de General Madariaga www.dcyemadariaga.gov.ar.
Limpiar string de caracteres no deseados en PHP
En algunos casos necesitamos limpiar caracteres indeseados en una cadena de caracteres. Es muy útil si queremos por ejemplo limpiar el título de un articulo para luego generar URLs amigables, entre otras cosas.
En el ejemplo que les mostraré a continuación vamos a hacer lo siguiente:
1) reemplazamos las letras acentuadas por las que están sin acentuar utilizando arrays y la función str_replace.
2) Convertimos toda la cadena a letras minúsculas con la función strtolower.
2) Finalmente buscamos los caracteres no deseados y los reemplazamos por “” (vacio). La expresión regular ‘[^A-Za-z0-9_-]‘ significa que se buscarán los caracteres que NO son: de la A a la Z, de la a a la z, del 0 al 9 y guiones.
utf8_encode($titulo);
$a = array(‘á’,'é’,'í’,'ó’,'ú’,'à’,'è’,'ì’,'ò’,'ù’,'ä’,'ë’,'ï’,'ö’,'ü’,'â’,'ê’,'î’,'ô’,'û’,'ñ’,'ç’,’ ‘);
$b = array(‘a’,'e’,'i’,'o’,'u’,'a’,'e’,'i’,'o’,'u’,'a’,'e’,'i’,'o’,'u’,'a’,'e’,'i’,'o’,'u’,'n’,'c’,'-’);
$titulo = str_replace($a, $b, $titulo);
$titulo = strtolower($titulo);
$titulo = ereg_replace(‘[^A-Za-z0-9_-]‘, ”, $titulo);
TinyMCE Paste plugin. Pegar texto plano
Cuando copiamos texto ya sea desde word, un sitio web, etc, y pegamos en nuestro editor el texto, este se guarda con el formato que tenía anteriormente. Una solución sería utilizar este plugin (que ya viene dentro de la carpeta de TinyMCE) para limpiar todas las etiquetas html al pegar el texto. Para esto debemos agregar en la función init lo siguiente:
plugins : "paste",
paste_preprocess : function(pl, o) {
o.content = o.content.replace(/<\S[^><]*>/g, "");
}
El paste_preprocess se ejecuta antes que nada cuando pegamos el texto, con una función en la cual se eliminan los caracteres señalados en la expresión regular.
Otra solución había publicado en el siguiente post: Enlace
pero creo que esta es mejor porque directamente pega hace que se pueda pegar el texto como plano.
Fuente: http://www.forosdelweb.com/f17/problemas-copiar-pegar-tinymce-712943/
Paginación en codeigniter
Se utiliza para mostrar un conjunto de resultados de una base de datos, no en su totalidad sino estableciendo la cantidad de registros a mostrar por cada página. Así también en la vista se genera una serie de enlaces (de la forma: << anterior 2 3 4 5 6 siguiente >>) de manera que permita al usuario desplazarse hacia las demás páginas.
Supongamos que tenemos una tabla llamada ‘contactos’ en nuestra base de datos, con sus campos ‘nombre’ y ‘apellido’, y queremos hacer un paginador para mostrar al usuario 4 contactos por página. A continuación les mostraré tanto el código como la explicación para el modelo, la vista y el controlador.
Controlador: contactos.php
function listar(){
//cargamos la librería
$this->load->library(‘pagination’);
//configuramos
$config['base_url'] = base_url().”contactos/listar/”;
$config['total_rows'] = $this->Contactos_model->getCantidad();//obtenemos la cantidad de registros
$config['per_page'] = ’4′; //cantidad de registros por página
$config['num_links'] = ’2′; //nro. de enlaces antes y después de la pagina actual
$config['prev_link'] = ‘anterior’; //texto del enlace que nos lleva a la pagina ant.
$config['next_link'] = ‘siguiente’; //texto del enlace que nos lleva a la sig. página
$config['uri_segment'] = ’3′; //segmentos que va a tener nuestra URL
$config['first_link'] = ‘<<’; //texto del enlace que nos lleva a la primer página
$config['last_link'] = ‘>>’; //texto del enlace que nos lleva a la última página
// inicializamos
$this->pagination->initialize($config);
/* llamamos al método de nuestro modelo para hacer la consulta pasándole como parámetro la cantidad de registros por página y el registro por el que va a comenzar (estará contenido en el 3er segmento de la URL) */
$contactos = $this->Contactos_model->getContactos($config['per_page'], $this->uri->segment(3));
//ahora debemos llamar a la vista y pasarle el array ‘$contactos’ obtenido.
$datos[‘contactos’] = $contactos;
$this->load->view(‘contactos/contactos_view’, $datos, false);
}
modelo: contactos_model.php
/*método que devuelve una cierta cantidad de registros dependiendo del valor de los parámetros. Con la cláusula ‘limit’ establecemos el número de registros por página y desde que registro inicia la consulta. */
function getContactos($numeroRegistros, $inicio)
{
$this->db->limit($numeroRegistros, $inicio);
$this->db->select(‘idContacto, nombre, apellido’);
$query = $this->db->get(‘contactos’);
return $query->result();
}
//método que devuelve el total de registros contenidos en la tabla ‘contactos’
function getCantidad ()
{
return $this->db->count_all(‘contactos’);
}
Finalmente en la vista recorremos el conjunto de resultados con un “foreach” y mostramos los datos por pantalla.
También debemos mostrar los enlaces a las otras páginas con “$this->pagination->create_links();”
Vista: contactos_view.php
<?php
if(isset($contactos)):
foreach($contactos as $c):
echo $c->nombre.’ <br />’.c->apellido;
endforeach;
endif; //endif
?>
<?php echo $this->pagination->create_links(); ?>
Call to a member function query() on a non-object
Este mensaje de error es generado cuando no se han cargado las librerías ‘database’ y ‘session’.
Debemos cargarlas en el archivo autoload.php ubicado en el directorio ‘config’ de nuestra aplicación.
La línea donde dice:
$autoload['libraries'] = array();
debemos reemplazarla por esto:
$autoload['libraries'] = array('database', 'session');
Centrar div dentro de otro con width 100%
Siempre eh tenido inconvenientes a la hora trabajar con divs de 100% de ancho, sobre todo si lo que busco es que el div contenido quede centrado.
Sin embargo encontré una solución en la siguiente publicación http://stackoverflow.com/questions/1423651/center-div-inside-another-100-width-div
Tal como se muestra en esa solución la clave está en agregar margin: 0 auto; en el div que está adentro del que tiene 100% de ancho.
Un ejemplo sería algo como esto:
<!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” xml:lang=”en” lang=”en”>
<body>
<div style=”background-color: blue; width: 100%;”>
<div style=”background-color: yellow; width: 90px; margin: 0 auto;“>
Probando
</div>
</div>
</body>
</html>
Renombrar nombre de tabla de una base de datos – MySql
Podemos cambiar el nombre que tiene actualmente una tabla en una base de datos con lo siguiente instrucción:
RENAME TABLE nombre_viejo TO nombre_nuevo
De esta forma evitamos tener que eliminarla y crearla solamente para cambiar el nombre.
.htaccess remover index.php en codeigniter
Luego de buscar y buscar encontré un archivo .htaccess que si me ha funcionado para remover el index.php de la url en Codeigniter. El código es el siguiente:
# Customized error messages.
ErrorDocument 404 /index.php# Set the default handler.
DirectoryIndex index.php# Various rewrite rules.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
El mismo fue tomado del la wiki de codeigniter. Es la solución Nº 3 de la siguiente publicación:
http://codeigniter.com/wiki/Dreamhost_.htaccess/
Utilidades
En este post podemos encontrar algunos datos que pueden llegar a ser de utilidad para aquellos que programan bajo algún sistema operativo de Linux. En mi caso utilizo Ubuntu y frecuentemente tengo que consultar estas cosas esenciales para la programación en dicho sistema operativo.
Todas estas instrucciones se realizan mediante comandos en la terminal.
Asignar permisos de escritura
Cuando tenemos un formulario para subir alguna imagen al servidor, previamente debemos asignarle este permiso a los directorios en los cuales se sube la imagen. De lo contrario no podremos hacerlo y créanme, no va a haber nada que nos informe el problema.
La siguiente instrucción asigna el permiso de escritura en un directorio de forma recusiva (-R), es decir que se le asignará también este permiso a los demás directorios que estén contenidos dentro del mismo.
sudo chmod -R 777 Imagenes/
Borrar directorios
Muchas veces, cuando el directorio no está vacío, no podemos borrarlo a mano, entonces tenemos que utilizar la siguiente instrucción:
rm -dfr /carpeta
Y si el directorio está vacío:
rmdir /carpeta
Reiniciar apache2
Utilizado sobre todo si hemos hecho algùn cambio en la configuración de apache. La instrucción el la siguiente:
sudo /etc/init.d/apache2 restart
Luego agregaré algunas cosas más que utilizamos frecuentemente para el desarrollo web.