Affichage :
Le laboratoire de Darathor Index du Forum

Le laboratoire de Darathor

Ressources diverses, principalement sur les fourms phpBB
[MOD] Styled-bloc BBcode (DEV - A)

Ce forum est verrouillé, vous ne pouvez pas poster, ni répondre, ni éditer les sujets. Ce sujet est verrouillé, vous ne pouvez pas éditer les messages ou faire de réponses.

Rechercher dans ce sujet :
Messages
Darathor Sexe : Masculin
Site Admin
Membre

Inscrit le : 02 Nov 2003
Messages : 1101
Localisation : Strasbourg
MessagePosté le : 24 Sep 2005 14:34
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
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 /> &nbsp;{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> &nbsp;{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
Revenir en haut Aller en bas
Hors ligne | Profil | MP | E-mail | Site web
  Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum