Back to top

Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - lejubila

Pagine: [1]
1
Grazie per la segnalazione  :)
Il progetto dove mi serviva questa funziona è attualmente in pausa.
Appena lo riprendo sicuramente proverò il componente da te suggeriti.


Ciao

2
Salve ragazzi, sto perdendo una marea di tempo nel cercare un plugin free che permetta di eseguire il login one-click tramite l'account facebook su Joomla 1.7.
I pochi che o trovato su extensions.joomla.org o non funzionano o funzionano male.


Sapete darmi un'indicazione su qualcosa che funzioni realmente? Eventualmente sarei interessato anche ad altri plug in che mi gestiscano il login con altri social network quali google, twitter, ecc..

3
Sviluppo / Re:[RISOLTO]creare feed rss categorizzati
« il: 26 Set 2011, 11:26:57 »
Non ti preoccupare, ho risolto il problema.


Per chi venisse dopo di noi la soluzione è molto semplice:


L'url che richiama il feed deve contenere la variabile
Codice: [Seleziona]
format=feed

esempio:
Codice: [Seleziona]
http://localhost/Provoloni/index.php?option=com_ristoranti&id=307&view=recensioni&format=feed

In questo modo viene richiamato il file view.feed.php relativo alla view specificata nell'url

Dentro il file view.feed.php andranno inserite le istruzioni per creare il feed.

Un esempio di view.feed.php è possibile trovarlo nel file /components/com_content/views/category/view.feed.php di joomla che pensa a creare un feed degli articoli di una categoria.


4
Sviluppo / Re:[RISOLTO]creare feed rss categorizzati
« il: 16 Set 2011, 10:07:34 »
Ciao, vedo che hai risolto il problema.
Se ci spiegassi come hai fatto sarebbe più utile per tutti  ;)


Anche io sono alla ricerca di una spiegazione su come implementare un feed rss

5
Sviluppo / Re:[Risolto] Nome controller sbagliato
« il: 10 Nov 2010, 17:27:26 »
Ho risolto perché erroneamente pensavo che il metodo getModel() del controller, se non specificato nessun parametro, restituisse in automatico il model con lo stesso nome del controller, invece non è così. getModel() va t richiamato specificando il nome del model voluto.

6
Sviluppo / [Risolto] Nome controller sbagliato
« il: 10 Nov 2010, 16:38:03 »
Salve a tutti, sto diventando matto per un problema che probabilmente è una cavolata

ho un controller come segue
Codice: [Seleziona]
class RistorantiraccomandatiControllerRistorantievent extends RistorantiraccomandatiController
{
  function __construct( )
  {
    parent::__construct();
  }


  function unpublish( )
  {
    $model =& $this->getModel( );

echo "controller = ".$this->getName();

    [cut]

  }
}

l'assegnazione del model in unpublished() con getModel() fallisce perché viene recuperato il nome del controller sbagliato, infatti eseguendo un echo di getName() viene restituito

ristorantiraccomandati

anziché

ristorantievent

Sapete darmi qualche spiegazione ?

Grazie.

7
Spulciando il codice della classe JController ho notato che nel metodo display() vengono eseguite le seguenti principali operazione:
  • creazione della view
  • settaggio del template alla view
  • creazione del model e conseguente assegnazione alla view

Quindi il metodo classico di richiamare la view da un task del controller con parent::display() ha l'effetto di creare una nuova istanza del model anche se ne era già stata creata una nel controller stesso.

Volendo invece assegnare alla view l'istanza del model già creata nel controller va scavalcato il metodo parent::display istanziando direttamente la view, assegnargli il template, assegnargli il model (quello già creato) ed eseguirne il display.
Tradotto in codice dovrebbe essere come segue:
Codice: [Seleziona]
    // Inizializza il model per le recensioni
    $model =& $this->getModel('recensioni');

    // Crea la view, assegna il model
    $document =& JFactory::getDocument();
    $viewType = $document->getType();
    $view = $this->getView("recensioni", $viewType);
    $view->setModel( $model, true );

    // Setta il template da visualizzare e lo visualizza
    $view->setLayout( JRequest::getCmd( 'layout', 'default' ) );
    $view->display();

Quanto sopra dovrebbe sostituire la più classica metodologia seguente
Codice: [Seleziona]
    JRequest::setVar('view', 'recensioni');
    parent::display();

Questa è stata l'unica soluzione che sono riuscito a trovare.

Sono bene accette soluzioni alternative specialmente se più semplici.

8
$_onlyPublished
------------------------
sicuro tu possa usare qs sintassi?

