Creer topic automatiquement a la creation d'une news..

Ce forum aborde toutes les questions qu'un codeur ou webmaster pourrait se poser, et n'ayant aucun rapport direct avec phpBB.
Tout ce qui peut concerner la récupération des sessions de phpBB sur votre site, doit se faire dans cette section.

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com

Creer topic automatiquement a la creation d'une news..

Messagepar o77 » 23 Aoû 2008 à 13:50

Bonjour,

Pour gérer les news d'un site, j'utilise un systeme de news 'Express News System' dérivé du portail 'KTVM Portal 1.0.1b' qui m'affiche sur le portail les x dernières news via des rubriques spécifiques.
Ces news sont aussi intégrées à un flux RSS créé par KTVM, donc flux rss indépendant de celui des forums.
La création des news se fait par l'ACP. Il n'y a que moi et deux redacteurs pouvant creer ces news.

Ce que je voudrais faire, et pour éviter des doublons ou des posts inutiles par les users, c'est qu'a la création de la news, un topic soit également créé dans le forum spécifique aux news du site et (mais cela je ne pense pas que ce soit réalisable), qu'il cree le lien depuis la news vers le topic (actuellement c est un lien menant a l'index du forum news)..;

J'ai essayé en incluant du coding suivant le fichier posting.php mais a chaque fois j'ai une erreur.. ou page blanche

voici la page de l'acp pour la creation des articles : http://olilesp.ifrance.com/acp_express_articles.txt
je pense que le coding de creation de l article commence vers la ligne 200 ...

est-ce possible et comment ?
merci :twisted:
Modifié en dernier par o77 le 02 Aoû 2010 à 10:25, modifié 4 fois.
phpBB forums.. what else ?
Avatar de l’utilisateur
o77
Roi des posts
Roi des posts
 
Messages: 588
Enregistré le: 14 Mar 2008 à 09:50
Localisation: Belgique

Re: Creer topic automatiquement a la creation d'une news..

Messagepar Oyo » 23 Aoû 2008 à 15:31

Salut,

Il est tout a fait possible de le faire, je ne vais pas te donner le code pour faire ce que tu souhaite car je ne travaille pas avec phpBB 3 mais je vais te donner les grande ligne:
Lorsque tu crées ta news (case 'save') avant ton INSERT INTO tu dois alors appeler la fonction submit_post que tu trouve dans includes/functions_posting.php.
Tu peux trouver des info sur cette fonction ici c'est en anglais par contre.

Voilà les paramètres de cette fonction $mode, $subject, $username, $topic_type, &$poll, &$data, $update_message = true
$mode peut être 'post', 'reply' or 'edit'.

$subject contient le sujet post/topic

$username à renseigner uniquement si l'utilisateur n'est pas enregisté

$topic_type peut être POST_NORMAL, POST_STICKY, POST_ANNOUNCE or POST_GLOBAL, suivant le type de message que vous voulez poster. C'est utile uniquement pour la création d'un poste ou la réponse d'un sujet dans une annonce globale.

$poll est un tableau (dans ton cas tu n'en as pas besoin)

$data est un tableau qui pendre plusieurs paramètres (voir plus bas)

$update_message
paramètre optionnel pas besoin de t'en occupé

Pour créer un nouveau topic, il te faut simplement mettre 'post' pour le mode.
Pour le paramètre $data tu doit créer un tableau de ce type:

$data: topic_title, forum_id, icon_id, enable_bbcode, enable_smilies, enable_urls, enable_sig, message, message_md5, bbcode_bitfield, bbcode_uid, post_edit_locked, topic_time_limit (if sticky or announcement), topic_approved, post_time, enable_indexing, forum_name, notify, notify_set.

Code: Tout sélectionner
$data = array(
    
'topic_title'            => (empty($post_data['topic_title'])) ? $post_data['post_subject'] : $post_data['topic_title'],
    
'forum_id'                => (int) $forum_id,
    
'icon_id'                => (int) $post_data['icon_id'],
    
'enable_bbcode'            => (bool) $post_data['enable_bbcode'],
    
'enable_smilies'        => (bool) $post_data['enable_smilies'],
    
'enable_urls'            => (bool) $post_data['enable_urls'],
    
'enable_sig'            => (bool) $post_data['enable_sig'],
    
'message'                => $message_parser->message,
    
'message_md5'            => (string) $message_md5,
    
'bbcode_bitfield'        => $message_parser->bbcode_bitfield,
    
'bbcode_uid'            => $message_parser->bbcode_uid,
    
'post_edit_locked'        => (int) $post_data['post_edit_locked'],
    
'topic_approved'        => (isset($post_data['topic_approved'])) ? $post_data['topic_approved'] : false,
    
'post_time'                => (isset($post_data['post_time'])) ? (int) $post_data['post_time'] : $current_time,
    
'enable_indexing'        => (bool) $post_data['enable_indexing'],
    
'forum_name'            => $post_data['forum_name'],
    
'notify'                => $notify,
    
'notify_set'            => $post_data['notify_set'],
);   


J'ai recopié ce tableau de posting.php.

Voilà déjà tu sais comment créer un sujet, maintenant on va créer un lien vers ton nouveau sujet dans ta news.
La fonction submit_post() te renvoi une URL donc à partir de là tu peux rajouter un ligne avant de parser les bbcode dans ton message comme ceci:

Code: Tout sélectionner
// On ajoute le message dans le forum de news (les données sont fictives)
$url submit_post($mode$post_data['post_subject'], $post_data['username'], $post_data['topic_type'], $poll$data$update_message);
// On ajoute le lien à la fin du message:
$article_content $article_content ."\n\n [url=".$url."]Lien vers le forum[/url]"


Voilà.
Ancien Administrateur de phpBB-fr - R.I.P Oyo 2006~2009

PrestaShop | PrestaStore
Avatar de l’utilisateur
Oyo
Inoubliable administrateur
 
Messages: 15306
Enregistré le: 12 Fév 2003 à 20:02
Localisation: Paris

Re: Creer topic automatiquement a la creation d'une news..

Messagepar o77 » 23 Aoû 2008 à 17:13

Merci pour ta réponse, mais là, c'est encore plus embrouillé que je ne pensais...

si je comprends :
je dois faire mes modifs dans la partie case : SAVE et y ajouter case : POST ...
au lieu de faire les modifs dans case : add ...

portion du code case : save => http://olilesp.ifrance.com/acp_express_ ... e_save.txt

pour le reste, je cale, et sec... :s :

La variable $message devrait comprendre les variables $article_intro et $article_content... je n'arrive pas a les assembler...
Ni a joindre l'image de la variable $article_image dans le message (quoique optionnel)

il y a plein de variables dont soit, je n'ai soit pas besoin, soit pas la variable n'existe pas à la création de l'article :
'icon_id' , 'enable_bbcode' , 'enable_smilies' , 'enable_urls' , 'enable_sig' , 'message_md5' , 'post_edit_locked' , 'topic_approved' , 'post_time' , 'enable_indexing' , 'forum_name' , 'notify' et 'notify_set'

en fait, le topic dans le forum des news (forum id=30) devrait rassembler ces données :
Article title pour le titre du topic
Article intro + article content ( + article image) pour le message du topic
et uniquement ca...

Bref, là je patauge... et n'y arrive plus... pouvez vous m'aider ?

merci ;)
phpBB forums.. what else ?
Avatar de l’utilisateur
o77
Roi des posts
Roi des posts
 
Messages: 588
Enregistré le: 14 Mar 2008 à 09:50
Localisation: Belgique

Re: Creer topic automatiquement a la creation d'une news..

Messagepar Oyo » 23 Aoû 2008 à 18:18

si je comprends :
je dois faire mes modifs dans la partie case : SAVE et y ajouter case : POST ...
au lieu de faire les modifs dans case : add ...


Lors que je parlais de "mode" je faisais référence à la fonction submit_post ;) ce que tu as fait est bien.

Dans ce cas $message devrait ressemblait plus ou moins à ça
Code: Tout sélectionner
$message $article_intro."\n\n".$article_content."\n\n".$article_image;  


il y a plein de variables dont soit, je n'ai soit pas besoin, soit pas la variable n'existe pas à la création de l'article :
'icon_id' , 'enable_bbcode' , 'enable_smilies' , 'enable_urls' , 'enable_sig' , 'message_md5' , 'post_edit_locked' , 'topic_approved' , 'post_time' , 'enable_indexing' , 'forum_name' , 'notify' et 'notify_set'

Tu es a besoin si tu veux que le message soit envoyer correctement ;)
icon_id = 0
enable_bbcode = 1
enable_urls = 1
enable_sig = 0
$message_md5 = md5($message_parser->message);
message_md5 = $message_md5
post_edit_locked = 0
topic_approved = 1
post_time = $current_time
enable_indexing = 1
forum_name =
notify = 0
notify_set = 0
Ancien Administrateur de phpBB-fr - R.I.P Oyo 2006~2009

PrestaShop | PrestaStore
Avatar de l’utilisateur
Oyo
Inoubliable administrateur
 
Messages: 15306
Enregistré le: 12 Fév 2003 à 20:02
Localisation: Paris

Re: Creer topic automatiquement a la creation d'une news..

Messagepar o77 » 23 Aoû 2008 à 21:19

Bon, rien 'y fait , c est toujours en erreur...

Le probleme : ou mettre ces variables ?

J'ai bien inclus la fonction posting..
J'ai modifié le fichier comme ceci : http://olilesp.ifrance.com/acp_express_ ... -modif.txt

Les modifs sont commentées par /* modif */ ou par // modif ...

et rien, rien qu'une erreur SQL :
Code: Tout sélectionner
SQL ERROR [ mysqli ]

Column 'forum_id' cannot be null [1048]

SQL

INSERT INTO phpbb_posts (forum_id, poster_id, icon_id, poster_ip, post_time, post_approved, enable_bbcode, enable_smilies, enable_magic_url, enable_sig, post_username, post_subject, post_text, post_checksum, post_attachment, bbcode_bitfield, bbcode_uid, post_postcount, post_edit_locked, topic_id) VALUES (NULL, 53, NULL, 'ip retirée', 1219518977, 1, NULL, NULL, NULL, NULL, '', NULL, NULL, NULL, 0, NULL, NULL, 0, NULL, NULL)

note : j ai modifié l ip donnée ;)

aucune donnée n'est valable (null)

ca fait presque une semaine que je planche là dessus, sans résultats...
phpBB forums.. what else ?
Avatar de l’utilisateur
o77
Roi des posts
Roi des posts
 
Messages: 588
Enregistré le: 14 Mar 2008 à 09:50
Localisation: Belgique

Re: Creer topic automatiquement a la creation d'une news..

Messagepar Oyo » 23 Aoû 2008 à 23:14

Oui enfin normal...

Regarde , j'ai fait quelques modifs
Le ficher seul est
Ancien Administrateur de phpBB-fr - R.I.P Oyo 2006~2009

PrestaShop | PrestaStore
Avatar de l’utilisateur
Oyo
Inoubliable administrateur
 
Messages: 15306
Enregistré le: 12 Fév 2003 à 20:02
Localisation: Paris

Re: Creer topic automatiquement a la creation d'une news..

Messagepar o77 » 24 Aoû 2008 à 10:57

Bonjour Oyo, et merci pour ton aide...
Aux premiers tests, j'avais deux erreurs de virgules non placées, erreurs que j'ai corrigé. (ligne 101 et 103)

Ensuite, le script s est bien déroulé sauf que :
~ aucun lien ne s'est ajouté dans l'article (lien vers le topic du forum)
~ aucun topic ne s'est inséré dans le forum spécifié, ni le forum en général d'ailleurs.

J'ai vu que la SQL
Code: Tout sélectionner
$sql = 'INSERT INTO ' . POSTS_TABLE . ' ' . $db->sql_build_array('INSERT', $data2);
$db->sql_query($sql);

n'existait pas (plus) dans le code, je l'ai rajoutée, (ajout sous la ligne de code SQL insert to EXPRESS ARTICLES TABLE)
Code: Tout sélectionner
$sql = 'INSERT INTO ' . EXPRESS_ARTICLES_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
$db->sql_query($sql);

mais a nouveau erreur SQL... pour ce problème, tu parles certainement pour des tables de PHPBB2, car les tables de PHPBB3 ne sont pas les mêmes (voir au début du topic ou tu parles de travail sur PHPBB2) , il y a la table POSTS et la table TOPICS

edit 12h30
Voici ma dernière modif http://olilesp.ifrance.com/acp_express_ ... -11h15.txt qui crée l'article en zone des news (plus d'erreur sql) mais qui n'ajoute toujours pas le lien dans l'article lui meme, et qui n'ajoute rien dans le forum...
les modifs sont commentées par /* modif 24-08 + la raison ...

Je pense que maintenant, la génération des données est ok pour créér un nouveau topic dans le forum, mais la requête cale quelque part, non ?

D'ou la question que je me pose : En créant un nouveau topic a chaque news, faut il alimenter la table TOPICS et la table POSTS ? et comment ?
Avatar de l’utilisateur
o77
Roi des posts
Roi des posts
 
Messages: 588
Enregistré le: 14 Mar 2008 à 09:50
Localisation: Belgique

Re: Creer topic automatiquement a la creation d'une news..

Messagepar Oyo » 24 Aoû 2008 à 16:58

A aucun moment je n'ai parlais de phpBB 2 dans mon poste, j'ai simplement dit que je ne travaillais pas avec phpBB 3 (ou rarement)

Peux tu me donner un zip avec toute les ficheir + les db (tes tables) au forms SQL ça sera plus simple.
Ancien Administrateur de phpBB-fr - R.I.P Oyo 2006~2009

PrestaShop | PrestaStore
Avatar de l’utilisateur
Oyo
Inoubliable administrateur
 
Messages: 15306
Enregistré le: 12 Fév 2003 à 20:02
Localisation: Paris

Re: Creer topic automatiquement a la creation d'une news..

Messagepar o77 » 24 Aoû 2008 à 17:09

ah ok, je pensais que tu parlais de phpbb2... désolé de ma bourde ;)

Je le poste d'ici quelques minutes
Modifié en dernier par o77 le 24 Aoû 2008 à 17:22, modifié 2 fois.
phpBB forums.. what else ?
Avatar de l’utilisateur
o77
Roi des posts
Roi des posts
 
Messages: 588
Enregistré le: 14 Mar 2008 à 09:50
Localisation: Belgique

Re: Creer topic automatiquement a la creation d'une news..

Messagepar Oyo » 24 Aoû 2008 à 17:12

Pas de soucis ;)
J'avais fait une fonction d'envoi de message pour phpBB3 mais je la retrouve plus, je l'avais poster sur le site d'Evil<3 (membre de l'équipe de phpBB) mais il a fait le ménage dans son forum.
Ancien Administrateur de phpBB-fr - R.I.P Oyo 2006~2009

PrestaShop | PrestaStore
Avatar de l’utilisateur
Oyo
Inoubliable administrateur
 
Messages: 15306
Enregistré le: 12 Fév 2003 à 20:02
Localisation: Paris

Re: Creer topic automatiquement a la creation d'une news..

Messagepar o77 » 24 Aoû 2008 à 17:23

Le voici : http://users.skynet.be/fa360509/Bureau.zip
4 fichiers, sans virus :
sql : phpbb_posts et phpbb_topics , vidés du contenu texte (posts), reste que les tables...
php : 0acp_express_articles.php pour le fichier d'origine , acp_express_articles.php est le fichier modifié
phpBB forums.. what else ?
Avatar de l’utilisateur
o77
Roi des posts
Roi des posts
 
Messages: 588
Enregistré le: 14 Mar 2008 à 09:50
Localisation: Belgique

Re: Creer topic automatiquement a la creation d'une news..

Messagepar Oyo » 24 Aoû 2008 à 17:35

Il ne s'agit pas d'un mod ?
Ancien Administrateur de phpBB-fr - R.I.P Oyo 2006~2009

PrestaShop | PrestaStore
Avatar de l’utilisateur
Oyo
Inoubliable administrateur
 
Messages: 15306
Enregistré le: 12 Fév 2003 à 20:02
Localisation: Paris

Re: Creer topic automatiquement a la creation d'une news..

Messagepar o77 » 24 Aoû 2008 à 17:41

comme dit au début, c est un un mod-portail qui gere aussi des news
phpBB forums.. what else ?
Avatar de l’utilisateur
o77
Roi des posts
Roi des posts
 
Messages: 588
Enregistré le: 14 Mar 2008 à 09:50
Localisation: Belgique

Re: Creer topic automatiquement a la creation d'une news..

Messagepar Oyo » 24 Aoû 2008 à 17:42

enfaite c'est plutôt ça que j'aimerai avoir (je sais je suis un peu boulet sur les bords)
Ancien Administrateur de phpBB-fr - R.I.P Oyo 2006~2009

PrestaShop | PrestaStore
Avatar de l’utilisateur
Oyo
Inoubliable administrateur
 
Messages: 15306
Enregistré le: 12 Fév 2003 à 20:02
Localisation: Paris

Re: Creer topic automatiquement a la creation d'une news..

Messagepar o77 » 24 Aoû 2008 à 17:47

le voici, http://users.skynet.be/fa360509/portal_articles.zip :wink:
le zip complet, le fichier a modifier est dans root/includes/acp/
phpBB forums.. what else ?
Avatar de l’utilisateur
o77
Roi des posts
Roi des posts
 
Messages: 588
Enregistré le: 14 Mar 2008 à 09:50
Localisation: Belgique

Suivante

Retourner vers Coding, Webmastering et Sécurité informatique

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités

cron