Para agregar el efecto se puede hacer de dos maneras.
Con jQuery
Esta es muy sencilla, solo hay que agregar un archivo llamado 'script.js' en nuestro theme y poner dentro:
// Wrap span tags around the anchor text in the primary menu.
$(document).ready(function(){
$("#primary li a")
.wrapInner("<span>" + "</span>");
});Utilizando theme_links
La manera correcta de hacer esto es utilizando lo que se llama un override de una función. Para esto vamos a poner en template.php lo siguiente:
<?php
/**
Para ocultar los "tips" y el input format que aparece debajo de cada nodo cuando lo estamos creando o editando, lo podemos hacer de distintas maneras, una de ellas es simplemente usar css y poner "display: none;" sin embargo puede que no sea la más apropiada.
La mejor solución a este problema sin duda es la siguiente:
<?php
/*
* Override filter.module's theme_filter_tips() function to disable tips display.
*/
function phptemplate_filter_tips($tips, $long = FALSE, $extra = '') {
return '';
}
function phptemplate_filter_tips_more_info () {
return '';
}
?>Este pequeño módulo lo que hace es convertir, para el puro caso de taxonomías, una lista de selección de términos múltiples en la que usamos Control para seleccionar opciones, en una lista de checkboxes o radios, lo cual es mas conveniente y más sencillo para el usuario.
El artículo original incluye la posiblidad de hacer esto para Drupal 5.x, sin embargo en este caso solo vamos a analizar el caso para Drupal 6.x. El artículo original es: http://drupal.org/node/84286
Para hacer esto tenemos que crear un módulo llamado alterform, mismo que se incluye al final como attachment.
Para personalizar el breadcrumb y mostrar el título de la página que se está viendo, lo podemos hacer con el siguiente cógido:
<?php
function phptemplate_breadcrumb($breadcrumb) {
$sep = ' > ';
if (count($breadcrumb) > 0) {
return implode($breadcrumb, $sep) . $sep;
}
else {
return t("Home");
}
}
?>En page.tpl.php tendremos que poner:
<?php print $breadcrumb . $title; ?> Para ocultar un Tab en particular (menu_local_task) en una página determinada lo podemos hacer de varias maneras, para Drupal 6.x lo podemos hacer con un preprocess de la siguiente manera.
<?php
function phptemplate_preprocess(&$variables, $hook) {
if (arg(0) == 'node' && is_numeric(arg(1))) {
$node = node_load(arg(1));
if ($hook == 'page') {
if ($node->type == 'community') {
theme_removetab('View', $variables);
}
if ($node->type != 'community') {
theme_removetab('Home', $variables);
}
}
}
return $variables;
}
Para mostrar la información que se guarda en $submitted lo podemos hacer de esta manera:
<?php
return t('Submitted by !username on @datetime',
array(
'!username' => theme('username', $node),
'@datetime' => format_date($node->created),
)
);
?>Si necesitamos obtener el Role del usuario logueado y después hacer algo con esa información podemos utilizar el siguiente código:
<?php
global $user;
if ($user->roles[4]) {
echo "I'll do something";
}
?>De: http://drupal.org/node/296621
En este ejemplo se utiliza un redirect en caso de que el usuario no pertenezca a cierto rol.
<?php
global $user;
if ($user->roles[16]) {
echo "Puedes acceder a esta página sin problemas";
}
else {
header("location: [urlhere]");
}
?>En el autor del nodo siempre usamos el 'username' o nombre de usuario. Si utilizamos el módulo Bio puede ser más mostrar el nombre completo, compuesto de uno o varios campos, en el siguiente caso se utilizan dos campos para crear el nombre. Esto va en node.tpl.php o en comment.tpl.php
<?php
// Load the bio node for the user that is the author of the comment
$bio_node = node_load(array('type' => 'bio', 'uid' => $comment->uid));
$biosubmittedname = $bio_node->field_nombre[0]['value'] .' '. $bio_node->field_ape_paterno[0]['value'];
?>En ocasiones es últil ocultar el Título del Nodo dependiendo de cierto tipo de contenido, para eso en template.php vamos a agregar y a modificar:
<?php
function _phptemplate_variables($hook, $vars) {
$vars['breadcrumb_title'] = $vars['title'];
if (arg(0) == 'node' && is_numeric(arg(1))) {
$node = node_load(arg(1));
if (in_array($node->type, array('mesadirectiva', 'reviwe', 'menu'))) {
$vars['title'] = '';
}
}
return $vars;
}
?>Para ocultar el Node Title o Título del Nodo en la página principal solo tenemos que agregar a page.tpl.php
<?php
if ( $is_front ) {
unset($title);
}
?>