Sicurezza lavoro

Cassazione Penale Sent. Sez. 4 Num. 30165 | 12 Luglio 2023

Sentenze cassazione penale

Cassazione Penale Sez. 4 del 12 luglio 2023 n. 30165

Norme antincendio per le attività alberghiere. Omessa manutenzione del camino e verificazione dell'incendio

Penale Sent. Sez. 4 Num. 30165 Anno 2023
Presidente: PICCIALLI PATRIZIA
Relatore: D'ANDREA ALESSANDRO
Data Udienza: 05/04/2023

Ritenuto in fatto

1. Con sentenza del 16 marzo 2022 la Corte di appello di Trento, in parziale riforma della pronuncia di condanna emessa dal locale Tribunale in data 19 novembre 2020, ha assolto C.I., D.S. e V.P. dal reato loro ascritto, altresì riducendo la pena inflitta a C.F. nella misura di anni uno e mesi sei di reclusione.
1.1. Gli imputati erano stati sottoposti a giudizio per il reato di cui agli artt. 41, 423 e 449 cod. pen., per avere, ciascuno con condotta colposa indipendente, per imprudenza, imperizia e negligenza, nonché per inosservanza di specifiche norme tecniche di loro rispettiva competenza - relative: alla ristrutturazione non a norma del tetto, alla realizzazione del camino non a regola d'arte, al mancato rispetto delle compartimentazioni dei solai, all'illegittimo utilizzo del camino - causato l'incendio originato da fuoco di fuliggine dovuto alla combustione dei depositi di residui carboniosi all'interno del condotto per intubamento collegato al caminetto dell'Hotel Dolomiti di Moena, nella copertura del quarto e del quinto piano, esteso alle intercapedini dei piani sottostanti, rendendo necessario l'intervento dei Vigili del Fuoco a partire dalle ore 18.00 circa del 19 gennaio 2016 fino alle ore 1.30 del 20 gennaio 2016.

2. Con specifico riferimento alla posizione di interesse in questa sede, il giudice di secondo grado ha confermato la penale responsabilità di C.F., riconoscendolo colpevole di aver cagionato in via esclusiva l'incendio che aveva colpito gran parte dell'Hotel Dolomiti, creando pericolo per la pubblica incolumità, in ragione di una sua condotta omissiva ritenuta causa sopravvenuta da sola sufficiente a determinare la propagazione del fuoco - così interrompendo ogni nesso di causalità tra le azioni perpetrate dagli altri imputati e la realizzazione dell'evento. In particolar modo, il C.F. aveva utilizzato il camino, posto nel soggiorno al primo piano, in violazione del combinato disposto del punto 21 del D.M. 9 aprile 1994, con riferimento al punto 8.2.1., dove è prescritto che gli impianti di produzione di calore devono essere centralizzati, e del d.lgs. 19 agosto 2005, n. 192, modificato dalla legge 3 agosto 2013, n. 190, dove è stabilito che i caminetti sono assimilati agli impianti termici quando la potenza del focolare è maggiore o uguale a 5 KW, nonché, ancora, in violazione delle norme antincendio per le attività alberghiere di cui al decreto 14 luglio 2015, per il quale è consentita la presenza di stufe e caminetti nelle aree comuni per le attività con un numero di posti letto tra i 25 e i 50 (l'albergo aveva la licenza per 89 posti letto ed al momento dell'incendio vi era la presenza di 67 ospiti).
Il C.F. è stato, altresì, ritenuto responsabile di non aver provveduto, in violazione della normativa regolamentare vigente (normativa tecnica UNI 10683, Decreto del Presidente della Provincia 9 agosto 2012, n. 15-90/Leg. deliberazione del Comune di Moena n. 144/12 del 28 novembre 1985), alla corretta manutenzione del caminetto con cadenza annuale, così favorendo l'accumulo di fuliggine che ha, poi, cagionato l'innesco dell'incendio all'interno della canna fumaria, con investimento della copertura dell'edificio dell'Hotel Dolomiti.

3. Avverso l'indicata sentenza ha proposto ricorso per cassazione C.F., a mezzo del suo difensore, deducendo sei motivi di doglianza.
Con il primo è stata eccepita mancanza o apparenza della motivazione in ordine alle ragioni per cui la complessiva condotta colposa a lui ascritta sarebbe stata causa sopravvenuta da sola sufficiente a cagionare l'incendio.
Il ricorrente lamenta che la sentenza impugnata avrebbe omesso ogni rappresentazione delle ragioni giuridico-fattuali per cui la condotta contestatagli avrebbe integrato un'ipotesi ex art. 41, comma 2, cod. pen., di causa sopravvenuta da sola idonea a determinare l'evento, quindi escludendo il rapporto di causalità delle altrui condotte. Ciò appare tanto più rilevante a fronte dell'opposta decisione assunta da parte del primo giudice che, in virtù di una congrua e puntuale motivazione, aveva ritenuto, in conformità all'ipotesi contestata in imputazione, che vi fosse stato il concorrente apporto di plurime condotte indipendenti, ciascuna della quali aveva individualmente rappresentato un presupposto causale ai fini della verificazione dell'incendio.
Con la seconda doglianza il ricorrente ha dedotto mancanza o manifesta illogicità della motivazione con riferimento alla sussistenza della ritenuta efficacia eziologica intercorrente tra la verificazione dell'incendio ed alcune condotte colpose, a lui attribuite, non oggetto di specifica contestazione in imputazione, in particolare riguardanti: la violazione di prescrizioni in materia di sicurezza del lavoro, con riferimento agli obblighi in tema di valutazione dei rischi e di formazione e di addestramento dei dipendenti, come previsto dagli artt. 17 e 18 d.lgs. 9 aprile 2008, n. 81; il ritardato rinnovo del certificato di prevenzione incendi, senza adeguamento alla normativa vigente.
A fronte di una specifica doglianza dedotta in appello, la Corte di merito avrebbe espresso una motivazione del tutto incongrua ed assertiva, inidonea a rappresentare le ragioni per cui vi sarebbe stato un nesso di causa tra la violazione delle indicate prescrizioni e verificazione dell'incendio, l'attivazione di corrette ed efficaci procedure antincendio produrre effetti positivi solo dopo la realizzazione dell'evento, attenendo in via esclusiva alla corretta gestione della emergenza successiva.
Con il terzo motivo è stata lamentata l'erronea applicazione del punto 21, con riferimento al punto 8.2.1., del D.M. 9 aprile 1994, del d.lgs. n. 192 del 2005 e del D.M. 14 luglio 2015, oltre ad inosservanza del D.P.R. n. 412 del 1993, eccependosi l'insussistenza del profilo di colpa specifica contestatogli in relazione al divieto di utilizzo del caminetto.
Avrebbe, in particolare, errato la Corte di merito nell'affermare che l'imputato avrebbe utilizzato il caminetto in spregio del divieto normativo imposto dal D.M. 9 aprile 1994, in quanto, così facendo, avrebbe parificato il camino agli impianti di produzione di calore non centralizzati - cui l'indicato divieto si riferisce - senza che ciò fosse stato in alcun modo previsto da nessuna disposizione specifica.
D'altro canto, l'art. 1 del D.P.R. 26 agosto 1993, n. 412, prevedeva, in modo espresso, che le stufe e i caminetti non fossero normativamente considerati nella categoria degli impianti termici.
Parimenti non corretta sarebbe, poi, la considerazione espressa dal giudice di secondo grado per cui la legge 3 agosto 2013, n. 90, modificando il disposto del d.lgs. n. 192 del 2005, avrebbe inserito i camini nella definizione di impianto termico - nel caso in cui la somma delle potenze nominali del focolare degli apparecchi al servizio della singola unità immobiliare fosse stata maggiore o uguale a 5 KW - considerato che con il d.lgs. 10 giugno 2020, n. 48, tale inciso è stato soppresso, perciò non essendo più vigente.
Neppure pertinente, infine, sarebbe il richiamo effettuato in sentenza al D.M. 14 luglio 2015, che consente la presenza di caminetti nelle aree comuni per le attività alberghiere aventi un numero di posti letto compreso tra le 25 e le 50 unità, non potendosi da ciò solo ricavare il divieto di presenza di camini in alberghi, come l'Hotel Dolomiti, aventi un numero di posti letto maggiore di 50.
Per il ricorrente, in definitiva, non esisteva alcun divieto normativo di utilizzo dei caminetti nelle attività alberghiere come quella da lui gestita, non potendo essi essere assimilati agli impianti termici.
Con la quarta censura è stata dedotta inosservanza ed erronea applicazione di legge penale in relazione all'art. 43 cod. pen., sotto il profilo della non riconoscibilità del precetto cautelare in ordine alla sussistenza del divieto normativo di utilizzo del camino, con inesigibilità della condotta alternativa doverosa e conseguente carenza dell'elemento soggettivo del reato.
A fronte di una normativa così poco chiara, infatti, non gli potrebbe comunque essere rimproverata la condotta colposa contestatagli, trattandosi di errore scusabile per ignoranza incolpevole del precetto, altresì essendo stato rassicurato al tempo dal suo coimputato B.M.- professionista incaricato di predisporre la documentazione necessaria ai fini del rilascio della certificazione di prevenzione degli incendi - sulla legittimità dell'utilizzo del caminetto.
Il ricorrente lamenta, inoltre, contraddittorietà e manifesta illogicità della motivazione, per essere stato assolto il B. proprio in ragione della manifesta assenza di chiarezza della normativa di disciplina dell'utilizzo del camino, rispetto alla quale sia il perito che i consulenti tecnici di parte avevano offerto soluzioni interpretative difformi. Sarebbe paradossale, pertanto, che lo stesso argomento utilizzato per escludere la penale responsabilità di un professionista come il B. non potesse essere utilizzato a vantaggio di un soggetto del tutto privo delle medesime conoscenze tecniche, come il C.F..
Con il quinto motivo è stata eccepita erronea applicazione dell'art. 41 cod. pen. e manifesta illogicità della motivazione, con riferimento alla sussistenza del nesso di causalità tra la contestata omessa manutenzione del camino e la verificazione dell'evento incendiario.
Il ricorrente lamenta, in particolare, carenza probatoria in ordine alla ricorrenza dell'indicato nesso di causa, anche considerata l'apprezzata sufficienza eziologica dei difetti strutturali della coibentazione della canna fumaria ai fini sia dell'accumulo di fuliggine che della propagazione dell'incendio.
Dall'istruttoria dibattimentale non sarebbe scaturita prova alcuna riguardo al fatto che l'accumulo di fuliggine fosse stato provocato dalla contestata omessa manutenzione del camino. Non sarebbe risultato comprovato, in particolare, che l'effettuazione della pulizia annuale potesse essere in grado di impedire la realizzazione di incendi di fuliggine come quello divampato presso l'Hotel Dolomiti, trattandosi di un'eventualità piuttosto comune.
Il consulente della difesa, tra l'altro, aveva evidenziato diversi aspetti di natura tecnica - ed in particolare la circostanza per cui l'accumulo di fuliggine sarebbe stato il risultato di una non corretta coibentazione della canna fumaria, che aveva poi comportato anche la successiva propagazione delle fiamme - non adeguatamente vagliati dalla Corte di merito. Non sarebbe stato verificato, cioè, se l'accumulo di fuliggine fosse stato dovuto ad altre cause, ed in particolare se avesse assunto rilievo causale esclusivo, ai fini della verificazione dell'incendio, la non adeguata coibentazione del condotto per intubamento collegato al caminetto.
Con l'ultima censura, infine, il ricorrente ha lamentato inosservanza o erronea applicazione di legge penale in relazione all'art. 62-bis cod. pen., oltre a mancanza e manifesta illogicità della motivazione con riguardo all'omesso riconoscimento delle circostanze attenuanti generiche.

Sarebbe, in particolare, errata la motivazione con cui la Corte territoriale ha genericamente negato la ricorrenza di elementi di particolare rilievo ai fini del riconoscimento del beneficio invocato, ove si considerino il comportamento tenuto dall'imputato nell'immediatezza dei fatti, in cui si era adoperato per spegnere da solo l'incendio, a rischio della propria incolumità, nonché la successiva condotta collaborativa mantenuta nei riguardi della polizia giudiziaria.

4. Il Procuratore generale ha rassegnato conclusioni scritte, con cui ha chiesto il rigetto del ricorso.

5. Il difensore ha depositato successiva memoria con conclusioni scritte, in cui ha insistito per l'accoglimento del ricorso.

Considerato in diritto

1. Il ricorso non è fondato e deve, pertanto, essere rigettato.

2. In primo luogo priva di fondamento è l'introduttiva doglianza, con cui il C.F. ha eccepito difetto di motivazione in ordine all'individuazione delle ragioni per cui la condotta colposa a lui ascritta sarebbe stata causa sopravvenuta da sola sufficiente a cagionare l'incendio, ai sensi dell'art. 41, comma 2, cod. pen., con esclusione di ogni nesso di causalità imputabile alle condotte perpetrate dagli altri prevenuti, come invece ritenuto dal decidente di primo grado, per cui l'evento incendiario era stato determinato dal concorrente apporto di plurimi comportamenti indipendenti, ciascuno costituente singolo presupposto causale della relativa sua verificazione.
2.1. La Corte di appello ha, invero, debitamente tenuto conto di tali difformi conclusioni rese da parte del primo giudice, nonché di tutte le evidenze probatorie acquisite nel corso del giudizio, tuttavia esplicando, in modo logico e adeguato, le ragioni per cui ha riconosciuto, in via esclusiva, la responsabilità del C.F., evidenziando, sia pur nella sintesi, i motivi per cui la sua condotta ha interrotto il nesso eziologico tra gli altrui comportamenti e l'evento, avendo l'incendio «avuto origine da un fuoco di fuliggine, cioè dalla combustione dei depositi carboniosi accumulatisi nel tempo per omessa manutenzione, lungo le pareti della canna fumaria del caminetto che non poteva essere utilizzato». Ove il C.F. avesse rispettato il divieto di utilizzo del camino, ovvero ne avesse garantito una corretta manutenzione annuale, l'evento incendiario non si sarebbe verificato, o comunque non avrebbe assunto le dimensioni raggiunte, per l'effetto non acquisendo alcun rilievo causale le successive condotte omissive contestate singolarmente ai coimputati.
In tal maniera, pertanto, il secondo giudice si è adeguatamente uniformato al principio di diritto espresso dal Supremo Collegio, per cui, in tema di motivazione della sentenza, il giudice di appello che riformi la decisione di primo grado ha l'obbligo di delineare le linee portanti del proprio, alternativo, ragionamento probatorio e di confutare specificamente i più rilevanti argomenti della motivazione della prima sentenza, dando conto delle ragioni della relativa incompletezza o incoerenza, tali da giustificare la riforma del provvedimento impugnato (cfr., in questi termini: Sez. U, n. 33748 del 12/07/2005, Mannino, Rv. 231679-01).
2.2. In ogni modo, a prescindere dalla decisività della superiore argomentazione, il Collegio rileva come al ricorrente non pertenga neanche un reale specifico interesse in ordine al dedotto motivo di doglianza, atteso che l'eventuale concasualità delle altrui condotte ai fini della verificazione dell'evento non sarebbe, comunque, sufficiente ad esonerarlo da responsabilità, trattandosi di condotte che, tutte in maniera autonoma, avrebbero contribuito - per quanto dettato nell'originaria contestazione - a cagionare la verificazione dell'evento.
Nessun vantaggio potrebbe essere, poi, acquisito neanche sotto il profilo della determinazione della pena, considerato che in primo grado, dove pure vi era stato il riconoscimento della penale responsabilità di tutti gli imputati, la sanzione inflitta al C.F. era stata addirittura di entità maggiore rispetto a quella applicatagli nel secondo giudizio.

3. Parimenti non fondato è il secondo motivo, con cui è stato dedotto vizio di motivazione per avere la Corte di merito ritenuto la ricorrenza di un nesso eziologico tra la causazione dell'incendio e il mancato rispetto di alcune specifiche prescrizioni non indicate in imputazione (violazione di norme in materia di sicurezza del lavoro, con riguardo agli obblighi in tema di valutazione dei rischi e di formazione e addestramento dei dipendenti; ritardato rinnovo del certificato di prevenzione incendi), in quanto tutte afferenti alla successiva fase della gestione dell'incendio, quindi non essendo causalmente rilevanti rispetto al momento della sua effettiva propagazione - oggetto di specifica imputazione in questa sede-.
Dalla lettura della sentenza impugnata è dato evincere, infatti, come la Corte di appello, sia pur dando debitamente conto delle varie inadempienze perpetrate da parte del C.F. - che comunque, pur avendo avuto rilevanza neutra rispetto alla propagazione dell'incendio, possono avere avuto incidenza negativa in ordine alla determinazione dei conseguenti danni, che il rispetto delle indicate previsioni avrebbe potuto contenere - non ha incentrato la penale responsabilità dell'imputato sugli indicati aspetti, bensì, come sin da subito indicato e poi nel prosieguo esplicato, sulla duplice condotta di avere utilizzato il camino nonostante il divieto imposto dal D.M. 9 aprile 1994 e di non aver provveduto alla manutenzione della condotta di fumo, così ponendo in essere un comportamento di rilievo ex art. 41, comma 2, cod. pen., costituente causa sopravvenuta da sola sufficiente a cagionare l'incendio.
Tale motivazione è stata resa in maniera del tutto adeguata e logica, alla stregua di una compiuta valutazione delle emergenze processuali, come tale non risultando, conseguentemente, sindacabile in questa sede di legittimità.

