Tag Archive for: cadenas

WordPress: Sitios multilingues con QTranslate

Categories: Wordpress - Tags: , ,

Existen algunos plugins para WordPress que realizan traducciones automáticas usando servicios de Google Translate u otros sin embargo los resultados no son del todo precisos, además no permiten traducir imágenes y muchos de ellos no mantienen la URL por lo que tampoco se indexan todos los idiomas en los buscadores.

Hay una solución a todos esos problemas pero por supuesto es más trabajosa ya que es manual sin embargo es la que reporta los mejores resultados, podemos bajar el plugin gratuito QTranslate desde su sitio http://www.qianqin.de/qtranslate/download/

Configuración Básica

Lo primero que debemos hacer una vez instalado el plugin es definir los idiomas que vamos a utilizar además del idioma por defecto para eso buscamos el menu Ajustes/Idiomas y allí veremos la lista de idiomas, podemos definir nuevos idiomas pero siempre teniendo en cuenta los codigos de idioma por eejemplo en español es_ES en ingles en_EN o en_US esto es util por si subimos los archivos .po y .mo a Worpdress todo funcione de forma coordinada.

¿Cómo Escribir en Múltiples Idiomas?

Una vez instalado el plugin cuando escribamos un post o una página aparecerá una casilla para el título en cada idioma y unos tabs para elegir en que idioma se va a escribir el post o la página, por defecto los posts y páginas previamente creados se duplican a todos los idiomas disponibles.

Cuando vayamos a Post/Categorias también veremos que por cada idioma aparece un nuevo campo para escribir el nuevo nombre

Una vez definidos los idiomas el siguiente paso es colocar el widget de idioma en el menu Apariencia/Widgets y así el vistante pueda elegir el idioma en que desea ver el sitio.

¿Cómo traducir campos personalizados, plugins y codigo PHP?

Hasta el item anterior era lo más básico ahora compliquemos las cosas, por defecto los campos personalizados, codigo PHP y respuestas de otros plugins no son traducidos sin embargo existen unas etiquetas que nos permiten realizar esto de forma sencilla, veamos el ejemplo de estas dos etiquetas para español e inglés

1
[:es]Valor de mi campo personalizado en español[:en]Value of my customized field in english

Lo anterior es equivalente a:

1
<!--:es-->Valor de mi campo personalizado en español<!--:--><!--:en-->Value of my customized field in english<!--:-->

Si añadimos esas etiquetas en nuestro código PHP cuando realizamos un echo obtendremos el texto correspondiente al idioma seleccionado

Para traducir la respuesta de un campo personalizado se soluciona fácilmente añadiendo una función a nuestro código, como en el ejemplo:

1
2
3
4
5
6
<?php
            $mykey_values = get_post_custom_values('subfooter');
            foreach ( $mykey_values as $key => $value ) {
                echo qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($value);
            }
            ?>

En el ejemplo recojo el valor del custom field llamado “subfooter” y con la función qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage hago que discrimine el valor según el idioma elegido.

Cuando se trata de traducir la respuesta proveniente de plugin es posible que tengamos que modificar el código del plugin utilizando esa función sin embargo si el plugin utiliza short tags hay una forma sencilla de traducirlo

Primero veamos la función original usando short code en este caso estoy usando para recoger un formulario del plugin Contact Form 7 [contact-form-7 id="170" title="Form Contacto"]

1
<?php echo do_shortcode('[contact-form-7 id="170" title="Form Contacto"]'); ?>

Al aplicarle el filtro de idioma quedaría:

1
<?php echo qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage(do_shortcode('[contact-form-7 id="170" title="Form Contacto"]')); ?>

Zencart: Como saber en que pagina estoy

Categories: zencart - Tags: ,

Este es un pequeño tip que les servirá a los desarrolladores de plantillas para la popular tienda virtual Zencart.
Para conocer la página actual basta usar la variable $current_page en cualquier sección de la plantilla.

Quedaría algo como esto:

1
2
3
4
5
if ($current_page=="index") {
  // Si estoy en homepage hace algo...
} else {
  // Si estoy en una página interna hace alguna otra cosa
}

Jquery: Simple WYSIWYG editor

Categories: html, javascript - Tags: , ,

Jquery es sin lugar a dudas uno de los mejores sino el mejor framework ajax principalmente por lo sencillo que es de aprender y por la enorme variedad de plugins que le dan más potencia.

Les presento un plugin interesante llamado jWYSIWYG fue desarrollado teniendo como metas hacerlo liviano, rápido, que aproveche las ventajas de ajax y que sea fácil de implementar.

Si cuentas con un sitio que requiere un editor sencillo con las funciones básicas entonces este es el editor ideal, para cosas así no tendría sentido usar el bastante pesado CKEditor o similares.

Lo puedes descargar AQUI

Cómo agregar comentarios a mi pagina web

Categories: Otros - Tags:

Esa es una pregunta que suelen hacer muchos novatos y ya que no todos poseen conocimientos de PHP, MySQL y/o AJAX o simplemente no quieres darte todo el trabajo que implica esto pues mejor puedes intentar con un servicio aparte que se encargue.

Puedes probar Disqus tanto en su versión gratuita como su versión VIP que es pagada, las ventajas de la versión pagada es que cuentas con un mayor número de opciones para controlar spam y usuarios indeseados, además de soportar un mayor volumen de datos sin embargo salvo tengas un gigantesco portal con la opción gratuita debería bastarte.

Sitio: http://disqus.com/

Eliminar HTML con PHP

Categories: PHP - Tags: , , ,

Cuando creamos una pequeña aplicacion donde los usuarios puedan dejar comentarios ya sea un blog un guestbook, etc; siempre corremos el riesgo que usuario maliciosos peguen etiquetas html con propaganda, links a otros sitios, codigo javascript etc, etc. En PHP es realmente simple evitar eso basta con usar una funcion PHP que nos hará muy fácil la vida llamada strip_tags().

Por ejemplo:

1
2
3
$saludo= '<strong>Hola mundo!</strong>';
echo strip_tags($saludo) ;
/// Eso nos devuelve Hola mundo!

Hasta ahi bastante util pero que ocurre si deseamos permitir alguna etiquetas inofensivas como <b>, <i>, <p>, etc.

Pues la solucion es:

1
2
// Se permite la etiqueta <p>
echo strip_tags($texto, '<p>');