3 millones en foros del web

Registrarte Políticas Wiki 120segs Ayuda Iniciar sesion

Retroceder   Foros del Web > Diseño de Sitios web > Aplicaciones prefabricadas > Drupal
Respuesta
 
Herramientas Desplegado
Antiguo 25-jun-2009, 14:32   #1 (permalink)
Colaborador
rogertm (Reg: julio-2005)
 
1.609 Mensajes
Ubicación: /home/Cuba/Habana/rogertm/
rogertm está desconectado
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 originalCopiar
  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 originalCopiar
  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 originalCopiar
  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 originalCopiar
  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
rogertm.com - blog
  Responder Citando
Respuesta
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.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 00:45.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108