Drupal

Tips: Print out available variables

<?php
print '<pre>';
print_r(get_defined_vars());
print '</pre>';
?>

<?php
print '<pre>';
print htmlspecialchars(print_r(get_defined_vars(), TRUE), ENT_QUOTES);
print '</pre>';
?>

modificación de campos de formulario de edición de un nodo en Drupal

Copiado de

http://carlos.rinconsanchez.com/como-modificar-el-formulario-de-un-tipo-de-contenido-en-drupal

Ponemos en el fichero template.php del theme lo siguiente:

function phptemplate_node_form($form) {   
    drupal_set_message("Reescribiendo el formulario de " . $form['#node']->type);
    if($form['#node']->type) {
        if(file_exists(path_to_theme() . '/forms/form-' . $form['#node']->type . '.tpl.php')) {
            drupal_set_message("Encuentra el fichero y lo reescribe");
            return _phptemplate_callback('forms/form-' .

theme table de drupal

Muestra como se usa el theme table de drupal

<?php
//$header=array('primero', 'seguro');
$header= array(array('data'=>'primero','width'=>'200px'),array('data'=>'segundo','width'=>'600px'));
$rows[]= array(array('data'=>'1','align'=>'center'),array('data'=>'2','align'=>'right'));
$rows[]= array(array('data'=>'3','align'=>'left'),array('data'=>'2','align'=>'right'));
 
print theme('table',$header, $rows, $attributes = array(), $caption = NULL);
 
?>

bloque para mostrar posts como blogspot

Snippet para mostrar lista de noticias en un bloque como el archivo de posts de blogspot

<?php
drupal_add_js('(function($) {
$.fn.kshide = function() {
 
return this.each(function() {
var obj = $(this);
var link = obj.children("a");
var list = obj.children("ul");
list.hide();
 
link.toggle(
function() {
$(list).show("fast");
},
function() {
$(list).hide("fast");
});
});
}
})(jQuery);','inline');
 
drupal_add_js('$(document).ready(function(){$(".tog").kshide();});','inline');
?>
<?php
// This template page is for showing blog archives.
//show blog archives from

Acortar titulos de menus de bloques

Primero colocar en template.php

function _phptemplate_overwrite_links_menu_block ($delta){
 
	$menus=array();
	$menu=array();	
 
	$menus=menu_navigation_links($delta);
 
foreach($menus as $menu) {
 
	$output[]=l(((strlen($menu['title'])>24) ?

Conseguir el array de links de un menu

Usar función

http://api.drupal.org/api/function/menu_get_menus/6

Ejemplo

1. Primero conseguimos el nombre de todos los menus

print_r(menu_get_menus());

Mejorando el formulario de edición de un nodo

Sin duda, uno de los principales problemas que uno tiene al principio con Drupal es lograr que el formulario de edición de un nodo sea lo más amigable posible.
Lo he logrado usando la siguiente configuración que muestro en la imagen adjunta y agregando el código embebido

mostrar nodos referenciados por código

Este código sirve de ejemplo para mostrar nodos referenciados.

guia para construir tabs (pestañas) con el modulo Views 2.0 en Drupal 6.

Adjunto un enlace para ver como se configuran tabs con el modulo Views
2.0 en Drupal 6.

Me di el trabajo porque es poco conocida esta caracteristica del modulo Views.

http://picasaweb.google.com/h.sanchez75/DrupalTabsConViews

Con esto podemos evitar el uso del modulo Panels para este tipo de casos.

Distribuir contenido