M.
In che senso ?

Nelle spiegazioni che ho scritto mi riferivo con la forma $_onlyPublished per semplicità (che comunque ho appena cambiato in $this->_onlyPublished)

Nel codice la dichiaro con
var $_onlyPublished = false;

mentre nelle altre parti del codice del model uso
$this->_onlyPublished

che a quanto mi risulta dovrebbero essere la forme corretta.

Ho sbagliato qualcosa ?

Comunque il mio dubbio era se il comportamento che ho riscontrato è giusto, ovvero la creazione nella view di una nuova istanza del model rispetto a quella usata dal controller e non il passaggio per riferimento del model tra controller e view.

Grazie,
ciao.

9
Salve a tutti,
sono alle prese con il mio primo componente e probabilmente ho un po di confusione in testa su come funziona.

Io ho un codice simile al seguente

Model
Codice: [Seleziona]
class RrModelRecensioni extends JModel
{
    var $_data;

    /**
      * Campi di ricerca
      */
    var $_id_ristorante = null;
    var $_id_utente = null;
    var $_onlyPublished = true;

    function onlyPublished( $onlyPublished=true )
    {
      $this->_onlyPublished = $onlyPublished;
      $this->_data = null;
    }

    [cut]
       .
       .
       .
       .
    [cut]

}

Controller
Codice: [Seleziona]
class RrControllerRecensioni extends RrController
{

  function display()
  {
    // Inizializza il model per le recensioni
    $model =& $this->getModel('recensioni');

    [cut...] INIZIALIZZAZIONE ALTRI MODEL ACCESSORI [...cut]


    if ( RrHelper::condizione() ) )
      $model->onlyPublished( false );

    // Assegna i model alla view
    $document =& JFactory::getDocument();
    $viewType = $document->getType();
    $view = $this->getView("recensioni", $viewType);
    $view->setModel( $model, true );

   [cut...] ASSEGNAZIONE ALTRI MODEL ALLA VIEW [...cut]

    JRequest::setVar('view', 'recensioni');

    parent::display();
  }


Come si può vedere nel controller viene richiamato onlyPublished() del model che setta la variabile $this->_onlyPublished, dopo di che viene assegnato il model alla view. La variabile $this->_onlyPublished indica al model quali dati recuperare.

Il mio problema è che quando viene eseguita la view, la variavile $this->_onlyPublished del model non ha più il valore precedentemente assegnato nel controller.

