pager smink problema

zoliky képe

Remelem nem koveztek meg, de szuksegem van meg egy kis segitsegre.
Van egy drupal 4.7-es kodom:

function presswebcz_pager($tags = array(), $limit = 10, $element = 0, $parameters = array()) {
  global $pager_total;
  $output = '';
  if(variable_get('node_counter', 0) % 2 == 0) $output = '<div class="right"></div><hr size="1" class="cleaner" /></div>';
  if ($pager_total[$element] > 1) {
    $output .= '<div id="pager">';
    $output .= theme('pager_first', ($tags[0] ? $tags[0] : t('« first')), $limit, $element, $parameters);
    $output .= theme('pager_previous', ($tags[1] ? $tags[1] : t('‹ previous')), $limit, $element, 1, $parameters);
    $output .= theme('pager_list', $limit, $element, ($tags[2] ? $tags[2] : 9 ), '', $parameters);
    $output .= theme('pager_next', ($tags[3] ? $tags[3] : t('next ›')), $limit, $element, 1, $parameters);
    $output .= theme('pager_last', ($tags[4] ? $tags[4] : t('last ┬╗')), $limit, $element, $parameters);
    $output .= '</div>';
 
    return $output;
  }
}

A fuggveny a pagert listazta ki, peldaul igy:

<< previous 1 2 3 4 next >>

Az a problema, hogy nem tudom a kovetkezo sort beszurni drupal 6-ban:

$output = '';
if(variable_get('node_counter', 0) % 2 == 0) $output = '<div class="right"></div><hr size="1" class="cleaner" /></div>'

probaltam igy (szukseges lenne, hogy beszurjam a pager ele a kodot):

function mysite_node_list($items) {
  if(variable_get('node_counter', 0) % 2 == 0) {
      $items = '<div class="right"></div><hr size="1" class="cleaner" /></div>'; 
  }
 
  return theme('item_list', $items, NULL, 'ul', array('class' => 'pager'));
}

sajnos nem akar mukodni, tudnatok kicsit segiteni ? Nagyon nagyon halas lennek, azt hiszem ez az utolso akadaly es nem tudom befejezni a projektemet nelkule :(

Fórum: 
pp képe

Nyugodj le és írd le értelmesen a problémádat. Most milyen Drupal-lal dolgozol és mit akarsz elérni? Mi kerüljön hova?

pp

0
0
zoliky képe

Mukodik ha igy csianalom:

function mytheme_item_list($items = array(), $title = NULL, $type = 'ul', $attributes = NUL) {
   $output = '';
   if(variable_get('node_counter', 0) % 2 == 0) $output = '<div class="right"></div><hr size="1" class="cleaner" /></div>'; 
    $output .= '<div class="item-list">';
  if (isset($title)) {
    $output .= '<h3>'. $title .'</h3>';
  }
 
  if (!empty($items)) {
    $output .= "<$type". drupal_attributes($attributes) .'>';
    $num_items = count($items);
    foreach ($items as $i => $item) {
      $attributes = array();
      $children = array();
      if (is_array($item)) {
        foreach ($item as $key => $value) {
          if ($key == 'data') {
            $data = $value;
          }
          elseif ($key == 'children') {
            $children = $value;
          }
          else {
            $attributes[$key] = $value;
          }
        }
      }
      else {
        $data = $item;
      }
      if (count($children) > 0) {
        $data .= theme_item_list($children, NULL, $type, $attributes); // Render nested list
      }
      if ($i == 0) {
        $attributes['class'] = empty($attributes['class']) ? 'first' : ($attributes['class'] .' first');
      }
      if ($i == $num_items - 1) {
        $attributes['class'] = empty($attributes['class']) ? 'last' : ($attributes['class'] .' last');
      }
      $output .= '<li'. drupal_attributes($attributes) .'>'. $data ."</li>\n";
    }
    $output .= "</$type>";
  }
  $output .= '</div>';
  return $output;
}

Megis nem lehetne megoldani anelkul, hogy ezt az egesz kodot berakjam a template.php fajlba ? Kicsit tul sok egy apro modositasert.

0
0
zoliky képe

Ok, megprobalom elmagyarazni.
A drupal 6.x a kovetkezo tagok koze rakja a pager adatokat:

<div class="item-list">
   <ul class="pager">
    .....
   </ul>
</div>

Itt lathato egy kep

http://img383.imageshack.us/my.php?image=problemaou6.jpg

Egy csavonak a sminkjet modositom, nem tudom ki volt az okos aki csinalta neki de ha nem szurom be ezt a sort:

$output = '';
   if(variable_get('node_counter', 0) % 2 == 0) $output = '<div class="right"></div><hr size="1" class="cleaner" /></div>'; 

a <div class="item-list"> ele, nem latszik rendesen az oldal. A fenti kodban sikerult beszurni de atmasoltam az egesz fuggvenyt a template.php fajlba. Gondolom ez elege idetlen hack es meg lehetne oldani egyszerubben.

Koszonom!

0
0
crt képe

A theme* hook függvények módosításának ez a módja. Más kérdés, hogy szerintem itt inkább a css definíciókat kellene szemügyre venni és megfelelően beállítani, ha nincs kifejezetten szükséged arra az elválasztó vonalra.

Üdv: Zoli

0
0
zoliky képe

pp, crt, aboros es a tobbiek.. koszonom a sok segitseget, nagyon halas vagyok!

0
0
pp képe

Ha jól látom arról van szó, hogy ha páratlan számú elem van, akkor nem tesz ki lezáró div tagot az eredeti smink. Gondolom a készítője úgy gondolta, csak nem lesz valaki olyan sügér, hogy páratlan tartalmat rakjon ki. (persze nem gondolt olyanra, hogy mi van akkor, ha nincs tíz darab tartalom mondjuk. ;))

Ezt abból gondolom, hogy van a kódban egy kinyitatlan záró div tag. Tehát itt a css nem segít. Ez a jó megoldás. Pont ez a szép a Drupalban, hogy ha van egy html tartalom ami neked nem tetszik, akkor azt felülírhatod úgy, hogy nem kell a kódba nyúlnod. Vagyis nem kell módosítanod az eredeti kódot, csak kimásolod onnan a hibás/nemtetsző részt és módosítod. Tehát ez így működik a megoldás jó.

pp

0
0
zoliky képe

Ha jól latom arról van szó, hogy ha páratlan számú elem van, akkor nem tesz ki lezáró div tagot az eredeti smink. Gondolom a készítője úgy gondolta, csak nem lesz valaki olyan sügér, hogy páratlan tartalmat rakjon ki. (persze nem gondolt olyanra, hogy mi van akkor, ha nincs tíz darab tartalom mondjuk. ;))

Igen ez a problema :) Egy ujsagnak a weblapja amely drupal alapon mukodik. Elvalaltam a smink atirasat 6.x-re, mert ra vagyok szorulva de oszinten bevalom a szemely aki csinalta a sminket nem sokat erthetett a HTML/CSS kodhoz :)

0
0
crt képe

Tényleg, a lezáró div-et nem is vettem észre.

Üdv: Zoli

0
0