Nouveau sujet Répondre Imprimer Syndication RSS 2.0

Ce que vous voudriez avoir dans le SDK de FSB2...

Rassemblement de ce que vous voudriez avoir dans le SDK ;)
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14190
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 14 Février 2008, 15:31

Reprise du dernier message

Fait un printr($info); juste apres le $fsb->get_posts(...);

Ca t'affiche quoi ?


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Flammeche
Avatar de cedric
  • Messages : 47
  • Inscrit : 25 Janvier 2008
Message édité 1 fois, dernière édition par cedric, 14 Février 2008, 16:03     Lien vers ce message 14 Février 2008, 15:53
heu ???<br /><br />pourtant y a plein de données !!! <br />

je retrouve tous les champs.

Apparemment, ce serait les différents $info['*****'] qui ne seraient pas interprêtés et vides, alors que pourtant info contient bien tout ...
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14190
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 14 Février 2008, 16:53
Je peux avoir le code PHP de ta page, ça sera plus simple.


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Flammeche
Avatar de cedric
  • Messages : 47
  • Inscrit : 25 Janvier 2008
  Lien vers ce message 14 Février 2008, 16:59
à télécharger :

http://www.latoiledesbatteurs....ssaifsb2bis.zip

merci ;-)
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14190
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 14 Février 2008, 17:04
Je comprend pas d'où vient ton notice :/

Essaie de renommer la variable $info différemment, essaie aussi de faire echo $info['p_id'] au lieu de p_text pour voir si ça marche.


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Flammeche
Avatar de cedric
  • Messages : 47
  • Inscrit : 25 Janvier 2008
  Lien vers ce message 16 Février 2008, 0:39
<b>FSB Notice : <i>Undefined variable: match</i> in file <i>/home/www/9f002a3756bfd2a7224f7cfd8529973e/web/fsb/main/class/parser/parser_wysiwyg.php</i> (<i>254</i>)</b><br />bon, et bien je m'en suis sorti.

Je vous préviens, je suis pas doué en php, voici cependant ce que j'ai compris ce soir.

le array généré par la fonction sdk get posts renvoie un array associatif.

Donc en fait, il fallait ajouter un o pour identifier la ligne.

Ce qui donne au total avec l'adaptation pour gérer les accents le bout de code suivant :

Citation

<?php
$forum_id = '11';
$news = $fsb->get_posts($forum_id, 1, 't.t_last_p_time DESC, p.p_time');
// Lien pour éditer (mettre en note) si modo :
if (Fsb::$session->is_authorized($forum_id, 'ga_moderator'))
{
echo '<a href="' . sid(ROOT . 'index.' . PHPEXT . '?p=post&amp;mode=edit&amp;p_id=' . $news[0]['p_id']) . '">EDITER</a><hr />';
}
echo utf8_decode($news[0]['p_text']);

?>


et là ca fonctionne :

http://www.latoiledesbatteurs.com/essaifsb2bis.php


J'aurais au moins appris des choses sur les array ce soir !

:fsb2_mad:
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14190
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 18 Février 2008, 11:56
Et oui pas con, j'avais même pas fait gaffe. Cette fonction est prévue pour renvoyer un ou plusieurs messages, d'où l'utilisation d'indices ^^


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Flammeche
Avatar de cedric
  • Messages : 47
  • Inscrit : 25 Janvier 2008
  Lien vers ce message 02 Mars 2008, 12:41
Hello

en bossant sur les fonctions de sdk, j'en ai crée suivant le même modèle pour pouvoir mettre au point notre page d'accueil.

J'ai bossé un tout petit peu aussi sur le parser.

Et aujourd'hui je suis super content et ravi du résultat, nos pages sont conformes w3c et ca permet une interactivité entre le site et les forums.

voici comment ca se passe :

sur notre page d'accueil on trouve les rubriques kiosque, côté matos etc ...

http://www.latoiledesbatteurs.com/index.php

Si on clique sur côté matos, on arrive là dessus : http://www.latoiledesbatteurs.com/cotematos.php

Ce sont les premiers posts de chaque sujet présent dans le forum côté matos : http://www.latoiledesbatteurs....rum&f_id=59

Pour ces forums, seuls les modos peuvent poster un sujet, les membres normaux ne peuvent que répondre.

Mais c'est géant car côté site, on a une interface qui ne ressemble pas du tout à un forum, c'est pas trop mal intégré au site, et de l'autre côté on a l'interactivité des forums.

En plus pour les membres du staff ca devient super simple à manipuler, puisque c'est juste un post à poster.


Alors je voulais vous dire un grand merci pour ce forum, aux fonctions évoluées et très efficace, notamment à toi Genova.

Chapeau !

