Affichage :
Le laboratoire de Darathor Index du Forum

Le laboratoire de Darathor

Ressources diverses, principalement sur les fourms phpBB
[MOD] Tags in topic-titles (DEV - B)

Poster un nouveau sujet Répondre au sujet

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

Inscrit le : 02 Nov 2003
Messages : 1101
Localisation : Strasbourg
MessagePosté le : 06 Aoû 2006 18:23
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
Citation :
But : Ajoute la possibilité de gérer deux séries de tags (catégorie et état) dans les titres des sujets. Fonctionnalités implémentées :
- gestion des tags depuis le panneau d'administration (modifier un tag existant modifiera son affichage sur tous les sujets auquel il a été appliqué).
- possibilité d'utiliser de l'html (couleurs, images, etc) dans les tags.
- possibilité de restreindre l'usage d'un tag à une section en particulier.
- possibilité d'appliquer les tags depuis la fenêtre d'édition du premier message d'un topic, depuis le viewtopic et depuis le panneau de contrôle des modérateurs.
- possibilité d'assigner dans les permissions d'un forum le droit d'appliquer des tags à des personnes autres que les modérateurs ou l'auteur du topic.
- fonction de filtrage du viewforum selon les tags appliqués au sujets.
- fonction de conversion automatique des titres existants pour remplacer une portion de texte contenue dans le titre par un tag géré par ce MOD.
- possibilité d'imposer la sélection d'un tag lorsque l'on poste un nouveau sujet (le réglage se fait dans le panneau d'admin, dans la page d'édition des forums).

Prérequis :
- [Sous-MOD] Select forum (TEST - A)
- [Sous-MOD] Convert topics titles (TEST - A)
- [Sous-MOD] Définitions CSS complémentaires (1.1)

Auteur : Darathor (darathor@free.fr)
Version : 1.0 DEV - B (06/08/2006)
Compatibilité phpBB : 2.0.21


SQL :
Code :
ALTER TABLE `phpbb_topics` ADD `topic_tag_category` MEDIUMINT( 8 ) NOT NULL DEFAULT '0' ,
ADD `topic_tag_category_date` INT( 11 ) NOT NULL ,
ADD `topic_tag_state` MEDIUMINT( 8 ) NOT NULL DEFAULT '0',
ADD `topic_tag_state_date` INT( 11 ) NOT NULL ;

ALTER TABLE `phpbb_auth_access` ADD `auth_apply_tag` TINYINT( 1 ) NOT NULL ;
ALTER TABLE `phpbb_forums` ADD `auth_apply_tag` TINYINT( 2 ) NOT NULL DEFAULT '3' AFTER `auth_attachments` ,
ADD `must_select_category_tag` TINYINT( 2 ) DEFAULT '0' NOT NULL AFTER `auth_apply_tag` ,
ADD `must_select_state_tag` TINYINT( 2 ) DEFAULT '0' NOT NULL AFTER `must_select_category_tag` ;

CREATE TABLE `phpbb_topics_tags` (
  `tag_id` mediumint(8) NOT NULL auto_increment,
  `tag_name` text NOT NULL,
  `tag_description` text NOT NULL,
  `tag_type` mediumint(4) NOT NULL default '0',
  `tag_position` mediumint(4) NOT NULL default '0',
  `tag_forum` mediumint(8) NOT NULL default '0',
  PRIMARY KEY  (`tag_id`)
);


Dans "includes/constants.php" :
Code :
#
# Trouver
#
define('AUTH_ATTACH', 11);

#
# Ajouter après
#
// FIN MOD Tags in topic-titles
define('AUTH_APPLY_TAG', 20);
// FIN MOD Tags in topic-titles

#
# Trouver
#
define('VOTE_USERS_TABLE', $table_prefix.'vote_voters');

#
# Ajouter après
#
// DEBUT MOD Tags in topic-titles
define('TOPICS_TAGS_TABLE', $table_prefix.'topics_tags');
define('TITT_CATEGORY', 1);
define('TITT_STATE', 2);
define('TITT_BEFORE', 1);
define('TITT_AFTER', 2);
// FIN MOD Tags in topic-titles


Dans "includes/functions.php" :
Code :
#
# Trouver
#
?>

#
# Ajouter avant
#
// DEBUT MOD Tags in topic-titles
/**
 * Fonction chargeant la liste des tags dans la variable globale $TiTT_topics_tags.
 */
function TiTT_load_tags()
{
   global $template, $lang, $images, $board_config, $phpbb_root_path, $phpEx, $userdata, $db;
   global $TiTT_topics_tags;

   // Récupération de la liste des tags tags uniquement si elle n'est pas déjà chargée.
   if(!is_array($TiTT_topics_tags))
   {
      $sql = "SELECT * FROM " . TOPICS_TAGS_TABLE ."
         ORDER BY tag_type, tag_name ASC";
      if(!($result = $db->sql_query($sql)))
      {
         message_die(GENERAL_ERROR, 'Could not query topics tags information', '', __LINE__, __FILE__, $sql);
      }

      $TiTT_topics_tags = array();
      while($tag = $db->sql_fetchrow($result))
      {
         $TiTT_topics_tags['by_id'][$tag['tag_id']] = $tag;
         $TiTT_topics_tags[$tag['tag_type']][] = $tag;
      }
   }
}

/**
 * Fonction appliquant le tag au titre.
 *
 * @param $title titre auquel ajouter le tag.
 * @param $tag_id données correspondant au titre.
 * @param $date date à laquelle le tag a été appliqué.
 * @return la chaîne affichable correspondant au tag.
 */
function TiTT_apply_tag($title, $tag_id, $date)
{
   global $template, $lang, $images, $board_config, $phpbb_root_path, $phpEx, $userdata, $db;
   global $TiTT_topics_tags;

   // Configurations.
   $separator = ' '; // Chaine de caractères séparant le tag du reste du titre.

   // Récupération de la liste des tags tags.
   TiTT_load_tags();

   // Récupération du tag.
   if($TiTT_topics_tags['by_id'][$tag_id] != '')
   {
      $date = create_date('d M Y', $date, $board_config['board_timezone']);
      $tag_string = str_replace('%d', $date, $TiTT_topics_tags['by_id'][$tag_id]['tag_name']);;
      if($TiTT_topics_tags['by_id'][$tag_id]['tag_position'] == TITT_AFTER) { $title = $title . $separator . $tag_string; }
      if($TiTT_topics_tags['by_id'][$tag_id]['tag_position'] == TITT_BEFORE) { $title = $tag_string . $separator . $title; }
   }

   return $title;
}

