stable version

This commit is contained in:
2025-08-26 11:16:08 +02:00
parent 39fb002d4c
commit 1814530c64
14 changed files with 370 additions and 218 deletions

View File

@ -1,44 +0,0 @@
<?php
namespace Pcrt\Component\Circolari;
\defined('_JEXEC') or die;
use Joomla\CMS\Extension\Service\Provider\ServiceProviderInterface;
use Joomla\CMS\MVC\Factory\MvcFactoryInterface;
use Joomla\CMS\Dispatcher\ComponentDispatcherFactoryInterface;
use Joomla\CMS\Extension\ComponentInterface;
use Joomla\CMS\Extension\ExtensionServiceInterface;
use Joomla\CMS\Dispatcher\ComponentDispatcher;
use Psr\Container\ContainerInterface;
use Joomla\CMS\Extension\BootableExtensionInterface;
use Joomla\CMS\Extension\LazyServiceableTrait;
use Joomla\CMS\HTML\Registry;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Uri\Uri;
use Joomla\CMS\Factory;
use Joomla\CMS\Router\Router;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Router\SiteRouter;
use Joomla\CMS\Extension\Service\Provider\BootableServiceProviderInterface;
final class Provider implements ServiceProviderInterface
{
public function register(ContainerInterface \$container): void
{
\$container->get(ComponentDispatcherFactoryInterface::class)
->createDispatcher('com_circolari')
->registerView('circolares', \Pcrt\Component\Circolari\Administrator\View\Circolares\HtmlView::class)
->registerView('firmetipi', \Pcrt\Component\Circolari\Administrator\View\Firmetipi\HtmlView::class);
}
}

View File

@ -15,16 +15,29 @@
<field name="modified_by" type="modifiedby" default="0" label="JGLOBAL_FIELD_MODIFIED_BY_LABEL" description="JGLOBAL_FIELD_MODIFIED_BY_DESC" hidden="true" hint="COM_CIRCOLARI_FORM_LBL_CIRCOLARE_MODIFIED_BY"/>
<field name="title" filter="safehtml" type="text" label="JGLOBAL_TITLE" description="JFIELD_TITLE_DESC" hint="COM_CIRCOLARI_FORM_LBL_CIRCOLARE_TITLE"/>
<field name="description" filter="safehtml" type="textarea" label="COM_CIRCOLARI_FORM_LBL_CIRCOLARE_DESCRIPTION" description="COM_CIRCOLARI_FORM_DESC_CIRCOLARE_DESCRIPTION" hint="COM_CIRCOLARI_FORM_LBL_CIRCOLARE_DESCRIPTION"/>
<field name="attachment" filter="safehtml" type="text" label="COM_CIRCOLARI_FORM_LBL_CIRCOLARE_ATTACHMENT" description="COM_CIRCOLARI_FORM_DESC_CIRCOLARE_ATTACHMENT" hint="COM_CIRCOLARI_FORM_LBL_CIRCOLARE_ATTACHMENT"/>
<field name="image" filter="safehtml" type="text" label="COM_CIRCOLARI_FORM_LBL_CIRCOLARE_IMAGE" description="COM_CIRCOLARI_FORM_DESC_CIRCOLARE_IMAGE" hint="COM_CIRCOLARI_FORM_LBL_CIRCOLARE_IMAGE"/>
<field name="attachment" type="media"
label="COM_CIRCOLARI_FIELD_ATTACHMENT_LABEL"
directory="documents/circolari"
preview="false"
upload="true"
required="false" />
<field name="image" type="media"
label="COM_CIRCOLARI_FIELD_IMAGE_LABEL"
directory="images/circolari"
preview="true"
upload="true"
required="false"
image="true" />
<field name="version_note" type="text" label="JGLOBAL_FIELD_VERSION_NOTE_LABEL" description="JGLOBAL_FIELD_VERSION_NOTE_DESC" class="inputbox" size="45" labelclass="control-label"/>
</fieldset>
<fields name="params">
<fieldset name="firma_fields" label="Firma">
<field name="firma_obbligatoria" type="radio" label="Firma Obbligatoria" default="0">
<option value="1"></option>
<option value="0">No</option>
</field>
<field name="scadenza" type="calendar" label="Data Scadenza Firma" format="%Y-%m-%d"/>
</fieldset>
</fields><fieldset name="basic" label="COM_CIRCOLARI_FIELDSET_BASIC"><field name="tipologia_firma_id" type="sql" label="Tipologia Firma" query="SELECT id AS value, nome AS text FROM #__circolari_firmetipi WHERE state = 1 ORDER BY nome" key_field="value" value_field="text" class="form-select" required="false" description="Seleziona la tipologia di firma richiesta per questa circolare."/></fieldset></form>
<fields name="params">
<fieldset name="firma_fields" label="Firma">
</fieldset>
</fields>
<fieldset name="basic" label="COM_CIRCOLARI_FIELDSET_BASIC"><field name="tipologia_firma_id" type="sql" label="Tipologia Firma" query="SELECT id AS value, nome AS text FROM #__circolari_firmetipi WHERE state = 1 ORDER BY nome" key_field="value" value_field="text" class="form-select" required="false" description="Seleziona la tipologia di firma richiesta per questa circolare."/></fieldset></form>

View File

