logo.png

CONTENT

WIWI

PICAL

DOCMANAGER

NEWS

XLANGUAGES

XCGALLERY

Home Up


Contents



1 Installation

# su - xoops
$ cd
$ wget http://prdownloads.sourceforge.net/xoops/xoops2-mod_cjaycontent_v3_ie.zip?download
$ unzip xoops2-mod_cjaycontent_v3_ie.zip
$ mv xoops2-mod_cjaycontent_v3_ie/html/modules/cjaycontent/ htdocs/modules/
$ rm -fr $ rm -fr xoops2-mod_cjaycontent_v3_ie*

^D
# chown -R www-data: htdocs/modules/cjaycontent

Connectez vous en tant qu'admin puis choisissez Administration->Modules->Install.


2 Editeur FCK

Choisir l'éditeur wisiwing. L'éditeur FCKEDITOR intégré au module content contient un bug. Il faut s'y prendre à 2 reprise pour ajouter un lien sous FIRERFOX. La solution consiste à remplacer le repertoire htdocs/modules/content/admin/fckeditor par un nouveau dossier téléchargé ici.

Répertoire des uploads :

modules/content/content/admin/fckeditor/editor/filemanager/upload/php/config.php:
 $Config['UserFilesPath'] = '/website/modules/content/images/local/' ;

modules/content/admin/fckeditor/editor/filemanager/upload/php/config.php:
 $Config['UserFilesPath'] = '/website/modules/content/images/local/' ;

modules/content/admin/fckeditor/editor/filemanager/browser/default/connectors/php/config.php:
 $Config['UserFilesPath'] = '/website/modules/content/images/local/' ;
 $Config['UserFilesAbsolutePath'] = '/www/iasext/website/html/modules/content/images/local/' ;


3 Recherche

Afin que la recherche générale de XOOPS renvoie un lien il faut remplir le titre du lien (ou 'link title') de chacune des pages crées. Sinon, le liens n'est pas clicable puisqu'il n'aparaît pas. Voici une solution de contournement : htdocs/search.php:184

// debut ajout nroche
if ( $results[$i]['title'] == ""){ // ie: le champ editable 'Link Title' pour le module content
   $results[$i]['title'] = "-->";
}
// fin ajout nroche
echo "<b><a href='".$results[$i]['link']."'>".$myts->makeTboxData4Show($results[$i]['title'])."</a></b><br />\n";


4 Ménage

Vider le répertoire d'upload :