/**
 * Fonction générant le menu déroulant correspondant à l'une ou l'autre des catégories de tags.
 *
 * @param $type type du tag : TITT_CATEGORY ou TITT_STATE.
 * @param $selected_tag id du tag actuellement appliqué au topic.
 * @param $forum_id id du forum où se trouve le sujet (0 pour aucun en particulier).
 * @param $mode 'apply' dans le cas du formulaire d'application de tag, 'filter' dans le cas du formulaire de filtrage.
 * @param $tags_excluded tag à exclure du menu mettre FALSE si aucun tag à exclure).
 * @return le menu déroulant de selection du tag.
 */
function TiTT_get_selection_field($type, $selected_tag, $forum_id, $mode = 'apply', $tag_excluded = FALSE)
{
   global $TiTT_topics_tags, $lang;

   // Récupération de la liste des tags tags.
   TiTT_load_tags();

   // Génération du menu déroulant.
   if(count($TiTT_topics_tags[$type]) > 0)
   {
      $nb_tags = 0;
      $string = '<select name="topic_tag[' . $type . ']">';

      // Options dépendant du mode.
      if($mode == 'apply') { $string .= '<option value="-1" class="bold italic">---</option>'; }
      else
      {
         $is_selected = ($selected_tag == -2) ? 'selected="selected"' : '';
         $string .= '<option value="-1" class="bold italic">' . $lang['TiTT_all_topics'] . '</option><option value="-2" class="bold italic" ' . $is_selected . '>' . $lang['TiTT_all_topics_without_tag'] . '</option>';
      }

      // Parcours des tags.
      foreach($TiTT_topics_tags[$type] as $tag)
      {
         if(($tag['tag_forum'] == 0 || $forum_id == 0 || $tag['tag_forum'] == $forum_id || $selected_tag == $tag['tag_id']) && (!$tag_excluded || $tag_excluded != $tag['tag_id']))
         {
            $nb_tags++;
            $is_selected = ($selected_tag == $tag['tag_id']) ? 'selected="selected"' : '';
            $tag['tag_name'] = str_replace('%d', '--date--', $tag['tag_name']);
            $string .= '<option title="' . $tag['tag_description'] . '" value="' . $tag['tag_id'] . '" ' . $is_selected . '>' . strip_tags($tag['tag_name']) . '</option>';
         }
      }
      $string .= '</select>';

      // On ne renvoie le menu déroulant que s'il y a des tags.
      if($nb_tags >0) { return $string; }
   }

   // Si l'on n'a rien renvoyé on renvoie faux (absence de tags).
   return FALSE;
}

/**
 * Fonction renvoyant la liste des tags d'un type, séparés par des virgules.
 *
 * @param $type type du tag : TITT_CATEGORY ou TITT_STATE ou 'all' pour tous les types à la fois.
 * @param $forum_id id du forum où se trouve le sujet ou 'all' pour tous les forums à la fois.
 * @return le menu déroulant de selection du tag.
 */
function TiTT_get_tag_list($type, $forum_id)
{
   global $TiTT_topics_tags, $lang;

   // Récupération de la liste des tags tags.
   TiTT_load_tags();

   // Parcours des tags pour générer la liste.
   $tags_list = '';
   $tags_table = ($type == 'all') ? $TiTT_topics_tags['by_id'] : $TiTT_topics_tags[$type];
   foreach($tags_table as $tag)
   {
      if($forum_id == 'all' || ($tag['tag_forum'] == 0 || $tag['tag_forum'] == $forum_id))
      {
         $tags_list .= ($tags_list == '') ? $tag['tag_id'] : (', ' . $tag['tag_id']);
      }
   }
   return $tags_list;
}

/**
 * Fonction enregistrant les nouveaux tags.
 *
 * @param $topic_id id du topic concerné.
 * @param $selected_tags tableau des tags selectionnés, indexés par leur type.
 */
function TiTT_set_topic_tags($topic_id, $selected_tags)
{
   global $TiTT_topics_tags, $db;

   // Récupération de la liste des tags tags.
   TiTT_load_tags();

   // Traitement.
   $sql_tags = array();
   if(isset($selected_tags[TITT_CATEGORY])) { $sql_tags[] = 'topic_tag_category = ' . ((isset($TiTT_topics_tags['by_id'][$selected_tags[TITT_CATEGORY]])) ? $selected_tags[TITT_CATEGORY] : 0) . ', topic_tag_category_date = ' . time(); }
   if(isset($selected_tags[TITT_STATE])) { $sql_tags[] = 'topic_tag_state = ' . ((isset($TiTT_topics_tags['by_id'][$selected_tags[TITT_STATE]])) ? $selected_tags[TITT_STATE] : 0) . ', topic_tag_state_date = ' . time(); }

   if(count($sql_tags) > 0)
   {
      $tags_sql = '';
      foreach($sql_tags as $tag) { $tags_sql .= ($tags_sql == '') ? $tag : (', ' . $tag); }

      $sql = "UPDATE " . TOPICS_TABLE . "
         SET $tags_sql
         WHERE topic_id = $topic_id";

      if ( !$db->sql_query($sql) )
      {
         message_die(GENERAL_ERROR, 'Could not update topic tags', '', __LINE__, __FILE__, $sql);
      }
   }
}

/**
 * Sauvegarde d'un tag dans la base.
 *
 * @param $tag_data données du tag.
 */
function TiTT_set_tag_data($tag_data)
{
   global $lang, $board_config, $phpbb_root_path, $phpEx, $db;

   $sql = TOPICS_TAGS_TABLE . " SET tag_name = '" . str_replace("\'", "''", addslashes($tag_data['tag_name'])) . "', tag_description = '" . str_replace("\'", "''", addslashes($tag_data['tag_description'])) . "', tag_type = '" . $tag_data['tag_type'] . "', tag_position = '" . $tag_data['tag_position'] . "', tag_forum = '" . $tag_data['tag_forum'] . "'";

   // Si l'on a un ID, il s'agit d'une édition.
   if($tag_data['tag_id'] != 0)
   {
      $sql = "UPDATE " . $sql . "
         WHERE tag_id = " . $tag_data['tag_id'];
      $message = $lang['TiTT_updated_tag'];
   }
   // Sinon, il s'agit d'un nouveau tag à insérer.
   else
   {
      $sql = "INSERT INTO " . $sql;
      $message = $lang['TiTT_added_new_tag'];
   }

   if(!$result = $db->sql_query($sql))
   {
      message_die(GENERAL_ERROR, "Couldn't update/insert into tag's table", "", __LINE__, __FILE__, $sql);
   }

   return $message;
}

/**
 * Supprime un tag de la base.
 *
 * @param $tag_id id du tag.
 * @param $remplacement tag de remplacement (0 si aucun).
 */
