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

Creare topic in automatico e stampare post in pagina custom

Cerchi una MOD? Chiedi in questo forum.
Questa sezione è supportata dagli utenti del forum, pertanto lo Staff potrebbe non eseguire tali richieste.
JellyBelly
Utente
Utente
Messaggi: 32
Iscritto il: 05/03/2010, 12:45
Versione: 3.0.10
Server: UNIX/Linux

Creare topic in automatico e stampare post in pagina custom

Messaggio da JellyBelly » 21/07/2012, 16:53

Salve amici,
sono di nuovo qui per chiedere lumi.

Premessa: ho un blog in wordpress e anche il forum phpbb ovviamente. Ho installato un plugin per wordpress che si chiama WP bridge phpBB che mi permette di usare le utenze del forum anche all'interno del blog mantenendo la stessa sessione.

1
Quello che vorrei fare e' creare un 3D senza passare per il form di creazione del forum.
Mi spiego meglio: alla creazione di un nuovo articolo su wordpress vorrei creare in automatico un nuovo 3D in un determinato forum fisso usando lo stesso titolo dell'articolo, ma all'interno del post inserire semplicemente il link all'articolo del blog. Ovviamente devo mettere mano nel codice di wordpress per fare questo, ma quello che mi interessa e come effettuare la insert nelle tabelle di phpbb!

2
Sotto l'articolo del blog vorrei mostrare tutti i post effettuati nel 3D creato al punto 1.

3
Vorrei riscrivere anche la gestione dei commenti di WP in modo che se uno inserisce un commento all'articolo del blog fosse come se aggiungesse un post al 3D del forum!

Spero di essere stato chiaro e che la cosa sia fattibile!
Sono un paio di giorni che cerco se qualcuno ha gia' realizzato una cosa simile, ma senza successo! :S
Mi date una mano a chiarirmi un po come fare il tutto?
Sicuramente avro' bisogno di una tabella di relazione che mi collega ID Articolo e ID Topic in modo che alla visualizzazione dell'articolo so in quale topic andare a prendere i commenti da visualizzare e nel caso di aggiunta di un commento so in qualche topic andare ad aggiungere un post!

Spero davvero in un vostro aiuto!
Ciao

Avatar utente
Lady R
phpBB Expert
phpBB Expert
Messaggi: 900
Iscritto il: 08/11/2011, 13:43
Sesso: Femmina
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQLi
Contatta:

Re: Creare topic in automatico e stampare post in pagina cus

Messaggio da Lady R » 22/07/2012, 0:57

pensa te, vorrei fare la stessa cosa ma per Joomla > phpBB

lol

Comunque credo tu debba fare una query che crea il post, guarda la tabella `phpbb_posts` e dopodiché creare un topic ed associarlo al post creato, guarda `phpbb_topics`

Non penso sia difficile da fare.

Se ci riesci condividi la query, poi ti do una mano con l'integrazione della query in wordpress :P

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: Creare topic in automatico e stampare post in pagina cus

Messaggio da Micogian » 22/07/2012, 8:12

Attenzione che la cosa è un pò più complessa.
Quando si crea una discussione viene inserito un nuovo record nella tabella topics e ovviamente gli viene assegnato un ID (topic_id), oltre agli altri dati (title, data, IP, poster_id, forum_id, bbcode_uid, ecc.)
Viene aggiunti un nuovo record alla tabella posts associandolo al topic_id appena creato.
Nella tabella post viene inserito il tetso oltre a tutti gli altri dati.
Ma non basta. Nella tabella forums vengono aggiornati i dati dell'ultimo_post (titolo, data, poster_id, ecc.)
Stessa cosa pe rla tabella users, all'utente viene associato l'ultimo post.
Tralasciamo altre tabelle, come words, dove vengono aggiunte le stringhe necessarie alla ricerca.

Non dimentichiamoci poi che il testo nel database viene "parsato", con l'aggiunta del bbcode_uid. Questo avviene con la funzione generate_text_for_storage, mentre la visualizzazione del contenuto di un post vine eseguita tramite generate_text_for_display.

In sostanza si può fare ma bisogna conoscere tutte le operazioni che avvengono con il sistema. altrimenti si rischia di non aggiornare tutte le tabelle interessate dal comando "posting"

JellyBelly
Utente
Utente
Messaggi: 32
Iscritto il: 05/03/2010, 12:45
Versione: 3.0.10
Server: UNIX/Linux

Re: Creare topic in automatico e stampare post in pagina cus

Messaggio da JellyBelly » 22/07/2012, 9:44

Appunto per questo ho chiesto aiuto qui x conoscere tutti i giusti passi da compire!

Avatar utente
Lady R
phpBB Expert
phpBB Expert
Messaggi: 900
Iscritto il: 08/11/2011, 13:43
Sesso: Femmina
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQLi
Contatta:

Re: Creare topic in automatico e stampare post in pagina cus

Messaggio da Lady R » 22/07/2012, 9:48

oggi se riesco provo a fare un backup di tutte le tabelle del mio forum, poi scrivo un nuovo topic, faccio un nuovo backup, e confronto i due backup per vedere le modifiche.

