Gestion de Contenu, de Communauté et de groupes de travail collaboratif - Open Source, français, sécurisé, stable et performant

  • MODULES

    Pour étendre les nombreuses fonctionnalités disponibles de base - modules.npds.org est à votre disposition.

    Des modules complémentaires, une communauté de développeurs active, des forums pour vos questions ... NPDS  est aussi une plateforme de développement !
  • STYLES

    Vous cherchez des thèmes graphiques pour votre portail ou votre communauté : styles.npds.org est à votre disposition.

    Des thèmes du plus simple au plus sophistiqué. Des thèmes facilement modifiables et toujours en Open-Source - Laissez simplement parler votre imagination !
  • BIBLES

    La documentation indispensable pour personnaliser et exploiter toute la puissante de NPDS  est à votre disposition sur bible.npds.org.

    Vous pouvez participer à l'effort de documentation - rien de plus simple : contactez un membre de la Team de développement et nous vous ouvrirons un compte sur le Wiki !
Devenir membre    |    Identifiant : Mot de Passe : -
Au delà de la gestion de contenu 'classique', NPDS met en oeuvre un ensemble de fonctions spécifiquement dédiées à la gestion de Communauté et de groupes de travail collaboratif.
Il s'agit d'un Content & Community Management System (CCMS) robuste, sécurisé, complet, performant et parlant vraiment français.

Gérez votre Communauté d'utilisateurs, vos groupes de travail collaboratif, publiez, gérez et organisez votre contenu grâce aux puissants outils disponibles de base.
  • Multi langues (Français, Anglais, Allemand, Espagnol, Chinois)
  • Respect des standards : UTF8, XHTML, CSS, ...
  • Système de blocs avancés
  • Installation et administration complète et centralisée
  • Editeur HTML intégré
  • Gestionnaire de fichier en ligne
  • Gestion des groupes de membres
  • Ecriture collaborative de documents (PAD)
  • Forums évolués
  • Mini-sites (pour les membres et les groupes de travail)
  • Chat temp réel
  • Système de News et de rubriques complet (édition, révision, publication)
  • ...
Gratuit et libre (Open-Source), développé en PHP, NPDS est personnalisable grâce à de nombreux thèmes et modules et ne requiert que quelques compétences de base.
NPDS Workplace - groupe de travail collaboratif
 NPDS WorkSpace - tous l'univers du travail collaboratif.
Modéré par : developpeur jpb Jireck

Poster la réponse dans le sujet : Questions  |  Index du Forum
A propos des messages privés
Les Utilisateurs anonymes peuvent poster de nouveaux Sujets et réponses dans ce Forum.
Identifiant : Anonyme
Icone du message :                       
                
Message :

HTML : Activé

       

      youtube 
 Plus d'émoticons

 Cliquez pour insérer des émoticons dans votre message :
 :-) ;-) :-P 8-) :-D :=! :b :D :# :-o :-? :-( :| :-| Mais c'est pas possible ! => :paf
Options : Désactiver le HTML pour cet envoi
Anti-Spam / Merci de répondre à la question suivante :
      

Aperçu des Sujets
fliaigre
913      

fliaigre
 Posté : 15-03-2012 13:15
Avec ta nouvelle version ça ne fonctionne pas. Rien n'est décodé donc j'ai remis celle-ci :

<?php  
// --------------------------------------------------------
// d'après parse_flux-2 pour lire des fichiers  RSS/RDF/Atom
// Dominique WOJYLAC < http://wojylac.free.fr>
// Distribué sous GNU General Public License.
// 
// Version 2.1c
// ---------------------------------------------------------
// fonction destinée Ã  nettoyer le texte  récupéré
// que l'on pourrait séparer de ce code&n bsp;en la mettant dans un fichier Ã  in clure
// fonction destinée Ã  nettoyer le texte  récupéré
// que l'on pourrait séparer de ce code&n bsp;en la mettant dans un fichier Ã  in clure
function clean_text($text$encodage '',$long) {
  if ($encodage == 'utf-8') {
    $text = utf8_decode($text);
  }
  $avant = array(
    '&lt;',
    '&gt;',
    '&quot;',
    '&amp;',
    '|@|' // pour traitement correct& nbsp;des caractères spéciaux préalablement remplacés&nb sp;(voir plus bas)
    );
  $apres = array(
    '<',
    '>',
    '"',
    '&',
    '&#'
    );
  $text = substr(str_replace($avant, $apres, $t ext),0,$long).' ...';
  return $text;
}

