// en el template.php
function _phptemplate_variables($hook, $vars = array()){
  switch ($hook) {
    case 'page':             
        $url = drupal_get_path_alias($_GET['q']);  // obtenemos la url dnd estamos
        $uri = explode("/", $url);
        if(count($uri)>=1){   // si la url esta formada por partres.. eje: /acciones/ejemplos/proyectos
          if ($uri[0] == 'acciones' or $uri[0] == 'comunicacion' or $uri[0] == 'modulos' ){   //una funcion de ejemplo que le decimos que solo entre si la url empieza por acciones, comunicacion, modulos, sino empiea así se saltará to esto y no creara ni modificara los breadcrumb.
            $enlace =  l('Principal', '');  // la 1º parte del breadcrumb
            for($i=0;$i<count($uri)-1;$i++){  // se va recorriendo para ir construyendo el breadcrumb
              if($i>0) {
                $ant = $uri[$i-1]."/".$uri[$i];
               } else{ 
                 $ant = $uri[$i];
               }
               if ($uri[$i] == 'modulos'){  //es una excepción.. si keremos k el titulo de esa parte del breadcrumb por ejemplo keremos k sea otra palabra k la de la url..asi en eeste ejemplo podemos cambiar "modulos" por "Modulos nuevos"
                 $enlace .= ' :: '.l('Módulos nuevos', $ant);i
              }
 
               else{  //sino el nombre es igual k el de la url
                 $enlace .= ' :: '.l(ucfirst(ereg_replace("_", " ", $uri[$i])), $ant);
              }
             }
           $vars['breadcrumb'] = '<div class="breadcrumb">'.$enlace.'</div>'; //guardo el valor en la variable de breadcrumb..
          }
        }
 
      break;
 
    }
    return $vars;
  }
drupal5
/**
 * Display the nodes of a view as a table.
 */
function phptemplate_views_view_table($view, $nodes, $type) {
  $fields = _views_get_fields();
 
  foreach ($nodes as $node) {
    $row = array();
    foreach ($view->field as $field) {
      if ($fields[$field['id']]['visible'] !== FALSE) {
        $cell['data'] = views_theme_field('views_handle_field', $field['queryname'], $fields, $field, $node, $view);
        $cell['class'] = "view-field ". views_css_safe('view-field-'. $field['queryname']);
        $row[] = $cell;
      }
    }
    $rows[] = $row;
  }
  return theme('table', $view->table_header, $rows,  array('summary' => 'Views tables'));
}
views
/**
 * Display the nodes of a view as a table.
 */
function phptemplate_views_view_table($view, $nodes, $type) {
  $fields = _views_get_fields();
 
  foreach ($nodes as $node) {
    $row = array();
    foreach ($view->field as $field) {
      if ($fields[$field['id']]['visible'] !== FALSE) {
        $cell['data'] = views_theme_field('views_handle_field', $field['queryname'], $fields, $field, $node, $view);
        $cell['class'] = "view-field ". views_css_safe('view-field-'. $field['queryname']);
        $row[] = $cell;
      }
    }
    $rows[] = $row;
  }
  return theme('table', $view->table_header, $rows,  array('summary' => 'Views tables'));
}
accesibilidad
  // Los enlaces en un tpl.php, template... deben ser de la siguiente forma para que no
  // de error de validación
  // en el siguiente ejemplo son con variables:
  //  Link :  /link/$link_ultima_parte
  //  titulo: titulo_$proyecto
  <?php print '/ultimos_codigos/ltligtlta_hrefquot/link/index.html'. $link_ultima_parte .'"> titulo_'. $proyecto .'</a></li>';?>
 
//otra accesibilidad..crear href con target
 
 <a href="http://link../"  onclick="target='_blank';"><img src="/sites/foto.jpg" alt="foto"/></a>
