phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

[WIKI] Interrogare il database in una Custom Page

Programmare su phpBB, creazione di pagine personalizzate ed utilizzo delle API di phpBB.
Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Interrogare il database in una Custom Page

Messaggio da Micogian » 06/05/2012, 12:24

Si, nelle Mod in sviluppo c'è View last pictures che estrae un certo numero di allegati e li visualizza in un box nell'indice.
La versione che uso nei miei forum è un pò diversa ma anche quella in sviluppo funziona.

Le immagini nei miei Forum sono molto importanti e ho sviluppato molte funzioni che gestiscono le immagini.

Tra le altre cose ho elaborato una Mod che aggiunge il "titolo" agli allegati. In origine è previsto un "commento".
Io ho preferito usare un "Titolo" perchè nel titolo inseriamo il nome della specie (nel mio caso un Fungo).
Tutti gli allegati che contengono un titolo finiscono in una "Lista fotografica delle specie" che oltre a dare un'idea del contenuto, diventa un indice di links alle relative discussioni: http://www.actafungorum.org/actaforum/mod_specie.php

Con lo stesso principio ho elaborato una funzione che consente di visualizzare gli Ultimi 100 allegati

E' di pochi giorni un'altra funzione: Le Foto per Autore

Avatar utente
alex75
phpBB Expert
phpBB Expert
Messaggi: 943
Iscritto il: 31/03/2012, 23:46
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.6.37
Database: MySQL 5.6.39
Località: palermo
Contatta:

Re: [WIKI] Interrogare il database in una Custom Page

Messaggio da alex75 » 22/08/2012, 21:26

Scusate se riesumo questo topic, sull'orlo dell'off-topic.
Ma praticamente (creare un box con foto estratte dai tag "img") è la stessa cosa che sto cercando di fare anche io. richiesta-mod-f13/estrarre-immagini-dai ... tml#p51786
Unica differenza, so benissimo dove si trovano, le immagini con bbcode "img" (non si tratta di post, ma di campi profilo personalizzati) ed il box dove andrebbero inserite l'ho già preparato.
Potresti darmi una via da seguire?

Avatar utente
alex75
phpBB Expert
phpBB Expert
Messaggi: 943
Iscritto il: 31/03/2012, 23:46
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.6.37
Database: MySQL 5.6.39
Località: palermo
Contatta:

Re: [WIKI] Interrogare il database in una Custom Page

Messaggio da alex75 » 24/08/2012, 17:26

Segendo la guida, ho creato questo file php per interrogare il database riguardo al contenuto dei campi foto, fotoa, fotob etc nella tabella "profile_fields" ed assegnato nome alla array "lista_foto".
Ma quando metto l'include sulla index.php mi da errore.
questo il codice:

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);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
$sql = "SELECT foto, fotoa, fotob, fotoc, fotod, fotoe, fotof, fotog, fotoh, fotoi
         FROM " . profile_fields . "
         
    $result = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($result))
         {
         $template->assign_block_vars('lista_foto',array;
         }
?>
cosa sbaglio?

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: [WIKI] Interrogare il database in una Custom Page

Messaggio da Micogian » 24/08/2012, 18:28

Un conto è interrogare il database in una Custom Page, altra cosa è interrogare il database in una pagina già esistente (index.php)
Se l'interrogazione la facciamo in index.php non abbiamo bisogno di inserire la connessione, quella c'è già e l'errore è dovuto alla connessione ripetuta.
La query poi non si può fare a quel modo, la Guida è molto chiara in merito.
Manca la dichiarazione delle variabili, tu hai creato un array ma cosa c'è in questo array? nulla, nemmeno a chi si riferiscono le immagini.

Codice: Seleziona tutto

<?php
if (!defined('IN_PHPBB'))
{
   exit;
}
$sql = "SELECT user_id, foto, fotoa, fotob, fotoc, fotod, fotoe, fotof, fotog, fotoh, fotoi
         FROM " . PROFILE_FIELDS_TABLE . "
         
    $result = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($result))
         {
         $template->assign_block_vars('lista_foto',array(
          'USER_COR'    => $row[user_id],
          'FOTO'          => $row['foto'],
          'FOTO_A'       => $row['fotoa'],
          'FOTO_B'       => $row['fotob'],
          'FOTO_C'       => $row['fotoc'],
          'FOTO_D'       => $row['fotod'],
          'FOTO_E'       => $row['fotoe'],
          'FOTO_F'       => $row['fotof'],
          'FOTO:G'       => $row['foto'g],
          'FOTO_H'       => $row['fotoh'],
          'FOTO_I'       => $row['fotoi']
));
         }
?>
Nel template dovrai fare un BEGIN

Codice: Seleziona tutto

<!-- BEGIN lista_foto -->
{lista_foto.USER_COR}<br />
{lista_foto.FOTO}<br />
{lista_foto.FOTO_A}<br />
{lista_foto.FOTO_B}<br />
ecc.
<!-- END lista_foto -->

Avatar utente
alex75
phpBB Expert
phpBB Expert
Messaggi: 943
Iscritto il: 31/03/2012, 23:46
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.6.37
Database: MySQL 5.6.39
Località: palermo
Contatta:

Re: [WIKI] Interrogare il database in una Custom Page

Messaggio da alex75 » 24/08/2012, 21:21

Adesso, con il tuo esempio, mi è tutto moooolto più chiaro ;)
Ma appana inserisco l'include al file index.php, nella riga subito sotto alla "mod_topten_topics" così:

Codice: Seleziona tutto

include($phpbb_root_path . 'mod_profile_foto.' . $phpEx);
il forum va in errore. ovviamente il file mod_profile_foto.php è sulla root principale.
questo l'errore:
Immagine
Ho pensatoche mancasse " <?php " ad inizio pagina, ma l'effetto è stato anche peggio; tutto bianco e questo errore

Codice: Seleziona tutto

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/vitara.it/public_html/mod_profile_foto.php on line 10
Grazie per la tua disponibilità e la tua pasienza :oops:

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: [WIKI] Interrogare il database in una Custom Page

Messaggio da Micogian » 24/08/2012, 22:16

Il file da includere deve contenere questo codice all'inizio:

Codice: Seleziona tutto

<?php
if (!defined('IN_PHPBB'))
{
   exit;
}
Il problema è che se fai copia e incolla da un bbcode

Codice: Seleziona tutto

 ti aggiunge uno spazio o un tab all'inizio di tutte le righe.
La prima riga, quella che contiene il  tag <?php non deve avere nessun spazio o tab davanti al tag.

Resta poi il problema di come e dove vuoi visualizzare il risultato, da come è fatta la query ottieni un array che contiene tutte le immagini di tutti gli utenti. Come e dove le visualizzi ?

Sinceramente io non ho capito cosa vuoi fare.

Avatar utente
alex75
phpBB Expert
phpBB Expert
Messaggi: 943
Iscritto il: 31/03/2012, 23:46
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.6.37
Database: MySQL 5.6.39
Località: palermo
Contatta:

Re: [WIKI] Interrogare il database in una Custom Page

Messaggio da alex75 » 24/08/2012, 22:48

Sto cercando di capire dov'è l'errore ma non lo trovo...
Adesso mi da questo errore:

Codice: Seleziona tutto

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/vitara.it/public_html/mod_profile_foto.php on line 14
Micogian ha scritto: Resta poi il problema di come e dove vuoi visualizzare il risultato, da come è fatta la query ottieni un array che contiene tutte le immagini di tutti gli utenti. Come e dove le visualizzi ?

Sinceramente io non ho capito cosa vuoi fare.
:D tutte le foto che gli utenti hanno sui propri profili... dentro un riquadro (simile alla tua last 5 attachment) con scroll orizzontale. ho già fatto diverse prove per quello non è un problema. posso caricarle direttamente o anche su un'altra pagina e poi richiamarle da un iframe. :mrgreen:
Ma adesso il problema è aver i risultati disponibili

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: [WIKI] Interrogare il database in una Custom Page

Messaggio da Micogian » 24/08/2012, 23:40

Mancano gli apici alla riga

Codice: Seleziona tutto

'USER_COR'    => $row[user_id],
così è corretto

Codice: Seleziona tutto

'USER_COR'    => $row['user_id'],

Avatar utente
alex75
phpBB Expert
phpBB Expert
Messaggi: 943
Iscritto il: 31/03/2012, 23:46
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.6.37
Database: MySQL 5.6.39
Località: palermo
Contatta:

Re: [WIKI] Interrogare il database in una Custom Page

Messaggio da alex75 » 24/08/2012, 23:59

Esatto ;)
Ma c'era dell'altro... ho aperto mysql admin e ho scoperto che i campi che cercavo (forse perchè personalizzati e non standard) non si trovavano sotto "PROFILE_FIELDS_TABLE" ma sotto "PROFILE_FIELDS_DATA"
Adesso il forum non va più in errore, ma se apro direttamente la pagina php, dal browser, continua a darmi errore nella riga13. Devo verificare un'altra cosa che ho notato...
sotto questa tabella (PROFILE_FIELDS_DATA, che è quella effettivamente popolata con i dati che cerco di estrarre) i nomi dei campi vengono preceduti da "pf_" quindi, pf_foto, pf_fotoa, pf_fotob etc.
Immagine

Edit: va in errore anche il forum... non avevo messo l'include all'index.php

juventissimo
Utente
Utente
Messaggi: 243
Iscritto il: 11/12/2011, 12:21
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.28
Database: MySQL 5.5.36-34.2-log
Contatta:

Re: [WIKI] Interrogare il database in una Custom Page

Messaggio da juventissimo » 06/09/2012, 20:57

aiuto, non riesco ad inserire nel memberlist.php un campo personalizzato. per la precisione non capisco se posso aggiungere (non so dove però) il mio campo personalizzato o devo creare una nuova funzione :(

Bloccato

Torna a “Programmazione”

Chi c’è in linea

Visitano il forum: Nessuno e 35 ospiti