Base assoluta su Come funziona un Componente

From Joomla! Documentation

Revision as of 19:58, 20 February 2022 by FuzzyBot (talk | contribs) (Updating to match new version of source page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Nederlands • ‎Nederlands (informeel)‎ • ‎eesti • ‎español • ‎français • ‎italiano • ‎português • ‎português do Brasil • ‎română • ‎русский • ‎українська • ‎فارسی • ‎हिन्दी • ‎অসমীয়া • ‎বাংলা • ‎中文(台灣)‎

Questo articolo è per principianti di Joomlaǃ; è progettato per spiegare cos'è un componente di Joomlaǃ e come funziona. Questo articolo farà riferimento ad un esempio di componente denominato Hello Worldǃ.

Cos'è un Componente di Joomlaǃ

A component is a kind of Joomla! extension. Components are the main functional units of Joomla!; they can be seen as mini-applications. An easy analogy would be that Joomla! is the operating system and the components are desktop applications. Created by a component, content is usually displayed in the center of the main content area of a template (depending on the template).

Most components have two main parts: an administrator part and a site part. The site part is what is used to render pages of your site when they are requested by your site visitors during normal site operation. The administrator part provides an interface to configure and manage different aspects of the component and is accessible through the Joomla! administrator application.

Joomla! comes with a number of core components, like the content management system, contact forms and Web Links.

See also: Module, Plugin, Template


Nel framework di Joomla!, i componenti possono essere progettati utilizzando un modello flat (restituisce il codice HTML per la pagina richiesta) o Model-View-Controller (di seguito definito MVC).

Introduzione all'MVC

MVC è un modello di progettazione di software che può essere utilizzato per organizzare il codice in modo che la logica di business e di presentazione dei dati siano separate. La premessa alla base di questo approccio è che, se la logica di business è raggruppata in una sezione, allora l'interfaccia e l'interazione utente che circonda i dati possono essere modificate e personalizzate senza dover riprogrammare la logica di business. MVC è stato originariamente sviluppato per mappare l'input tradizionale, elaborazione, l'output in una logica di architettura GUI.

Model

Il model è la parte del componente che incapsula i dati dell'applicazione. Spesso forniscono routine per gestire e manipolare i dati in modo significativo in aggiunta alle routine che recuperano i dati dal modello. In generale, la tecnica che sta sotto ai dati di accesso dev'essere incapsulata nel model. In questo modo, se un'applicazione sta per essere spostata da un sistema che utilizza un file di testo per memorizzare le informazioni a un sistema che utilizza un database, il model è il solo elemento che deve essere cambiato, non la view o il controller.

View

La view è la parte del componente utilizzata per eseguire il rendering dei dati dal model in un modo adatto all'interazione. Per un'applicazione basata sul Web, la visualizzazione è generalmente una pagina HTML restituita all'utente. La view estrae i dati dal model (che gli vengono passati dal controller) e li visualizza in un template che viene popolato e presentato all'utente. La view non modifica in alcun modo i dati, mostra solo i dati ricevuti dal model.

Controller

Il controller è responsabile della risposta alle azioni dell'utente. Nel caso di un'applicazione web, un'azione dell'utente è generalmente una richiesta di pagina. Il controller determinerà quale richiesta viene effettuata dall'utente e risponderà in modo appropriato attivando il model per manipolare i dati in modo appropriato e passando il model nella view. Il controller non visualizza i dati nel model, attiva solo metodi nel model che modificano i dati, quindi passa il model nella view che visualizza i dati.

Joomla! Spiegazione del Component Framework

Model

Nel framework Joomla, i model sono responsabili della gestione dei dati. La prima funzione che deve essere scritta per un model è una funzione get. Restituisce i dati al chiamante. Per questo esempio, il chiamante sarà la view HelloWorldViewHelloWorld. Per impostazione predefinita, il model denominato HelloWorldModelHelloWorld che risiede in site/models/helloworld.php è il model principale associato a questa vista.

Quindi diamo una rapida occhiata alle convenzioni di denominazione con un esempio, poiché le convenzioni di denominazione sono la vera magia, che fa funzionare tutto:

The class HelloWorldViewHelloWorld risiede in site/views/helloworld/view.html.php e utilizzerà la classe HelloWorldModelHelloWorld nel file site/models/helloworld.php

Quindi supponiamo solo di voler usare una view immaginaria fluffy, dovresti avere:

La classe HelloWorldViewFluffy che risiede in site/views/fluffy/view.html.php. La view utilizzerà HelloWorldModelFluffy nel file site/models/fluffy'.php. Nota: per far funzionare questo esempio è necessaria anche la schermata effettiva della vista: site/views/fluffy/tmpl/default.php. La rottura di una qualsiasi di queste convenzioni porterà a errori o a una pagina vuota.

Accesso a un Component Joomlaǃ

Per prima cosa dobbiamo accedere alla piattaforma Joomla!, a cui si accede sempre attraverso un unico punto di ingresso. Utilizzando il tuo browser web preferito, vai al seguente URL:

1 user access <yoursite>/joomla/index.php
2 administrator access <yoursite>/joomla/administrator/index.php

Hello World! example: localhost/joomla/index.php È possibile utilizzare l'URL del componente o un Menu per passare al componente. In questo articolo discuteremo dell'utilizzo dell'URL.

1 user access <yoursite>/joomla/index.php?option=com_<component_name>
2 administrator access <yoursite>/joomla/administrator/index.php?option=com_<component_name>

Hello World! esempio: localhost/joomla/index.php?option=com_helloworld

Struttura delle directory di base MVC

Components are stored in a directory within your Joomla! installation, specifically at:

  • htdocs/<path_to_joomla>/components/com_<component_name>/ .

I componenti sono memorizzati in una directory all'interno di Joomla! installazione, in particolare presso:

  • htdocs/<percorso_di_joomla>/components/com_<nome_componente>/ .

Il componente Hello World! verrebbe archiviato in htdocs/<path_to_joomla>/components/com_helloworld/. Un componente di base conterrà i seguenti file all'interno della sua directoryː

  • Un file html che è solo un file di sicurezza con un colore di sfondoː index.html
  • Un file php che rappresenta il controller stessoː controller.php
  • Un file php che carica la classe controllerː <nome_componente>.php
  • Un file php che rappresenta il model stessoː models/<component_name>.php
  • Un altro file html per il controllo in backgroundː models/index.html
  • Un file php contenente la view predefinitaː views/<nome_componente>/tmpl/default.php
  • Un file xml per aggiungere un tipo di voce di menuː views/<nome_componente>/tmpl/default.xml
  • Un altro file html per il controllo in backgroundː views/<nome_componente>/tmpl/index.html
  • Un altro file html per il controllo in backgroundː views/<component_name>/index.html
  • Un file php per visualizzare la viewː views/<component_name>/view.html.php

JEXEC

La seguente riga si trova comunemente all'inizio di Joomla! File PHP:

<?php
    defined('_JEXEC') or die('Restricted Access');

Ciò consente un punto di ingresso sicuro in Joomla! piattaforma. JEXEC contiene una spiegazione dettagliata.

Tutorial sulla progettazione di un componente MVC

Per imparare a progettare il tuo componente MVC, completa il tutorial per il tuo Joomla! versione.