Pour les impatients, il suffit de désarchiver le fichier ManageFile-v0.3.tar.gz dans le répertoire principal de dotclear. Puis de configurer le nom du répertoire des fichiers dans blogconf.

Attention si vous avez déjà fait des modifications sur le coeur de dotclear, elles seront supprimées étant donnée que les fichiers inclus dans l'archive ont été modifiés immmédiatement après l'installation de dotclear 1.2.1.

Pour ceux qui ont un peu plus de courage et qui veulent comprendre comment ca marche, voici la procédure à suivre :

Copie des nouveaux fichiers

Modification des fichiers originaux

  • Editer le fichier /ecrire/index.php.

Ajouter après la ligne 46 :

__('Manage images'),'images.php','images/ico_image.png',false);

les lignes :

$mySubMenu->addItem(
  __('Manage files'),'files.php','images/ico_file.png',false);
  • Editer le fichier /ecrire/poster.php.

Ajouter après la ligne 428 :

tb.btImg('".str_replace("'","\'",__('Internal image'))."','images-popup.php');

la ligne :

tb.btFile('".str_replace("'","\'",__('Internal file'))."','files-popup.php');
  • Editer le fichier ecrire/js/toolbar.js.

Après la ligne 40 :

this.insImg             = function() {}

ajouter les lignes :

this.btFile             = function() {}
this.insFile            = function() {}

Après la ligne 318 :

}

et avant la ligne 320 :

// methods

Insérer les lignes :

function btFile(label,url)
{
  addButton(img_path+'bt_file.png',label,
  function() {
    popup(url);
  });
}

function insFile(src, msg_name)
{
  if (document.all) {
    var name = window.prompt(msg_name, '');
    textarea.focus();
    if (getFormat() == 'wiki') {
      textarea.value = textarea.value+'['+name+'|'+src+']';
    } else {
      textarea.value = textarea.value+'<a href ="'+src+'">'+name+'</a>"';
    }
  } else {
    encloseSelection('','',
    function() {
      var name = window.prompt(msg_name, '');
      if (!name) { name = src }
      if (getFormat() == 'wiki') {
        return '['+name+'|'+src+']';
      } else {
        return '<a href="'+src+'">'+name+'</a>';
      }
    });
  }
}

Après la ligne 369 :

this.insImg             = insImg;

Ajouter les lignes :

this.btFile             = btFile;
this.insFile            = insFile;
  • Editer le fichier /inc/classes/class.filemanager.php

Ajouter :

# Types de fichier office (Word,Excel,Powerpoint,Acrobat,Openoffice)
$this->_types['office'] = '.doc|.xls|.pps|.ppt|.pdf|.sxw|.sxc|.sxi';

après la ligne 39 :

$this->_types['txt'] = '.htm|.html|.php|.php3|.inc|.xml|.txt|.xhtml|.css';

Ajouter :

function isOffice()
{
  return ($this->__getType($this->root.$this->base_path) == 'office');
}

après les lignes 177-178 :

return ($this->__getType($this->root.$this->base_path) == 'txt');
  }

Ajouter :

} elseif (preg_match('/('.$this->types['office'].')$/i',basename($f)))
{
  return 'office';

après les lignes 268-269 :

} elseif (preg_match('/('.$this->_types['txt'].')$/i',basename($f))) {
  return 'txt';

Création du répertoire des fichiers

  • Créer le répertoire /files/
  • Donner lui les droits de l'utilisateur adéquates

Modification des fichiers de configurations

  • Editer le fichier /inc/post_config.php

Rajouter à la fin du fichier avant le ?> final :

#dc_files_root
if (!defined('dc_files_path')) {
          define('dc_files_root',$_SERVER['DOCUMENT_ROOT'].'/'.dc_files_url);
} elseif (strpos(dc_files_path,'/') === 0) {
          define('dc_files_root',dc_files_path);
} else {
          define('dc_files_root',$_SERVER['DOCUMENT_ROOT'].'/'.dc_files_path);
}
  • Editer le fichier ecrire/tools/blogconf/index.php

Ajouter la ligne :

$p_files_url = trim($_POST['p_files_url']);

après la ligne 43 :

$p_img_url = trim($_POST['p_img_url']);

Ajouter les lignes :

if ($p_files_url == '') {
  $arry_err[] = __('You must give an files location');
}

après les lignes 73-74 :

  $arry_err[] = __('You must give an images location');
}

Ajouter les lignes :

$p_files_url = preg_replace('|/+$|','',$p_files_url);
$p_files_url = preg_replace('|^/+|','',$p_files_url);
$p_files_url = '/'.$p_files_url.'/';

après la ligne 101 :

$p_img_url = '/'.$p_img_url.'/';

Ajouter :

$objIni->editVar('dc_files_url',$p_files_url);

après la ligne 111 :

$objIni->editVar('dc_img_url',$p_img_url);

Ajouter les lignes :

'<p class="field"><label for="p_files_url"><strong>'.__('Files location').'&nbsp;:</strong> '.
'('.sprintf(__('From %s'),'http://'.$_SERVER['HTTP_HOST']).') '.
helpLink('index&amp;plugin=blogconf','files_url').'</label>'.
form::field('p_files_url',40,'',htmlspecialchars(dc_files_url)).'</p>'.

après la ligne 234 :

form::field('p_img_url',40,'',htmlspecialchars(dc_img_url)).'</p>'.

Modifier les fichiers de langues[1]

Il ne vous reste plus qu'à aller dans l'outil blogconf et de configurer l'emplacement des fichiers[2]. Et voilà, maintenant vous pouvez insérer des fichiers dans vos billets.

Notes

[1] A venir! Cela fonctionne mais tout est marqué en anglais

[2] Si vous avez suivi mes explications à la lettre,il devrait s'agir de /dotclear/files/