Bufa

Recursos web en español

Cadena de texto en varias columnas

7 Feb 2010

Hace poco, he tenido que utilizar esta función para poder dividir en 2 columnas una determinada cadena de texto. Con la siguiente función php podemos también pasarle como parámetro el número de columnas que queremos.

Para representar las columnas utilizaremos css y una lista ul que será la que generemos de la cadena original.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$cadena ='Sin León no hubiera España, que antes que Castilla leyes, Concilios, fueros y reyes, dieron prestigio a León. La fama cantó su hazaña con clarines de victoria: ¡León escribió la historia de Covadonga a Colón! Con su sangre a torrentes vertida dio a la Patria preciado blasón y en sus labios cobró vida el hermoso lenguaje español ¡Viva León! Tierra hidalga, tierra mía: estrofas del romancero, desde Guzmán a don Suero, va tremolando el honor. Con su sangre a torrentes vertida dio a la Patria preciado blasón y en sus labios cobró vida el hermoso lenguaje español. De piedra una plegaria la catedral semeja, sobria y gentil refleja el alma de León. De historia milenaria, de santidad osario, del arte relicario y de la fe expresión. Tierra hidalga, tierra mía: estrofas del romancero, desde Guzmán a don Suero, va tremolando el honor. Con su sangre a torrentes vertida dio a la Patria preciado blasón y en sus labios cobró vida el hermoso lenguaje español. Gloria a ti, pueblo sin par; a mi labio el corazón se asoma para gritar: ¡Viva León! ¡Viva León!';
 
function cadena_columnas ($cadena, $columnas) {
  $salida =  '<ul class="columnas">';
  $cuerpotexto = array("$cadena"); // generamos una matriz de la cadena
  $texto = implode(",", $cuerpotexto); // obtenemos cadena que contiene una representación de todos los elementos de la matriz en el mismo orden
  $longitud = strlen($texto); // determinamos la longitud de la cadena
  $longitud = ceil($longitud/$columnas); // redondeamos la longitud hacia arriba devolviendo el entero más cercano dividiendola entre el nº de columnas
  $palabras = explode(" ", $texto); // buscamos las palabras sueltas separadas por espacios
  $c = count($palabras); // contamos el número de palabras
  $l = 0;
  for($i=1;$i<=$columnas;$i++) {
    $nuevacadena = "";
    $salida .= '<li>';
  for($g=$l;$g<=$c;$g++) {
    if(strlen($nuevacadena) <= $longitud || $i == $columnas)
    $nuevacadena.=$palabras[$g]." ";
    else {
      $l = $g;
    break;
      }
     }
    $salida .= $nuevacadena;
    $salida .= '</li>';
  }
  $salida .= '</ul>'; 
  return $salida;
}
// Modo de empleo: (por ejemplo para dividir el texto en 3 li o columnas)
echo cadena_columnas($cadena,3);

Por último ya solo falta darle un estilo en nuestro archivo css de estilos:

1
2
3
4
5
6
7
8
9
10
11
12
13
.columnas{
	list-style:none;
	font-family:Arial, Helvetica, sans-serif;
	font-size:12px;
	color:333;
}
.columnas li{
	float:left;
	width:25%;
	margin:0 0  20px 20px;
	padding:15px;
	border:1px solid #ccc;
}

Cambiar logo wordpress del administrador

7 Feb 2010

Es posible que alguna vez queramos cambiar el logo de wordpress que aparece en el formulario de Inicio de sesión (wp-login.php). Si no queremos buscar donde se encuentra esa imágen en toda la carpeta de wordpress y remplazarla por el logo nuevo… podemos usar una nueva función en el functions.php de nuestro tema de wordpress:

Abrimos el archivo functions.php de nuestro tema y insertamos la función:

1
2
3
4
5
6
function logo_admin() {
    echo '<style type="text/css">
        h1 a { background-image:url('.get_bloginfo('template_directory').'/images/minuevologo.gif); }
    </style>';
}
add_action('login_head', 'logo_admin');

Eliminar el nofollow de los comentarios en Wordpress

7 Feb 2010

Para quien no lo sepa, el wordpress de manera predeterminada incluye el atributo “nofollow” a todos los links que haya en los comentarios (tanto al link del usuario como al del contenido del comentario). El nofollow hace que los buscadores no sigan ese enlace, aunque el usuario sí pueda pulsar en él e ir a la página a que se enlaza. El nofollow no da popularidad a las páginas enlazadas con este atributo, pero ese número de enlaces si que es tenido en cuenta para la división total del valor de los enlaces que tenemos en esa página.

Si eso no nos importa y queremos dar popularidad a todos los enlaces que insertan en los comentarios podemos hacer una función para remplazar el texto “nofollow” por “follow” que es el que tienen todos los enlaces por defecto.

Abrimos el archivo “functions.php” y añadimos la función para remplazar la cadena nofollow en nuestros comentarios de wordpress:

1
2
3
4
5
6
function eliminar_nofollow($cadena) {
	$string = str_replace('nofollow', 'follow', $cadena);
	return $cadena;
}
add_filter('comment_text', 'eliminar_nofollow'); // buscamos en el texto del comentario insertado
add_filter('get_comment_author_link','eliminar_nofollow'); // buscamos en el link del usuario

Excluir categorías para la búsqueda en Wordpress

7 Feb 2010