accesibilidad
// drupal6
// En un modulo:
function nombre_modulo_nodeapi(&$node, $op, $teaser, $page) {
  if ($node->type == 'page'){  // si solo se lo vamos a cambiar por eje a las paginas
    switch ($op) {
      case 'view':
        $url = drupal_get_path_alias($_GET['q']);  // cogemos la url
        $uri = explode("/", $url);   // la separamos por las barras
        if(count($uri)>=1){  // si la url tiene mas de 1 apartao..
          // si x ejem solo nos interesa cnd la url empieza x ejemplos o proyectos
           if ($uri[0] == 'ejemplos' or $uri[0] == 'proyectos'){ 
             $enlace[] =  l('Home', '');  //la 1º parte del enlace
             for($i=0;$i<count($uri)-1;$i++){
              if($i>0) {
                $ant = $uri[$i-1]."/".$uri[$i];
               } else{
                 $ant = $uri[$i];
               }
               // si por ejemplo cuando empiece por ejemplos, queremos q el breadcurm marque: "Tipos de ejemplos" y con la url ("tipos_de_ejemplos"):
               if ($uri[$i] == 'ejemplos'){
                 $enlace[] = l('Tipos de ejemplos', "tipos_de_ejemplos");
               }
               // sino.. que ponga el nombre de la parte de la url y el enlace tb
               else{ 
                 $enlace[] = l(ucfirst(ereg_replace("_", " ", $uri[$i])), $ant);
               }
             }
             // guardamos el breadcrumb
             drupal_set_breadcrumb($enlace);
          }
      }
       break;
    }
  }
}
breadcrumb
// Ejemplo de un campo tipo lista text, donde si eres el admin del sitio o
// perteneces al rol 4 las opciones son Sí y No. 
// El siguiente código meterlo en Php code (campo debado de Allowed values list)
global $user;
if ($user->uid == 1 or $user->roles[4] ){
$row[1] = 'Sí';
$row[2] = 'No';
return $row;
}
cck
// Ejemplo de un campo tipo lista text, donde si eres el admin del sitio o
// perteneces al rol 4 las opciones son Sí y No. 
// El siguiente código meterlo en Php code (campo debado de Allowed values list)
global $user;
if ($user->uid == 1 or $user->roles[4] ){
$row[1] = 'Sí';
$row[2] = 'No';
return $row;
}
campos
// Ejemplo de un campo tipo lista text, donde si eres el admin del sitio o
// perteneces al rol 4 las opciones son Sí y No. 
// El siguiente código meterlo en Php code (campo debado de Allowed values list)
global $user;
if ($user->uid == 1 or $user->roles[4] ){
$row[1] = 'Sí';
$row[2] = 'No';
return $row;
}
php code
//En el template.php
 
function phptemplate_upload_attachments($files) {
   $attributes['summary'] = 'Attachment_table';
   $attributes['id'] = 'attachments';
 
  $header = array(t('Attachment'), t('Size'));
  $rows = array();
  foreach ($files as $file) {
    $file = (object)$file;
    if ($file->list && !$file->remove) {
      // Generate valid URL for both existing attachments and preview of new attachments (these have 'upload' in fid)
      $href = file_create_url((strpos($file->fid, 'upload') === FALSE ? $file->filepath : file_create_filename($file->filename, file_create_path())));
      $text = $file->description ? $file->description : $file->filename;
      $rows[] = array(l($text, $href), format_size($file->filesize));
    }
  }
  if (count($rows)) {
    return theme('table', $header, $rows, $attributes);
  }
}
 
adjuntos
//En el template.php
 
function phptemplate_upload_attachments($files) {
   $attributes['summary'] = 'Attachment_table';
   $attributes['id'] = 'attachments';
 
  $header = array(t('Attachment'), t('Size'));
  $rows = array();
  foreach ($files as $file) {
    $file = (object)$file;
    if ($file->list && !$file->remove) {
      // Generate valid URL for both existing attachments and preview of new attachments (these have 'upload' in fid)
      $href = file_create_url((strpos($file->fid, 'upload') === FALSE ? $file->filepath : file_create_filename($file->filename, file_create_path())));
      $text = $file->description ? $file->description : $file->filename;
      $rows[] = array(l($text, $href), format_size($file->filesize));
    }
  }
  if (count($rows)) {
    return theme('table', $header, $rows, $attributes);
  }
}
 
