Come creare un sito web per conferenze con Joomla Core

Dettagli della notizia

La creazione di un sito web per conferenze (o qualsiasi altro) non inizia con la progettazione; inizia con un piano chiaro per il contenuto e la funzionalità.

Contenuto

Come sviluppatori e organizzatori, sappiamo che un bel sito è inutile senza un approccio strategicamente organizzato. In questo articolo vedremo come sfruttare al meglio Joomla Core per creare un sito web per conferenze che dia i risultati sperati.

Fase 1: Definire la struttura

Il nostro sito web della conferenza dovrebbe essere composto dalle seguenti voci di menu:

  • Pagina iniziale
  • Notizie
  • Ubicazione e sistemazione
  • Biglietti
  • Oratori
  • Programma
  • Sponsor
  • Note legali, Termini e condizioni, Informativa sulla privacy

Fase 2: Definire la funzionalità

  • Gli oratori dovrebbero essere in grado di registrarsi, presentare discorsi e modificare un profilo con foto e biografia
  • Il team dovrebbe essere in grado di rivedere e pubblicare i colloqui / gli oratori accettati

Fase 3: Definire i tipi di contenuto

Definire i tipi di contenuto è utile per decidere se è necessaria un'estensione o se Core è sufficiente.

Pagina iniziale

Banner con logo, data e posizione: Modulo personalizzato

Testo di benvenuto: Articolo come contenuto principale

Notizie: Modulo articoli

Notizie

Articoli come categoria blog

Ubicazione

Articolo unico

Biglietti

Estensione o servizio esterno

Oratori

Componente Contatti: offre una connessione tra articoli (discorsi) e utenti (relatori)

Programma

Articoli come blog di categoria (override) o Modulo articoli

Sponsor

Modulo articoli

Informazioni generali

(Note legali, Termini e condizioni, Informativa sulla privacy)

Articoli singoli

Dopo aver controllato alcune estensioni degli eventi, abbiamo deciso di utilizzare solo Core.

In questo articolo approfondirò i dettagli della "Call for Speakers".

Fase 4: Preparativi

  • Creare un gruppo di utenti “Speakers” come sottogruppo "Registered"
  • Consentire la registrazione dell'utente con l'attivazione da parte dell'utente
  • Creare una categoria "Talks" e dare al gruppo di utenti "Speakers" l'autorizzazione a creare e modificare i propri articoli
  • Creare una categoria di contatto "Speakers" e dare al gruppo di utenti "Speakers" l'autorizzazione a modificare la propria
  • Attivare il plugin "User - Contact Creator" impostando la categoria "Speakers" come predefinita e "Pubblica automaticamente il contatto" su No. Il plugin creerà automaticamente un contatto quando un utente si registra nel sito web
  • Creare una voce di menu per la registrazione
  • Crea voci di menu per il login e il logout
  • Creare un articolo "Grazie" con informazioni sui passaggi successivi e collegarvi ad esso in una voce di menu (nascosta)
  • Crea un articolo "La mia pagina" e la voce di menu corrispondente, qui pubblicheremo informazioni specifiche per l'oratore che ha effettuato l'accesso
  • Creare una voce di menu per inviare un articolo, nelle opzioni specificare la categoria "Talks" e reindirizzare l'utente alla pagina "Grazie" dopo l'invio
  • Per una migliore panoramica, inserisci le voci di menu relative agli Speakers in un menu personale (Menu speakersi) con i seguenti livelli di accesso:
    •  
    • "Registrati" -> accesso ospite
    • "Submit talk" -> accesso registrato
    • "La mia pagina" -> accesso registrato
    • "Logout" -> accesso registrato

"Grazie" -> accesso registrato e nascosto

Registrazione e login

Le funzioni principali di Joomla vanno bene e non hanno bisogno di ulteriori lavori.

Invia articolo (discorso)

Un discorso è un articolo di Joomla e la presentazione dovrebbe essere il più semplice possibile. Un discorso ha bisogno di un titolo e di una descrizione. Poiché la nostra conferenza offrirà colloqui in inglese e in tedesco, vogliamo chiedere la preferenza dell'oratore. Per questo creiamo un campo personalizzato di tipo radio con le opzioni: Inglese, tedesco e nessuna preferenza. Inoltre offriamo la possibilità di fare il talk da remoto. Qui abbiamo bisogno anche di un campo personalizzato radio con le opzioni: Live, Online e non lo so ancora.

Per facilitare la presentazione di un talk creeremo un override di com_content/form/edit.php. Nell'override rimuoviamo il layout delle schede e tutti (per il nostro caso d'uso) gli elementi non necessari e rendiamo il campo personalizzato manualmente:

<?php

/**
 * @package     Joomla.Site
 * @subpackage  com_content
 *
 * @copyright   (C) 2009 Open Source Matters, Inc. <https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Multilanguage;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Layout\LayoutHelper;
use Joomla\CMS\Router\Route;

/** @var \Joomla\Component\Content\Site\View\Form\HtmlView $this */
/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */
$wa = $this->getDocument()->getWebAssetManager();
$wa->useScript('keepalive')
    ->useScript('form.validate')
    ->useScript('com_content.form-edit');

$this->tab_name = 'com-content-form';
$this->ignore_fieldsets = ['image-intro', 'image-full', 'jmetadata', 'item_associations'];
$this->useCoreUI = true;

// Create shortcut to parameters.
$params = $this->state->get('params');

