Advanced search  

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Pages: [1]   Go Down

Author Topic: [MOD] Thèmes différents par catégorie  (Read 11778 times)

0 Members and 1 Guest are viewing this topic.

Titooy

  • VIP
  • Coppermine addict
  • ***
  • Offline Offline
  • Posts: 736
    • under construction...
[MOD] Thèmes différents par catégorie
« on: October 25, 2005, 09:48:59 am »

L'idée de ce mod est de pouvoir choisir un thème différent pour certaines catégories de votre galerie. Exactement comme le proposent tous les systèmes de forums modernes.

Ajoutez un champ theme dans votre table "categories".

<coppermine>/include/init.inc.php
Trouvez
// Process theme selection if present in URI or in user profile
if (!empty($_GET['theme'])) {
    $USER['theme'] = $_GET['theme'];
}
// Load theme file
if (isset($USER['theme']) && !strstr($USER['theme'], '/') && is_dir('themes/' . $USER['theme'])) {
    $CONFIG['theme'] = strtr($USER['theme'], '$/\\:*?"\'<>|`', '____________');
} else {
    unset($USER['theme']);
}

Si vous ne voulez pas que les visiteurs puissent choisir eux-même le thème (en ajoutant &theme=blabla à la fin de l'URL), supprimez cette section ou mettez-la en commentaire.

Ajoutez avant
// Looks if there's a sub-theme for that category
if (!empty($_GET['cat'])) {
   $result = cpg_db_query("SELECT parent,theme FROM {$CONFIG['TABLE_CATEGORIES']} WHERE cid = '{$_GET['cat']}'");
   $row = mysql_fetch_array($result);
   if (!empty($row['theme']) && !isset($theme_temp))
      $theme_temp = $row['theme'];
   mysql_free_result($result);
   while($row['parent'] != 0)
   {
      $result = cpg_db_query("SELECT parent,theme FROM {$CONFIG['TABLE_CATEGORIES']} WHERE cid = '{$row['parent']}'");
      $row = mysql_fetch_array($result);
      mysql_free_result($result);
      if (isset($row['theme']) && !isset($theme_temp))
         $theme_temp = $row['theme'];
   } // while
   if (isset($theme_temp))
      $CONFIG['theme'] = $theme_temp;
}

// Looks if there's a sub-theme for that album
if (!empty($_GET['album'])) {
   $result = cpg_db_query("SELECT category FROM {$CONFIG['TABLE_ALBUMS']} WHERE aid = '{$_GET['album']}'");
   $row = mysql_fetch_array($result);
   mysql_free_result($result);
   $row['parent'] =  $row['category'];
   while($row['parent'] != 0)
   {
      $result = cpg_db_query("SELECT parent,theme FROM {$CONFIG['TABLE_CATEGORIES']} WHERE cid = '{$row['parent']}'");
      $row = mysql_fetch_array($result);
      mysql_free_result($result);
      if (isset($row['theme']) && !isset($theme_temp))
         $theme_temp = $row['theme'];
   } // while
   if (isset($theme_temp))
      $CONFIG['theme'] = $theme_temp;
}



<coppermine>/catmgr.php
Trouvez
function display_cat_list() {
Ajoutez avant
function form_sub_theme() {
    global $CONFIG, $lang_catmgr_php, $current_category;

    $theme_dir = 'themes/';

    $dir = opendir($theme_dir);
    while ($file = readdir($dir)) {
        if (is_dir($theme_dir . $file) && $file != "." && $file != "..") {
            $theme_array[] = $file;
        }
    }
    closedir($dir);

    natcasesort($theme_array);

    echo <<<EOT
        <tr>
            <td class="tableb" width="60%">
                        {$lang_catmgr_php['cat_theme']}
        </td>
        <td class="tableb" valign="top">
                        <select name="theme" class="listbox">
EOT;
    echo "                    <option value=\"\"></option>\n";
    foreach ($theme_array as $theme) {
        echo "                                <option value=\"$theme\" " . ($theme == $current_category['theme'] ? 'selected="selected"' : '') . ">" . strtr(ucfirst($theme), '_', ' ') . "</option>\n";
    }
    echo <<<EOT
                        </select>
                </td>
        </tr>

EOT;
}



Trouvez
$current_category = array('cid' => '0', 'name' => '', 'parent' => '0', 'description' => '');
Remplacez par
$current_category = array('cid' => '0', 'name' => '', 'parent' => '0', 'description' => '', 'theme' => '');

Trouvez
        $result = cpg_db_query("SELECT cid, name, parent, description, thumb FROM {$CONFIG['TABLE_CATEGORIES']} WHERE cid = '$cid' LIMIT 1");
Remplacez par
        $result = cpg_db_query("SELECT cid, name, parent, description, thumb, theme FROM {$CONFIG['TABLE_CATEGORIES']} WHERE cid = '$cid' LIMIT 1");

Trouvez 2 fois
        if (!isset($_POST['cid']) || !isset($_POST['parent']) || !isset($_POST['name']) || !isset($_POST['description']))
Remplacez par
        if (!isset($_POST['cid']) || !isset($_POST['parent']) || !isset($_POST['name']) || !isset($_POST['description']) || !isset($_POST['theme']))

Trouvez 2 fois
                $description = addslashes($_POST['description']);
Ajoutez après
                $theme = addslashes($_POST['theme']);


Trouvez
                cpg_db_query("UPDATE {$CONFIG['TABLE_CATEGORIES']} SET parent='$parent', name='$name', description='$description', thumb='$thumb' WHERE cid = '$cid' LIMIT 1");
                }else{
                        cpg_db_query("UPDATE {$CONFIG['TABLE_CATEGORIES']} SET name='$name', description='$description', thumb='$thumb' WHERE cid = '$cid' LIMIT 1");

Remplacez par
                cpg_db_query("UPDATE {$CONFIG['TABLE_CATEGORIES']} SET parent='$parent', name='$name', description='$description', thumb='$thumb', theme='$theme' WHERE cid = '$cid' LIMIT 1");
                }else{
                        cpg_db_query("UPDATE {$CONFIG['TABLE_CATEGORIES']} SET name='$name', description='$description', thumb='$thumb', theme='$theme' WHERE cid = '$cid' LIMIT 1");


Trouvez
        cpg_db_query("INSERT INTO {$CONFIG['TABLE_CATEGORIES']} (pos, parent, name, description) VALUES ('10000', '$parent', '$name', '$description')");
Remlacez par
        cpg_db_query("INSERT INTO {$CONFIG['TABLE_CATEGORIES']} (pos, parent, name, description, theme) VALUES ('10000', '$parent', '$name', '$description', '$theme')");

Trouvez
form_alb_thumb();
Ajoutez avant
form_sub_theme();


<coppermine>/lang/french.php (et toutes les langues qui sont utilisées par des administrateurs)
Trouvez
  'cat_desc' => 'Description de la catégorie',
Ajoutez après
  'cat_theme' => 'Thème de la catégorie',

Et voilà !
« Last Edit: November 10, 2005, 07:21:04 am by PYAP »
Logged

FixB

  • Coppermine newbie
  • Offline Offline
  • Posts: 15
Re: [MOD] Thèmes différents par catégorie
« Reply #1 on: January 24, 2006, 09:54:29 pm »

Alors je ne sais pas si je devrais poster ici, mais je tenais à dire : MERCI !!!
C'est tout simplement excellent ! Aucun souci pour appliquer la manip, et franchement c'est une fonctionnalité très très intéressante !

 ;D
Logged

François Keller

  • Moderator
  • Coppermine addict
  • ****
  • Country: fr
  • Offline Offline
  • Gender: Male
  • Posts: 9094
  • aka Frantz
    • Ma galerie
Re: [MOD] Thèmes différents par catégorie
« Reply #2 on: January 25, 2006, 07:38:08 am »

Bonjour,

Quote
Alors je ne sais pas si je devrais poster ici, mais je tenais à dire : MERCI !!!

Si si, c'est bien là  :D
Logged
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

seb1002

  • Coppermine newbie
  • Offline Offline
  • Posts: 16
Re: [MOD] Thèmes différents par catégorie
« Reply #3 on: November 30, 2008, 09:08:55 pm »

Bonjour un petit souci avec ce code....

je suis les étapes et à :

Trouvez 2 fois
        if (!isset($_POST['cid']) || !isset($_POST['parent']) || !isset($_POST['name']) || !isset($_POST['description']))
Remplacez par
        if (!isset($_POST['cid']) || !isset($_POST['parent']) || !isset($_POST['name']) || !isset($_POST['description']) || !isset($_POST['theme']))


je bloque car je ne le trouve qu'une seule fois et ce, à la ligne 303 du fichier catmgr de base de coppermine

J'utilise la dernière version

Une idée ???

un grand merci

seb
Logged

François Keller

  • Moderator
  • Coppermine addict
  • ****
  • Country: fr
  • Offline Offline
  • Gender: Male
  • Posts: 9094
  • aka Frantz
    • Ma galerie
Re: [MOD] Thèmes différents par catégorie
« Reply #4 on: November 30, 2008, 09:15:38 pm »

dans la dernière version, il n'y a en effet qu'une seule occurence de cette ligne. Essayez si ça marche en faisant tout le reste...
Logged
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

seb1002

  • Coppermine newbie
  • Offline Offline
  • Posts: 16
Re: [MOD] Thèmes différents par catégorie
« Reply #5 on: November 30, 2008, 10:49:05 pm »

Justement j'ai essayé mais cela ne fonctionne pas car j'ai FATAL ERROR quand je veux aller sur une categorie

merci

seb
Logged

François Keller

  • Moderator
  • Coppermine addict
  • ****
  • Country: fr
  • Offline Offline
  • Gender: Male
  • Posts: 9094
  • aka Frantz
    • Ma galerie
Re: [MOD] Thèmes différents par catégorie
« Reply #6 on: November 30, 2008, 11:08:18 pm »

j'ai jamais utilisé ce mod qui date déjà un peu et il est possible que le code ait été modifié ailleurs lors des mises à jour
Logged
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

seb1002

  • Coppermine newbie
  • Offline Offline
  • Posts: 16
Re: [MOD] Thèmes différents par catégorie
« Reply #7 on: November 30, 2008, 11:15:18 pm »

je ne trouve pas de mise a jour ... je croise les doigts pour que Titooy passe par ici et pour qu'il ait peut etre une petite réponse ;)
Logged

BEO

  • Coppermine regular visitor
  • **
  • Offline Offline
  • Posts: 70
Re: [MOD] Thèmes différents par catégorie
« Reply #8 on: January 11, 2010, 03:33:00 pm »

Ce plugin est très pratique, seulement, il affiche le thème par defaut une fois qu'on va dans un album.

En gros, le thème perso est mis dans la catégorie et quand on va dans un album de la catégorie, il prend plus en compte le thème.

Logged
Pages: [1]   Go Up
 

Page created in 0.034 seconds with 20 queries.