Darathor
Citation :
But : Permet d'ajouter des classes de styles sous forme de bbcodes (utilisées soit en mode bloc (balise XHTML div), soit en mode inline (balise XHTML span)). Ces classes peuvent être ajoutées dynamiquement dans le panneau d'aministration et des menus déroulants permettent de les selectionner dans la page d'édition des messages.
Prérequis :
- [BBCODE] Multiple BBCode MOD
- [Sous-MOD] Export fichier
- Autorisation de faire un CHMOD sur un répertoire.
Auteur : Darathor (darathor@free.fr)
Version : 1.0 DEV - A (24/09/2005)
Compatibilité phpBB : 2.0.17
SQL :
Code :
CREATE TABLE `phpbb_styled_blocs` (
`style_id` mediumint(8) NOT NULL auto_increment,
`style_nom` varchar(75) NOT NULL default '',
`style_desc` text NOT NULL,
`style_type` varchar(10) NOT NULL default '',
`style_classe_nom` varchar(75) NOT NULL default '',
`style_classe` text NOT NULL,
PRIMARY KEY (`style_id`),
KEY `style_nom` (`style_nom`)
);
Dans "language/lang_french/lang_admin.php" :
Code :
#
# Trouver
#
$lang['Restore_DB'] = 'Restaurer la base de données';
#
# Ajouter après
#
// DEBUT MOD Styled-bloc BBcode
$lang['StyledBlocs'] = 'Gestion des blocs stylés';
// FIN MOD Styled-bloc BBcode
#
# Trouver
#
?>
#
# Ajouter avant
#
// DEBUT MOD Styled-bloc BBcode
$lang['StBl_Must_select_style'] = 'Vous devez sélectionner un style.';
$lang['StBl_Click_return_admin'] = 'Cliquez %sici%s pour revenir à l\'administration des styles de blocs';
$lang['StBl_EditStyle'] = 'Modifier ce style';
$lang['StBl_AddStyle'] = 'Ajouter un style';
$lang['StBl_admin'] = 'Gestion des blocs stylés';
$lang['StBl_explain'] = 'Sur cette page, vous pouvez ajouter, supprimer ou modifier des styles de blocs. Ces blocs sont utilisables sous forme de BBcodes.';
$lang['StBl_New_style'] = 'Ajouter un style de bloc';
$lang['StBl_nom'] = 'Nom interne du bloc de style';
$lang['StBl_nom_explain'] = 'Ce nom ne sert qu\'à identifier le bloc dans le panneau d\'administration. Il n\'a aucune incidence sur la partie publique du forum.';
$lang['StBl_desc'] = 'Description du bloc de style';
$lang['StBl_desc_explain'] = '';
$lang['StBl_classe'] = 'Contenu de la classe de style';
$lang['StBl_classe_explain'] = 'Contient les différents styles à appliquer à la classe exactement comme on les définirait dans une feuille de style CSS.';
$lang['StBl_classe_nom'] = 'Nom de la classe de style';
$lang['StBl_classe_nom_explain'] = 'Nom de la classe CSS correspondante. Ce nom ne doit pas contenir d\'espaces, d\'accents ou d\'autres caractères spéciaux';
$lang['StBl_type'] = 'Type de style';
$lang['StBl_type_explain'] = 'Un style de type «bloc» représente un bloc de texte séparé du texte qui l\'entoure par des retours à la ligne (implémenté en XHTML par un tag div). À l\'inverse, un style de type «inline» sera simplement appliqué sur le texte (implémenté en XHTML par un tag span).';
$lang['StBl_type_bloc'] = 'Bloc';
$lang['StBl_type_inline'] = 'Inline';
$lang['StBl_Style_exists'] = 'Un style existe déjà avec l\'un des noms (nom interne, nom de classe ou nom de bouton) que vous avez spécifié.';
$lang['StBl_Style_Updated'] = 'Le style de bloc a été mis à jour avec succès.';
$lang['StBl_Style_Added'] = 'Le style de bloc a été ajouté avec succès.';
$lang['StBl_Style_Deleted'] = 'Le style de bloc a été supprimé avec succès.';
$lang['StBl_Must_select_style'] = 'Vous devez selectionner un style de bloc.';
$lang['StBl_Erreur_enregistrement'] = 'Une erreur s\'est produite lors de l\'enregistrement de la nouvelle feuille de style.';
// FIN MOD Styled-bloc BBcode
Dans "lang_french.php" :
Code :
#
# Trouver
#
?>
#
# Ajouter avant
#
// DEBUT MOD Styled-bloc BBcode
$lang['StBl_bloc'] = 'Bloc';
$lang['StBl_inline'] = 'Inline';
$lang['StBl_choose'] = 'Choisissez un style';
// Helplines.
$lang['StBl_bloc_help'] = 'Définir un bloc stylé : [bloc=classe]contenu[/bloc]';
$lang['StBl_inline_help'] = 'Définir un style pour une portion de texte : [inline=classe]contenu[/inline]';
// FIN MOD Styled-bloc BBcode
Dans "includes/bbcodes.php" :
Code :
#
# Trouver
#
$bbcode_tpl['email'] = str_replace('{EMAIL}', '\\1', $bbcode_tpl['email']);
#
# Ajouter après
#
// DEBUT MOD Styled-bloc BBcode
$bbcode_tpl['styled_bloc_open'] = str_replace('{STYLE}', '\\1', $bbcode_tpl['styled_bloc_open']);
$bbcode_tpl['styled_inline_open'] = str_replace('{STYLE}', '\\1', $bbcode_tpl['styled_inline_open']);
// FIN MOD Styled-bloc BBcode
#
# Trouver
#
// [i] and [/i] for italicizing text.
$text = str_replace("[i:$uid]", $bbcode_tpl['i_open'], $text);
$text = str_replace("[/i:$uid]", $bbcode_tpl['i_close'], $text);
#
# Ajouter après
#
// DEBUT MOD Styled-bloc BBcode
$text = preg_replace("/\[bloc:$uid=([[:alnum:]]+)\]/si", $bbcode_tpl['styled_bloc_open'], $text);
$text = str_replace("[/bloc:$uid]", $bbcode_tpl['styled_bloc_close'], $text);
$text = preg_replace("/\[inline:$uid=([[:alnum:]]+)\]/si", $bbcode_tpl['styled_inline_open'], $text);
$text = str_replace("[/inline:$uid]", $bbcode_tpl['styled_inline_close'], $text);
// FIN MOD Styled-bloc BBcode
#
# Trouver
#
// [i] and [/i] for italicizing text.
$text = preg_replace("#\[i\](.*?)\[/i\]#si", "[i:$uid]\\1[/i:$uid]", $text);
#
# Ajouter après
#
// DEBUT MOD Styled-bloc BBcode
$text = preg_replace("#\[bloc=([[:alnum:]]+)\](.*?)\[/bloc\]#si", "[bloc:$uid=\\1]\\2[/bloc:$uid]", $text);
$text = preg_replace("#\[inline=([[:alnum:]]+)\](.*?)\[/inline\]#si", "[inline:$uid=\\1]\\2[/inline:$uid]", $text);
// FIN MOD Styled-bloc BBcode
Dans "includes/constants.php :
Code :
#
# Trouver
#
define('VOTE_USERS_TABLE', $table_prefix.'vote_voters');
#
# Ajouter parès
#
// DEBUT MOD Styled-bloc BBcode
define('STYLED_BLOCS_TABLE', $table_prefix.'styled_blocs');
// FIN MOD Styled-bloc BBcode
Dans "includes/functions.php" :
Code :
#
# Trouver
#
?>
#
# Ajouter avant
#
// DEBUT MOD Styled-bloc BBcode
/**
* Génère les entrées des menus déroulants permettant de sélectionner les styles dans la page d'édition de posts (Cette fonciton doit être appelée à chaque utilisation de posting_body.tpl).
*/
function StBl_generate_menus()
{
global $lang, $board_config, $template, $db;
// Variables globales.
$template->assign_vars(array(
'L_BBCODE_BLOC_HELP' => $lang['StBl_bloc_help'],
'L_BBCODE_INLINE_HELP' => $lang['StBl_inline_help'],
'L_BLOC' => $lang['StBl_bloc'],
'L_INLINE' => $lang['StBl_inline'],
'L_CHOOSE' => $lang['StBl_choose'])
);
// Récupération des blocs.
$sql = "SELECT * FROM " . STYLED_BLOCS_TABLE . "
ORDER BY style_nom";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Couldn't obtain styled blocs data", "", __LINE__, __FILE__, $sql);
}
// Parcours des blocs.
while($row = $db->sql_fetchrow($result))
{
if($row['style_type'] == 'bloc') { $type = 'bloc_row'; }
elseif($row['style_type'] == 'inline') { $type = 'inline_row'; }
else { $type = ''; }
if($type != '')
{
$template->assign_block_vars($type, array(
'VALUE' => $row['style_classe_nom'],
'NOM' => $row['style_nom'])
);
}
}
}
// FIN MOD Styled-bloc BBcode
Dans "includes/page_header.php" :
Code :
#
# Trouver
#
//
// Login box?
#
# Ajouter avant
#
// DEBUT MOD Styled-bloc BBcode
if(defined('SOUS_DOMAINE')) { $destination_file .= SOUS_DOMAINE . '_styled_blocs.css'; }
else { $destination_file .= 'styled_blocs.css'; }
$template->assign_vars(array(
'STYLED_BLOCS_CSS' => $destination_file)
);
// FIN MOD Styled-bloc BBcode
Dans "admin/page_header_admin.php" :
Code :
#
# Trouver
#
$template->pparse('header');
#
# Ajouter avant
#
// DEBUT MOD Styled-bloc BBcode
if(defined('SOUS_DOMAINE')) { $destination_file .= SOUS_DOMAINE . '_styled_blocs.css'; }
else { $destination_file .= 'styled_blocs.css'; }
$template->assign_vars(array(
'STYLED_BLOCS_CSS' => $destination_file)
);
// FIN MOD Styled-bloc BBcode
Dans "posting.php" :
Code :
#
# Trouver
#
$template->pparse('body');
#
# Ajouteravant
#
// DEBUT MOD Styled-bloc BBcode
StBl_generate_menus();
// FIN MOD Styled-bloc BBcode
Dans "privmsgs.php" :
Code :
#
# Trouver
#
$template->assign_block_vars('switch_privmsg', array());
#
# Ajouter après
#
// DEBUT MOD Styled-bloc BBcode
StBl_generate_menus();
// FIN MOD Styled-bloc BBcode
Dans "templates/subsilver/posting_body.tpl" :
Code :
#
# Trouver
#
f_help = "{L_BBCODE_F_HELP}";
#
# Ajouter après
#
// DEBUT MOD Styled-bloc BBcode
bloc_help = "{L_BBCODE_BLOC_HELP}";
inline_help = "{L_BBCODE_INLINE_HELP}";
// FIN MOD Styled-bloc BBcode
#
# Trouver
#
</span></td>
<td nowrap="nowrap" align="right"><span class="gensmall"><a href="javascript:bbstyle(-1)" class="genmed" onMouseOver="helpline('a')">{L_BBCODE_CLOSE_TAGS}</a></span></td>
#
# Ajouter avant
#
<!-- DEBUT MOD Styled-bloc BBcode -->
<br /> {L_BLOC}: <select name="addbbcodebloc" onChange="bbfontstyle('[bloc=' + this.form.addbbcodebloc.options[this.form.addbbcodebloc.selectedIndex].value + ']', '[/bloc]');this.selectedIndex=0;" onMouseOver="helpline('bloc')">
<option value="" selected="selected" class="genmed">{L_CHOOSE}</option>
<!-- BEGIN bloc_row -->
<option value="{bloc_row.VALUE}" class="genmed">{bloc_row.NOM}</option>
<!-- END bloc_row -->
</select> {L_INLINE}: <select name="addbbcodeinline" onChange="bbfontstyle('[inline=' + this.form.addbbcodeinline.options[this.form.addbbcodeinline.selectedIndex].value + ']', '[/inline]');this.selectedIndex=0;" onMouseOver="helpline('inline')">
<option value="" selected="selected" class="genmed">{L_CHOOSE}</option>
<!-- BEGIN inline_row -->
<option value="{inline_row.VALUE}" class="genmed">{inline_row.NOM}</option>
<!-- END inline_row -->
</select>
<!-- FIN MOD Styled-bloc BBcode -->
Dans "templates/subsilver/bbcodes.tpl" :
Code :
#
# Trouver
#
<!-- BEGIN email --><a href="mailto:{EMAIL}">{EMAIL}</a><!-- END email -->
#
# Ajouter après
#
<!-- BEGIN styled_bloc_open --><div class="{STYLE}"><!-- END styled_bloc_open -->
<!-- BEGIN styled_bloc_close --></div><!-- END styled_bloc_close -->
<!-- BEGIN styled_inline_open --><span class="{STYLE}"><!-- END styled_inline_open -->
<!-- BEGIN styled_inline_close --></span><!-- END styled_inline_close -->
Dans "templates/subsilver/overall_header.tpl" :
Code :
#
# Trouver
#
<!-- BEGIN switch_enable_pm_popup -->
#
# Ajouter avant
#
<link rel="stylesheet" href="templates/css/{STYLED_BLOCS_CSS}" type="text/css" />
Dans "templates/subsilver/simple_header.tpl" :
Code :
#
# Trouver
#
</head>
#
# Ajouter avant
#
<link rel="stylesheet" href="templates/css/{STYLED_BLOCS_CSS}" type="text/css" />
Dans "templates/subsilver/admin/page_header.tpl" :
Code :
#
# Trouver
#
<title>{SITENAME} - {L_PHPBB_ADMIN}</title>
#
# Ajouter avant
#
<link rel="stylesheet" href="templates/css/{STYLED_BLOCS_CSS}" type="text/css" />
Créer un répertoire css dans templates et lui appliquer un chmod 774 (ou 777 suivant les configurations de php sur votre hébergeur).
Uploader aux emplacement suivants les fichiers contenus dans ce zip :
- admin/admin_styled_blocs.php
- templates/subsilver/admin/styled_blocs_css.tpl
- templates/subsilver/admin/styled_blocs_edit_body.tpl
- templates/subsilver/admin/styled_blocs_list_body.tpl