 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~ Prmods "Kamels" version 1.0.6 ~~
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Version de fsb : 1.0.3b

Cration : 21/03/2005
Mise  jour : 05/10/2005

Auteur : Grummfy (grummfy@yahoo.fr)
Site : http://www.grummfy.com

Mise  jour :
______________
- Mise   jour en version 1.0.3, 1.0.3a et 1.0.3b de fsb
- ajout du mod up mods mod v1.0.2 de grummfy
- ajout du mods groupe de genova v1.0.1
- mise  jour du mods ancre and target url de grummfy v1.0.3

#
# [1] ---------- copier ---------------------------------------------------------
#
"root/admin/admin_mods_maj.php" >> "admin/admin_mods_maj.php"
"root/includes/functions/fonctions_mod.php" >> "includes/functions/fonctions_mod.php"
"root/themes/IceCold/admin/mods_maj.tpl" >> "themes/IceCold/admin/mods_maj.tpl"

#
# [2] ---------- requete cache --------------------------------------------------
#
ALTER ac_mods ADD mod_use_desactivation DEFAULT '1';
ALTER ac_mods ADD last_verf DEFAULT '0';
ALTER ac_mods ADD mod_a_jour DEFAULT '1';
ALTER ac_mods ADD mod_auteur_site;
ALTER ac_mods ADD mod_compatible DEFAULT '1.0.3a';
INSERT ac_mods FIELDS mod_name mod_version mod_description mod_auteur mod_email mod_actif mod_use_desactivation last_verf mod_a_jour mod_auteur_site mod_compatible VALUES 'up_mods_mod' '1.0.0' 'Mods permetant de tester si un mods est  jour ou non' 'grummfy' 'grummfy@yahoo.fr' '1' '0' '1127787626' '1' 'http://www.grummfy.com' '1.0.3a';

INSERT ac_mods FIELDS mod_name mod_version mod_description mod_auteur mod_email mod_actif mod_use_desactivation last_verf mod_a_jour mod_auteur_site mod_compatible VALUES 'premods_kamels' '1.0.6' 'Premods Kamels, contenant plusieurs mods' 'grummfy' 'grummfy@yahoo.fr' '1' '0' '1128380362' '1' 'http://www.grummfy.com' '1.0.3b';

#
# [3] ---------- requete SQL ----------------------------------------------------
#
CREATE TABLE `fsb_mod_serveur` (
`id_serveur` MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT ,
`auteur` VARCHAR( 60 ) NOT NULL ,
`serveur_www` VARCHAR( 50 ) NOT NULL ,
`serveur_file` VARCHAR( 200 ) NOT NULL ,
PRIMARY KEY ( `id_serveur` )
);
INSERT INTO `fsb_mod_serveur` ( `id_serveur` , `auteur` , `serveur_www` , `serveur_file` )
VALUES VALUES ('', 'grummfy', 'grummfy.free.fr', '/fsb/test_maj.php'),
('', 'grummfy', 'www.grummfy.net', '/fsb/test_maj.php'),
('', 'grummfy', 'www.grummfy.com', '/download/fsb/test_maj.php');

#
# [4] ---------- ouvrir ---------------------------------------------------------
#
admin/admin_index_mods.php

#
# [5] ---------- chercher -------------------------------------------------------
#
foreach ($ac_mods AS $value)

#
# [6] ---------- avant, ajouter -------------------------------------------------
#
// mods :: up mods mod ---------------------------------------------------------
// ajout
$mod_use_desactivation = false;
// fin ajout
// mods :: up mods mod ---------------------------------------------------------

#
# [7] ---------- chercher -------------------------------------------------------
#
$tpl->create_block('mod_exists');

#
# [8] ---------- remplacer par --------------------------------------------------
#
// mods :: up mods mod ---------------------------------------------------------
// ajout
	if ($value['mod_use_desactivation'] == '' || $value['mod_use_desactivation'] == 1)
	{
// fin ajout
// mods :: up mods mod ---------------------------------------------------------
// mods :: up mods mod ---------------------------------------------------------
// supprtion
	//$tpl->create_block('mod_exists');
// fin supprtion
// mods :: up mods mod ---------------------------------------------------------

#
# [9] ---------- chercher -------------------------------------------------------
#
'NON' =>			(!$value['mod_actif']) ? 'checked="checked"' : '',
	));
}

