Dimensione del testo selettore per PhpBB3

Forum misto con frammenti di codice
Rispondi
Avatar utente
Galandas
Staff phpBB3World
Staff phpBB3World
Messaggi: 792
Iscritto il: 4 nov 2012, 9:18
Località: phpbb3world
Contatta:

Dimensione del testo selettore per PhpBB3

Messaggio da Galandas » 21 gen 2014, 19:48

Dimensione del testo selettore per PhpBB3
Autore: Roger
testo.png
Mettete questo nella directory root/includes con il nome "functions_fsize.php"

Codice: Seleziona tutto

<?php

/**
*
* @package functions_fsize.php
* @version $Id: 0.00.01
* @copyright (c) 2007 phpBB Group
* @copyright (c) 2010 r.a.krupski <krupski@acsu.buffalo.edu>
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
**/

if (!defined('IN_PHPBB'))
{
	exit;
}

function fsize($prompt, $explain)
{
	global $config, $user;

	/*---------------- EDIT THESE IF YOU WISH ----------------*/
	define('PROMPT', 'Text size:');
	define('EXPLAIN', 'Select desired text size');
	define('TEXT_SIZE_MIN', 6);
	define('TEXT_SIZE_MAX', 24);
	define('TEXT_SIZE_DEFAULT', 12);
	define('COOKIE_DAYS', 365);
	/*-------------- DO NOT EDIT PAST THIS LINE --------------*/

	define('COOKIE_EXPIRE', time() + (60 * 60 * 24 * COOKIE_DAYS));
	define('COOKIE_NAME', 'fs');
	define('COOKIE_NAME_FULL', $config['cookie_name'] . '_' . COOKIE_NAME);
	define('NEW_LINE', "\n");

	$prompt = $prompt ? $prompt : PROMPT;
	$explain = $explain ? $explain : EXPLAIN;

	$i = $fs = 0;
	$str = '';

	$fs = request_var('pxsize', 0, false, false);

	if($fs == 0)
	{
		$fs = request_var(COOKIE_NAME_FULL, 0, false, true);
		if($fs == 0)
		{
			$fs = TEXT_SIZE_DEFAULT;
			$user->set_cookie(COOKIE_NAME, $fs, COOKIE_EXPIRE);
		}
	}
	else
	{
		$user->set_cookie(COOKIE_NAME, $fs, COOKIE_EXPIRE);
	}

	$str .= NEW_LINE . '<!-- begin text size selector -->' . NEW_LINE;
	$str .= '<style type="text/css" media="screen">body{font-size:' . $fs . 'px;}</style>';
	$str .= '<form method="post" target="_self"><span title="' . $explain . '">';
	$str .= $prompt . '&nbsp;<select name="pxsize" onchange="submit()">';

	for($i = TEXT_SIZE_MIN; $i <= TEXT_SIZE_MAX; $i++)
	{
		$str .= '<option value="' . $i . '"' . (($i == $fs) ? ' selected="selected"' : '') . '>' . $i . '&nbsp;</option>';
	}

	$str .= '</select><noscript>&nbsp;<input class="btnlite" type="submit" name="submit" value="SET" /></noscript></span></form>';
	$str .= NEW_LINE . '<!-- end text size selector -->' . NEW_LINE;

	return $str;
}

?>
Poi copiate e incollate questo in "root/includes/functions.php"

Codice: Seleziona tutto

/***
* the dropdown text size selector
***/
include($phpbb_root_path . 'includes/functions_fsize.' . $phpEx);
... e vicino al fondo di quel file, trovare:

Codice: Seleziona tutto

'SITENAME'                      => $config['sitename'],
Su una riga vuota aggiungi prima:

Codice: Seleziona tutto

'TEXT_SIZE'                     => fsize($user->lang['TEXT_SIZE'], $user->lang['TEXT_SIZE_EXPLAIN']),
Se non si desidera modificare i file di lingua per aggiungere "text_size" e "text_size_explain", si può mettere la stringha a destra in PHP come questo:

Codice: Seleziona tutto

'TEXT_SIZE'                     => fsize('Dimensione del testo: ', 'Seleziona la dimensione desiderata'),
Oppure, per usare quello di default IT/it prompt Italiano, semplicemente incollate questo:

Codice: Seleziona tutto

'TEXT_SIZE'                     => fsize('', ''),
Si noti che il testo tempestiva passata alla funzione sovrascrive quella di default. Ad esempio, se si specifica il prompt come "Dimensione carattere", questo è ciò che otterrete. Se si lascia vuoto (cioè''), si otterrà la "dimensione testo" di default. Se si desidera modificare il file di lingua (questo è davvero il modo giusto per farlo), quindi utilizzare il metodo "$user->lang['TEXT_SIZE']".

Infine, quando si desidera che la discesa appaia (probabilmente da qualche parte nel vostro "overall_header.html" file), è sufficiente utilizzare {TEXT_SIZE}

È sempre possibile controllare dove posizionarlo con qualcosa di simile a questo:

Codice: Seleziona tutto

<td style="float:right;">{TEXT_SIZE}</td>
La cosa bella è che il {TEXT_SIZE} "oggetto" è il tutto... basta incollare dove vuoi che la funzione appaia.

-- Roger
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Menu Forum ha scritto:

Rispondi

Torna a “Snippets”

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti