- Statut : non résolu
- Ce sujet contient 3 réponses, 2 participants et a été mis à jour pour la dernière fois par Comme une image, le il y a 16 années et 5 mois.
-
AuteurMessages
-
18 juin 2008 à 16 h 58 min #460455
Bonjour à vous,
Il y a quelques mois, j’ai adopté un nouveau thème pour mon blog, soit le merveilleux i3theme de MangoOrange.
Cependant, préférant complètement contrôler l’ordre dans mes 2 sidebars, j’ai renvoyé l’emploi des widgets automatique par l’élaboration de widgets texte (directement écrit en dur dans mon fichier sidebar.php)
Or voilà, mon énigme ici est simplement d’ordre esthétique. En effet, les widget automatiques directement intégrées avec mon thème avaient ceci de bien, qu’ils affichaient une sympathique petite icône (plutôt qu’une banale puce) devant chaque hyperlien. À titre d’exemple, devant chaque commentaire récent, en guise de puce, il y avait une icône représentant une bulle… une image en PNG que j’ai retrouvé dans un répertoire de mon thème. Si bien que je me demande comment programmer dans ma sidebar l’affichage de cette icône plutôt que celle de la puce par défaut.En guise d’exemple, si vous voulez m’aider à résoudre ce (petit) problème, je vous laisse ci-dessous le code du plugin Recent Comments.
Dans ce code, donc, quelle ligne devrai-je modifier afin d’afficher une icône devant chaque commentaire récent plutôt qu’une puce ?
Merci
<?php
/*
Plugin Name: Recent Comments
Plugin URI: http://rmarsh.com/plugins/recent-comments/
Description: Displays a <a href="options-general.php?page=recent-comments.php">highly configurable</a> list of the most recent comments. <a href="http://rmarsh.com/plugins/post-options/">Instructions and help online</a>. Requires the latest version of the <a href="http://wordpress.org/extend/plugins/post-plugin-library/">Post-Plugin Library</a> to be installed.
Version: 2.5b24
Author: Rob Marsh, SJ
Author URI: http://rmarsh.com/
*/
/*
Copyright 2008 Rob Marsh, SJ (http://rmarsh.com)
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; either version 2 of the License, or
(at your option) any later version.
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: http://www.gnu.org/licenses/gpl.txt
*/
$recent_comments_version = ‘2.5b24’;
/*
Template Tag: Displays the most recently commented posts.
e.g.: <?php recent_comments(); ?>
Full help and instructions at http://rmarsh.com/plugins/post-options/
*/
function recent_comments($args = ») {
echo RecentComments::execute($args);
}
/*
‘innards’
*/
if (!defined(‘DSEP’)) define(‘DSEP’, DIRECTORY_SEPARATOR);
if (!defined(‘POST_PLUGIN_LIBRARY’)) RecentComments::install_post_plugin_library();
class RecentComments {
function execute($args= », $default_output_template=’<li>{commentlink}</li>‘){
if (!RecentComments::check_post_plugin_library(__(‘Post-Plugin Library missing’))) return;
global $wpdb, $wp_version, $post;
$start_time = ppl_microtime();
if (defined(‘POC_CACHE_4’)) {
$cache_key = ‘recent-comments’.$args;
$result = poc_cache_fetch($cache_key);
if ($result !== false) return $result . sprintf(« <!-- Recent Comments took %.3f ms (cached) -->« , 1000 * (ppl_microtime() – $start_time));
}
// First we process any arguments to see if any defaults have been overridden
$options = ppl_parse_args($args);
// Next we retrieve the stored options and use them unless a value has been overridden via the arguments
$options = ppl_set_options(‘recent-comments’, $options, $default_output_template);
if (0 < $options['limit']) {
$hide_future = true;
$match_tags = ($options['match_tags'] !== 'false' && $wp_version >= 2.3);
$exclude_cats = ($options[‘excluded_cats’] !== »);
$include_cats = ($options[‘included_cats’] !== »);
$exclude_authors = ($options[‘excluded_authors’] !== »);
$include_authors = ($options[‘included_authors’] !== »);
$exclude_posts = (trim($options[‘excluded_posts’] !== »));
$include_posts = (trim($options[‘included_posts’]) !== »);
$match_category = ($options[‘match_cat’] === ‘true’);
$use_tag_str = ( » != $options[‘tag_str’] && $wp_version >= 2.3);
$omit_current_post = ($options[‘omit_current_post’] !== ‘false’ && isset($post) && $post->ID !== 0);
$hide_pass = ($options[‘show_private’] === ‘false’);
$check_age = (‘none’ !== $options[‘age’][‘direction’]);
$check_custom = (trim($options[‘custom’][‘key’]) !== »);
$limit = $options[‘skip’].’, ‘.$options[‘limit’];
$filter_comments = ($options[‘show_type’] === ‘comments’ OR $options[‘show_type’] === ‘trackbacks’);
$no_author_comments = ($options[‘no_author_comments’] === ‘true’);
$no_user_comments = ($options[‘no_user_comments’] !== ‘false’);
//the workhorse…
$sql = « SELECT * FROM $wpdb->comments LEFT JOIN `$wpdb->posts` ON `comment_post_ID` = `ID` « ;
if ($check_custom) $sql .= « LEFT JOIN $wpdb->postmeta ON post_id = ID « ;
// build the ‘WHERE’ clause
$where = array();
if ($hide_future) $where[] = where_hide_future();
if ($match_category) $where[] = where_match_category();
if ($match_tags) $where[] = where_match_tags($options[‘match_tags’]);
$where[] = where_show_pages($options[‘show_pages’]);
if ($include_cats) $where[] = where_included_cats($options[‘included_cats’]);
if ($exclude_cats) $where[] = where_excluded_cats($options[‘excluded_cats’]);
if ($exclude_authors) $where[] = where_excluded_authors($options[‘excluded_authors’]);
if ($include_authors) $where[] = where_included_authors($options[‘included_authors’]);
if ($exclude_posts) $where[] = where_excluded_posts(trim($options[‘excluded_posts’]));
if ($include_posts) $where[] = where_included_posts(trim($options[‘included_posts’]));
if ($use_tag_str) $where[] = where_tag_str($options[‘tag_str’]);
if ($omit_current_post) $where[] = where_omit_post();
if ($hide_pass) $where[] = where_hide_pass();
if ($check_age) $where[] = where_check_age($options[‘age’][‘direction’], $options[‘age’][‘length’], $options[‘age’][‘duration’]);
if ($no_author_comments) $where[] = where_author_comments();
if ($no_user_comments) $where[] = where_user_comments();
if ($filter_comments) $where[] = where_comment_type($options[‘show_type’]);
if ($check_custom) $where[] = where_check_custom($options[‘custom’][‘key’], $options[‘custom’][‘op’], $options[‘custom’][‘value’]);
$where[] = « comment_approved = ‘1’ »;
$sql .= « WHERE « .implode(‘ AND ‘, $where);
if ($check_custom) $sql .= » GROUP BY $wpdb->posts.ID »;
$sql .= » ORDER BY comment_date DESC LIMIT $limit »;
if ($options[‘group_by’] === ‘post’) {
$wpdb->query(« CREATE TEMPORARY TABLE temptable « .$sql);
$results = $wpdb->get_results(« SELECT * FROM temptable ORDER BY post_date DESC, comment_date DESC »);
$wpdb->query(« DROP TEMPORARY TABLE temptable »);
} elseif ($options[‘group_by’] === ‘author’) {
$wpdb->query(« CREATE TEMPORARY TABLE temptable « .$sql);
$results = $wpdb->get_results(« SELECT * FROM temptable ORDER BY comment_author ASC, comment_date DESC »);
$wpdb->query(« DROP TEMPORARY TABLE temptable »);
} else {
$results = $wpdb->get_results($sql);
}
} else {
$results = false;
}
if ($results) {
$translations = ppl_prepare_template($options[‘output_template’]);
if ($options[‘group_by’] !== ‘none’ && $options[‘group_template’] !== ») {
$compiled_group_template = ppl_prepare_template($options[‘group_template’]);
}
$output = »;
foreach ($results as $result) {
if ($options[‘group_template’] !== ») {
if ($options[‘group_by’] == ‘post’ && $lastID != $result->ID) {
$output .= ppl_expand_template($result, $options[‘group_template’], $compiled_group_template, ‘recent-comments’);
$lastID = $result->ID;
} elseif ($options[‘group_by’] == ‘author’ && $lastauthor != $result->comment_author) {
$output .= ppl_expand_template($result, $options[‘group_template’], $compiled_group_template, ‘recent-comments’);
$lastauthor = $result->comment_author;
}
}
$output .= ppl_expand_template($result, $options[‘output_template’], $translations, ‘recent-comments’);
$output .= « n »;
}
// If stuff is to be trimmed off the front…
if ($options[‘trim_before’]!== » && strpos($output, $options[‘trim_before’]) === 0) {
$output = substr($output, strlen($options[‘trim_before’]));
}
$output = $options[‘prefix’] . $output . $options[‘suffix’];
} else {
// if we reach here our query has produced no output … so what next?
if ($options[‘no_text’] !== ‘false’) {
$output = »; // we display nothing at all
} else {
// we display the blank message, with tags expanded if necessary
$translations = ppl_prepare_template($options[‘none_text’]);
$output = $options[‘prefix’] . ppl_expand_template(array(), $options[‘none_text’], $translations, ‘recent_comments’) . $options[‘suffix’];
}
}
if (defined(‘POC_CACHE_4’)) poc_cache_store($cache_key, $output);
return $output . sprintf(« <!-- Recent Comments took %.3f ms -->« , 1000 * (ppl_microtime() – $start_time));
}
// tries to install the post-plugin-library plugin
function install_post_plugin_library() {
$plugin_path = ‘post-plugin-library/post-plugin-library.php’;
$current = get_option(‘active_plugins’);
if (!in_array($plugin_path, $current)) {
$current[] = $plugin_path;
update_option(‘active_plugins’, $current);
do_action(‘activate_’.$plugin_path);
}
}
function check_post_plugin_library($msg) {
$exists = function_exists(‘ppl_microtime’);
if (!$exists) echo $msg;
return $exists;
}
}
if ( is_admin() ) {
require(dirname(__FILE__).’/recent-comments-admin.php’);
}
function widget_rrm_recent_comments_init() {
if (! function_exists(« register_sidebar_widget »)) {
return;
}
function widget_rrm_recent_comments($args) {
extract($args);
$options = get_option(‘widget_rrm_recent_comments’);
$condition = ($options[‘condition’]) ? $options[‘condition’] : ‘true’ ;
$condition = (stristr($condition, « return »)) ? $condition : « return « .$condition;
$condition = rtrim($condition, ‘; ‘) . ‘ || is_admin();’;
if (eval($condition)) {
$title = empty($options[‘title’]) ? __(‘Recent Comments’, ‘post_plugins’) : $options[‘title’];
if ( !$number = (int) $options[‘number’] )
$number = 10;
else if ( $number < 1 )
$number = 1;
else if ( $number > 15 )
$number = 15;
echo $before_widget;
echo $before_title.$title.$after_title;
recent_comments(‘limit=’.$number);
echo $after_widget;
}
}
function widget_rrm_recent_comments_control() {
if ( $_POST[‘widget_rrm_recent_comments_submit’] ) {
$options[‘title’] = strip_tags(stripslashes($_POST[‘widget_rrm_recent_comments_title’]));
$options[‘number’] = (int) $_POST[« widget_rrm_recent_comments_number »];
$options[‘condition’] = stripslashes(trim($_POST[« widget_rrm_recent_comments_condition »], ‘; ‘));
update_option(« widget_rrm_recent_comments », $options);
} else {
$options = get_option(‘widget_rrm_recent_comments’);
}
$title = attribute_escape($options[‘title’]);
if ( !$number = (int) $options[‘number’] )
$number = 5;
$condition = attribute_escape($options[‘condition’]);
?>
<p><label for="widget_rrm_recent_comments_title"> <?php _e('Title:', 'post_plugins'); ?> <input style="width: 200px;" id="widget_rrm_recent_comments_title" name="widget_rrm_recent_comments_title" type="text" value="<?php echo $title; ?> » /></label></p>
<p><label for="widget_rrm_recent_comments_number"> <?php _e('Number of posts to show:', 'post_plugins'); ?> <input style="width: 25px; text-align: center;" id="widget_rrm_recent_comments_number" name="widget_rrm_recent_comments_number" type="text" value="<?php echo $number; ?> » /></label> <?php _e('(at most 15)', 'post_plugins'); ?> </p>
<p><label for="widget_rrm_recent_comments_condition"> <?php _e('Show only if page: (e.g., <a href="http://codex.wordpress.org/Conditional_Tags" title="help">is_single()</a>)’, ‘post_plugins’); ?> <input style="width: 200px;" id="widget_rrm_recent_comments_condition" name="widget_rrm_recent_comments_condition" type="text" value="<?php echo $condition; ?> » /></label></p>
<input type="hidden" id="widget_rrm_recent_comments_submit" name="widget_rrm_recent_comments_submit" value="1" />
There are many more <a href="options-general.php?page=recent-comments.php">options</a> available.
<?php
}
register_sidebar_widget(__('Recent Comments +', 'post_plugins'), 'widget_rrm_recent_comments');
register_widget_control(__('Recent Comments +', 'post_plugins'), 'widget_rrm_recent_comments_control', 300, 100);
}
add_action('plugins_loaded', 'widget_rrm_recent_comments_init');
function recent_comments_init () {
load_plugin_textdomain('post_plugins');
$options = get_option('recent-comments');
if ($options['content_filter'] === 'true' && function_exists('ppl_register_content_filter')) ppl_register_content_filter('RecentComments');
}
add_action ('init', 'recent_comments_init', 1);
?>19 juin 2008 à 22 h 05 min #634052Dans ton CSS :
#dbxid1 ul ul li { list-style-image : …. }
#dbxid1 => sélecteur de ton widget recent comment
(attention à mettre à jour si tu le déplaces dans ton thème)20 juin 2008 à 17 h 36 min #634053Bonjour Comme une image,
Merci pour l’attention. Toutefois, j’ai rajouté ton code dans ma feuille de style, mais en vain. Probablement qu’un détail m’échappe. Voici donc ce que j’ai rajouté
#dbxid1 ul ul li { list-style-image : images/mini-comment.gif}
En comparaison, voici un extrait de ma feuille de style édité par l’auteur de mon thème:
/* archives widget */
#archives ul li {
background: url(images/mini-archive.gif) no-repeat;
}
/* recent comments widget */
#recent-comments ul li {
background: url(images/mini-comment.gif) no-repeat;
}Dans le fond, je cherche simplement à prendre l’icône du widget par défaut et de l’appliquer à mon widget texte généré par le plugin Recent Comments.
En passant, ce sélecteur de widget dbxid1, ou as-tu réussi à le trouver, et à quoi il fait référence au juste ? J’ai beau rechercher (ctrl-f) dbxid1 dans le code du plugin Recent Comments, je ne trouve pas.
Merci encore
20 juin 2008 à 17 h 53 min #634054Ouais, ben faut au moins respecter la syntaxe CSS tout de même !
Tu peux jeter un œil ici par exemple : http://fr.selfhtml.org/navigation/css.htm
Regarde bien les différentes options correspondantes à la mise en forme des listes. -
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.