CPG Dragonfly CMS
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
<licode file=modules/coppermine/anycontent.php> if (!defined('CPG_NUKE')) { die("You can't access this file directly..."); } starttable('100%', 'Partagez!');
?>
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>. |
<?php //list_users(); endtable(); ?> </licode>
- 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 <licode file=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; } </licode>
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
<licode file=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"); </licode>
- Attention, il faut adapter l'extension DragonflyModule.php, en rajoutant "return true;" à la fin de fnLinkHook.
<licode file=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;
} </licode>
- 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.
<licode file=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] </licode>
- Editer le block en remplaçant df par famille :
<licode file=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>';
</licode>
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: <licode file=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;
}
</licode>
Adaptation du style avec Mediawiki 1.25
Activer MonoBook et le définir comme style par défaut: <licode file=Localsettings.php>
wfLoadSkin( 'MonoBook' ); $wgDefaultSkin ="monobook";
</licode>
Supprimer les menus en bas de page en les commentant: <licode file=skins/MonoBook/MonoBookTemplate.php> </licode>
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: <licode file=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>';
</licode>
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";
- 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
- index.php
- includes/cmsinit.inc
- classes/methods.php
- db/db.php
- classes/cpg_cache.php
- functions/linking.php
- classes/time.php
- Récupération des variables $MAIN_CFG à partir de la table cms_config_custom
- functions/language.php
- classes/security.php
- includes/gfxchk.php
- classes/blocks.php
- classes/menu.php
- includes/nbbcode.php (smilies)
- includes/meta.php - Metatags par modules
- 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 <licode file=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]; </licode>
Editer le thème Azul : <licode file=themes/Azul/theme.php>
//'S_DATE' => strftime('%d %B %Y', gmtime()), 'S_DATE' => formatDateTime(gmtime(),'%d %B %Y'),
</licode>
Pour gérer les accents dans les textes, éditer includes/config.php : <licode file=includes/config.php> define('DB_CHARSET', 'latin1'); </licode>
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-2010 Christophe de Livois
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. |