Back to top

Autore Topic: Modifica mosMainBody()  (Letto 4950 volte)

Offline teoneo

  • Nuovo arrivato
  • *
  • Post: 21
    • Mostra profilo
Modifica mosMainBody()
« il: 10 Dic 2006, 17:57:17 »
Ciao a tutti, sono nuovo del forum (e di Joomla :-))
Sto impiegando Joomla per la realizzazione di un giornale on-line ed avrei l'esigenza di apportare alcune modifiche al flusso std del mosMainBody (o almeno ritengo si debba intervenire su questo)
Spiego meglio l'esigenza.
La dinamicità delle notizie mi deve permettere di automatizzare l'inserimento delle stesse nella home page, ossia ogni qualvolta una notizia viene pubblicata deve diventare automaticamente la prima, spostando le altre al di sotto.
Questo più o meno viene già fatto ma la mia esigenza è quella di suddividere quelle che "decadono" in categorie (attualità, cronaca, sport, ecc).
In pratica 3/4 notizie dovrebbero rimanere in primo piano sulla HOME PAGE mentre le altre dovrebbero apparire (sempre 3/4 notizie) in sezioni sottostanti sottoforma di anteprima (foto+link+testo breve)

Il tutto ovviamente in modo automatico per consentire alla redazione di scrivere solamente senza preoccuparsi del funzionamento di presentazione.
Qualcuno può indicarmi cosae come fare (se si può) ?

Grazie
Dedo

Offline grigoa

  • Abituale
  • ****
  • Post: 1952
  • Sesso: Maschio
  • Joomla is a passion
    • Mostra profilo
Re: Modifica mosMainBody()
« Risposta #1 il: 10 Dic 2006, 18:56:56 »
Ciao Teoneo benvenuto nel forum  :)
Al momento sono reduce da un meeting dei moderarori qundi troppo fuso per darti una risposta  :-\
Ci dormo sopra e ti dico ok?  ;)
L'erba voglio non cresce neppure
nel giardino del re
www.erbavoglio.info

Offline teoneo

  • Nuovo arrivato
  • *
  • Post: 21
    • Mostra profilo
Re: Modifica mosMainBody()
« Risposta #2 il: 11 Dic 2006, 10:36:49 »
Ciao Teoneo benvenuto nel forum  :)
Al momento sono reduce da un meeting dei moderarori qundi troppo fuso per darti una risposta  :-\
Ci dormo sopra e ti dico ok?  ;)


Intanto grazie.
Aggiungo allora qualche info in più.
Nel frattempo mi sono fatto un modulo che legge i contenuti (per fare una prova) e li mette in una lista.
Il che assomiglia molto a quello che vorrei (alla fine forse dovrò fare un modulo personalizzato da sostituire al mosMainBody), ma è piuttosto scarno ossia mancano link agli articoli, la sostituzione del {mosimage}; in pratica mi manca la conoscenza di come agganciarmi al flusso std di Joomla.
Insomma sono alle prime armi (non con la programmazione per fortuna) con Joomla, e forse una dritta o due potrebbe aiutarmi.
Grazie ancora



Offline teoneo

  • Nuovo arrivato
  • *
  • Post: 21
    • Mostra profilo
Re: Modifica mosMainBody()
« Risposta #3 il: 02 Gen 2007, 14:50:21 »
Ho abbandonato l'idea della modifica del mosMainBody() per cercare di costruirmi un modulo "ex novo".
Mi sono letto il devbook su Joomla che mi sembra ben fatto, ma non particolarmente esaustivo, e pertanto avrei bisogno di qualche chiarimento.
Mi sono scaricato il componente MOD_CONTENTITEM ed ho iniziato ad esaminarlo per cercare di capire come agisce.

Questo, dopo aver fatto la richiesta al DB, esegue ul LOOP sul risultato di $database->loadResultArray() e per ogni elemento ritornato esegue le seguenti istruzioni:
$row = new mosContent($database);
$row->load ($rows[$i]);

Successivamente (dopo altri test che ho ben compreso) esegue:
HTML_content::show($row, ecc......) che ritorna l'articolo formattato esattamente cone nel FrontPage.

Qualcuno mi sa dare qualche dritta su cosa esattamente viene eseguito, perchè non ho trovato informazioni ne su mosContent(xx) ne su HTML_content(xx).

Forse sono retaggi di Mambo e su Joomla si deve fare in altro modo ?.

Grazie a chi mi può rispondere.