@ -0,0 +1,4 @@
<form>
<field name="etichetta" type="text" label="Etichetta" required="true" />
<field name="ordering" type="number" label="Ordine" default="0" />
</form>

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<form>
<fields name="filter">
<field name="search" type="text" description="COM_HIGHLIGHTS_SEARCH_FILTER_SUBMIT"
<field name="search" type="text" description="COM_CIRCOLARI_SEARCH_FILTER_SUBMIT"
label="COM_USERS_FILTER_SEARCH_DESC"
class="js-stools-search-string" />
<field name="state"
type="status"
label="COM_HIGHLIGHTS_FILTER_STATE"
description="COM_HIGHLIGHTS_FILTER_STATE_DESC"
label="COM_CIRCOLARI_FILTER_STATE"
description="COM_CIRCOLARI_FILTER_STATE_DESC"
onchange="this.form.submit();">
<option value="">JOPTION_SELECT_PUBLISHED</option>
</field>
@ -19,20 +19,20 @@
<field name="fullordering"
type="list"
label="COM_HIGHLIGHTS_LIST_FULL_ORDERING"
description="COM_HIGHLIGHTS_LIST_FULL_ORDERING_DESC"
label="COM_CIRCOLARI_LIST_FULL_ORDERING"
description="COM_CIRCOLARI_LIST_FULL_ORDERING_DESC"
onchange="this.form.submit();"
default="a.id DESC"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.id ASC">COM_HIGHLIGHTS_ID_ASC</option><option value="a.id DESC">COM_HIGHLIGHTS_ID_DESC</option><option value="a.state ASC">COM_HIGHLIGHTS_STATE_ASC</option><option value="a.state DESC">COM_HIGHLIGHTS_STATE_DESC</option><option value="a.ordering ASC">COM_HIGHLIGHTS_ORDERING_ASC</option><option value="a.ordering DESC">COM_HIGHLIGHTS_ORDERING_DESC</option><option value="a.nome ASC">COM_HIGHLIGHTS_NOME_ASC</option><option value="a.nome DESC">COM_HIGHLIGHTS_NOME_DESC</option><option value="a.lingua ASC">COM_HIGHLIGHTS_LINGUA_ASC</option><option value="a.lingua DESC">COM_HIGHLIGHTS_LINGUA_DESC</option>
<option value="a.id ASC">COM_CIRCOLARI_ID_ASC</option><option value="a.id DESC">COM_CIRCOLARI_ID_DESC</option><option value="a.state ASC">COM_CIRCOLARI_STATE_ASC</option><option value="a.state DESC">COM_CIRCOLARI_STATE_DESC</option><option value="a.ordering ASC">COM_CIRCOLARI_ORDERING_ASC</option><option value="a.ordering DESC">COM_CIRCOLARI_ORDERING_DESC</option><option value="a.nome ASC">COM_CIRCOLARI_NOME_ASC</option><option value="a.nome DESC">COM_CIRCOLARI_NOME_DESC</option><option value="a.lingua ASC">COM_CIRCOLARI_LINGUA_ASC</option><option value="a.lingua DESC">COM_CIRCOLARI_LINGUA_DESC</option>
</field>
<field name="limit"
type="limitbox"
label="COM_HIGHLIGHTS_LIST_LIMIT"
description="COM_HIGHLIGHTS_LIST_LIMIT_DESC"
label="COM_CIRCOLARI_LIST_LIMIT"
description="COM_CIRCOLARI_LIST_LIMIT_DESC"
class="input-mini"
default="25"
onchange="this.form.submit();"

View File

@ -14,6 +14,13 @@
<field name="created_by" type="createdby" default="0" label="JGLOBAL_FIELD_CREATED_BY_LABEL" description="JGLOBAL_FIELD_CREATED_BY_DESC" hidden="true" hint="COM_HIGHLIGHTS_FORM_LBL_ETICHETTA_CREATED_BY"/>
<field name="modified_by" type="modifiedby" default="0" label="JGLOBAL_FIELD_MODIFIED_BY_LABEL" description="JGLOBAL_FIELD_MODIFIED_BY_DESC" hidden="true" hint="COM_HIGHLIGHTS_FORM_LBL_ETICHETTA_MODIFIED_BY"/>
<field name="nome" filter="safehtml" type="text" label="COM_HIGHLIGHTS_FORM_LBL_ETICHETTA_NOME" description="COM_HIGHLIGHTS_FORM_DESC_ETICHETTA_NOME" hint="COM_HIGHLIGHTS_FORM_LBL_ETICHETTA_NOME"/>
<field name="descrizione" filter="safehtml" type="textarea" label="Descrizione" hint="Descrizione"/>
<field name="bottoni_firma" type="subform"
formsource="administrator/components/com_circolari/forms/fields/bottoni_firma.xml"
multiple="true"
label="Bottoni della Firma"
description="Aggiungi uno o più bottoni personalizzati per questa firma." />
<field name="lingua" type="contentlanguage" label="COM_HIGHLIGHTS_FORM_LBL_ETICHETTA_LINGUA" description="COM_HIGHLIGHTS_FORM_DESC_ETICHETTA_LINGUA" hint="COM_HIGHLIGHTS_FORM_LBL_ETICHETTA_LINGUA">
<option value="*">JALL</option>
</field>

View File

@ -1,43 +1,109 @@
COM_CIRCOLARI = "Circolari"
COM_CIRCOLARI_ITEM_SAVED_SUCCESSFULLY = "Item saved successfully"
COM_CIRCOLARI_ITEM_DELETED_SUCCESSFULLY = "Item deleted successfully"
COM_CIRCOLARI_ITEM_DELETED_UNSUCCESSFULLY = "Could not delete item"
COM_CIRCOLARI_ITEM_DOESNT_EXIST = "Item does not exist"
COM_CIRCOLARI_ITEM_NOT_LOADED = "Could not load the item"
COM_CIRCOLARI_VIEW_FILE = "[View File]"
COM_CIRCOLARI_ADD_ITEM = "Add"
COM_CIRCOLARI_EDIT_ITEM = "Edit"
COM_CIRCOLARI_DELETE_ITEM = "Delete"
COM_CIRCOLARI_DELETE_MESSAGE = "Are you sure that you want delete this item?"
COM_CIRCOLARI_DELETE_CONFIRM = "You're about to delete the item <strong>#%s</strong>. Are you sure?"
COM_CIRCOLARI_PUBLISH_ITEM = "Publish"
COM_CIRCOLARI_UNPUBLISH_ITEM = "Unpublish"
COM_CIRCOLARI_NO_ITEMS = "There are no items in the list"
COM_CIRCOLARI_SEARCH_TOOLS = "Search Tools"
COM_CIRCOLARI_SEARCH_TOOLS_DESC = ""
COM_CIRCOLARI="Circolari"
COM_CIRCOLARI_COMPONENT_LABEL="Circolari"
COM_CIRCOLARI_CONFIGURATION="Circolari Configuration"
COM_CIRCOLARI_ACCESS_HEADING="Access"
COM_CIRCOLARI_COMPONENT_DESC=""
COM_CIRCOLARI_XML_DESCRIPTION=""
COM_CIRCOLARI_N_ITEMS_ARCHIVED="%d items successfully archived"
COM_CIRCOLARI_N_ITEMS_ARCHIVED_1="%d item successfully archived"
COM_CIRCOLARI_N_ITEMS_CHECKED_IN_0="No item successfully checked in"
COM_CIRCOLARI_N_ITEMS_CHECKED_IN_1="%d item successfully checked in"
COM_CIRCOLARI_N_ITEMS_CHECKED_IN_MORE="%d items successfully checked in"
COM_CIRCOLARI_N_ITEMS_DELETED="%d items successfully deleted"
COM_CIRCOLARI_N_ITEMS_DELETED_1="%d item successfully deleted"
COM_CIRCOLARI_N_ITEMS_PUBLISHED="%d items successfully published"
COM_CIRCOLARI_N_ITEMS_PUBLISHED_1="%d item successfully published"
COM_CIRCOLARI_N_ITEMS_TRASHED="%d items successfully trashed"
COM_CIRCOLARI_N_ITEMS_TRASHED_1="%d item successfully trashed"
COM_CIRCOLARI_N_ITEMS_UNPUBLISHED="%d items successfully unpublished"
COM_CIRCOLARI_N_ITEMS_UNPUBLISHED_1="%d item successfully unpublished"
COM_CIRCOLARI_NO_ITEM_SELECTED="No items selected"
COM_CIRCOLARI_SAVE_SUCCESS="Item successfully saved"
COM_CIRCOLARI_ITEM_ID_SELECT_LABEL="Select the item ID"
COM_CIRCOLARI_ITEM_ID_SELECT_LABEL_FORM="Select the Item ID to Edit (Set up as 0 if you want to set up as add form)"
COM_CIRCOLARI_FIELDSET_ITEM_ID_SELECT_LABEL="Required Settings"
COM_CIRCOLARI_FILTER_SELECT_LABEL=" - Select %s - "
COM_CIRCOLARI_TEST_LABEL="Test label"
COM_CIRCOLARI_FIELDSET_RULES="Permissions"
COM_CIRCOLARI_FROM_FILTER="From %s"
COM_CIRCOLARI_TO_FILTER="To %s"
COM_CIRCOLARI_VIEW_FILE="[View File]"
COM_CIRCOLARI_ITEMS_SUCCESS_DUPLICATED="Items successfully duplicated"
COM_CIRCOLARI_SEARCH_FILTER_SUBMIT = "Search"
COM_CIRCOLARI_SEARCH_FILTER_CLEAR = "Clear"
COM_CIRCOLARI_SEARCH_FILTER_DATE_FORMAT = "Dates should be in this format: \"YYYY-MM-DD\". Some filter fields have been ignored."
COM_CIRCOLARI_SEARCH_TOOLS = "Search Tools"
COM_CIRCOLARI_SEARCH_TOOLS_DESC = "Filter the list items"
COM_CIRCOLARI_SEARCH_FILTER_CLEAR = "Clear filter"
COM_CIRCOLARI_TITLE_FIRMETIPI = "Firme"
COM_CIRCOLARI_TAB_ETICHETTA = "Firma"
COM_CIRCOLARI_FIELDSET_ETICHETTA="Firma"
COM_HIGHLIGHTS_FORM_LBL_ETICHETTA_NOME="Nome"
COM_HIGHLIGHTS_FORM_DESC_ETICHETTA_NOME="Nome"
COM_CIRCOLARI_FIELD_TIPOLOGIA_FIRMA_LABEL="Tipologia"
COM_CIRCOLARI_XML_DESCRIPTION = ""
COM_CIRCOLARI_ERROR_MESSAGE_NOT_AUTHORISED = "You don't have permission to access this. Please contact a website administrator if this is incorrect."
COM_CIRCOLARI_TITLE_CIRCOLARES = "Circolari"
COM_CIRCOLARI_CIRCOLARES_ID = "ID"
COM_CIRCOLARI_CIRCOLARES_STATE = "State"
COM_CIRCOLARI_CIRCOLARES_ORDERING = "Order"
COM_CIRCOLARI_CIRCOLARES_CHECKED_OUT = "N/A"
COM_CIRCOLARI_CIRCOLARES_CHECKED_OUT_TIME = "N/A"
COM_CIRCOLARI_CIRCOLARES_CREATED_BY = "Created by"
COM_CIRCOLARI_CIRCOLARES_MODIFIED_BY = "Modified by"
COM_CIRCOLARI_CIRCOLARES_TITLE = "Title"
COM_CIRCOLARI_CIRCOLARES_DESCRIPTION = "Description"
COM_CIRCOLARI_CIRCOLARES_ATTACHMENT = "Alle"
COM_CIRCOLARI_CIRCOLARES_IMAGE = "Image"
COM_CIRCOLARI_ID_DESC = "ID Descending"
COM_CIRCOLARI_STATE_DESC = "State Descending"
COM_CIRCOLARI_ORDERING_DESC = "Order Descending"
COM_CIRCOLARI_CHECKED_OUT_DESC = "N/A Descending"
COM_CIRCOLARI_CHECKED_OUT_TIME_DESC = "N/A Descending"
COM_CIRCOLARI_CREATED_BY_DESC = "Created by Descending"
COM_CIRCOLARI_MODIFIED_BY_DESC = "Modified by Descending"
COM_CIRCOLARI_TITLE_DESC = "Title Descending"
COM_CIRCOLARI_DESCRIPTION_DESC = "Description Descending"
COM_CIRCOLARI_ATTACHMENT_DESC = "Alle Descending"
COM_CIRCOLARI_IMAGE_DESC = "Image Descending"
COM_CIRCOLARI_ID_ASC = "ID Ascending"
COM_CIRCOLARI_STATE_ASC = "State Ascending"
COM_CIRCOLARI_ORDERING_ASC = "Order Ascending"
COM_CIRCOLARI_CHECKED_OUT_ASC = "N/A Ascending"
COM_CIRCOLARI_CHECKED_OUT_TIME_ASC = "N/A Ascending"
COM_CIRCOLARI_CREATED_BY_ASC = "Created by Ascending"
COM_CIRCOLARI_MODIFIED_BY_ASC = "Modified by Ascending"
COM_CIRCOLARI_TITLE_ASC = "Title Ascending"
COM_CIRCOLARI_DESCRIPTION_ASC = "Description Ascending"
COM_CIRCOLARI_ATTACHMENT_ASC = "Alle Ascending"
COM_CIRCOLARI_IMAGE_ASC = "Image Ascending"
COM_CIRCOLARI_TITLE_CIRCOLARE = "Circolari"
COM_CIRCOLARI_LEGEND_CIRCOLARE = "Circolari"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_ID = "ID"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_ID = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_STATE = "State"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_STATE = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_ORDERING = "Order"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_ORDERING = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_CHECKED_OUT = "N/A"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_CHECKED_OUT = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_CHECKED_OUT_TIME = "N/A"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_CHECKED_OUT_TIME = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_CREATED_BY = "Created by"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_CREATED_BY = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_MODIFIED_BY = "Modified by"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_MODIFIED_BY = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_TITLE = "Title"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_TITLE = ""
COM_CIRCOLARI_TAB_CIRCOLARI = "Circolari"
COM_CIRCOLARI_FIELDSET_CIRCOLARI = "Circolari"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_DESCRIPTION = "Description"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_DESCRIPTION = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_ATTACHMENT = "Attachment"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_ATTACHMENT = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_IMAGE = "Image"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_IMAGE = ""
COM_CIRCOLARI_ADD_ITEM_TITLE = "Add"
COM_CIRCOLARI_EDIT_ITEM_TITLE = "Edit %s"
COM_CIRCOLARI_ACTION_PERMISSIONS_LABEL = "Permissions"
COM_CIRCOLARI_VALIDATION_FORM_FAILED = "Invalid form"
COM_CIRCOLARI_CHECKEDIN_SUCCESSFULLY = "Item successfully checked in"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_ID="ID"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_STATE="State"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_ORDERING="Order"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_CHECKED_OUT="N/A"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_CHECKED_OUT_TIME="N/A"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_CREATED_BY="Created by"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_MODIFIED_BY="Modified by"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_TITLE="Title"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_DESCRIPTION="Description"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_ATTACHMENT="Attachment"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_IMAGE="Image"

