Back to top

Autore Topic: Nuovo componente: non lo vedo tra le scelte di menù  (Letto 3004 volte)

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Salve a tutti, sto sviluppando un nuovo componente per J1.7, ma non riesco a renderlo disponibile nelle scelte dei tipi di menù.

mi spiego meglio: prima la 1.5 leggeva le varie views disponibili e le mostrava all'utente, ora invece niente!
il componente è stato installato correttamente, ma quando faccio nuovo menù non mi compare nell'elenco.

probabilmente mi sono perso una stupidaggine, ma non riesco a capire cosa..

EDIT: uops! trovato http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!1.6_-_Part_03  ::)
« Ultima modifica: 20 Lug 2011, 13:05:40 da tampe125 »
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

mau_develop

  • Visitatore
Re:Nuovo componente: non lo vedo tra le scelte di menù
« Risposta #1 il: 20 Lug 2011, 20:45:42 »
...ora quando scopri come usare più controller in un componente magari spiegamelo ... io ho usato un modo fantasioso per farlo come con la 1.5... :)

M.

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Re:Nuovo componente: non lo vedo tra le scelte di menù
« Risposta #2 il: 20 Lug 2011, 23:17:40 »
oddio se mi dici così mi fai venire mille dubbi...

io nella 1.5 facevo la require del controller di volta in volta...

perchè ora non si può più fare nella 1.7?

non mi dire così, che sto diventando scemo a far funzionare un mio (mezzo) componente con la 1.7

pensa che non mi funzionano nemmeno i file di lingua..  :'(


www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

mau_develop

  • Visitatore
Re:Nuovo componente: non lo vedo tra le scelte di menù
« Risposta #3 il: 21 Lug 2011, 15:43:16 »
io nella 1.5 facevo la require del controller di volta in volta...
perchè ora non si può più fare nella 1.7?
---------------------------------------
sembra di no, ho provato in mille modi ma sembra che l'unico modo che funzioni, almeno a me, è chiamare la classe del controller nell'entry e istanziare la classe nel controller stesso, un po come se fossero "singoli".
... ma se per questo non trovo nemmeno il modo di far eseguire una task ad un pulsante di menù, se non fare il rebuild della request nel file router.php...
... sto buttando via un sacco di tempo dietro queste scemenze... mannaggia a me e quando ho promesso di fare questo lavoro per la 1.6.. finchè non esce la 1.8 e un bel "Mastering Joomla 1.8" non faccio più nulla...

M.

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Re:Nuovo componente: non lo vedo tra le scelte di menù
« Risposta #4 il: 21 Lug 2011, 18:46:41 »
Citazione
mannaggia a me e quando ho promesso di fare questo lavoro per la 1.6.. finchè non esce la 1.8 e un bel "Mastering Joomla 1.8" non faccio più nulla...
 
 M.
 
eheh ti capisco.
pensa che io avevo un componente finito, utilizzato da qualche cliente, e mi dico:
"via facciamo un po' di refactoring e facciamo uscire questa versione 2".

poi mi dico:
"dai, già che ci siamo passiamo alla 1.7, è inutile spendere tempo sul passato"

e ora mi dico:
"argh!!! ma perchè non mi sono visto un film??" -.-

il problema è che non c'è nemmeno un po' di documentazione tecnica.. api.joomla.org continua a far vedere il codice della 1.5.19 (!!!)

sembra di no, ho provato in mille modi ma sembra che l'unico modo che funzioni, almeno a me, è chiamare la classe del controller nell'entry e istanziare la classe nel controller stesso, un po come se fossero "singoli".

mhm non ho capito bene come fai..
io per ora ho risolto così, ma tieni conto che è una versione ibrida: era della 1.5 e la devo ancora testare con la 1.7, anche se sembra funzionare

Codice: [Seleziona]
//recupero il controller. se è esplicito uso quello, altrimento lo "deduco" dal layout e dalla vista
$controller = $FBsec->authorize();

require_once (JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php');

$classname    = 'JDomusController'.ucfirst($controller);

$controller = new $classname();
$controller->execute( JRequest::getWord('task'));
$controller->redirect();


il controller che chiamo è una classe che estende JController.
ma mi sa che non ti ho seguito bene, te cosa intendi per controller multipli?
mi puoi fare un esempio concreto?
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

mau_develop

  • Visitatore
Re:Nuovo componente: non lo vedo tra le scelte di menù
« Risposta #5 il: 21 Lug 2011, 19:12:22 »
cioè qs a te funziona? ... anche con il sef? con la 1.7??

... a me ha continuato a non trovare il controller che chiamavo

..adesso ci riguardo vuoi che abbia fatto qualche eresia e non me ne sia accorto? boh strano sono 2 righe in croce...

M.

Ok, funziona anche così... in pratica facevo la stessa cosa in un altro modo... c'è un però... qs come fai a farlo?

http://forum.joomla.org/viewtopic.php?t=148632
è un problema front end nel backend funziona tutto come prima
« Ultima modifica: 21 Lug 2011, 21:36:39 da mau_develop »

Offline tampe125

  • Appassionato
  • ***
  • Post: 366
    • Mostra profilo
Re:Nuovo componente: non lo vedo tra le scelte di menù
« Risposta #6 il: 22 Lug 2011, 10:16:38 »
purtroppo per questo non ti posso aiutare, perchè la mia estensione non prevedeva SEF URL (è un gestionale, per cui dovrebbe essere sempre "nascosto" ai motori di ricerca).
cmq il problema che hai te è con i link "#"?

io ho risolto brutalmente facendo una str_replace :)

cmq, visto che ormai siamo a parlare "a braccio", te utilizzi le variabili layout e view oppure passi sempre da un task?

mi spiego.
io mi sono trovato bene (almeno fin'ora) a passare sempre da un task, ovvero

Codice: [Seleziona]
function mioTask()
{
    JRequest::setVar('view', 'miaView');
    JRequest::setVar('layout', 'mioLayout');

   parent::display();
}

secondo te è un'impostazione utile oppure che può causare problemi?
te come fai?
« Ultima modifica: 22 Lug 2011, 10:19:34 da tampe125 »
www.fabbricabinaria.it
Soluzioni originali ad esigenze quotidiane

mau_develop

  • Visitatore
Re:Nuovo componente: non lo vedo tra le scelte di menù
« Risposta #7 il: 22 Lug 2011, 13:45:18 »
perchè setti una var se non la cambi?

cioè... hai visto che il config.xml ti permette di aggiungere una voce di menu, quella voce chiama una view e non un controller, quindi se ho più controller mi basta fare una getRequest della view e valorizzare il controller, la view corretta ci pensa il controller ad associarla e così pure il layout : $view = $this->getView('vista', 'html'); e display(tuolayout);

...e siamo nel default, ovvero chiamo il componente ma senza dirgli cosa fare, se devo farli fare qualcosa di particolare o la richiesta viene da un link, allora aggiungo li la task, o deve avvenire ad una determinata richiesta allora uso appunto il router aggiungendo la richiesta della task con il set come fai tu.

M.

 



Web Design Bolzano Kreatif