Avatar utente
Lady R
phpBB Expert
phpBB Expert
Messaggi: 900
Iscritto il: 08/11/2011, 13:43
Sesso: Femmina
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQLi
Contatta:

Re: Creare topic in automatico e stampare post in pagina cus

Messaggio da Lady R » 22/07/2012, 14:11

Ho trovato e modificato leggermente questo:

ext_post.php

Codice: Seleziona tutto


<?php

/**

*

* @package phpBB3

* @version $Id: twitpost.php,v1.0.0 2010/05/31 2:43 PM PPCW2 Exp $

* @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 : './';

$phpbb_admin_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_posting.' . $phpEx);

include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

include($phpbb_root_path . 'includes/message_parser.' . $phpEx);



// Start session management

$user->session_begin();

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

$user->setup('common');





$tmsg = request_var('tmsg', ''); // getting data from the submitted HTML form (name of the feild should be tmsg)

$message = "$tmsg";



$tsubj = request_var('tsubj', '');

$rawsubject = "$tsubj";



$forum = 20; //change to your forum id here



$time = time();

$my_subject   = utf8_normalize_nfc($rawsubject, '', true);

$my_text   = utf8_normalize_nfc($message, '', true);



// variables to hold the parameters for submit_post

$poll = $uid = $bitfield = $options = '';



generate_text_for_storage($my_subject, $uid, $bitfield, $options, false, false, false);

generate_text_for_storage($my_text, $uid, $bitfield, $options, true, true, true);



$data = array(

       'forum_id'      => $forum,

       'icon_id'      => false,



       'enable_bbcode'      => true,

       'enable_smilies'   => true,

       'enable_urls'      => true,

       'enable_sig'      => true,



       'message'      => $my_text,

       'message_md5'   => md5($my_text),

                

       'bbcode_bitfield'   => $bitfield,

       'bbcode_uid'      => $uid,



       'post_edit_locked'   => 0,

       'topic_title'      => $my_subject,

       'notify_set'      => false,

       'notify'         => false,

       'post_time'       => 0,

       'forum_name'      => '',

       'enable_indexing'   => true,

);



submit_post('post', $my_subject, $user->data['username'], POST_NORMAL, $poll, $data);

?>
e ext_post.html

Codice: Seleziona tutto

<form method="post" action="ext_post.php" >

<label>Titolo:</label><input type="text" name="tsubj" size="50" value="" class="inputbox post">

<label>Testo:</label><input type="text" name="tmsg" size="50" value="" class="inputbox post">

<input value="Post it"  type="submit">

</form>

Supporta i BBcode, il problema è che posta il messaggio con l'utente attualmente loggato, o come Anonymous.

Ho provato a forzare l'uso di un altro utente ma non ci son riuscita, magari Micogian che ne sa di più riesce a modificarlo.

Poi integrare lo script dentro a wordpress o joomla non dovrebbe essere complicato.

Avatar utente
Barrnet
Leader Moderatori
Leader Moderatori
Messaggi: 3124
Iscritto il: 04/07/2010, 23:31
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
PHP: 5.3.10
Database: MySQL 5.1.61-community-log
Contatta:

Re: Creare topic in automatico e stampare post in pagina cus

Messaggio da Barrnet » 22/07/2012, 17:54

c'è una funzione che permette di cambiare l'autore, quella usata dal modcp, non upoi farlo cambiare dopo il posting?

Avatar utente
Lady R
phpBB Expert
phpBB Expert
Messaggi: 900
Iscritto il: 08/11/2011, 13:43
Sesso: Femmina
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQLi
Contatta:

Re: Creare topic in automatico e stampare post in pagina cus

Messaggio da Lady R » 22/07/2012, 18:29

Boh credo sia più pulito modificare prima l'user, anche perché sennò PHP posterebbe come anonimo, il topic sarebbe in attesa di moderazione, bisognerebbe poi cambiare il proprietario del topic e approvarlo

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: Creare topic in automatico e stampare post in pagina cus

Messaggio da Micogian » 22/07/2012, 20:57

Io sono al mare ed ho un collegamento di fortuna.
Rientro tra una settimana.
Secondo me bisogna guardare quello che fa il file posting e la funzione che salva il testo nel post è generate_text_for_storage.
Quello che viene salvato nel database non è esattamente quello che si visualizza quando si crea un post.
In particolare sono i bbcode ad essere modificati con l'aggiunta del bbcode_uid, valore assegnato dalla funzione suddetta.

Avatar utente
Lady R
phpBB Expert
phpBB Expert
Messaggi: 900
Iscritto il: 08/11/2011, 13:43
Sesso: Femmina
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQLi
Contatta:

Re: Creare topic in automatico e stampare post in pagina cus

Messaggio da Lady R » 23/07/2012, 0:12

lo script che ho postato fa gia tutto.
è come se postassi usando il forum normale con "nuovo argomento".

bisogna capire come inizializzare la sessione con un utente differente (al momento la inizializza leggendo i cookie del browser)

Rispondi

Torna a “Richiesta MOD”

Chi c’è in linea

Visitano il forum: Nessuno e 45 ospiti