Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » Drupal »

Drigg: Publicados / Subiendo / Archivados. Mostrarlos todos a la vez

Estas en el tema de Drigg: Publicados / Subiendo / Archivados. Mostrarlos todos a la vez en el foro de Drupal en Foros del Web. Hola por aqui ... tengo un problemita que no acabo de encontrar la forma de darle solucion. El caso es que tengo un proyecto basado ...
  #1 (permalink)  
Antiguo 25/06/2009, 14:32
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 19 años, 3 meses
Puntos: 638
Drigg: Publicados / Subiendo / Archivados. Mostrarlos todos a la vez

Hola por aqui ... tengo un problemita que no acabo de encontrar la forma de darle solucion. El caso es que tengo un proyecto basado en Drigg, entonces tenemos una parte en el sidebar en la que queremos mostrar los titulares de los articulos publicados, pero en forma de pestañas, que es algo bien usado ahora por su facilidad y rapidez de navegacion, esta parte ya la tenemos resuelta con jquery y css, el problema es es que para mostrar los tipos de menu (Publicados, Subiendo y Archivados) drigg lo hace llamando la funcion drigg_ui_type_menu():
Código php:
Ver original
  1. <?php
  2. if ($page == 0 && module_exists('drigg')) {
  3.     print drigg_ui_type_menu();
  4. }
  5. ?>
Asi, se genera una lista en html que muestra el menu y ademas, los articulos que esten en el menu activo (class="active")
Código html:
Ver original
  1. <ul class="drigg-viewtype">
  2.     <li class="active"><a class="active" href="/">publicado</a></li>
  3.     <li><a href="/upcoming/newest">upcoming</a></li>
  4.     <li><a href="/archived/newest">archived</a></li>
  5. </ul>
Esto como es logico lo puedo controlar con un poco de CSS y jQuery para crear las pestañas.

Ahora es cuando se me complica el inning, la funcion en el modulo que me controla esto es esta:
Código php:
Ver original
  1. <?php
  2. /**
  3.  * Returns the top menu ("published", "upcoming", "archived")
  4.  * This function ALSO preservs all of the links, whenever possible.
  5.  *
  6.  * @return
  7.  *   The top menu
  8. */
  9. function drigg_ui_type_menu() {
  10.   $output = '';
  11.   $selected_string = ' class="active" ';
  12.  
  13.   $p0 = arg(0);
  14.   $p1 = arg(1);
  15.   $p2 = arg(2);
  16.  
  17.   // This will make sure that even the home page will work OK
  18.   if ((arg(0) == 'node' || arg(0)== variable_get('drigg_home_name', 'drigg_home') ) && arg(1) == '' ) {
  19.     $p0 = 'published';
  20.     $p1 = 'newest';
  21.   }
  22.  
  23.   // This will make sure that even /Section works fine
  24.   if (drigg_is_section_valid( $p0 ) && $p1 == '' ) {
  25.     $p0 = 'published';
  26.     $p1 = 'newest';
  27.     $p2 = arg(0);
  28.   }
  29.  
  30.   // This avoids doing anything if the URL is incorrect
  31.   if ($p0 != 'published' && $p0 != 'upcoming' && $p0 != 'archived') {
  32.     return '';
  33.   }
  34.  
  35.   // Hide the "archived" menu entry, UNLESS you _ARE_ in "archived"
  36.   if (variable_get('drigg_hide_archived_menu', FALSE) && $p0 != 'archived') {
  37.     $items = array('published', 'upcoming');
  38.   }
  39.   else {
  40.     $items = array('published', 'upcoming', 'archived');
  41.   }
  42.  
  43.   // For each item, prints it, but with a twist...
  44.   // At this point, things are "normalised". So, no matter what,
  45.   // the format is for example published/top24h/Community or
  46.   // published/top24h
  47.   foreach ($items as $item ) {
  48.     $selected = '';
  49.  
  50.     $pp1 = $p1;
  51.  
  52.     // Mark it as selected if it's the same as the current one
  53.     if ($item == $p0) {
  54.       $selected = $selected_string;
  55.     }
  56.  
  57.     // Last minute change: you can't jump from 'published/top24h' to
  58.     // 'upcoming/24h'!!! So, if things are not right, fix them on the
  59.     // spot. From now on, $pp1 needs to be considered, rather than
  60.     // $p1
  61.     //
  62.     if ($item == 'upcoming' || $item == 'archived') {
  63.       if ($p1 != 'oldest' && $p1 != 'mostpopular' && $p1 != 'leastpopular') {
  64.         $pp1 = 'newest';
  65.       }
  66.     }
  67.     if ($item == 'published') {
  68.       if ($p1 != 'top7days' && $p1 != 'top24h' && $p1 != 'top30days' && $p1 != 'top365days') {
  69.         $pp1 = 'newest';
  70.       }
  71.     }
  72.  
  73.     // If the link is going to be /published/newest, then change it
  74.     // last minute to just /
  75.     if ($item == 'published' && $pp1 == 'newest' && $p2 == '') {
  76.       $link = drigg_ui_home_url();
  77.     // Otherwise, business as normal
  78.     }
  79.     else {
  80.       $link = "$item";
  81.       if ($pp1 != '') {
  82.         $link .= "/$pp1";
  83.       }
  84.       if ($p2 != '') {
  85.         $link .= "/$p2";
  86.       }
  87.       #$link="/$item" .  $pp1 != '' ? "/$pp1/$p2" : '';
  88.    }
  89.  
  90.     // NOW that link is set, I will add the Drupal's root to it
  91.     // in case there is one
  92.     //
  93.     #$bp = base_path();
  94.    #if ($bp != '/') {
  95.    #  $link = substr($bp, 0, -1) . $link;
  96.    #}
  97.  
  98.     $output .= "<li $selected><a ". $selected .' href="'. url($link) .'">'. t($item) .'</a></li>';
  99.      
  100.   }
  101.   return "<ul class=\"drigg-viewtype\">$output</ul>";
  102.    
  103. }
  104. ?>
Lo que necesito es lograr que me genere tres listas y me muestre todos los articulos, independientemente del tipo que sea... algo asi:
Código html:
Ver original
  1. <ul class="type">
  2.     <li><h3><a href="#pub" title="Publicados">Publicados</a></h3></li>
  3.     <li><h3><a href="#sub" title="Subiendo">Subiendo</a></h3></li>
  4.     <li><h3><a href="#arch" title="Archivados">Archivados</a></h3></li>
  5. </ul>
  6. <div class="block_content">
  7.     <ul class="active_type current" id="pub">
  8.         <li>Publicados</li>
  9.         <li>Publicados</li>
  10.         <li>Publicados</li>
  11.     </ul>
  12.     <ul class="active_type" id="sub">
  13.         <li>Subiendo</li>
  14.         <li>Subiendo</li>
  15.         <li>Subiendo</li>
  16.     </ul>
  17.     <ul class="active_type" id="arch">
  18.         <li>Archivados</li>
  19.         <li>Archivados</li>
  20.         <li>Archivados</li>
  21.     </ul>
  22. </div>
Y no se como hacerlo...

Alguien allá afuera con un alma caritativa que me ayude?
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:34.