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à !
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
Bonjour,
QuoteAlors je ne sais pas si je devrais poster ici, mais je tenais à dire : MERCI !!!
Si si, c'est bien là :D
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
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...
Justement j'ai essayé mais cela ne fonctionne pas car j'ai FATAL ERROR quand je veux aller sur une categorie
merci
seb
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
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 ;)
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.