PS : si certains veulent le code qui m'a permis de faire tout ca, les bouts de fonctions de sdk ou le code de notre page d'index, pas de problèmes suffit de demander ;-)
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14190
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 02 Mars 2008, 16:22
Super si ça a pu bien te servir :) Si tu as des retours ou des suggestions sur le SDK (des trucs non présents qui t'auraient servi et qui mériteraient d'être dans le SDK), tu peux les donner sur ce sujet :)


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Flammeche
Avatar de cedric
  • Messages : 47
  • Inscrit : 25 Janvier 2008
Message édité 2 fois, dernière édition par Genova, 04 Mars 2008, 23:59     Lien vers ce message 04 Mars 2008, 23:39
Pour celui qui serait intéressé pour récupérer un post sans le css, le texte brut quoi, voici comment j'ai fait :

dans main/class/parser/parser.php j'ai ajouté la fonction suivante :

//permet de parser sans prise en compte du css dans le texte pour la page d'accueil du site
   public function sitemessage($str, $map_name)
   {
   $str = Map::parse_message($str, $map_name);
   $str = preg_replace('#\[/?[a-zA-Z0-9]*?((:|=)([^\]]*?))?\]#i', '', $str);
      $str = str_replace("\n", ' ', $str);
      return ($this->message($str));
   }



Ca permet de récupérer le contenu des messages en virant la traduction des balises, comme ca ca permet à l'endroit sur le site où j'ai besoin d'afficher les posts de faire une mise en page propre au site sans tenir compte de ce que les gens ont fait dans le forum.

Et dans sdk j'ai ajouté la fonction suivante :


   public function get_kiosque($forums = '*', $total = 15, $order = 'p.p_time DESC', $gbt = FALSE)
   {
      // Necessite le fichier de langue de la page des sujets
      Fsb::$session->load_lang('lg_forum_topic');

      $forums =   $this->_request_forums($forums);
      $total =   $this->_request_total($total);
      $postes =   array();
      $parser =   new Parser();
      

      $sql = 'SELECT p.*, t.*, u.*
            FROM ' . SQL_PREFIX . 'posts p
            INNER JOIN ' . SQL_PREFIX . 'topics t
               ON t.t_id = p.t_id
            INNER JOIN ' . SQL_PREFIX . 'users u
               ON p.u_id = u.u_id
            WHERE 1 = 1 '
            . (($forums) ? ' AND p.f_id IN (' . implode(', ', $forums) . ') ' : '')
            . (($gbt) ? ' GROUP BY p.t_id' : '')
            . (($order) ? ' ORDER BY ' . $order : '')
            . (($total > 0) ? ' LIMIT ' . $total : '');
      $result = Fsb::$db->query($sql);
      $compteur = mysql_num_rows($result);
      while ($row = Fsb::$db->row($result))
      {
         $parser->parse_html = FALSE;

         // Informations sur le posteur du message
         
      
         $row['nickname'] =      Html::nickname($row['p_nickname'], $row['u_id'], $row['u_color']);
      
         // Informations sur le message
         $parser->parse_html =   (Fsb::$cfg->get('activate_html') && $row['u_auth'] >= MODOSUP) ? TRUE : FALSE;
         $row['p_text'] =      $parser->sitemessage($row['p_text'], $row['p_map']);
         if (strlen($row['p_text']) > 300) {
         $row['p_text'] = substr($row['p_text'],0,297);
         $row['p_text'] .= "...";
         }
         
         $row['p_timestamp'] =   $row['p_time'];
         $row['p_time'] =      Fsb::$session->print_date($row['p_time'], TRUE, NULL, TRUE);
         $row['compteur'] =       $compteur;
         $postes[] = $row;
      }
      Fsb::$db->free($result);
      $posts = array_values ($postes);
      return ($posts);
   }
// celle ci me permet de récupérer le texte d'un post en ne prenant que ce dont j'ai besoin et en limitant la taille de ce qui est affiché.


Voilà c'est pas grand chose, ce sont les fonctions déjà existantes de sdk que j'ai adapté à mes besoins.

Des fois que ca serve ...
 
Flammeche
Avatar de Skorps
  • Messages : 38
  • Inscrit : 08 Mai 2005
Message édité 1 fois, dernière édition par Skorps, 12 Mars 2008, 16:16     Lien vers ce message 12 Mars 2008, 13:40
Bonjour,