View File

@ -1,4 +1,5 @@
COM_CIRCOLARI = "Circolari"
COM_CIRCOLARI_XML_DESCRIPTION = ""
COM_CIRCOLARI_TITLE_CIRCOLARES="Circolari"
COM_CIRCOLARI="Circolari"
COM_CIRCOLARI_MENU_CIRCOLARE="Circolare (singola)"
COM_CIRCOLARI_MENU_CIRCOLARE_DESC="Mostra il dettaglio di una circolare."
COM_CIRCOLARI_FIELD_ID_LABEL="ID circolare"
COM_CIRCOLARI_FIELD_ID_DESC="Lascia vuoto per usare la voce come contenitore (Itemid)."

View File

@ -1,43 +1,108 @@
COM_CIRCOLARI = "Circolari"
COM_CIRCOLARI_ITEM_SAVED_SUCCESSFULLY = "Item saved successfully"
COM_CIRCOLARI_ITEM_DELETED_SUCCESSFULLY = "Item deleted successfully"
COM_CIRCOLARI_ITEM_DELETED_UNSUCCESSFULLY = "Could not delete item"
COM_CIRCOLARI_ITEM_DOESNT_EXIST = "Item does not exist"
COM_CIRCOLARI_ITEM_NOT_LOADED = "Could not load the item"
COM_CIRCOLARI_VIEW_FILE = "[View File]"
COM_CIRCOLARI_ADD_ITEM = "Add"
COM_CIRCOLARI_EDIT_ITEM = "Edit"
COM_CIRCOLARI_DELETE_ITEM = "Delete"
COM_CIRCOLARI_DELETE_MESSAGE = "Are you sure that you want delete this item?"
COM_CIRCOLARI_DELETE_CONFIRM = "You're about to delete the item <strong>#%s</strong>. Are you sure?"
COM_CIRCOLARI_PUBLISH_ITEM = "Publish"
COM_CIRCOLARI_UNPUBLISH_ITEM = "Unpublish"
COM_CIRCOLARI_NO_ITEMS = "There are no items in the list"
COM_CIRCOLARI_SEARCH_TOOLS = "Search Tools"
COM_CIRCOLARI_SEARCH_TOOLS_DESC = ""
COM_CIRCOLARI="Circolari"
COM_CIRCOLARI_COMPONENT_LABEL="Circolari"
COM_CIRCOLARI_CONFIGURATION="Circolari Configuration"
COM_CIRCOLARI_ACCESS_HEADING="Access"
COM_CIRCOLARI_COMPONENT_DESC=""
COM_CIRCOLARI_XML_DESCRIPTION=""
COM_CIRCOLARI_N_ITEMS_ARCHIVED="%d items successfully archived"
COM_CIRCOLARI_N_ITEMS_ARCHIVED_1="%d item successfully archived"
COM_CIRCOLARI_N_ITEMS_CHECKED_IN_0="No item successfully checked in"
COM_CIRCOLARI_N_ITEMS_CHECKED_IN_1="%d item successfully checked in"
COM_CIRCOLARI_N_ITEMS_CHECKED_IN_MORE="%d items successfully checked in"
COM_CIRCOLARI_N_ITEMS_DELETED="%d items successfully deleted"
COM_CIRCOLARI_N_ITEMS_DELETED_1="%d item successfully deleted"
COM_CIRCOLARI_N_ITEMS_PUBLISHED="%d items successfully published"
COM_CIRCOLARI_N_ITEMS_PUBLISHED_1="%d item successfully published"
COM_CIRCOLARI_N_ITEMS_TRASHED="%d items successfully trashed"
COM_CIRCOLARI_N_ITEMS_TRASHED_1="%d item successfully trashed"
COM_CIRCOLARI_N_ITEMS_UNPUBLISHED="%d items successfully unpublished"
COM_CIRCOLARI_N_ITEMS_UNPUBLISHED_1="%d item successfully unpublished"
COM_CIRCOLARI_NO_ITEM_SELECTED="No items selected"
COM_CIRCOLARI_SAVE_SUCCESS="Item successfully saved"
COM_CIRCOLARI_ITEM_ID_SELECT_LABEL="Select the item ID"
COM_CIRCOLARI_ITEM_ID_SELECT_LABEL_FORM="Select the Item ID to Edit (Set up as 0 if you want to set up as add form)"
COM_CIRCOLARI_FIELDSET_ITEM_ID_SELECT_LABEL="Required Settings"
COM_CIRCOLARI_FILTER_SELECT_LABEL=" - Select %s - "
COM_CIRCOLARI_TEST_LABEL="Test label"
COM_CIRCOLARI_FIELDSET_RULES="Permissions"
COM_CIRCOLARI_FROM_FILTER="From %s"
COM_CIRCOLARI_TO_FILTER="To %s"
COM_CIRCOLARI_VIEW_FILE="[View File]"
COM_CIRCOLARI_ITEMS_SUCCESS_DUPLICATED="Items successfully duplicated"
COM_CIRCOLARI_TITLE_FIRMETIPI = "Firme"
COM_CIRCOLARI_TAB_ETICHETTA = "Firma"
COM_CIRCOLARI_FIELDSET_ETICHETTA="Firma"
COM_HIGHLIGHTS_FORM_LBL_ETICHETTA_NOME="Nome"
COM_HIGHLIGHTS_FORM_DESC_ETICHETTA_NOME="Nome"
COM_CIRCOLARI_SEARCH_FILTER_SUBMIT = "Search"
COM_CIRCOLARI_SEARCH_FILTER_CLEAR = "Clear"
COM_CIRCOLARI_SEARCH_FILTER_DATE_FORMAT = "Dates should be in this format: \"YYYY-MM-DD\". Some filter fields have been ignored."
COM_CIRCOLARI_SEARCH_TOOLS = "Search Tools"
COM_CIRCOLARI_SEARCH_TOOLS_DESC = "Filter the list items"
COM_CIRCOLARI_SEARCH_FILTER_CLEAR = "Clear filter"
COM_CIRCOLARI_ERROR_MESSAGE_NOT_AUTHORISED = "You don't have permission to access this. Please contact a website administrator if this is incorrect."
COM_CIRCOLARI_XML_DESCRIPTION = ""
COM_CIRCOLARI_ADD_ITEM_TITLE = "Add"
COM_CIRCOLARI_EDIT_ITEM_TITLE = "Edit %s"
COM_CIRCOLARI_TITLE_CIRCOLARES = "Circolari"
COM_CIRCOLARI_CIRCOLARES_ID = "ID"
COM_CIRCOLARI_CIRCOLARES_STATE = "State"
COM_CIRCOLARI_CIRCOLARES_ORDERING = "Order"
COM_CIRCOLARI_CIRCOLARES_CHECKED_OUT = "N/A"
COM_CIRCOLARI_CIRCOLARES_CHECKED_OUT_TIME = "N/A"
COM_CIRCOLARI_CIRCOLARES_CREATED_BY = "Created by"
COM_CIRCOLARI_CIRCOLARES_MODIFIED_BY = "Modified by"
COM_CIRCOLARI_CIRCOLARES_TITLE = "Title"
COM_CIRCOLARI_CIRCOLARES_DESCRIPTION = "Description"
COM_CIRCOLARI_CIRCOLARES_ATTACHMENT = "Alle"
COM_CIRCOLARI_CIRCOLARES_IMAGE = "Image"
COM_CIRCOLARI_ID_DESC = "ID Descending"
COM_CIRCOLARI_STATE_DESC = "State Descending"
COM_CIRCOLARI_ORDERING_DESC = "Order Descending"
COM_CIRCOLARI_CHECKED_OUT_DESC = "N/A Descending"
COM_CIRCOLARI_CHECKED_OUT_TIME_DESC = "N/A Descending"
COM_CIRCOLARI_CREATED_BY_DESC = "Created by Descending"
COM_CIRCOLARI_MODIFIED_BY_DESC = "Modified by Descending"
COM_CIRCOLARI_TITLE_DESC = "Title Descending"
COM_CIRCOLARI_DESCRIPTION_DESC = "Description Descending"
COM_CIRCOLARI_ATTACHMENT_DESC = "Alle Descending"
COM_CIRCOLARI_IMAGE_DESC = "Image Descending"
COM_CIRCOLARI_ID_ASC = "ID Ascending"
COM_CIRCOLARI_STATE_ASC = "State Ascending"
COM_CIRCOLARI_ORDERING_ASC = "Order Ascending"
COM_CIRCOLARI_CHECKED_OUT_ASC = "N/A Ascending"
COM_CIRCOLARI_CHECKED_OUT_TIME_ASC = "N/A Ascending"
COM_CIRCOLARI_CREATED_BY_ASC = "Created by Ascending"
COM_CIRCOLARI_MODIFIED_BY_ASC = "Modified by Ascending"
COM_CIRCOLARI_TITLE_ASC = "Title Ascending"
COM_CIRCOLARI_DESCRIPTION_ASC = "Description Ascending"
COM_CIRCOLARI_ATTACHMENT_ASC = "Alle Ascending"
COM_CIRCOLARI_IMAGE_ASC = "Image Ascending"
COM_CIRCOLARI_TITLE_CIRCOLARE = "Circolari"
COM_CIRCOLARI_LEGEND_CIRCOLARE = "Circolari"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_ID = "ID"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_ID = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_STATE = "State"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_STATE = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_ORDERING = "Order"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_ORDERING = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_CHECKED_OUT = "N/A"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_CHECKED_OUT = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_CHECKED_OUT_TIME = "N/A"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_CHECKED_OUT_TIME = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_CREATED_BY = "Created by"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_CREATED_BY = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_MODIFIED_BY = "Modified by"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_MODIFIED_BY = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_TITLE = "Title"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_TITLE = ""
COM_CIRCOLARI_TAB_CIRCOLARI = "Circolari"
COM_CIRCOLARI_FIELDSET_CIRCOLARI = "Circolari"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_DESCRIPTION = "Description"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_DESCRIPTION = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_ATTACHMENT = "Attachment"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_ATTACHMENT = ""
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_IMAGE = "Image"
COM_CIRCOLARI_FORM_DESC_CIRCOLARE_IMAGE = ""
COM_CIRCOLARI_ACTION_PERMISSIONS_LABEL = "Permissions"
COM_CIRCOLARI_VALIDATION_FORM_FAILED = "Invalid form"
COM_CIRCOLARI_CHECKEDIN_SUCCESSFULLY = "Item successfully checked in"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_ID="ID"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_STATE="State"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_ORDERING="Order"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_CHECKED_OUT="N/A"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_CHECKED_OUT_TIME="N/A"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_CREATED_BY="Created by"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_MODIFIED_BY="Modified by"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_TITLE="Title"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_DESCRIPTION="Description"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_ATTACHMENT="Attachment"
COM_CIRCOLARI_FORM_LBL_CIRCOLARE_IMAGE="Image"

