Joomla.it Forum

Non solo Joomla... => Sviluppo => : james81 03 Dec 2013, 09:23:54

: Creare link menu al proprio componente
: 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
: Re:Creare link menu al proprio componente
: giovi 03 Dec 2013, 10:00:15
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>
: Re:Creare link menu al proprio componente
: james81 03 Dec 2013, 12:23:00
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"
: Re:Creare link menu al proprio componente
: giovi 03 Dec 2013, 13:22:39
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>
: Re:Creare link menu al proprio componente
: james81 03 Dec 2013, 15:29:58
ok, ho eseguito il tutto, però una volta creato e attivato , se aggiorno il frontend mi si blocca al momento del caricamento
: Re:Creare link menu al proprio componente
: giovi 03 Dec 2013, 18:33:06
spiegati meglio  ???
: Re:Creare link menu al proprio componente
: james81 03 Dec 2013, 18:41:50
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
: Re:Creare link menu al proprio componente
: giovi 03 Dec 2013, 18:49:35
liiiiiiink  :)
: Re:Creare link menu al proprio componente
: mmleoni 03 Dec 2013, 22:07:01
@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


: Re:Creare link menu al proprio componente
: james81 04 Dec 2013, 09:58:11
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
: Re:Creare link menu al proprio componente
: giovi 04 Dec 2013, 10:10:45
è attiva la visualizzazione errori? Se no attivala su massimo, deve per forza uscire qualcosa :)
: Re:Creare link menu al proprio componente
: james81 04 Dec 2013, 10:27:40
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
: Re:Creare link menu al proprio componente
: giovi 04 Dec 2013, 10:28:39
What's at line 347?
: Re:Creare link menu al proprio componente
: james81 04 Dec 2013, 10:35:05
$parts        = $function($query);

però è il file router.php di joomla 2.5

è come se non riuscisse a riscriviere l'indirizzo utilizando il sef
: Re:Creare link menu al proprio componente
: giovi 04 Dec 2013, 10:58:48
nono è qualcosa nel tuo componente. Senza codice davanti è difficile capire
: Re:Creare link menu al proprio componente
: james81 04 Dec 2013, 12:18:01
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>
: Re:Creare link menu al proprio componente
: giovi 04 Dec 2013, 19:06:51
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...?
: Re:Creare link menu al proprio componente
: mmleoni 06 Dec 2013, 09:01:59
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