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

Collegare pagina personalizzata al database

Supporto per phpBB 3.1.x.
Avatar utente
frank
Utente
Utente
Messaggi: 1908
Iscritto il: 25/11/2014, 8:02
Sesso: Maschio
Versione: 3.1.7-PL1
Server: UNIX/Linux
PHP: 5.5.29
Database: MySQL(i) 5.5.43-log

Re: Collegare pagina personalizzata al database

Messaggio da frank » 23/05/2016, 11:51

brunino ha scritto:Prova a dare un nome in maiuscolo, anche se dovrebbe essere indifferente. Bisogna vedere se $visite['visite'] contenga effettivamente qualcosa
Neanche in maiuscolo funziona. Se nella pagina principale stampa il counter, vuol dire che $visite['visite'] contiene qualcosa

Avatar utente
frank
Utente
Utente
Messaggi: 1908
Iscritto il: 25/11/2014, 8:02
Sesso: Maschio
Versione: 3.1.7-PL1
Server: UNIX/Linux
PHP: 5.5.29
Database: MySQL(i) 5.5.43-log

Re: Collegare pagina personalizzata al database

Messaggio da frank » 23/05/2016, 12:36

Micogian ha scritto:Con la versione 3.1. è cambiato il "template->assign_vars", dovrebbe essere

Codice: Seleziona tutto

$this->template->assign_vars(array(
Non apre la pagina.

Così funziona:

Codice: Seleziona tutto

$template->assign_vars(array(

Avatar utente
frank
Utente
Utente
Messaggi: 1908
Iscritto il: 25/11/2014, 8:02
Sesso: Maschio
Versione: 3.1.7-PL1
Server: UNIX/Linux
PHP: 5.5.29
Database: MySQL(i) 5.5.43-log

Re: Collegare pagina personalizzata al database

Messaggio da frank » 23/05/2016, 14:23

brunino ha scritto:Prova a dare un nome in maiuscolo, anche se dovrebbe essere indifferente. Bisogna vedere se $visite['visite'] contenga effettivamente qualcosa
Ho trovato il motivo (che non riesco a risolvere), in pratica gli articoli non sono collegati, è per questo che l'articolo1 non richiama la variabile dell'articolo2.

Questo è il codice completo che ho per ogni articolo (cambia il numero della variabile conta_visite)

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(); 
 
page_header('L’istinto del corpo verso il cibo'); // Questo è ciò che apparirà come frase principale nel motore di ricerca
 
$template->set_filenames(array(
	'body' => 'a-istinti-del-body.html',  // Questo file si trova nella cartella template
));
 
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));

//Contavisite, connessione al database
$link = mysql_connect($dbhost, $dbuser, $dbpasswd);
if (!$link) {
	die ("Non riesco a connettermi:" . mysql_error());
}
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) {
	die ("Errore nella selezione del database:" . mysql_error());
}

// Identificativo numerico della pagina 
$pagina = 1; 

// Aggiorna il contatore  
mysql_query("UPDATE phpbb_contatore SET visite = visite+ 1 WHERE pagina = $pagina"); 

// Inserisce i dati nel db e sovrascrive il numero-visite precedente
if (mysql_affected_rows() == 0) {
    mysql_query("INSERT INTO phpbb_contatore (pagina, visite) VALUES ($pagina, 1)"); 
}  

// Estrae i dati dal DB 
$res = mysql_query("SELECT visite FROM phpbb_contatore WHERE pagina = $pagina"); 
$visite = mysql_fetch_assoc($res);  

// Crea la variabile-echo che viene poi richiamata nel file HTML
$template->assign_vars(array(
    'conta_visite1' => $visite['visite'],
)); 

page_footer();
?>
Questo codice richiama il template, e il template mette poi a video il contatore

Codice: Seleziona tutto

$template->set_filenames(array(
	'body' => 'a-istinti-del-body.html',  // Questo file si trova nella cartella template
));
A sua volta, il template tramite <!-- INCLUDE Articoli/articoliSmall/articoliX.html -->
richiama tutta la parte che c'è in Potrebbe interessarti anche:, è qui che manca il collegamento tra le varie variabili, è per questo che non le mette a video.

Avatar utente
frank
Utente
Utente
Messaggi: 1908
Iscritto il: 25/11/2014, 8:02
Sesso: Maschio
Versione: 3.1.7-PL1
Server: UNIX/Linux
PHP: 5.5.29
Database: MySQL(i) 5.5.43-log

Re: Collegare pagina personalizzata al database

Messaggio da frank » 23/05/2016, 18:41

Ora individuato la cosa è l'ho fatto funzionare.

Ora ho bisogno solo di sapere come includere un file php in questo codice, in pratica un include(...);.
In questo modo metto metto tutti i contatori delle varie pagine in un file php esterno e lo richiamo in ogni codice php (come questo sotto). In questo modo i contatori sono tutti collegati.

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(); 
 
page_header('L’istinto del corpo verso il cibo'); // Questo è ciò che apparirà come frase principale nel motore di ricerca
 
$template->set_filenames(array(
	'body' => 'a-istinti-del-body.html',  // Questo file si trova nella cartella template
));
 
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));

