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

Campi personalizzati piu top in index

Cerchi una MOD? Chiedi in questo forum.
Questa sezione è supportata dagli utenti del forum, pertanto lo Staff potrebbe non eseguire tali richieste.
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: Campi personalizzati piu top in index

Messaggio da Micogian » 23/10/2011, 10:40

Finalmente, ci stiamo avvicinando ma non ci siamo ancora.
Quella è la struttura della tabella, adesso dobbiamo sapere cosa ci sta scritto dentro e quale campo vuoi elaborare tra questi: pf_grafica, pf_programma, pf_genere.
In sostanza voglio sapere ad esempio cosa viene inserito nel campo pf_programma, un numero, un nome, una immagine ?
Sapendo questo si fa "la conta" di quante volte c'è questa cosa nella tabella.
Sono le basi di una query: dove cerco e cosa cerco.

Avevo chiesto:
Mi serve nome della tabella, nomi dei campi e contenuto.
Hai risposto alle prime due richieste, manca il contenuto.

Avatar utente
lenders
phpBB Expert
phpBB Expert
Messaggi: 713
Iscritto il: 22/06/2010, 14:28
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
Database: MySQL(i) 5.1.49-community-log
Località: Napoli
Contatta:

Re: Campi personalizzati piu top in index

Messaggio da lenders » 23/10/2011, 10:49

Giusto questo è il contenuto:
Cattura.PNG
Speriamo che sia lui!
bingo ha scritto:e quale campo vuoi elaborare tra questi: pf_grafica, pf_programma, pf_genere.
Andrebbero bene tutti anche pf_bandiera
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.

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: Campi personalizzati piu top in index

Messaggio da Micogian » 23/10/2011, 12:12

Si però a questo punto bisogna vedere quali sono i riferimenti ai numeri. Non credo ti interessi sapere quanti usano la bandiera 89, bisogna sapere a cosa corrisponde.
E così per il resto. E' probabile che questo sia indicato in qualche tabella, basta saperlo.

Avatar utente
lenders
phpBB Expert
phpBB Expert
Messaggi: 713
Iscritto il: 22/06/2010, 14:28
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
Database: MySQL(i) 5.1.49-community-log
Località: Napoli
Contatta:

Re: Campi personalizzati piu top in index

Messaggio da lenders » 23/10/2011, 12:21

Il problema e che io non sò in che tabella guardare...

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: Campi personalizzati piu top in index

Messaggio da Micogian » 24/10/2011, 9:45

Può essere una tabella o può essere una lista inserita direttamente nel file che provvede ad aggiornare il profilo dell'utente, dovrebbe essere ucp.php.
Credo che sia stato usato un menù a tendina per dare la possibilità all'utente di scegliere le varie opzioni.
Ogni opzione è associata a un numero e senza questo dato non è possibile sapere cosa significano i numeri.
Non credo che tu voglia una classifica che dice che "tot utenti usano il programma 2" o che hanno la "bandiera 86".
C'è bisogno delle corrispondenze dei numeri con il loro significato e solo tu puoi saperlo.

Avatar utente
lenders
phpBB Expert
phpBB Expert
Messaggi: 713
Iscritto il: 22/06/2010, 14:28
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
Database: MySQL(i) 5.1.49-community-log
Località: Napoli
Contatta:

Re: Campi personalizzati piu top in index

Messaggio da lenders » 24/10/2011, 15:24

Dato che non sò cosa vedere nel file ucp.php te lo riporto qui

Codice: Seleziona tutto