View File

@ -1,4 +1,5 @@
COM_CIRCOLARI = "Circolari"
COM_CIRCOLARI_XML_DESCRIPTION = ""
COM_CIRCOLARI_TITLE_CIRCOLARES="Circolari"
COM_CIRCOLARI="Circolari"
COM_CIRCOLARI_MENU_CIRCOLARE="Circolare (singola)"
COM_CIRCOLARI_MENU_CIRCOLARE_DESC="Mostra il dettaglio di una circolare."
COM_CIRCOLARI_FIELD_ID_LABEL="ID circolare"
COM_CIRCOLARI_FIELD_ID_DESC="Lascia vuoto per usare la voce come contenitore (Itemid)."

View File

@ -1,46 +1,49 @@
CREATE TABLE IF NOT EXISTS `#__circolari` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
-- Tabella delle tipologie di firma
CREATE TABLE IF NOT EXISTS `#__circolari_firmetipi` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(100) NOT NULL,
`descrizione` TEXT DEFAULT NULL,
`bottoni_firma` TEXT DEFAULT NULL,
`state` TINYINT(1) DEFAULT 1,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT COLLATE=utf8mb4_unicode_ci;
-- Tabella principale circolari
CREATE TABLE IF NOT EXISTS `#__circolari` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`state` TINYINT(1) NULL DEFAULT 1,
`ordering` INT(11) NULL DEFAULT 0,
`checked_out` INT(11) UNSIGNED,
`checked_out` INT(11) UNSIGNED DEFAULT NULL,
`checked_out_time` DATETIME NULL DEFAULT NULL,
`created_by` INT(11) NULL DEFAULT 0,
`modified_by` INT(11) NULL DEFAULT 0,
`created_by` INT(11) UNSIGNED NULL DEFAULT 0,
`modified_by` INT(11) UNSIGNED NULL DEFAULT 0,
`title` VARCHAR(255) NULL DEFAULT "",
`description` TEXT NULL,
`attachment` VARCHAR(255) NULL DEFAULT "",
`image` VARCHAR(255) NULL DEFAULT "",
`tipologia_firma_id` INT(11) DEFAULT NULL,
`tipologia_firma_id` INT(11) UNSIGNED DEFAULT NULL,
`firma_obbligatoria` TINYINT(1) DEFAULT 0,
`scadenza` DATE DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_state` (`state`),
KEY `idx_checked_out` (`checked_out`),
KEY `idx_created_by` (`created_by`),
KEY `idx_modified_by` (`modified_by`),
KEY `idx_tipologia_firma_id` (`tipologia_firma_id`),
CONSTRAINT `fk_tipologia_firma` FOREIGN KEY (`tipologia_firma_id`) REFERENCES `#__circolari_firmetipi` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) DEFAULT COLLATE=utf8mb4_unicode_ci;
CONSTRAINT `fk_tipologia_firma`
FOREIGN KEY (`tipologia_firma_id`)
REFERENCES `#__circolari_firmetipi` (`id`)
ON DELETE SET NULL
ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT COLLATE=utf8mb4_unicode_ci;
-- Tabella firme
CREATE TABLE IF NOT EXISTS `#__circolari_firme` (
`id` INT NOT NULL AUTO_INCREMENT,
`circolare_id` INT NOT NULL,
`user_id` INT NOT NULL,
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`circolare_id` INT(11) UNSIGNED NOT NULL,
`user_id` INT(11) UNSIGNED NOT NULL,
`firma` ENUM('presa_visione','aderisco','non_aderisco','non_in_servizio') NOT NULL,
`data_firma` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `firma_unica` (`circolare_id`, `user_id`)
);
-- Tabella delle tipologie di firma
CREATE TABLE IF NOT EXISTS `#__circolari_firmetipi` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(100) NOT NULL,
`descrizione` TEXT DEFAULT NULL,
`state` TINYINT(1) DEFAULT 1,
PRIMARY KEY (`id`)
);
) ENGINE=InnoDB DEFAULT COLLATE=utf8mb4_unicode_ci;