// This checks if the editor config options have ever been saved. If they haven't they will fall back to the original settings
if (!$params->exists('show_publishing_options')) {
    $params->set('show_urls_images_frontend', '0');
}
?>
<div class="edit item-page">
    <?php if ($params->get('show_page_heading')) : ?>
    <div class="page-header">
        <h1>
            <?php echo $this->escape($params->get('page_heading')); ?>
        </h1>
    </div>
    <?php endif; ?>

    <form action="<?php echo Route::_('index.php'); ?>" method="post" name="adminForm" id="adminForm" class="form-validate form-vertical">
        <fieldset>

            <?php echo $this->form->renderField('catid'); ?>

            <?php echo $this->form->renderField('title'); ?>

            <?php if (is_null($this->item->id)) : ?>
                <?php $this->form->setFieldAttribute('alias', 'type', 'hidden'); ?>
                <?php echo $this->form->renderField('alias'); ?>
            <?php endif; ?>

            <?php echo $this->form->renderField('language', 'com_fields'); ?>

            <?php echo $this->form->renderField('typ', 'com_fields'); ?>

            <?php echo $this->form->renderField('articletext'); ?>

            <?php if ($this->captchaEnabled) : ?>
                <?php echo $this->form->renderField('captcha'); ?>
            <?php endif; ?>

            <?php if ($this->item->params->get('access-change')) : ?>
                <?php echo $this->form->renderField('featured'); ?>
                <?php if ($params->get('show_publishing_options', 1) == 1) : ?>
                    <?php echo $this->form->renderField('featured_up'); ?>
                    <?php echo $this->form->renderField('featured_down'); ?>
                    <?php echo $this->form->renderField('publish_up'); ?>
                    <?php echo $this->form->renderField('publish_down'); ?>
                <?php endif; ?>
            <?php endif; ?>

            <?php if (Multilanguage::isEnabled()) : ?>
                <?php echo HTMLHelper::_('uitab.addTab', $this->tab_name, 'language', Text::_('JFIELD_LANGUAGE_LABEL')); ?>
                    <?php echo $this->form->renderField('language'); ?>
                <?php echo HTMLHelper::_('uitab.endTab'); ?>
            <?php else : ?>
                <?php echo $this->form->renderField('language'); ?>
            <?php endif; ?>

            <?php echo $this->form->renderControlFields(); ?>
        </fieldset>
        <div class="d-grid gap-2 d-sm-block mb-2">
            <button type="button" class="btn btn-primary" data-submit-task="article.apply">
                <span class="icon-check" aria-hidden="true"></span>
                <?php echo Text::_('JSAVE'); ?>
            </button>
            <button type="button" class="btn btn-primary" data-submit-task="article.save">
                <span class="icon-check" aria-hidden="true"></span>
                <?php echo Text::_('JSAVEANDCLOSE'); ?>
            </button>
            <?php if ($this->showSaveAsCopy) : ?>
                <button type="button" class="btn btn-primary" data-submit-task="article.save2copy">
                    <span class="icon-copy" aria-hidden="true"></span>
                    <?php echo Text::_('JSAVEASCOPY'); ?>
                </button>
            <?php endif; ?>
            <button type="button" class="btn btn-danger" data-submit-task="article.cancel">
                <span class="icon-times" aria-hidden="true"></span>
                <?php echo Text::_('JCANCEL'); ?>
            </button>
            <?php if ($params->get('save_history', 0) && $this->item->id) : ?>
                <?php echo $this->form->getInput('contenthistory'); ?>
            <?php endif; ?>
        </div>
    </form>
</div>

Il modulo avrà questo aspetto:

Visualizzazione modulo

Campi

Il sito web sarà almeno bilingue (inglese e tedesco). Per ottenere i campi personalizzati nelle due lingue, utilizziamo stringhe linguistiche e sostituzioni linguistiche per le etichette e i valori:

Campi

Stringhe lingua

Editor

Come puoi vedere nel modulo di invio sopra, il campo dell'editor offre pochissime opzioni di formattazione. Questo è intenzionale e lo otteniamo modificando le impostazioni nel plugin TinyMCE:

Editor TinyMCE

Il pulsante “Contenuto CMS” può essere rimosso modificando il livello di accesso dei plugin dei pulsanti dell'editor:

Pulsanti

Dopo l'invio

Dopo aver inviato una presentazione, il relatore verrà reindirizzato alla pagina “Grazie”:

Ringraziamento

Cosa succede dopo? Ve lo mostrerò nel prossimo articolo ;-) Restate sintonizzati!

Lo sviluppo del sito web della Joomla World Conference 2026 (conference.joomla.org) è quasi completato e siamo lieti di annunciare che la vendita dei biglietti inizierà a breve! Questo articolo ha illustrato la pianificazione strategica alla base di questa entusiasmante iniziativa. Ora tocca a voi partecipare. Inviate le vostre proposte di intervento e preparatevi a unirvi a noi dal 16 al 18 ottobre a Potsdam, in Germania, per un'esperienza Joomla eccezionale.

Alcuni articoli pubblicati sulla rivista Joomla Community Magazine rappresentano l'opinione personale o l'esperienza dell'autore su un argomento specifico e potrebbero non essere in linea con la posizione ufficiale del progetto Joomla.

Informazioni Articolo

Categoria:
Traduzioni Joomla Magazine
Autore:
Viviana Menzel
Pubblicato:
19 Febbraio 2026
Visualizzazioni:
298
Traduttore:
Gioacchino Cipriano
Link Articolo Originale:
https://magazine.joomla.org/all-issues/february-2026/how-to-create-a-conference-website-with-joomla-core
Livello Difficoltà:
Esperto
Versioni di Joomla:
Joomla 5.x Joomla 6.x

Altri articoli della stessa categoria