[Guida] Come paginare un proprio componente

Moderator: alikon

Forum rules
Regole Forum
User avatar
Segolas
Joomla! Intern
Joomla! Intern
Posts: 66
Joined: Wed Oct 10, 2007 2:34 pm

[Guida] Come paginare un proprio componente

Postby Segolas » Tue Nov 13, 2007 10:59 am

OCCHIO: per la guida scorrere in basso

Lascio anche il post vecchio per trovarlo meglio nella "ricerca" del forum

Salve,

qualcuno sa come fare a utilizzare {mospagebreak} all'interno di un proprio componente?

O se, non si può, c'è un modo per ottenere lo stesso risultato?

(sto sviluppando con joomla 1.0.xx)
Last edited by alikon on Wed Nov 14, 2007 12:06 pm, edited 1 time in total.
Visita il mio blog a FUMETTI:
http://segolas.ilcannocchiale.it

User avatar
alikon
Joomla! Champion
Joomla! Champion
Posts: 5938
Joined: Fri Aug 19, 2005 10:46 am
Location: Roma
Contact:

Re: usare {mospagebreak} in proprio componente

Postby alikon » Tue Nov 13, 2007 11:46 am

in senso stretto  {mospagebreak}  è un plug-in  per i contenuti

quindi in teoria non può essere utilizzato as is in un componente


Sinceramente mi sfugge  il senso della paginazione  con mospagabreak in  un componente

potresti chiarire per che forse ti basta utilizzare la nobvigazione standard quelli coi numerlli per intenderci
Nicola Galgano
i know that i don't know
www.alikonweb.it

User avatar
Segolas
Joomla! Intern
Joomla! Intern
Posts: 66
Joined: Wed Oct 10, 2007 2:34 pm

Re: usare {mospagebreak} in proprio componente

Postby Segolas » Tue Nov 13, 2007 3:21 pm

eh si, intendo che io faccio una query al database e questo mi ridà parecchio testo. Anziché stamparlo tutto in una pagina avrei voluto farlo con i pulsantini classici tipo: next, previous etc etc.

La cosa la so fare in php, ma preferivo (se possibile) usare un costrutto di joomla
Visita il mio blog a FUMETTI:
http://segolas.ilcannocchiale.it

User avatar
alikon
Joomla! Champion
Joomla! Champion
Posts: 5938
Joined: Fri Aug 19, 2005 10:46 am
Location: Roma
Contact:

Re: usare {mospagebreak} in proprio componente

Postby alikon » Tue Nov 13, 2007 3:54 pm

allora non è il mospagebreak che ti serve in quanto come già detto funziona per i contenuti

devi dare un occhiata alla classe mosPageNav

che trovi nella cartella includes\pagenavigation.php

è questa la joomla way


facci sapere come procede
Nicola Galgano
i know that i don't know
www.alikonweb.it

User avatar
Segolas
Joomla! Intern
Joomla! Intern
Posts: 66
Joined: Wed Oct 10, 2007 2:34 pm

Re: usare {mospagebreak} in proprio componente

Postby Segolas » Tue Nov 13, 2007 5:25 pm

grazie per l'interessamento! Ora sono un p' stanco di codare, domani provo e ti faccio sapere
Visita il mio blog a FUMETTI:
http://segolas.ilcannocchiale.it

User avatar
pe7er
Joomla! Master
Joomla! Master
Posts: 21851
Joined: Thu Aug 18, 2005 8:55 pm
Location: Nijmegen, The Netherlands
Contact:

Re: usare {mospagebreak} in proprio componente

Postby pe7er » Wed Nov 14, 2007 1:25 am

MOD note @Segolas: Crosspost deleted. Please do not crosspost your messages. See the Forum rules: http://forum.joomla.org/index.php/topic,65.0.html
Kind Regards,
Peter Martin, Global Moderator
https://db8.nl - Joomla specialist, Nijmegen, Nederland
Developer of Options Manager Lite https://db8.eu/download/file/options-manager-lite

User avatar
Segolas
Joomla! Intern
Joomla! Intern
Posts: 66
Joined: Wed Oct 10, 2007 2:34 pm

