Back to top

Autore Topic: [Risolto] Raggruppamento record in schede tab per nuovo componente.  (Letto 1843 volte)

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Buonasera
Per un sito ho scritto in php e html un archivio riviste che adesso sto trasformando in un vero e proprio componente joomla che spero poi anche di pubblicare.
L'archivio html + php sta per ora a questo link: https://ilcuoreazzurro.it/archivio-magazine-cuore-azzurro
Utilizzo e sto imparando ad ultilizzarlo al meglio il tool Joomla Component Builder.Divido le riviste per annata che vengono visualizzate in tab, nel db ho i campi per mostrarle come annata, copertina, numero, ecc.
Non riesco però ancora a raggrupparle per annata, mi si visualizzano le stesse riviste nei tab di annata.Riporto parte del codice della vista:
Codice: [Seleziona]
<table class="uk-table uk-table-hover">
        <div class="container">
         <?php $ione =1$itwo 1$p ='in';?>
            <div id="accordion" class="panel-group">
              <?php foreach ($this->items as $item): ?>
                <div class="panel panel-default">
                    <div class="panel-heading">
                        <h4 class="panel-title"><a href="#collapse<?php echo $ione?>" data-toggle="collapse" data-parent="#accordion">Campionato <?php echo $item->season?>[/url]</h4>
                    </div>
                    <div id="collapse<?php echo $itwo?>" class="panel-collapse collapse <?php echo $p?>">
                        <div class="panel-body">
                                <section id="services">
                                    <div class="row">
                                      <?php foreach ($this->items as $item): ?>
                                        <div  class=" col-lg-2 col-md-2 col-sm-4 col-xs-12 text-center">
                                            <div class="service-box"><a href="<?php echo JRoute::_(Flip_magazineHelperRoute::getMagRoute($item->slug)); ?>">
                                                <img class='book-thumb' src='<?php echo $item->cover_image?>' />
                                                <p class="text-muted">Magazine <?php echo $item->issue?></p>[/url]
                                            </div>
                                        </div>
                                     <?php endforeach; ?>
                                   </div>
                               </section>
                    </div>
                </div>
            </div>
           <?php $ione++; $itwo++; $p =''?>
          <?php endforeach; ?>         
        </div> 
     </div>
</table>
Questo parte di codice del model:
Codice: [Seleziona]
$db = JFactory::getDbo();

        // Create a new query object.
        $query = $db->getQuery(true);

        // Get from #__flip_magazine_magazine as a
        $query->select($db->quoteName(
            array('a.id','a.asset_id','a.season','a.issue','a.date_of_magazine','a.article_image','a.cover_image','a.pdf_url','a.published','a.created_by','a.modified_by','a.created','a.modified','a.version','a.hits','a.ordering'),
            array('id','asset_id','season','issue','date_of_magazine','article_image','cover_image','pdf_url','published','created_by','modified_by','created','modified','version','hits','ordering')));
        $query->from($db->quoteName('#__flip_magazine_magazine', 'a'));
        // Get where a.published is 1
        $query->where('a.published = 1');
        $query->order('a.date_of_magazine DESC');
        $query->group('a.season');

        // return the query object
        return $query;
    }
Come si vede i record vengono raggruppati per annata (campo season)
Il componente è in costruzione quì: https://sviluppo.infotecnica.eu/

Chi mi aiuta?
« Ultima modifica: 19 Apr 2020, 18:49:58 da tomtomeight »

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Raggruppamento record in schede tab
« Risposta #1 il: 07 Mar 2020, 11:09:16 »
Nessun idea?

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Raggruppamento record in schede tab
« Risposta #2 il: 16 Mar 2020, 18:31:10 »
Vedo con rammarico che nessuno è interessato a questo componente che crea una rivista sfogliabile a partire da un semplice pdf ed una immagine di copertina.Comunque io proseguo e registro in questo post gli avanzamenti.Mi sono reso conto che il primo ciclo di foreach legge tutti i record e quindi genera un tab di annata per ognuno, non vale neanche raggrupparli, allora ho creato un altra tabella per le annate e nei record dei numeri delle riviste seleziono da un elenco a discesa le annate e così si dovrebbe creare un solo tab per ogni annata.
Però incontro difficoltà a modificare la vista per scansionare due tabelle per i cicli di foreach.Tempo in questi tristi momenti purtroppo non manca per dedicarmici e proseguo imperterrito sperando ancora in qualche aiutino.
Ogni richiesta di condivisione del componente in costruzione sarà ovviamente esaudita.

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Raggruppamento record in schede tab per nuovo componente.
« Risposta #3 il: 25 Mar 2020, 10:27:34 »
Aggiornamento:
Ho fatto un passo in avanti con alcuni escamotage, giusto per proseguire nel progetto e renderlo funzionante anche se con qualche pezza per il momento.
Riporto le modifiche per avere la suddivisione delle riviste nelle rispettive annate.
Codice: [Seleziona]
<table class="uk-table uk-table-hover">
        <div class="container">
         <?php $ione =1$itwo 1$p ='in';?>
            <div id="accordion" class="panel-group">
            <?php echo $item->season_season ?>
            <?php $collections = array('2019 - 2020''2018 - 2019'?><!-- aggiunto array -->
              <?php foreach ($collections as $collection): ?>
                <div class="panel panel-default">
                    <div class="panel-heading">
                        <h4 class="panel-title"><a href="#collapse<?php echo $ione?>" data-toggle="collapse" data-parent="#accordion">Campionato <?php echo $collection?></a></h4>
                    </div>
                    <div id="collapse<?php echo $itwo?>" class="panel-collapse collapse <?php echo $p?>">
                        <div class="panel-body">
                                <section id="services">
                                  <div class ="container">
                                    <div class="row">
                                     <?php foreach ($this->items as $item): ?>
                                    <?php if($collection == $item->id_season)  { ?><!-- aggiunto filtro -->
                                        <div  class=" col-lg-2 col-md-2 col-sm-4 col-xs-12 text-center">
                                            <div class="service-box"><a href="<?php echo JRoute::_(Flip_magazineHelperRoute::getMagRoute($item->slug)); ?>">
                                                <img class='book-thumb' src='<?php echo $item->cover_image?>' />
                                                <p class="text-muted">Magazine <?php echo $item->issue?></p></a>
                                            </div>
                                        </div>
                                     <?php }; endforeach;  ?>
                                     
                                   </div>
                                 </div>
                               </section>
                    </div>
                </div>
            </div>
           <?php $ione++; $itwo++; $p =''?>
          <?php endforeach; ?>         
        </div> 

</table>
Come si vede ho aggiunto un array (provvisorio) per le annate in attesa di trovare il giusto codice per prelevare i valori dalla rispettiva tabella e poi ho aggiuntoil conseguente filtro per separare le riviste.
Sempre allo stesso link potete vedere i progressi:  https://sviluppo.infotecnica.eu
Per ora mi concentro sulle altre problematiche in cui sono incorso ma saranno oggetto di altri post.

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Finalmente ho risolto. In pratica nel model dovevo partire dalla tabella stagioni e poi fare un join  con quella delle riviste così vengono anche filtrate automaticamente le riviste alle rispettiva annate.



 



Web Design Bolzano Kreatif