TeoNeo

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: Modifica mosMainBody()
« Risposta #4 il: 02 Gen 2007, 15:46:10 »
Mi sono letto il devbook su Joomla che mi sembra ben fatto, ma non particolarmente esaustivo

 ??? A che proposito?


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline teoneo

  • Nuovo arrivato
  • *
  • Post: 21
    • Mostra profilo
Re: Modifica mosMainBody()
« Risposta #5 il: 02 Gen 2007, 15:55:09 »
Beh a proposito delle tre righe di codice che ho inserito nel post.
Sarei curioso di capire cosa facciano esattamente perchè neanche nella documentazione on-line di joomla ho trovato qualcosa.

Grazie
TeoNeo

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: Modifica mosMainBody()
« Risposta #6 il: 02 Gen 2007, 16:02:55 »
Qualcuno mi sa dare qualche dritta su cosa esattamente viene eseguito, perchè non ho trovato informazioni ne su mosContent(xx) ne su HTML_content(xx).

Dunque, HTML_content sarà sicuramente una classe sviluppata ad hoc per il componente in questione. Cercala nel file .html.php del componente.

mosContent invece fa parte delle API di Joomla.
E' definita nel file includes/joomla.php alla riga 2494 ed estende la classe mosDBTable.
In effetti mosContent non c'è nel devbook, ma mosDBTable sì... nella versione che sta per uscire.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline teoneo

  • Nuovo arrivato
  • *
  • Post: 21
    • Mostra profilo
Re: Modifica mosMainBody()
« Risposta #7 il: 02 Gen 2007, 17:00:57 »
Purtroppo non si tratta di un componente ma di un modulo e quindi non ha il file .html.php.
Nei due file PHP che lo compongono questa classe non esiste, mentre è definita dentro al file di JOOMLA content.html.php; quindi deduco faccia parte del pacchetto base.
Mi interessava capire un po' di più come usarla....non ho trovato nessuna documentazione a riguardo.

Per quanto riguarda invece mosContent() mi sembra di capire che devo riferirmi alla mosDBTable, giusto ?.

Grazie
TeoNeo

P.S. si potrebbe evere una dritta su come fare il debug del codice sorgente ?
Uso NuSphere come editor, ma non riesco a fare un debug decente di Joomla..

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: Modifica mosMainBody()
« Risposta #8 il: 02 Gen 2007, 17:09:30 »
Per quanto riguarda invece mosContent() mi sembra di capire che devo riferirmi alla mosDBTable, giusto ?.

Sì, come base di partenza.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline ilovephp

  • Esploratore
  • **
  • Post: 175
  • Sesso: Maschio
    • Mostra profilo
Re: Modifica mosMainBody()
« Risposta #9 il: 28 Mar 2007, 16:36:34 »
$database->loadResultArray() e per ogni elemento ritornato esegue le seguenti istruzioni:
$row = new mosContent($database);
$row->load ($rows[$i]);

scusate ragazzi ma posso usare la funzione loadObject() o loadResult() al posto di load((int)$uid) ?

la funzione (metodo) load si trovano nella classe mosDBTable che si trova nel file database /includes/

qualcuno mi sa spiegare il codice della funzione load()

   /**
   *   binds an array/hash to this object
   *   @param int $oid optional argument, if not specifed then the value of current key is used
   *   @return any result from the database operation
   */
   function load( $oid=null ) {
      $k = $this->_tbl_key;
      echo ($this->_tbl_key);


      if ($oid !== null) {
         $this->$k = $oid;
      }
      
      $oid = $this->$k;
      
      if ($oid === null) {
         return false;
      }
//Note: Prior to PHP 4.2.0, Uninitialized class variables will not be reported by get_class_vars().
      /*
      $class_vars = $this->getPublicProperties();
      foreach ($class_vars as $name => $value) {
         if ($name != $k) {
            $this->$name = $value;
         }
      }
      */
      $class_vars = get_class_vars(get_class($this));
      foreach ($class_vars as $name => $value) {
         if (($name != $k) and ($name != "_db") and ($name != "_tbl") and ($name != "_tbl_key")) {
            $this->$name = $value;
         }
      }
      
      $this->reset();
      
      $query = "SELECT *"
      . "\n FROM $this->_tbl"
      . "\n WHERE $this->_tbl_key = " . $this->_db->Quote( $oid )
      ;
      $this->_db->setQuery( $query );
      
      return $this->_db->loadObject( $this );
   }


non mi è chiara soprattutto la parte dopo il codice $class_vars

grazie mille
Consulenze per la realizzazione e personalizzazione di siti web dinamici. Inoltre, sul sito
http://www.soluzioniperilweb.it
sono disponibili manuali di sviluppo joomla.

 



Web Design Bolzano Kreatif