Notes importantes :
Veillez à conserver une copie originale des fichiers et dossiers qui seront modifiés. Vous pourrez ainsi en cas de difficulté revenir aisément à l'ancienne version.
Certains scripts seront fournis sur cette page. Je vous conseil cependant de suivre ce tuto avec les fichiers originaux et de copier/coller ces derniers à ceux du tutorial.
Téléchargement de la version Béta de Sable Evolution
Article de référence du site d'NPDS :
Sable Evolution b1
Téléchargement :
sable-evolution-b1.rar
Mise à niveau
1) Editeur

Vous devez commencer par remplacer votre dossier
editeur par celui de la nouvelle version. Copiez-le intégralement.
2) header.php

Ajoutez à cette fonction la variable
$tiny_mce_init comme suit :

Remplacez la condition
if ($tiny_mce) par
if ($tiny_mce_init) pour le lancement de la fonction
aff_editeur() :

Changez le mode d'affectation de la variable
$pages_ref comme suit :
// Made the title and pdst value from the pages.php config file
settype($PAGES, array());
global $pdst, $Titlesitename, $PHP_SELF, $REQUEST_URI;
require_once("themes/pages.php");
// ancien
//$pages_ref=basename($PHP_SELF);
// nouveau
$page_uri=split("[&?]",$REQUEST_URI);
$Npage_uri=count($page_uri);
$pages_ref=basename($page_uri[0]);

A l'appel de la fonction
head(); situé au bas de la page, ajoutez-lui la variable
$tiny_mce_ini puis ajouter juste devant le code qui suit :
/* version Evolution */
// Initialisation de TinyMce
global $tiny_mce,$tiny_mce_theme;
if ($tiny_mce) {
if ($PAGES[$pages_ref][TinyMce]) {
$tiny_mce_init=true;
$tiny_mce_theme=$PAGES[$pages_ref][TinyMce-theme];
} else {
$tiny_mce_init=false;
$tiny_mce=false;
}
} else {
$tiny_mce_init=false;
}
Voici ce que vous devez obtenir :
3) mainfile.php

Remplacez intégralement la fonction
aff_editeur() par la nouvelle version :
function aff_editeur($Xzone, $Xactiv) {
global $language, $tiny_mce, $tiny_mce_theme, $user;
if ($language=="french") $tiny_lang="fr";
if ($language=="english") $tiny_lang="en";
if ($language=="chinese") $tiny_lang="zh_tw_utf8";
if ($language=="spanish") $tiny_lang="es";
if ($tiny_mce) {
static $tmp_Xzone;
if ($Xzone=="tiny_mce") {
if ($Xactiv=="end") {
if (substr($tmp_Xzone,-1)==",")
$tmp_Xzone=substr_replace($tmp_Xzone,"",-1);
if ($tmp_Xzone) {
if (isset($user)) {
global $cookie;
if ($cookie[9]=="")
$tmp_theme=$Default_Theme;
else
$tmp_theme=$cookie[9];
} else {
$tmp_theme=$Default_Theme;
}
$tmp="<script language=\"!!!!!!!!!!javascript!!!!!!!!!!\" type=\"text/!!!!!!!!!!javascript!!!!!!!!!!\">\n";
$tmp.="tinyMCE.init({\n";
$tmp.="theme : \"advanced\",\n";
$tmp.="mode : \"exact\",\n";
$tmp.="language : \"".$tiny_lang."\",\n";
$tmp.="current_theme : \"".$tmp_theme."\",\n";
$tmp.="elements : \"".$tmp_Xzone."\",\n";
!!!!!!!!!!include!!!!!!!!!! ("editeur/tiny_mce/themes/advanced/npds.conf.php");
$tmp.="});\n";
$tmp.="</script>\n";
}
} else {
$tmp.="<script language=\"!!!!!!!!!!javascript!!!!!!!!!!\" type=\"text/!!!!!!!!!!javascript!!!!!!!!!!\" src=\"editeur/tiny_mce/tiny_mce.js\"></script>\n";
}
} else {
if ($Xzone!="custom") {
$tmp_Xzone.=$Xzone.",";
} else {
$tmp_Xzone.=$Xactiv.",";
}
}
} else {
static $MSIE, $img_ibid;
if (!$MSIE) {
if (strstr(getenv("HTTP_USER_AGENT"),"MSIE")) {$MSIE=true;}
}
if (!$img_ibid) {
$img_ibid=theme_image("editeur/edit.gif");
}
if ($MSIE) {
if ($Xzone!="custom")
$tmp=" <a href=\"!!!!!!!!!!javascript!!!!!!!!!!:\" !!!!!!!!!!onclick!!!!!!!!!!=\"window.open('editeur/editor.htm?$Xzone&a ctiv=$Xactiv', 'win1', 'width=660, height=460, resizable=yes');\">";
else
$tmp=" <a href=\"!!!!!!!!!!javascript!!!!!!!!!!:\" !!!!!!!!!!onclick!!!!!!!!!!=\"window.open('editeur/editor.htm?$Xactiv', 'win1', 'width=660, height=460, resizable=yes');\">";
if ($img_ibid) {
$tmp.="<img alt=\"".translate("Editor")."\" src=".$img_ibid." border=\"0\" align=\"middle\" />";
} else {
$tmp.="<span class=\"rouge\">[".translate("Editor")."]</ span>";
}
$tmp.="</a>";
} else {
$tmp="";
}
}
return ($tmp);
}

