Subversion Repositories Applications.papyrus

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1292 → Rev 1293

/trunk/client/integrateur_wikini/configuration/iw_config.inc.php
21,7 → 21,7
// | along with Foobar; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: iw_config.inc.php,v 1.8 2006-11-09 17:50:41 jp_milcent Exp $
// CVS : $Id: iw_config.inc.php,v 1.9 2007-04-06 08:40:13 neiluj Exp $
/**
* Configuration de l'intégrateur de page Wikini
*
34,7 → 34,7
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.8 $ $Date: 2006-11-09 17:50:41 $
*@version $Revision: 1.9 $ $Date: 2007-04-06 08:40:13 $
// +------------------------------------------------------------------------------------------------------+
*/
 
129,8 → 129,7
define('IW_CHEMIN_WIKINI_COURANT_FORMATTER', IW_CHEMIN_WIKINI_COURANT.'formatters'.GEN_SEP);
global $wikini_config_defaut;
// Ajout dans l'URL générale du Query String wiki spécifique à l'intégrateur
$GLOBALS['_GEN_commun']['url']->addQueryString('wiki', '');
 
$wikini_config_defaut = array(
"wakka_version" => "0.1.1",
"wikini_version" => "0.4.3",
141,7 → 140,7
'table_prefix' => $config_wikini['table_prefix'],
'root_page' => $config_wikini['page'],
'wakka_name' => $config_wikini['code_alpha_wikini'],
'base_url' => str_replace('&', '&', $GLOBALS['_GEN_commun']['url']->getUrl()),
'base_url' => str_replace('&', '&', $GLOBALS['_GEN_commun']['url']->getUrl()).'&wiki=',
'rewrite_mode' => '0',
'meta_keywords' => '',
'meta_description' => '',
156,8 → 155,7
'default_read_acl' => '*',
'default_comment_acl' => '*',
'preview_before_save' => '0');
// Suppression de l'URL générale du Query String wiki spécifique à l'intégrateur
$GLOBALS['_GEN_commun']['url']->removeQueryString('wiki', '');
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/trunk/client/integrateur_wikini/documentation/gen_application.sql
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/documentation/gen_application.sql
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACeditor.js
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACeditor.js
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/images/Bandeau-wiki.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/images/Logo-wiki.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/listenum.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/listenum.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/separator.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/separator.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/strike.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/strike.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/italic.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/italic.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/hr.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/hr.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/code.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/code.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/link.old.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/link.old.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/bold.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/bold.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/image.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/image.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/t1.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/t1.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/t2.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/t2.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/underline.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/underline.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/t3.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/t3.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/crlf.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/crlf.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/listealpha.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/listealpha.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/t4.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/t4.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/php.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/php.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/t5.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/t5.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/link.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/link.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/listepuce.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACEdImages/listepuce.gif
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/client/integrateur_wikini/bibliotheque/wikini/formatters/tableaux.php
New file
0,0 → 1,87
<?php
function parsetable($thing)
{
$tableattr = 'border="1"';
// echo "parsetable debut : \$thing = $thing<br>";
// recuperation des attributs
preg_match("/^\[\|(.*)$/m",$thing,$match);
// echo "parsetable : \$match = ";var_dump($match);echo "<br>";
if ($match[1]){
$tableattr = $match[1];
}
$table = "<table $tableattr >\n";
//suppression de [|xxxx et de |]
$thing = preg_replace("/^\[\|(.*)$/m","",$thing);
$thing = trim(preg_replace("/\|\]/m","",$thing));
// echo "parsetable suppression [| |]: \$thing = $thing<br>";
//recuperation de chaque ligne
$rows = preg_split("/$/m",$thing,-1,PREG_SPLIT_NO_EMPTY);
// echo "parsetable preg_split:";var_dump($rows);echo "<br>";
//analyse de chaque ligne
foreach ($rows as $row){
$table .= parsetablerow($row);
}
$table.= "</table>";
return $table;
}
//parse la definition d'une ligne
function parsetablerow($row)
{
$rowattr = "";
$row = trim($row);
// echo "parsetablerow debut : \$row = $row<br>";
//detection des attributs de ligne => si la ligne ne commence pas par | alors attribut
if (!preg_match("/^\|/",$row,$match)){
preg_match("/^!([^\|]*)!\|/",$row,$match);
$rowattr = $match[1];
// echo "\$rowattr = $rowattr<br>";
$row = trim(preg_replace("/^!([^\|]*)!/","",$row));
}
$result .= " <tr $rowattr>\n";
$row = trim(preg_replace("/^\|/","",trim($row)));
$row = trim(preg_replace("/\|$/","",trim($row)));
// echo "parsetablerow sans attribut : \$row = $row<br>";
//recuperation de chaque cellule
$cells = explode("|",$row); //nb : seule les indices impaire sont significatif
// echo "parsetablerow preg_split \$cells:";var_dump($cells);echo "<br>";
$i=0;
foreach ($cells as $cell){
// if ($i % 2){
// echo "\$cell = $cell<br>";
$result .= parsetablecell($cell);
// }
$i++;
}
$result .= " </tr>\n";
return $result;
}
//parse la definition d'une cellule
function parsetablecell($cell)
{
global $wiki;
$cellattr = "";
if (preg_match("/^!(.*)!/",$cell,$match)){
$cellattr = $match[1];
}
$cell = preg_replace("/^!(.*)!/","",$cell);
//si espace au debut => align=right
//si espace a la fin => align=left
//si espace debut et fin => align=center
if (preg_match("/^\s(.*)/",$cell)){
$align="right";
}
if (preg_match("/^(.*)\s$/",$cell)){
$align="left";
}
if (preg_match("/^\s(.*)\s$/",$cell)){
$align="center";
}
if ($align) $cellattr .= " align=\"$align\"";
// echo "\$this->classname = ".get_class($wiki)."<br>";
return " <td $cellattr>".$wiki->Format($cell)."</td>\n";
}
 
