[Errore] Dichiarazione classe phpbb\class_loader

Area dedicata al phpBB 3.2.X
Rispondi
Avatar utente
Mask
Nuovo Utente
Nuovo Utente
Messaggi: 9
Iscritto il: 09/11/2019, 20:21
Link del Forum: http://80.211.75.170/forum

[Errore] Dichiarazione classe phpbb\class_loader

Messaggio da Mask »

Buonasera a tutti,

oggi mi è stato chiesto se era possibile avere sul forum la visualizzazione degli ultimi post commentati come appare su altre piattaforme Forum, dopo aver cercato un pò in giro, non ho trovato nulla che facesse al mio caso così da bravo programmatore (e si, anche smanettone) mi sono messo a studiare il db e creare un piccolo script in Php che lo facesse. Attualmente funziona solo che non tiene conto se l'utente può visualizzare o meno quel post, così mi sono informato un pò sulla wiki e ho visto che si può accere alla variabile di sessione dell'utente.
Dopo aver incluso il codice sottostante, carico il file e trovo un'errore che non sono riuscito ad aggiustare.

Codice: Seleziona tutto

<?php
    define('IN_PHPBB', true);
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);

    // Start session management
    $user->session_begin();
    $auth->acl($user->data);
    $user->setup();
?>
Ecco l'errore:

Fatal error: Cannot declare class phpbb\class_loader, because the name is already in use in /opt/lampp/htdocs/forum/phpbb/class_loader.php on line 27

Spero che qualcuno riesca ad aiutarmi a risolvere questo errore,
buona serata a tutti.
Avatar utente
alex75
Amministratore
Amministratore
Messaggi: 6152
Iscritto il: 23/08/2012, 23:45
Link del Forum: www.phpbb-italia.it
Località: Palermo

Re: [Errore] Dichiarazione classe phpbb\class_loader

Messaggio da alex75 »

Non ho capito esattamente cosa deve fare il tuo script. Magari esiste già un'estensione.
Dove hai inserito questo codice?
Regolamento Forum
Le nostre guide
Se l'assistenza prestata è stata di tuo gradimento potrai contribuire aiutandoci a sostenere le spese affrontate per tenere in vita questo forum >Cliccando sul seguente Link<
Avatar utente
Mask
Nuovo Utente
Nuovo Utente
Messaggi: 9
Iscritto il: 09/11/2019, 20:21
Link del Forum: http://80.211.75.170/forum

Re: [Errore] Dichiarazione classe phpbb\class_loader

Messaggio da Mask »

Ciao, grazie per la risposta.

Allora, il mio script mostra nella parte laterale del forum le ultime risposte date nei post, proprio come fa XenForo.

Ecco un'immagine per essere più chiaro:
Immagine

Lo script attuale, ti mostra gli ultimi 5 post commentati senza tener conto dei permessi dell'utente relativi alla sezione.
Così ho cercato sulla wiki se esistesse un modo per prendere i dati dalla sessione e mi sono imbattutto in questa pagina di phpbb.
Dopo aver aggiunto il codice sopra indicato, in cima alla pagina, mi ritorna quell'errore, nonostante io non provi a ri-dichiarare la classe.
Avatar utente
alex75
Amministratore
Amministratore
Messaggi: 6152
Iscritto il: 23/08/2012, 23:45
Link del Forum: www.phpbb-italia.it
Località: Palermo

Re: [Errore] Dichiarazione classe phpbb\class_loader

Messaggio da alex75 »

Adesso l'avviso di errore non si vede più.
Sarebbe utile vedere tutto l'intero codice.
Comunque esistono estensioni che più o meno fanno questo lavoro.
Potresti integrarle o prenderne spunto.
ad esempio:
database-extension-phpbb-3-2-x/top-stats-t4170.html
oppure
database-extension-phpbb-3-2-x/top-five-t3223.html
oppure
database-extension-3-1-x/top-ten-topics-t3170.html
Regolamento Forum
Le nostre guide
Se l'assistenza prestata è stata di tuo gradimento potrai contribuire aiutandoci a sostenere le spese affrontate per tenere in vita questo forum >Cliccando sul seguente Link<
Avatar utente
Mask
Nuovo Utente
Nuovo Utente
Messaggi: 9
Iscritto il: 09/11/2019, 20:21
Link del Forum: http://80.211.75.170/forum

Re: [Errore] Dichiarazione classe phpbb\class_loader

Messaggio da Mask »

Attualmente non si vede più l'errore perchè ho rimosso la parte del controllo.
Non serve vedere l'intero codice, perchè ho provato a rimuovere tutto il mio codice inserendo solo quello sopra citato e continua a dare errore, se riuscirò a fixare e a finirlo, rilascerò con piacere tutto lo script ottimizzato.