function lit_RSS($flux,$delai,$nbnews,$affichage,$long,$block_title)&nbs p;{
// chemin relatif vers le dossier cache
// le répertoire "cache" doit Ãªtre autorisé& nbsp;en Ã©criture
// ne pas oublier / Ã  la fin
$dir_cache = './cache/';

// nom du fichier mis en cache
//$file_cache = 'flux.html';
$url_explode = explode('/',$flux); 
$file_cache = ($url_explode[2]).'.html';

if (!is_dir($dir_cache)) {
  exit ('Répertoire cache "'.$dir_cache.'" inex istant !');
}

!include!_once('rss_read.inc.php'); 
$rss = new rss_read();
//$flux = ' http://npds.org/backend.php'; //adresse du flux passée par la fonction.
// voir la doc pour cette fonction
$date_modif = $rss -> get_last_modified($flux);

if ($date_modif > 0) {
  // le serveur distant a retourné u ne date de dermière modification
  // on remettra Ã  jour immédiateme nt en cas de modification postérieure
  // Ã  la date du fichier en&nb sp;cache
  $delai = 0;
}
else {
  // on impose la mise Ã  jour&n bsp;avec une certaine periodicité
  $date_modif = time();
  // le delai entre deux rafraichissements  en secondes Ã  régler suivant le type  de fil ici 2 heures
  //$delai = 600; //délai passé par  ;la fonction
}

// le fichier est-il en cache et suffisamm ent jeune
$file_cache = $dir_cache.$file_cache;
$en_cache = file_exists($file_cache);
if ($en_cache) {
  $en_cache = ($date_modif < filemtime($file _cache) + $delai);
}

if (!$en_cache) {
  // il est considéré comme n'étant&nbs p;pas en cache on le génére
  $content = '';
  
  // caractères parasites pouvant Ãªtre c ontenus dans le fils rss et Ã  remplace r par d'autres
  // doit Ãªtre invoqué avant parsefile < br />  // cette fonction est optionnelle et&nbs p;ne doit Ãªtre utilisée que pour certains  fils.
  $avant = array('&#','&bull;');
  $apres = array('|@|','-');
  $rss -> to_replace_with($avant, $apres);

  // parser le fichier news
  $res = $rss -> parsefile($flux);
  
  if ($res) {
    $encode = $rss -> get_encoding ();
    
    // recupération des données sur  le channel
    $channel = $rss -> get_channel ();
  
    // nombre d'items 
    if ($nbnews > $rss ->  get_num_items()) $nbnews =  $rss -> get_num_it ems(); // nombre de news Ã  afficher pa ssé par la fonction
    
    // recup array des données 
    $items = $rss -> get_items();
    if ($items) {
      $content .= '<ul>';
      for($i = 0; $i <&n bsp;$nbnews; $i++) { 
        if ($affichage ==&n bsp;'1') {
          $content .=& nbsp;'<li> '.$items[$i]['link'].'</li>'."\n"; // pou r le RSS "bizarre" de PedigreeDataBase
        } else {
          $content .=& nbsp;'<li> <a href="'.$items[$i]['link'].'" target="_bl ank" class="noir" alt="'.$items[$i]['title'].'" title="'.$items[$i]['title '].'">'.clean_text($items[$i]['title'], $encode, $long).'</a> ;</li>'."\n";
        }
      }
      $content .= '</ul>';
    }
    // affichage site, url, descripti on 
    $content .=  '<div><a hr ef="'. $channel['link'].'" target="_blank" class="noir"> Lire la suite ...</a></div>';
  } // fin if $rss
  
  $fd = fopen($file_cache, "w");
  fputs($fd, $content);
  fclose($fd);
} else {
    //Ouverture du fichier en lecture  seule
    $handle = fopen($file_cache, 'r');
    //Si on a réussi Ã  ou vrir le fichier
    if ($handle)
    {
      $content = '';
      //Tant que l'on est p as Ã  la fin du fichier
      while (!feof($handle))
      {
        //On lit la li gne courante  
        $content .= fgets($ handle);
      }
      //On ferme le fichier
      fclose($handle);
    } else {
      $content = 'Erreur de  ;lecture du fichier en cache';
    }
} // fin if !$en_cache
themesidebox($block_title,$content);
} // fin de fonction
?>




Celle-ci décode le texte mais pas la bulle.

Je suis sur REvolution 10.02 encodée en charset=ISO-8859-1.