function TiTT_delete_tag($tag_id, $tag_type, $remplacement)
{
   global $db, $template, $board_config, $userdata, $phpbb_root_path, $lang;

   // Remplacement du tag dans les topics.
   if($tag_type == TITT_CATEGORY) { $tag_field = 'topic_tag_category'; }
   elseif($tag_type == TITT_STATE) { $tag_field = 'topic_tag_state'; }
   $sql = "UPDATE " . TOPICS_TABLE . "
         SET $tag_field = $remplacement
         WHERE $tag_field = $tag_id";
   if( !$result = $db->sql_query($sql) )
   {
      message_die(GENERAL_ERROR, "Couldn't replace tag in topics", "", __LINE__, __FILE__, $sql);
   }

   // Suppression du fichier dans la base.
   $sql = "DELETE FROM " . TOPICS_TAGS_TABLE . "
      WHERE tag_id = $tag_id";
   if( !$result = $db->sql_query($sql) )
   {
      message_die(GENERAL_ERROR, "Couldn't delete tag data", "", __LINE__, __FILE__, $sql);
   }
}

/**
 * Récupération des données d'un choix.
 *
 * @param $tag_id id du tag.
 */
function TiTT_get_tag_data($tag_id)
{
   global $lang, $board_config, $phpbb_root_path, $phpEx, $db;

   // Recherche du MOD dans la base.
   $sql = "SELECT * FROM " . TOPICS_TAGS_TABLE . "
      WHERE tag_id = $tag_id";
   if(!$result = $db->sql_query($sql))
   {
      message_die(GENERAL_ERROR, "Couldn't obtain mods data", "", __LINE__, __FILE__, $sql);
   }

   // Si l'on n'a pas de résultat, on envoie une erreur.
   if(!$row = $db->sql_fetchrow($result)) { message_die(GENERAL_MESSAGE, $lang['MoLi_no_mod_id']); }
   return $row;
}

/**
 * Dit si l'utilisateur a le droit d'éditer les tags sur ce topic.
 *
 * @param $user_data données de l'utilisateur.
 * @param $topic_data données du sujet.
 * @param $is_auth_apply_tag variable booléenne disant si l'utilisateur a les droit pour l'application des tags dans ce forum.
 */
function TiTT_is_auth_to_apply_tags($user_data, $topic_data, $is_auth_apply_tag)
{
   // Les visiteurs n'ont pas le droit.
   if(!$user_data['session_logged_in']) { return FALSE; }
   // S'il a les droits en édition de tags sur ce sujet, il le droit.
   elseif($is_auth_apply_tag) { return TRUE; }
   // S'il s'agit de l'auteur du topic, il a également le droit.
   elseif($user_data['user_id'] == $topic_data['topic_poster']) { return TRUE; }
   // Sinon, il n'a pas le droit.
   else { return FALSE; }
}
// FIN MOD Tags in topic-titles


Dans "viewtopic.php" :
Code :
#
# Trouver
#
//
// Does this topic contain a poll?

#
# Ajouter avant
#
// DEBUT MOD Tags in topic-titles
if(TiTT_is_auth_to_apply_tags($userdata, $forum_topic_data, $is_auth['auth_apply_tag']))
{
   $select_fields[TITT_CATEGORY] = TiTT_get_selection_field(TITT_CATEGORY, $forum_topic_data['topic_tag_category'], $forum_id, 'apply');
   $select_fields[TITT_STATE] = TiTT_get_selection_field(TITT_STATE, $forum_topic_data['topic_tag_state'], $forum_id, 'apply');
   $types_titles = array(TITT_CATEGORY => $lang['TiTT_category_tag'], TITT_STATE => $lang['TiTT_state_tag']);

   if($select_fields[TITT_CATEGORY] || $select_fields[TITT_STATE])
   {
      $template->assign_block_vars('switch_apply_tag', array(
         'L_TAG_FORM_TITLE' => $lang['TiTT_tag_form_title'],
         'L_SUBMIT' => $lang['Submit'],
         'S_FORM_ACTION' => ("posting.$phpEx?" . POST_TOPIC_URL . '=' . $topic_id . "&amp;mode=change_tag&amp;sid=" . $userdata['session_id']))
      );

      // Parcours des types.
      $nb_tags_types = 0;
      foreach($select_fields as $type => $select)
      {
         if($select)
         {
            $nb_tags_types++;
            $template->assign_block_vars('switch_apply_tag.tag', array(
               'L_TAG' => $types_titles[$type],
               'ROW_CLASS' => (1+$nb_tags_types%2),
               'SELECT_TAG' => $select)
            );
         }
      }
   }
}
// FIN MOD Tags in topic-titles


Dans "modcp.php" :
Code :
#
# Trouver
#
   else if ( $unlock )
   {
      $mode = 'unlock';
   }

#
# Ajouter après
#
   // DEBUT Tags in topic-titles
   elseif($HTTP_POST_VARS['set_tag_' . TITT_CATEGORY])
   {
      $mode = 'set_tag_' . TITT_CATEGORY;
   }
   elseif($HTTP_POST_VARS['set_tag_' . TITT_STATE])
   {
      $mode = 'set_tag_' . TITT_STATE;
   }
   // FIN Tags in topic-titles

#
# Trouver
#
   case 'delete':

#
# Ajouter avant
#
   // DEBUT MOD Tags in topic-titles
   case ('set_tag_' . TITT_CATEGORY) :
   case ('set_tag_' . TITT_STATE) :
      // Récupération du tag selectionné.
      $selected_tags = (is_array($HTTP_POST_VARS['topic_tag'])) ? $HTTP_POST_VARS['topic_tag'] : array();
      if($mode == 'set_tag_' . TITT_CATEGORY) { unset($selected_tags[TITT_STATE]); }
      elseif($mode == 'set_tag_' . TITT_STATE) { unset($selected_tags[TITT_CATEGORY]); }
      
      // Récupération de la liste des topics.
      $topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id);
      $nb_topics = count($topics);
      
      // Application du tag s'il y a des topics selectionnés.
      if($nb_topics > 0)
      {
         foreach($topics as $topic_id)
         {
            TiTT_set_topic_tags($topic_id, $selected_tags);
         }

         $redirect_page = "modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&amp;sid=" . $userdata['session_id'];
         $l_redirect = sprintf($lang['Click_return_modcp'], '<a href="' . $redirect_page . '">', '</a>');         
         message_die(GENERAL_MESSAGE, sprintf($lang['TiTT_tag_applied_to_selected'], $nb_topics) . '<br /><br />' . $l_redirect);
      }
      else
      {
         message_die(GENERAL_MESSAGE, $lang['TiTT_no_topic_to_apply']);
      }
      break;
   // FIN MOD Tags in topic-titles

