Ejemplo rápido sobre como insertar código JS desde el archivo template.php:
function bluemarine_preprocess_page(&$vars, $hook) {
if ($hook == 'page')
{
drupal_add_js('alert("Hola");','inline');
$vars['scripts'] = drupal_get_js();
}
}
Notar la definición del encabezado de la función que consiste en:
function NombreTheme_preprocess_page(&$vars, $hook) {...}
En la función drupal_add_js el segundo parámetro es 'inline' para indicar que el código que se va a insertar es código que no procede de un archivo externo.
¿Por qué aguardas con impaciencia las cosas? Si son inútiles para tu vida, inútil es también aguardarlas. Si son necesarias, ellas vendrán y vendrán a tiempo. Amado Nervo
lunes, 31 de agosto de 2009
viernes, 28 de agosto de 2009
Drupal: Reescribir una URL con código PHP
Para poder reescribir la URL de un enlace, se puede usar la función "custom_url_rewrite_outbound". Por ejemplo, supongamos que tenemos un catálogo generado por el Ubercart. Cada elemento del catálogo muestra una imágen y un título, cada grupo de imágen y título tienen el mismo URL, el cual lleva al usuario a una página general donde se muestran todos los items relacionados con el nombre de catálogo al cual se le hizo clic.
El problema sería ¿cómo puedo hacer para que después de hacer clic en uno de los items que muestra el catálogo, muestre más bien, el resultado de una Vista u otra página que nosotros queramos?
La solución más rápida que encontré es agregando en el archivo settings.php la función llamada "custom_url_rewrite_outbound". Con ésta función es posible reescribir la url de cualquier enlace que exista en la aplicación Drupal que estemos creando.
El código de ejemplo es:
function custom_url_rewrite_outbound(&$path, &$options, $original_path) {
if (preg_match('|^catalog/(.*)|', $path, $matches)) {
preg_match('/[0-9]+$/', $path, $matches);
switch ($matches[0])
{
case '3':
$path = drupal_get_path_alias('catalogo-alicates');
break;
case '4':
$path = drupal_get_path_alias('catalogo-lijas');
break;
case '5':
$path = drupal_get_path_alias('catalogo-martillos');
break;
}
}
}
Notar que en el primer preg_match: preg_match('|^catalog/(.*)|', $path, $matches), usamos una expresión regular para filtrar la url que queramos analizar. En mi caso la URL original es de la forma:
http://www.dominio.com/catalog/5
Lo que está en color rojo, es lo que deseo cambiar por
http://www.dominio.com/catalogo-martillos
Dependiendo del número que aparezca en la URL, se establece el alias. Esos alias que estoy usando son páginas que apuntan a Vistas de Drupal previamente creadas.
En realidad, la cosa es más compleja, pues estoy usando taxonomía; cada elemento del catálogo es un término taxonómico. En el índice de términos se observa la relación que existe entre el nombre que le dimos al término y la url que se le asignó automáticamente.
Referencias:
http://drupal.org/node/207330
http://drupal.org/node/243889
http://agaric.com/note/override-taxonomy
regular_expressions
El problema sería ¿cómo puedo hacer para que después de hacer clic en uno de los items que muestra el catálogo, muestre más bien, el resultado de una Vista u otra página que nosotros queramos?
La solución más rápida que encontré es agregando en el archivo settings.php la función llamada "custom_url_rewrite_outbound". Con ésta función es posible reescribir la url de cualquier enlace que exista en la aplicación Drupal que estemos creando.
El código de ejemplo es:
function custom_url_rewrite_outbound(&$path, &$options, $original_path) {
if (preg_match('|^catalog/(.*)|', $path, $matches)) {
preg_match('/[0-9]+$/', $path, $matches);
switch ($matches[0])
{
case '3':
$path = drupal_get_path_alias('catalogo-alicates');
break;
case '4':
$path = drupal_get_path_alias('catalogo-lijas');
break;
case '5':
$path = drupal_get_path_alias('catalogo-martillos');
break;
}
}
}
Notar que en el primer preg_match: preg_match('|^catalog/(.*)|', $path, $matches), usamos una expresión regular para filtrar la url que queramos analizar. En mi caso la URL original es de la forma:
http://www.dominio.com/catalog/5
Lo que está en color rojo, es lo que deseo cambiar por
http://www.dominio.com/catalogo-martillos
Dependiendo del número que aparezca en la URL, se establece el alias. Esos alias que estoy usando son páginas que apuntan a Vistas de Drupal previamente creadas.
En realidad, la cosa es más compleja, pues estoy usando taxonomía; cada elemento del catálogo es un término taxonómico. En el índice de términos se observa la relación que existe entre el nombre que le dimos al término y la url que se le asignó automáticamente.
Referencias:
http://drupal.org/node/207330
http://drupal.org/node/243889
http://agaric.com/note/override-taxonomy
regular_expressions
miércoles, 26 de agosto de 2009
Archivos CHM no funcionan.
Descargué un archivo con formato *.chm. El problema es que no podía verlo, ¿por qué?
La respuesta se explica en esta página: Chm Files
Brevemente, para poder ver el archivo, hay que ir a las propiedades del archivo y notaremos que existe un botón que dice "Unblock". Hay que hacer clic en dicho botón y listo!
La respuesta se explica en esta página: Chm Files
Brevemente, para poder ver el archivo, hay que ir a las propiedades del archivo y notaremos que existe un botón que dice "Unblock". Hay que hacer clic en dicho botón y listo!
martes, 18 de agosto de 2009
Drupal: Corregir imágenes transparentes en IE5, IE6
Excelente módulo para corregir transparencias que en IE5 ó IE6 definitivamente son un caso especial. El módulo está en www.jwpctips.com
Lo único que hay que hacer es instalar el módulo, luego en el archivo page.tpl.php buscamos la imágen que queremos corregir. Dicha imágen la encerramos con un bloque DIV de la forma:
<div class="pngfix">
<img .......>
</div>
Alternativa dos: Enlace relacionado
Alternativa 3:
Otra alternativa que en lo personal, me gusta mucho es ni más ni menos que evitar de una vez por todas el uso de versiones inferiores a IE7. En lo personal creo que los navegadores web de Microsoft definitivamente llevan la contraria a lo que es CSS, de hecho es el único, que yo sepa!, que no respeta las normas de CSS establecidas por la W3C. Una forma para indicarle al usuario que se actualice es usando ie6-upgrade-warning de lo contrario inventarse un código para que detecte en que navegador se va a presentar la información y de esa forma impedir la carga del sitio o mostrar un mensaje de advertencia indicando que el sitio no se puede ver correctamente en versiones IE6 e inferiores.
Lo único que hay que hacer es instalar el módulo, luego en el archivo page.tpl.php buscamos la imágen que queremos corregir. Dicha imágen la encerramos con un bloque DIV de la forma:
<div class="pngfix">
<img .......>
</div>
Alternativa dos: Enlace relacionado
Alternativa 3:
Otra alternativa que en lo personal, me gusta mucho es ni más ni menos que evitar de una vez por todas el uso de versiones inferiores a IE7. En lo personal creo que los navegadores web de Microsoft definitivamente llevan la contraria a lo que es CSS, de hecho es el único, que yo sepa!, que no respeta las normas de CSS establecidas por la W3C. Una forma para indicarle al usuario que se actualice es usando ie6-upgrade-warning de lo contrario inventarse un código para que detecte en que navegador se va a presentar la información y de esa forma impedir la carga del sitio o mostrar un mensaje de advertencia indicando que el sitio no se puede ver correctamente en versiones IE6 e inferiores.
lunes, 17 de agosto de 2009
Joomla: ¿Qué es Joomla?
Una breve pero clara introducción a Joomla la podemos encontrar en Maestros del Web
Diseño Web: Normas para crear un logo.
Normas básicas para el diseño de un logo para la web. En el sitio explican los conceptos de logo, isotipo, logotipo, etc. Ver
Otros enlaces relacionados:
Diseño web, fundamentos básicos
Fundamentos del diseño grafico
Tipos de imagenes para internet
Diseño web para iPhone
Componer un diseño de 3 columnas en XHTML y CSS
¿Como presentar un presupuesto cautivador?
Otros enlaces relacionados:
Diseño web, fundamentos básicos
Fundamentos del diseño grafico
Tipos de imagenes para internet
Diseño web para iPhone
Componer un diseño de 3 columnas en XHTML y CSS
¿Como presentar un presupuesto cautivador?
martes, 11 de agosto de 2009
JQuery: Establecer colores en líneas alternas de una tabla.
En el siguiente trozo de código se muestra como utilizando JQuery es posible cambiar el color de las líneas de una tabla pero en forma alterna:
$(document).ready(function()
{
$('tr:odd').addClass('odd');
$('tr:even').addClass('even');
}
$(document).ready(function()
{
$('tr:odd').addClass('odd');
$('tr:even').addClass('even');
}
sábado, 8 de agosto de 2009
viernes, 7 de agosto de 2009
Javascript: JS no obstructivo
Interesante desarrollo del tema sobre javascript no obstructivo el cual se puede leer en el blog de anieto2K
martes, 4 de agosto de 2009
Asp.Net: Gridview con estilos.
En el sitio NetCodigo explican unos buenos ejemplos para aplicar estilos a los GridViews y además muestran ejemplos los cuales se pueden descargar.
lunes, 3 de agosto de 2009
Asp .Net Ajax: Control Modal PopUp
Asp .Net: Proyectos libre descarga hechos en Asp.Net
En las páginas de Asp.Net Ajax encontré un enlace que nos lleva a una sección de descarga de Starter Kits y entre ellos podemos encontrar un Shopping Cart y un Report Web Site ya hechos; pero obviamente son bien básicos.
El enlace para ir a la página es el siguiente: Starter Kits
El enlace para ir a la página es el siguiente: Starter Kits
Ajax .Net: Actualizar un UpdatePanel con código Javascript
Digamos que tengo dentro de un UpdatePanel la hora que se recupera del lado del servidor y no de la computadora del cliente y se desea que la hora se actualice cada segundo del lado del cliente; éste siempre debe ver la hora del servidor.
El primer paso es modificar el evento Load del UpdatePanel; en éste control debemos poner el código para que la hora que aparece en un label se actualice cada vez que ocurre un postback asíncrono.
Protected Sub UpdatePanel1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles UpdatePanel1.Load
Label1.Text = DateTime.Now
End Sub
El siguiente paso es usar el siguiente código Javascript:
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
setTimeout("Actualizar()", 1000);
function Actualizar() {
prm._doPostBack("UpdatePanel1", "");
setTimeout("Actualizar()", 1000);
}
</script>
Obviamente, con éste ejemplo se pueden implementar muchas otras cosas!.
En caso de no querer implementar la función actualizar, entonces se podría usar el control Timer. En el evento Tick se pone el código para que actualice el contenido del Lable1. Y en el UpdatePanel se agrega un Trigger que haga referencia al control Timer y al evento Tick.
El primer paso es modificar el evento Load del UpdatePanel; en éste control debemos poner el código para que la hora que aparece en un label se actualice cada vez que ocurre un postback asíncrono.
Protected Sub UpdatePanel1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles UpdatePanel1.Load
Label1.Text = DateTime.Now
End Sub
El siguiente paso es usar el siguiente código Javascript:
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
setTimeout("Actualizar()", 1000);
function Actualizar() {
prm._doPostBack("UpdatePanel1", "");
setTimeout("Actualizar()", 1000);
}
</script>
Obviamente, con éste ejemplo se pueden implementar muchas otras cosas!.
En caso de no querer implementar la función actualizar, entonces se podría usar el control Timer. En el evento Tick se pone el código para que actualice el contenido del Lable1. Y en el UpdatePanel se agrega un Trigger que haga referencia al control Timer y al evento Tick.
domingo, 2 de agosto de 2009
Asp .Net: Ajax y consumo de WebServices con Javascript
Buscando una explicación sobre que scripts se carga cuando agrego un control ScriptManager a un proyecto Asp.Net, encontré un interesante sitio donde explican muy claro como trabajar con Javascript y los WebServices. Está muy bien explicado y al mismo tiempo esta resumido, no se anda con rodeos; el sitio es TecBlog.
El sitio donde explican más o menos cómo usar el framework de Asp.Net Ajax está en CideSoft
El sitio donde explican más o menos cómo usar el framework de Asp.Net Ajax está en CideSoft
Suscribirse a:
Entradas (Atom)