?>
/trunk/client/integrateur_wikini/bibliotheque/wikini/actions/attach.class.php
New file
0,0 → 1,625
<?php
/*
attach.class.php
Code original de ce fichier : Eric FELDSTEIN
Copyright (c) 2002, Hendrik Mans <hendrik@mans.de>
Copyright 2002, 2003 David DELON
Copyright 2002, 2003 Charles NEPOTE
Copyright 2003,2004 Eric FELDSTEIN
Copyright 2003 Jean-Pascal MILCENT
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
 
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
# Classe de gestion de l'action {{attach}}
# voir actions/attach.php ppour la documentation
# copyrigth Eric Feldstein 2003-2004
 
class attach {
var $wiki = ''; //objet wiki courant
var $attachConfig = array(); //configuration de l'action
var $file = ''; //nom du fichier
var $desc = ''; //description du fichier
var $link = ''; //url de lien (image sensible)
var $isPicture = 0; //indique si c'est une image
var $classes = ''; //classe pour afficher une image
var $attachErr = ''; //message d'erreur
var $pageId = 0; //identifiant de la page
var $isSafeMode = false; //indicateur du safe mode de PHP
/**
* Constructeur. Met les valeurs par defaut aux paramètres de configuration
*/
function attach(&$wiki){
$this->wiki = $wiki;
$this->attachConfig = $this->wiki->GetConfigValue("attach_config");
if (empty($this->attachConfig["ext_images"])) $this->attachConfig["ext_images"] = "gif|jpeg|png|jpg";
if (empty($this->attachConfig["ext_script"])) $this->attachConfig["ext_script"] = "php|php3|asp|asx|vb|vbs|js";
if (empty($this->attachConfig['upload_path'])) $this->attachConfig['upload_path'] = 'files';
if (empty($this->attachConfig['update_symbole'])) $this->attachConfig['update_symbole'] = '*';
if (empty($this->attachConfig['max_file_size'])) $this->attachConfig['max_file_size'] = 1024*100; //100ko max
if (empty($this->attachConfig['fmDelete_symbole'])) $this->attachConfig['fmDelete_symbole'] = 'Supr';
if (empty($this->attachConfig['fmRestore_symbole'])) $this->attachConfig['fmRestore_symbole'] = 'Rest';
if (empty($this->attachConfig['fmTrash_symbole'])) $this->attachConfig['fmTrash_symbole'] = 'Poubelle';
$this->isSafeMode = ini_get("safe_mode");
}
/******************************************************************************
* FONCTIONS UTILES
*******************************************************************************/
/**
* Création d'une suite de répertoires récursivement
*/
function mkdir_recursif ($dir) {
if (strlen($dir) == 0) return 0;
if (is_dir($dir)) return 1;
elseif (dirname($dir) == $dir) return 1;
return ($this->mkdir_recursif(dirname($dir)) and mkdir($dir,0755));
}
/**
* Renvois le chemin du script
*/
function GetScriptPath () {
if (preg_match("/.(php)$/i",$_SERVER["PHP_SELF"])){
$a = explode('/',$_SERVER["PHP_SELF"]);
$a[count($a)-1] = '';
$path = implode('/',$a);
}else{
$path = $_SERVER["PHP_SELF"];
}
return !empty($_SERVER["HTTP_HOST"])? 'http://'.$_SERVER["HTTP_HOST"].$path : 'http://'.$_SERVER["SERVER_NAME"].$path ;
}
/**
* Calcul le repertoire d'upload en fonction du safe_mode
*/
function GetUploadPath(){
if ($this->isSafeMode) {
$path = $this->attachConfig['upload_path'];
}else{
$path = $this->attachConfig['upload_path'].'/'.$this->wiki->GetPageTag();
if (! is_dir($path)) $this->mkdir_recursif($path);
}
return $path;
}
/**
* Calcule le nom complet du fichier attaché en fonction du safe_mode, du nom et de la date de
* revision la page courante.
* Le nom du fichier "mon fichier.ext" attache à la page "LaPageWiki"sera :
* mon_fichier_datepage_update.ext
* update : date de derniere mise a jour du fichier
* datepage : date de revision de la page à laquelle le fichier a ete lié/mis a jour
* Si le fichier n'est pas une image un '_' est ajoute : mon_fichier_datepage_update.ext_
* Selon la valeur de safe_mode :
* safe_mode = on : LaPageWiki_mon_fichier_datepage_update.ext_
* safe_mode = off: LaPageWiki/mon_fichier_datepage_update.ext_ avec "LaPageWiki" un sous-repertoire du répertoire upload
*/
function GetFullFilename($newName = false){
$pagedate = $this->convertDate($this->wiki->page['time']);
//decompose le nom du fichier en nom+extension
if (preg_match('`^(.*)\.(.*)$`', str_replace(' ','_',$this->file), $match)){
list(,$file['name'],$file['ext'])=$match;
if(!$this->isPicture()) $file['ext'] .= '_';
}else{
return false;
}
//recuperation du chemin d'upload
$path = $this->GetUploadPath($this->isSafeMode);
//generation du nom ou recherche de fichier ?
if ($newName){
$full_file_name = $file['name'].'_'.$pagedate.'_'.$this->getDate().'.'.$file['ext'];
if($this->isSafeMode){
$full_file_name = $path.'/'.$this->wiki->GetPageTag().'_'.$full_file_name;
}else{
$full_file_name = $path.'/'.$full_file_name;
}
}else{
//recherche du fichier
if($this->isSafeMode){
//TODO Recherche dans le cas ou safe_mode=on
$searchPattern = '`^'.$this->wiki->GetPageTag().'_'.$file['name'].'_\d{14}_\d{14}\.'.$file['ext'].'$`';
}else{
$searchPattern = '`^'.$file['name'].'_\d{14}_\d{14}\.'.$file['ext'].'$`';
}
$files = $this->searchFiles($searchPattern,$path);
 
$unedate = 0;
foreach ($files as $file){
//recherche du fichier qui une datepage <= a la date de la page
if($file['datepage']<=$pagedate){
//puis qui a une dateupload la plus grande
if ($file['dateupload']>$unedate){
$theFile = $file;
$unedate = $file['dateupload'];
}
}
}
if (is_array($theFile)){
$full_file_name = $path.'/'.$theFile['realname'];
}
}
return $full_file_name;
}
/**
* Test si le fichier est une image
*/
function isPicture(){
return preg_match("/.(".$this->attachConfig["ext_images"].")$/i",$this->file)==1;
}
/**
* Renvoie la date courante au format utilise par les fichiers
*/
function getDate(){
return date('YmdHis');
}
/**
* convertie une date yyyy-mm-dd hh:mm:ss au format yyyymmddhhmmss
*/
function convertDate($date){
$date = str_replace(' ','', $date);
$date = str_replace(':','', $date);
return str_replace('-','', $date);
}
/**
* Parse une date au format yyyymmddhhmmss et renvoie un tableau assiatif
*/
function parseDate($sDate){
$pattern = '`^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$`';
$res = '';
if (preg_match($pattern, $sDate, $m)){
//list(,$res['year'],$res['month'],$res['day'],$res['hour'],$res['min'],$res['sec'])=$m;
$res = $m[1].'-'.$m[2].'-'.$m[3].' '.$m[4].':'.$m[5].':'.$m[6];
}
return ($res?$res:false);
}
/**
* Decode un nom long de fichier
*/
function decodeLongFilename($filename){
$afile = array();
$afile['realname'] = basename($filename);
$afile['size'] = filesize($filename);
$afile['path'] = dirname($filename);
if(preg_match('`^(.*)_(\d{14})_(\d{14})\.(.*)(trash\d{14})?$`', $afile['realname'], $m)){
$afile['name'] = $m[1];
//suppression du nom de la page si safe_mode=on
if ($this->isSafeMode){
$afile['name'] = preg_replace('`^('.$this->wiki->tag.')_(.*)$`i', '$2', $afile['name']);
}
$afile['datepage'] = $m[2];
$afile['dateupload'] = $m[3];
$afile['trashdate'] = preg_replace('`(.*)trash(\d{14})`', '$2', $m[4]);
//suppression de trashxxxxxxxxxxxxxx eventuel
$afile['ext'] = preg_replace('`^(.*)(trash\d{14})$`', '$1', $m[4]);
$afile['ext'] = rtrim($afile['ext'],'_');
//$afile['ext'] = rtrim($m[4],'_');
}
return $afile;
}
/**
* Renvois un tableau des fichiers correspondant au pattern. Chaque element du tableau est un
* tableau associatif contenant les informations sur le fichier
*/
function searchFiles($filepattern,$start_dir){
$files_matched = array();
$start_dir = rtrim($start_dir,'\/');
$fh = opendir($start_dir);
while (($file = readdir($fh)) !== false) {
if (strcmp($file, '.')==0 || strcmp($file, '..')==0 || is_dir($file)) continue;
if (preg_match($filepattern, $file)){
$files_matched[] = $this->decodeLongFilename($start_dir.'/'.$file);
}
}
return $files_matched;
}
/******************************************************************************
* FONCTIONS D'ATTACHEMENTS
*******************************************************************************/
/**
* Test les paramètres passé à l'action
*/
function CheckParams(){
//recuperation des parametres necessaire
$this->file = $this->wiki->GetParameter("attachfile");
if (empty($this->file)) $this->file = $this->wiki->GetParameter("file");
$this->desc = $this->wiki->GetParameter("attachdesc");
if (empty($this->desc)) $this->desc = $this->wiki->GetParameter("desc");
$this->link = $this->wiki->GetParameter("attachlink");//url de lien - uniquement si c'est une image
if (empty($this->link)) $this->link = $this->wiki->GetParameter("link");
//test de validité des parametres
if (empty($this->file)){
$this->attachErr = $this->wiki->Format("//action attach : paramètre **file** manquant//---");
}
if ($this->isPicture() && empty($this->desc)){
$this->attachErr .= $this->wiki->Format("//action attach : paramètre **desc** obligatoire pour une image//---");
}
if ($this->wiki->GetParameter("class")) {
$array_classes = explode(" ", $this->wiki->GetParameter("class"));
foreach ($array_classes as $c) { $this->classes = $this->classes . "attach_" . $c . " "; }
$this->classes = trim($this->classes);
}
}
/**
* Affiche le fichier lié comme une image
*/
function showAsImage($fullFilename){
//c'est une image : balise <IMG..../>
$img = "<img src=\"".$this->GetScriptPath().$fullFilename."\" ".
"alt=\"".$this->desc.($this->link?"\nLien vers: $this->link":"")."\" />";
//test si c'est une image sensible
if(!empty($this->link)){
//c'est une image sensible
//test si le lien est un lien interwiki
if (preg_match("/^([A-Z][A-Z,a-z]+)[:]([A-Z,a-z,0-9]*)$/s", $this->link, $matches))
{ //modifie $link pour être un lien vers un autre wiki
$this->link = $this->wiki->GetInterWikiUrl($matches[1], $matches[2]);
}
//calcule du lien
$output = $this->wiki->Format('[['.$this->link." $this->file]]");
$output = eregi_replace(">$this->file<",">$img<",$output);//insertion du tag <img...> dans le lien
}else{
//ce n'est pas une image sensible
$output = $img;
}
$output = ($this->classes?"<span class=\"$this->classes\">$output</span>":$output);
echo $output;
$this->showUpdateLink();
}
/**
* Affiche le fichier lié comme un lien
*/
function showAsLink($fullFilename){
$url = $this->wiki->href("download",$this->wiki->GetPageTag(),"file=$this->file");
echo '<a href="'.$url.'">'.($this->desc?$this->desc:$this->file)."</a>";
$this->showUpdateLink();
}
/**
* Affiche le lien de mise à jour
*/
function showUpdateLink(){
echo " <a href=\"".
$this->wiki->href("upload",$this->wiki->GetPageTag(),"file=$this->file").
"\" title='Mise à jour'>".$this->attachConfig['update_symbole']."</a>";
}
/**
* Affiche un liens comme un fichier inexistant
*/
function showFileNotExits(){
echo $this->file."<a href=\"".$this->wiki->href("upload",$this->wiki->GetPageTag(),"file=$this->file")."\">?</a>";
}
/**
* Affiche l'attachement
*/
function doAttach(){
$this->CheckParams();
if ($this->attachErr) {
echo $this->attachErr;
return;
}
$fullFilename = $this->GetFullFilename();
//test d'existance du fichier
if((!file_exists($fullFilename))||($fullFilename=='')){
$this->showFileNotExits();
return;
}
//le fichier existe : affichage en fonction du type
if($this->isPicture()){
$this->showAsImage($fullFilename);
}else{
$this->showAsLink($fullFilename);
}
}
/******************************************************************************
* FONTIONS D'UPLOAD DE FICHIERS
*******************************************************************************/
/**
* Traitement des uploads
*/
function doUpload(){
$HasAccessWrite=$this->wiki->HasAccess("write");
if ($HasAccessWrite){
switch ($_SERVER["REQUEST_METHOD"]) {
case 'GET' : $this->showUploadForm(); break;
case 'POST': $this->performUpload(); break;
default : echo $this->wiki->Format("//Methode de requete invalide//---");
}
}else{
echo $this->wiki->Format("//Vous n'avez pas l'accès en écriture à cette page//---");
echo $this->wiki->Format("Retour à la page ".$this->wiki->GetPageTag());
}
}
/**
* Formulaire d'upload
*/
function showUploadForm(){
echo $this->wiki->Format("====Formulaire d'envois de fichier====\n---");
$this->file = $_GET['file'];
echo $this->wiki->Format("**Envois du fichier $this->file :**\n")
."<form enctype=\"multipart/form-data\" name=\"frmUpload\" method=\"POST\" action=\"".$_SERVER["PHP_SELF"]."\">\n"
." <input type=\"hidden\" name=\"wiki\" value=\"".$this->wiki->GetPageTag()."/upload\" />\n"
." <input TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".$this->attachConfig['max_file_size']."\" />\n"
." <input type=\"hidden\" name=\"file\" value=\"$this->file\" />\n"
." <input type=\"file\" name=\"upFile\" size=\"50\" /><br />\n"
." <input type=\"submit\" value=\"Envoyer\" />\n"
."</form>\n";
}
/**
* Execute l'upload
*/
function performUpload(){
$this->file = $_POST['file'];
 
$destFile = $this->GetFullFilename(true); //nom du fichier destination
//test de la taille du fichier recu
if($_FILES['upFile']['error']==0){
$size = filesize($_FILES['upFile']['tmp_name']);
if ($size > $this->attachConfig['max_file_size']){
$_FILES['upFile']['error']=2;
}
}
switch ($_FILES['upFile']['error']){
case 0:
$srcFile = $_FILES['upFile']['tmp_name'];
if (move_uploaded_file($srcFile,$destFile)){
chmod($destFile,0644);
header("Location: ".$this->wiki->href("",$this->wiki->GetPageTag(),""));
}else{
echo $this->wiki->Format("//Erreur lors du déplacement du fichier temporaire//---");
}
break;
case 1:
echo $this->wiki->Format("//Le fichier téléchargé excède la taille de upload_max_filesize, configuré dans le php.ini.//---");
break;
case 2:
echo $this->wiki->Format("//Le fichier téléchargé excède la taille de MAX_FILE_SIZE, qui a été spécifiée dans le formulaire HTML.//---");
break;
case 3:
echo $this->wiki->Format("//Le fichier n'a été que partiellement téléchargé.//---");
break;
case 4:
echo $this->wiki->Format("//Aucun fichier n'a été téléchargé.//---");
break;
}
echo $this->wiki->Format("Retour à la page ".$this->wiki->GetPageTag());
}
/******************************************************************************
* FUNCTIONS DE DOWNLOAD DE FICHIERS
*******************************************************************************/
function doDownload(){
$this->file = $_GET['file'];
$fullFilename = $this->GetUploadPath().'/'.$this->file;
if(!file_exists($fullFilename)){
$fullFilename = $this->GetFullFilename();
$dlFilename = $this->file;
$size = filesize($fullFilename);
}else{
$file = $this->decodeLongFilename($fullFilename);
$size = $file['size'];
$dlFilename =$file['name'].'.'.$file['ext'];
}
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Content-type: application/force-download");
header('Pragma: public');
header("Pragma: no-cache");// HTTP/1.0
header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
header('Content-Transfer-Encoding: none');
header('Content-Type: application/octet-stream; name="' . $dlFilename . '"'); //This should work for the rest
header('Content-Type: application/octetstream; name="' . $dlFilename . '"'); //This should work for IE & Opera
header('Content-Type: application/download; name="' . $dlFilename . '"'); //This should work for IE & Opera
header('Content-Disposition: attachment; filename="'.$dlFilename.'"');
header("Content-Description: File Transfer");
header("Content-length: $size".'bytes');
readfile($fullFilename);
}
/******************************************************************************
* FONTIONS DU FILEMANAGER
*******************************************************************************/
function doFileManager(){
$do = $_GET['do']?$_GET['do']:'';
switch ($do){
case 'restore' :
$this->fmRestore();
$this->fmShow(true);
break;
case 'erase' :
$this->fmErase();
$this->fmShow(true);
break;
case 'del' :
$this->fmDelete();
$this->fmShow();
break;
case 'trash' :
$this->fmShow(true); break;
case 'emptytrash' :
$this->fmEmptyTrash(); //pas de break car apres un emptytrash => retour au gestionnaire
default :
$this->fmShow();
}
}
/**
* Affiche la liste des fichiers
*/
function fmShow($trash=false){
$fmTitlePage = $this->wiki->Format("====Gestion des fichiers attachés à la page ".$this->wiki->tag."====\n---");
if($trash){
//Avertissement
$fmTitlePage .= '<div class="prev_alert">Les fichiers effacés sur cette page le sont définitivement</div>';
//Pied du tableau
$url = $this->wiki->Link($this->wiki->tag,'filemanager','Gestion des fichiers');
$fmFootTable = ' <tfoot>'."\n".
' <tr>'."\n".
' <td colspan="6">'.$url.'</td>'."\n";
$url = $this->wiki->Link($this->wiki->tag,'filemanager&do=emptytrash','Vider la poubelle');
$fmFootTable.= ' <td>'.$url.'</td>'."\n".
' </tr>'."\n".
' </tfoot>'."\n";
}else{
//pied du tableau
$url = '<a href="'.$this->wiki->href('filemanager',$this->wiki->GetPageTag(),'do=trash').'" title="Poubelle">'.$this->attachConfig['fmTrash_symbole']."</a>";
$fmFootTable = ' <tfoot>'."\n".
' <tr>'."\n".
' <td colspan="6">'.$url.'</td>'."\n".
' </tr>'."\n".
' </tfoot>'."\n";
}
//entete du tableau
$fmHeadTable = ' <thead>'."\n".
' <tr>'."\n".
' <td>&nbsp;</td>'."\n".
' <td>Nom du fichier</td>'."\n".
' <td>Nom réel du fichier</td>'."\n".
' <td>Taille</td>'."\n".
' <td>Révision de la page</td>'."\n".
' <td>Révison du fichier</td>'."\n";
if($trash){
$fmHeadTable.= ' <td>Suppression</td>'."\n";
}
$fmHeadTable.= ' </tr>'."\n".
' </thead>'."\n";
//corps du tableau
$files = $this->fmGetFiles($trash);
$files = $this->sortByNameRevFile($files);
 
$fmBodyTable = ' <tbody>'."\n";
$i = 0;
foreach ($files as $file){
$i++;
$color= ($i%2?"tableFMCol1":"tableFMCol2");
//lien de suppression
if ($trash){
$url = $this->wiki->href('filemanager',$this->wiki->GetPageTag(),'do=erase&file='.$file['realname']);
}else{
$url = $this->wiki->href('filemanager',$this->wiki->GetPageTag(),'do=del&file='.$file['realname']);
}
$dellink = '<a href="'.$url.'" title="Supprimer">'.$this->attachConfig['fmDelete_symbole']."</a>";
//lien de restauration
$restlink = '';
if ($trash){
$url = $this->wiki->href('filemanager',$this->wiki->GetPageTag(),'do=restore&file='.$file['realname']);
$restlink = '<a href="'.$url.'" title="Restaurer">'.$this->attachConfig['fmRestore_symbole']."</a>";
}
 
//lien pour downloader le fichier
$url = $this->wiki->href("download",$this->wiki->GetPageTag(),"file=".$file['realname']);
$dlLink = '<a href="'.$url.'">'.$file['name'].'.'.$file['ext']."</a>";
$fmBodyTable .= ' <tr class="'.$color.'">'."\n".
' <td>'.$dellink.' '.$restlink.'</td>'."\n".
' <td>'.$dlLink.'</td>'."\n".
' <td>'.$file['realname'].'</td>'."\n".
' <td>'.$file['size'].'</td>'."\n".
' <td>'.$this->parseDate($file['datepage']).'</td>'."\n".
' <td>'.$this->parseDate($file['dateupload']).'</td>'."\n";
if($trash){
$fmBodyTable.= ' <td>'.$this->parseDate($file['trashdate']).'</td>'."\n";
}
$fmBodyTable .= ' </tr>'."\n";
}
$fmBodyTable .= ' </tbody>'."\n";
//pied de la page
$fmFooterPage = "---\n-----\n[[".$this->wiki->tag." Retour à la page ".$this->wiki->tag."]]\n";
//affichage
echo $fmTitlePage."\n";
echo '<table class="tableFM" border="0" cellspacing="0">'."\n".$fmHeadTable.$fmFootTable.$fmBodyTable.'</table>'."\n";
echo $this->wiki->Format($fmFooterPage);
}
/**
* Renvoie la liste des fichiers
*/
function fmGetFiles($trash=false){
$path = $this->GetUploadPath();
if($this->isSafeMode){
$filePattern = '^'.$this->wiki->GetPageTag().'_.*_\d{14}_\d{14}\..*';
}else{
$filePattern = '^.*_\d{14}_\d{14}\..*';
}
if($trash){
$filePattern .= 'trash\d{14}';
}else{
$filePattern .= '[^(trash\d{14})]';
}
return $this->searchFiles('`'.$filePattern.'$`', $path);
}
/**
* Vide la poubelle
*/
function fmEmptyTrash(){
$files = $this->fmGetFiles(true);
foreach ($files as $file){
$filename = $file['path'].'/'.$file['realname'];
if(file_exists($filename)){
unlink($filename);
}
}
}
/**
* Effacement d'un fichier dans la poubelle
*/
function fmErase(){
$path = $this->GetUploadPath();
$filename = $path.'/'.($_GET['file']?$_GET['file']:'');
if (file_exists($filename)){
unlink($filename);
}
}
/**
* Met le fichier a la poubelle
*/
function fmDelete(){
$path = $this->GetUploadPath();
$filename = $path.'/'.($_GET['file']?$_GET['file']:'');
if (file_exists($filename)){
$trash = $filename.'trash'.$this->getDate();
rename($filename, $trash);
}
}
/**
* Restauration d'un fichier mis a la poubelle
*/
function fmRestore(){
$path = $this->GetUploadPath();
$filename = $path.'/'.($_GET['file']?$_GET['file']:'');
if (file_exists($filename)){
$restFile = preg_replace('`^(.*\..*)trash\d{14}$`', '$1', $filename);
rename($filename, $restFile);
}
}
/**
* Tri tu tableau liste des fichiers par nom puis par date de revision(upload) du fichier, ordre croissant
*/
function sortByNameRevFile($files){
if (!function_exists('ByNameByRevFile')){
function ByNameByRevFile($f1,$f2){
$f1Name = $f1['name'].'.'.$f1['ext'];
$f2Name = $f2['name'].'.'.$f2['ext'];
$res = strcasecmp($f1Name, $f2Name);
if($res==0){
//si meme nom => compare la revision du fichier
$res = strcasecmp($f1['dateupload'], $f2['dateupload']);
}
return $res;
}
}
usort($files,'ByNameByRevFile');
return $files;
}
}
?>
/trunk/client/integrateur_wikini/bibliotheque/wikini/actions/attachfm.php
New file
0,0 → 1,38
<?php
/*
attachfm.php
Code original de ce fichier : Eric FELDSTEIN
Copyright (c) 2002, Hendrik Mans <hendrik@mans.de>
Copyright 2002, 2003 David DELON
Copyright 2002, 2003 Charles NEPOTE
Copyright 2003,2004 Eric FELDSTEIN
Copyright 2003 Jean-Pascal MILCENT
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
 
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
 
*/
$url = $this->href('filemanager',$this->GetPageTag());
echo '<a href="'.$url.'"><span class="attachfm"><span>Gestion des fichiers attachés</span></span></a>';
?>
/trunk/client/integrateur_wikini/bibliotheque/wikini/actions/attach.php
New file
0,0 → 1,121
<?php
/*
attach.php
Code original de ce fichier : Eric FELDSTEIN
Copyright (c) 2002, Hendrik Mans <hendrik@mans.de>
Copyright 2002, 2003 David DELON
Copyright 2002, 2003 Charles NEPOTE
Copyright 2003,2004 Eric FELDSTEIN
Copyright 2003 Jean-Pascal MILCENT
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
 
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/******************************************************************************
* DOCUMENTATION
*******************************************************************************
RESUME
L'action {{attach}} permet de lier un fichier à une page, d'uploader ce fichier
et de downloader ce fichier. Si le fichier est une image, elle est affichée
dans la page. Lorsque le fichier est sur le serveur, il est possible de faire
une mise à jour de celui-ci.
 
PARAMETRES DE L'ACTION
L'action {{attach}} prend les paramètres suivants :
- file ou attachfile: nom du fichier tel qu'il sera sur le serveur. Les
espaces sont remplacé par des "_". (OBLIGATOIRE)
- desc ou attachdesc: description du fichier. C'est le texte qui sera affiché
comme lien vers le fichier ou dans l'attribut alt de la balise <img>. Ce
paramètre est obligatoire pour les images pour être conforme au XHTML.
- delete ou attachdelete: Si ce paramètre est non vide alors le fichier sera
effacé sur le serveur.
- link ou attachlink: URL de lien pour une image sensible. le lien peut être
un nom de page WikiNi, un lien interwiki ou une adresse http
- class: indique le nom de la ou les classes de style à utiliser pour afficher
l'image. les noms des classes sont séparés par un espace.
 
EXEMPLES
- Attacher un fichier archive:
{{attach file="archive.zip"}}
- Attacher un fichier archive avec une description
{{attach file="archive.zip" desc="Code source de l'application"}}
- Supprimer un fichier:
{{attach file="archive.zip" delete="y"}}
- Afficher une image:
{{attach file="image.png" desc="voici une image"}}
- Afficher une image sensible:
{{attach file="image.png" desc="voici une image" link="PagePrincipale"}}
{{attach file="image.png" desc="voici une image" link="WikiNi:PagePrincipale"}}
{{attach file="image.png" desc="voici une image" link="http://www.wikini.net"}}
- Afficher une image collé sur le bord droit et sans contour:
{{attach file="image.png" desc="voici une image" class="right noborder"}}
 
INSTALLATION
1) Copiez le fichier attach.php dans le répertoire des actions (/actions)
2) Copiez le fichier attach.class.php dans le répertoire des actions (/actions)
3) Copiez le fichier attachfm.php dans le repertoire des actions (/actions)
4) Copiez le fichier filamanager.php dans le répertoire des handlers (/handlers/page)
5) Copiez le fichier upload.php dans le répertoire des handlers (/handlers/page)
6) Copiez le fichier download.php dans le répertoire des handlers (/handlers/page)
7) Créez le répertoire racine des uploads sur le site du wiki. Si le SAFE_MODE
de PHP est activé, vous devez créer vous même ce répertoire et autoriser
l'écriture dans ce répertoire pour l'utilisateur et le groupe.
8) Ouvrez le fichier wakka.config.php et ajoutez la configuration de l'action.
Tous les paramètres de configuration ont une valeur par défaut.
Le configuration par défaut est:
 
$wakkaConfig["attach_config"] = array(
"upload_path" => 'files', //repertoire racine des uploads
"ext_images" => 'gif|jpeg|png|jpg', //extension des fichiers images
"ext_script" => 'php|php3|asp|asx|vb|vbs|js', //extension des script(non utilisé)
"update_symbole" => '*', //symbole pour faire un update du fichier
"max_file_size" => 1024*100, //taille maximum du fichier en octer (100Ko par défaut)
"fmDelete_symbole" => 'Supr', //symbole a afficher pour le lien "supprimer" dans le gestionnaire de fichier
"fmRestore_symbole" => 'Rest', //symbole a afficher pour le lien "restaurer" dans le gestionnaire de fichier
"fmTrash_symbole" => 'Poubelle') //symbole a afficher pour le lien "Poubelle" dans le gestionnaire de fichier
 
9) Ajoutez les classes de style au fichier wakka.css. Exemple de style :
.attach_margin05em { margin: 0.5em;}
.attach_margin1em { margin: 1em;}
.attach_left {float: left;}
.attach_right {float: right;}
.attach_noborder {border-width: 0px;}
.attach_vmiddle {vertical-align: text-bottom;}
 
10)Pour configurer l'aspect du gestionnnaire de fichier utiliser les classes de style .tableFM
tableFMCol1 et tableFMCol2
Exemple :
.tableFM {border: thin solid Black; width: 100%; }
.tableFM THEAD { background-color: Silver; font-weight: bold; text-align: center; }
.tableFM TFOOT { background-color: Silver; font-weight: bold; text-align: left; }
.tableFM TBODY TR { text-align: center; }
.tableFMCol1 { background-color: Aqua; }
.tableFMCol2 { background-color: Yellow; }
*******************************************************************************/
 
