CPG Dragonfly CMS

De wikilivois
Sauter à la navigation Sauter à la recherche

Installation

Package Gentoo: dragonflycms


#tar  jxvf Dragonfly9.x.x.0.tar.bz2
#mv  public_html famille_dev
#mysqladmin  create  famille_dev -p
#cd famille_dev
#chown apache:apache famille_dev
#chmod 600 cpg_error.log
#chmod 755  cache  modules/coppermine/albums  modules/coppermine/albums/userpics  uploads/avatars  uploads/forums 

Editer includes/config.php si nécessaire

Aller sur http://<url du site>/install.php

Modules

Downloads

Désinstaller le module Downloads (admin->modules)

Télécharger le module sur cpgnuke.com:

#tar  jxvf Downloads2.1.1.tar.bz2
#cd Downloads
#cp -Ri * /var/www/www.livois.com/famille


Activer le module (admin->modules)

Downloads_Pro

Désinstaller le module Downloads (admin->modules)

Télécharger le module sur cpgnuke.com

#unzip Downloads_Pro.zip
#cd  Downloads_Pro
#cp -Ri * /var/www/www.livois.com/famille


Activer le module (admin->modules)

Coppermine

  • Adapter anycontent.php
  modules/coppermine/anycontent.php
if (!defined('CPG_NUKE')) { die("You can't access this file directly..."); }
starttable('100%', 'Partagez!');
?><tr><td>
        <table class="tableb" width="100%" cellspacing="10">
            <tr>
                <td colspan="2" align="center" valign="middle">

                 Pour optimiser vos deposes de photos sur le site, consultez le<a href="http://www.livois.com/famille/wiki.php?title=G%C3%A9rer_les_photos"> guide dedie a ce sujet</a>.<br> C'est vraiment facile, pas long et en plus cela fait plaisir a tous le monde!!!!
                </td>
            </tr>
        </table>
</tr></td>
<?php
//list_users();
endtable();
?>


  • Changer la disposition d'un album

Éditer la table mysql cms_cpg_albums (pos et category)

  • Supprimer les accents de Photos

Mysql: UPDATE `cms_cpg_pictures` SET `filename`= replace (`filename`, 'é', 'e') WHERE `aid` =59 AND `filename` like 'Année%'

Fichiers: correction.pl

  correction.pl
#!/usr/bin/perl -w

use strict;
foreach my $file (`ls *Bâ*.jpg`)
{
  chop($file);
    my $orig=$file;
    print "0: $file ->";
    $file =~ s/é/e/g;
    $file =~ s/è/e/g;
    $file =~ s/â/a/g;
    print "1: $file\n";
    rename $orig, $file;

}


Ephémérides

Changer les dates: Éditer la table mysql cms_history

Calendar

#cd /var/www/www.livois.com/famille
#unzip CPGNuCalendar2.0.5.2.zip
#chown apache:apache * -R

  • If you have not yet installed this module :
    • you have to do manually one thing before installing this calendar the way I've presented previously : you have to add a "Moderators" category to your cms_cpg_usergroups, if possible with id=5, if not you will also have to set (after the install) the "Moderators" id in YOURCALPREFIX_groups table to the same as in cms_cpg_usergroups,
    • add the line "define('_MORECALENDAR','More in the Calendar');" to the languages/YOURLANG/main.php file.

Zina

Package Gentoo: zina

http://www.pancake.org/zina-install-12#postnuke

#webapp-config -I -h www.livois.com -d famille/modules/zina zina 0.12.10


Attention : ne fonctionne pas avec la version 1.0rc2 ...

Mediawiki

Installation

http://dragonflycms.org/Forums/viewtopic/t=17034/

Il faut suivre à la lettre les instructions du fichier INSTALL.html

  • Copier l'installation de MediaWiki dans le répertoire modules
  • Adapter le fichier LocalSettings.php dans modules/MediaWiki
  LocalSettings.php
##Insertion dans dragonflycms
$wgScriptPath       = "/famille";

$wgStylePath = "$wgScriptPath/modules/MediaWiki/skins";
$wgStyleDirectory = "$IP/skins";
$wgLogo = "$wgStylePath/common/images/wiki.png";
$wgUploadPath = "$wgScriptPath/modules/MediaWiki/images";
$wgUploadDirectory = "$IP/images";
$wgDefaultSkin = 'dragonfly';

