You could achieve it with both CSS and preprocess by doing something like this: In your template.php file, mytheme_preprocess_node(): // START $node = $vars['node']; if (!empty($node->links['comment_comments'])) { // Class depending on node comment count. if (!empty($node->comment_count)) { $myclass = 'has-comments'; } else { $myclass = 'no-comments'; } // Add to particular link class. if (empty($node->links['comment_comments']['attributes']['class'])) { $node->links['comment_comments']['attributes']['class'] = $myclass; } else { $node->links['comment_comments']['attributes']['class'] .= ' ' . $myclass; } // Reformat all links $vars['links'] = !empty($node->links) ? theme('links', $node->links, array('class' => 'links inline')) : ''; } // END In your theme's css file /* START */ .has-comments { backgorund-image: url(./images/some-image.png); background-repeat: none; padding-left: 2em; } .no-comments { background-image: none; padding-left: 0; } /* END */ On Thu, Nov 18, 2010 at 1:01 PM, Salvatore De Paolis <iwkse@gmx.com> wrote:
On Thu, 18 Nov 2010 12:31:23 -0700 Carl Wiedemann <carl.wiedemann@gmail.com> wrote:
$vars['links'] is generated by theme_links(). Look at template_preprocess_node() in includes/theme.inc:
http://drupalcode.org/viewvc/drupal/drupal/includes/theme.inc?revision=1.415...
$variables['links'] = !empty($node->links) ? theme('links', $node->links, array('class' => 'links inline')) : '';
Yes i misunderstood it, i thought it was some kind of overriding
Unless you absolutely consider the icons to be content and not styling, CSS is the way to go instead of <img> tags. Different CSS classes may be applied via theme_links() to indicate whether comments exist. CSS also allows for the use of sprites.
As i said in the previous comment, in some cases, i'd want only the icon which i suppose i can't achieve only with CSS.