Lancer une discussion
Répondre

   NPDS - Mise à niveau de l'éditeur Tiny_mce
Envoyé le  09-12-2007  à  02:18    
Freud
Freud
    503

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 ] 

Lancer une discussion
Répondre