global $MAIN_CFG;
//decommenter la ligne suivante pour passer en LEO mediawiki - que je n'ai pas réussi à faire marcher
//$wgArticlePath = ($MAIN_CFG['MediaWiki']['use_LEO']) ? "$wgScriptPath/MediaWiki/$1" : "$wgScript/$1";

require("extensions/DragonflyModule.php");


  • Attention, il faut adapter l'extension DragonflyModule.php, en rajoutant "return true;" à la fin de fnLinkHook.
  extensions/DragonflyModule.php
function fnLinkHook(&$title, &$url, $query) {
        $url = str_replace("index.php?", "wiki.php?", $url);
        $url = str_replace("index.php/", "wiki.php?title=", $url);
        return true;
}


  • 1. Copy the module files into their various directories
  wiki.php
  blocks\block-MediaWiki_Search.php
  modules\MediaWiki\cpg_inst.php
  modules\MediaWiki\replace_index.php
  modules\MediaWiki\extensions\DragonflyModule.php
  • 2. Rename MediaWiki's 'index.php' to 'windex.php'
  • 3. Rename 'replace_index.php' to 'index.php'
  • 4. Open up your Modules Admin and install 'MediaWiki'.
  • Editer le fichier .htaccess du répertoire principal.
  famille/.htaccess
RewriteBase /famille
RewriteCond %{REQUEST_URI} /MediaWiki/
RewriteRule ^MediaWiki/(.*)$ index.php?name=Mediawiki&title=$1 [L,S=7]
# RewriteRule ^index\.html /index.php
RewriteRule ^([a-zA-Z0-9_=+-]+)(/|\.html)$ index=$1 [L,S=5]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)(/|\.html)$ index=$1&file=$2 [L,S=4]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index=$1&file=$2 [L,S=3]


  • Editer le block en remplaçant df par famille :
  blocks/block-MediaWiki_Search.php
$content = '
        <form action="/famille/wiki.php?title=Special:Search" id="searchform">
        <input id="searchInput" name="search" type="text" accesskey="f" value="" />
        <input type="submit" name="go" class="searchButton" id="searchGoButton" value="Go" /> 
        <input type="submit" name="fulltext" class="searchButton" value="Search" />
</form>';


Adaptations à partir de Mediawiki 1.13

A partir de Mediawiki 1.13, le hook AutoAuthenticate ne fonctionne plus. Il faut utiliser UserLoadFromSession.

Il faut donc adapter le fichier DragonflyModule.php avec les lignes suivantes:

  DragonflyModule.php
$wgHooks['UserLoadFromSession'][] = 'fnAuthServerMagic';

function fnAuthServerMagic($user,&$result) {

        global $userinfo;
        global $wgUser;

        if (is_user()) {
                $username = $userinfo['username'];
                $realname = $userinfo['name'];
                $useremail = $userinfo['user_email'];
        } else
        {
                return true;
        }

        $user = User::newFromName($username,$validate='valid');

        if ($user->getID()==0) {
                $user->addToDatabase();
                $user->setEmail($useremail);
                $user->setRealName($realname);
                $user->setToken();
                $user->saveSettings();
        }
        else
        {
                if($user->loadFromDatabase())
                {
                        $user->saveToCache();
                        $wgUser = $user;
                        $wgUser->setCookies();
                }

        }
        if (can_admin('MediaWiki')) {
                $user->addGroup('sysop');
                $user->addGroup('bureaucrat');
        }
        return true;
}


Adaptation du style avec Mediawiki 1.25

Activer MonoBook et le définir comme style par défaut:

  Localsettings.php
    wfLoadSkin( 'MonoBook' );
    $wgDefaultSkin ="monobook";


Supprimer les menus en bas de page en les commentant:

  skins/MonoBook/MonoBookTemplate.php
<!-- CLS: commentaire Dragonfly
                <div id="column-one"<?php $this->html( 'userlangattributes' ) ?>>
                        <h2><?php $this->msg( 'navigation-heading' ) ?></h2>
                        <?php $this->cactions(); ?>
                        <div class="portlet" id="p-personal" role="navigation">
                                <h3><?php $this->msg( 'personaltools' ) ?></h3>

                                <div class="pBody">
                                        <ul<?php $this->html( 'userlangattributes' ) ?>>
                                                <?php foreach ( $this->getPersonalTools() as $key => $item ) { ?>
                                                        <?php echo $this->makeListItem( $key, $item ); ?>

                                                <?php
}
                                                ?>
                                        </ul>
                                </div>
                        </div>
                        <div class="portlet" id="p-logo" role="banner">
                                <?php
                                echo Html::element( 'a', array(
                                                'href' => $this->data['nav_urls']['mainpage']['href'],
                                                'class' => 'mw-wiki-logo',
                                                )
                                                + Linker::tooltipAndAccesskeyAttribs( 'p-logo' )
                                ); ?>

                        </div>
                        <?php
                        $this->renderPortals( $this->data['sidebar'] );
                        ?>