Je te joins par mail.
PhilGuen
982      

PhilGuen
 Posté : 15-03-2012 07:52
ok c'est fait. Version 1.04 sur guenet.net ou guenet.org

J'ai laissé ta modif, mais ca ne fonctionne pas pour moi au niveau de l'encodage.

Faut que je me penche la dessus ... en fait, me semble-t-il, faut adapter l'encodage du fil à celui du site "lecteur" ... je sais comment avoir l'encodage d'une chaîne (donc du fil) ... mais je ne sais pas comment détecter celui utilisé par un site.

De toutes façons, comme déjà dit, faudrait que les "vrais" programmeurs se penchent dessus pour l'optimiser.


PS - Pour ne pas "polluer" le forum, peux-tu me joindre par mail (enlever les xx à l'adresse en lien dessous).

Peux-tu me faire un accès admin pour que je fasse des tests à partir de ton site car il ne semble pas que nos sites soient encodés de la même manière.

Message édité par : PhilGuen / 15-03-2012 11:12


fliaigre
913      

fliaigre
 Posté : 15-03-2012 07:10
Super
PhilGuen
982      

PhilGuen
 Posté : 14-03-2012 22:44
Citation : fliaigre 

Tu as une petite erreur au début du script :

function clean_text($text, $encode = '', $long) {
    if ($encodage == 'utf-8') {
        $text = utf8_decode($text);
}


au lieu de

function clean_text($text, $encodage = '',$long) {
    if ($encodage == 'utf-8') {
        $text = utf8_decode($text);
    }


Après correction le lien est bien decodé mais pas le texte de la bulle. Sinon c'est super.  


Désolé, j'étais abs pour la journée.

c'est ma faute, je me suis mélangé les pinceaux en effacant mes tests (j'avais mis d'autres tests avec la variable $encodage).

Demain, je te fais une version qui encodera aussi la bulle.
fliaigre
913      

fliaigre
 Posté : 13-03-2012 21:07
Tu as une petite erreur au début du script :

function clean_text($text, $encode = '', $long)  ;{
    if ($encodage == 'utf-8') {
        $text = utf8_decode ($text);
}


au lieu de

function clean_text($text, $encodage = '',$long) { < br />    if ($encodage == 'utf-8') {
        $text = utf8_decode ($text);
    }


Après correction le lien est bien decodé mais pas le texte de la bulle. Sinon c'est super.
PhilGuen
982      

PhilGuen
 Posté : 13-03-2012 18:52
C'est fait.

J'ai mis le "div" à la place du "p" (mauvaises habitudes de programmation)

Ce code n'est pas vraiment de moi mais c'est une adaptation de ceux fournis avec la librairie "fil_le". Faudrait que les "chefs" se penchent dessus car je ne suis qu'un bidouilleur et pas un programmeur. Sans doute à ajouter une gestion d'erreurs.

Enfin, pour l'instant, le principal est que ca fonctionne et que ca te serve autant qu'à moi.

@+

Message édité par : PhilGuen / 13-03-2012 19:36


fliaigre
913      

fliaigre
 Posté : 13-03-2012 18:26
Tu peux le voir en fonctionnement ici : http://www.preparateur-en-pharmacie.com

AncisA c'est avec headline et AFSSAPS c'est avec ton module.

J'ai remplacé le balse p par un div pour afficher le lien "Lire la suite..."
fliaigre
913      

fliaigre
 Posté : 13-03-2012 18:18
Tu me diras quand ce sera prêt.

Ceci me sera très utile pour relayer les alertes de l'AFSSAPS.

Vraiment merci.
PhilGuen
982      

PhilGuen
 Posté : 13-03-2012 14:29
Pour les caractères, problème d'encodage. Regarde ce que ca donne en commentant (//) la ligne 15 ou en supprimant carrément les lignes 14-15-16 du fichier lecteurRSS.php.

De mon côté, avec les sites en UTF8, ca a l'air de coller (guenet.net - guenet.org)

Pour la bulle, une balise title et alt doit faire l'affaire.

Je fais les modifs

Message édité par : PhilGuen / 13-03-2012 16:42


fliaigre
913      

fliaigre
 Posté : 13-03-2012 13:57
OK ça marche, juste un pb avec l'affichage des caractères accentués avec le retour de NPDS

Pour l'AFSAPS ça marche. Le top serait d'avoir le texte complet dans une bulle comme avec headlines.

Vraiment bravo.

Temps : 0.0194 seconde(s)