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

New topic che apre un altra pagina?

Supporto per phpBB 3.0.x.
Avatar utente
gennyna
Utente
Utente
Messaggi: 1017
Iscritto il: 11/07/2009, 18:31
Versione: 3.0.10
Server: UNIX/Linux
Contatta:

Re: New topic che apre un altra pagina?

Messaggio da gennyna » 07/12/2010, 23:28

dunque cosa impossibile?

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: New topic che apre un altra pagina?

Messaggio da Micogian » 07/12/2010, 23:46

"impossibile" è un termine che non esiste con php, solo che ci vuole una soluzione diversa, un pochino più complessa e forse è meno complicato inserire tutti i FORUM_ID.
Altrimenti bisogna lavorare all'origine, nel php, non nel template.
Soluzioni ce ne sono tante, bisogna trovarne una non troppo complessa. Un'idea ce l'ho ma devo vedere alcune cose, ma senza fretta.

Avatar utente
gennyna
Utente
Utente
Messaggi: 1017
Iscritto il: 11/07/2009, 18:31
Versione: 3.0.10
Server: UNIX/Linux
Contatta:

Re: New topic che apre un altra pagina?

Messaggio da gennyna » 07/12/2010, 23:51

vabene capo :)

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: New topic che apre un altra pagina?

Messaggio da Micogian » 08/12/2010, 11:28

La notte porta consiglio, risolto :mrgreen:

devi fare così:

1) creare un file functions_personali.php da mettere nella cartella includes.
E' un file che può servire per altre funzioni, contiene functions personalizzate.
Ci metti dentro questo:

Codice: Seleziona tutto

<?php
// function special_forum - stabilisce una serie di Forum da trattare diversamente
// Lista dei Forums speciali: iniziare e terminare con una virgola, niente spazi. 
function special_forum($forum_id)
{
   $spec_forums = ",,1,6,7,53," ;

   if(strpos($spec_forums, "," . $forum_id . ",") == 0)
   {
   return 0 ;
   }else{
   return 1 ;
   }
}
?>
Nella riga $spec_forums devi elencare tutti i Forum_id interessati dalla function.
Attenzione alle virgole: la lista deve cominciare con due virgole, i forum_id vanno separati da una virgola, non ci devono essere spazi tra i forum_id e la lista deve terminare con una virgola.
Il motivo è semplice: la function si basa sul comando php strpos() che controlla la posizione di una stringa in un testo.
Ne deriva che se volessimo controllare la presenza della stringa 25 avremmo una risposta positiva anche nel caso fossero presenti forum_id 125, 225, 250, ecc.
Se invece cerchiamo la presenza della stringa ,25, siamo sicuri che la ricerca riguarda quella specifica stringa.
Se la stringa che corrisponde al forum_id corrente è presente nella Lista "spec_forums" la function restituisce '1', se non c'è restituisce '0'.
La doppia virgola iniziale serve ad evitare che venga restituito '0' qualora il forum_id fosse il primo.
strpos() restituisce la posizione della stringa cercata in un testo, ma se la stringa è all'inizio la posizione sarà '0', quindi lo stesso risultato se non fosse presente, ecco la necessità di inserire due virgole iniziali per evitare questo.)

2) adesso andiamo a inserire la function nel file viewforum.php
Trova la riga

Codice: Seleziona tutto

include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
e aggiungi la riga seguente:

Codice: Seleziona tutto

include($phpbb_root_path . 'includes/functions_personali.' . $phpEx);
In questo modo tutte le function personalizzate sono utilizzabili dal file php.

3) adesso inseriamo la variabile FORUM_SPEC.
Sempre nel file viewforum.php trova la parte di codice seguente:

Codice: Seleziona tutto

