Back to top

Autore Topic: vista senza CRUD  (Letto 2563 volte)

mau_develop

  • Visitatore
vista senza CRUD
« il: 15 Feb 2013, 16:09:50 »
Siccome ragionare su basi non comuni è complicato e postare codice spesso è inutile uso come esempio il com_weblinks, lato ADMIN.

Supponiamo di voler una vista dove non cambi solo il template ma anche i dati che lo costruiscono esempio "weblinko"
Mi occorre un controller weblinko, un model weblinko e la view weblinko.
Non voglio il proxi a getmodel perchè il model mi serve come dico io.
Ho fatto quindi un display() nel controller/weblinko.
Forzando nel controller principale la vista di default a weblinko invece che weblinks sembra non bastare e non usa il mio weblinko/display()... così sono andato nell'entry point e ho forzato la task ovvero, brutalmente per testare, se non c'è task la task è weblinko.display
Ma non ci si infila in quel dannato display....

Offline skyline81

  • Appassionato
  • ***
  • Post: 310
    • Mostra profilo
Re:vista senza CRUD
« Risposta #1 il: 15 Feb 2013, 19:49:08 »
ciao Mau...

mi hai incuriosito con questo post e ho provato a fare quello che indicavi.

ho supposto che tu stessi usando J!2.5 (anche perchè la 3.x non l'ho ancora installata sul mio serveruccio di prova)

a me sembra funzionare (ma propendo più per aver sbagliato io a comprendere quello che chiedevi)

ad ogni modo questo quello che ho fatto:

administrator/components/com_weblinks/controllers/weblinko.php
Codice: [Seleziona]
<?php
defined
'_JEXEC' ) or die;

jimport('joomla.application.component.controller');

class 
WeblinksControllerWeblinko extends JController
{
    
}

administrator/components/com_weblinks/models/weblinko.php
Codice: [Seleziona]
<?php
defined
'_JEXEC' ) or die;

jimport'joomla.application.component.model' );

class 
WeblinksModelWeblinko extends JModel
{
}

administrator/components/com_weblinks/views/weblinko/view.html.php
Codice: [Seleziona]
<?php
defined
'_JEXEC' ) or die;

jimport'joomla.application.component.view' );

class 
WeblinksViewWeblinko extends JView
{
    public function 
display$tpl )
    {
        
parent::display$tpl );
    }
}

administrator/components/com_weblinks/views/weblinko/tmpl/default.php
Codice: [Seleziona]
Test



EDIT
_____

il percorso nella barra degli indirizzi l'ho inserito manualmente. non so se poteva essere rilevante ma preferivo avvisare  :)

« Ultima modifica: 15 Feb 2013, 19:50:40 da skyline81 »
tutti siamo utili e nessuno indispensabile... tranne il defined( '_JEXEC') or die

Offline skyline81

  • Appassionato
  • ***
  • Post: 310
    • Mostra profilo
Re:vista senza CRUD
« Risposta #2 il: 15 Feb 2013, 20:04:17 »
[OT]
Mi stavo soffermando sul fatto che il subMenu sia stato renderizzato nonostante nella vista non l'avessi messo...

il controller principale lo include nella funzione display...

corretta la mia "diagnosi"?
[/OT]
tutti siamo utili e nessuno indispensabile... tranne il defined( '_JEXEC') or die

mau_develop

  • Visitatore
Re:vista senza CRUD
« Risposta #3 il: 15 Feb 2013, 20:59:42 »
ok, la struttura è quella che ho fatto io.... manca il nocciolo della mia domanda...

se in quella view tu ora volessi es: l'elenco di tutti gli articoli content e l'elenco... di tutte le voci di menu' , insomma qualcosa per cui non risulta conveniente usare il crud istanziare mille table etc....
Dovresti usare il controller e il model...

inoltre se non ho sbagliato qualcosa (ormai sono stanco)...
-----------------------------
class WeblinksControllerWeblinko extends JController
-------------------------------
se in questa metti un costruttore o un display con un die(); ti accorgi che non la usi  ... o almeno a me faceva così

Offline skyline81

  • Appassionato
  • ***
  • Post: 310
    • Mostra profilo
Re:vista senza CRUD
« Risposta #4 il: 15 Feb 2013, 22:29:43 »
inoltre se non ho sbagliato qualcosa (ormai sono stanco)...

class WeblinksControllerWeblinko extends JController

se in questa metti un costruttore o un display con un die(); ti accorgi che non la usi  ... o almeno a me faceva così

non credo la stanchezza ti abbia ancora preso... anche a me fa la stessa cosa.
nel controller weblinko ho inserito una

Codice: [Seleziona]
function display() {
    die();
}

come hai suggerito ed in effetti non viene proprio presa in considerazione.
tutti siamo utili e nessuno indispensabile... tranne il defined( '_JEXEC') or die

Offline skyline81

  • Appassionato
  • ***
  • Post: 310
    • Mostra profilo
Re:vista senza CRUD
« Risposta #5 il: 15 Feb 2013, 22:53:55 »
aggiornamento
____________

ho eliminato (nel senso di aver cancellato il file) il controller weblinko...

il risultato è che richiamando la vista weblinko funziona ancora tutto... :o
tutti siamo utili e nessuno indispensabile... tranne il defined( '_JEXEC') or die

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:vista senza CRUD
« Risposta #6 il: 17 Feb 2013, 14:55:45 »
Il punto dovrebbe essere che il componente viene inizializzato nel file weblinks.php che si occupa di settare il controller di default, cioe weblinks, nei controller interni dopo ci entri solo con l'apposito task, quindi ti trovi sempre ad usare il display di weblinks. Poi ci sta che mi sbagli,
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

mau_develop

  • Visitatore
Re:vista senza CRUD
« Risposta #7 il: 17 Feb 2013, 15:33:55 »
no no è giusto ciò che dici.. il problema è che o mi sfugge qualcosa o diventa impossibile "mixare" i due tipi di uso del fw.
Non ho capito se è un problema relativo al legacy visto che prima non c'era nessun problema, in pratica non dovrebbe esistere il controller principale.... adesso provo a registrare la task per vedere se riesco a fargli capire di usare quel controller e quel metodo... se vi vengono idee..

mau_develop

  • Visitatore
Re:vista senza CRUD
« Risposta #8 il: 19 Feb 2013, 15:55:37 »
ma che vuol dire??!!

Controllers only support one executable task per class via the execute method. This differs from the legacy JController class which mapped tasks to methods in a single class. Messages and redirection are not always required so have been dropped in this base class. They can be provided in a downstream class to suit individual applications. Likewise, methods to create models and views have been dropped in favor of using application or package factory classes.

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:vista senza CRUD
« Risposta #9 il: 19 Feb 2013, 16:11:28 »
a boh, forse è legato al fatto che prima nella cartella application c'erano tutti i file del MVC ed ora invece sono tutti separati, ma e solo una supposizione
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

 



Web Design Bolzano Kreatif