4. Per il Collegio è, poi, infondata anche la terza censura eccepita da parte del C.F., con cui è stata lamentata l'insussistenza di una sua condotta violativa del divieto di utilizzo del camino, come previsto dal D.M. 9 aprile 1994. A dire del ricorrente, infatti, il caminetto non costituirebbe un impianto di produzione di calore, in quanto non elencato tra gli impianti termici dall'art. 1 del D.P.R. n. 412 del 1993, per cui nessun esplicito divieto di utilizzo poteva ritenersi gravante nei suoi confronti.
Orbene, a fronte dell'indicata doglianza, il Collegio rileva, invece, come, in termini opposti, sia da ritenersi giuridicamente corretta la ricostruzione normativa operata da parte della Corte territoriale.
Ed infatti, alla stregua di quanto previsto dal punto 8.2.1. (espressamente dedicato agli "Impianti di produzione calore"), come richiamato dal punto 21, del D.M. 9 aprile 1994, «Gli impianti di produzione di calore devono essere di tipo centralizzato. I predetti impianti devono essere realizzati a regola d'arte e nel rispetto delle specifiche disposizioni di prevenzione incendi».
L'allora vigente d.lgs. 19 agosto 2005, n. 192, come modificato dalla legge 3 agosto 2013 n. 90, aveva introdotto poi, all'art. 2 lett. 1-tricies, la specificazione per cui è definibile come impianto termico un «impianto tecnologico destinato ai servizi di climatizzazione invernale o estiva degli ambienti, con o senza produzione di acqua calda sanitaria, indipendentemente dal vettore energetico utilizzato, comprendente eventuali sistemi di produzione, distribuzione e utilizzazione del calore nonché gli organi di regolarizzazione e controllo. Sono compresi negli impianti termici gli impianti individuali di riscaldamento. Non sono considerati impianti termici apparecchi quali: stufe, caminetti, apparecchi di riscaldamento localizzato ad energia radiante; tali apparecchi, se fissi, sono tuttavia assimilati agli impianti termici quando la somma delle potenze nominali del focolare degli apparecchi al servizio della singola unità immobiliare è maggiore o uguale a 5 KW».

Ed allora, ritenuta la vigenza delle suddette previsioni normative, ed in applicazione coordinata e sintetica dei relativi dettati testuali, appare logicamente e giuridicamente corretto affermare che nei confronti del C.F. vigesse un inequivoco divieto di utilizzo del camino, considerato che trattavasi di un impianto di produzione di calore fisso, non centralizzato, con potenze nominali del focolare degli apparecchi al servizio della singola unità immobiliare maggiore o uguale a 5 KW.
4.1. Rispetto all'indicata conclusione, conforme all'esegesi seguita dalla Corte di merito, di nessun pregio è, poi, la censura difensiva con cui l'imputato ha eccepito che sarebbe irrilevante l'effettuato richiamo alla disciplina introdotta dalla I. n. 90 del 2013, a modifica del d.lgs. n. 192 del 2005, con parificazione del camino agli impianti termici - nel caso in cui la somma delle potenze nominali del focolare degli apparecchi al servizio della singola unità immobiliare fosse stata maggiore o uguale a 5 KW - considerato che tale inciso sarebbe stato
soppresso dal d.lgs. 10 giugno 2020, n. 48, quindi non essendo oggi più vigente.
Neanche tale conclusione, infatti, è da ritenersi corretta, considerato che se è vero che nella nuova definizione di impianto termico prevista dal novellato art. 2 lett. 1-tricies d.lgs. n. 192 del 2005 non è stato fatto più riferimento ai camini come impianti termici, è anche vero che, stante la genericità di tale dizione, di certo causativa di dubbi interpretativi, l'intervento chiarificatore disposto dall'Agenzia delle Entrate al punto 4.5.1. della Circolare n. 30/E del 22 dicembre 2020, ha consentito di precisare, in modo inequivoco, che «per gli interventi realizzati a pç1rtire dall'll giugno 2020, data di entrata in vigore del citato d.lgs. 10 giugno 2020 n. 48, per effetto della nuova definizione normativa di impianto termico, le stufe a legna o a pellet, anche caminetti e termocamini, purché fissi, sono considerati "impianto di riscaldamento"», nonché - con riguardo a quanto di specifico interesse in questa sede - che «per gli interventi realizzati prima di tale data, invece, in base alla previgente disposizione, opera l'assimilazione agli impianti termici delle stufe, caminetti, apparecchi per il riscaldamento localizzato ad energia radiante, scaldacqua unifamiliari; se fissi e quando la somma delle potenze nominali del focolare degli apparecchi al servizio della singola unità immobiliare è maggiore o uguale a 15 KW (cfr. Risoluzione 12 agosto 2009 n. 215/E)».

5. Stesso giudizio di non fondatezza deve essere espresso, quindi, con riferimento al quarto motivo di ricorso, non potendosi ritenere sussistente, nei confronti del C.F., l'invocato errore scusabile, determinato da ignoranza incolpevole del precetto cautelare riguardante il divieto normativo di utilizzo del camino, causato dalla eccessiva complessità della disciplina di riferimento, con conseguente mancata ricorrenza dell'elemento soggettivo del reato.
Ed infatti, la pura e semplice ignoranza dell'agente circa i contenuti della normativa di settore, nonché del carattere illecito della sua condotta, non è idonea ex se ad escludere la sussistenza della colpa normativamente richiesta per la punibilità dell'imputato.
A seguito della sentenza 23 marzo 198 , n. 364 della Corte Costituzionale, secondo la quale l'ignoranza della legge penale, se incolpevole a cagione della sua inevitabilità, scusa l'autore dell'illecito, vanno stabiliti i limiti di tale inevitabilità. Per il comune cittadino tale condizione è sussistente ogni qualvolta egli abbia assolto, con il criterio dell'ordinaria diligenza, al cosiddetto "dovere di informazione", attraverso l'espletamento di qualsiasi utile accertamento, per conseguire la conoscenza della legislazione vigente in materia. Tale obbligo è particolarmente rigoroso per tutti coloro che svolgono professionalmente una determinata attività, i quali rispondono dell'illecito anche in virtù di una "culpa levis" nello svolgimento dell'indagine giuridica. Per l'affermazione della scusabilità dell'ignoranza, occorre, cioè, che da un comportamento positivo degli organi amministrativi o da un complessivo pacifico orientamento giurisprudenziale, l'agente abbia tratto il convincimento della correttezza dell'interpretazione normativa e, conseguentemente, della liceità del comportamento tenuto (così, espressamente, Sez. U, n. 8154 del 10/06/1994, Calzetta, Rv. 197885-01). Ne discende, pertanto, che ai fini della scusabilità dell'ignoranza della legge penale sia necessario, quanto meno, l'assolvimento, con il criterio dell'ordinaria diligenza, del cosiddetto "dovere di informazione", attraverso l'espletamento di un qualsiasi utile accertamento volto a conseguire la conoscenza della legislazione vigente in materia.
Ciò, nel caso di specie, non sarebbe stato effettuato, atteso che, per come logicamente e congruamente ritenuto dalla Corte territoriale, il C.F. non avrebbe adempiuto al necessario obbligo di conoscenza dei precetti normativi regolanti l'utilizzo dei camini, ponendo in essere un dovere di diligenza ancor più elevato e indispensabile tenuto conto del fatto che costui esercitava professionalmente l'attività di albergatore, cui inerisce, in modo particolarmente incisivo, la normativa caratterizzante le disposizioni violate.
Né, a fronte di tale aspetto, può essere ritenuta sufficiente la mera circostanza, peraltro ritenuta non adeguatamente comprovata dai giudici di appello, per cui il prevenuto sarebbe stato rassicurato da B. M. - professionista incaricato di predisporre la documentazione necessaria ai fini del rilascio della certificazione di prevenzione degli incendi - circa la possibilità di utilizzare il camino, atteso che, in termini contrari, appare del tutto adeguata e congrua la considerazione espressa dalla Corte di merito per cui il C.F., comunque, «nella sua qualità, facendo ricorso a regole elementari di diligenza, avrebbe dovuto conoscere i precetti a lui imposti».
Del tutto insussistente, infine, è la presunta contraddittorietà motivazionale ravvisabile tra l'indicata valutazione e l'intervenuta assoluzione del S., proprio in ragione dalla ritenuta manifesta assenza di chiarezza della normativa di disciplina del settore, considerato che trattasi di soggetti cui erano state contestate imputazioni difformi tra loro, aventi ad oggetto condotte differenti, riferentesi a distinte posizioni di garanzia, per le cui considerazioni rese nei confronti dell'uno non possono essere sic et simpliciter estese nei riguardi dell'altro imputato.

6. Ancora priva di pregio è, poi, la censura con cui il ricorrente ha eccepito l'insussistenza del nesso causale tra l'omessa manutenzione del camino e la verificazione dell'incendio, sul presupposto che non risulterebbe comprovato che l'effettuazione della prevista pulizia annuale avrebbe potuto impedire l'evento. A dire del C.F., infatti, altre sarebbero state le cause originanti del fuoco, in particolar modo da individuarsi nei ravvisati difetti strutturali della coibentazione della canna fumaria.
Orbene, a fronte di tale doglianza, il Collegio rileva come con essa sia stato tematizzato un aspetto fondato sulla rappresentazione di ricostruzioni eziologiche alternative - come, per l'appunto, la circostanza che l'incendio abbia tratto origine da una non adeguata coibentazione del condotto per intubamento collegato al caminetto - senza, tuttavia, interloquire sulle ragioni fondanti la responsabilità del prevenuto, così come specificamente individuate da parte dei giudici di appello.
Nel ricorso, cioè, si sarebbe tentata di escludere la colpevolezza dell'imputato incentrando l'attenzione su fattori riguardanti la successiva fase di utilizzo del camino, laddove, invece, il momento configurativo della responsabilità del C.F. è stato, soprattutto, individuato in una condotta colposa realizzata antecedentemente all'accensione del fuoco nel caminetto, che, per l'appunto, non si sarebbe dovuta verificare.
In ogni modo, a prescindere dall'indicata considerazione, la Corte territoriale ha espressamente analizzato l'eccepito aspetto, nello specifico affermando che, «quanto alla scarsa coibentazione della canna fumaria, ipotizzata dal giudice di primo grado, deve osservarsi come nella impugnata sentenza non vi sia alcun riferimento ai valori specifici esigibili; neppure l'ing. M. ha effettuato e rappresentato un calcolo preciso dello strato di lana di roccia eventualmente esigibile in luogo di quello applicato dalla ditta costruttrice».