Ajoutez le fonctions suivantes :
#autodoc keyED($txt,$encrypt_key) : Composant des fonctions encrypt et decrypt
function keyED($txt,$encrypt_key) {
$encrypt_key = md5($encrypt_key);
$ctr=0;
$tmp = "";
for ($i=0;$i<strlen($txt);$i++) {
if ($ctr==strlen($encrypt_key) ) $ctr=0;
$tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
$ctr++;
}
return $tmp;
}
#autodoc encrypt($txt) : retourne une chaine encryptée en utilisant la valeur de $NPDS_Key
function encrypt($txt) {
global $NPDS_Key;
return (encryptK($txt,$NPDS_key));
}
#autodoc encryptK($txt, $C_key) : retourne une chaine encryptée en utilisant la clef : $C_key
function encryptK($txt, $C_key) {
srand( (double)microtime()*1000000);
$encrypt_key = md5(rand(0,32000) );
$ctr=0;
$tmp = "";
for ($i=0;$i<strlen($txt);$i++) {
if ($ctr==strlen($encrypt_key) ) $ctr=0;
$tmp.= substr($encrypt_key,$ctr,1) .
(substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1) );
$ctr++;
}
return base_64_encode(keyED($tmp,$C_key));
}
#autodoc decrypt($txt) : retourne une chaine décryptée en utilisant la valeur de $NPDS_Key
function decrypt($txt) {
global $NPDS_Key;
return (decryptK($txt, $NPDS_key));
}
#autodoc decryptK($txt, $C_key) : retourne une décryptée en utilisant la clef de $C_Key
function decryptK($txt, $C_key) {
$txt = keyED(base_64_decode($txt),$C_key);
$tmp = "";
for ($i=0;$i<strlen($txt);$i++) {
$md5 = substr($txt,$i,1);
$i++;
$tmp.= (substr($txt,$i,1) ^ $md5);
}
return ($tmp);
}
4) themes/pages.php

Ajouter au groupe "submit" les 2 lignes suivantes :
$PAGES['submit.php'][TinyMce]=1;
$PAGES['submit.php'][TinyMce-theme]="full";
5) modules/f-manager
Copiez le dossier f-manager de la version Evolution et ajoutez le dans votre dossier
modules :
6) themes/"votre thème"/html/modules

Idem que tout à l'heure. Descendez cette fois jusqu'au dossier
html du thème
Permanent-Double-Side par exemple, et ajouter-le dans votre thème par défaut (Permanent-Double-Side).
7) images/uploadl/file_types

Remplacez votre dossier
file_types par celui de la version Evolution.
8) getfile.php

En fin, éditez le fichier
getfile.php pour y ajouter ...
après le 1er switch($apli) { :
case "f-manager":
$fma=rawurldecode(decrypt($att_id));
$fma=explode("#fma#",$fma);
$att_id=decrypt($fma[0]);
$att_name=decrypt($fma[1]);
après le second case "getfile": ...... break; :
case "f-manager";
$fic="$att_id/$att_name";
break;
Comme suit :
Personnalisation
Nous allons voir comment par la même occasion ajouter un logo, changer les images des boutons et en supprimer, comme le choix de la langue si votre site n'est destiné qu'à des francophones par exemple.
Voici à quoi il pourrait ressembler :
Il vous faut bien sûr avoir déjà créé un mini logo et avoir des images de remplacement pour les boutons.

Suivez ce chemin pour y ajouter vos images
(logo y compris):
editeur\tiny_mce\plugins\npds\images
Vous y trouverez donc les boutons correspondant aux outils personnalisés d'NPDS.

Remontez d'un dossier puis ouvrez
editor_plugin.js
C'est ici que nous allons affecter les noms de nos nouveaux icônes :
*Pour insérer mon logo, j'ai ajouté le
case "npds":

Ajout du logo et suppression des boutons qui ne vous intéressent pas :
Ouvrez le fichier
npds.conf.php dans
editeur\tiny_mce\themes\advanced.
Allez jusqu'à l'extremité de la ligne commencant par "
$tmp.="theme_advanced_buttons3 : ..."
Les outils de NPDS sont tous ceux qui suivent "
...,visualaid,separator,".
Vous pouvez donc en changer l'ordre ou en supprimer.
Pour ajouter votre logo, insérez juste le nom donné à l'étape précédente séparé d'une virgule.
Les lignes buttons1, buttons2 et buttons3 déterminent l'ordre d'affichage de tous les outils de l'éditeur. Vous pouvez donc tout aussi bien en supprimer davantage et ramener le tout sur 2 lignes (buttons1, buttons2).
[ Message modifié par Freud le 21-04-2008 à 00:18 ]