$ rm htdocs/modules/content/content/*


5 Cloner

  • Copier le répertoire htdocs/modules/content en le renomant
    $ cp -fr content _INT_content
    $ cd _INT_content
    
  • Modifier le logo.
    $ gimp images/logo.gif
    


5.1 Les variables


5.1.1 Théorie

Les définitions de language (modinfo.php). Vous devrez renommer toutes les définitions de langage du fichier modinfo.php, pour éviter notamment qu'elles soient déclarées 2 fois et génèrent des Warning en mode debug php. En principe, les autres fichiers de langues n'ont pas besoin d'être modifiés, mais vous pouvez le faire pour des questions de cohérence. Pas très facile de décrire une méthode, tout dépendra du module. Si toutes les variables sont préfixées (ex) _MI_NEWS_ faites un remplacement global. NB : si vous ne réalisez pas entièrement cette partie, à la fin du clonage, installez et lancez le module en mode debug php: corrigez les defines générant un warning.


5.1.2 Pratique

$ find . -exec grep -n '\(_MIC_\|_C_\)' /dev/null {} \;  | cut -d: -f1,2
$ find . -type f -exec sed -i -e 's!\(_MIC_\|_C_\)!_INT\1!g' {} \;


5.2 Répertoire


5.2.1 Théorie

Dans xoops_version changer la valeur du 'dirname' :
$modversion['dirname'] = ...
Recherchez et remplacez dans tous les fichiers les références au répertoire: remplacez '/modules/.../ NB : Pour certains modules utilisant systématiquement '\$xoopsModule->getVar('dirname')' cette dernière opération ne sera pas nécessaire.


5.2.2 Pratique

$ find . -exec grep -n '/modules/content/' {} /dev/null \; | cut -d: -f1,2 | lp
$ find . -type f -exec sed -i -e 's!/modules/content!/modules/_INT_content/!g' {} \;

$ find language -exec grep -n 'define("_INT_MIC_CONTENT_NAME",".*");' {} /dev/null \;
$ find language -type f -exec sed -i -e \
  's!\(define("_INT_MIC_CONTENT_NAME",\)".*");!\1"INT Content");!g' {} \;

$ find language -exec grep -n 'define("_INT_MIC_DIR_NAME", ".*");' {} /dev/null \;
$ find language -type f -exec sed -i -e \
  's!\(define("_INT_MIC_DIR_NAME",\) ".*");!\1 "_INT_content");!g' {} \;


5.3 Les tables


5.3.1 Théorie

Editer le fichier mysql.sql du répertoire sql et renommez les tables pour chaque instruction sql.

CREATE TABLE ...
Dans xoops_version modifiez les références aux tables:
$modversion['tables'][0] = ...
Recherchez et remplacez dans tous les fichiers les références aux tables. Si vous faites un remplacement global, faites-le avec prefix('nomdelatable'). Dans ce cas, faites la recherche plusieurs fois: avec simples et avec doubles quotes, avec et sans espace : remplacez prefix('stories'), prefix("stories"), prefix( 'stories' ), ... par prefix('stories02') NB : certains modules ont un fichier include ead_config.php (ou équivalent) dans lequel les noms des tables sont assignés à des variables. Dans ce cas, seul ce fichier est à modifier.


5.3.2 Pratique

Modifier le nom de la table dans le fichier sql/mysql.sql +

$ find . -exec grep -n 'prefix[("'\'' ]*content["'\'']' {} /dev/null \;  | cut -d: -f1,2 | lp
$ find . -type f -exec sed -i -e 's!prefix[("'\'' ]*content["'\'']!prefix('\''_INT_content'\''!g' {} \;

$ find language -exec grep -n 'define("_INT_MIC_CONTENT_PREFIX", ".*");' {} /dev/null \;
$ find language -type f -exec sed -i -e \
  's!\(define("_INT_MIC_CONTENT_PREFIX",\) ".*");!\1 "_INT_content");!g' {} \;


5.4 Fonction recherche


5.4.1 Théorie

Dans xoops_version modifiez le nom de la fonction uniquement

$modversion['search']['func'] = ...
Editez le fichier includesearch.inc.php et modifiez le nom de la fonction
function ...($queryarray, $andor, $limit, $offset, $userid)


5.4.2 Pratique

$ find . -exec grep -n 'content_search' /dev/null {} \;  | cut -d: -f1,2
$ find . -type f -exec sed -i -e 's!content_search!_INT_content_search!g' {} \;


5.5 Les blocs


5.5.1 Théorie

Dans xoops_version modifiez pour chaque bloc le nom des fonctions show et edit.

 
$modversion['blocks'][?]['show_func'] = ...
$modversion['blocks'][?]['edit_func'] = ...

Editez chaque fichier du répertoire blocks référencé par $modversion['blocks'][]['file'] = et modifiez le nom des fonctions.

function ..._show($options) {
function ..._edit($options) {

Non indispensable, mais préférable, changez également les noms des fichiers dans xoops_version, sans oublier de renommer correctement ceux-ci dans le répertoire blocks.

$modversion['blocks'][3]['file'] = ...;


5.5.2 Pratique

  1. $ find . -exec \
      grep -n "$modversion\['blocks'\]\[.*]\['\(show\|edit\)_func'\] = \"\(.*\)\"" \
      /dev/null {} \;
    
    $ sed -i -e "s\
      %\$modversion\['blocks'\]\[\(.*\)]\['\(show\|edit\)_func'\] = \"\(.*\)\"\
      %\$modversion['blocks'][\1]['\2_func'] = \"_INT_\3\"\
      %" xoops_version.php
    
  2. $ find blocks/* -exec sed -i -e 's!function \(content_block_nav\)!function _INT_\1!' {} \;
    $ find blocks/* -exec sed -i -e 's!function \(site_block_nav\)!function _INT_\1!' {} \;
    $ find blocks/* -exec sed -i -e 's!function \(site_block_dhtml_nav\)!function _INT_\1!' {} \;
    $ find blocks/* -exec sed -i -e 's!function \(hor_site_block_dhtml_nav\)!function _INT_\1!' {} \;
    
  3. $ find . -exec grep -n "$modversion\['blocks'\]\[.*]\['file'\] = \"\(.*\)\"" /dev/null {} \;
    
    $ sed -i -e "s\
      %\$modversion\['blocks'\]\[\(.*\)]\['file'\] = \"\(.*\)\"\
      %\$modversion['blocks'][\1]['file'] = \"_INT_\2\"\
      %" xoops_version.php
    
    $ cd blocks 
    $ for f in *; do mv $f _INT_$f; done 
    $ cd ..
    


5.6 Les commentaires


5.6.1 Théorie

Dans xoops_version modifiez le nom des fonctions approve et update:

$modversion['comments']['callbackFile'] = ...
$modversion['comments']['callback']['approve'] = ...
$modversion['comments']['callback']['update'] = ...


5.6.2 Pratique

Rien à faire.

$ grep -R callback *


5.7 Les notifications


5.7.1 Théorie

Dans xoops_version modifiez le nom de la fonction look_up:

$modversion['notification']['lookup_func'] = ...


5.7.2 Pratique

Rien à faire.

$ grep -R notification *


5.8 Les templates


5.8.1 Théorie

Non indispensable, mais préférable, changez également les noms des fichiers dans xoops_version, sans oublier de renommer correctement ceux-ci dans le répertoire templates

$modversion['templates'][?]['file'] = ...


5.8.2 Pratique

1 ligne à changer dans xoops_version + renommer le fichier concerné.

$ mv ct_index.html _INT_ct_index.html


5.9 Pour finir


5.9.1 Théorie

Allez dans l'administration des modules: votre clone doit apparaitre sans message d'erreur. Si c'est le cas, inutile d'aller plus loin ! Installez votre clone. Si vous avez des messages d'erreur à l'install, notez les pour corriger. Lancez votre clone. Activez le mode debug php pour corriger les erreurs. Testez toutes les configurations de blocks et fonctionnalités (recherche, commentaires, notification). Ces tests doivent être réalisés dans les 2 cas de figure: - avec la version originale installée, pour détecter des conflits ou interactions - sans la version originale installée (répertoire supprimé, ou temporairement renommé) pour vérifier que votre clone est autonome, et que certains fichiers ne pointent pas sur ceux d'origine.


5.9.2 Pratique

  • Si le module n'est pas affiché par le gestionnaire de module alors débuguer les fichiers :
    1. htdocs/modules/system/admin/modulesadmin/modulesadmin.php
    2. htdocs/kernel/module.php
    3. htdocs/modules/_INT_content/xoops_version.php
  • Ecris dans la table du module original Variable _INT_MIC_CONTENT_PREFIX non modifiée.
  • FCKEditor ne fonctionne pas. Mauvais remplacement des chemins /modules/content.

RESTE A TESTER LES MENUS !

Recopier le répertoire dans le répertoire modules
Dans l'admin des modules, installer le nouveau module (vérifier qu'il 
n'y a pas d'erreurs)
Dans l'admin des template, theme webias, cliquer sur generate
Dans l'admin des blocks, repérer le DHTML horizontal menu : l' éditer : 
       block type : center center
       weight 0
       visible yes
       visible : pour le module content_xxx correspondant
Dans l'admin des groupes donner les autorisations
       Module access à tous les utilisateurs anonymes
      Block DHTML horizontal à tous les utilisateurs anonymes
        Module admin au groupe en charge


Dans les préférences du nouveau module :
        Use WYSIWYG Editor? yes
        Multiple Menus yes
        Comment Rules Disable comments

Créer un premier niveau de menu pour vérifier le fonctionnement : Menu : 
blabla (le rendre visible et submenu)

Home Up

This document is also available in PDF and PostScript format.



2016-02-15