Ho già visto le estensioni che più o meno fanno quello che mi serve, ma non mi sono state molto di aiuto..

Comunque non sono sicuro di aver spiegato bene il mio problema, dimmelo pure se non sono stato chiaro.
Avatar utente
alex75
Amministratore
Amministratore
Messaggi: 6152
Iscritto il: 23/08/2012, 23:45
Link del Forum: www.phpbb-italia.it
Località: Palermo

Re: [Errore] Dichiarazione classe phpbb\class_loader

Messaggio da alex75 »

Il codice che hai postato è già integrato nella pagina del forum. A te serve un riconoscimento dei permessi dell'utente in fase di estrazione dal database.
Regolamento Forum
Le nostre guide
Se l'assistenza prestata è stata di tuo gradimento potrai contribuire aiutandoci a sostenere le spese affrontate per tenere in vita questo forum >Cliccando sul seguente Link<
Avatar utente
Mask
Nuovo Utente
Nuovo Utente
Messaggi: 9
Iscritto il: 09/11/2019, 20:21
Link del Forum: http://80.211.75.170/forum

Re: [Errore] Dichiarazione classe phpbb\class_loader

Messaggio da Mask »

Si, praticamente ho creato una pagina in Php e ci ho messo il codice postato sopra, successivamente ho richiamato la pagina in Php nel modulo index_body.html, abilitando il riconoscimento di INCLUDEPHP nell'acp. Successivamente sono andato sul forum e ho notato che da quell'errore, nonostante io non crei nessuna classe, ho solamente copia-incollato il codice dalla wiki.

Ora non so se è un mio problema (file corrotto o altro) o un problema di phpbb che ha sbagliato a fare il file, perchè con o senza il mio codice da comunque quell'errore, fa tutto da solo.

Non vi è mai capitato facendo estensioni / altro?
Avatar utente
Micogian
Globalmod
Globalmod
Messaggi: 588
Iscritto il: 17/03/2016, 17:53
Link del Forum: https://www.actaplantarum.org

Re: [Errore] Dichiarazione classe phpbb\class_loader

Messaggio da Micogian »

E' sicuramente preferibile creare un'estensione, evitando file php e modifiche al codice originale che poi crea problemi negli aggiornamenti.
La mia estensione "Lastpictures & Toptentopics" inserisce nell'indice del forum una striscia fotografica delle ultime immagini postate, in pratica è un indice fotografico degli ultimi topic contenenti immagini, ma se si seleziona il tasto "OPZIONI" si possono visualizzare liste diverse, gli ultimi posts, gli ultimi topic o i topics più visti.
Un esempio lo puoi vedere qui https://floraitaliae.actaplantarum.org

L'estensione la trovi qui viewtopic.php?t=3911
Avatar utente
Mask
Nuovo Utente
Nuovo Utente
Messaggi: 9
Iscritto il: 09/11/2019, 20:21
Link del Forum: http://80.211.75.170/forum

Re: [Errore] Dichiarazione classe phpbb\class_loader

Messaggio da Mask »

Ciao, grazie per la tua risposta.

So che è preferibile creare un'estensione, ma non ho ben capito come si usano i tag per le operazioni logiche, così visto che c'era la possibilità di creare pagine in php (supportate da phpbb) ho provato a creare questo piccolo script.

Il mio dubbio è che andando a creare un'estensione, dovrò comunque richiamare quel file per accedere alla classe dell'utente e quindi mi ridia errore, oppure non c'è bisogno?

Ho visto l'estensione, davvero molto bella, complimenti. Solo chei avevano chiesto solo gli ultimi post.
Avatar utente
Micogian
Globalmod
Globalmod
Messaggi: 588
Iscritto il: 17/03/2016, 17:53
Link del Forum: https://www.actaplantarum.org

Re: [Errore] Dichiarazione classe phpbb\class_loader

Messaggio da Micogian »

Ma gli ultimi post ci sono, nessuno vieta di togliere dall'estensione la parte che elabora le altre liste e mantenere solo quella degli ultimi posts.
Secondo me bisogna distinguere se la lista va inserita nella pagina del Forum oppure in una pagina diversa, ad esempio nella Home del Sito.
Per spiegarmi meglio ti mostro quella che è la Home Page che ho realizzato mettendoci gli ultimi topics https://www.actafungorum.org/

Questa soluzione si può ottenere benissimo con una pagina php senza bisogno di utilizzare phpbb, se invece dobbiamo farlo nell'indice del Forum la soluzione migliore è una estensione come la mia.
E' molto probabile che l'errore derivi proprio dall'utilizzo di php nelle pagine di sistema e che ci sia un doppio richiamo della classe.
Rispondi