#
# Trouver
#
      $template->pparse('body');

#
# Ajouter avant
#
      // DEBUT MOD Tags in topic-titles
      $select_fields[TITT_CATEGORY] = TiTT_get_selection_field(TITT_CATEGORY, '', $forum_id, 'apply');
      $select_fields[TITT_STATE] = TiTT_get_selection_field(TITT_STATE, '', $forum_id, 'apply');
      $types_titles = array(TITT_CATEGORY => $lang['TiTT_category_tag'], TITT_STATE => $lang['TiTT_state_tag']);
      
      if($select_fields[TITT_CATEGORY] || $select_fields[TITT_STATE])
      {
         $template->assign_vars(array(
            'L_APPLY_TAG' => $lang['TiTT_apply_tag_to_selected'])
         );
         
         // Parcours des types.
         $nb_tags_types = 0;
         foreach($select_fields as $type => $select)
         {
            if($select)
            {
               $nb_tags_types++;
               $template->assign_block_vars('tag', array(
                  'L_TAG' => $types_titles[$type],
                  'TAG_TYPE' => $type,
                  'ROW_CLASS' => (1+$nb_tags_types%2),
                  'SELECT_TAG' => $select)
               );
            }
         }
      }
      // FIN MOD Tags in topic-titles


Dans "posting.php" :
Code :
#
# trouver
#
//
// End session management
//

#
# Ajouter après
#
// DEBUT MOD Tags in topic-titles
if($mode == 'change_tag')
{
   $selected_tags = (is_array($HTTP_POST_VARS['topic_tag'])) ? $HTTP_POST_VARS['topic_tag'] : array();
   TiTT_set_topic_tags($topic_id, $selected_tags);
      
   // Message.
   $redirect_page = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id");
   $l_redirect = sprintf($lang['Click_return_topic'], '<a href="' . $redirect_page . '">', '</a>');
   message_die(GENERAL_MESSAGE, $lang['TiTT_tags_set'] . '<br /><br />' . $l_redirect);
}
// FIN MOD Tags in topic-titles

#
# Trouver une ligne commençant par
#
      $sql = "SELECT f.*, t.topic_id, t.topic_status, t.topic_type, t.topic_first_post_id, t.topic_last_post_id, t.topic_vote

#
# Remplacer ce début de ligne par
#
      // COMMENTAIRE MOD Tags in topic-titles : La requête qui suit a été modifiée.
      // -- DEBUT Remplacé
      // t.topic_id, t.topic_status, t.topic_type, t.topic_first_post_id, t.topic_last_post_id, t.topic_vote
      // -- Par
      // t.*
      // -- FIN Remplacé
      $sql = "SELECT f.*, t.*

#
# Trouver une ligne commençant par
#
         prepare_post($mode, $post_data, $bbcode_on, $html_on

#
# Ajouter après cette ligne
#
         // DEBUT MOD Tags in topic-titles
         $selected_tags = (is_array($HTTP_POST_VARS['topic_tag'])) ? $HTTP_POST_VARS['topic_tag'] : array();
         if($mode == 'newtopic')
         {
            TiTT_load_tags();
            if(($post_info['must_select_category_tag'] == 1) && !isset($TiTT_topics_tags['by_id'][$selected_tags[TITT_CATEGORY]]))
            {
               $error_msg .= ($error_msg == '') ? '' : '<br />';
               $error_msg .= $lang['TiTT_must_select_category_tag_error'];
            }
            if(($post_info['must_select_state_tag'] == 1) && !isset($TiTT_topics_tags['by_id'][$selected_tags[TITT_STATE]]))
            {
               $error_msg .= ($error_msg == '') ? '' : '<br />';
               $error_msg .= $lang['TiTT_must_select_state_tag_error'];
            }
         }
         // FIN MOD Tags in topic-titles

#
# Trouver une ligne commençant par
#
            submit_post($mode, $post_data, $return_message
            
#
# Ajouter après cette ligne
#
            // DEBUT MOD Tags in topic-titles
            TiTT_set_topic_tags($topic_id, $selected_tags);
            // FIN MOD Tags in topic-titles

#
# Trouver
#
$template->pparse('body');

#
# Ajouter avant
#
// DEBUT MOD Tags in topic-titles
if($post_data['first_post'])
{
   if(isset($HTTP_POST_VARS['topic_tag'][1])) { $post_info['topic_tag_category'] = intval($HTTP_POST_VARS['topic_tag'][1]); }
   if(isset($HTTP_POST_VARS['topic_tag'][2])) { $post_info['topic_tag_state'] = intval($HTTP_POST_VARS['topic_tag'][2]); }

   $select_fields[TITT_CATEGORY] = TiTT_get_selection_field(TITT_CATEGORY, $post_info['topic_tag_category'], $forum_id, 'apply');
   $select_fields[TITT_STATE] = TiTT_get_selection_field(TITT_STATE, $post_info['topic_tag_state'], $forum_id, 'apply');
   $types_titles = array(TITT_CATEGORY => $lang['TiTT_category_tag'], TITT_STATE => $lang['TiTT_state_tag']);

   if($select_fields[TITT_CATEGORY] || $select_fields[TITT_STATE])
   {
      foreach($select_fields as $type => $select)
      {
         if($select)
         {
            $template->assign_block_vars('tag', array(
               'L_TAG' => $types_titles[$type],
               'SELECT_TAG' => $select)
            );
         }
      }
   }
}
// FIN MOD Tags in topic-titles


Dans "viewforum.php" :
Code :
#
# Trouver
#
//
// End of forum prune
//

#
# Ajouter après
#
// DEBUT MOD Tags in topic-titles
if(is_array($HTTP_POST_VARS['topic_tag'])) { $selected_tags_filters = $HTTP_POST_VARS['topic_tag']; }
elseif(is_array($HTTP_GET_VARS['topic_tag'])) { $selected_tags_filters = $HTTP_GET_VARS['topic_tag']; }
else { $selected_tags_filters = array(); }

$sql_tags_filter = '';
$url_tag_filter = '';
foreach($selected_tags_filters as $type => $tag)
{
   if($type == TITT_CATEGORY) { $field = 't.topic_tag_category'; }
   elseif($type == TITT_STATE) { $field = 't.topic_tag_state'; }
   else { $field = ''; }
      
   if($field && $tag != -1)
   {
      $url_tag_filter .= "&amp;topic_tag[$type]=$tag";
      if($tag < 0)
      {
         $sql_tag_in = TiTT_get_tag_list($type, $forum_id);
         $sql_tags_filter .= ($sql_tag_in != '') ? " AND $field NOT IN ($sql_tag_in) " : '';
      }
      else { $sql_tags_filter .= " AND $field = $tag "; }      
   }
}
// FIN MOD Tags in topic-titles

#
# Trouver
#
$min_topic_time = time() - ($topic_days * 86400);

#
# Ajouter après
#
// COMMENTAIRE MOD Tags in topic-titles : La requête qui suit a été modifiée.
// -- DEBUT Ajouté
//  $sql_tags_filter
// -- FIN Ajouté

#
# Trouver
#
// for this forum
//

#
# Ajouter après
#
// COMMENTAIRE MOD Tags in topic-titles : La requête qui suit a été modifiée.
// -- DEBUT Ajouté
//  $sql_tags_filter
// -- FIN Ajouté

#
# Trouver
#
      WHERE t.forum_id = $forum_id

#
# Ajouter après
#
         $sql_tags_filter

#
# Trouver
#
   if ( !empty($HTTP_POST_VARS['topicdays']) )
   {
      $start = 0;
   }
}

#
# Ajouter après
#
// FIN MOD Tags in topic-titles
elseif($sql_tags_filter != '')
{
   $sql = "SELECT COUNT(t.topic_id) AS forum_topics
      FROM " . TOPICS_TABLE . " t
      WHERE t.forum_id = $forum_id
         $sql_tags_filter";

   if ( !($result = $db->sql_query($sql)) )
   {
      message_die(GENERAL_ERROR, 'Could not obtain limited topics count information', '', __LINE__, __FILE__, $sql);
   }
   $row = $db->sql_fetchrow($result);
   $topics_count = ( $row['forum_topics'] ) ? $row['forum_topics'] : 1;
}
// FIN MOD Tags in topic-titles

#
# Trouver
#
      $limit_topics_time

#
# Ajouter avant
#
      $sql_tags_filter

#
# Trouver
#
   'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL ."=$forum_id"),

#
# Remplacer par
#
   // DEBUT MOD Tags in topic-titles
   // -- DEBUT Enlevé
   // 'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL ."=$forum_id"),
   // -- FIN Enlevé
   'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL ."=$forum_id" . $url_tag_filter),
   // FIN MOD Tags in topic-titles

#
# Trouver
#
   'U_MARK_READ' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&amp;mark=topics"))
);