Inserendo un echo nel costruttore del model ho notato che questo viene creato due volte (una volta nel controller e l'altra nella view), cosa secondo me errata in quanto pensavo che il model venisse passato alla view per riferimento e non ricreato.

Quindi mi chiedo se questo è il comportamento corretto, o sbagli io qualche cosa ?

Se effettivamente è il comportamento corretto, come posso dal controller istruire il model su che dati recuperare successivamente nella view con una chiamata tipo $this->get("Data") ?

Spero di non essere stato troppo contorto e di essermi spiegato.

Grazie.

10
Sviluppo / Re:setError() non funziona
« il: 18 Ott 2010, 10:46:31 »
Perfetto, con
Codice: [Seleziona]
$mainframe->enqueueMessage('testo');mi funziona.

In qualche esempio avevo visto che si poteva dare anche con
Codice: [Seleziona]
setError()ma probabilmente mi sbagliavo.

Grazie.

11
Sviluppo / [RISOLTO]setError() non funziona
« il: 17 Ott 2010, 23:23:40 »
Scusate la domanda scusa ma sono alle prime armi.

Sto cercando di sviluppare il mio primo componente e nel model utilizzo

$this->setError("Messaggio di errore") ;

per visualizzare un messaggio di errore, nel template sono riportati correttamente i tag

<jdoc:include type="message" />

purtroppo però non viene visualizzato nessun messaggio di errore, non riesco a capire come mai.
Nelle varie prove di debug ho anche utilizzato nel template

<?php if ($this->getBuffer('message')) : ?>
BUFFER MESSAGGIO PIENO
<?php endif; ?>

per verificare se nel buffer sono presenti messaggi senza nessun esito.

Qualcuno mi può dare qualche suggerimento per risolvere il problema.

Grazie,
David.

12
Citazione
il submit richiamerà la view stessa che effettuerà il controllo: se fallisce ripresenta la form altrimenti istanzierà il controller ed effettuerà il salvataggio ed il redirect, .

il controllo andrebbe fatto sull'entry point, ma sul momento non mi viene in mente nient'altro.

Ho riletto, effettivamente dicevi che la view doveva eseguire il controllo, sotto però dicevi anche che il controllo andrebbe essere fatto sull'entry point. Questa seconda frase mi ha confuso, probabilmente volevi solo dire che il controllo andrebbe fatto sull'entry point ma per essere corretti e non intaccare il core base doveva essere eseguito sulla nuova view.

Grazie ancora, ciao.

13
Citazione
sì hai capito. come prima cosa ti consiglio di leggere studiare gli articoli sullo sviluppo di in componente nel wiki.

Proprio in questi giorni mi stavo leggendo una guida sulla realizzazione dei componenti, probabilmente dovevo dare priorità al wiki che mi appresterò a leggere.


Citazione
1. entry point
l'entry point è /components/com_content/content.php

2. campi hidden
l'operazione da compiere è di solito gestita dal parametro task.

3.
è nella documentazione indicata.

Solo un appunto: modificando l'entry point /components/com_content/content.php modifico una parte di joomla (sbaglio ???)

Grazie per la pazienza.

Ciao,
David.

14
Si Marco, il controllo viene eseguito nella front-end.

Quindi se ho capito bene dovrei creare una nuova versione della view article copiandola e modificando il template form in modo che al submit invece di invocare il salvataggio nel db invochi nuovamente la stessa view. Quindi nell'entry point della view eseguire i dovuti controlli, in base a questi invocare i salvataggio oppure lasciare proseguire la visualizzazione della form.

Ho capito bene ?

A questo punto mi vengono delle domande:

  • Come entry point intendi il metodo ContentViewArticle->_displayForm() del file components/com_content/views/article/article.html.php ?
  • Come faccio a dalla form ad invocare la visualizzazione view invece del salvataggio ? Ho visto che ci sono delle field hidden, forse da qui ?
  • Non so come eseguire il redirect istanziando il controller

Ciao e grazie ancora.

15
Ciao Marco e grazie del suggerimenti.

Se ho capito bene suggerisci di agire creano una nuova view invece di procedere sul fronte del plugin.

Faccio alcune precisazioni che potrebbero essere non corrette in quanto sono alle prime armi sullo siviluppo joomla.

Non ho assolutamente idea di come si possa aggiungere una view ad un componente ma immagino che questo si porti dietro la riscrittura/personalizzazione del controller e/o modello originale del componente intaccando il core base di joomla.

Forse ho detto dell cavolate !!!!

Potresti darmi qualche esempio ?

Ciao,
David.

16
Ciao mau_develop, grazie della tempestiva risposta
con onpreparecontent non ho provato ma dalla documentazione mi sabra di avere capito che non supporta valori di ritorno

Citazione
5.5.2.3 Return Value
None. Results are returned by modifying the referenced arguments.

Per quanto riguarda il messaggio di errore 500 viene fuori anche se non imposto un messaggio con setError() ma basta che faccia un return false.

Un controllo ajax lo potrei anche fare ma da un punto di vista di programmazione mi sembrava che che sviluppando un plug in che intervenisse lato sever sarebbe stato più immediato a livello di programmazione e anche un pò più sicuro. E invece ho preso una strada senza fine, è da stamani che cerco ma non trovo alcuna risposta.

Grazie ancora della risposta, spero che qualcuno mi dia un suggerimento.

Ciao.

17
Salve a tutti,

avrei bisogno di un vostro suggerimento in merito ad un plugin che sto scrivendo.
Il plugin in questione dovrebbe agire sull'editing di un'articolo in fase di conferma e impedirne il salvataggio quando determinate condizioni si verificano facendo rivisualizzare la form con l'articolo corrente e mostrando un messaggio di errore.

Per fare quanto sopra ho utilizzato l'evento onBeforeContentSave,
chiamo
Codice: [Seleziona]
$article->setError( ) per mostrare il messaggio di avvertimento
ed esco dalla funzione con un
Codice: [Seleziona]
return false
Così facendo però la form di editing dell'articolo non viene rimostrata ma esce con il classico errore 500

qui sotto riporto il codice di esempio da me fatto

Codice: [Seleziona]

  function onBeforeContentSave(&$article, $isNew) {

    // Imposto a vero per prova
    $badword_present = true;


    if ( $badword_present ) {
       $article->setError($error_message." ".implode(', '), $badword_present );

       return false;
    }

    return true;
  }

Qualcuno può darmi una mano ? Mi basta anche solo un suggerimento.

Grazie.
David.

Pagine: [1]


Web Design Bolzano Kreatif