<?php
/**
*
* @package ucp
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
require($phpbb_root_path . 'includes/functions_user.' . $phpEx);
require($phpbb_root_path . 'includes/functions_module.' . $phpEx);

// Basic parameter data
$id 	= request_var('i', '');
$mode	= request_var('mode', '');

if (in_array($mode, array('login', 'logout', 'confirm', 'sendpassword', 'activate')))
{
	define('IN_LOGIN', true);
}

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('ucp');

// Setting a variable to let the style designer know where he is...
$template->assign_var('S_IN_UCP', true);

$module = new p_master();
$default = false;

// Basic "global" modes
switch ($mode)
{
	case 'activate':
		$module->load('ucp', 'activate');
		$module->display($user->lang['UCP_ACTIVATE']);

		redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
	break;

	case 'resend_act':
		$module->load('ucp', 'resend');
		$module->display($user->lang['UCP_RESEND']);
	break;

	case 'sendpassword':
		$module->load('ucp', 'remind');
		$module->display($user->lang['UCP_REMIND']);
	break;

	case 'register':
		if ($user->data['is_registered'] || isset($_REQUEST['not_agreed']))
		{
			redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
		}

		$module->load('ucp', 'register');
		$module->display($user->lang['REGISTER']);
	break;

	case 'confirm':
		$module->load('ucp', 'confirm');
	break;

	case 'login':
		if ($user->data['is_registered'])
		{
			redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
		}

		login_box(request_var('redirect', "index.$phpEx"));
	break;

	case 'logout':
		if ($user->data['user_id'] != ANONYMOUS && isset($_GET['sid']) && !is_array($_GET['sid']) && $_GET['sid'] === $user->session_id)
		{
			$user->session_kill();
			$user->session_begin();
			$message = $user->lang['LOGOUT_REDIRECT'];
		}
		else
		{
			$message = ($user->data['user_id'] == ANONYMOUS) ? $user->lang['LOGOUT_REDIRECT'] : $user->lang['LOGOUT_FAILED'];
		}
		meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx"));

		$message = $message . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a> ');
		trigger_error($message);

	break;

	case 'terms':
	case 'privacy':

		$message = ($mode == 'terms') ? 'TERMS_OF_USE_CONTENT' : 'PRIVACY_POLICY';
		$title = ($mode == 'terms') ? 'TERMS_USE' : 'PRIVACY';

		if (empty($user->lang[$message]))
		{
			if ($user->data['is_registered'])
			{
				redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
			}

			login_box();
		}

		$template->set_filenames(array(
			'body'		=> 'ucp_agreement.html')
		);

		// Disable online list
		page_header($user->lang[$title], false);

		$template->assign_vars(array(
			'S_AGREEMENT'			=> true,
			'AGREEMENT_TITLE'		=> $user->lang[$title],
			'AGREEMENT_TEXT'		=> sprintf($user->lang[$message], $config['sitename'], generate_board_url()),
			'U_BACK'				=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login'),
			'L_BACK'				=> $user->lang['BACK_TO_LOGIN'],
		));

		page_footer();

	break;

	case 'delete_cookies':

		// Delete Cookies with dynamic names (do NOT delete poll cookies)
		if (confirm_box(true))
		{
			$set_time = time() - 31536000;

			foreach ($_COOKIE as $cookie_name => $cookie_data)
			{
				// Only delete board cookies, no other ones...
				if (strpos($cookie_name, $config['cookie_name'] . '_') !== 0)
				{
					continue;
				}

				$cookie_name = str_replace($config['cookie_name'] . '_', '', $cookie_name);

				// Polls are stored as {cookie_name}_poll_{topic_id}, cookie_name_ got removed, therefore checking for poll_
				if (strpos($cookie_name, 'poll_') !== 0)
				{
					$user->set_cookie($cookie_name, '', $set_time);
				}
			}

			$user->set_cookie('track', '', $set_time);
			$user->set_cookie('u', '', $set_time);
			$user->set_cookie('k', '', $set_time);
			$user->set_cookie('sid', '', $set_time);

			// We destroy the session here, the user will be logged out nevertheless
			$user->session_kill();
			$user->session_begin();

			meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx"));

			$message = $user->lang['COOKIES_DELETED'] . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
			trigger_error($message);
		}
		else
		{
			confirm_box(false, 'DELETE_COOKIES', '');
		}

		redirect(append_sid("{$phpbb_root_path}index.$phpEx"));

	break;

	case 'switch_perm':

		$user_id = request_var('u', 0);

		$sql = 'SELECT *
			FROM ' . USERS_TABLE . '
			WHERE user_id = ' . (int) $user_id;
		$result = $db->sql_query($sql);
		$user_row = $db->sql_fetchrow($result);
		$db->sql_freeresult($result);

		if (!$auth->acl_get('a_switchperm') || !$user_row || $user_id == $user->data['user_id'] || !check_link_hash(request_var('hash', ''), 'switchperm'))
		{
			redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
		}

		include($phpbb_root_path . 'includes/acp/auth.' . $phpEx);

		$auth_admin = new auth_admin();
		if (!$auth_admin->ghost_permissions($user_id, $user->data['user_id']))
		{
			redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
		}

		add_log('admin', 'LOG_ACL_TRANSFER_PERMISSIONS', $user_row['username']);

		$message = sprintf($user->lang['PERMISSIONS_TRANSFERRED'], $user_row['username']) . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
		trigger_error($message);

	break;

	case 'restore_perm':

		if (!$user->data['user_perm_from'] || !$auth->acl_get('a_switchperm'))
		{
			redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
		}

		$auth->acl_cache($user->data);

		$sql = 'SELECT username
			FROM ' . USERS_TABLE . '
			WHERE user_id = ' . $user->data['user_perm_from'];
		$result = $db->sql_query($sql);
		$username = $db->sql_fetchfield('username');
		$db->sql_freeresult($result);

		add_log('admin', 'LOG_ACL_RESTORE_PERMISSIONS', $username);

		$message = $user->lang['PERMISSIONS_RESTORED'] . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
		trigger_error($message);

	break;

	default:
		$default = true;
	break;
}

// We use this approach because it does not impose large code changes
if (!$default)
{
	return true;
}

// Only registered users can go beyond this point
if (!$user->data['is_registered'])
{
	if ($user->data['is_bot'])
	{
		redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
	}

	login_box('', $user->lang['LOGIN_EXPLAIN_UCP']);
}

// Instantiate module system and generate list of available modules
$module->list_modules('ucp');

// Check if the zebra module is set
if ($module->is_active('zebra', 'friends'))
{
	// Output listing of friends online
	$update_time = $config['load_online_time'] * 60;

	$sql = $db->sql_build_query('SELECT_DISTINCT', array(
		'SELECT'	=> 'u.user_id, u.username, u.username_clean, u.user_colour, MAX(s.session_time) as online_time, MIN(s.session_viewonline) AS viewonline',

		'FROM'		=> array(
			USERS_TABLE		=> 'u',
			ZEBRA_TABLE		=> 'z'
		),

		'LEFT_JOIN'	=> array(
			array(
				'FROM'	=> array(SESSIONS_TABLE => 's'),
				'ON'	=> 's.session_user_id = z.zebra_id'
			)
		),

		'WHERE'		=> 'z.user_id = ' . $user->data['user_id'] . '
			AND z.friend = 1
			AND u.user_id = z.zebra_id',

		'GROUP_BY'	=> 'z.zebra_id, u.user_id, u.username_clean, u.user_colour, u.username',

		'ORDER_BY'	=> 'u.username_clean ASC',
	));

	$result = $db->sql_query($sql);

	while ($row = $db->sql_fetchrow($result))
	{
		$which = (time() - $update_time < $row['online_time'] && ($row['viewonline'] || $auth->acl_get('u_viewonline'))) ? 'online' : 'offline';

		$template->assign_block_vars("friends_{$which}", array(
			'USER_ID'		=> $row['user_id'],

			'U_PROFILE'		=> get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']),
			'USER_COLOUR'	=> get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour']),
			'USERNAME'		=> get_username_string('username', $row['user_id'], $row['username'], $row['user_colour']),
			'USERNAME_FULL'	=> get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']))
		);
	}
	$db->sql_freeresult($result);
}

// Do not display subscribed topics/forums if not allowed
if (!$config['allow_topic_notify'] && !$config['allow_forum_notify'])
{
	$module->set_display('main', 'subscribed', false);
}

// Do not display signature panel if not authed to do so
if (!$auth->acl_get('u_sig'))
{
	$module->set_display('profile', 'signature', false);
}

// BEGIN mChat Mod
if (!$config['mchat_enable'])
{
	$module->set_display('mchat', '', false);
}	
// END mChat Mod

// Select the active module
$module->set_active($id, $mode);

// Load and execute the relevant module
$module->load_active();

// Assign data to the template engine for the list of modules
$module->assign_tpl_vars(append_sid("{$phpbb_root_path}ucp.$phpEx"));

// Generate the page, do not display/query online list
$module->display($module->get_page_title(), false);

/**
* Function for assigning a template var if the zebra module got included
*/
function _module_zebra($mode, &$module_row)
{
	global $template;

	$template->assign_var('S_ZEBRA_ENABLED', true);

	if ($mode == 'friends')
	{
		$template->assign_var('S_ZEBRA_FRIENDS_ENABLED', true);
	}

	if ($mode == 'foes')
	{
		$template->assign_var('S_ZEBRA_FOES_ENABLED', true);
	}
}

