com_abook 4.0.15: grazie per la correzione + altri tre punti per Joomla 6

Started by Odin72a, Today at 20:50:23

Previous topic - Next topic

Odin72a

Ciao Federica,

grazie mille per la 4.0.15 — ho visto la correzione di JPATH_PLATFORM, e in soli due giorni!

Questa volta ho fatto un controllo più approfondito: ho eseguito php -l con PHP 8.3 su tutti i file e ho confrontato ogni chiamata HTMLHelper::_() con il codice sorgente di Joomla 6.1 (ramo 6.1-dev su GitHub). Ho trovato altri tre punti.

1) Errore di sintassi

  components/com_abook/helpers/html/ablocation.php, riga 79:

  self::$items[] = ::_('select.option', '0', Text::_('JLIB_FORM_BUTTON_SELECT'));

Nella migrazione ai namespace si è perso il nome della classe (nella 4.0.6 era JHtml::_). Il file non compila. Al momento nessuno lo chiama, quindi il sito non si blocca, ma basta un override che lo usi. Correzione:

  self::$items[] = HTMLHelper::_('select.option', '0', Text::_('JLIB_FORM_BUTTON_SELECT'));

2) Finestra modale dei prestiti — errore 500

  administrator/components/com_abook/views/lends/tmpl/modal.php, righe 25-26:

  HTMLHelper::_('behavior.tooltip');
  HTMLHelper::_('behavior.framework', true);

Entrambi i metodi sono stati rimossi già in Joomla 4 (framework è MooTools). In Joomla 6.1 la classe Behavior contiene solo core, formvalidator, combobox, multiselect, keepalive, highlighter e polyfill, e HTMLHelper::_() lancia InvalidArgumentException per un metodo sconosciuto. Quindi la pagina si interrompe alla riga 25, prima ancora di arrivare a categoryparent.options. Basta eliminare le due righe; se servono i tooltip: HTMLHelper::_('bootstrap.tooltip', '.hasTooltip');

3) sliders.panel — codice non utilizzato

  administrator/components/com_abook/views/category/tmpl/edit_options.php, righe 26 e 54

La classe helper Sliders non esiste più da Joomla 4. Però questo template non viene caricato da edit.php (carica solo 'associations'), quindi al momento non causa errori. Si potrebbe eliminare il file oppure riscriverlo con uitab.

Per il resto la 4.0.15 è pulita: nessuna classe J* nel codice attivo, nessun CMSObject, Filesystem o Input, nessuna funzione deprecata di PHP 8.x.

Cordiali saluti,