#
# Ajouter après
#
// DEBUT MOD Tags in topic-titles
$select_fields[TITT_CATEGORY] = TiTT_get_selection_field(TITT_CATEGORY, $selected_tags_filters[TITT_CATEGORY], $forum_id, 'filter');
$select_fields[TITT_STATE] = TiTT_get_selection_field(TITT_STATE, $selected_tags_filters[TITT_STATE], $forum_id, 'filter');
$types_titles = array(TITT_CATEGORY => $lang['TiTT_category_tag'], TITT_STATE => $lang['TiTT_state_tag']);

if($select_fields[TITT_CATEGORY] || $select_fields[TITT_STATE])
{
   $template->assign_block_vars('switch_filter_tag', array(
      'L_TAG_FORM_TITLE' => $lang['TiTT_tag_filter_title'],
      'L_SUBMIT' => $lang['Submit'],
      'S_FORM_ACTION' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $forum_id . "&amp;order=$order&amp;topicdays=$topic_days"))
   );
      
   // Parcours des types.
   $nb_tags_types = 0;
   foreach($select_fields as $type => $select)
   {
      if($select)
      {
         $nb_tags_types++;
         $template->assign_block_vars('switch_filter_tag.tag', array(
            'L_TAG' => $types_titles[$type],
            'ROW_CLASS' => (1+$nb_tags_types%2),
            'SELECT_TAG' => $select)
         );
      }
   }
}
// FIN MOD Tags in topic-titles

#
# Trouver
#
      'PAGINATION' => generate_pagination("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&amp;topicdays=$topic_days", $topics_count, $board_config['topics_per_page'], $start),

#
# Remplacer par
#
      // DEBUT MOD Tags in topic-titles
      // -- DEBUT Enlevé
      // 'PAGINATION' => generate_pagination("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&amp;topicdays=$topic_days", $topics_count, $board_config['topics_per_page'], $start),
      // -- FIN Enlevé
      'PAGINATION' => generate_pagination("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&amp;topicdays=$topic_days" . $url_tag_filter, $topics_count, $board_config['topics_per_page'], $start),
      // FIN MOD Tags in topic-titles


Dans "admin/admin_forumauth.php" :
Code :
#
# Trouver
#
//                View      Read      Post      Reply     Edit     Delete    Sticky   Announce    Vote      Poll
$simple_auth_ary = array(
   0  => array(AUTH_ALL, AUTH_ALL, AUTH_ALL, AUTH_ALL, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG),
   1  => array(AUTH_ALL, AUTH_ALL, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG),
   2  => array(AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG),
   3  => array(AUTH_ALL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_MOD, AUTH_ACL, AUTH_ACL),
   4  => array(AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_MOD, AUTH_ACL, AUTH_ACL),
   5  => array(AUTH_ALL, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD),
   6  => array(AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD),
);

#
# Remplacer par
#
// DEBUT MOD Tags in topic-titles
// -- DEBUT Enlevé
// //                View      Read      Post      Reply     Edit     Delete    Sticky   Announce    Vote      Poll
// $simple_auth_ary = array(
//    0  => array(AUTH_ALL, AUTH_ALL, AUTH_ALL, AUTH_ALL, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG),
//    1  => array(AUTH_ALL, AUTH_ALL, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG),
//    2  => array(AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG),
//    3  => array(AUTH_ALL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_MOD, AUTH_ACL, AUTH_ACL),
//    4  => array(AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_MOD, AUTH_ACL, AUTH_ACL),
//    5  => array(AUTH_ALL, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD),
//    6  => array(AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD),
// );
// -- FIN Enlevé
//                View      Read      Post      Reply     Edit     Delete    Sticky   Announce    Vote    Apply tag   Poll
$simple_auth_ary = array(
   0  => array(AUTH_ALL, AUTH_ALL, AUTH_ALL, AUTH_ALL, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_MOD, AUTH_REG),
   1  => array(AUTH_ALL, AUTH_ALL, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_MOD, AUTH_REG),
   2  => array(AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_MOD, AUTH_REG),
   3  => array(AUTH_ALL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_MOD, AUTH_ACL, AUTH_MOD, AUTH_ACL),
   4  => array(AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_MOD, AUTH_ACL, AUTH_MOD, AUTH_ACL),
   5  => array(AUTH_ALL, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD),
   6  => array(AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD),
);
// FIN MOD Tags in topic-titles