View File

@ -1,4 +1,5 @@
<?php
/**
* @version CVS: 1.0.0
* @package Com_Circolari
@ -38,6 +39,8 @@ HTMLHelper::_('bootstrap.tooltip');
<?php echo $this->form->renderField('attachment'); ?>
<?php echo $this->form->renderField('image'); ?>
<?php echo $this->form->renderField('tipologia_firma_id'); ?>
<?php echo $this->form->renderField('firma_obbligatoria'); ?>
<?php echo $this->form->renderField('scadenza'); ?>
</fieldset>
</div>
</div>
@ -47,6 +50,6 @@ HTMLHelper::_('bootstrap.tooltip');
<?php echo $this->form->renderField('created_by'); ?>
<?php echo $this->form->renderField('modified_by'); ?>
<?php echo HTMLHelper::_('uitab.endTabSet'); ?>
<input type="hidden" name="task" value=""/>
<input type="hidden" name="task" value="" />
<?php echo HTMLHelper::_('form.token'); ?>
</form>

View File

@ -63,7 +63,7 @@ if (!empty($saveOrder)) {
</th>
<th><?php echo Text::_("COM_CIRCOLARI_FIELD_TIPOLOGIA_FIRMA_LABEL"); ?></th>
<th> <?php echo HTMLHelper::_('searchtools.sort', 'Firma Obbligatoria', 'a.firma_obbligatoria', $listDirn, $listOrder); ?>
</th>
</th>
<th>Scadenza</th>
<?php if (isset($this->items[0]->ordering)): ?>
@ -107,7 +107,7 @@ if (!empty($saveOrder)) {
<?php echo htmlspecialchars($item->title, ENT_QUOTES, 'UTF-8'); ?>
</a>
</td>
<td><?php echo htmlspecialchars($item->tipologia_firma_id, ENT_QUOTES, "UTF-8"); ?></td>
<td><?php echo $item->tipologia_nome; ?></td>
<td><?php echo $item->firma_obbligatoria ? 'Sì' : 'No'; ?></td>
<td><?php echo $item->scadenza; ?></td>
<?php if (isset($this->items[0]->ordering)) : ?>

View File

@ -34,7 +34,9 @@ HTMLHelper::_('bootstrap.tooltip');
<fieldset class="adminform">
<legend><?php echo Text::_('COM_CIRCOLARI_FIELDSET_ETICHETTA'); ?></legend>
<?php echo $this->form->renderField('nome'); ?>
<?php echo $this->form->renderField('lingua'); ?>
<?php echo $this->form->renderField('descrizione'); ?>
<?php echo $this->form->renderField('bottoni_firma'); ?>
</fieldset>
</div>
</div>

View File

@ -1,47 +1,78 @@
<?php
\defined('_JEXEC') or die;
/**
* @package Com_Circolari
* @version CVS: 1.0.0
* @author Tommaso Cippitelli
*/
defined('_JEXEC') or die;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Factory;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Layout\LayoutHelper;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Session\Session;
HTMLHelper::_('bootstrap.tooltip');
HTMLHelper::_('behavior.multiselect');
$wa = $this->document->getWebAssetManager();
$wa->useStyle('com_circolari.admin')
->useScript('com_circolari.admin');
$user = Factory::getApplication()->getIdentity();
$listOrder = $this->state->get('list.ordering');
$listDirn = $this->state->get('list.direction');
$canChange = $user->authorise('core.edit.state', 'com_circolari');
?>
<form action="<?php echo Route::_('index.php?option=com_circolari&view=firmetipi'); ?>" method="post" name="adminForm" id="adminForm">
<div class="row">
<div class="col-12">
<table class="table table-striped">
<div class="col-md-12">
<div id="j-main-container" class="j-main-container">
<?php echo LayoutHelper::render('joomla.searchtools.default', array('view' => $this)); ?>
<div class="clearfix"></div>
<table class="table table-striped" id="firmetipiList">
<thead>
<tr>
<th width="1%">#</th>
<th><?php echo Text::_('Nome'); ?></th>
<th><?php echo Text::_('Descrizione'); ?></th>
<th width="1%"><?php echo Text::_('ID'); ?></th>
<th class="w-1 text-center">
<input type="checkbox" name="checkall-toggle" class="form-check-input" title="<?php echo Text::_('JGLOBAL_CHECK_ALL'); ?>" onclick="Joomla.checkAll(this)" />
</th>
<th><?php echo HTMLHelper::_('searchtools.sort', 'Nome', 'a.nome', $listDirn, $listOrder); ?></th>
<th><?php echo HTMLHelper::_('searchtools.sort', 'Descrizione', 'a.descrizione', $listDirn, $listOrder); ?></th>
<th class="w-1 text-center"><?php echo HTMLHelper::_('searchtools.sort', 'JSTATUS', 'a.state', $listDirn, $listOrder); ?></th>
<th class="w-1 text-center"><?php echo HTMLHelper::_('searchtools.sort', 'ID', 'a.id', $listDirn, $listOrder); ?></th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="5"><?php echo $this->pagination->getListFooter(); ?></td>
</tr>
</tfoot>
<tbody>
<?php foreach ($this->items as $i => $item) : ?>
<tr>
<td><?php echo $i + 1; ?></td>
<tr class="row<?php echo $i % 2; ?>">
<td class="text-center"><?php echo HTMLHelper::_('grid.id', $i, $item->id); ?></td>
<td>
<a href="<?php echo Route::_('index.php?option=com_circolari&task=firmatipo.edit&id=' . (int) $item->id); ?>">
<?php echo htmlspecialchars($item->nome, ENT_QUOTES, 'UTF-8'); ?>
</a>
</td>
<td><?php echo htmlspecialchars($item->descrizione, ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo (int) $item->id; ?></td>
<td><?php echo htmlspecialchars($item->descrizione ?? '', ENT_QUOTES, 'UTF-8'); ?></td>
<td class="text-center"><?php echo HTMLHelper::_('jgrid.published', $item->state, $i, 'firmetipi.', $canChange, 'cb'); ?></td>
<td class="text-center"><?php echo (int) $item->id; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
<input type="hidden" name="task" value="" />
<input type="hidden" name="boxchecked" value="0" />
<input type="hidden" name="list[fullorder]" value="<?php echo $listOrder . ' ' . $listDirn; ?>" />
<?php echo HTMLHelper::_('form.token'); ?>
</div>
</div>
</div>
</form>