[RISOLTO] D6 - Integrazione slideshow

6 contenuti / 0 new
Ultimo contenuto
[RISOLTO] D6 - Integrazione slideshow

ciao a tutti,
il mio obiettivo: per far funzionare correttamente uno slideshow devo riuscire ad impostare class="show" nell'ancora del primo di una serie di elementi (contenenti le immagini da far girare) estratti da una vista.

Procedimento seguito: per rispettare la formattazione richiesta dal js, ho temizzato gli elementi estratti dalla vista effettuando l'override dei template generati dalla vista stessa, tranne di quello che gestisce il campo contenuto (il piu specifico in pratica), il cui output è generato da cck e per il quale ho sfruttato il modulo custom_formatters.

Il js utilizzato semplicemente considera gli elementi introdotti all'interno del tag <div id="gallery"> che hanno questa struttura
<a href="#">
<img src="images/immagine.jpg" alt="" width="580" height="360" title="" alt="" rel="descrizione"/>
</a>
e li mette in rotazione.
Il primo elemento della serie, come dicevo, dovrebbe avere <a href="#" class="show">,
altrimenti si crea un ritardo e una ripetizione fastidiosa del pimo elemento.

Grazie mille in anticipo a chi vorrà darmi qualche suggerimento!

Benvenut*.
è difficile se non impossibile poter dire qualcosa visto che hai personalizzato tutto (script,vista,cck).
Forse vedendo il codice si potrebbe provare...

Angelo Turetta

grazie per il benvenuto a bohz! e per il suggerimento di view_slideshow ad aturetta (l'ho provato ma nn ha tutte le caratteristiche che mi servono)!

I template view di cui ho fatto l'override sono:
- quello per il Display output: views-view.tpl.php, a cui ho aggiunto

<?php
        drupal_add_css
(drupal_get_path('theme', 'seatheme') . '/css/slider.css');
       
//drupal_add_js(drupal_get_path('theme', 'seatheme') . '/js/slideshow/js/jquery-1.3.1.min.js');
       
drupal_add_js(drupal_get_path('theme', 'seatheme') . '/js/slideshow/slider.js');
 
?>

- quello per lo Style output: views-view-unformatted.tpl.php, che è diventato
<div id="gallery">
<?php if (!empty($title)): ?>
  <h3><?php print $title; ?></h3>
<?php endif; ?>
<?php foreach ($rows as $id => $row): ?>
<?php print $row; ?>
<?php endforeach; ?>
<div class="caption"><div class="content"></div></div>
</div>
<div class="clear"></div>

- quello per il Row style output: views-view-fields.tpl.php, diventato
<a href="#" <?php   /*if ($cont == 1) {
                                print 'class="show"';
                        }*/
               
?>
>
<?php
               
print $fields['field_bnr_image_fid']->content;
       
?>

</a>

dove l'if commento è parte di una prova fallita per inserire il class="show" al primo elemento estratto (inizializzazione di cont impostata in un altro template)

Mentre il temlate per Field Content: image (field_bnr_image) (ID: field_bnr_image_fid): views-view-field.tpl.php l'ho lasciato tale e quale, perche per temizzare l'output da lui prodotto ho dovuto usare il modulo custom_formatters, impostandolo cosi
<img src="[site-url]/[filefield-filepath]" alt="[filefield-alt]" title="[filefield-title]"  rel="[filefield-description]" />

Se pensi siano necessarie altre info dimmi pure

views-view-fields.tpl.php dovrebbe contenere un iterazione (foreach).
basta che prima di questo inserisci $cont=1; e alla fine del foreach $cont++
a quel punto il tuo if dovrebbe funzionare
oppure qualcosa del tipo

<?php
 
if(count($fields) == 1):
?>

Effettivamente è quello che avevo provato a fare, ma inizializzando $cont nell'override del template views-view-unformatted.tpl.php, che contiene il foreach che dicevi, ma senza successo.

Pero il tuo suggerimento mi ha fatto pensare che potevo aggirare il problema spostando il tag "ancora" in views-view-unformatted.tpl.php ottenendo quindi

<?php
// $Id: views-view-unformatted.tpl.php,v 1.6 2008/10/01 20:52:11 merlinofchaos Exp $
/**
 * @file views-view-unformatted.tpl.php
 * Default simple view template to display a list of rows.
 *
 * @ingroup views_templates
 */
?>

<div id="gallery">
<?php if (!empty($title)): ?>
  <h3><?php print $title; ?></h3>
<?php endif; ?>
<?php    $cont=1;    ?>
<?php     foreach ($rows as $id => $row): ?>
<a href="#" <?php    if ($cont == 1) { print 'class="show"'; }    ?> >
<?php    print $row;
                       
$cont++;
               
?>

</a>
<?php endforeach; ?>
<div class="caption"><div class="content"></div></div>
</div>
<div class="clear"></div>

e problema risolto!
Grazie, a buon rendere!