Re: [Guida] Come paginare un proprio componente

Postby Segolas » Wed Nov 14, 2007 11:51 am

1) sorry admin, I was thinking that in different language is to different readers and so isn't it crossposting :-(

2) GRAZIE AD ALIKON PER LA DRITTA!

3) Ci sono RIUSCITO!! Il grosso problema di Joomla è che la documentazione fa abbastanza schifo, perciò si è spesso costretti a leggersi il codice. Se si riesce a capire che codice guardare, e senza alikon non ci sarei riuscito. Siccome è una cosa è per nulla cariina o piacevole, fare tutto 'sto lavoro, ecco come si fa a paginare:

Presupposti:
  • uso propel per l'accesso al database, un giorno farò un guida su come integrarlo in joomla, cmq il codice scritto cambia solo per le query.
  • Dovevo accedere alla tabella "domanda"

Ecco la funzione del file domanda.php

Code: Select all

function showMyQuestions(){
   global $my;
   // includo il file pageNavigation.php, che ha la definizione della classe mosPageNav   
   require_once( $GLOBALS['mosConfig_absolute_path'] . '/includes/pageNavigation.php' );
   // i parametri il costruttore dell'oggetto mosPageNav
       
        // il primo indica da dove iniziare a visualizzare i record, in mancanza di parametri viene
        // impostato a 0
   $limitstart = mosGetParam($_REQUEST, 'limitstart', 0);
       
       // il secondo contiene il numero *totale* di record, che va precalcolato con una query apposita
       // come già detto uso propel e tutto diventa un accesso ai metodi di un oggetto...
   $c = new Criteria();
   $c->add(DomandaPeer::AUTORE_ID, $my->id);
   $total = DomandaPeer::doCount($c);
  
        // il terzo rappresenta il numero di record da visualizzare per ogni pagina
   $limit = 3;
   // creo l'oggetto pageNav
   $pageNav = new mosPageNav( $total, $limitstart, $limit );
   
   
   //eseguo la query che mi restituirà un numero parziale di record in base a $limit e $limitstart
   //$c = new Criteria();
   //$c->add(DomandaPeer::AUTORE_ID, $my->id);
   $c->setLimit($limit);
   $c->setOffset($limitstart);
   $results = DomandaPeer::doSelect($c);
   
   // invoco la classe domada.html.php che visualizzerà i risultati (si vede che ho modificato HelloWorld? :-P )
   helloScreens::showQuestion($results, $pageNav);

}


Ed ecco il file domanda.html.php

Code: Select all

function showQuestion($results, $pageNav){   
      
                // scrive una roba tipo "Pagina 1 di 10"
      echo $pageNav->writeLeafsCounter() . "<br>";
      echo "Ecco le domande da te inserite:<br>";
               
                // è il link base che verrà usato da pageNav per creare i pulsanti "next" "prev" etc etc
      $basicLink = 'index.php?option=com_domande&task=showMyQuestions';
               
                // stampo i risultati
      foreach($results as $domanda){
         echo $domanda->getContenuto(). "<br>";
      }
      // stama i link "prev", "next" etc etc usando il $basiclink definito prima
                // la cosa buona è che limitstart viene aggiunto *automaticamente* così come
                // limit
                echo $pageNav->writePagesLinks($basicLink);
   }


Spero possa servire a qualcuno, evitandogli di prendere a pugni la tastiera (come io ho fatto :-) )
Visita il mio blog a FUMETTI:
http://segolas.ilcannocchiale.it

User avatar
alikon
Joomla! Champion
Joomla! Champion
Posts: 5938
Joined: Fri Aug 19, 2005 10:46 am
Location: Roma
Contact:

Re: [Guida] Come paginare un proprio componente

Postby alikon » Wed Nov 14, 2007 12:06 pm

troppo buono
:-[ :-[
Nicola Galgano
i know that i don't know
www.alikonweb.it


Return to “Componenti - Moduli - Plugins”

Who is online

Users browsing this forum: No registered users and 2 guests