#
# [10] ---------- remplacer par -------------------------------------------------
#
'NON' =>			(!$value['mod_actif']) ? 'checked="checked"' : '',
	));
// mods :: up mods mod ---------------------------------------------------------
// ajout
}
// fin ajout
// mods :: up mods mod ---------------------------------------------------------
}
// mods :: up mods mod ---------------------------------------------------------
// ajout
if ($mod_use_desactivation)
{
	$tpl->create_block('mod_exists');
}
// fin ajout
// mods :: up mods mod ---------------------------------------------------------

#
# [11] ---------- ouvrir ---------------------------------------------------------
#
langues/fr/langue_module.php

#
# [12] ---------- chercher -------------------------------------------------------
#
?>

#
# [13] ---------- avant, ajouter -------------------------------------------------
#
// mods :: up mods mod ---------------------------------------------------------
// ajout
if (defined('ADMINISTRATION'))
{
	$langue['admin_cat_mods'] = 'Mods';
	$langue['admin_mods_maj'] = 'Mise  jour des mods';

	// admin/admin_mods_maj.php
	$langue['mods_maj_titre'] = 'Mise  jour des mods';
	$langue['mods_maj_titre_exp'] = 'Depuis ce panneau, vous pouvez voir tout les mods installs sur le forum mais surtout contrler leur mise  jour.';
	$langue['info_mods_update'] = 'Les mods ont t mis  jour';
	$langue['retour_mods_liste'] = 'Cliquez <a href="%s">ici</a> pour retourner sur la liste des mods';
	$langue['par'] = 'par';
	$langue['auteur_site'] = 'Site web de l\'auteur';
	$langue['pas_a_jour'] = 'Attention ! Ce mod n\'est pas prvue pour cette version de fsb, vrifiez si une mise  jour est disponible';
	$langue['a_jour'] = 'Le mods est  jour. La dernire vrification date du : <b>%s</b>.';
	$langue['pas_compatible'] = 'Attention ! Ce mod n\'est plus  jour ou incompatible avec cette version de fsb. La dernire vrification date du : <b>%s</b>.';
	$langue['mods_maj'] = 'Mise  jour des mods';
	$langue['mods_maj_test'] = 'Tester la mise  jour';
	$langue['mods_maj_test_ratee'] = '<b>Test non abouti</b><br />';
	$langue['mods_maj_test_reussi'] = '<br /><b>Test abouti</b>';
	$langue['mods_status_0'] = 'Dvellopement';
	$langue['mods_status_1'] = 'Alpha';
	$langue['mods_status_2'] = 'Beta';
	$langue['mods_status_3'] = 'RC';
	$langue['mods_status_4'] = 'Stable';
	$langue['mods_status_5'] = 'En mise  jour';
	$langue['mods_status_6'] = 'Abandonne';
	$langue['mods_status'] = 'Status du mods';
	$langue['mods_compatible'] = 'Compatibiliter du mods';
	$langue['mods_changelog'] = 'Changement';
	$langue['mods_lien'] = 'Voir le mods';
	$langue['mods_lastupdate'] = 'Dernire mise  jour du mods';
	$langue['mods_version_fsb_in'] = 'Votre version de fsb doit tre mise  jour, ou vous devez attendre un correctif pour ce mods.';
}
// fin ajout
// mods :: up mods mod ---------------------------------------------------------

#
# [14] ---------- ouvrir ---------------------------------------------------------
#
includes/constantes.php

#
# [15] ---------- chercher -------------------------------------------------------
#
?>

#
# [16] ---------- avant, ajouter -------------------------------------------------
#
// mods :: up mods mod ---------------------------------------------------------
// ajout
define('MOD_MAJ_SERVEUR_TABLE', $prefixe_tables . 'mod_serveur');
// fin ajout
// mods :: up mods mod ---------------------------------------------------------

#
# [17] ---------- ouvrir ---------------------------------------------------------
#
themes/IceCold/IceCold.css

#
# [18] ---------- chercher -------------------------------------------------------
#

