Les photos de mon sites sont classées dans 3 catégories et sous catégories: "Provenances géographiques / Genres / Espèces".
J'aurais besoin de les voir apparaitre de cette façon:
Les provenances géographiques: en gras (pour une meilleure lisibilité).
Les genres: en italique.
Les espèces: en italique (sauf quand l'espèce est indiquée entre guillemets).
Ca donnerait à l'usage:
- Provenance géographique / Genre / Espèce
soit
- Provenance géographique / Genre / "Espèce"
Si je suis un peu tatillon (voir lourdingue), c'est juste pour répondre à la nomenclature scientifique en vigueur.
Merci à ceux qui pourront m'aider à résoudre ce problème.
Hors ligne
Voir mon avis dans [Evolution] Comment doivent être présentées les miniatures ?
Hors ligne
VDigital a créé un topic de type "discussion" dans la section dédiée du forum, mais je ne comprends pas ta demande comme lui. En effet, pour moi, tu veux modifier la police des noms de catégories dans le menu, pour VDigital, tu veux modifier la police de la légende des miniatures.
Peux-tu trancher entre "menu" et "légende".
(Si c'est "menu", j'ai peut-être une solution simple qui ne fait modifier que le CSS)
Hors ligne
Finalement la solution n'est pas simplement une modification de CSS pour les menus.
Release 1.4.1, dans include/function_html.inc.php, ligne 393, après
390 else 391 { 392 $class = 'menuCategoryNotSelected'; 393 }
insères
switch ($level) { case 0 : { $class = 'provenance'; break; } case 1 : { $class = 'genre'; break; } case 2 : { $class = 'espece'; break; } default : { $class = ''; } }
puis dans template/default/default.css, à la fin, ajoute
UL.menu A.provenance { font-weight: bold; } UL.menu A.genre { font-style: italic; } UL.menu A.espece:before { content: '"'; } UL.menu A.espece:after { content: '"'; }
Hors ligne
Je trouvais l'idée de z0rglub excellente.
Et je suis déçu que ça ne marche pas, mais le pire c'est que je ne vois absolument pas pourquoi ça ne marche pas.
Hors ligne
J'ai peut-être merdé, voici les fichiers modifiés:
functions_html.inc.php:
<?php // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | // | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | branch : BSF (Best So Far) // | file : $RCSfile: functions_html.inc.php,v $ // | last update : $Date: 2005/01/08 00:18:39 $ // | last modifier : $Author: plg $ // | revision : $Revision: 1.22 $ // +-----------------------------------------------------------------------+ // | This program is free software; you can redistribute it and/or modify | // | it under the terms of the GNU General Public License as published by | // | the Free Software Foundation | // | | // | This program is distributed in the hope that it will be useful, but | // | WITHOUT ANY WARRANTY; without even the implied warranty of | // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | // | General Public License for more details. | // | | // | You should have received a copy of the GNU General Public License | // | along with this program; if not, write to the Free Software | // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | // | USA. | // +-----------------------------------------------------------------------+ function get_icon( $date ) { global $user, $conf, $lang; if (!preg_match('/\d{4}-\d{2}-\d{2}/', $date)) { return ''; } list( $year,$month,$day ) = explode( '-', $date ); $unixtime = mktime( 0, 0, 0, $month, $day, $year ); $diff = time() - $unixtime; $day_in_seconds = 24*60*60; $output = ''; $title = $lang['recent_image'].' '; if ( $diff < $user['recent_period'] * $day_in_seconds ) { $icon_url = './template/'.$user['template'].'/theme/'; $icon_url.= 'recent.gif'; $title .= $user['recent_period']; $title .= ' '.$lang['days']; $size = getimagesize( $icon_url ); $output = '<img title="'.$title.'" src="'.$icon_url.'" style="border:0;'; $output.= 'height:'.$size[1].'px;width:'.$size[0].'px" alt="" />'; } return $output; } function create_navigation_bar($url, $nb_element, $start, $nb_element_page, $link_class) { global $lang, $conf; $pages_around = $conf['paginate_pages_around']; $navbar = ''; // current page detection if (!isset($start) or !is_numeric($start) or (is_numeric($start) and $start < 0)) { $start = 0; } // navigation bar useful only if more than one page to display ! if ($nb_element > $nb_element_page) { // current page and last page $cur_page = ceil($start / $nb_element_page) + 1; $maximum = ceil($nb_element / $nb_element_page); // link to first page ? if ($cur_page != 1) { $navbar.= '<a href="'; $navbar.= add_session_id($url.'&start=0'); $navbar.= '" class="'.$link_class.'">'.$lang['first_page']; $navbar.= '</a>'; } else { $navbar.= $lang['first_page']; } $navbar.= ' | '; // link on previous page ? if ( $start != 0 ) { $previous = $start - $nb_element_page; $navbar.= '<a href="'; $navbar.= add_session_id( $url.'&start='.$previous ); $navbar.= '" class="'.$link_class.'">'.$lang['previous_page']; $navbar.= '</a>'; } else { $navbar.= $lang['previous_page']; } $navbar.= ' | '; if ($cur_page > $pages_around + 1) { $navbar.= ' <a href="'; $navbar.= add_session_id($url.'&start=0'); $navbar.= '" class="'.$link_class.'">1</a>'; if ($cur_page > $pages_around + 2) { $navbar.= ' ...'; } } // inspired from punbb source code for ($i = $cur_page - $pages_around, $stop = $cur_page + $pages_around + 1; $i < $stop; $i++) { if ($i < 1 or $i > $maximum) { continue; } else if ($i != $cur_page) { $temp_start = ($i - 1) * $nb_element_page; $navbar.= ' <a href="'; $navbar.= add_session_id($url.'&start='.$temp_start); $navbar.= '" class="'.$link_class.'">'.$i.'</a>'; } else { $navbar.= ' <span class="pageNumberSelected">'; $navbar.= $i.'</span>'; } } if ($cur_page < ($maximum - $pages_around)) { $temp_start = ($maximum - 1) * $nb_element_page; if ($cur_page < ($maximum - $pages_around - 1)) { $navbar.= ' ...'; } $navbar.= ' <a href="'; $navbar.= add_session_id($url.'&start='.$temp_start); $navbar.= '" class="'.$link_class.'">'.$maximum.'</a>'; } $navbar.= ' | '; // link on next page ? if ( $nb_element > $nb_element_page && $start + $nb_element_page < $nb_element ) { $next = $start + $nb_element_page; $navbar.= '<a href="'; $navbar.= add_session_id( $url.'&start='.$next ); $navbar.= '" class="'.$link_class.'">'.$lang['next_page'].'</a>'; } else { $navbar.= $lang['next_page']; } $navbar.= ' | '; // link to last page ? if ($cur_page != $maximum) { $temp_start = ($maximum - 1) * $nb_element_page; $navbar.= '<a href="'; $navbar.= add_session_id($url.'&start='.$temp_start); $navbar.= '" class="'.$link_class.'">'.$lang['last_page']; $navbar.= '</a>'; } else { $navbar.= $lang['last_page']; } } return $navbar; } // // Pick a language, any language ... // function language_select($default, $select_name = "language") { $available_lang = get_languages(); $lang_select = '<select name="' . $select_name . '" onchange="this.form.submit()">'; foreach ($available_lang as $code => $displayname) { $selected = ( strtolower($default) == strtolower($code) ) ? ' selected="selected"' : ''; $lang_select .= '<option value="' . $code . '"' . $selected . '>' . ucwords($displayname) . '</option>'; } $lang_select .= '</select>'; return $lang_select; } // // Pick a template/theme combo, // function style_select($default_style, $select_name = "style") { $templates = get_templates(); $style_selected = '<select name="' . $select_name . '" >'; foreach ($templates as $template) { $selected = ( $template == $default_style ) ? ' selected="selected"' : ''; $style_selected.= '<option value="'.$template.'"'.$selected.'>'; $style_selected.= $template.'</option>'; } $style_selected .= '</select>'; return $style_selected; } /** * returns the list of categories as a HTML string * * categories string returned contains categories as given in the input * array $cat_informations. $cat_informations array must be an association * of {category_id => category_name}. If url input parameter is empty, * returns only the categories name without links. * * @param array cat_informations * @param string url * @param boolean replace_space * @return string */ function get_cat_display_name($cat_informations, $url = 'category.php?cat=', $replace_space = true) { global $conf; $output = ''; $is_first = true; foreach ($cat_informations as $id => $name) { if ($is_first) { $is_first = false; } else { $output.= $conf['level_separator']; } if ($url == '') { $output.= $name; } else { $output.= ' <a class="" href="'.add_session_id(PHPWG_ROOT_PATH.$url.$id).'">'.$name.'</a>'; } } if ($replace_space) { return replace_space($output); } else { return $output; } } /** * returns the list of categories as a HTML string, with cache of names * * categories string returned contains categories as given in the input * array $cat_informations. $uppercats is the list of category ids to * display in the right order. If url input parameter is empty, returns only * the categories name without links. * * @param string uppercats * @param string url * @param boolean replace_space * @return string */ function get_cat_display_name_cache($uppercats, $url = 'category.php?cat=', $replace_space = true) { global $cat_names, $conf; if (!isset($cat_names)) { $query = ' SELECT id,name FROM '.CATEGORIES_TABLE.' ;'; $result = pwg_query($query); while ($row = mysql_fetch_array($result)) { $cat_names[$row['id']] = $row['name']; } } $output = ''; $is_first = true; foreach (explode(',', $uppercats) as $category_id) { $name = $cat_names[$category_id]; if ($is_first) { $is_first = false; } else { $output.= $conf['level_separator']; } if ($url == '') { $output.= $name; } else { $output.= ' <a class="" href="'.add_session_id(PHPWG_ROOT_PATH.$url.$category_id).'">'.$name.'</a>'; } } if ($replace_space) { return replace_space($output); } else { return $output; } } /** * returns the HTML code for a category item in the menu (for category.php) * * HTML code generated uses logical list tags ul and each category is an * item li. The paramter given is the category informations as an array, * used keys are : id, name, nb_images, date_last * * @param array categories * @return string */ function get_html_menu_category($categories) { global $page, $lang; $ref_level = 0; $menu = ' <ul class="menu">'; foreach ($categories as $category) { $level = substr_count($category['global_rank'], '.'); if ($level > $ref_level) { $menu.= ' <ul class="menu">'; } else if ($level < $ref_level) { // we may have to close more than one level at the same time... $menu.= str_repeat("\n</ul>",($ref_level-$level)); } $ref_level = $level; $menu.= ' <li>'; $url = add_session_id(PHPWG_ROOT_PATH.'category.php?cat='.$category['id']); $class = ''; if (isset($page['cat']) and is_numeric($page['cat']) and $category['id'] == $page['cat']) { $class = 'menuCategorySelected'; } else { $class = 'menuCategoryNotSelected'; } switch ($level) { case 0 : { $class = 'provenance'; break; } case 1 : { $class = 'genre'; break; } case 2 : { $class = 'espece'; break; } default : { $class = ''; } } $menu.= ' <a href="'.$url.'" title="'.$lang['hint_category'].'" class="'.$class.'"> '.$category['name'].' </a>'; if ($category['nb_images'] > 0) { $menu.= ' <span class="menuInfoCat" title="'.$category['nb_images'].' '.$lang['images_available'].'"> ['.$category['nb_images'].'] </span> '.get_icon($category['date_last']); } $menu.= '</li>'; } $menu.= ' </ul>'; return $menu; } /** * returns HTMLized comment contents retrieved from database * * newlines becomes br tags, _word_ becomes underline, /word/ becomes * italic, *word* becomes bolded * * @param string content * @return string */ function parse_comment_content($content) { $content = nl2br($content); // replace _word_ by an underlined word $pattern = '/_([^\s]*)_/'; $replacement = '<span style="text-decoration:underline;">\1</span>'; $content = preg_replace($pattern, $replacement, $content); // replace *word* by a bolded word $pattern = '/\*([^\s]*)\*/'; $replacement = '<span style="font-weight:bold;">\1</span>'; $content = preg_replace($pattern, $replacement, $content); // replace /word/ by an italic word $pattern = '/\/([^\s]*)\//'; $replacement = '<span style="font-style:italic;">\1</span>'; $content = preg_replace($pattern, $replacement, $content); return $content; } ?>
default.css:
/* BACKGROUND */ body { background-color:#000000;} /*General background color*/ .main, .throw, .admin { background-color:#3F3F3F;} /*Main background color*/ .row1,input,select,textarea, .table1, .home { background-color:#5F5F5F;} /* Tables & forms */ .table2, .commentTitle { background-color: #797979;} /* Alternate table & comments */ .errors { background-color:red;} /* Errors display */ .titreMenu,.titrePage,.imgMenu a:hover { background-image: url(theme/tableh1_bg.gif);} /* Titles background image */ .bouton, .imgMenu a, #imgBarMenu { background-image: url(theme/button_bg.gif);} /* Buttons background image */ /* FONT COLORS */ body { color:#E0E0E0;} /* General font color */ input,select,textarea { color:#FFFFCC;} /* Forms font color */ .titreMenu, .titreMenu a, .info, .admin{ color:#FFF48E;} /* Menu & sections titles */ .titrePage, .titreMenu a:hover { color:#E0E0E0;} /* Page title */ .comment{ color:#C6B78E;} /* Comments */ .commentDate { color:#999999;} /* Comments date */ .throw { color:#FFFFCC;} /* First line of tables */ .bouton, .errors { color:#FFFFFF;} /* Buttons & errors */ /* Update results (admin side only) */ .update_summary_new, .best_gen_time { color:#9cb4ce;} /* Update results (admin side only) */ .update_summary_del,.worst_gen_time { color:#ffe1e1;} /* ANCHORS */ a { text-decoration:none; color:#FFFFFF;} a:hover { text-decoration:none; color:#FFF48E;} a.none:hover { text-decoration:none;} a.image:hover { text-decoration:none;} a.thumbLink:hover { text-decoration:none;} /* FONT STYLES */ body /* Main font style */ { font-family: Verdana, Geneva, Arial, sans-serif; font-size:12px; margin:5px; } h1 /* H1 tag style (admin side only) */ { font-family: 'Trebuchet MS', Verdana, sans-serif; text-decoration:none; line-height: 120%; font-size:18px; font-weight: bold; } h2 /* H2 tag style (admin side only) */ { font-family: Arial, Helvetica, sans-serif; text-decoration:none; line-height: 120%; font-size:12px; font-weight: bold; } .titreMenu /* Menu titles */ { font-size:12px; font-weight:600; } .titrePage /* Page titles */ { font-family: 'Trebuchet MS', Verdana, sans-serif; font-weight:600; font-size:16px; } .commentTitle /* Comments title */ { font-family: Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold; } .menu, .thumbnail, .totalImages { font-size:11px;} .small{ font-size:10px;} .menuCategorySelected, .throw, .admin, .errors { font-weight:bold;} .menuCategoryNotSelected, .dateSelected, .pageNumberSelected, .thumb_picture, .thumb_category { font-weight:normal;} .commentDate, .bouton { font-weight:lighter;} .commentImage { font-style:italic; font-size:16px;} .nameImage { font-size:20px;} .info { font-size:16px;} .copyright { font-size:10px; text-align:center; letter-spacing:-1px;} div.information { font-size:14px; font-weight:bold;} /*----------------------------------------------*/ /* Under this point, do not modify the values */ /* unless you are aware of what you are doing! */ /*----------------------------------------------*/ /* POSITION */ #gauche,#droite { float:left; width:30%; text-align:left; white-space:nowrap; } #centre { float:left; width:39%; text-align:center; } #droite{text-align:right;} #left {float:left; } #right{float:right; } /* GENERAL LAYOUT STYLES */ .main { border: 1px solid #E0E0E0; width:100%; padding-bottom:30px; text-align:center; display:block; } .home { border: 1px solid #000000; display:block; text-align:center; width:100%; } .navigationBar { text-align:center; margin-top:10px; margin-bottom:10px; } .info { margin:5px 0px 5px 0px; /* white-space:nowrap; */ text-align:center; } .errors { text-align:left; margin-top:5px; margin-bottom:5px; border:1px solid black; } div.information { text-align:left; margin:10px; padding:5px; } span.dateSelected, span.pageNumberSelected { text-decoration:underline; } /* MENU LAYOUT STYLES */ .titreMenu,.titrePage { padding-right: 10px; padding-left: 10px; border-bottom: 1px solid #000000; border-right: 1px solid #000000; height: 25px; line-height: 25px; text-align:center; } .titrePage {text-align:left;} .menu { margin:10px 5px 10px 5px; white-space:nowrap; text-align:left; } ul.menu { text-align:left; list-style-type: square ; padding-left:15px; margin:5px; } .totalImages { text-align:center; margin-top:5px; } /* IMAGE LAYOUT STYLES */ .image { border : 3px solid #FFFFFF; margin : 10px 4px 10px 4px; } #imgBarMenu { width:100%; display:block; height:25px; border-bottom: 1px solid #000000; } .imgMenu { width:48px; border:none; float:left; } .imgMenu img { border:none; text-align:center; margin-top:4px; } .imgMenu a { display:block; height: 25px; border-bottom: 1px solid #000000; border-left: 1px solid #838383; border-right: 1px solid #000000; } .imgMenu a:hover { border-bottom: 1px solid #3F3F3F; border-left: 1px solid #3F3F3F; border-right: 1px solid #3F3F3F; } .commentImage { text-align:justify; margin-top: 10px; margin-bottom: 10px; } /* TABLE LAYOUT STYLES */ .table1 { border: 1px solid #000000; display:block; } .table2 { border: 1px solid #000000; margin: 0px 10px 0px 0px; padding:0px; } .tablecompact{ width:100%; border-collapse:collapse; } .row1,.row2 { text-align:left; padding:5px 0px 5px 0px; height:20px; } .throw { text-align:center; border-top: 1px solid #000000; border-bottom: 1px solid #000000; height:20px; } td.throw{ text-align:left; width:auto; } /* THUMBNAILS LAYOUT STYLES */ .thumbnail { text-align:center; vertical-align: baseline; white-space: nowrap; } table.thumbnail { border-collapse:separate; display:inline-table; } .thumbLink { border-style: solid; border-width:1px; border-color: #A0A0A0; margin: 2px; } /* COMMENTS LAYOUT STYLES */ .commentTitle { padding: 15px 5px 10px 5px; } .commentDate { text-align:right; border-top: 1px solid #000000; border-bottom: 1px solid #000000; } /* FORM LAYOUT STYLES */ form { text-align:left; padding:10px; } .bouton { border: 1px solid #404750; padding-left: 3px; padding-right: 3px; background-position : bottom; margin-top:10px; } input,select,textarea { text-indent:2px; border: 1px solid #797979; padding: 0; } .radio{ border:0;} /* ADMIN LAYOUT STYLES */ .adminMenu { text-align:center; font-size:12px; } div.adminMenu{ margin:10px 50px 10px 50px; } .admin { margin:0px 0px 12px 0px; text-align: center; padding:0px; } div.remoteOutput, div.remoteLocal { border:1px solid black; margin:10px; text-align:left; padding:5px; } div.remoteLocal { text-align:center; } /* for debugging purpose */ pre { text-align:left; } UL.menu A.provenance { font-weight: bold; } UL.menu A.genre { font-style: italic; } UL.menu A.espece:before { content: '"'; } UL.menu A.espece:after { content: '"'; }
Est-ce correct ?
Hors ligne
Je me suis emballé un poil trop vite car tous les noms d'espèces se trouvent désormais automatiquement affûblés de guillemets...
En fait, je voudrais que les noms d'espèces sans guillemets soient en italique et que ceux qui en ont (mis par mes soins) soient écrits normalement, comme ça:
- Provenance géographique / Genre / Espèce
soit
- Provenance géographique / Genre / "Espèce"
Pour l'instant, ça rajoute des guillemets partout, ce que je ne souhaite vraiment pas.
Je voudrais que seuls les noms d'espèces qui contiennent des guillemets soient écrits normalement, tous les autres étant en italique par défaut.
Je sens qu'on est proche du but... :D
Merci de votre aide + que précieuse.
Hors ligne
Reflex a écrit:
Je voudrais que seuls les noms d'espèces qui contiennent des guillemets soient écrits normalement, tous les autres étant en italique par défaut.
J'avais bien compris, mais c'est tellement spécifique que franchement... bon, tiens, je te remets les modifs à faire:
Release 1.4.1, dans include/function_html.inc.php, ligne 393, après
390 else 391 { 392 $class = 'menuCategoryNotSelected'; 393 }
insères
switch ($level) { case 0 : { $class = 'provenance'; break; } case 1 : { $class = 'genre'; break; } case 2 : { $class = 'espece'; break; } default : { $class = ''; } } if (strstr($category['name'], '"')) { $class = 'especeGuillemet'; }
puis dans template/default/default.css, à la fin, ajoute
UL.menu A.provenance { font-weight: bold; } UL.menu A.genre { font-style: italic; } UL.menu A.especeGuillemet { font-style: normal; font-weight: normal; } UL.menu A.espece { font-style: italic; }
edit de z0rglu: je viens de faire une petite mise à jour de la partie CSS à 00h16 (heure française) le 8 novembre 2005
Hors ligne
Ca ne fonctionne pas, j'ai essayé 2 fois, mais j'ai à chaque fois le même résultat, à savoir:
Avec les modifs, mes fichiers ressemblent à ça:
Fin de "defaut.ccs"
div.remoteOutput, div.remoteLocal { border:1px solid black; margin:10px; text-align:left; padding:5px; } div.remoteLocal { text-align:center; } /* for debugging purpose */ pre { text-align:left; } UL.menu A.provenance { font-weight: bold; } UL.menu A.genre { font-style: italic; } UL.menu A.espece:before { content: '"'; } UL.menu A.espece:after { content: '"'; }
Partie concernée de "functions_html.inc.php"
else { $class = 'menuCategoryNotSelected'; } switch ($level) { case 0 : { $class = 'provenance'; break; } case 1 : { $class = 'genre'; break; } case 2 : { $class = 'espece'; break; } default : { $class = ''; } } if (strstr($category['name'], '"')) $menu.= ' <a href="'.$url.'" title="'.$lang['hint_category'].'" class="'.$class.'"> '.$category['name'].' </a>'; if ($category['nb_images'] > 0) { $menu.= ' <span class="menuInfoCat" title="'.$category['nb_images'].' '.$lang['images_available'].'"> ['.$category['nb_images'].'] </span> '.get_icon($category['date_last']); } $menu.= '</li>'; } $menu.= ' </ul>'; return $menu; }
Hors ligne
Salut,
Est-ce qu'il ne te manquerait pas des "}" en fin de chaque ajout/modif ?...
"functions_html.inc.php"
case 2 : { $class = 'niveau_3'; break; } default : { $class = ''; } }
"default.css" (ou tu ne sembles pas avoir incorporé la dernière modification proposée par Zorglub).
UL.menu A.especeGuillemet { font-style: normal; font-weight: normal; } UL.menu A.espece { font-style: italic; }
J'ai testé pour ma maquette de site (avec moins de niveaux par rapport à ton besoin) et ça fonctionne
http://gio-online.org/JGI/Photos
Un grand merci donc à Zorglub, car cette différenciation des niveaux m'intéressait. Maintenant si en plus il était possible de différencier aussi la "puce" carrée devant chaque niveau, je suis preneur.
Merci par avance.
Dernière modification par Upéciste (2005-11-08 17:17:25)
Hors ligne
Reflex, il te manque la fin du bloc if :
if (strstr($category['name'], '"')) { $class = 'especeGuillemet'; }
Tu dois avois une vieille version d'IE.
Hors ligne