Joomla.it Forum
Non solo Joomla... => Sviluppo => : james81 03 Dec 2013, 09:23:54
-
Salve a tutti!
ho creato un piccolo componente pej j25 col quale visualizzo tramite varie view dei prodotti da un db, ora volevo crere per ogni view una voce nel menu, e seguendo le guide, ho inserito all'iterno della cartella view un file default.xml, però non ho ben capito il funzionamento del file o comunque come compilarlo...potete aiutarmi?
Grazie
-
Ciao, la voce di menu la vuoi nel frontend o nel backend? Perché è differente il modo in cui si implementa. Nel secondo caso devi agire direttamente sul file tuaEstensione.xml nel pacchetto di installazione!
Nel primo caso invece inserisci un file default.xml nella cartella tmpl della view (come scritto qui: http://docs.joomla.org/J2.5:Developing_a_MVC_Component/Adding_a_menu_type_to_the_site_part ) in cui inserisci <?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="NOME_DELLA_VIEW_DA_TRADURRE">
<message>
<![CDATA[DESCRIZIONE_DELLA_VIEW_DA_TRADURRE]]>
</message>
</layout>
</metadata>
-
si tratta del frontend, quello che non capisco é: cosa devo inserire nella "DESCRIZIONE_DELLA_VIEW_DA_TRADURRE" , perchè mentre nel title devo iscerisco il nome che dopo vedrò quando creo il menu, nella "CDATA" non ho capito
puoi farmi un'esempio ? il mio componente si chiama "COM_GIOCATTOLI" e la view è "tuttirossi"
-
Sono testi liberi, uno relativo al nome della view ed uno alla descrizione. Puoi inserire elenco giocattoli e come descrizione questa vista mostra un elenco di giocattoli. Non c'è bisogno di usare necessariamente le stringhe traducibili:
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="Lista giocattoli">
<message>
Questa vista mostra elenca dei giocattoli</message>
</layout>
</metadata>
-
ok, ho eseguito il tutto, però una volta creato e attivato , se aggiorno il frontend mi si blocca al momento del caricamento
-
spiegati meglio ???
-
praticamente dopo aver cerato la voce del menu, mi sposto nel frontend e aggiorno la pagina....mi visualizza l'header e altri moduli....ma poi si bloccca quando in teoria dovrebbe caricarmi il menu contenente la nuova voce creata
-
liiiiiiink :)
-
@james81
premesso che ti consiglio di usare sempre e comunque la dichiarazione CDATA, stai cercando nel posto sbagliato.
se l'xml della descrizione della view fosse sbagliato, non vedresti il nome e la descrizione nel back end, ma solo il nome 'php' della view nella creazione della voce di menù. da front end questo file è irrilevante.
attiva il debug e verifica il codice eseguito nella pagina.
ciao,
marco
-
purtroppo il sito è ancora in locale ,
comunque stò uasnto il CDATA, e attivo il debug ma non riesco nemmeno a visulizzaro, in quanto il caricamento della pagina e la sua visualizzazione si ferma proprio al momento della visualizzazione/caricamento del menu con la voce incriminata e da li in poi non carica + nulla
-
è attiva la visualizzazione errori? Se no attivala su massimo, deve per forza uscire qualcosa :)
-
perfetto!!!...ho attivato la visualizzazione errori e mi ha riportato questo:
giocattoliBuildRoute() in /web/htdocs/www.sito.it/home/includes/router.php on line 347
-
What's at line 347?
-
$parts = $function($query);
però è il file router.php di joomla 2.5
è come se non riuscisse a riscriviere l'indirizzo utilizando il sef
-
nono è qualcosa nel tuo componente. Senza codice davanti è difficile capire
-
controller.php
class GiocattoliController extends JController
{
public function Rossi($cachable = false, $urlparams = false)
{
// set default view if not set
JRequest::setVar('view', JRequest::getCmd('view', 'rossi'));
// call parent behavior
parent::display($cachable);
}
model/rossi.php
jimport( 'joomla.application.component.modellist' );
class GiocattoliModelRossi extends JModelList
{
function getListQuery()
{
$db = JFactory::getDBO();
$query = $db->getQuery(true);
qui ho la query
}
}
views/Rossi
jimport( 'joomla.application.component.view' );
class GiocattoliViewRossi extends JView
{
function display($tpl = null)
{
$this->items = $this->get('Items');
parent::display($tpl);
}
}
views/Rossi/tmp
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="Lista giocattoli">
<message><![CDATA[Lista giocattoli rossi]]></message>
</layout>
</metadata>
-
giocattoliBuildRoute() in /web/htdocs/www.sito.it/home/includes/router.php on line 347
ma l'errore è solo questo? non dice altro? ad esempio syntax error, warning, ecc...?
-
in realtà dovrebbe essere GiocattoliBuildRoute() per stare alla naming convenction di J2.5, comunque il problema dovrebbe essere nel file router.php nella directory del tuo componente, non in quello di di libreria di joomla.
inserisci un error_reporting(-1) all'inzio del tuo router.
ciao