Si por alguna razón, deseamos excluir a algunas categorías de las búsquedas en wordpress, tenemos que ajustar un poco el search.php porque por ahora creo que no hay una solución a este problema.

Abrimos el archivo search.php y buscamos esta linea:

1
<?php if (have_posts()) : ?>

Y insertamos justo encima el siguiente código php indicando en “cat=1,2,3″ el id de las categorías que queremos incluir solo para la búsqueda:

1
2
3
4
5
<?php
if( is_search() ) :
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("s=$s&paged=$paged&cat=1,2,3");
?>

Por último, tenemos que cerrar el if al final del documento search.php:

1
<?php endif; ?>

Wordpress, alternar colores en comentarios

7 Feb 2010

Vamos a listar los comentarios de nuestro blog de una forma un poco más vistosa, alternado los colores de fondo de cada comentario (filas impares/pares) utilizando foreach y un poco de css.

En nuestro archivo de css insertamos el estilo que queremos dar a cada comentario:

1
2
.impar { background-color: #ddd; }
.par {background-color: #fff; }

Al comienzo del archivo comments.php, insertamos la variable del contador:

1
<?$i;?>

Ahora nos desplazamos hacia abajo hasta encontrar esta parte del código o similar:

1
2
<?php foreach ($comments as $comment) : ?>
<div class="commentbox">

Ahora insertamos el código php para insertar el estilo al class:

1
2
<?php foreach ($comments as $comment) : ?>
<div id="commentbox" class="<?=($i%2)?"impar":"par";$i++;?>">

Función php contar número de palabras de una cadena

7 Feb 2010

Función php para contar el número de palabras de una determinada cadena. Podemos usarla para limitar a un determinado número de palabras en alguna sección de nuestra web, etc.

1
2
3
4
5
6
7
function contar_palabras($cadena){
    return sizeof(explode(" ", $cadena));
}
// Modo de empleo:
$cadena="¡¡¡Sin LEÓN no hubiera España, que antes que Castilla leyes, Concilios, fueros y reyes, dieron prestigio a León!!!";
echo contar_palabras($cadena);
// Resultado: 18

Mostrar post relacionados en wordpress sin plugins

7 Feb 2010

Si no queremos usar un plugin para mostrar los post relacionados de un determinado post en wordpress podemos utilizar el siguiente script php. Este código se mostrará los post relacionados con las etiquetas o tags. Este script debe ser utilizado dentro del loop de wordpress.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$tags = wp_get_post_tags($post->ID);
if ($tags) {
  $first_tag = $tags[0]->term_id;
  $args=array(
    'tag__in' => array($first_tag),
    'post__not_in' => array($post->ID),
    'showposts'=>5,
    'caller_get_posts'=>1
   );
  $my_query = new WP_Query($args);
  if( $my_query->have_posts() ) {
	echo '<ul>';
    while ($my_query->have_posts()) : $my_query->the_post();
      echo '<li><a href="'.the_permalink().'" rel="bookmark">'.the_title().'</a></li>';
    endwhile;
	echo '</ul>';
  }
}

Función php validar url de dominio

7 Feb 2010

Función en php utilizando una expresión regular para validar cualquier tipo de url de dominio.

1
2
3
4
5
6
7
8
9
10
$url = "http://www.bufa.es";
function valida_url($url){  
	if (preg_match('/^(http|https|ftp):\/\/([\w]*)\.([\w]*)\.(com|net|org|biz|info|mobi|us|cc|bz|tv|ws|name|co|me)(\.[a-z]{1,3})?\z/i', $url)) {
		echo 'dominio correcto';
    }else{  
		echo 'dominio incorrecto';
	}
}
// Modo de uso
valida_url($url);

Divs de la misma altura con jQuery

1 Feb 2010

Quién no ha tenido problemas alguna vez en CSS con que alguno de sus divs laterales (generalmente en webs de 3 columnas) se ha quedado corto, y queremos que sea exactamente de la misma altura que el otro dependiendo del contenido que exista en alguno de ellos… bien, jQuery nos lo pone fácil para solucionar estos casos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function mismaAltura(midiv) {
    alto = 0;
    midiv.each(function() {
        altura = $(this).height();
        if(altura > alto) {
            alto = altura;
        }
    });
    midiv.height(alto);
}
// Modo de uso:
$(document).ready(function() {
    mismaAltura($(".columna_izquierda"));
    mismaAltura($(".columna_derecha"));
});

Deshabilitar botón derecho con jQuery

1 Feb 2010

Básica función de jQuery para poder desactivar el uso del botón derecho en nuestra web. Si no queremos que el usuario guarde por ejemplo nuestras fotos con botón derecho “Guardar imagen como…” es una simple y rápida solución para ponérselo un poco más difícil.

1
2
3
4
5
$(document).ready(function(){
    $(document).bind("contextmenu",function(e){
        return false;
    });
});

35 post | 15 comentarios | 37 tags | 9 suscriptores

Post aleatorios

Acerca de

bufa.es es una página web montada sobre wordpress que tiene como finalidad compartir la mayoría de recursos web (scripts, php, css, jquery, wordpress, plugins, posicionamiento web, etc...) utilizados por mi en el desarrollo web.

Entries (RSS) | Comments (RSS)

© 2010 Bufa | valid XHTML and CSS | Powered by Wordpress and design bufa