fin du commentaire Dragonfly
-->


Adaptation personnelles

Liste de fichiers impactés

includes/cmsinit.inc

  • Rajouter le nocache pour éviter que les pages restent en cache dans les moteurs de recherche.
 $METATAGS['robots']        = 'index, follow, nocache';

includes/nbbcode.php

  • Retirer les ":" dans les messages
// CLS retirer le : pour les messages - il faut supprimer le ":"
 $bb_codes['quote'] = '<table width="90%" cellspacing="1" cellpadding="3" border="0"  align="center"><tr>
        <td><span class="genmed"><b>'.$bbcode_common['quote'][0].':</b></span></td>
 

devient

 $bb_codes['quote'] = '<table width="90%" cellspacing="1" cellpadding="3" border="0"  align="center"><tr>
        <td><span class="genmed"><b>'.$bbcode_common['quote'][0].'</b></span></td>

includes/coppermine/functions.inc

  • Ajouter le FTP à plus d'utilisateurs que les administrateurs (l39 au lieu de l44)

L'idée est de déplacer SEARCHNEW_LNK des admins à ceux qui peuvent uploader des photos

      $dot.'<a href="'.getlink('&file=searchnew').'">' . SEARCHNEW_LNK . '</a>';

modules/coppermine/searchnew.php

  • Autoriser l'accès à la page à ceux qui peuvent déposer des images (l24)
if (!GALLERY_ADMIN_MODE && !USER_CAN_UPLOAD_PICTURES) cpg_die(_ERROR, ACCESS_DENIED, __FILE__, __LINE__);
  • Lister ses albums en plus des albums publics (l48 - rajouter USER_ID)
 $rowset = get_albumlist(USER_ID);


modules/coppermine/albmgr.php

  • Mettre les droits d'accès par défaut au groupe registered au lieu de public (l91)
 //CLS accès limité au groupe registered par défaut
 //$db->sql_query("INSERT INTO {$CONFIG['TABLE_ALBUMS']} (title, pos, category) VALUES ('$title', '$last', '$cat')");
   $db->sql_query("INSERT INTO {$CONFIG['TABLE_ALBUMS']} (title, pos, category, visibility) VALUES ('$title', '$last', '$cat', '2')",false,__FILE__, __LINE__);

modules/coppermine/modifyalb.php

  • Permet de d'avoir plus de choix de groupes pour les accès aux albums (l260 en 9.2.3.2).
//BEGINNING CLS
       $result = $db->sql_query("SELECT group_id, group_name FROM {$CONFIG['TABLE_USERGROUPS']}", false,__FILE__,__LINE__);
       while ($group = $db->sql_fetchrow($result)) {
           $options[$group['group_id']] = sprintf(GROUPP_ONLY, $group['group_name']);
       }
//END CLS


  • Les modifications sont ensuite réalisées par db_inut.php