6.1. D'altro canto, la prospettata questione, di fatto afferendo alla ricostruzione della dinamica di verificazione dell'incendio e all'interpretazione delle prove assunte, finisce per attenere a questioni non passibili di valutazione in questa sede, atteso che, in tema di sindacato del vizio di motivazione, il compito del giudice di legittimità non è quello di sovrapporre la propria valutazione a quella compiuta dai giudici di merito in ordine all'affidabilità delle fonti di prova, bensì quello di stabilire se questi ultimi abbiano esaminato tutti gli elementi a loro disposizione, se abbiano fornito una corretta interpretazione di essi - dando esaustiva e convincente risposta alle deduzioni delle parti - e se abbiano esattamente applicato le regole della logica nello sviluppo delle argomentazioni che hanno giustificato la scelta di determinate conclusioni a preferenza di altre (così, tra le tante, Sez. U, n. 930 del 13/12/1995, dep. 1996, Clarke, Rv, 203428-01).
Esula, quindi, dai poteri della Corte la rilettura della ricostruzione storica dei fatti posti a fondamento della decisione di merito, dovendo l'illogicità del discorso giustificativo, quale vizio di legittimità denunciabile mediante ricorso per cassazione, essere di macroscopica evidenza (cfr. Sez. U, n. 24 del 24/11/1999, Spina, Rv. 214794-01; Sez. U, n. 6402 del 30/04/1997, Dessimone e altri, Rv. 207944-01).
Sono precluse al giudice di legittimità, in sostanza, la rilettura degli elementi di fatto posti a fondamento della decisione impugnata e l'autonoma adozione di nuovi e diversi parametri di ricostruzione e valutazione dei fatti, indicati dal ricorrente come maggiormente plausibili o dotati di una migliore capacità esplicativa rispetto a quelli adottati dal giudice del merito (cfr., fra i molteplici arresti in tal senso: Sez. 6, n. 5465 del 04/11/2020, dep. 2021, F., Rv. 280601- 01; Sez. 6, n. 47204 del 07/10/2015, Musso, Rv. 265482-01; Sez. 1, n. 42369 del 16/11/2006, De Vita, Rv. 235507-01). E', conseguentemente, sottratta al sindacato di legittimità la valutazione con cui il giudice di merito esponga con motivazione logica e congrua, come avvenuto nel caso di specie, le ragioni del proprio convincimento.

7. Infine destituita di fondamento è anche la conclusiva doglianza, con cui il ricorrente ha lamentato la mancata concessione in suo favore delle circostanze attenuanti generiche, ritenendosi adeguata la motivazione con cui la Corte di appello ha ritenuto l'insussistenza di elementi di segno positivo idonei a consentire il riconoscimento del beneficio.
Trattasi di motivazione che, pur nella sua sinteticità, ben rappresenta e giustifica, in punto di diritto, le ragioni per cui il giudice di secondo grado ha ritenuto di negare il riconoscimento delle circostanze attenuanti generiche, palesare vizi logici e ponendosi in coerenza con le emergenze processuali acquisite, con motivazione, pertanto, non sindacabile in questa sede di legittimità (Sez. 6, n. 42688 del 24/09/2008, Caridi e altri, Rv. 242419-01).
D'altro canto - in particolare dopo la modifica dell'art. 62-bis cod. pen. disposta dal d.I. 23 maggio 2008, n. 2002, convertito con modifiche dalla I. 24 luglio 2008, n. 125 - è assolutamente sufficiente che il giudice si limiti a dare conto, come avvenuto nella situazione in esame, di avere valutato e applicato i criteri ex art. 133 cod. pen. In tema di attenuanti generiche, infatti, posto che la ragion d'essere della relativa previsione normativa è quella di consentire al giudice un adeguamento, in senso più favorevole all'imputato, della sanzione prevista dalla legge, in considerazione di peculiari e non codificabili connotazioni tanto del fatto quanto del soggetto che di esso si è reso responsabile, la meritevolezza di tale adeguamento non può mai essere data per scontata o per presunta, sì da imporre un obbligo per il giudice, ove ritenga di escluderla, di doverne giustificare, sotto ogni possibile profilo, l'affermata insussistenza. Al contrario, secondo una giurisprudenza consolidata di questa Corte, è la suindicata meritevolezza che necessita essa stessa, quando se ne affermi l'esistenza, di apposita motivazione dalla quale emergano, in positivo, gli elementi che sono stati ritenuti atti a giustificare la mitigazione del trattamento sanzionatorio (così, tra le tante, Sez. 1, n. 11361 del 19/10/1992, Gennuso, Rv. 192381-01). In altri termini, l'obbligo di analitica motivazione in materia di circostanze attenuanti generiche qualifica la decisione circa la sussistenza delle condizioni per concederle e non anche la decisione opposta (cfr. Sez. 2, n. 38383 del 10/07/2009, Squillace ed altro, Rv. 245241-01).

8. Ne consegue, pertanto, il rigetto del ricorso, con condanna del ricorrente al pagamento delle spese processuali.

P.Q.M.

Rigetta il ricorso e condanna il ricorrente al pagamento delle spese processuali.
Così deciso in Roma il 5 aprile 2023

Certifico s.r.l.

Sede: Via A. De Curtis, 28 - 06135 Perugia - IT
Sede: Via Madonna Alta 138/A - 06128 Perugia - IT
P. IVA: IT02442650541

Tel. 1: +39 075 599 73 63
Tel. 2: +39 075 599 73 43

Assistenza: +39 075 599 73 43

www.certifico.com
info@certifico.com

Testata editoriale iscritta al n. 22/2024 del registro periodici della cancelleria del Tribunale di Perugia in data 19.11.2024