if (!class_exists('attach')){
include($this->GetConfigValue('action_path').'/attach.class.php');
}
$att = new attach($this);
$att->doAttach();
unset($att);
?>
/trunk/client/integrateur_wikini/bibliotheque/wikini/handlers/page/download.php
New file
0,0 → 1,48
<?php
/*
download.php
Code original de ce fichier : Eric FELDSTEIN
Copyright (c) 2002, Hendrik Mans <hendrik@mans.de>
Copyright 2002, 2003 David DELON
Copyright 2002, 2003 Charles NEPOTE
Copyright 2003,2004 Eric FELDSTEIN
Copyright 2003 Jean-Pascal MILCENT
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
 
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
# Execute le download des fichiers lier par l'action {{attach}}
# Necessite le fichier actions/attach.php pour fonctionner
# voir actions/attach.php ppour la documentation
# copyrigth Eric Feldstein 2003-2004
 
//vérification de sécurité
if (!WIKINI_VERSION) {
die ("acc&egrave;s direct interdit");
}
if (!class_exists('attach')){
include($this->GetConfigValue('action_path').'/attach.class.php');
}
$att = new attach($this);
$att->doDownload();
unset($att);
?>
/trunk/client/integrateur_wikini/bibliotheque/wikini/handlers/page/filemanager.php
New file
0,0 → 1,58
<?php
/*
filemanager.php
Code original de ce fichier : Eric FELDSTEIN
Copyright (c) 2002, Hendrik Mans <hendrik@mans.de>
Copyright 2002, 2003 David DELON
Copyright 2002, 2003 Charles NEPOTE
Copyright 2003,2004 Eric FELDSTEIN
Copyright 2003 Jean-Pascal MILCENT
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
 
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
# Execute le gestion des fichiers lier par l'action {{attach}}
# Necessite le fichier actions/attach.php pour fonctionner
# voir actions/attach.php ppour la documentation
# copyrigth Eric Feldstein 2003-2004
 
//vérification de sécurité
if (!WIKINI_VERSION) {
die ("acc&egrave;s direct interdit");
}
echo $this->Header();
?>
<div class="page">
<?php
if($this->UserIsOwner()){
if (!class_exists('attach')){
include($this->GetConfigValue('action_path').'/attach.class.php');
}
$att = new attach($this);
$att->doFilemanager();
unset($att);
}else{
echo $this->Format("//Seul le propriétaire de cette page peut accéder au gestionnaire des fichiers attaché//");
}
?>
</div>
<?php echo $this->Footer(); ?>
/trunk/client/integrateur_wikini/bibliotheque/wikini/handlers/page/upload.php
New file
0,0 → 1,55
<?php
/*
upload.php
Code original de ce fichier : Eric FELDSTEIN
Copyright (c) 2002, Hendrik Mans <hendrik@mans.de>
Copyright 2002, 2003 David DELON
Copyright 2002, 2003 Charles NEPOTE
Copyright 2003,2004 Eric FELDSTEIN
Copyright 2003 Jean-Pascal MILCENT
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
 
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
# Execute l'upload des fichiers lier par l'action {{attach}}
# Necessite le fichier actions/attach.php pour fonctionner
# voir actions/attach.php ppour la documentation
# copyrigth Eric Feldstein 2003-2004
 
//vérification de sécurité
if (!WIKINI_VERSION) {
die ("acc&egrave;s direct interdit");
}
echo $this->Header();
?>
<div class="page">
<?php
 
if (!class_exists('attach')){
include($this->GetConfigValue('action_path').'/attach.class.php');
}
$att = new attach($this);
$att->doUpload();
unset($att);
?>
</div>
<?php echo $this->Footer(); ?>
/trunk/client/integrateur_wikini/bibliotheque/wikini/ACeditor.buttonsBar.php
New file
0,0 → 1,43
<?php
$ACbuttonsBar = "
<div id=\"toolbar\">
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelection(thisForm.body,'**','**');\" src=\"ACEdImages/bold.gif\" title=\"Passe le texte sélectionné en gras ( Ctrl-Maj-b )\">
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelection(thisForm.body,'//','//');\" src=\"ACEdImages/italic.gif\" title=\"Passe le texte sélectionné en italique ( Ctrl-Maj-t )\">
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelection(thisForm.body,'__','__');\" src=\"ACEdImages/underline.gif\" title=\"Souligne le texte sélectionné ( Ctrl-Maj-u )\">
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelection(thisForm.body,'@@','@@');\" src=\"ACEdImages/strike.gif\" title=\"Barre le texte sélectionné\">
<img class=\"buttons\" src=\"ACEdImages/separator.gif\" >
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelection(thisForm.body,'======','======\\n');\" src=\"ACEdImages/t1.gif\" title=\" En-tête énorme\">
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelection(thisForm.body,'=====','=====\\n');\" src=\"ACEdImages/t2.gif\" title=\" En-tête très gros\">
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelection(thisForm.body,'====','====\\n');\" src=\"ACEdImages/t3.gif\" title=\" En-tête gros\">
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelection(thisForm.body,'===','===\\n');\" src=\"ACEdImages/t4.gif\" title=\" En-tête normal\">
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelection(thisForm.body,'==','==');\" src=\"ACEdImages/t5.gif\" title=\" Petit en-tête\">
<img class=\"buttons\" src=\"ACEdImages/separator.gif\" >
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelectionWithLink(thisForm.body);\" src=\"ACEdImages/link.gif\" title=\"Ajoute un lien au texte sélectionné\">
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelection(thisForm.body,'\\t-&nbsp;','');\" src=\"ACEdImages/listepuce.gif\" title=\"Liste\">
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelection(thisForm.body,'\\t1)&nbsp;','');\" src=\"ACEdImages/listenum.gif\" title=\"Liste numérique\">
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelection(thisForm.body,'\\ta)&nbsp;','');\" src=\"ACEdImages/listealpha.gif\" title=\"Liste alphabéthique\">
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelectionBis(thisForm.body,'\\n---','');\" src=\"ACEdImages/crlf.gif\" title=\"Insère un retour chariot\">
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelectionBis(thisForm.body,'\\n------','');\" src=\"ACEdImages/hr.gif\" title=\"Insère une ligne horizontale\">
 
 
<img class=\"buttons\" src=\"ACEdImages/separator.gif\" >
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelection(thisForm.body,'%%','%%');\" src=\"ACEdImages/code.gif\" title=\"Code\">
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelection(thisForm.body,'%%(php)','%%');\" src=\"ACEdImages/php.gif\" title=\"Code PHP\">
</div>
<div id=\"toolbar\">
<img class=\"buttons\" onmouseover=\"mouseover(this);\" onmouseout=\"mouseout(this);\" onmousedown=\"mousedown(this);\" onmouseup=\"mouseup(this);\" onclick=\"wrapSelectionWithImage(thisForm.body);\" src=\"ACEdImages/image.gif\" title=\"insère un tag image \">
 
<span class=\"texteChampsImage\">
&nbsp;&nbsp;Fichier&nbsp;<input type=\"text\" name=\"filename\" class=\"ACsearchbox\" size=\"10\">&nbsp;&nbsp;Description&nbsp;<input type=\"text\" name=\"description\" class=\"ACsearchbox\" size=\"10\">
&nbsp;&nbsp;Alignement&nbsp;<select id=\"alignment\" class=\"ACsearchbox\">
<option value=\"left\">Gauche</option>
<option value=\"center\">Centré</option>
<option value=\"right\">Droite</option>
</select>
</span>
</div>";
?>
/trunk/client/integrateur_wikini/bibliotheque/adwi_wikini.fonct.php
21,7 → 21,7
// | along with Foobar; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: adwi_wikini.fonct.php,v 1.10 2006-10-05 08:56:12 florian Exp $
// CVS : $Id: adwi_wikini.fonct.php,v 1.11 2007-04-06 08:40:13 neiluj Exp $
/**
* Contient les fonctions de l'application gestion des Wikini
*
35,7 → 35,7
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.10 $
*@version $Revision: 1.11 $
// +------------------------------------------------------------------------------------------------------+
*/
 
77,9 → 77,10
require_once ADWI_CHEMIN_BIBLIOTHEQUE_PEAR.'Net/FTP.php';
// création de l'objet pear ftp
$objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
$objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT) or die("Impossible de se connecter par FTP !");
// création de la connexion
$ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
$ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT) or die("Impossible de se connecter par FTP !");
// identification
$ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
139,7 → 140,6
return ;
}
 
 
$ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
$resultat->free();
unset ($requete, $resultat);
175,6 → 175,52
return $tableau_retour ;
}
 
// merci PHP 5 ...
function mb_str_split($str, $length = 1) {
if ($length < 1) return FALSE;
 
$result = array();
 
for ($i = 0; $i < strlen($str); $i += $length) {
$result[] = substr($str, $i, $length);
}
 
return $result;
}
//
function remove_accents( $string )
{
$string = htmlentities($string);
return preg_replace("/&([a-z])[a-z]+;/i","$1",$string);
}
 
function genere_nom_wiki($nom, $spaces = FALSE)
{
// traitement des accents
$nom = remove_accents($nom);
$temp = mb_str_split($nom);
$count = 0;
$final = NULL;
foreach($temp as $letter)
{
if(preg_match('/([[:space:]]|[[:punct:]])/', $letter))
{
$final .= ($spaces ? '_' : '');
} elseif(preg_match ('/[a-zA-Z0-9]/', $letter)) {
$final .= (($count == 0 || $count == (strlen($nom) - 1)) ? strtoupper($letter) : strtolower($letter));
}
$count++;
}
// vérifions que le retour n'est pas uniquement un underscore
if(preg_match('/^[[:punct:]]+$/', $final)) return FALSE;
 
// sinon retour du nom formaté
return($final);
}
 
/**
*
* C du CRUD
182,7 → 228,12
*/
 
 
function insertion ($valeur, &$db) {
function insertion ($valeur, &$db) {
// --julien pour noms wiki
$valeur['code_alpha_wikini'] = genere_nom_wiki($valeur['code_alpha_wikini'], TRUE);
 
// Calcul dernier identifiant
$id_wikini_bdd = SQL_obtenirNouveauId ($db, 'gen_wikini', 'gewi_id_wikini') ;
$requete = "insert into gen_wikini set gewi_id_wikini ="
198,9 → 249,9
require_once ADWI_CHEMIN_BIBLIOTHEQUE_PEAR.'Net/FTP.php';
 
// création de l'objet pear ftp
$objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT);
$objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT) or die("Connexion FTP Impossible !");
// création de la connexion
$ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT);
$ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT) or die("Connexion FTP Impossible !");
// identification
$ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);
209,16 → 260,16
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'.
'Serveur : '. PAP_FTP_SERVEUR .'<br />'.
'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'.
'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
// 'Erreur connexion : '.$ftp_conn->getMessage().'<br />'.
'Erreur login : '.$ftp_login_result->getMessage().'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /><p>';
print $message;
}
$objet_pear_ftp->mkdir(PAP_FTP_RACINE.ADWI_CHEMIN_WIKINI.$valeur['code_alpha_wikini']) ;
$objet_pear_ftp->mkdir(PAP_FTP_RACINE.ADWI_CHEMIN_WIKINI) ;
$chemin_wikini_bibliotheque = ADWI_CHEMIN_BIBLIOTHEQUE_WIKINI;
$chemin_wikini = PAP_FTP_RACINE.ADWI_CHEMIN_WIKINI.$valeur['code_alpha_wikini'].GEN_SEP;
$chemin_wikini = PAP_FTP_RACINE.ADWI_CHEMIN_WIKINI.genere_nom_wiki($valeur['code_alpha_wikini'], TRUE).GEN_SEP;
// Overwrite = fale (3eme parametre)
$resultat = $objet_pear_ftp->putRecursive($chemin_wikini_bibliotheque, $chemin_wikini, false, FTP_BINARY);
250,7 → 301,7
if ((!isset($valeur['table_prefix'])) || (empty($config_wikini['$valeur']))) {
$valeur['table_prefix'] = $valeur['code_alpha_wikini'];
}
$g_wikini->creation_tables($valeur['table_prefix']);
$g_wikini->creation_tables($valeur['table_prefix'], $valeur['page']);
// Creation Wakka.config.php
271,8 → 322,8
'mysql_user' => $config_wikini['bdd_utilisateur'],
'mysql_password' => $config_wikini['bdd_mdp'],
'table_prefix' => $config_wikini['table_prefix'],
'root_page' => $config_wikini['page'],
'wakka_name' => $config_wikini['code_alpha_wikini'],
'root_page' => $valeur['page'],
'wakka_name' => str_replace("_", " ", $valeur['code_alpha_wikini']),
'base_url' => $config_base_url,
'rewrite_mode' => '0',
'meta_keywords' => '',
308,7 → 359,7
 
 
$fichier_config_source = $tempfn;
$fichier_config_cible = PAP_FTP_RACINE.ADWI_CHEMIN_WIKINI.$valeur['code_alpha_wikini'].GEN_SEP."wakka.config.php";
$fichier_config_cible = PAP_FTP_RACINE.ADWI_CHEMIN_WIKINI.genere_nom_wiki($valeur['code_alpha_wikini'], TRUE).GEN_SEP."wakka.config.php";
$resultat = $objet_pear_ftp->put($fichier_config_source, $fichier_config_cible, false, FTP_BINARY);
352,7 → 403,7
*/
 