il faut alors changer la ligne 254: if (GALLERY_ADMIN_MODE || USER_CAN_CREATE_ALBUMS) {

modules/coppermine/displayimage.php

http://dragonflycms.org/Forums/viewtopic/t=9450/start=0/

return '<span style="float:right;">
<form method="post" action="'.getlink("&file=rotateOnePic",1,1).'">
<input type="hidden" name="id" value="'.$id.'" />
<input type="hidden" name="degrees" value="270" />
<input name="submit" title="'.RIGHT_ROTATE_PIC.'" type="image" src="' . $THEME_DIR . '/images/right_rotate.gif" /></form></span>' . "\n".'
<span style="float:right;"><form method="post" action="'.getlink("&file=rotateOnePic",1,1).'">
<input type="hidden" name="id" value="'.$id.'" />
<input type="hidden" name="degrees" value="90" />
<input name="submit" title="'.LEFT_ROTATE_PIC.'" type="image" src="' . $THEME_DIR . '/images/left_rotate.gif" /></form></span>' . "\n".'

modules/MediaWiki/index.php

Changement en ligne 56 pour utiliser MediaWiki:Common.css:

  index.php
$modheader .= ' <style type="text/css">/*<![CDATA[*/
                        @import "/mediawiki/index.php?title=MediaWiki:Common.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000";
                        /*]]>*/</style>';


header.php

  • pour afficher le bon favicon.ico pour mediawiki

Remplacer la ligne (l76):

//$header .= '<link rel="shortcut icon" href="'.$BASEHREF.'favicon.ico" type="image/x-icon" />'."\n";

par :

$header .= '<link rel="shortcut icon" href="'.$MAIN_CFG['server']['path'].'favicon.ico" type="image/x-icon" />'."\n";

footer.php

  • modifier pour faire fonctionner IP_Tracker
// MS-Analysis Entry
//        require( "modules/MS_Analysis/mstrack.php" );
          require_once('modules/IP_Tracker/iptracking.inc');

language/french/main.php

  • Changer le format du message central (format de la date)
    define('_DATESTRING2','%A %d %B');
  • Changer Forums communautaires en Forums
    define('_ForumsLANG','Forums');
  • Remplacer "Téléchargement" par "Vidéos"
    //define('_DownloadsLANG','Téléchargement');
    define('_DownloadsLANG','Vidéos');
  • Divers liens
define ('_GUIDE_MAIL_LINK_NEW','Utilise ton mail @livois.com!<img border=0 src="images/new_red.gif">');
define ('_GUIDE_MAIL_LINK','Utilise ton mail @livois.com!');
define ('_PHOTOS_UPLOAD_LINK_UPDT','Dépose tes photos sur livois.com!<img border=0 src="images/update_yellow.gif">');
define ('_PHOTOS_UPLOAD_LINK','Dépose tes photos sur livois.com!');

modules/Your_Account/register.php

  • Boîte pour rajouter un message à l'inscription (l116)
 echo '<tr>
            <td class="row1"><span class="gen">Veuillez laisser un message!</span><br>Qui êtes-vous? Pourquoi voulez-vous vous inscrire... </td>
            <td class="row2"><textarea class="post" name="message" style="width:200px" rows=6></textarea><br></td></tr>';
  • Récupérer le message dans la base (l215 & l227)
$user_message = $fields['message'];
$result = $db->sql_query("INSERT INTO ".$user_prefix."_users_temp (username, user_email, user_message, user_password, user_regdate, check_num, time".$fieldlist.") VALUES ('$username', '$user_email', '$user_message', '$new_password', '$user_regdate', '$check_num', $user_regdate $valuelist)");
  • Créer le champ user_message dans la table cms_users_temp

blocks/block-Forums.php

Pour afficher la dernière modification et non la dernière création ... $result = $db->sql_query("SELECT t.forum_id, topic_id, topic_title, auth_view, auth_read FROM (".$prefix."_bbtopics AS t, ".$prefix."_bbforums AS f) WHERE f.forum_id=t.forum_id ORDER BY topic_last_post_id DESC LIMIT 10");

Page par page

  1. index.php
  2. includes/cmsinit.inc
    1. classes/methods.php
    2. db/db.php
    3. classes/cpg_cache.php
    4. functions/linking.php
    5. classes/time.php
    6. Récupération des variables $MAIN_CFG à partir de la table cms_config_custom
    7. functions/language.php
    8. classes/security.php
    9. includes/gfxchk.php
    10. classes/blocks.php
    11. classes/menu.php
  3. includes/nbbcode.php (smilies)
  4. includes/meta.php - Metatags par modules
  5. footer.php

Administration

Sauvegarde/Restauration

La sauvegarde est réalisée sur le serveur par script. On obtient les fichiers suivants:

  • userpics.tar
  • www.tbz2
  • mysql
#tar  jxvf  www.tbz2
#tar  xvf userpics.tar
#mv  var/www/www.livois.com/famille /var/www/
#chown apache:apache  /var/www/famille/ -R
#mv mysql/dragonfly /var/lib/mysql
#chown mysql:mysql /var/lib/mysql/dragonfly/ -R
# rm -rf /var/www/famille/cache

Il faudra peut être désactiver le mode LEO (admin->Préférences ->Activate Link Engine Optimization (LEO))

Mise à jour

Installation en test de la mise à jour

Mise en place de la base de données de test

 #mysqlhotcopy -p *** dragonfly dragonfly_test

ou

#mysql -p
#CREATE DATABASE dragonfly_test
#cp -pr /var/lib/mysql/dragonfly/*  /var/lib/mysql/dragonfly_test/

Mise en place du site de test

#wget Dragonfly-xxx.tbz2
#tar jxvf Dragonfly-xxx.tbz2
#cp -rf public_html/* <www_path>/famille_test
#chown apache:apache  <www_path>/famille_test -R
#cd  <www_path>/famille_test

Installer les modules supplémentaires

  • DownloadsPro
  • Blogs
  • WeblinksPro
  • Content (Enhanced)
  • CPGNUCalendar
  • Zina


#vi config.php (indiquer les paramètres  de la base de données)
#rm install.php install -rf
#rm cache/*


Editer la table cms_config_custom de la base dragonfly_test

cfg_name  	 cfg_field  	 cfg_value
cookie 	path 	/famille_test/
server  	path  	/famille_test/

Copie des photos/fichiers du serveur d'origine au serveur de test

#cp -R famille/modules/coppermine/albums/userpics/* famille_test/modules/coppermine/albums/userpics/
#cp -R famille/images/avatars/famille/ famille_test/images/avatars/
#cp -R famille/images/topics/ famille_test/images/ 
#cp -R famille/uploads/ famille_test/
#mv famille_test/modules/coppermine/anycontent.php famille_test/modules/coppermine/anycontent-original.php
#cp    famille/modules/coppermine/anycontent.php famille_test/modules/coppermine/anycontent.php
#cp    famille/images/logo.gif famille_test/images/logo.gif
#cp -R famille/images/content/ famille_test/images/
#cp -Ru famille/themes/* famille_test/themes/
#cp famille/blocks/last_seen_1 famille_test/blocks
#cp -u famille/images/blocks/CPG_Main_Menu/* famille_test/images/blocks/CPG_Main_Menu/ 
#rm famille_test/favicon.ico

Gestion de la langue et des accents

Si le package de langue n'existe pas encore ...

#cd <www_path>
#cp -pr famille/language/french famille_test/language/ 
#chown apache:apache  <www_path>/famille_test -R

Ajouter les informations de temps à la fin de

  language/french/main.php
//time
$LNG = array('_time' => array(
'l' => array('dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'),
'D' => array('dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam'),
'F' => array(1=>'janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'),
'M' => array(1=>'jan', 'fév', 'mar', 'avr', 'mai', 'juin', 'juil', 'août', 'sept', 'oct', 'nov', 'déc'),
));
$LNG['_time']['l'][7] =& $LNG['_time']['l'][0];
$LNG['_time']['D'][7] =& $LNG['_time']['D'][0];


Editer le thème Azul :

  themes/Azul/theme.php
        //'S_DATE'     => strftime('%d %B %Y', gmtime()),
        'S_DATE'       => formatDateTime(gmtime(),'%d %B %Y'),


Pour gérer les accents dans les textes, éditer includes/config.php :

  includes/config.php
define('DB_CHARSET', 'latin1'); 


ou transformer la base de latin1 en utf8 : http://dragonflycms.org/FAQ/cat=14.html

Changements de la version précédente

Attention aux changements manuels (cf § sur le sujet)

Passage de la version de test en version de prod

#mv famille_test famille
#editer include/config.php

#mysqlhotcopy -p **** dragonfly dragonfly_backup
#mysql -p => DROP DATABASE dragonfly;
#mysqlhotcopy -p **** dragonfly_test dragonfly

Editer la table cms_config_custom de la base dragonfly

cfg_name  	 cfg_field  	 cfg_value
cookie 	path 	/famille/
server  	path  	/famille/ 


#rm cache/*

Spécificités de versions

Dragonfly 9.0.5.0

Garder les modules de droite: Admin->Modules-

Pour éditer le module central et mettre les blocs à « les deux » (et non gauche)

Dragonfly 9.2.1

Attention, il faut mettre à jour les thèmes:

http://dragonflycms.org/Forums/viewtopic/t=20688.html

Dragonfly 9.2.3.2

Apporte la compatibilité avec PHP 5.3


Copyright

© 2006-2016 Christophe de Livois

Tête de GNU Vous avez l'autorisation de copier, distribuer et/ou modifier ce document suivant les termes de la GNU Free Documentation License, Version 1.2 ou n'importe quelle version ultérieure publiée par la Free Software Foundation; sans section invariante, sans page de garde, sans entête et sans page finale. Pour plus d'informations consulter le site de l'APRIL.