[RISOLTO] Nodi + Gallery + Views Attach + NodeReference Url

8 contenuti / 0 new
Ultimo contenuto
[RISOLTO] Nodi + Gallery + Views Attach + NodeReference Url

Premesso che utilizzo drupal da oramai 3 anni e un motivo c'è,e che non voglio creare inutili e sterili polemiche,la domanda mi sorge spontanea,giunti oramai alla versione 7 il problema che riscontro ogni volta che cambio approccio nello sviluppo e cerco di spingermi oltre, è sempre e SOLO nella gestione delle immagini..

Fino ad ora,ho sempre utilizzato semplicemente cck+filefield+imagefield+imagecache e in modo semplice ho sempre realizzato i miei obiettivi.Ora invece ho un problema ben più grosso,gestire gallerie di immagini sottoforma di nodi,ed associarle ad altri nodi.

1) Ho creato 2 content type,
---------- A che altro non è che uno Story,
---------- B un content con soli campi imagefield.

2) Ho creato una referenza tra A e B con noderefence
3) Ho creato la view.

PROBLEMA La view non mi restituisce i valori di Imagefield se il formato è impostato su Immagine.
Da quello che ho capito,nodereference non è adatto a fare cio' che chiedo..Ma quindi cosa puo' fare al caso mio ?.. dopo ore ed ore a cercare su d.org e aver provato decine e decine di moduli,forse anche a causa dell'orario,non ho trovato una alternativa e sto praticamente brancolando nel buio.

Un'aiutino ?.. (non voglio nemmeno prendere in considerazione l'idea di tornare su wordpress a causa di questa mancanza eh)

Più imparo, più dubito.