?>

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: Campi personalizzati piu top in index

Messaggio da Micogian » 24/10/2011, 17:56

Non c'è nulla nel file ucp.php, devi cercare nelle tabelle profile_fields, profile_fields_data, profile_field_lang e profile_lang dove associato a una stringa c'è un numero ID.

Avatar utente
Rey
Utente
Utente
Messaggi: 9
Iscritto il: 05/04/2011, 19:38
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
PHP: PHP 5.2.13
Database: MySQL(i) 5.1.58
Contatta:

Re: Campi personalizzati piu top in index

Messaggio da Rey » 14/11/2011, 8:34

La tabella interessata e questa, PROFILE_FIELDS_LANG_TABLE che sarebbe dove si trovano i campi personalizzati del profilo, nella fattispecie questo lang_value e il nome della tabella.
Immagine

Avatar utente
lenders
phpBB Expert
phpBB Expert
Messaggi: 713
Iscritto il: 22/06/2010, 14:28
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
Database: MySQL(i) 5.1.49-community-log
Località: Napoli
Contatta:

Re: Campi personalizzati piu top in index

Messaggio da lenders » 20/11/2011, 11:37

Ho creato una pagina custom page, poi dentro ho messo una query per estrapolare dal database le informazioni del profilo personalizzato più il nome utente, piu id user.Solo che nella pagina mi escono le virgolette ecco guarda:

http://tropico2.altervista.org/foldermp.php

file.php

Codice: Seleziona tutto

<?php
/** 
*
* @package phpBB3
* @copyright (c) 2005 phpBB Group 
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
*/

/**
* @ignore
*/
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(); 

    $sql = "SELECT u.user_id, u.username, p.lang_value
        FROM " . USERS_TABLE . " u, " . PROFILE_FIELDS_LANG_TABLE . " p
        WHERE u.user_id = u.user_id
		AND u.username = u.username
        ORDER BY p.lang_value";
    $result = $db->sql_query($sql);
        $n1 = 0;
        while ($row1 = $db->sql_fetchrow($result))
        {
    $template->assign_block_vars('lista_prof', array(
    'PROF_ID'    => $row['user_id'],
    'PROF_USERNAME'   => $row['username'],
    'PROF_USER_ID'   => $row['lang_value'],
    ));
    }
	 
// Assign index specific vars
page_header('pagina'); 

$template->set_filenames(array(   
	'body' => 'folder_body.html'
));

page_footer(); 

?>
File html:

Codice: Seleziona tutto

<!-- INCLUDE overall_header.html -->

    <div class="panel">
        <div class="inner"><span class="corners-top"><span></span></span>
        <div class="content">
    <!-- BEGIN lista_prof -->
    {lista_prof.PROF_ID}, {lista_prof.PROF_USERNAME}, {lista_prof.PROF_USER_ID}<br />
    <!-- END lista_prof -->
        </div>
        <span class="corners-bottom"><span></span></span></div>
        </div>

<!-- INCLUDE jumpbox.html -->
<!-- INCLUDE overall_footer.html -->	
Mi potresti aiutare bingo? :roll:

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: Campi personalizzati piu top in index

Messaggio da Micogian » 20/11/2011, 13:12

L'errore sta nella query, così com'è non può estrarre nulla.
$sql = "SELECT u.user_id, u.username, p.lang_value
FROM " . USERS_TABLE . " u, " . PROFILE_FIELDS_LANG_TABLE . " p
WHERE u.user_id = u.user_id
AND u.username = u.username
ORDER BY p.lang_value";
Quando si crea una query su più tabelle, nel tua caso USERS_TABLE e PROFILE_FIELD_LANG_TABLE, ci devono essere dei dati comuni su entrambe le tabelle, altrimenti su cosa si basa il colelgamento tra tabelle ?
Tu chiedi user_id e username della tabella USERS e lang_value della tabella PROFILE....
Cos'hanno in comune ? Nulla.
Se nella tabella PROFILE ci fosse un campo relativo all'user_id, anche con nome diverso, ad esempio poster_id (non è questo il caso ma è per spiegarti il problema)
avresti potuto usare la condizione

Codice: Seleziona tutto

        WHERE u.user_id = p.poster_id
Come l'hai messa tu WHERE u.user_id = u.user_id sta a significare che se u.user_id è uguale a u.user_id estrai il dato. Mi sembra ovvio che user_id sia uguale a user_id, non ti sembra?
Stessa cosa per u.username
Io non so che dati tu abbia all'interno della tabella PROFILE_FIELD_LANG_TABLE, io non la uso e la mia è vuota, ma se non hai un valore che possa essere presente in USERS_TABLE non puoi fare una query tra queste tabelle.
Ad esempio, prendi le tabelle POSTS_TABLE e TOPICS_TABLE, in entrambe le tabelle ci sarà topic_id, quindi una condizione

Codice: Seleziona tutto

        WHERE p.topic_id = t.topic_id
ti fornirà i dati del topic_id e di tutti i posts associati a quel Topic.
Spero di essermi spiegato.

Rispondi

Torna a “Richiesta MOD”

Chi c’è in linea

Visitano il forum: Nessuno e 78 ospiti