input.boutton { background-color: #F5F5F5; border-color: #FFFFFF; color: #000000; }

#
# [19] ---------- apres, ajouter -------------------------------------------------
#
button.boutton { background-color: #F5F5F5; border-color: #FFFFFF; color: #000000; font-family: verdana; font-size: 12px; }


#
# [] ---------- copier ---------------------------------------------------------
#
"root/groupes.php" >> "groupes.php"
"root/admin/admin_groupe_droits.php" >> "admin/admin_groupe_droits.php"
"root/admin/admin_groupe_gestion.php" >> "admin/admin_groupe_gestion.php"
"root/langue/fr/langue_groupe.php" >> "langue/fr/langue_groupe.php"
"root/langue/fr/mail/mail_groupe_attente.html" >> "langue/fr/mail/mail_groupe_attente.html"
"root/langue/fr/mail/mail_groupe_validation.html" >> "langue/fr/mail/mail_groupe_validation.html"
"root/themes/IceCold/groupe_info.tpl" >> "themes/IceCold/groupe_info.tpl"
"root/themes/IceCold/groupe_liste.tpl" >> "themes/IceCold/groupe_liste.tpl"
"root/themes/IceCold/admin/groupe_ajout.tpl" >> "themes/IceCold/admin/groupe_ajout.tpl"
"root/themes/IceCold/admin/groupe_droits.tpl" >> "themes/IceCold/admin/groupe_droits.tpl"
"root/themes/IceCold/admin/groupe_gestion.tpl" >> "themes/IceCold/admin/groupe_gestion.tpl"

#
# [] ---------- requetes SQL ---------------------------------------------------------
#
CREATE TABLE `fsb_groupes` (
  `g_id` int(11) NOT NULL auto_increment,
  `g_nom` varchar(255) NOT NULL default '',
  `g_description` tinytext NOT NULL,
  `g_ouvert` tinyint(4) NOT NULL default '1',
  `g_visible` tinyint(4) NOT NULL default '1',
  PRIMARY KEY  (`g_id`)
) TYPE=MyISAM;

CREATE TABLE `fsb_groupes_droits` (
  `g_id` int(11) NOT NULL default '0',
  `f_id` int(11) NOT NULL default '0',
  `droit_modo` tinyint(4) NOT NULL default '0',
  `droit_voir` tinyint(4) NOT NULL default '0',
  `droit_lire` tinyint(4) NOT NULL default '0',
  `droit_poster` tinyint(4) NOT NULL default '0',
  `droit_repondre` tinyint(4) NOT NULL default '0',
  `droit_editer` tinyint(4) NOT NULL default '0',
  `droit_supprimer` tinyint(4) NOT NULL default '0',
  `droit_message` tinyint(4) NOT NULL default '0',
  `droit_annonce` tinyint(4) NOT NULL default '0',
  KEY `f_id` (`f_id`),
  KEY `g_id` (`g_id`)
) TYPE=MyISAM;

CREATE TABLE `fsb_groupes_membres` (
  `g_id` int(11) NOT NULL default '0',
  `u_id` int(11) NOT NULL default '0',
  `gm_status` tinyint(4) NOT NULL default '0',
  KEY `g_id` (`g_id`),
  KEY `u_id` (`u_id`)
) TYPE=MyISAM;

#
# [] ---------- cache --------------------------------------------------------
# A faire dans l'onglet cache de votre panneau d'administration
#
INSERT ac_mods FIELDS mod_name mod_version mod_description mod_auteur mod_email mod_actif VALUES 'groupes' '1.0.1' 'Ajoute un systme de groupe au forum permettant de donner des droits  certaines catgories de personnes dans ces groupes' 'Genova' 'genovakiller@yahoo.fr' '1' ;

#
# [] ---------- ouvrir ---------------------------------------------------------
#
includes/constantes.php

#
# [] ---------- chercher -------------------------------------------------------
#
?>

#
# [] ---------- avant, ajouter -------------------------------------------------
#
define('GROUPES_TABLE', $prefixe_tables . 'groupes');
define('GROUPES_MEMBRES_TABLE', $prefixe_tables . 'groupes_membres');
define('GROUPES_DROITS_TABLE', $prefixe_tables . 'groupes_droits');
define('GROUPE_MODO', 1);
define('GROUPE_NORMAL', 2);
define('GROUPE_ATTENTE', 3);

#
# [] ---------- ouvrir ---------------------------------------------------------
#
includes/header_forum.php

#
# [] ---------- chercher -------------------------------------------------------
#
	'L_LISTEMEMBRE' =>	$langue['listemembre'],

#
# [] ---------- apres, ajouter -------------------------------------------------
#
	'L_GROUPE' =>		$langue['admin_cat_groupe'],

#
# [] ---------- chercher -------------------------------------------------------
#
	'U_LISTEMEMBRE' =>	ajout_sid($racine . 'liste_membre.php'),

#
# [] ---------- apres, ajouter -------------------------------------------------
#
	'U_GROUPE' =>		ajout_sid($racine . 'groupes.php'),

#
# [] ---------- ouvrir ---------------------------------------------------------
#
include/functions/fonctions.php

#
# [] ---------- chercher -------------------------------------------------------
#
	global $bdd, $categorie_personne;

#
# [] ---------- aprs, ajouter -------------------------------------------------
#
	static $droits_groupe = NULL;
	
	if ($GLOBALS['MOD']['groupes'] && $membre['membre_id'] != INVITE && $droits_groupe == NULL)
	{
		$sql = 'SELECT gd.* FROM ' . GROUPES_MEMBRES_TABLE . ' gm
				LEFT JOIN ' . GROUPES_DROITS_TABLE . ' gd
					ON gm.g_id = gd.g_id
				WHERE gm.u_id = ' . $membre['membre_id'] . '
					AND gm.gm_status <> ' . GROUPE_ATTENTE;
		if (!$result = $bdd->requete($sql))
		{
			info($langue['er_titre'], sprintf($langue['er_select'], 'groupes_droits, groupes_membres'), __LINE__, __FILE__, $sql);
		}
		
		$droits_groupe = array();
		while ($row = $bdd->tableau($result))
		{
			$droits_groupe[$row['f_id']] = $row;
		}
		
		$bdd->free($result);
	}

#
# [] ---------- chercher -------------------------------------------------------
#
	$droits = array();
	$droits['est_modo'] = FALSE;
	if ( $membre['membre_aut'] == MODO )

#
# [] ---------- remplacer par -------------------------------------------------
#
	$droits = array();
	$droits['est_modo'] = FALSE;
	if ($droits_groupe[$forum_m['forum_id']]['droit_modo'])
	{
		$droits['est_modo'] = TRUE;
	}
	else if ( $membre['membre_aut'] == MODO )

#
# [] ---------- chercher -------------------------------------------------------
#
		if ( $membre['membre_aut'] == ADMIN )
		{
			$droits[$droit_forum[$d]] = TRUE;
		}

#
# [] ---------- apres ajouter -------------------------------------------------
#
		else if ($GLOBALS['MOD']['groupes'] && $droits_groupe[$forum_m['forum_id']][$droit_forum[$d]])
		{
			if ($droit_forum[$d] == 'droit_editer' || $droit_forum[$d] == 'droit_supprimer')
			{
				$droits[$droit_forum[$d]] = FALSE;
				if ($droit['est_modo'])
				{
					$droits[$droit_forum[$d]] = TRUE;
				}
				else
				{
					$droits['membre_' . substr($droit_forum[$d], 6)] = TRUE;
				}
			}
			else
			{
				$droits[$droit_forum[$d]] = TRUE;
			}
		}

#
# [] ---------- ouvrir ---------------------------------------------------------
#
langues/fr/langue_module.php

#
# [] ---------- chercher -------------------------------------------------------
#
?>

#
# [] ---------- avant, ajouter -------------------------------------------------
#
$langue['admin_cat_groupe'] = 'Groupes';
$langue['admin_groupe_gestion'] = 'Gestion';
$langue['admin_groupe_droits'] = 'Droits';

#
# [] ---------- ouvrir ---------------------------------------------------------
#
themes/IceCold/header.tpl

#
# [] ---------- chercher -------------------------------------------------------
#
<a href="{U_LISTEMEMBRE}" class="menu">{L_LISTEMEMBRE}</a>&nbsp;&nbsp;

#
# [] ---------- apres, ajouter -------------------------------------------------
#
<!-- IFEXIST switch_mod_groupes -->
-&nbsp;&nbsp;<a href="{U_GROUPE}" class="menu">{L_GROUPE}</a>&nbsp;&nbsp;
<!-- ENDIF -->

#
# [1] ---------- ouvrir ---------------------------------------------------------
# 
includes/fonctions/fonctions_message.php

#
# [2] ---------- chercher -------------------------------------------------------
#
// mods : ancre_and_target_url --------------------------------------------------
//- add
	// Texte masquant une url vers une ancre:: [url=#nom_ancre]texte[/url]
	$texte = preg_replace('`\[url=#(.*?)\](.*?)\[/url\]`si', '<a href="#\\1">\\2</a>', $texte);

	// texte en url avec target :: [url]http://www.fire-soft-board.com[/url=target]
	$texte = preg_replace('`\[url\](\w+?://)(.*?)\[/url=(.*?)\]`i', '<a href="\\1\\2" target="\\3">\\1\\2</a>', $texte);
	$texte = preg_replace('`\[url\](www\.|ftp\.)(.*?)\[url=(.*?)\]`i', '<a href="http://\\1\\2" target="\\3">\\1\\2</a>', $texte);
	//$texte = preg_replace('`\[url\](http|https|ftp|ftps)(://)(.*?)\[/url=(.*?)\]`si', '<a href="\\1\\2\\3" target="\\4">\\1\\2\\3</a>', $texte);

	// Texte masquant une url avec target :: [url=http://www.fire-soft-board.com]texte[/url=target]
	$texte = preg_replace('`\[url=(\w+?://)(.*?)\](.*?)\[/url=(.*?)\]`i', '<a href="\\1\\2" target="\\4">\\3</a>', $texte);
	$texte = preg_replace('`\[url=(www\.|ftp\.)(.*?)\](.*?)\[/url=(.*?)\]`i', '<a href="http://\\1\\2" target="\\4">\\3</a>', $texte);
	//$texte = preg_replace('`\[url=(http|https|ftp|ftps)(://)(.*?)\](.*?)\[/url=(.*?)\]`si', '<a href="\\1\\2\\3" target="\\5">\\4</a>', $texte);

	// lien ancre, trs utile lors de prsentation avec un post rsum.
	$texte = preg_replace('`\[ancre\](.*?)\[/ancre\]`si', '<a name="\\1"></a>', $texte);
//- end mods : ancre_and_target_url ---------------------------------------------

#
# [3] ---------- remplacer par --------------------------------------------------
#
// mods : ancre_and_target_url --------------------------------------------------
//- add
	// Texte masquant une url vers une ancre:: [url=#nom_ancre]texte[/url]
	$texte = preg_replace('`\[url=#(.*?)\](.*?)\[/url\]`si', '<a href="#\\1">\\2</a>', $texte);

	// Texte en url vers une ancre:: [url]#nom_ancre[/url]
	$texte = preg_replace('`\[url\]#(.*?)\[/url\]`si', '<a href="#\\1">#\\1</a>', $texte);

	// texte en url avec target :: [url]http://www.fire-soft-board.com[/url=target]
	$texte = preg_replace('`\[url\](\w+?://)(.*?)\[/url=(.*?)\]`i', '<a href="\\1\\2" target="\\3">\\1\\2</a>', $texte);
	$texte = preg_replace('`\[url\](www\.|ftp\.)(.*?)\[/url=(.*?)\]`i', '<a href="http://\\1\\2" target="\\3">\\1\\2</a>', $texte);

	// Texte masquant une url avec target :: [url=http://www.fire-soft-board.com]texte[/url=target]
	$texte = preg_replace('`\[url=(\w+?://)(.*?)\](.*?)\[/url=(.*?)\]`i', '<a href="\\1\\2" target="\\4">\\3</a>', $texte);
	$texte = preg_replace('`\[url=(www\.|ftp\.)(.*?)\](.*?)\[/url=(.*?)\]`i', '<a href="http://\\1\\2" target="\\4">\\3</a>', $texte);

	// lien ancre, trs utile lors de prsentation avec un post rsum.
	$texte = preg_replace('`\[ancre\](.*?)\[/ancre\]`si', '<a name="\\1"></a>', $texte);
//- end mods : ancre_and_target_url ---------------------------------------------