25.453MBMemory Usage295msRequest Duration
Joomla! Version5.2.5
PHP Version8.3.14
Identityguest
Response200
Templateshaper_helixultimate
Database
Server
mysql
Version
10.11.6-MariaDB-0+deb12u1
Collation
utf8mb3_general_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
array:1 [ "62a92c53e84a3da1ecb6bdbbf83e5ec6" => "s52ftj570nnmshkd38rn0pah81" ]
$_SERVER
array:48 [ "USER" => "certifico_com_user" "HOME" => "/var/www/vhosts/certifico.com" "SCRIPT_NA...
session
array:3 [ "counter" => 4 "timer" => array:3 [ "start" => 1744484790 "last" => 1744484797...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (86.59KB) (4.31ms)
  • afterInitialise (3.35MB) (31.46ms)
  • afterRoute (370.42KB) (10.42ms)
  • beforeRenderComponent com_content (37.3KB) (1.14ms)
  • Before Access::preloadComponents (all components) (34.53KB) (1.53ms)
  • After Access::preloadComponents (all components) (115.88KB) (449μs)
  • Before Access::preloadPermissions (com_content) (1.51KB) (10μs)
  • After Access::preloadPermissions (com_content) (16.82MB) (29.52ms)
  • Before Access::getAssetRules (id:40700 name:com_content.article.20024) (514.65KB) (535μs)
  • After Access::getAssetRules (id:40700 name:com_content.article.20024) (12.67KB) (256μs)
  • afterRenderComponent com_content (639.45KB) (44.81ms)
  • afterDispatch (2.44KB) (529μs)
  • beforeRenderRawModule mod_login (Accedi all'area riservata) (1.75MB) (12.55ms)
  • afterRenderRawModule mod_login (Accedi all'area riservata) (62.87KB) (2.44ms)
  • beforeRenderModule mod_login (Accedi all'area riservata) (736B) (2μs)
  • afterRenderModule mod_login (Accedi all'area riservata) (5.95KB) (303μs)
  • beforeRenderRawModule mod_menu (Main Menu) (33.91KB) (3.31ms)
  • afterRenderRawModule mod_menu (Main Menu) (21.86KB) (28.68ms)
  • beforeRenderModule mod_menu (Main Menu) (704B) (2μs)
  • afterRenderModule mod_menu (Main Menu) (11.27KB) (594μs)
  • beforeRenderRawModule mod_menu (Social) (41.43KB) (398μs)
  • afterRenderRawModule mod_menu (Social) (60.09KB) (3.18ms)
  • beforeRenderModule mod_menu (Social) (704B) (2μs)
  • afterRenderModule mod_menu (Social) (3.92KB) (500μs)
  • beforeRenderRawModule mod_menu (Media) (912B) (9μs)
  • afterRenderRawModule mod_menu (Media) (14.41KB) (2.71ms)
  • beforeRenderModule mod_menu (Media) (704B) (2μs)
  • afterRenderModule mod_menu (Media) (3.11KB) (498μs)
  • beforeRenderRawModule mod_menu (Policies) (616B) (24μs)
  • afterRenderRawModule mod_menu (Policies) (23.48KB) (4.23ms)
  • beforeRenderModule mod_menu (Policies) (704B) (2μs)
  • afterRenderModule mod_menu (Policies) (3.3KB) (490μs)
  • beforeRenderRawModule mod_menu (Store) (912B) (9μs)
  • afterRenderRawModule mod_menu (Store) (18.38KB) (3.2ms)
  • beforeRenderModule mod_menu (Store) (704B) (2μs)
  • afterRenderModule mod_menu (Store) (3.3KB) (496μs)
  • beforeRenderRawModule mod_menu (Info) (440B) (23μs)
  • afterRenderRawModule mod_menu (Info) (11.67KB) (2.18ms)
  • beforeRenderModule mod_menu (Info) (704B) (2μs)
  • afterRenderModule mod_menu (Info) (3.05KB) (495μs)
  • beforeRenderRawModule mod_menu (Marketing) (896B) (7μs)
  • afterRenderRawModule mod_menu (Marketing) (20.39KB) (3.73ms)
  • beforeRenderModule mod_menu (Marketing) (704B) (2μs)
  • afterRenderModule mod_menu (Marketing) (3.3KB) (495μs)
  • beforeRenderRawModule mod_custom (Certifico s.r.l.) (2.29KB) (22μs)
  • afterRenderRawModule mod_custom (Certifico s.r.l.) (4.22KB) (488μs)
  • beforeRenderModule mod_custom (Certifico s.r.l.) (720B) (2μs)
  • afterRenderModule mod_custom (Certifico s.r.l.) (3.36KB) (514μs)
  • beforeRenderRawModule mod_menu (Documenti Abbonati) (1.96KB) (22μs)
  • afterRenderRawModule mod_menu (Documenti Abbonati) (164.93KB) (6.32ms)
  • beforeRenderModule mod_menu (Documenti Abbonati) (720B) (2μs)
  • afterRenderModule mod_menu (Documenti Abbonati) (3.94KB) (505μs)
  • beforeRenderRawModule mod_articles_categories (Sicurezza lavoro) (2.36KB) (9μs)
  • afterRenderRawModule mod_articles_categories (Sicurezza lavoro) (450.51KB) (17.83ms)
  • beforeRenderModule mod_articles_categories (Sicurezza lavoro) (720B) (3μs)
  • afterRenderModule mod_articles_categories (Sicurezza lavoro) (14.52KB) (528μs)
  • beforeRenderRawModule mod_custom (Regolamento Macchine) (9.7KB) (11μs)
  • afterRenderRawModule mod_custom (Regolamento Macchine) (1.03KB) (112μs)
  • beforeRenderModule mod_custom (Regolamento Macchine) (720B) (2μs)
  • afterRenderModule mod_custom (Regolamento Macchine) (5.08KB) (177μs)
  • beforeRenderRawModule mod_custom (D. Lgs. 81/2008 - TUSSL) (13.5KB) (7μs)
  • afterRenderRawModule mod_custom (D. Lgs. 81/2008 - TUSSL) (928B) (88μs)
  • beforeRenderModule mod_custom (D. Lgs. 81/2008 - TUSSL) (720B) (1μs)
  • afterRenderModule mod_custom (D. Lgs. 81/2008 - TUSSL) (4.02KB) (71μs)
  • beforeRenderRawModule mod_custom (Codice Prevenzione Incendi | RTO II) (2.25KB) (7μs)
  • afterRenderRawModule mod_custom (Codice Prevenzione Incendi | RTO II) (3.41KB) (89μs)
  • beforeRenderModule mod_custom (Codice Prevenzione Incendi | RTO II) (736B) (1μs)
  • afterRenderModule mod_custom (Codice Prevenzione Incendi | RTO II) (4.16KB) (71μs)
  • beforeRenderRawModule mod_custom (TUA | Testo Unico Ambiente) (1.63KB) (6μs)
  • afterRenderRawModule mod_custom (TUA | Testo Unico Ambiente) (928B) (89μs)
  • beforeRenderModule mod_custom (TUA | Testo Unico Ambiente) (736B) (1μs)
  • afterRenderModule mod_custom (TUA | Testo Unico Ambiente) (4.03KB) (68μs)
  • beforeRenderRawModule mod_custom (TUSSL / Link) (2.52KB) (5μs)
  • afterRenderRawModule mod_custom (TUSSL / Link) (976B) (84μs)
  • beforeRenderModule mod_custom (TUSSL / Link) (720B) (1μs)
  • afterRenderModule mod_custom (TUSSL / Link) (3.64KB) (66μs)
  • beforeRenderRawModule mod_custom (Glossario Certifico HSE) (2.38KB) (5μs)
  • afterRenderRawModule mod_custom (Glossario Certifico HSE) (1.03KB) (84μs)
  • beforeRenderModule mod_custom (Glossario Certifico HSE) (720B) (1μs)
  • afterRenderModule mod_custom (Glossario Certifico HSE) (3.77KB) (66μs)
  • beforeRenderRawModule mod_custom (CEM4 || Ultimo aggiornamento) (2KB) (6μs)
  • afterRenderRawModule mod_custom (CEM4 || Ultimo aggiornamento) (1.03KB) (78μs)
  • beforeRenderModule mod_custom (CEM4 || Ultimo aggiornamento) (736B) (1μs)
  • afterRenderModule mod_custom (CEM4 || Ultimo aggiornamento) (3.91KB) (62μs)
  • beforeRenderRawModule mod_custom (D. Lgs. 231/2001 - Responsabilità amministrativa enti) (2.09KB) (6μs)
  • afterRenderRawModule mod_custom (D. Lgs. 231/2001 - Responsabilità amministrativa enti) (960B) (78μs)
  • beforeRenderModule mod_custom (D. Lgs. 231/2001 - Responsabilità amministrativa enti) (752B) (1μs)
  • afterRenderModule mod_custom (D. Lgs. 231/2001 - Responsabilità amministrativa enti) (4.42KB) (62μs)
  • beforeRenderRawModule mod_custom (D. Lgs. 196/2003 - Codice protezione dati personali | GDPR) (1.78KB) (6μs)
  • afterRenderRawModule mod_custom (D. Lgs. 196/2003 - Codice protezione dati personali | GDPR) (960B) (83μs)
  • beforeRenderModule mod_custom (D. Lgs. 196/2003 - Codice protezione dati personali | GDPR) (768B) (0μs)
  • afterRenderModule mod_custom (D. Lgs. 196/2003 - Codice protezione dati personali | GDPR) (4.44KB) (65μs)
  • beforeRenderRawModule mod_custom (D. Lgs. 101/2020 - Protezione esposizione radiazioni ionizzanti) (2.72KB) (5μs)
  • afterRenderRawModule mod_custom (D. Lgs. 101/2020 - Protezione esposizione radiazioni ionizzanti) (960B) (77μs)
  • beforeRenderModule mod_custom (D. Lgs. 101/2020 - Protezione esposizione radiazioni ionizzanti) (768B) (1μs)
  • afterRenderModule mod_custom (D. Lgs. 101/2020 - Protezione esposizione radiazioni ionizzanti) (4.44KB) (61μs)
  • beforeRenderRawModule mod_custom (Direttiva macchine e norme armonizzate) (2.73KB) (5μs)
  • afterRenderRawModule mod_custom (Direttiva macchine e norme armonizzate) (1.05KB) (77μs)
  • beforeRenderModule mod_custom (Direttiva macchine e norme armonizzate) (736B) (1μs)
  • afterRenderModule mod_custom (Direttiva macchine e norme armonizzate) (4.16KB) (61μs)
  • beforeRenderRawModule mod_custom (Certifico ADR) (2.77KB) (4μs)
  • afterRenderRawModule mod_custom (Certifico ADR) (1.02KB) (77μs)
  • beforeRenderModule mod_custom (Certifico ADR) (720B) (1μs)
  • afterRenderModule mod_custom (Certifico ADR) (3.89KB) (61μs)
  • beforeRenderRawModule mod_custom (MOCA - GMP | Consolidato) (1.5KB) (5μs)
  • afterRenderRawModule mod_custom (MOCA - GMP | Consolidato) (1.03KB) (77μs)
  • beforeRenderModule mod_custom (MOCA - GMP | Consolidato) (736B) (1μs)
  • afterRenderModule mod_custom (MOCA - GMP | Consolidato) (4.02KB) (61μs)
  • beforeRenderRawModule mod_custom (Codice Unico Sicurezza) (2.25KB) (5μs)
  • afterRenderRawModule mod_custom (Codice Unico Sicurezza) (928B) (77μs)
  • beforeRenderModule mod_custom (Codice Unico Sicurezza) (720B) (0μs)
  • afterRenderModule mod_custom (Codice Unico Sicurezza) (4.02KB) (61μs)
  • beforeRenderRawModule mod_custom (DM 21 Marzo 1973 | MOCA IT) (2.38KB) (4μs)
  • afterRenderRawModule mod_custom (DM 21 Marzo 1973 | MOCA IT) (1.03KB) (77μs)
  • beforeRenderModule mod_custom (DM 21 Marzo 1973 | MOCA IT) (736B) (1μs)
  • afterRenderModule mod_custom (DM 21 Marzo 1973 | MOCA IT) (4.03KB) (60μs)
  • beforeRenderRawModule mod_custom (Abbonamento Full) (2.39KB) (5μs)
  • afterRenderRawModule mod_custom (Abbonamento Full) (912B) (78μs)
  • beforeRenderModule mod_custom (Abbonamento Full) (720B) (0μs)
  • afterRenderModule mod_custom (Abbonamento Full) (4.89KB) (63μs)
  • beforeRenderRawModule mod_custom (Abbonamento Full Plus) (1.63KB) (6μs)
  • afterRenderRawModule mod_custom (Abbonamento Full Plus) (912B) (77μs)
  • beforeRenderModule mod_custom (Abbonamento Full Plus) (720B) (1μs)
  • afterRenderModule mod_custom (Abbonamento Full Plus) (4.14KB) (65μs)
  • beforeRenderRawModule mod_custom (Store Certifico) (3.27KB) (5μs)
  • afterRenderRawModule mod_custom (Store Certifico) (976B) (78μs)
  • beforeRenderModule mod_custom (Store Certifico) (720B) (1μs)
  • afterRenderModule mod_custom (Store Certifico) (3.58KB) (60μs)
  • beforeRenderRawModule mod_custom (Food Safety book) (2.52KB) (4μs)
  • afterRenderRawModule mod_custom (Food Safety book) (12.02KB) (79μs)
  • beforeRenderModule mod_custom (Food Safety book) (720B) (1μs)
  • afterRenderModule mod_custom (Food Safety book) (4.02KB) (59μs)
  • beforeRenderRawModule mod_custom (MEPA) (1.95KB) (5μs)
  • afterRenderRawModule mod_custom (MEPA) (960B) (78μs)
  • beforeRenderModule mod_custom (MEPA) (704B) (0μs)
  • afterRenderModule mod_custom (MEPA) (3.75KB) (61μs)
  • beforeRenderRawModule mod_menu (Temi) (904B) (22μs)
  • afterRenderRawModule mod_menu (Temi) (292.94KB) (38.22ms)
  • beforeRenderModule mod_menu (Temi) (704B) (4μs)
  • afterRenderModule mod_menu (Temi) (22.67KB) (516μs)
  • beforeRenderRawModule mod_custom (Titolo "Sicurezza lavoro") (2.18KB) (52μs)
  • afterRenderRawModule mod_custom (Titolo "Sicurezza lavoro") (1008B) (119μs)
  • beforeRenderModule mod_custom (Titolo "Sicurezza lavoro") (736B) (1μs)
  • afterRenderModule mod_custom (Titolo "Sicurezza lavoro") (2.69KB) (466μs)
  • beforeRenderRawModule mod_menu (Top Menu) (2.56KB) (52μs)
  • afterRenderRawModule mod_menu (Top Menu) (31.08KB) (4.32ms)
  • beforeRenderModule mod_menu (Top Menu) (704B) (2μs)
  • afterRenderModule mod_menu (Top Menu) (4.11KB) (76μs)
  • afterRender (803.77KB) (26.15ms)
  • 1 x afterRenderComponent com_content (639.45KB) (15.18%)
    44.81ms
    1 x afterRenderRawModule mod_menu (Temi) (292.94KB) (12.95%)
    38.22ms
    1 x afterInitialise (3.35MB) (10.65%)
    31.46ms
    1 x After Access::preloadPermissions (com_content) (16.82MB) (10%)
    29.52ms
    1 x afterRenderRawModule mod_menu (Main Menu) (21.86KB) (9.71%)
    28.68ms
    1 x afterRender (803.77KB) (8.86%)
    26.15ms
    1 x afterRenderRawModule mod_articles_categories (Sicurezza lavoro) (450.51KB) (6.04%)
    17.83ms
    1 x beforeRenderRawModule mod_login (Accedi all'area riservata) (1.75MB) (4.25%)
    12.55ms
    1 x afterRoute (370.42KB) (3.53%)
    10.42ms
    1 x afterRenderRawModule mod_menu (Documenti Abbonati) (164.93KB) (2.14%)
    6.32ms
    1 x afterRenderRawModule mod_menu (Top Menu) (31.08KB) (1.46%)
    4.32ms
    1 x afterLoad (86.59KB) (1.46%)
    4.31ms
    1 x afterRenderRawModule mod_menu (Policies) (23.48KB) (1.43%)
    4.23ms
    1 x afterRenderRawModule mod_menu (Marketing) (20.39KB) (1.26%)
    3.73ms
    1 x beforeRenderRawModule mod_menu (Main Menu) (33.91KB) (1.12%)
    3.31ms
    1 x afterRenderRawModule mod_menu (Store) (18.38KB) (1.08%)
    3.20ms
    1 x afterRenderRawModule mod_menu (Social) (60.09KB) (1.08%)
    3.18ms
    1 x afterRenderRawModule mod_menu (Media) (14.41KB) (0.92%)
    2.71ms
    1 x afterRenderRawModule mod_login (Accedi all'area riservata) (62.87KB) (0.83%)
    2.44ms
    1 x afterRenderRawModule mod_menu (Info) (11.67KB) (0.74%)
    2.18ms
    1 x Before Access::preloadComponents (all components) (34.53KB) (0.52%)
    1.53ms
    1 x beforeRenderComponent com_content (37.3KB) (0.39%)
    1.14ms
    1 x afterRenderModule mod_menu (Main Menu) (11.27KB) (0.2%)
    594μs
    1 x Before Access::getAssetRules (id:40700 name:com_content.article.20024) (514.65KB) (0.18%)
    535μs
    1 x afterDispatch (2.44KB) (0.18%)
    529μs
    1 x afterRenderModule mod_articles_categories (Sicurezza lavoro) (14.52KB) (0.18%)
    528μs
    1 x afterRenderModule mod_menu (Temi) (22.67KB) (0.17%)
    516μs
    1 x afterRenderModule mod_custom (Certifico s.r.l.) (3.36KB) (0.17%)
    514μs
    1 x afterRenderModule mod_menu (Documenti Abbonati) (3.94KB) (0.17%)
    505μs
    1 x afterRenderModule mod_menu (Social) (3.92KB) (0.17%)
    500μs
    1 x afterRenderModule mod_menu (Media) (3.11KB) (0.17%)
    498μs
    1 x afterRenderModule mod_menu (Store) (3.3KB) (0.17%)
    496μs
    1 x afterRenderModule mod_menu (Info) (3.05KB) (0.17%)
    495μs
    1 x afterRenderModule mod_menu (Marketing) (3.3KB) (0.17%)
    495μs
    1 x afterRenderModule mod_menu (Policies) (3.3KB) (0.17%)
    490μs
    1 x afterRenderRawModule mod_custom (Certifico s.r.l.) (4.22KB) (0.17%)
    488μs
    1 x afterRenderModule mod_custom (Titolo "Sicurezza lavoro") (2.69KB) (0.16%)
    466μs
    1 x After Access::preloadComponents (all components) (115.88KB) (0.15%)
    449μs
    1 x beforeRenderRawModule mod_menu (Social) (41.43KB) (0.13%)
    398μs
    1 x afterRenderModule mod_login (Accedi all'area riservata) (5.95KB) (0.1%)
    303μs
    1 x After Access::getAssetRules (id:40700 name:com_content.article.20024) (12.67KB) (0.09%)
    256μs
    1 x afterRenderModule mod_custom (Regolamento Macchine) (5.08KB) (0.06%)
    177μs
    1 x afterRenderRawModule mod_custom (Titolo "Sicurezza lavoro") (1008B) (0.04%)
    119μs
    1 x afterRenderRawModule mod_custom (Regolamento Macchine) (1.03KB) (0.04%)
    112μs
    1 x afterRenderRawModule mod_custom (Codice Prevenzione Incendi | RTO II) (3.41KB) (0.03%)
    89μs
    1 x afterRenderRawModule mod_custom (TUA | Testo Unico Ambiente) (928B) (0.03%)
    89μs
    1 x afterRenderRawModule mod_custom (D. Lgs. 81/2008 - TUSSL) (928B) (0.03%)
    88μs
    1 x afterRenderRawModule mod_custom (TUSSL / Link) (976B) (0.03%)
    84μs
    1 x afterRenderRawModule mod_custom (Glossario Certifico HSE) (1.03KB) (0.03%)
    84μs
    1 x afterRenderRawModule mod_custom (D. Lgs. 196/2003 - Codice protezione dati personali | GDPR) (960B) (0.03%)
    83μs
    1 x afterRenderRawModule mod_custom (Food Safety book) (12.02KB) (0.03%)
    79μs
    1 x afterRenderRawModule mod_custom (CEM4 || Ultimo aggiornamento) (1.03KB) (0.03%)
    78μs
    1 x afterRenderRawModule mod_custom (D. Lgs. 231/2001 - Responsabilità amministrativa enti) (960B) (0.03%)
    78μs
    1 x afterRenderRawModule mod_custom (Abbonamento Full) (912B) (0.03%)
    78μs
    1 x afterRenderRawModule mod_custom (Store Certifico) (976B) (0.03%)
    78μs
    1 x afterRenderRawModule mod_custom (MEPA) (960B) (0.03%)
    78μs
    1 x afterRenderRawModule mod_custom (D. Lgs. 101/2020 - Protezione esposizione radiazioni ionizzanti) (960B) (0.03%)
    77μs
    1 x afterRenderRawModule mod_custom (Direttiva macchine e norme armonizzate) (1.05KB) (0.03%)
    77μs
    1 x afterRenderRawModule mod_custom (Certifico ADR) (1.02KB) (0.03%)
    77μs
    1 x afterRenderRawModule mod_custom (MOCA - GMP | Consolidato) (1.03KB) (0.03%)
    77μs
    1 x afterRenderRawModule mod_custom (Codice Unico Sicurezza) (928B) (0.03%)
    77μs
    1 x afterRenderRawModule mod_custom (DM 21 Marzo 1973 | MOCA IT) (1.03KB) (0.03%)
    77μs
    1 x afterRenderRawModule mod_custom (Abbonamento Full Plus) (912B) (0.03%)
    77μs
    1 x afterRenderModule mod_menu (Top Menu) (4.11KB) (0.03%)
    76μs
    1 x afterRenderModule mod_custom (D. Lgs. 81/2008 - TUSSL) (4.02KB) (0.02%)
    71μs
    1 x afterRenderModule mod_custom (Codice Prevenzione Incendi | RTO II) (4.16KB) (0.02%)
    71μs
    1 x afterRenderModule mod_custom (TUA | Testo Unico Ambiente) (4.03KB) (0.02%)
    68μs
    1 x afterRenderModule mod_custom (TUSSL / Link) (3.64KB) (0.02%)
    66μs
    1 x afterRenderModule mod_custom (Glossario Certifico HSE) (3.77KB) (0.02%)
    66μs
    1 x afterRenderModule mod_custom (Abbonamento Full Plus) (4.14KB) (0.02%)
    65μs
    1 x afterRenderModule mod_custom (D. Lgs. 196/2003 - Codice protezione dati personali | GDPR) (4.44KB) (0.02%)
    65μs
    1 x afterRenderModule mod_custom (Abbonamento Full) (4.89KB) (0.02%)
    63μs
    1 x afterRenderModule mod_custom (CEM4 || Ultimo aggiornamento) (3.91KB) (0.02%)
    62μs
    1 x afterRenderModule mod_custom (D. Lgs. 231/2001 - Responsabilità amministrativa enti) (4.42KB) (0.02%)
    62μs
    1 x afterRenderModule mod_custom (D. Lgs. 101/2020 - Protezione esposizione radiazioni ionizzanti) (4.44KB) (0.02%)
    61μs
    1 x afterRenderModule mod_custom (Direttiva macchine e norme armonizzate) (4.16KB) (0.02%)
    61μs
    1 x afterRenderModule mod_custom (Certifico ADR) (3.89KB) (0.02%)
    61μs
    1 x afterRenderModule mod_custom (MOCA - GMP | Consolidato) (4.02KB) (0.02%)
    61μs
    1 x afterRenderModule mod_custom (Codice Unico Sicurezza) (4.02KB) (0.02%)
    61μs
    1 x afterRenderModule mod_custom (MEPA) (3.75KB) (0.02%)
    61μs
    1 x afterRenderModule mod_custom (Store Certifico) (3.58KB) (0.02%)
    60μs
    1 x afterRenderModule mod_custom (DM 21 Marzo 1973 | MOCA IT) (4.03KB) (0.02%)
    60μs
    1 x afterRenderModule mod_custom (Food Safety book) (4.02KB) (0.02%)
    59μs
    1 x beforeRenderRawModule mod_custom (Titolo "Sicurezza lavoro") (2.18KB) (0.02%)
    52μs
    1 x beforeRenderRawModule mod_menu (Top Menu) (2.56KB) (0.02%)
    52μs
    1 x beforeRenderRawModule mod_menu (Policies) (616B) (0.01%)
    24μs
    1 x beforeRenderRawModule mod_menu (Info) (440B) (0.01%)
    23μs
    1 x beforeRenderRawModule mod_menu (Temi) (904B) (0.01%)
    22μs
    1 x beforeRenderRawModule mod_custom (Certifico s.r.l.) (2.29KB) (0.01%)
    22μs
    1 x beforeRenderRawModule mod_menu (Documenti Abbonati) (1.96KB) (0.01%)
    22μs
    1 x beforeRenderRawModule mod_custom (Regolamento Macchine) (9.7KB) (0%)
    11μs
    1 x Before Access::preloadPermissions (com_content) (1.51KB) (0%)
    10μs
    1 x beforeRenderRawModule mod_menu (Media) (912B) (0%)
    9μs
    1 x beforeRenderRawModule mod_menu (Store) (912B) (0%)
    9μs
    1 x beforeRenderRawModule mod_articles_categories (Sicurezza lavoro) (2.36KB) (0%)
    9μs
    1 x beforeRenderRawModule mod_menu (Marketing) (896B) (0%)
    7μs
    1 x beforeRenderRawModule mod_custom (D. Lgs. 81/2008 - TUSSL) (13.5KB) (0%)
    7μs
    1 x beforeRenderRawModule mod_custom (Codice Prevenzione Incendi | RTO II) (2.25KB) (0%)
    7μs
    1 x beforeRenderRawModule mod_custom (TUA | Testo Unico Ambiente) (1.63KB) (0%)
    6μs
    1 x beforeRenderRawModule mod_custom (CEM4 || Ultimo aggiornamento) (2KB) (0%)
    6μs
    1 x beforeRenderRawModule mod_custom (D. Lgs. 231/2001 - Responsabilità amministrativa enti) (2.09KB) (0%)
    6μs
    1 x beforeRenderRawModule mod_custom (D. Lgs. 196/2003 - Codice protezione dati personali | GDPR) (1.78KB) (0%)
    6μs
    1 x beforeRenderRawModule mod_custom (Abbonamento Full Plus) (1.63KB) (0%)
    6μs
    1 x beforeRenderRawModule mod_custom (TUSSL / Link) (2.52KB) (0%)
    5μs
    1 x beforeRenderRawModule mod_custom (Glossario Certifico HSE) (2.38KB) (0%)
    5μs
    1 x beforeRenderRawModule mod_custom (D. Lgs. 101/2020 - Protezione esposizione radiazioni ionizzanti) (2.72KB) (0%)
    5μs
    1 x beforeRenderRawModule mod_custom (Direttiva macchine e norme armonizzate) (2.73KB) (0%)
    5μs
    1 x beforeRenderRawModule mod_custom (MOCA - GMP | Consolidato) (1.5KB) (0%)
    5μs
    1 x beforeRenderRawModule mod_custom (Codice Unico Sicurezza) (2.25KB) (0%)
    5μs
    1 x beforeRenderRawModule mod_custom (Abbonamento Full) (2.39KB) (0%)
    5μs
    1 x beforeRenderRawModule mod_custom (Store Certifico) (3.27KB) (0%)
    5μs
    1 x beforeRenderRawModule mod_custom (MEPA) (1.95KB) (0%)
    5μs
    1 x beforeRenderRawModule mod_custom (Certifico ADR) (2.77KB) (0%)
    4μs
    1 x beforeRenderRawModule mod_custom (DM 21 Marzo 1973 | MOCA IT) (2.38KB) (0%)
    4μs
    1 x beforeRenderRawModule mod_custom (Food Safety book) (2.52KB) (0%)
    4μs
    1 x beforeRenderModule mod_menu (Temi) (704B) (0%)
    4μs
    1 x beforeRenderModule mod_articles_categories (Sicurezza lavoro) (720B) (0%)
    3μs
    1 x beforeRenderModule mod_login (Accedi all'area riservata) (736B) (0%)
    2μs
    1 x beforeRenderModule mod_menu (Social) (704B) (0%)
    2μs
    1 x beforeRenderModule mod_menu (Media) (704B) (0%)
    2μs
    1 x beforeRenderModule mod_menu (Policies) (704B) (0%)
    2μs
    1 x beforeRenderModule mod_menu (Documenti Abbonati) (720B) (0%)
    2μs
    1 x beforeRenderModule mod_menu (Top Menu) (704B) (0%)
    2μs
    1 x beforeRenderModule mod_menu (Main Menu) (704B) (0%)
    2μs
    1 x beforeRenderModule mod_menu (Store) (704B) (0%)
    2μs
    1 x beforeRenderModule mod_menu (Info) (704B) (0%)
    2μs
    1 x beforeRenderModule mod_menu (Marketing) (704B) (0%)
    2μs
    1 x beforeRenderModule mod_custom (Certifico s.r.l.) (720B) (0%)
    2μs
    1 x beforeRenderModule mod_custom (Regolamento Macchine) (720B) (0%)
    2μs
    1 x beforeRenderModule mod_custom (CEM4 || Ultimo aggiornamento) (736B) (0%)
    1μs
    1 x beforeRenderModule mod_custom (DM 21 Marzo 1973 | MOCA IT) (736B) (0%)
    1μs
    1 x beforeRenderModule mod_custom (D. Lgs. 81/2008 - TUSSL) (720B) (0%)
    1μs
    1 x beforeRenderModule mod_custom (Codice Prevenzione Incendi | RTO II) (736B) (0%)
    1μs
    1 x beforeRenderModule mod_custom (TUA | Testo Unico Ambiente) (736B) (0%)
    1μs
    1 x beforeRenderModule mod_custom (TUSSL / Link) (720B) (0%)
    1μs
    1 x beforeRenderModule mod_custom (Glossario Certifico HSE) (720B) (0%)
    1μs
    1 x beforeRenderModule mod_custom (D. Lgs. 231/2001 - Responsabilità amministrativa enti) (752B) (0%)
    1μs
    1 x beforeRenderModule mod_custom (D. Lgs. 101/2020 - Protezione esposizione radiazioni ionizzanti) (768B) (0%)
    1μs
    1 x beforeRenderModule mod_custom (Direttiva macchine e norme armonizzate) (736B) (0%)
    1μs
    1 x beforeRenderModule mod_custom (Certifico ADR) (720B) (0%)
    1μs
    1 x beforeRenderModule mod_custom (MOCA - GMP | Consolidato) (736B) (0%)
    1μs
    1 x beforeRenderModule mod_custom (Abbonamento Full Plus) (720B) (0%)
    1μs
    1 x beforeRenderModule mod_custom (Store Certifico) (720B) (0%)
    1μs
    1 x beforeRenderModule mod_custom (Food Safety book) (720B) (0%)
    1μs
    1 x beforeRenderModule mod_custom (Titolo "Sicurezza lavoro") (736B) (0%)
    1μs
    1 x beforeRenderModule mod_custom (D. Lgs. 196/2003 - Codice protezione dati personali | GDPR) (768B) (0%)
    0μs
    1 x beforeRenderModule mod_custom (Codice Unico Sicurezza) (720B) (0%)
    0μs
    1 x beforeRenderModule mod_custom (Abbonamento Full) (720B) (0%)
    0μs
    1 x beforeRenderModule mod_custom (MEPA) (704B) (0%)
    0μs
77 statements were executed, 25 of which were duplicates, 52 unique42.12ms4.97MB
  • SELECT @@SESSION.sql_mode;34μs968BExplainStack/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:308Copy
  • SELECT `data` FROM `com_session` WHERE `session_id` = ?42μs1KBParamsExplainStack/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:250Copy
  • SELECT `session_id` FROM `com_session` WHERE `session_id` = :session_id LIMIT 127μs1.31KBParamsExplainStack/libraries/src/Session/MetadataManager.php:187Copy
  • UPDATE `com_session` SET `guest` = :guest , `time` = :time , `userid` = :user_id , `username` = :username , `client_id` = :client_id WHERE `session_id` = :session_id37μs992BParamsStack/libraries/src/Session/MetadataManager.php:316Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `com_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 196μs1.56KBExplainStack/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `com_viewlevels`29μs656BExplainStack/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `com_usergroups` AS `a` LEFT JOIN `com_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest47μs1.33KBParamsExplainStack/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `com_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`263μs4.48KBParamsExplainStack/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `com_menu` AS `m` LEFT JOIN `com_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`509μs375.92KBParamsExplainStack/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`178μs4.02KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id` FROM `com_content` WHERE `alias` = :segment AND `catid` = :id67μs1.34KBParamsExplainStack/components/com_content/src/Service/Router.php:263Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `com_template_styles` AS `s` LEFT JOIN `com_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 1103μs60.84KBExplainStack/administrator/components/com_templates/src/Model/StyleModel.php:775Copy
  • SELECT * FROM `com_template_styles` WHERE `client_id` = 0 AND `id` = '13'53μs40.91KBExplainStack/plugins/system/helixultimate/src/Platform/Helper.php:57Copy
  • SELECT * FROM `com_languages` WHERE `published` = 1 ORDER BY `ordering` ASC63μs1.59KBExplainStack/libraries/src/Language/LanguageHelper.php:177Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `com_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39)258μs7.44KBParamsExplainStack/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `com_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 015.9ms3.92MBParamsExplainStack/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `com_content`419μs3.02KBStack/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `com_content` SET `hits` = (`hits` + 1) WHERE `id` = '20024'1.54ms48BStack/libraries/src/Table/Table.php:1348Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `com_content` AS `a` INNER JOIN `com_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `com_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `com_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `com_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `com_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)173μs78.12KBParamsExplainStack/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`146μs3.95KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `com_contentitem_tag_map` AS `m` INNER JOIN `com_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)2.67ms4.02KBParamsExplainStack/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`215μs3.95KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM com_fields AS a LEFT JOIN `com_languages` AS l ON l.lang_code = a.language LEFT JOIN com_users AS uc ON uc.id=a.checked_out LEFT JOIN com_viewlevels AS ag ON ag.id = a.access LEFT JOIN com_users AS ua ON ua.id = a.created_user_id LEFT JOIN com_fields_groups AS g ON g.id = a.group_id LEFT JOIN `com_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5)) AND `a`.`access` IN (:preparedArray6,:preparedArray7)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray8,:preparedArray9)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC364μs4.81KBParamsExplainStack/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
  • SELECT `a`.`id`,`a`.`title`,`a`.`catid`,`a`.`language`, CASE WHEN CHAR_LENGTH(`a`.`alias`) != 0 THEN CONCAT_WS(':', `a`.`id`, `a`.`alias`) ELSE a.id END AS `slug`, CASE WHEN CHAR_LENGTH(`cc`.`alias`) != 0 THEN CONCAT_WS(':', `cc`.`id`, `cc`.`alias`) ELSE cc.id END AS `catslug` FROM `com_content` AS `a` LEFT JOIN `com_categories` AS `cc` ON `cc`.`id` = `a`.`catid` WHERE `a`.`catid` = :catid AND `a`.`state` = :state AND `a`.`access` IN (:preparedArray1,:preparedArray2) AND (`publish_up` IS NULL OR `publish_up` <= :nowDate1) AND (`publish_down` IS NULL OR `publish_down` >= :nowDate2) ORDER BY CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END DESC3.58ms93.72KBParamsExplainStack/plugins/content/pagenavigation/src/Extension/PageNavigation.php:188Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`139μs3.95KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT * FROM com_hikashop_config129μs24.63KBExplainStack/administrator/components/com_hikashop/classes/config.php:16Copy
  • SET sql_mode=(SELECT REPLACE(REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''), 'STRICT_TRANS_TABLES', ''));23μs0BStack/administrator/components/com_hikashop/helpers/helper.php:3558Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `com_modules` AS `m` LEFT JOIN `com_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `com_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1,:preparedArray2)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) ORDER BY `m`.`position`,`m`.`ordering`962μs148.81KBParamsExplainStack/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id58μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id36μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug`,( SELECT COUNT(`i`.`id`) FROM `com_content` AS `i` WHERE `i`.`catid` = `c`.`id` AND `i`.`state` = 1) AS `numitems` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`9.89ms4.34KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`263μs4.06KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`221μs6.45KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`228μs3.95KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`182μs3.95KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`170μs3.95KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`161μs3.95KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`161μs3.95KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`169μs3.95KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`171μs3.95KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`164μs3.94KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`172μs3.94KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT * FROM `com_schemaorg` WHERE `itemId` = :itemId AND `context` = :context50μs1.55KBParamsExplainStack/plugins/system/schemaorg/src/Extension/Schemaorg.php:403Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `com_content` AS `a` INNER JOIN `com_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `com_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `com_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `com_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `com_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)177μs78.17KBParamsExplainStack/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `com_scheduler_tasks` AS `a` WHERE `a`.`state` = 151μs1.37KBParamsExplainStack/administrator/components/com_scheduler/src/Model/TasksModel.php:517Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id60μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`108μs3.88KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id35μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id30μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`72μs3.88KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id24μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id24μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`193μs3.95KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id28μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id24μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`172μs3.94KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id28μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`168μs3.94KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id27μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`168μs3.95KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id27μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id21μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id21μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id19μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id21μs12.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id27μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id20μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id21μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id19μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id20μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id19μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id20μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `com_categories` AS `s` INNER JOIN `com_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`178μs3.95KBParamsExplainStack/libraries/src/Categories/Categories.php:375Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id26μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `com_content` WHERE `id` = :id28μs1.31KBParamsExplainStack/components/com_content/src/Service/Router.php:168Copy
  • SELECT `session_id` FROM `com_session` WHERE `session_id` = ?34μs1KBParamsExplainStack/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:277Copy
  • UPDATE `com_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?47μs592BParamsStack/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:301Copy