Je viens avec une ou deux petites suggestions (je me remets tout doucement au développement, j'espère donc ne pas trop me tromper ;))

Serait-il possible d'inclure une condition à la fonction get_topics et get_posts ? Je pense notamment à pouvoir effectuer une requête selon l'ID de l'auteur voire selon la description. Pratique pour n'afficher que les messages ou sujets d'un membre, ou dont la description contient certains mots-clés!

Cette demande-là ne serait peut-être pas utile à grand monde : offrir la possibilité, dans le cas de get_posts et d'une récupération uniquement des premiers messages, d'obtenir les informations concernant le sujet auquel appartient le message (nombre de réponses, titre...). Je me doute que ça alourdirait mais je pense que ça peut être pratique pour qui voudrait afficher par exemple actualités entrées sur le forum ou des billets pour un "blog".

Enfin, je ne sais exactement comment cela se passe actuellement pour les fonctions post_topic et post_reply. Il doit être possible de poster un nouveau sujet ou une réponse directement via le SDK et sans passer par le forum j'imagine. Dans ce cas serait-il envisageable de prendre en compte les MAPS créées ou cela est-il forcément dépendant du forum?

Je reviendrai proposer si j'ai d'autres idées en tête ;)

Edition tardive :
Aussi, pourquoi pas un formulaire simple et avancé permettant la recherche dans le forum?
 
Flammeche
Avatar de cedric
  • Messages : 47
  • Inscrit : 25 Janvier 2008
  Lien vers ce message 13 Mars 2008, 22:04
j'ai l'impression que ce tu demandes existe déjà, quand on fait un get posts on récupère un array qui contient diverses informations comme le pseudo du posteur, date du premier post d'un sujet, du dernier post, nombre de réponses etc ...

Sur cette page par exemple : http://www.latoiledesbatteurs.com/cotematos.php

je récupère le premier post de chaque sujet posté dans un forum.

Sur un autre forum, je récupérais uniquement le premier post des annonces etc ...

on peut faire de très nombreuses choses avec sdk ...
 
Nouvelle étincelle
Avatar de FumSteph
  • Age : 31 ans
  • Messages : 20
  • Inscrit : 14 Février 2008
  Lien vers ce message 28 Mars 2008, 10:52
Bonjour à tous,

Désolé pour cette question quelque peu nulle, mais je me remets doucement au dev.

Voila je suis en train de créer une class sur mon site (dont le forum est fsb2). Au début de ma page php, j'appelle la classe sdk pour pouvoir utiliser la connexion à la base via les fonctions FSB2.

Pour les requêtes sql, pas de souci je fais un Fsb::$db->query($sql) par exemple et ça fonctionne.

En revanche, j'aimerais utiliser la fonction id2nickname() dans ma classe, et je n'y arrive pas, je me choppe des erreurs de syntaxes (normal, j'essaye un peu tout lol) Si vous pouvez éclairer ma lanterne, ce serait sympa :)
 
Etoile
Avatar de BlackJowy
  • Age : 22 ans
  • Messages : 3229
  • Inscrit : 01 Mars 2007
  Lien vers ce message 28 Mars 2008, 12:34
Bah

<?php
	define('ROOT', 'forum/');
	include(ROOT . 'sdk.php');

	$id = 2;


	//Récupère le pseudo de l'utilisateur 2 (le fondateur)
	$fsb->id2nickname($id);

?>


"It's backup day today so I'm pissed off. Being the BOFH, however, does have it's advantages. I reassign null to be the tape device — it's so much more economical on my time as I don't have to keep getting up to change tapes every 5 minutes. And it speeds up backups too, so it can't be all bad can it? Of course not." S.Travaglia

 
Volcan
Avatar de Talus
  • Age : 20 ans
  • Messages : 1450
  • Inscrit : 28 Septembre 2006
  Lien vers ce message 28 Mars 2008, 12:42
M'est avis que c'est plus un probleme d'accès à tes variables... L'instance est-elle définie ?

Soit dans le constructeur tu peux faire une propriété qui est l'instance de l'objet, soit ce serait pas mal de pouvoir avoir l'occasion de laisser lo'bjet SDK en statique...


 
Nouvelle étincelle
Avatar de FumSteph
  • Age : 31 ans
  • Messages : 20
  • Inscrit : 14 Février 2008
Message édité 4 fois, dernière édition par FumSteph, 28 Mars 2008, 17:38     Lien vers ce message 28 Mars 2008, 17:32
Euh BlackJowy, je suis nul mais pas à ce point lol ! ça dans un fichier php ça marche sans soucis, j'ai déjà utilisé le sdk pour faire une page de login différente ... C'est dans ma classe que ça ne fonctionne pas. Il ne connait pas la fonction id2nickname() alors que les fonctions de requêtage sql fonctionne.

Citation
M'est avis que c'est plus un probleme d'accès à tes variables... L'instance est-elle définie ?

Soit dans le constructeur tu peux faire une propriété qui est l'instance de l'objet, soit ce serait pas mal de pouvoir avoir l'occasion de laisser lo'bjet SDK en statique...


C'est là que je ne suit plus lol
 
Répondre


.