accesibilidad
// En template.php
 
// Para el campo,Nodo: nombre de autor  
function phptemplate_username($object) {
  if ($object->uid && $object->name) {
    if (drupal_strlen($object->name) > 20) {
      $name = drupal_substr($object->name, 0, 15) .'...';
    }
    else {
      $name = $object->name;
    }
    if (user_access('access user profiles')) {
       // línea dónde se ha efectuado el cambio, se ha cambiado por 'user/'. $object->uid:
     $output = l($name, 'usuario/'. $object->name, array('title' => t('View user profile.')));
    }
    else {
      $output = check_plain($name);
    }
  }
  else if ($object->name) {
    if ($object->homepage) {
      $output = l($object->name, $object->homepage);
    }
    else {
      $output = check_plain($object->name);
    }
    $output .= ' ('. t('not verified') .')';
  }
  else {
    $output = variable_get('anonymous', t('Anonymous'));
  }
  return $output;
}
 
// Para el campo:  Node: Author picture
function phptemplate_user_picture($account) {
  if (variable_get('user_pictures', 0)) {
    if ($account->picture && file_exists($account->picture)) {
      $picture = file_create_url($account->picture);
    }
    else if (variable_get('user_picture_default', '')) {
      $picture = variable_get('user_picture_default', '');
    }
 
    if (isset($picture)) {
      $alt = t("@user's picture", array('@user' => $account->name ? $account->name : variable_get('anonymous', t('Anonymous'))));
      $picture = theme('image', $picture, $alt, $alt, '', FALSE);
      if (!empty($account->uid) && user_access('access user profiles')) {
         //la línea de cambio:
        $picture = l($picture, "usuario/$account->name", array('title' => t('View user profile.')), NULL, NULL, FALSE, TRUE);
      }
 
      return "<div class=\"picture\">$picture</div>";
    }
  }
}
views
// En template.php
 
// Para el campo,Nodo: nombre de autor  
function phptemplate_username($object) {
  if ($object->uid && $object->name) {
    if (drupal_strlen($object->name) > 20) {
      $name = drupal_substr($object->name, 0, 15) .'...';
    }
    else {
      $name = $object->name;
    }
    if (user_access('access user profiles')) {
       // línea dónde se ha efectuado el cambio, se ha cambiado por 'user/'. $object->uid:
     $output = l($name, 'usuario/'. $object->name, array('title' => t('View user profile.')));
    }
    else {
      $output = check_plain($name);
    }
  }
  else if ($object->name) {
    if ($object->homepage) {
      $output = l($object->name, $object->homepage);
    }
    else {
      $output = check_plain($object->name);
    }
    $output .= ' ('. t('not verified') .')';
  }
  else {
    $output = variable_get('anonymous', t('Anonymous'));
  }
  return $output;
}
 
// Para el campo:  Node: Author picture
function phptemplate_user_picture($account) {
  if (variable_get('user_pictures', 0)) {
    if ($account->picture && file_exists($account->picture)) {
      $picture = file_create_url($account->picture);
    }
    else if (variable_get('user_picture_default', '')) {
      $picture = variable_get('user_picture_default', '');
    }
 
    if (isset($picture)) {
      $alt = t("@user's picture", array('@user' => $account->name ? $account->name : variable_get('anonymous', t('Anonymous'))));
      $picture = theme('image', $picture, $alt, $alt, '', FALSE);
      if (!empty($account->uid) && user_access('access user profiles')) {
         //la línea de cambio:
        $picture = l($picture, "usuario/$account->name", array('title' => t('View user profile.')), NULL, NULL, FALSE, TRUE);
      }
 
      return "<div class=\"picture\">$picture</div>";
    }
  }
}
link

Todavía estamos montando esta cocina con Drupal, así que probablemente más de un detalle esté sin acabar en esta web

Inicio de sesión

Navegación

Comentarios recientes

Nuevos

  • fernando
  • dsevila
  • zialdoka
  • ek10
  • juanramonperez