I have done the modifications ...
in displayimage.php
$params = array('{THUMB_TGT}' => $thumb_tgt,
'{THUMB_TITLE}' => $lang_img_nav_bar['thumb_title'],
'{PIC_INFO_TITLE}' => $lang_img_nav_bar['pic_info_title'],
'{SLIDESHOW_TGT}' => $slideshow_tgt,
'{SLIDESHOW_TITLE}' => $lang_img_nav_bar['slideshow_title'],
'{PIC_POS}' => $pic_pos,
'{ECARD_TGT}' => $ecard_tgt,
'{ECARD_TITLE}' => $ecard_title,
'{PREV_TGT}' => $prev_tgt,
'{PREV_TITLE}' => $prev_title,
'{NEXT_TGT}' => $next_tgt,
'{NEXT_TITLE}' => $next_title,
'{PREV_IMAGE}' => ($lang_text_dir=='LTR') ? 'prev' : 'next',
'{NEXT_IMAGE}' => ($lang_text_dir=='LTR') ? 'next' : 'prev',
// '{TITLE}' => $CURRENT_PIC_DATA['title'],
'{CAPTION}' => bb_decode($CURRENT_PIC_DATA['caption']),
'{TITLE}' => (isset($CURRENT_PIC_DATA['title'])) ? '<span class="title">'.$CURRENT_PIC_DATA['title'].'</span>' : '',
);
And in my theme.php
EOT;
// HTML template for the image navigation bar
$template_img_navbar = <<<EOT
<div id="img_navbar">
<h3>{PIC_POS}</h3>
<!-- BEGIN title -->
{TITLE}
<!-- END title -->
<!-- BEGIN caption -->
<span class="caption">{CAPTION}</span><br />
<!-- BEGIN caption -->
<a href="{THUMB_TGT}" class="navmenu_pic" title="{THUMB_TITLE}">{THUMB_TITLE}</a>
<a href="javascript:;" onclick="blocking('picinfo','yes', 'block'); return false;" title="{PIC_INFO_TITLE}">{PIC_INFO_TITLE}</a>
<!-- <a href="{SLIDESHOW_TGT}" title="{SLIDESHOW_TITLE}">{SLIDESHOW_TITLE}</a> -->
<a href="{ECARD_TGT}" title="{ECARD_TITLE}">{ECARD_TITLE}</a>
<a href="{PREV_TGT}" class="navmenu_pic" title="{PREV_TITLE}">{PREV_TITLE}</a>
<a href="{NEXT_TGT}" class="navmenu_pic" title="{NEXT_TITLE}">{NEXT_TITLE}</a><br /><br />
</div>
EOT;
But I have the same result : if the pic has title, it's perfect : title appears ... but if the pic has no title, the span attribute appears empty (and not invisible) ...