$template->assign_vars(array(
	'MODERATORS'	=> (!empty($moderators[$forum_id])) ? implode(', ', $moderators[$forum_id]) : '',
aggiungi la segunete riga:

Codice: Seleziona tutto

'FORUM_SPEC'	=> special_forum($forum_id),
Adesso abbiamo una variabile {FORUM_SPEC} che può essere '0' o '1' a seconda che il forum corrente faccia parte della Lista "special" o meno e la sfruttiamo nel Template.

3) Template viewforum_body.html
La seguente riga

Codice: Seleziona tutto

   <!-- IF not S_IS_BOT and S_DISPLAY_POST_INFO -->
      <div class="buttons">
         <div class="<!-- IF S_IS_LOCKED -->locked-icon<!-- ELSE -->post-icon<!-- ENDIF -->"><a href="{U_POST_NEW_TOPIC}" title="<!-- IF S_IS_LOCKED -->{L_FORUM_LOCKED}<!-- ELSE -->{L_POST_TOPIC}<!-- ENDIF -->"><span></span><!-- IF S_IS_LOCKED -->{L_FORUM_LOCKED}<!-- ELSE -->{L_POST_TOPIC}<!-- ENDIF --></a></div>
      </div>
   <!-- ENDIF -->
Va sostituita con

Codice: Seleziona tutto

   <!-- IF not S_IS_BOT and S_DISPLAY_POST_INFO -->
      <div class="buttons">
         <div class="<!-- IF S_IS_LOCKED -->locked-icon<!-- ELSE -->post-icon<!-- ENDIF -->"><a href="<!-- IF FORUM_SPEC == 1 -->http://www.tuosito.it/pagina.php<!-- ELSE -->{U_POST_NEW_TOPIC}<!-- ENDIF -->" title="<!-- IF S_IS_LOCKED -->{L_FORUM_LOCKED}<!-- ELSE -->{L_POST_TOPIC}<!-- ENDIF -->"><span></span><!-- IF S_IS_LOCKED -->{L_FORUM_LOCKED}<!-- ELSE -->{L_POST_TOPIC}<!-- ENDIF --></a></div>
      </div>
   <!-- ENDIF -->
In questo modo, se il valore di FORUM_SPEC è uguale a '1' viene aperta la pagina personalizzata, altrimenti quella standard.

Attenzione che nel file viewforum_body.html il pulsante "Nuovo Argomento" è presente in due parti, all'inizio e alla fine, quindi se vogliamo mantenere la possibilità di aprire la pagina normalmente potremmo lasciare uno dei due links allo stato attuale, altrimenti la modifica va fatta in entrambi i links.

Questo è tutto, sembra complicato ma alla fine si tratta di poco codice da aggiungere e di creare una Lista dei Forums "speciali" che, a questo punto, potrebbero anche essere in Categorie diverse.

Avatar utente
gennyna
Utente
Utente
Messaggi: 1017
Iscritto il: 11/07/2009, 18:31
Versione: 3.0.10
Server: UNIX/Linux
Contatta:

Re: New topic che apre un altra pagina?

Messaggio da gennyna » 09/12/2010, 13:31

Provo Subito...!!

Avatar utente
gennyna
Utente
Utente
Messaggi: 1017
Iscritto il: 11/07/2009, 18:31
Versione: 3.0.10
Server: UNIX/Linux
Contatta:

Re: New topic che apre un altra pagina?

Messaggio da gennyna » 09/12/2010, 13:59

facendo quelle modifiche, appena apro un forum mi dice:

Codice: Seleziona tutto

Errore del server.

Si è verificato un errore nel sito web durante il recupero di http://www.clonedb.tk/nforum/viewforum.php?f=26. Potrebbe non essere disponibile per manutenzione o essere configurato in modo errato.

Ecco qualche suggerimento:
Carica di nuovo questa pagina web in un secondo momento.

Ho ripristinato i file originali e funge..

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: New topic che apre un altra pagina?

Messaggio da Micogian » 09/12/2010, 15:16

Guarda, ho provato in locale e funziona.
A meno che nel copiare il codice abbia fatto qualche errore di punteggiatura ti garantisco che va.
Considerando inosltre che il valore di {FORUM_SPEC} può essere '0' (false) o '1' (true) al posto di

Codice: Seleziona tutto

<!-- IF FORUM_SPEC == 1 -->
basterebbe

Codice: Seleziona tutto

<!-- IF FORUM_SPEC  -->

PS: mi sono accorto ora: c'è un "endif" minuscolo

Codice: Seleziona tutto

<!-- endif -->
Ma queste cose dovreste conoscerle ormai.

Avatar utente
gennyna
Utente
Utente
Messaggi: 1017
Iscritto il: 11/07/2009, 18:31
Versione: 3.0.10
Server: UNIX/Linux
Contatta:

Re: New topic che apre un altra pagina?

Messaggio da gennyna » 09/12/2010, 15:27

spetta forse non funziona perchè nel mio file php non trovo il codice:

Codice: Seleziona tutto

$template->assign_vars(array(
   'MODERATORS'   => (!empty($moderators[$forum_id])) ? implode(', ', $moderators[$forum_id]) : '',

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: New topic che apre un altra pagina?

Messaggio da Micogian » 09/12/2010, 16:15

Può darsi che l'ordine delle variabili non sia lo stesso, in pratica è l'elenco delle variabili:

Codice: Seleziona tutto

$template->assign_vars(array(
	'MODERATORS'	=> (!empty($moderators[$forum_id])) ? implode(', ', $moderators[$forum_id]) : '',

	'POST_IMG'					=> ($forum_data['forum_status'] == ITEM_LOCKED) ? $user->img('button_topic_locked', $post_alt) : $user->img('button_topic_new', $post_alt),
	'NEWEST_POST_IMG'			=> $user->img('icon_topic_newest', 'VIEW_NEWEST_POST'),
	'LAST_POST_IMG'				=> $user->img('icon_topic_latest', 'VIEW_LATEST_POST'),
	'FOLDER_IMG'				=> $user->img('topic_read', 'NO_UNREAD_POSTS'),
	'FOLDER_UNREAD_IMG'			=> $user->img('topic_unread', 'UNREAD_POSTS'),
	'FOLDER_HOT_IMG'			=> $user->img('topic_read_hot', 'NO_UNREAD_POSTS_HOT'),
	'FOLDER_HOT_UNREAD_IMG'		=> $user->img('topic_unread_hot', 'UNREAD_POSTS_HOT'),
	'FOLDER_LOCKED_IMG'			=> $user->img('topic_read_locked', 'NO_UNREAD_POSTS_LOCKED'),
	'FOLDER_LOCKED_UNREAD_IMG'	=> $user->img('topic_unread_locked', 'UNREAD_POSTS_LOCKED'),
	'FOLDER_STICKY_IMG'			=> $user->img('sticky_read', 'POST_STICKY'),
	'FOLDER_STICKY_UNREAD_IMG'	=> $user->img('sticky_unread', 'POST_STICKY'),
	'FOLDER_ANNOUNCE_IMG'		=> $user->img('announce_read', 'POST_ANNOUNCEMENT'),
	'FOLDER_ANNOUNCE_UNREAD_IMG'=> $user->img('announce_unread', 'POST_ANNOUNCEMENT'),
	'FOLDER_MOVED_IMG'			=> $user->img('topic_moved', 'TOPIC_MOVED'),
	'REPORTED_IMG'				=> $user->img('icon_topic_reported', 'TOPIC_REPORTED'),
	'UNAPPROVED_IMG'			=> $user->img('icon_topic_unapproved', 'TOPIC_UNAPPROVED'),
	'GOTO_PAGE_IMG'				=> $user->img('icon_post_target', 'GOTO_PAGE'),
La variabile

Codice: Seleziona tutto

'FORUM_SPEC'   => special_forum($forum_id),
puoi metterla dove vuoi, non ha importanza, basta che sia tra queste.
Ma se non metti la variabile non puoi pretendere che poi funzioni.

Non facciamo le modifiche a metà, per favore.

Avatar utente
gennyna
Utente
Utente
Messaggi: 1017
Iscritto il: 11/07/2009, 18:31
Versione: 3.0.10
Server: UNIX/Linux
Contatta:

Re: New topic che apre un altra pagina?

Messaggio da gennyna » 09/12/2010, 16:43

mica sono così scemo dai aahahhahah, lo so che i file vanno modificati tutti :)

Era quel endif Piccolo. Aggiorna il post così che se serve a qualcuno posso farlo anche loro

Rispondi

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

Chi c’è in linea

Visitano il forum: Nessuno e 46 ospiti