Proyecto de Internet Social y sección Escuelas en Madariaga

9 octubre 2011 Deja un comentario

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.

Categorías:Programación, Sitios web

Limpiar string de caracteres no deseados en PHP

30 junio 2011 Deja un comentario

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);

Categorías:PHP

TinyMCE Paste plugin. Pegar texto plano

29 junio 2011 1 Comentario

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/

Categorías:tinyMCE Etiquetas: , , ,

Paginación en codeigniter

28 junio 2011 2 comentarios

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(); ?>

Categorías:Codeigniter Etiquetas: ,

Call to a member function query() on a non-object

4 mayo 2011 Deja un comentario

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');

Fuente: http://samsami2u.wordpress.com/2009/03/28/codeigniter-call-to-a-member-function-query-on-a-non-object/

Categorías:Codeigniter

Centrar div dentro de otro con width 100%

6 abril 2011 Deja un comentario

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>

Categorías:CSS

TinyMCE valid_elements. Quitar formato de texto proveniente de word, excel u otro sitio web

5 abril 2011 1 Comentario

TinyMCE es un editor que nos permite insertar etiquetas HTML en los campos de texto (textarea), y nos permite personalizarlo de distintas maneras según nuestras necesidades.

Un problema muy común en los blogs o en las plataformas virtuales es que al pegar un texto en el textarea que previamente hemos copiado desde un procesador de textos como Word, Excel o desde otro sitio web, el texto se guarda con el formato que tenía anteriormente.

Lo que tenemos que hacer es restringir el uso de determinados tags de manera al pegar un texto, el editor haga una limpieza correspondiente.

Hay varias maneras de hacer esto, personalmente utilizo la opción “valid_elements” que define cuales son los elementos (tags html) que permanecerán cuando el editor se guarde.  A continuación les mostraré un ejemplo en donde establezco dicha opción en el evento “tinyMCE.init” donde se inicializa el editor y con “valid_elements” indico los tags validos para los campos de texto.

<script type=”text/javascript”>tinyMCE.init({  mode : “textareas”,
theme : “advanced”,        theme_advanced_buttons1 : “bold, italic, underline, separator, bullist,numlist,separator,undo,redo, separator, link, unlink “,        theme_advanced_buttons2 : “”,        theme_advanced_buttons3 : “”,        theme_advanced_toolbar_location: “top”,        theme_advanced_toolbar_align: “left”,

valid_elements : “a[href|target=_blank],strong/b,div[align],br,ul,ol,li,em/i,u”
});</script>

Algunos tags del ejemplo anterior que estoy permitiendo utilizar son:

a[href|target=_blank] son los enlaces

strong/b es negrita y la barra “/” significa que tanto strong como b son elementos sinónimos.

div[align] es la alineación del texto.

En el sitio de http://tinymce.moxiecode.com hay una explicación muy completa de como utilizar la propiedad valid_elements, también hay una tabla donde figuran el nombre de cada caracter de control junto con su significado, muy útil esta última por cierto.

El enlace es el siguiente: http://tinymce.moxiecode.com/wiki.php/Configuration:valid_elements

29 junio 2011 – Eh publicado una solución que considero más apropiada en el siguiente enlace: Paste Plugin. pegar texto plano

Renombrar nombre de tabla de una base de datos – MySql

28 marzo 2011 Deja un comentario

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.

Categorías:mysql Etiquetas:

.htaccess remover index.php en codeigniter

3 marzo 2011 Deja un comentario

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/

Categorías:Codeigniter Etiquetas: ,

Utilidades

26 febrero 2011 Deja un comentario

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.

Seguir

Get every new post delivered to your Inbox.