Wie kann man phpfreechat in eine DokuWiki-Seite integrieren ?

Diese Methode wird in der Demo benutzt.

  1. Du musst als erstes das phpinclude Dokuwiki Plugin installieren.
  2. Dann musst du ein Verzeichnis namens phpinclude/ und ein Verzeichnis namens phpincludes/pfc-pub-data/ (hier werden dann später die PublicPfc Daten gespeichert) im Hauptverzeichnis deines Dokuwiki erstellen.
  3. Als nächstes muss die diese beiden Scripts erstellen :
    • phpinclude/pfc-front.php : Dieses Script lädt die Chatoberfläche sobald die Dokuwiki-Seite geladen ist.
    • phpinclude/pfc-backend.php : Dieses Script wird von pfc-front.php unter Benutzung einer AJAX-Anfrage kontaktiert um mit dem pfc server zu kommunizieren.
  4. Zum Schluss musst du in der entsprechenden Dokuwiki-Seite diesen Code einfügen:
    <phpinc=pfc-front.php>
  5. Das war's!

pfc-front.php

Hier ist ein Beispiel welches du natürlich auf deine Ansprüche anpassen kannst und sollst.

<?php
 
global $USERINFO;
 
require_once dirname(__FILE__).'/../src/trunk/src/phpfreechat.class.php';
$params = array();
$params['serverid'] = 'pfc-dokuwiki';
$params['nick'] = isset($USERINFO['name']) && !empty($USERINFO['name']) ?
                    $USERINFO['name'] :
                    (isset($_SERVER['REMOTE_USER']) ? $_SERVER['REMOTE_USER'] : '');
$params['isadmin']  = isset($USERINFO['grps']) ?
                        in_array('Administrators',$USERINFO['grps']) || in_array('Moderators',$USERINFO['grps']) :
                        false;
$params['data_public_path']   = dirname(__FILE__).'/pfc-pub-data';
$params['data_public_url']    = 'phpincludes/pfc-pub-data';
$params['server_script_path'] = dirname(__FILE__).'/pfc-backend.php';
$params['server_script_url']  = 'phpincludes/pfc-backend.php';
 
// Die Parameterliste in der Session ablegen
@session_start();
$_SESSION['demo_params_list'] = $params;
 
$pfc = new phpFreeChat($params);
$pfc->printChat();
 
?>

pfc-backend.php

<?php
 
// Nötig um die Dokuwiki-Session zu öffnen
if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__)).'/../');
require_once(DOKU_INC.'inc/init.php');
 
require_once dirname(__FILE__).'/../src/trunk/src/phpfreechat.class.php';
$plist = $_SESSION['demo_params_list'];
$chat = new phpFreeChat( $plist );
 
?>
Fork me on GitHub