#
# Trouver la ligne commençant par
#
$forum_auth_fields = array(

#
# Ajouter avant
#
// COMMENTAIRE MOD Tags in topic-titles : La ligne qui suit a été modifiée.
// -- DEBUT Ajouté
// , 'auth_apply_tag'
// -- FIN Ajouté

#
# Dans la ligne, trouver
#
'auth_vote'

#
# Ajouter après
#
, 'auth_apply_tag'

#
# Trouver
#
   'auth_vote' => $lang['Vote'],

#
# Ajouter après
#
   // DEBUT MOD Tags in topic-titles
   'auth_apply_tag' => $lang['TiTT_apply_tag'],
   // FIN MOD Tags in topic-titles


Dans "admin/admin_ug_auth.php" :
Code :
#
# Trouver la ligne commençant par
#
$forum_auth_fields = array(

#
# Ajouter avant
#
// COMMENTAIRE MOD Tags in topic-titles : La ligne qui suit a été modifiée.
// -- DEBUT Ajouté
// , 'auth_apply_tag'
// -- FIN Ajouté

#
# Dans la ligne, trouver
#
'auth_vote'

#
# Ajouter après
#
, 'auth_apply_tag'

#
# Trouver
#
   'auth_vote' => AUTH_VOTE,

#
# Ajouter après
#
   // DEBUT MOD Tags in topic-titles
   'auth_apply_tag' => AUTH_APPLY_TAG,
   // FIN MOD Tags in topic-titles

#
# Trouver
#
   'auth_vote' => $lang['Vote'],

#
# Ajouter après
#
   // DEBUT MOD Tags in topic-titles
   'auth_apply_tag' => $lang['TiTT_apply_tag'],
   // FIN MOD Tags in topic-titles


Dans "includes/auth.php" :
Code :
#
# Trouver
#
         $a_sql = 'a.auth_view, a.auth_read, a.auth_post, a.auth_reply, a.auth_edit, a.auth_delete, a.auth_sticky, a.auth_announce, a.auth_vote, a.auth_pollcreate';
         $auth_fields = array('auth_view', 'auth_read', 'auth_post', 'auth_reply', 'auth_edit', 'auth_delete', 'auth_sticky', 'auth_announce', 'auth_vote', 'auth_pollcreate');

#
# Remplacer par
#
         // COMMENTAIRE MOD Tags in topic-titles : La ligne qui suit a été modifiée.
         // -- DEBUT Ajouté
         // , a.auth_apply_tag
         // -- FIN Ajouté
         $a_sql = 'a.auth_view, a.auth_read, a.auth_post, a.auth_reply, a.auth_edit, a.auth_delete, a.auth_sticky, a.auth_announce, a.auth_vote, a.auth_apply_tag, a.auth_pollcreate';
         // COMMENTAIRE MOD Tags in topic-titles : La ligne qui suit a été modifiée.
         // -- DEBUT Ajouté
         // , 'auth_apply_tag'
         // -- FIN Ajouté
         $auth_fields = array('auth_view', 'auth_read', 'auth_post', 'auth_reply', 'auth_edit', 'auth_delete', 'auth_sticky', 'auth_announce', 'auth_vote', 'auth_apply_tag', 'auth_pollcreate');

#
# Trouver
#
      case AUTH_ATTACH:

#
# Ajouter avant
#
      // DEBUT MOD Tags in topic-titles
      case AUTH_APPLY_TAG:
         $a_sql = 'a.auth_apply_tag';
         $auth_fields = array('auth_apply_tag');
         break;
      // FIN MOD Tags in topic-titles


Dans "admin/admin_forums.php" :
Code :
#
# Trouver
#
            'PRUNE_DAYS' => ( isset($pr_row['prune_days']) ) ? $pr_row['prune_days'] : 7,

#
# Ajouter avant
#
            // DEBUT MOD Tags in topic-titles
            'L_MUST_SELECT_CATEGORY_TAG' => $lang['TiTT_must_select_category_tag'],
            'L_MUST_SELECT_CATEGORY_TAG_EXPLAIN' => $lang['TiTT_must_select_category_tag_explain'],
            'L_MUST_SELECT_STATE_TAG' => $lang['TiTT_must_select_state_tag'],
            'L_MUST_SELECT_STATE_TAG_EXPLAIN' => $lang['TiTT_must_select_state_tag_explain'],
            'MUST_SELECT_CATEGORY_TAG_YES' => ($row['must_select_category_tag']) ? 'checked="checked"' : '',
            'MUST_SELECT_CATEGORY_TAG_NO' => (!$row['must_select_category_tag']) ? 'checked="checked"' : '',
            'MUST_SELECT_STATE_TAG_YES' => ($row['must_select_state_tag']) ? 'checked="checked"' : '',
            'MUST_SELECT_STATE_TAG_NO' => (!$row['must_select_state_tag']) ? 'checked="checked"' : '',
            'L_YES' => $lang['Yes'],
            'L_NO' => $lang['No'],
            // FIN MOD Tags in topic-titles

#
# Trouver
#
         $sql = "INSERT INTO " . FORUMS_TABLE . "

#
# Ajouter avant
#
         // COMMENTAIRE MOD Tags in topic-titles : La ligne qui suit a été modifiée.
         // -- DEBUT Ajouté
         // , must_select_category_tag, must_select_state_tag
         // -- Et
         // , " . intval($HTTP_POST_VARS['must_select_category_tag']) . ", " . intval($HTTP_POST_VARS['must_select_state_tag']) . "
         // -- FIN Ajouté

#
# Dans la ligne, trouver
#
forum_status

#
# Dans la ligne, ajouter après
#
, must_select_category_tag, must_select_state_tag

#
# Dans la ligne qui suit, trouver
#
intval($HTTP_POST_VARS['forumstatus']) . "

#
# Dans la ligne, ajouter après
#
, " . intval($HTTP_POST_VARS['must_select_category_tag']) . ", " . intval($HTTP_POST_VARS['must_select_state_tag']) . "

#
# Trouver
#
         $sql = "UPDATE " . FORUMS_TABLE . "

#
# Ajouter avant
#
         // COMMENTAIRE MOD Tags in topic-titles : La ligne qui suit a été modifiée.
         // -- DEBUT Ajouté
         // , must_select_category_tag = " . intval($HTTP_POST_VARS['must_select_category_tag']) . ", must_select_state_tag = " . intval($HTTP_POST_VARS['must_select_state_tag']) . "
         // -- FIN Ajouté

#
# Dans la ligne qui suit, trouver
#
forum_status = " . intval($HTTP_POST_VARS['forumstatus']) . "

#
# Dans la ligne, ajouter après
#
, must_select_category_tag = " . intval($HTTP_POST_VARS['must_select_category_tag']) . ", must_select_state_tag = " . intval($HTTP_POST_VARS['must_select_state_tag']) . "


Dans "languages/lang_french/lang_main.php" :
Code :
#
# Trouver
#
?>

#
# Ajouter avant
#
// DEBUT MOD Tags in topic-titles
$lang['TiTT_tag_form_title'] = 'Tags à adjoindre au titre du sujet';
$lang['TiTT_category_tag'] = 'Catégorie du sujet';
$lang['TiTT_state_tag'] = 'État du sujet';
$lang['TiTT_category'] = 'Catégorie';
$lang['TiTT_state'] = 'État';
$lang['TiTT_before'] = 'Avant';
$lang['TiTT_after'] = 'Après';
$lang['TiTT_tags_set'] = 'Les tags appliqués au sujet ont été mis à jour.';
$lang['TiTT_tag_applied_to_selected'] = 'Le tag a bien été appliqué aux %s sujets selectionnés.';
$lang['TiTT_no_topic_to_apply'] = 'Vous devez selectionner au moins un sujet auquel appliquer ce tag.';
$lang['TiTT_apply_tag_to_selected'] = 'Appliquer ce tag aux sujets selectionnés';
$lang['TiTT_all_topics'] = 'Tous les sujets';
$lang['TiTT_all_topics_without_tag'] = 'Les sujets sans tag';
$lang['TiTT_tag_filter_title'] = 'Filtrer les sujets selon les tags';
$lang['TiTT_must_select_category_tag_error'] = 'Vous devez selectionner un tag de catégorie.';
$lang['TiTT_must_select_state_tag_error'] = 'Vous devez selectionner un tag d\'état.';
// FIN MOD Tags in topic-titles


Dans "language/lang_french/lang_admin.php" :
Code :
#
# Trouver
#
?>

#
# Ajouter avant
#
// DEBUT MOD Tags in topic-titles
$lang['TiTT_admin_tags'] = 'Gestion des tags';
$lang['TiTT_Click_return_admin'] = 'Cliquez %sici%s pour retourner à la page de gestion des tags de titres de sujets.';
$lang['TiTT_Must_select_tag'] = 'Aucun tag selectionné';
$lang['TiTT_admin_tags_explain'] = 'Ici vous pouvez configurer les tags pouvant être associés aux titres des sujets.';
$lang['TiTT_edit_tag'] = 'Modifier ce tag';
$lang['TiTT_tag_name'] = 'Nom du tag';
$lang['TiTT_tag_name_explain'] = 'Texte du tag. Vous pouvez y appliquer de l\'HTML pour y intégrer une image ou un style. Vous pouvez également y intégrer la date ou le tag a été mis en place via la chaîne <em>%d</em>.';
$lang['TiTT_tag_type'] = 'Type du tag';
$lang['TiTT_tag_type_explain'] = 'Détermine à quel type appartient ce tag. Un même sujet ne peut avoir qu\'un seul tag par type à la fois.';
$lang['TiTT_tag_position'] = 'Position du tag';
$lang['TiTT_tag_position_explain'] = 'Détermine si le tag doit être affiché avant ou après le titre du sujet auquel il est associé.';
$lang['TiTT_tag_description'] = 'Description';
$lang['TiTT_tag_description_explain'] = 'Description détaillant la signification du tag.';
$lang['TiTT_tag_forum'] = 'Forum';
$lang['TiTT_tag_forum_explain'] = 'Précisez ici si le tag doit être restreint à un seul forum ou autorisé dans tous les forums.';
$lang['TiTT_added_new_tag'] = 'Le tag a bien été ajouté.';
$lang['TiTT_updated_tag'] = 'Le tag a bien été mis à jour.';
$lang['TiTT_tag_suppressed'] = 'Le tag a bien été supprimé.';
$lang['TiTT_confirm_delete_tag'] = 'Êtes-vous sûr de vouloir effacer ce tag ?';
$lang['TiTT_choose_replacement_tag'] = 'Si oui, selectionnez le tag de remplacement à appliquer aux sujet liés à ce tag : ';
$lang['TiTT_no_tag_to_replace'] = 'Si oui, comme il n\'y a aucun tag suceptible de le remplacer, ce tag sera retiré aux sujets qui lui sont liés.';
$lang['TiTT_add_tag'] = 'Ajouter un tag';
$lang['TiTT_no_forum_restriction'] = '- Pas de restriction -';
$lang['TiTT_apply_tag'] = 'Appliquer un tag';
$lang['TiTT_must_select_category_tag'] = 'Forcer la selection d\'un tag de catégorie ?';
$lang['TiTT_must_select_category_tag_exlplain'] = 'Activez cette option si tout sujet posté dans ce forum doit obligatoirement avoir un tag de catégorie associé. Cette obligation n\'est testée qu\'au moment de poster un nouveau sujet, pas en cas d\'édition ou autre cas de modification du tag.';
$lang['TiTT_must_select_state_tag'] = 'Forcer la selection d\'un tag d\'état ?';
$lang['TiTT_must_select_state_tag_exlplain'] = 'Activez cette option si tout sujet posté dans ce forum doit obligatoirement avoir un tag d\'état associé. Cette obligation n\'est testée qu\'au moment de poster un nouveau sujet, pas en cas d\'édition ou autre cas de modification du tag.';
// -- Formulaire de conversion.
$lang['TiTT_all_forums'] = '- Tous les forums -';
$lang['TiTT_convert_titles'] = 'Conversion automatique';
$lang['TiTT_convert_titles_explain'] = 'Ce formulaire permet de convertir automatiquement les titres vérifiant une certaine condition en leur appliquant un tag.';
$lang['TiTT_title_expression'] = 'Expression des titres à convertir';
$lang['TiTT_title_expression_explain'] = 'Chaîne de caractère à rechercher dans les titres. Cette chaîne sera rétirée du titre et remplacée par le tag selectionné. Attention, la conversion n\'est pas sensible à la casse, donc si vous indiquez "TEST", les chaînes "test" ou même "TeSt" seront reconnues également.';
$lang['TiTT_start'] = 'en début de titre';
$lang['TiTT_end'] = 'en fin de titre';
$lang['TiTT_anywhere'] = 'n\'importe où dans le titre';
$lang['TiTT_convert'] = 'Convertir';
$lang['TiTT_convert_category_tag'] = 'Tag de catégorie';
$lang['TiTT_convert_state_tag'] = 'Tag d\'état';
$lang['TiTT_forum_restriction'] = 'Restriction à un forum';
$lang['TiTT_forum_restriction_explain'] = 'Choisissez ici si vous voulez effectuer cette conversion dans toutes les sections ou seulement dans un forum en particulier.';
$lang['TiTT_ignore_tagged_topics'] = 'Ignorer les sujets déjà taggés';
$lang['TiTT_ignore_tagged_topics_explain'] = 'Cochez \'oui\' si vous voulez que la conversion ne s\'applique qu\'aux sujets n\'ayant pas déjà un tag et \'non\' que cela s\'applique à tous les sujets (le tag pré-existant sera alors remplacé).';
// -- Traitement de la conversion.
$lang['TiTT_no_type_selected'] = 'Aucun type de tag selectionné.';
$lang['TiTT_no_tag_selected'] = 'Aucun tag n\'est selectionné pour le type considéré.';
$lang['TiTT_no_expression_selected'] = 'Vous n\'avez selectionné aucune chaîne à reconnaître dans les titres';
$lang['TiTT_topics_tags_converted'] = '%s sujets ont été convertis.';
// DEBUT MOD Tags in topic-titles


Dans "templates/subSilver/modcp_body.tpl" :
Code :
#
# Trouver
#
      <input type="submit" name="unlock" class="liteoption" value="{L_UNLOCK}" />
     </td>
   </tr>

#
# Ajouter après
#
   <!-- BEGIN tag -->
   <tr>
     <td class="rm row3 gen" colspan="5">{tag.L_TAG}&nbsp;: {tag.SELECT_TAG} <input name="set_tag_{tag.TAG_TYPE}" type="submit" value="{L_APPLY_TAG}" class="liteoption" /></td>
   </tr>
   <!-- END tag -->


Dans "templates/subSilver/viewtopic_body.tpl" :
Code :
#
# Dans une ligne, trouver
#
{S_TOPIC_ADMIN}</td>

#
# Dans cette ligne, remplacer par
#
{S_TOPIC_ADMIN}
     <!-- BEGIN switch_apply_tag -->
     <form method="post" action="{switch_apply_tag.S_FORM_ACTION}">
     <table class="fl forumline gensmall" cellspacing="1" cellpadding="3">
        <tr><th class="cm thHead nowrap" colspan="2">{switch_apply_tag.L_TAG_FORM_TITLE}</th></tr>
      <!-- BEGIN tag -->
      <tr>
        <td class="row{switch_apply_tag.tag.ROW_CLASS}">{switch_apply_tag.tag.L_TAG}&nbsp;:</td>
        <td class="row{switch_apply_tag.tag.ROW_CLASS}">{switch_apply_tag.tag.SELECT_TAG}</td>
      </tr>
      <!-- END tag -->
      <tr><td class="cm catBottom" colspan="2"><input name="submit" type="submit" value="{switch_apply_tag.L_SUBMIT}" class="liteoption" /></td></tr>
     </table>
     </form>
     <!-- END switch_apply_tag -->
   </td>


Dans "templates/subSilver/posting_body.tpl" :
Code :
#
# Trouver
#
   <tr>
     <td class="row1" width="22%"><span class="gen"><b>{L_SUBJECT}</b></span></td>
     <td class="row2" width="78%"> <span class="gen">
      <input type="text" name="subject" size="45" maxlength="60" style="width:450px" tabindex="2" class="post" value="{SUBJECT}" />
      </span> </td>
   </tr>

#
# Ajouter après
#
    <!-- BEGIN tag -->
    <tr>
     <td class="row1 bold gen">{tag.L_TAG}</td>
     <td class="row2 genmed">{tag.SELECT_TAG}</td>
    </tr>
    <!-- END tag -->


Dans "templates/subSilver/viewforum.tpl" :
Code :
#
# Trouver
#
   <tr>
     <th colspan="2" align="center" height="25" class="thCornerL" nowrap="nowrap">&nbsp;{L_TOPICS}&nbsp;</th>

#
# Ajouter avant
#
  <!-- BEGIN switch_filter_tag -->
  <tr>
    <td class="rm catBottom gensmall" colspan="6">
      <form method="post" action="{switch_filter_tag.S_FORM_ACTION}">
       <span class="gen bold">{switch_filter_tag.L_TAG_FORM_TITLE}&nbsp;:</span>
       <!-- BEGIN tag -->
       <span class="nowrap" style="margin: 0 5px;">{switch_filter_tag.tag.L_TAG}&nbsp;: {switch_filter_tag.tag.SELECT_TAG}</span>
       <!-- END tag -->
       <input name="submit" type="submit" value="{switch_filter_tag.L_SUBMIT}" class="liteoption" />
     </form>
    </td>
  </tr>
  <!-- END switch_filter_tag -->


Dans "templates/subSilver/admin/forum_edit_body.tpl" :
Code :
#
# Trouver
#
   <tr>
     <td class="row1">{L_FORUM_STATUS}</td>
     <td class="row2"><select name="forumstatus">{S_STATUS_LIST}</select></td>
   </tr>

#
# Ajouter après
#
   <!-- DEBUT MOD Tags in topic-titles -->
   <tr>
     <td class="row1">{L_MUST_SELECT_CATEGORY_TAG}<br /><span class="gensmall">{L_MUST_SELECT_CATEGORY_TAG_EXPLAIN}</span></td>
     <td class="row2">
      <input type="radio" name="must_select_category_tag" value="1" {MUST_SELECT_CATEGORY_TAG_YES} /> {L_YES}&nbsp;&nbsp;
      <input type="radio" name="must_select_category_tag" value="0" {MUST_SELECT_CATEGORY_TAG_NO} /> {L_NO}
     </td>
   </tr>
   <tr>
     <td class="row1">{L_MUST_SELECT_STATE_TAG}<br /><span class="gensmall">{L_MUST_SELECT_STATE_TAG_EXPLAIN}</span></td>
     <td class="row2">
      <input type="radio" name="must_select_state_tag" value="1" {MUST_SELECT_STATE_TAG_YES} /> {L_YES}&nbsp;&nbsp;
      <input type="radio" name="must_select_state_tag" value="0" {MUST_SELECT_STATE_TAG_NO} /> {L_NO}
     </td>
   </tr>
   <!-- FIN MOD Tags in topic-titles -->


Uploader aux emplacement suivants les fichiers contenus dans ce zip :
- admin/admin_topics_tags.php
- templates/subSilver/admin/topics_tags_edit_body.tpl
- templates/subSilver/admin/topics_tags_list_body.tpl
Revenir en haut Aller en bas
Hors ligne | Profil | MP | E-mail | Site web
Dernière édition par Darathor le 29 Avr 2007 15:11; édité 1 fois
  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