//Contavisite, connessione al database
$link = mysql_connect($dbhost, $dbuser, $dbpasswd);
if (!$link) {
	die ("Non riesco a connettermi:" . mysql_error());
}
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) {
	die ("Errore nella selezione del database:" . mysql_error());
}

// Identificativo numerico della pagina 
$pagina = 1; 

// Aggiorna il contatore  
mysql_query("UPDATE phpbb_contatore SET visite = visite+ 1 WHERE pagina = $pagina"); 

// Inserisce i dati nel db e sovrascrive il numero-visite precedente
if (mysql_affected_rows() == 0) {
    mysql_query("INSERT INTO phpbb_contatore (pagina, visite) VALUES ($pagina, 1)"); 
}  

// Estrae i dati dal DB 
$res = mysql_query("SELECT visite FROM phpbb_contatore WHERE pagina = $pagina"); 
$visite = mysql_fetch_assoc($res);  

// Crea la variabile-echo che viene poi richiamata nel file HTML
$template->assign_vars(array(
    'conta_visite1' => $visite['visite'],
)); 

page_footer();
?>

Avatar utente
brunino
Moderatore
Moderatore
Messaggi: 2819
Iscritto il: 12/01/2013, 16:35
Sesso: Maschio
Versione: 3.1.2
Server: UNIX/Linux
PHP: php 5.3
Database: mysql
Località: Toscana, Firenze
Contatta:

Re: Collegare pagina personalizzata al database

Messaggio da brunino » 23/05/2016, 22:41

Micogian ha scritto:Con la versione 3.1. è cambiato il "template->assign_vars", dovrebbe essere

Codice: Seleziona tutto

$this->template->assign_vars(array(
Quello è nelle estensioni, non nelle custom page
E' sempre gradito un grazie

Creo estensioni per phpBB 3.1 su misura: contattami via MP.
Mie Estensioni: Top Ten Topics | Ban List | Topic List
Visita il mio forum di test e sviluppo stili e estensioni phpBB 3.1

Avatar utente
frank
Utente
Utente
Messaggi: 1908
Iscritto il: 25/11/2014, 8:02
Sesso: Maschio
Versione: 3.1.7-PL1
Server: UNIX/Linux
PHP: 5.5.29
Database: MySQL(i) 5.5.43-log

Re: Collegare pagina personalizzata al database

Messaggio da frank » 23/05/2016, 23:24

Come si può vedere dal mio forum, ora funziona tutto.

C'è ancora una piccola cosa che non riesco a sistemare: Come si può vedere in fondo, tutti gli articoli-link hanno il counter rosso che segna 1, in realtà è un numero di default, ho bisogno che di default sia zero.

Codice: Seleziona tutto

// Identificativo numerico della pagina  
$pagina = 3; 

// Aggiorna il contatore  
mysql_query("UPDATE phpbb_contatore SET visite = visite+ 1 WHERE pagina = $pagina"); 

// Inserisce i dati nel db e sovrascrive il numero-visite precedente
if (mysql_affected_rows() == 0) {
    mysql_query("INSERT INTO phpbb_contatore (pagina, visite) VALUES ($pagina, 1)"); 
}  
 
// Estrae i dati dal DB 
$res = mysql_query("SELECT visite FROM phpbb_contatore WHERE pagina = $pagina"); 
$visite = mysql_fetch_assoc($res);  

// Crea la variabile-echo che viene poi richiamata nel file HTML
$template->assign_vars(array(
    'conta_visite3' => $visite['visite'],
)); 

Rispondi

Torna a “[3.1.x] Forum di Supporto”

Chi c’è in linea

Visitano il forum: Nessuno e 40 ospiti