Pagina 1 di 2
Creare topic in automatico e stampare post in pagina custom
Inviato: 21/07/2012, 16:53
da JellyBelly
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
Re: Creare topic in automatico e stampare post in pagina cus
Inviato: 22/07/2012, 0:57
da Lady R
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

Re: Creare topic in automatico e stampare post in pagina cus
Inviato: 22/07/2012, 8:12
da Micogian
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"
Re: Creare topic in automatico e stampare post in pagina cus
Inviato: 22/07/2012, 9:44
da JellyBelly
Appunto per questo ho chiesto aiuto qui x conoscere tutti i giusti passi da compire!
Re: Creare topic in automatico e stampare post in pagina cus
Inviato: 22/07/2012, 9:48
da Lady R
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.
Re: Creare topic in automatico e stampare post in pagina cus
Inviato: 22/07/2012, 14:11
da Lady R
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.
Re: Creare topic in automatico e stampare post in pagina cus
Inviato: 22/07/2012, 17:54
da Barrnet
c'è una funzione che permette di cambiare l'autore, quella usata dal modcp, non upoi farlo cambiare dopo il posting?
Re: Creare topic in automatico e stampare post in pagina cus
Inviato: 22/07/2012, 18:29
da Lady R
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
Re: Creare topic in automatico e stampare post in pagina cus
Inviato: 22/07/2012, 20:57
da Micogian
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.
Re: Creare topic in automatico e stampare post in pagina cus
Inviato: 23/07/2012, 0:12
da Lady R
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)