function requete_wikini (&$valeur) {
return 'gewi_code_alpha_wikini ="'.$valeur['code_alpha_wikini'].'", '
return 'gewi_code_alpha_wikini ="'.genere_nom_wiki($valeur['code_alpha_wikini'], TRUE).'", '
.'gewi_bdd_hote ="'.$valeur['bdd_hote'].'", '
.'gewi_bdd_nom="'.$valeur['bdd_nom'].'", '
.'gewi_bdd_utilisateur ="'.$valeur['bdd_utilisateur'].'", '
/trunk/client/integrateur_wikini/bibliotheque/gestion_wikini.class.php
19,7 → 19,7
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: gestion_wikini.class.php,v 1.5 2006-09-21 14:18:06 florian Exp $
// CVS : $Id: gestion_wikini.class.php,v 1.6 2007-04-06 08:40:13 neiluj Exp $
/**
* Application projet
*
31,7 → 31,7
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.5 $
*@version $Revision: 1.6 $
// +------------------------------------------------------------------------------------------------------+
*/
 
75,11 → 75,11
* @return void
* @access public
*/
function creation_tables( $prefixe )
function creation_tables( $prefixe, $root_page = 'PagePrincipale' )
{
// Connection à la base de donné de wikini
$prefixe .= '_' ;
$this->_db->query(
$q=$this->_db->query(
"CREATE TABLE `".$prefixe."pages` (".
"id int(10) unsigned NOT NULL auto_increment,".
"tag varchar(50) NOT NULL default '',".
98,6 → 98,7
"KEY idx_latest (latest),".
"KEY idx_comment_on (comment_on)".
") TYPE=MyISAM;");
$this->_db->query(
"CREATE TABLE `".$prefixe."acls` (".
"page_tag varchar(50) NOT NULL default '',".
113,6 → 114,7
"KEY idx_from (from_tag),".
"KEY idx_to (to_tag)".
") TYPE=MyISAM");
$this->_db->query(
"CREATE TABLE `".$prefixe."referrers` (".
"page_tag char(50) NOT NULL default '',".
136,8 → 138,7
"KEY idx_name (name),".
"KEY idx_signuptime (signuptime)".
") TYPE=MyISAM");
 
$this->_db->query("INSERT INTO `".$prefixe."pages` (`id`, `tag`, `time`, `body`, `body_r`, `owner`, `user`, `latest`, `handler`, `comment_on`) VALUES (56, 'PageMemo', '2006-09-21 10:38:12', '[[AideWikiNi Retour]]\n\n======Mémo d''utilisation du site Internet Wikini======\n\n=====Préambule, en règle général :=====\n\n - N''oubliez pas de vous **identifier** pour avoir accès à toutes les pages qui vous concernent.\n\n - Veillez à ne pas effacer le contenu d''une page mis en ligne précédemment. \nEn mode \" édition \" une page n''est pas forcément très lisible, **prenez le temps de vous habituer à la syntaxe, à trouver où vous voulez écrire.**\n\n=====Ecrire sur une page, enregistrer ses modifications ou faire un aperçu de la page :=====\n\n - Pour écrire sur une page, il vous suffit de **double cliquer sur la zone d''écriture** ou de cliquer en bas de la page sur le lien : **\" Editer cette page \"**\nAttention, lorsque vous avez terminé décrire, n''oubliez pas de **sauvegarder vos modifications** en bas de la page en cliquant sur le bouton **Aperçu** puis sur **Sauver**\n\n=====Pour Mettre en page :=====\n\n - Pour mettre en page vos textes vous pouvez **utiliser la barre d''outil** située en haut de la page quand vous êtes en mode édition.\n\n - Sinon, vous pouvez utiliser des codes pré configurés à partir de **symboles de syntaxe.**\nDans tous les cas il faudra utiliser deux symboles juste avant la première lettre à mettre en page et deux autres juste après la dernière lettre à mettre en page.\nPar exemple, si vous tapez : \"\"**Le COCM est une association régie sous la loi 1901**\"\"\nA l''écran le texte apparaîtra ainsi : **Le COCM est une **association** régie sous la loi 1901**\n\n - **Guide des règles de formatage**\n__Règles de base :__\n\n- \"\"##texte à espacement fixe## --->\"\" ##texte à espacement fixe##\n\n- Mettre en gras : \"\"**Texte en gras !** --->\"\" Texte en gras !\n\n- Souligner : \"\"Texte __souligné__ ! --->\"\" __Texte souligné !__ (2 fois le symbole du tiret bas, touche 8 du clavier)\n\n- Barrer un texte : \"\"@@Texte barré@@ ! --->\"\" @@Texte barré !@@ (deux arobaz)\n\n- Mettre en Italique : \"\"//Texte en italique.// --->\"\" //Texte en italique.// (deux slash)\n\n- \"\"======Grand titre (T1):======(6 signes \" égal \") -->\"\" ======Grand titre (T1):======\n\n- \"\"=====Grand titre (T2) :===== -->\"\" =====Grand titre (T2) :===== (5 signes \" égal \")\n\n- \"\"====Grand titre (T3) :==== -->\"\" ====Grand titre (T3) :==== (4 signes \" égal \")\n\n- Séparateur horizontal : il suffit de taper au moins 4 \"-\", au dela de 4 tirets c''est le meme effet : \"\"----\"\" (4 tiret, touche 6 du clavier)\nExemple : ----\n\nRetour de ligne forcé : \"\" ---\"\" \nExemple : \"\"le--- wikini --->\"\"le --- wikini\n\n=====Faire un lien vers un autre site ou une autre page du site :=====\n\n - **Pour faire un lien vers un autre site**, il suffit d''**écrire l''adresse du site entière** sur la page, le wikini reconnaît automatique que c''est un lien. Rappel, une adresse complète commence par [[http://]]\n\n - **Si vous souhaitez q''un autre texte apparaisse**, vous devrez écrire l''adresse du lien entre des crochets avec le texte que vous voulez. \nPar exemple : \"\"[[http://cocmathlétisme.org Visitez le site du club de Mauguio !]]\"\" le texte que le public verra sera : [[http://cocmathlétisme.org Visitez le site du club de Mauguio !]]\n\n - **Pour faire un lien d''une page du site vers une autre page du même site**, pas besoin de mettre toute l''adresse, il vous suffit d''indiquer le dernier mot du chemin (celui avec les deux majuscules) Par exemple pour faire un lien vers cette page, on utilisera seulement le mot écrit en bleu : http://www.cocmathletisme.org/wikini/wakka.php?wiki=AdministraTeurs\nVous pourrez également utiliser un autre texte grâce aux crochets comme expliqué plus haut. (rappel : \"\"[[ParametresUtilisateur Identification ]]\"\" donnera aux visiteurs : [[ParametresUtilisateur Identification ]]\n\n=====Créer une nouvelle page :=====\n\n - **Une nouvelle page se crée** en écrivant un mot qui contient 2 majuscules **CommeCeci**.\nLorsque vous sauvez vos modifications, le mot apparaît à l''écran avec une majuscule en bout de mot : **CommeCeci?** En cliquant sur le point d''interrogation, une nouvelle page blanche apparaît, en y insérant du texte et en sauvant, cette page devient active.\n\n - **Conseil** : Lorsque vous créer la page, il est préférable d''**en informer l''administrateur principal** afin qu''il puisse gérer les droits d''écriture et de lecture de la page (notamment si cette page est créée dans la rubrique des administrateurs)\n\n=====Mettre une image dans le corps d''une page :=====\n\n1) **dimensionner votre photo** de manière à ce qu''elle ne soit pas trop grande (rester sur un format 10X15 cm maxi), vérifier que votre photo ne soit pas trop lourde sinon, elle n''apparaîtra pas. Configurer par exemple **la résolution** qui, pour être sur le Web, doit être de 72 dpi.\n\n2) Quant vous êtes en train de modifier la page, il faut utiliser la barre d''outil en haut de la page, sur la 2ème ligne de la barre, il y a un icône image, avant de cliquez dessus, vous allez informer les cases suivantes : **fichier, description et alignement**\n\n3) **Fichier** : indiquer un nom de fichier et surtout son **extension** (.doc,.jpg,.img ,.gif....) par exemple pour le logo de cocm vous pourrez indiquer **logo.jpg**\n\n4) **Description** : ici vous décrivez la photo par exemple : Le logo du cocm\n\n5) **Alignement** : indiquer si vous souhaitez que l''image soit centrée, à gauche ou à droite de l''écran.\n\n6) **Cliquez enfin sur le bouton image** de la barre d''outil puis **sauver vos modifications**, vous verrez apparaître à côté de la description de votre ficher un point d''interrogation : le logo du cocm?\n\n7/ Cliquez sur le point d''interrogation, le site vous propose de **transférer votre image** via le formulaire d''envois de fichier cliquez sur \" parcourir \". **Pointez l''image** et cliquez sur **envoyer**.\n\n=====Mettre un fichier en téléchargement sur le site :=====\n\n - **Idem que pour mettre une image**, suivez les instructions du point 2/ à 7/\nRappel : ne vous trompez pas sur l''extension de votre fichier :\nQuelques extensions possibles : \nFichier Word : .doc\nPower point : .pps ou . ppt\nExcel : .xls\n\n**Attention, lorsque un fichier est trop lourd, le serveur vous envoie un message d''erreur. Veillez à ne pas trop surcharger le site, en effet, l''espace d''un site n''est pas extensible.**', '', '', 'ekotribu', 'Y', 'page', ''),
$this->_db->query("INSERT INTO `".$prefixe."pages` (`id`, `tag`, `time`, `body`, `body_r`, `owner`, `user`, `latest`, `handler`, `comment_on`) VALUES (56, 'PageMemo', '2006-09-21 10:38:12', '[[AideWikiNi Retour]]\n\n======Màmo d''utilisation du site Internet Wikini======\n\n=====Prçambule, en règle général :=====\n\n - N''oubliez pas de vous **identifier** pour avoir accès à toutes les pages qui vous concernent.\n\n - Veillez à ne pas effacer le contenu d''une page mis en ligne précédemment. \nEn mode \" édition \" une page n''est pas forcément très lisible, **prenez le temps de vous habituer à la syntaxe, à trouver où vous voulez écrire.**\n\n=====Ecrire sur une page, enregistrer ses modifications ou faire un aperçu de la page :=====\n\n - Pour écrire sur une page, il vous suffit de **double cliquer sur la zone d''écriture** ou de cliquer en bas de la page sur le lien : **\" Editer cette page \"**\nAttention, lorsque vous avez terminé décrire, n''oubliez pas de **sauvegarder vos modifications** en bas de la page en cliquant sur le bouton **Aperçu** puis sur **Sauver**\n\n=====Pour Mettre en page :=====\n\n - Pour mettre en page vos textes vous pouvez **utiliser la barre d''outil** située en haut de la page quand vous êtes en mode édition.\n\n - Sinon, vous pouvez utiliser des codes prié configuràs à partir de **symboles de syntaxe.**\nDans tous les cas il faudra utiliser deux symboles juste avant la première lettre à mettre en page et deux autres juste après la dernière lettre à mettre en page.\nPar exemple, si vous tapez : \"\"**Le COCM est une association régie sous la loi 1901**\"\"\nA l''écran le texte apparaîtra ainsi : **Le COCM est une **association** régie sous la loi 1901**\n\n - **Guide des règles de formatage**\n__Règles de base :__\n\n- \"\"##texte à espacement fixe## --->\"\" ##texte à espacement fixe##\n\n- Mettre en gras : \"\"**Texte en gras !** --->\"\" Texte en gras !\n\n- Souligner : \"\"Texte __souligné__ ! --->\"\" __Texte souligné !__ (2 fois le symbole du tiret bas, touche 8 du clavier)\n\n- Barrer un texte : \"\"@@Texte barré@@ ! --->\"\" @@Texte barré !@@ (deux arobaz)\n\n- Mettre en Italique : \"\"//Texte en italique.// --->\"\" //Texte en italique.// (deux slash)\n\n- \"\"======Grand titre (T1):======(6 signes \" égal \") -->\"\" ======Grand titre (T1):======\n\n- \"\"=====Grand titre (T2) :===== -->\"\" =====Grand titre (T2) :===== (5 signes \" égal \")\n\n- \"\"====Grand titre (T3) :==== -->\"\" ====Grand titre (T3) :==== (4 signes \" égal \")\n\n- Séparateur horizontal : il suffit de taper au moins 4 \"-\", au dela de 4 tirets c''est le meme effet : \"\"----\"\" (4 tiret, touche 6 du clavier)\nExemple : ----\n\nRetour de ligne forcé : \"\" ---\"\" \nExemple : \"\"le--- wikini --->\"\"le --- wikini\n\n=====Faire un lien vers un autre site ou une autre page du site :=====\n\n - **Pour faire un lien vers un autre site**, il suffit d''**écrire l''adresse du site entière** sur la page, le wikini reconnaît automatique que c''est un lien. Rappel, une adresse complète commence par [[http://]]\n\n - **Si vous souhaitez q''un autre texte apparaisse**, vous devrez écrire l''adresse du lien entre des crochets avec le texte que vous voulez. \nPar exemple : \"\"[[http://cocmathlétisme.org Visitez le site du club de Mauguio !]]\"\" le texte que le public verra sera : [[http://cocmathlétisme.org Visitez le site du club de Mauguio !]]\n\n - **Pour faire un lien d''une page du site vers une autre page du même site**, pas besoin de mettre toute l''adresse, il vous suffit d''indiquer le dernier mot du chemin (celui avec les deux majuscules) Par exemple pour faire un lien vers cette page, on utilisera seulement le mot écrit en bleu : http://www.cocmathletisme.org/wikini/wakka.php?wiki=AdministraTeurs\nVous pourrez également utiliser un autre texte grâce aux crochets comme expliqué plus haut. (rappel : \"\"[[ParametresUtilisateur Identification ]]\"\" donnera aux visiteurs : [[ParametresUtilisateur Identification ]]\n\n=====Créer une nouvelle page :=====\n\n - **Une nouvelle page se crée** en écrivant un mot qui contient 2 majuscules **CommeCeci**.\nLorsque vous sauvez vos modifications, le mot apparaît à l''écran avec une majuscule en bout de mot : **CommeCeci?** En cliquant sur le point d''interrogation, une nouvelle page blanche apparaît, en y insérant du texte et en sauvant, cette page devient active.\n\n - **Conseil** : Lorsque vous créer la page, il est préférable d''**en informer l''administrateur principal** afin qu''il puisse gérer les droits d''écriture et de lecture de la page (notamment si cette page est créée dans la rubrique des administrateurs)\n\n=====Mettre une image dans le corps d''une page :=====\n\n1) **dimensionner votre photo** de manière à ce qu''elle ne soit pas trop grande (rester sur un format 10X15 cm maxi), vérifier que votre photo ne soit pas trop lourde sinon, elle n''apparaîtra pas. Configurer par exemple **la résolution** qui, pour être sur le Web, doit être de 72 dpi.\n\n2) Quant vous êtes en train de modifier la page, il faut utiliser la barre d''outil en haut de la page, sur la 2ème ligne de la barre, il y a un icône image, avant de cliquez dessus, vous allez informer les cases suivantes : **fichier, description et alignement**\n\n3) **Fichier** : indiquer un nom de fichier et surtout son **extension** (.doc,.jpg,.img ,.gif....) par exemple pour le logo de cocm vous pourrez indiquer **logo.jpg**\n\n4) **Description** : ici vous décrivez la photo par exemple : Le logo du cocm\n\n5) **Alignement** : indiquer si vous souhaitez que l''image soit centrée, à gauche ou à droite de l''écran.\n\n6) **Cliquez enfin sur le bouton image** de la barre d''outil puis **sauver vos modifications**, vous verrez apparaître à côté de la description de votre ficher un point d''interrogation : le logo du cocm?\n\n7/ Cliquez sur le point d''interrogation, le site vous propose de **transférer votre image** via le formulaire d''envois de fichier cliquez sur \" parcourir \". **Pointez l''image** et cliquez sur **envoyer**.\n\n=====Mettre un fichier en téléchargement sur le site :=====\n\n - **Idem que pour mettre une image**, suivez les instructions du point 2/ à 7/\nRappel : ne vous trompez pas sur l''extension de votre fichier :\nQuelques extensions possibles : \nFichier Word : .doc\nPower point : .pps ou . ppt\nExcel : .xls\n\n**Attention, lorsque un fichier est trop lourd, le serveur vous envoie un message d''erreur. Veillez à ne pas trop surcharger le site, en effet, l''espace d''un site n''est pas extensible.**', '', '', 'ekotribu', 'Y', 'page', ''),
(2, 'DerniersChangements', '2006-09-20 12:18:59', '** Retour : ** [[TableauDeBord Tableau de bord]]\n----\n{{RecentChanges}}', '', '', 'ekotribu', 'Y', 'page', ''),
(3, 'DerniersCommentaires', '2006-09-20 12:18:59', '** Retour : ** [[TableauDeBord Tableau de bord]]\n----\n{{RecentlyCommented}}', '', '', 'ekotribu', 'Y', 'page', ''),
(5, 'PagesACreer', '2006-09-20 12:18:59', '** Retour : ** [[TableauDeBord Tableau de bord]]\n----\n=== Liste des pages à créer : ===\n\n{{WantedPages}}', '', '', 'ekotribu', 'Y', 'page', ''),
158,11 → 159,11
(43, 'AideQuatre', '2006-09-20 17:45:30', '[[AideWikiNi Retour]]\n\n=====Comment créer un menu ou le modifier dans l''espace de mon projet ?=====\n\n\"\"\n<center>\n<OBJECT CLASSID=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"WIDTH=\"559\"HEIGHT=\"408\"\nCODEBASE=\"http://active.macromedia.com/flash5/cabs/swflash.cab#version=5,0,0,0\">\n<PARAM NAME=movie VALUE=\"tutoriel_wiki3.swf\">\n<PARAM NAME=play VALUE=true>\n<PARAM NAME=loop VALUE=false>\n<PARAM NAME=quality VALUE=low>\n<EMBED SRC=\"http://ekotribu.org/tutos/tutoriel_wiki3.swf\" WIDTH=509 HEIGHT=374 quality=low loop=false TYPE=\"application/x-shockwave-flash\" PLUGINSPAGE=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\">\n</EMBED>\n</OBJECT>\n</center>\n\"\"', '', '', 'ekotribu', 'Y', 'page', ''),
(44, 'AideCinq', '2006-09-20 17:47:11', '[[AideWikiNi Retour]]\n\n=====Comment faire des liens vers d''autres sites ou d''autre page dans mon projet ?=====\n\n\"\"\n<center>\n<OBJECT CLASSID=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" WIDTH=\"559\" HEIGHT=\"408\" CODEBASE=\"http://active.macromedia.com/flash5/cabs/swflash.cab#version=5,0,0,0\">\n<PARAM NAME=movie VALUE=\"tutoriel_wiki5.swf\">\n<PARAM NAME=play VALUE=true>\n<PARAM NAME=loop VALUE=false>\n<PARAM NAME=quality VALUE=low>\n<EMBED SRC=\"http://ekotribu.org/tutos/tutoriel_wiki5.swf\" WIDTH=559 HEIGHT=408 quality=low loop=false TYPE=\"application/x-shockwave-flash\" PLUGINSPAGE=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\">\n</EMBED>\n</OBJECT>\n</center>\n\"\"', '', '', 'ekotribu', 'Y', 'page', ''),
(47, 'ParametresUtilisateur', '2006-09-20 17:52:04', '** Retour : ** [[PagePrincipale page principale]]\n----\n** Note : ** L''idéal pour la création d''un nom Wiki est d''accoler son prénom et son nom de cette façon : \"\"\"PrenomNom\"\"\". \n----\n==== Mes paramètres ====\n\n{{UserSettings}}\n\n----', '', '', 'ekotribu', 'Y', 'page', ''),
(50, 'ListeDesActionsWikini', '2006-09-20 17:58:42', 'Wikini propose par défaut les \"Actions\" suivantes.\n\n - \"\"ActionBacklinks\"\" insère la liste des pages faisant référence à la page courante\n - \"\"ActionInclude\"\" : inclusion d''une page au sein d''une autre\n - \"\"ActionListPages\"\" : liste la totalité des pages du site (paramètres possibles)\n - \"\"ActionListUsers\"\" : liste la totalité des pages du site (tri /last).\n - \"\"ActionMyChanges\"\" : donne les dernières pages modifiées par l''utilisateur courant (force son identification)\n - \"\"ActionMyPages\"\" : donne la liste des pages dont l''utilisateur courant est le propriétaire\n - \"\"ActionOrphanedPages\"\" : recherche les pages qui ne sont pas cibles de liens (pages orphelines)\n - \"\"ActionPageIndex\"\" : liste toutes les pages classées par ordre alphabétique et regroupées par lettres.\n - \"\"ActionRecentChanges\"\" : affiche la liste des pages récemment modifiées (voir DerniersChangements )\n - \"\"ActionRecentChangesRSS\"\" : automatise la diffusion pr RSS (voir la page DerniersChangementsRss ) \n - \"\"ActionRecentComments\"\" : donne la liste des pages commentées triées par date anti-chronologique (cf. ci-dessous) \n - \"\"ActionRecentlyCommented\"\" : affiche une liste (bornée par max= ) des pages ayant été récemment commentées (voir DerniersCommentaires ).\n - \"\"ActionRedirect\"\" : redirection d''une page vers une autre\n - \"\"ActionResetPassword\"\" : ré-initialise le mot de passe de l''utilisateur (utilisé dans ParametresUtilisateur ) \n - \"\"ActionTextSearch\"\" : recherche d''une chaîne de caractères dans l''ensemble des pages de Wikini\n - \"\"ActionTrail\"\" : permet de lier des pages entres elles et de passer de l''une à l''autre avec un petit navigateur style \"précédente/suivante\"\n - \"\"ActionUserSettings\"\" : création de compte et connexion (voir ParametresUtilisateur ).\n - \"\"ActionWantedPages\"\" : liste les pages de Mot Wiki devant être écrites (voir PagesACreer ).\n.', '', '', 'ekotribu', 'Y', 'page', ''),
(50, 'ListeDesActionsWikini', '2006-09-20 17:58:42', 'Wikini propose par défaut les \"Actions\" suivantes.\n\n - \"\"ActionBacklinks\"\" insère la liste des pages faisant référence à la page courante\n - \"\"ActionInclude\"\" : inclusion d''une page au sein d''une autre\n - \"\"ActionListPages\"\" : liste la totalité des pages du site (paramètres possibles)\n - \"\"ActionListUsers\"\" : liste la totalité des pages du site (tri /last).\n - \"\"ActionMyChanges\"\" : donne les dernières pages modifiées par l''utilisateur courant (force son identification)\n - \"\"ActionMyPages\"\" : donne la liste des pages dont l''utilisateur courant est le propriétaire\n - \"\"ActionOrphanedPages\"\" : recherche les pages qui ne sont pas cibles de liens (pages orphelines)\n - \"\"ActionPageIndex\"\" : liste toutes les pages classées par ordre alphabétique et regroupées par lettres.\n - \"\"ActionRecentChanges\"\" : affiche la liste des pages récemment modifiées (voir DerniersChangements )\n - \"\"ActionRecentChangesRSS\"\" : automatise la diffusion pr RSS (voir la page DerniersChangementsRss ) \n - \"\"ActionRecentComments\"\" : donne la liste des pages commentées triàes par date anti-chronologique (cf. ci-dessous) \n - \"\"ActionRecentlyCommented\"\" : affiche une liste (born°e par max= ) des pages ayant été récemment commentées (voir DerniersCommentaires ).\n - \"\"ActionRedirect\"\" : redirection d''une page vers une autre\n - \"\"ActionResetPassword\"\" : rà-initialise le mot de passe de l''utilisateur (utilisé dans ParametresUtilisateur ) \n - \"\"ActionTextSearch\"\" : recherche d''une chaîne de caractères dans l''ensemble des pages de Wikini\n - \"\"ActionTrail\"\" : permet de lier des pages entres elles et de passer de l''une à l''autre avec un petit navigateur style \"précédente/suivante\"\n - \"\"ActionUserSettings\"\" : création de compte et connexion (voir ParametresUtilisateur ).\n - \"\"ActionWantedPages\"\" : liste les pages de Mot Wiki devant être écrites (voir PagesACreer ).\n.', '', '', 'ekotribu', 'Y', 'page', ''),
(51, 'ControlerLAccesAuxPages', '2006-09-20 18:03:17', 'Chaque page possède trois niveaux de contrôle d''accès :\n - lecture de la page\n - écriture/modification de la page\n - commentaire de la page\n\nLes contrôles d''accès ne peuvent être modifiés que par le propriétaire de la page -- l''administrateur technique peut aussi manuellement modifier ces contrôles en travaillant directement sur la base de données.\nLe propriétaire d''une page voit apparaître, dans la page dont il est propriétaire, l''option \"Éditer permissions\" : cette option lui permet de modifier les contrôles d''accès.\nCes contrôles sont matérialisés par des colonnes où le propriétaire va ajouter ou supprimer des informations.\nLe propriétaire peut compléter ces colonnes par les informations suivantes, séparées par des espaces :\n - le nom d''un ou plusieurs utilisateurs : par exemple \"\"CharlesNepote\"\" ou \"\"DavidDelon\"\"\n - le caractère ***** désignant tous les utilisateurs\n - le caractère **+** désignant les utilisateurs enregistrés\n - le caractère **!** signifiant la négation : par exemple !\"\"CharlesNepote\"\" signifie que \"\"CharlesNepote\"\" **ne doit pas** avoir accès à cette page\n\n===== Droits d''accès par défaut =====\nPour toute nouvelle page créée, [[http://www.wikini.net WikiNi]] applique des droits d''accès par défaut. Ces droits d''accès sont configurables via le fichier /wakka.config.php.\nIl faut renseigner les trois variables de configuration suivantes :\n##\n \"default_write_acl\" => \"*\",\n \"default_read_acl\" => \"*\",\n \"default_comment_acl\" => \"*\",\n##\n\nPar exemple, vous pouvez souhaiter que, par défaut, seuls les utilisateurs enregistrés puisse modifier des pages. Vous utiliserez alors :\n##\n \"default_write_acl\" => \"+\",\n \"default_read_acl\" => \"*\",\n \"default_comment_acl\" => \"*\",\n##', '', '', 'ekotribu', 'Y', 'page', ''),
(59, 'AideWikiNi', '2006-09-21 10:52:50', '**=====Mode d''emploi de la rubrique \"Projet\"=====**\n\n==A partir de petites animations, tu vas découvrir comment utiliser ton espace projet. Clique sur la question qui se rapproche de celle que tu te poses :==\n\n - [[AideUn Comment écrire, mettre en page et sauvegarder sur une page ?]]\n - [[AideDeux Comment créer une nouvelle page dans l''espace projet ?]]\n - [[AideTrois Comment mettre en ligne un document dans mon projet, illustrer mes textes avec une image ?]]\n - [[AideQuatre Comment créer un menu dans l''espace de mon projet ?]]\n - [[AideCinq Comment faire des liens vers d''autres sites ou d''autres pages dans mon projet ?]]\n\n=====Et aussi... =====\n\n - [[PageMemo un petit mémo général]]\n\n - ReglesDeFormatage : résumé des syntaxes \"\"WikiNi\"\" permettant la mise en forme du texte.\n\n - ListeDesActionsWikini : liste des actions disponibles dans [[http://www.wikini.net WikiNi]].\n\n - ControlerLAccesAuxPages : explique comment gérer les droits d''accès aux pages de [[http://www.wikini.net WikiNi]].\n\n - [[http://www.wikini.net un site pleins d''infos sur le WikiNi]]\n\n - Pour poser des questions plus spécifiques [[http://ekotribu.org/papyrus.php?site=1&menu=15&wiki=FaQ C''est ici !]]\n\n----', '', '', 'ekotribu', 'Y', 'page', ''),
(61, 'AccueiL', '2006-09-21 10:53:19', '======Bienvenue sur L''Ekotribu !======\n\n----\n\n=====ICI, C''EST L''ESPACE DE TON PROJET=====\n\nEn tant que participant, tu vas pouvoir **créer tes propres pages** et ton menu pour présenter aux autres participants tes projets mais aussi expliquer, **étape par étape**, tes avancements et tes questionnements. Cet espace, **c''est à toi de le compléter**, autant de fois que tu le souhaites.\n\n\n----\n\n=====Quelques pistes pour personnaliser ton espace :=====\n\n - Double-clique sur la page pour rédiger.\n - Pour trouver les réponses à toutes tes questions, [[http://ekotribu.org/papyrus.php?site=1&menu=15 clique ici !]] \n - Pour apprendre à rédiger, mettre des photos, des liens sur l''espace projet, clique sur l''aide, dans ton menu à gauche\n\n\n----\n\n====Un petit exercice pour s''échauffer ?====\n\n[[http://ekotribu.org/images/Grenouille.jpg image]]\n\nCommence par personnaliser cette page en supprimant tout le texte de bienvenue pour créer ton propre texte sur ton projet. **C''est parti !!**', '', '', 'ekotribu', 'Y', 'page', ''),
(64, 'ReglesDeFormatage', '2006-09-21 12:59:40', '[[AccueiL Retour]]\n\n====== Guide des règles de formatage ======\n\nLes règles de formatage avec Wakka diffèrent légèrement des autres Wikis. (Voir par exemple [[http://c2.com/cgi/wiki?TextFormattingRules les règles de formatage de WikiWikiWeb]], le premier Wiki connu.)\nTout texte placé entre deux guillemets doubles - \" - est présenté tel que.\n\nVous pouvez effectuer vos propres tests dans le BacASable : c''est un endroit fait pour ça.\n\n=== Règles de base : ===\n \"\"**Texte en gras !** -----\"\"> **Texte en gras !**\n \"\"//Texte en italique.// -----\"\"> //Texte en italique.//\n \"\"Texte __souligné__ ! -----\"\"> Texte __souligné__ !\n \"\"##texte à espacement fixe## -----\"\"> ##texte à espacement fixe##\n \"\"%%code%%\"\"\n \"\"%%(php) PHP code%%\"\"\n\n=== Liens forcés : ===\n \"\"[[http://www.mon-site.org]]\"\"\n \"\"[[http://www.mon-site.org Mon-site]]\"\"\n \"\"[[P2P]]\"\"\n \"\"[[P2P Page sur le P2P]]\"\"\n\n=== Liens dans Wikini ===\n Pour réaliser un lien dans wikini qui apparaisse avec un style normal utilisez cette écriture :\n \"\"[[ReglesDeFormatage Règles de Formatage]]\"\"\n Le lien apparaîtra de cette manière [[ReglesDeFormatage Règles de Formatage]].\n\n=== En-têtes : ===\n \"\"====== En-tête énorme ======\"\" ====== En-tête énorme ======\n \"\"===== En-tête très gros =====\"\" ===== En-tête très gros =====\n \"\"==== En-tête gros ====\"\" ==== En-tête gros ====\n \"\"=== En-tête normal ===\"\" === En-tête normal ===\n \"\"== Petit en-tête ==\"\" == Petit en-tête ==\n\n=== Séparateur horizontal : ===\n \"\"----\"\"\n\n=== Retour de ligne forcé : ===\n \"\"---\"\"\n=== Indentation : ===\nL''indentation de textes se fait avec la touche \"TAB\". Vous pouvez aussi créer des listes à puces ou numérotées :\n \"\"- liste à puce\"\"\n \"\"1) liste numérotée (chiffres arabes)\"\"\n \"\"A) liste numérotée (capitales alphabétiques)\"\"\n \"\"a) liste numérotée (minuscules alphabétiques)\"\"\n \"\"i) liste numérotée (chiffres romains)\"\"\n\n=== Inclure une image ===\n\n - Pour inclure un lien sur une image (sans l''inclure à la page):\n \"\"[[http://wiki.tela-botanica.org/eflore/bibliotheque/images/table.gif]]\"\"(ne pas indiquer de texte alternatif).\n Ce qui donne : [[http://wiki.tela-botanica.org/eflore/bibliotheque/images/table.gif]]\n\n - Pour inclure une image sans indiquer de texte alternatif :\n \"\"[[http://wiki.tela-botanica.org/eflore/bibliotheque/images/table.gif]]\"\"(laisser 3 espaces blancs avant la fermeture des crochets).\n Ce qui donne quand l''image est trouvée : [[http://wiki.tela-botanica.org/eflore/bibliotheque/images/table.gif]]\n Quand l''image n''est pas trouvée : [[http://wiki.tela-botanica.org/eflore/bibliotheque/table.gif]]\n\n - Pour inclure une image en indiquant un texte alternatif :\n \"\"[[http://wiki.tela-botanica.org/eflore/bibliotheque/images/table.gif une puce ]]\"\"\n Ce qui donne quand l''image est trouvée : [[http://wiki.tela-botanica.org/eflore/bibliotheque/images/table.gif une puce ]]\n Quand l''image n''est pas trouvée : [[http://wiki.tela-botanica.org/eflore/bibliotheque/table.gif une puce ]]\n\n//Note :// le texte alternatif est affiché à la place de l''image s''il y a une erreur lors de l''affichage de celle-ci.\n\n=== Outils avancés : ===\n\n \"\"{{Backlinks}}\"\" permet de créer un lien vers la page précédente. \n \"\"{{Listusers}}\"\" affiche la liste des utilisateurs du site wikini.\n \"\"{{OrphanedPages}}\"\" affiche les pages orphelines du site wikini.\n \"\"{{ListPages/tree}}\"\" affiche le plan du site wikini.\n \"\"{{pageindex}}\"\" affiche un index des pages du site classées par lettres alphabétiques.\n \"\"{{ListPages}}\"\" affiche un index des pages du site avec le nom de leur propriétaire.\n \"\"{{WantedPages}}\"\" affiche la liste des pages restant à créer. Elles apparaissent dans le site avec un ? à la suite de leur nom.\n \"\"{{RecentChanges}}\"\" affiche la liste des sites faisant référence au site wikini.\n \"\"{{RecentlyCommented}}\"\" affichage de la liste des derniers commentaires.\n \"\"{{TextSearch}}\"\" recherche de texte dans les pages du site.\n\n**Note :** à cause d''un [[http://bugzilla.mozilla.org/show_bug.cgi?id=10547 bogue dans son moteur de rendu]], les listes, utilisant la touche TAB, ne fonctionnent pas (encore) sous Mozilla.\nUne astuce consiste à réaliser une tabulation dans un éditeur de texte puis de la copier. On peut ensuite coller la tabulation dans la zone de saisie de Wikini.\nVous pouvez également indenter du texte en utilisant des caractères espace au lieu de la touche \"TAB\", les exemples ci-dessus restent valables mais attention à ne pas mélanger des \"TAB\" et des espaces dans la même énumération.\n\n---', '', '', 'ekotribu', 'Y', 'page', ''),
(61, '". $root_page ."', '2006-09-21 10:53:19', '======Bienvenue sur L''Ekotribu !======\n\n----\n\n=====ICI, C''EST L''ESPACE DE TON PROJET=====\n\nEn tant que participant, tu vas pouvoir **créer tes propres pages** et ton menu pour présenter aux autres participants tes projets mais aussi expliquer, **étape par étape**, tes avancements et tes questionnements. Cet espace, **c''est à toi de le compléter**, autant de fois que tu le souhaites.\n\n\n----\n\n=====Quelques pistes pour personnaliser ton espace :=====\n\n - Double-clique sur la page pour rédiger.\n - Pour trouver les réponses à toutes tes questions, [[http://ekotribu.org/papyrus.php?site=1&menu=15 clique ici !]] \n - Pour apprendre à rédiger, mettre des photos, des liens sur l''espace projet, clique sur l''aide, dans ton menu à gauche\n\n\n----\n\n====Un petit exercice pour s''échauffer ?====\n\n[[http://ekotribu.org/images/Grenouille.jpg image]]\n\nCommence par personnaliser cette page en supprimant tout le texte de bienvenue pour créer ton propre texte sur ton projet. **C''est parti !!**', '', '', 'ekotribu', 'Y', 'page', ''),
(64, 'ReglesDeFormatage', '2006-09-21 12:59:40', '[[AccueiL Retour]]\n\n====== Guide des règles de formatage ======\n\nLes règles de formatage avec Wakka différent làgàrement des autres Wikis. (Voir par exemple [[http://c2.com/cgi/wiki?TextFormattingRules les règles de formatage de WikiWikiWeb]], le premier Wiki connu.)\nTout texte placé entre deux guillemets doubles - \" - est présenté tel que.\n\nVous pouvez effectuer vos propres tests dans le BacASable : c''est un endroit fait pour ça.\n\n=== Règles de base : ===\n \"\"**Texte en gras !** -----\"\"> **Texte en gras !**\n \"\"//Texte en italique.// -----\"\"> //Texte en italique.//\n \"\"Texte __souligné__ ! -----\"\"> Texte __souligné__ !\n \"\"##texte à espacement fixe## -----\"\"> ##texte à espacement fixe##\n \"\"%%code%%\"\"\n \"\"%%(php) PHP code%%\"\"\n\n=== Liens forcés : ===\n \"\"[[http://www.mon-site.org]]\"\"\n \"\"[[http://www.mon-site.org Mon-site]]\"\"\n \"\"[[P2P]]\"\"\n \"\"[[P2P Page sur le P2P]]\"\"\n\n=== Liens dans Wikini ===\n Pour réaliser un lien dans wikini qui apparaisse avec un style normal utilisez cette écriture :\n \"\"[[ReglesDeFormatage Règles de Formatage]]\"\"\n Le lien apparaîtra de cette manière [[ReglesDeFormatage Règles de Formatage]].\n\n=== En-têtes : ===\n \"\"====== En-tête énorme ======\"\" ====== En-tête énorme ======\n \"\"===== En-tête très gros =====\"\" ===== En-tête très gros =====\n \"\"==== En-tête gros ====\"\" ==== En-tête gros ====\n \"\"=== En-tête normal ===\"\" === En-tête normal ===\n \"\"== Petit en-tête ==\"\" == Petit en-tête ==\n\n=== Séparateur horizontal : ===\n \"\"----\"\"\n\n=== Retour de ligne forcé : ===\n \"\"---\"\"\n=== Indentation : ===\nL''indentation de textes se fait avec la touche \"TAB\". Vous pouvez aussi créer des listes à puces ou numérotées :\n \"\"- liste à puce\"\"\n \"\"1) liste numérotée (chiffres arabes)\"\"\n \"\"A) liste numérotée (capitales alphabétiques)\"\"\n \"\"a) liste numérotée (minuscules alphabétiques)\"\"\n \"\"i) liste numérotée (chiffres romains)\"\"\n\n=== Inclure une image ===\n\n - Pour inclure un lien sur une image (sans l''inclure à la page):\n \"\"[[http://wiki.tela-botanica.org/eflore/bibliotheque/images/table.gif]]\"\"(ne pas indiquer de texte alternatif).\n Ce qui donne : [[http://wiki.tela-botanica.org/eflore/bibliotheque/images/table.gif]]\n\n - Pour inclure une image sans indiquer de texte alternatif :\n \"\"[[http://wiki.tela-botanica.org/eflore/bibliotheque/images/table.gif]]\"\"(laisser 3 espaces blancs avant la fermeture des crochets).\n Ce qui donne quand l''image est trouvée : [[http://wiki.tela-botanica.org/eflore/bibliotheque/images/table.gif]]\n Quand l''image n''est pas trouvée : [[http://wiki.tela-botanica.org/eflore/bibliotheque/table.gif]]\n\n - Pour inclure une image en indiquant un texte alternatif :\n \"\"[[http://wiki.tela-botanica.org/eflore/bibliotheque/images/table.gif une puce ]]\"\"\n Ce qui donne quand l''image est trouvée : [[http://wiki.tela-botanica.org/eflore/bibliotheque/images/table.gif une puce ]]\n Quand l''image n''est pas trouvée : [[http://wiki.tela-botanica.org/eflore/bibliotheque/table.gif une puce ]]\n\n//Note :// le texte alternatif est affiché à la place de l''image s''il y a une erreur lors de l''affichage de celle-ci.\n\n=== Outils avancés : ===\n\n \"\"{{Backlinks}}\"\" permet de créer un lien vers la page précédente. \n \"\"{{Listusers}}\"\" affiche la liste des utilisateurs du site wikini.\n \"\"{{OrphanedPages}}\"\" affiche les pages orphelines du site wikini.\n \"\"{{ListPages/tree}}\"\" affiche le plan du site wikini.\n \"\"{{pageindex}}\"\" affiche un index des pages du site classées par lettres alphabétiques.\n \"\"{{ListPages}}\"\" affiche un index des pages du site avec le nom de leur propriétaire.\n \"\"{{WantedPages}}\"\" affiche la liste des pages restant à créer. Elles apparaissent dans le site avec un ? à la suite de leur nom.\n \"\"{{RecentChanges}}\"\" affiche la liste des sites faisant référence au site wikini.\n \"\"{{RecentlyCommented}}\"\" affichage de la liste des derniers commentaires.\n \"\"{{TextSearch}}\"\" recherche de texte dans les pages du site.\n\n**Note :** à cause d''un [[http://bugzilla.mozilla.org/show_bug.cgi?id=10547 bogue dans son moteur de rendu]], les listes, utilisant la touche TAB, ne fonctionnent pas (encore) sous Mozilla.\nUne astuce consiste à réaliser une tabulation dans un éditeur de texte puis de la copier. On peut ensuite coller la tabulation dans la zone de saisie de Wikini.\nVous pouvez également indenter du texte en utilisant des caractères espace au lieu de la touche \"TAB\", les exemples ci-dessus restent valables mais attention à ne pas mélanger des \"TAB\" et des espaces dans la même ànumàration.\n\n---', '', '', 'ekotribu', 'Y', 'page', ''),
(66, 'PageMenu', '2006-09-21 14:30:48', '======Menu======\n\n - [[AccueiL Page d''accueil]]\n - [[AideWikiNi Aide]]\n\n\n\n\n\n\n\n\n\n\n\n\n\n\"\"<div class=\"centrage\"><a id=\"rss\" href=\"wakka.php?wiki=DerniersChangementsRSS/xml\"><img src=\"http://ekotribu.org/images/rss.png\" alt=\"Syndication RSS\" /></a></div>\"\"', '', '', 'ekotribu', 'Y', 'page', '');
");
} // end of member function creation_tables
/trunk/client/integrateur_wikini/bibliotheque/adwi_HTML_formulaireWikini.class.php
19,7 → 19,7
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: adwi_HTML_formulaireWikini.class.php,v 1.8 2006-09-18 09:54:10 alexandre_tb Exp $
// CVS : $Id: adwi_HTML_formulaireWikini.class.php,v 1.9 2007-04-06 08:40:13 neiluj Exp $
/**
*
* Admin Wikini
32,7 → 32,7
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.8 $
*@version $Revision: 1.9 $
// +------------------------------------------------------------------------------------------------------+
*/
 
58,6 → 58,10
*/
class HTML_formulaireWikini extends HTML_QuickForm
{
var $me;
var $squelette;
/**
* Constructeur
*
73,6 → 77,7
function HTML_formulaireWikini( $formName = "", $method = "post", $action = "", $target = "_self", $attributes = "", $trackSubmit = false )
{
HTML_QuickForm::HTML_QuickForm($formName, $method, $action, $target, $attributes, $trackSubmit) ;
$this->squelette = & $this->defaultRenderer();
} // end of member function HTML_formulaireProjet
 
/**
84,7 → 89,7
function toHTML( )
{
$res = HTML_QuickForm::toHTML() ;
return $res ;
return $res ;
} // end of member function toHTML
 
/**
95,30 → 100,71
*/
function construitFormulaire($url_retour)
{
 
$this->addElement ('text', 'code_alpha_wikini', ADWI_NOM_WIKINI, array ('size' => 60)) ;
// template
$this->addElement('html',"
<script type=\"text/javascript\">
//<![CDATA[
var options = false;
function showOptions() {
el = document.getElementById(\"advanced\");
btn = document.getElementById('optionsbtn');
if (!options) {
el.style.display = 'block';
options = true;
btn.value = 'Options Avancees <<';
}else{
el.style.display = 'none';
options = false;
btn.value = 'Options Avancees >>';
}
return options;
}
//]]>
</script>");
$this->squelette->setFormTemplate("\n".'<form {attributes}>'."\n".'{content}'."\n".'</form>'."\n");
$this->squelette->setElementTemplate( '<p class="formulaire_element">'."\n".'<label>'."\n".
'{label}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">&nbsp;*</span><!-- END required -->&nbsp;'."\n".
'</label>'."\n".
'{element}'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</p>'."\n");
$this->squelette->setRequiredNoteTemplate("\n".'<p class="symbole_obligatoire">*&nbsp;:&nbsp;{requiredNote}</p>'."\n");
$this->addElement ('text', 'code_alpha_wikini', ADWI_NOM_WIKINI, array('class' => 'champs_input')) ;
$this->addRule ('code_alpha_wikini', ADWI_NOM_WIKINI_ALERTE, 'required', '', 'client') ;
$this->addRule ('code_alpha_wikini', ADWI_NOM_WIKINI_NON_VALIDE, 'lettersonly', '', 'client');
// Défault : PagePrincipale
$this->addElement ('text', 'page', ADWI_PAGE, array ('size' => 60)) ;
// UPDATE: Depuis la nouvelle fonction genere_nom_wiki() les espaces / accents sont autorisés.
// $this->addRule ('code_alpha_wikini', ADWI_NOM_WIKINI_NON_VALIDE, 'lettersonly', '', 'client');
$this->addRule ('code_alpha_wikini', ADWI_NOM_WIKINI_NON_VALIDE, 'required', '', 'client');
// Défaut : PagePrincipale
$this->addElement ('text', 'page', ADWI_PAGE, array('class' => 'champs_input')) ;
$this->addElement('button', 'Options Avanc&eacute;es >>', 'Options Avancees >>', array ("onclick" => "showOptions()",
'id' => 'optionsbtn', 'class' => 'bouton'));
$this->addElement ('html', '<div id="advanced" style="display:none;">');
// $this->addElement ('static', '', 'Configuration avanc&eacute;e : ') ;
 
$this->addElement ('static', '', 'Configuration avancée : ') ;
$this->addElement ('text', 'bdd_hote', ADWI_BDD_HOTE, array('class' => 'champs_input')) ;
$this->addElement ('text', 'bdd_nom', ADWI_BDD_NOM, array('class' => 'champs_input')) ;
$this->addElement ('text', 'bdd_utilisateur', ADWI_BDD_UTILISATEUR, array('class' => 'champs_input')) ;
$this->addElement ('password', 'bdd_mdp', ADWI_BDD_MDP, array('class' => 'champs_input')) ;
$this->addElement ('text', 'table_prefix', ADWI_TABLE_PREFIX, array('class' => 'champs_input')) ;
$this->addElement ('text', 'chemin', ADWI_CHEMIN, array('class' => 'champs_input')) ;
 
$this->addElement ('text', 'bdd_hote', ADWI_BDD_HOTE, array ('size' => 60)) ;
$this->addElement ('text', 'bdd_nom', ADWI_BDD_NOM, array ('size' => 60)) ;
$this->addElement ('text', 'bdd_utilisateur', ADWI_BDD_UTILISATEUR, array ('size' => 60)) ;
$this->addElement ('password', 'bdd_mdp', ADWI_BDD_MDP, array ('size' => 60)) ;
$this->addElement ('text', 'table_prefix', ADWI_TABLE_PREFIX, array ('size' => 60)) ;
$this->addElement ('text', 'chemin', ADWI_CHEMIN, array ('size' => 60)) ;
 
$this->setRequiredNote('<span style="color: #ff0000">*</span>'.ADWI_CHAMPS_REQUIS) ;
 
$this->addElement ('html', '</div>');
// on fait un groupe avec les boutons pour les mettres sur la même ligne
$buttons[] = &HTML_QuickForm::createElement('button', 'annuler', ADWI_ANNULER, array ("onclick" => "javascript:document.location.href='".str_replace ('&amp;', '&', $url_retour->getURL())."'",
$buttons[] = $this->createElement('button', 'annuler', ADWI_ANNULER, array ("onclick" => "javascript:document.location.href='".str_replace ('&amp;', '&', $url_retour->getURL())."'",
'id' => 'annuler', 'class' => 'bouton'));
$buttons[] = &HTML_QuickForm::createElement('submit', 'valider', ADWI_VALIDER, array ('id' => 'valider', 'class' =>'bouton'));
$buttons[] = $this->createElement('submit', 'valider', ADWI_VALIDER, array ('id' => 'valider', 'class' =>'bouton'));
$this->addGroup($buttons, null, null, '&nbsp;');
 
} // end of member function _construitFormulaire
} // end of HTML_formulaireProjet
?>
/trunk/client/integrateur_wikini/integrateur_wikini.admin.php
19,7 → 19,7
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: integrateur_wikini.admin.php,v 1.6 2006-12-01 13:23:16 florian Exp $
// CVS : $Id: integrateur_wikini.admin.php,v 1.7 2007-04-06 08:40:13 neiluj Exp $
/**
* Gestion des Wikini associé à un menu pour papyrus : lit et stocke les informations dans la
* champs gm_application_arguments de la table gen_menu
39,7 → 39,7
* Fragmenteur choix (selection uniquement)
*
* --------------------------------------
* | Nom Wiki | Page Demarrage |
* | Nom Wiki | Page Demmarage |
* --------------------------------------
* | Wikini_01 | |
* ---------------------------------------
53,7 → 53,7
//Auteur original :
*@author David Delon <david.delon@clapas.net>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.6 $ $Date: 2006-12-01 13:23:16 $
*@version $Revision: 1.7 $ $Date: 2007-04-06 08:40:13 $
// +------------------------------------------------------------------------------------------------------+
*/