Io ho fatto qualcosa di simile, con una soluzione alternativa (se vuoi vedere l'effetto vai su http://www.giovaniericonciliazione.it/gallerie_fotografiche), come segue:

- ho creato con CCK un tipo di contenuto "Galleria fotografica", con un campo "Copertina" ed uno "Raccolta immagini". Il campo "Raccolta immagini" è di tipo Image FUpload (modulo Image FUpload), settato a "multiple images per node", richiesto, collegato ad un opportuno preset di imagecache;

- Le immagini tramite Image FUpload vengono caricate fino a 100 alla volta;

- la visualizzazione della gallery, rivista tramite il modulo contemplate e un pizzico di PHP fatto in casa è:

<div class="field field-type-filefield field-field-copertina">
  <div class="field-items">
      <div class="field-item"><?php print $node->field_copertina[0]['view'] ?></div>
  </div>
</div>
<div class="field field-type-filefield field-field-raccolta-immagini">
  <h3 class="field-label">Raccolta immagini</h3>
  <div class="field-items">
<?php
  
echo '<table class="tavola_foto" id="tavola_foto_1"><tr>';
  
$colnum = 5;
  
$righe = 5;
  
$foto_x_page = $colnum * $righe;
  
$range = (array)$node->field_raccolta_immagini;
  
$cont = 0;
  
$tablenum = 1;
   foreach ((array)
$node->field_raccolta_immagini as $item){
        
$cont += 1;
      echo
"<td>".$item['view']."</td>";
     
$resto = $cont % $colnum;
     
$resto_x_page = $cont % $foto_x_page;
      if (
$resto == 0)
      {
          echo
"</tr><tr>";
      }
      if (
$resto_x_page == 0)
      {
          echo
'</tr><tr><td colspan="'.$colnum.'">';
          if (
$tablenum > 1){
              echo
'<span class="btn_prec" style="cursor:pointer" onclick="document.getElementById(\'tavola_foto_'.$tablenum.'\').style.visibility=\'hidden\';document.getElementById(\'tavola_foto_'.$tablenum.'\').style.display=\'none\';document.getElementById(\'tavola_foto_'.($tablenum-1).'\').style.visibility=\'visible\';document.getElementById(\'tavola_foto_'.($tablenum-1).'\').style.display=\'block\';">&lt;&lt;Precedente</span>';
              echo
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
          }
          echo
'<span class="btn_succ" style="cursor:pointer" onclick="document.getElementById(\'tavola_foto_'.$tablenum.'\').style.visibility=\'hidden\';document.getElementById(\'tavola_foto_'.$tablenum.'\').style.display=\'none\';document.getElementById(\'tavola_foto_'.($tablenum+1).'\').style.visibility=\'visible\';document.getElementById(\'tavola_foto_'.($tablenum+1).'\').style.display=\'block\';">Successiva&gt;&gt;</span>';
          echo
'</td>';
          if ((
$foto_x_page * $tablenum) < sizeof($range)){
           
$tablenum += 1;
            echo
'</tr></table>';
            echo
'<table id="tavola_foto_'.$tablenum.'" style="visibility:hidden; display:none">';
        }
      }
   };
   if (
sizeof($range) % $colnum > 0){
       for (
$i=1;$i<=($colnum-$resto);$i++)
       {
         echo
"<td>!</td>";
       } ;
   }
   if (
$tablenum > 1){
          echo
'</tr><tr><td colspan="'.$colnum.'">';
          echo
'<span style="cursor:pointer" onclick="document.getElementById(\'tavola_foto_'.$tablenum.'\').style.visibility=\'hidden\';document.getElementById(\'tavola_foto_'.$tablenum.'\').style.display=\'none\';document.getElementById(\'tavola_foto_'.($tablenum-1).'\').style.visibility=\'visible\';document.getElementById(\'tavola_foto_'.($tablenum-1).'\').style.display=\'block\';">&lt;&lt;Precedente</span>';
          echo
'</td>';
   }
   echo
"</tr></table>";
?>
 
  </div>
</div>

- esistono poi contenuti che linkano la gallery mediante un campo di tipo "Node reference". Qui in pratica è il nodo stesso ad essere già formattato nella sua presentation e a non richiedere viste, quindi il link è al nodo (sul sito di prima, se vuoi vedere, questa pagina: http://www.giovaniericonciliazione.it/evento/roma-gmg-2000 linka questa gallery: http://www.giovaniericonciliazione.it/galleriafotografica/gmg-roma-2000).

- Una vista invece l'ho fatta per mettere insieme tutti i contenuti di tipo "Galleria Fotografica", mostrando le rispettive copertine.

- Il di più è formattazione grafica ottenuta con Imagecache, JQuery e thickbox.

Spero possa servire...

Ciao
M.

Uhm.. cio' che hai fatto tu Catellani,l'avevo realizzato pure io,il problema è che nei contenuti con campo reference viene visualizzato solo il link alla gallery,e non le immagini... Cmq ottima idea quella di postare anche il codice che hai utilizzato..

Ho visto il video postato da Jhl,e sembra..dico sembra perchè devo testare sul campo,che sia la soluzione ideale... ora provo e vi faccio sapere :)

esiste una feature già pronta basata sul tutorial citato da John:
http://fserver.rjsteinert.com/node/3

Ottimo.. ho utilizzato il video tutorial postato da jhl aggiungendo un paio di filtri su tassonomie,e ho pure aggiunto altri tipi di content che si interfacciano tutti ad uno.. Come al solito drupal non tradisce mai :P .. anche se spesso crea un po di sconforto.. hihihihihi

Grazie bohz,ora provo anche la feature :P

EDIT: Ho modificato il titolo cosi è più facile rintracciarlo nelle ricerche a chi avesse lo stesso problema.. :)

Ragazzi bellissimo l'articolo, avrei un'esigenza un pò diversa.

ho realizzato le gallerie, con dei nodi foto che hanno come riferimento la galleria.
il risultato è questo
http://www.net1news.org/gallery/megan-fox.html

Bello e comodo non c'è che dire.

Adesso però vorrei poter richiamare queste gallerie all'interno di qualsiasi nodo.
L'esigenza è quella di poter dal nodo prendere la galleria, e non il contrario.

Esempio, mi creo un nodo nuovo, ad esempio
http://www.net1news.org/tomb-raider-3-lara-croft-sarà-angelina-jolie-o-megan-fox-foto.html

bene, invece di mandare con un link alla galleria mi piacerebbe che uscisse direttamente sotto, per farlo dovrei andare nella galleria e mettere come riferimento questo nodo, ma se lo dovessi fare per 1000 nodi dovrei creare 1000 campi reference Url e non è certo carino.

Quindi mi piacerebbe potergli dire direttamente dal nodo finale, cioè
http://www.net1news.org/tomb-raider-3-lara-croft-sarà-angelina-jolie-o-megan-fox-foto.html
di prendere la galleria Megane Fox.

Avete qualche suggerimento

Grazie mille

con queste soluzioni come posso inserire commenti sulla singola foto? (sempre in drupal 7)