Album Description on the thumbnail view at bottom Album Description on the thumbnail view at bottom
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Album Description on the thumbnail view at bottom

Started by dawjv, August 20, 2010, 06:24:13 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

dawjv

Hello

How to add the album description in the thumbnail view page at bottom of all thumbnails ?

I will be having a gallery of video captures and I want to put a link to the video under the thumbails. With some information about the video. I do not want to host video on the same server so as to preserve bandwidth so the video will be hosted on free upload sites.

That is why I am looking for this feature.

Can  the great great awesome amazing Coppermine Staff help me out ? :love: :love:

Thanks in advance to the hardworking wonderful support team. :) :salutes::hugs::adores::cheers:

Regards
Dave Wan Vjirk

dawjv


Jeff Bailey

Thinking is the hardest work there is, which is probably the reason why so few engage in it. - Henry Ford

dawjv

I am sorry. I had to re-install the gallery due to server problems.

I have not uploaded anything as yet. Will it be fine ?

Link to my gallery is as follows.

http://www.dawjv.is.tl/gal/index.php

dawjv

I want the description to appear at the bottom in the white space below "the XX files in XX pages & Jump to Pages" on the following page.

http://www.dawjv.is.tl/gal/thumbnails.php?album=1

Jeff Bailey

This probably isn't the best way to do this.

Try this:
On your server make a copy of the theme you want to edit by following these instructions => http://documentation.coppermine-gallery.net/en/theme_create.htm#theme_create_rename

After that, in your new themes "themes/new_theme/theme.php" paste

/******************************************************************************
** Section <<<theme_display_thumbnails>>> - START
******************************************************************************/
function theme_display_thumbnails(&$thumb_list, $nbThumb, $album_name, $aid, $cat, $page, $total_pages, $sort_options, $display_tabs, $mode = 'thumb', $date='')
{
   global $CONFIG, $CURRENT_ALBUM_DATA;
   global $template_thumb_view_title_row,$template_fav_thumb_view_title_row, $lang_thumb_view, $lang_common, $template_tab_display, $template_thumbnail_view, $lang_album_list, $lang_errors;

   $superCage = Inspekt::makeSuperCage();

   static $header = '';
   static $thumb_cell = '';
   static $empty_cell = '';
   static $row_separator = '';
   static $footer = '';
   static $tabs = '';
   static $spacer = '';

   if ($header == '') {
       $thumb_cell = template_extract_block($template_thumbnail_view, 'thumb_cell');
       $tabs = template_extract_block($template_thumbnail_view, 'tabs');
       $header = template_extract_block($template_thumbnail_view, 'header');
       $empty_cell = template_extract_block($template_thumbnail_view, 'empty_cell');
       $row_separator = template_extract_block($template_thumbnail_view, 'row_separator');
       $footer = template_extract_block($template_thumbnail_view, 'footer');
       $spacer = template_extract_block($template_thumbnail_view, 'spacer');
   }

   $cat_link = is_numeric($aid) ? '' : '&amp;cat=' . $cat;
   $date_link = $date=='' ? '' : '&amp;date=' . $date;
   if ($superCage->get->getInt('uid')) {
     $uid_link = '&amp;uid=' . $superCage->get->getInt('uid');
   } else {
     $uid_link = '';
   }

   $album_types = array(
       'albums' => array('lastalb')
   );
   $album_types = CPGPluginAPI::filter('theme_thumbnails_album_types', $album_types);

   $theme_thumb_tab_tmpl = $template_tab_display;

   if ($mode == 'thumb') {
       $theme_thumb_tab_tmpl['left_text'] = strtr($theme_thumb_tab_tmpl['left_text'], array('{LEFT_TEXT}' => in_array($aid, $album_types['albums']) ? $lang_album_list['album_on_page'] : $lang_thumb_view['pic_on_page']));
       $theme_thumb_tab_tmpl['page_link'] = strtr($theme_thumb_tab_tmpl['page_link'], array('{LINK}' => 'thumbnails.php?album=' . $aid . $cat_link . $date_link . $uid_link . '&amp;page=%d'));
   } else {
       $theme_thumb_tab_tmpl['left_text'] = strtr($theme_thumb_tab_tmpl['left_text'], array('{LEFT_TEXT}' => $lang_thumb_view['user_on_page']));
       $theme_thumb_tab_tmpl['page_link'] = strtr($theme_thumb_tab_tmpl['page_link'], array('{LINK}' => 'index.php?cat=' . $cat . '&amp;page=%d'));
   }

   $thumbcols = $CONFIG['thumbcols'];
   $cell_width = ceil(100 / $CONFIG['thumbcols']) . '%';

   $tabs_html = $display_tabs ? create_tabs($nbThumb, $page, $total_pages, $theme_thumb_tab_tmpl) : '';

   if (!GALLERY_ADMIN_MODE && stripos($template_thumb_view_title_row, 'admin_buttons') !== false) {
       template_extract_block($template_thumb_view_title_row, 'admin_buttons');
   }
   // The sort order options are not available for meta albums
   if ($sort_options) {
       if (GALLERY_ADMIN_MODE) {
           $param = array(
               '{ALBUM_ID}'   => $aid,
               '{CAT_ID}'     => ($cat > 0 ? $cat : $CURRENT_ALBUM_DATA['category']),
               '{MODIFY_LNK}'     => $lang_common['album_properties'],
               '{MODIFY_ICO}'     => cpg_fetch_icon('modifyalb', 1),
               '{PARENT_CAT_LNK}' => $lang_common['parent_category'],
               '{PARENT_CAT_ICO}' => cpg_fetch_icon('category', 1),
               '{EDIT_PICS_LNK}'  => $lang_common['edit_files'],
               '{EDIT_PICS_ICO}'  => cpg_fetch_icon('edit', 1),
               '{ALBUM_MGR_LNK}'  => $lang_common['album_manager'],
               '{ALBUM_MGR_ICO}'  => cpg_fetch_icon('alb_mgr', 1),
           );
       } else {
           $param = array();
       }
       $param['{ALBUM_NAME}'] = $album_name;
       // Plugin Filter: allow plugin to modify or add tags to process
       $param = CPGPluginAPI::filter('theme_thumbnails_title', $param);
       $title = template_eval($template_thumb_view_title_row, $param);
   } elseif ($aid == 'favpics' && $CONFIG['enable_zipdownload'] > 0) { //Lots of stuff can be added here later
       $param = array(
           '{ALBUM_ID}'   => $aid,
           '{ALBUM_NAME}' => $album_name,
           '{DOWNLOAD_ZIP}' => cpg_fetch_icon ('zip', 2) . $lang_thumb_view['download_zip'],
       );
       // Plugin Filter: allow plugin to modify or add tags to process
       $param = CPGPluginAPI::filter('theme_thumbnails_title', $param);        
       $title = template_eval($template_fav_thumb_view_title_row, $param);
   } else {
       $title = $album_name;
   }

   CPGPluginAPI::action('theme_thumbnails_wrapper_start', null);

   if ($mode == 'thumb') {
       starttable('100%', $title, $thumbcols);
   } else {
       starttable('100%');
   }

   echo $header;

   $i = 0;
   global $thumb;  // make $thumb accessible to plugins
   foreach($thumb_list as $thumb) {
       $i++;
       if ($mode == 'thumb') {
           if (in_array($aid, $album_types['albums'])) {
               $params = array(
                   '{CELL_WIDTH}' => $cell_width,
                   '{LINK_TGT}'   => "thumbnails.php?album={$thumb['aid']}",
                   '{THUMB}'      => $thumb['image'],
                   '{CAPTION}'    => $thumb['caption'],
                   '{ADMIN_MENU}' => $thumb['admin_menu'],
               );
           } else {
               // determine if thumbnail link targets should open in a pop-up
               if ($CONFIG['thumbnail_to_fullsize'] == 1) { // code for full-size pop-up
                   if (!USER_ID && $CONFIG['allow_unlogged_access'] <= 2) {
                      $target = 'javascript:;" onclick="alert(\''.sprintf($lang_errors['login_needed'],'','','','').'\');';
                   } elseif (USER_ID && USER_ACCESS_LEVEL <= 2) {
                       $target = 'javascript:;" onclick="alert(\''.sprintf($lang_errors['access_intermediate_only'],'','','','').'\');';
                   } else {
                      $target = 'javascript:;" onclick="MM_openBrWindow(\'displayimage.php?pid=' . $thumb['pid'] . '&fullsize=1\',\'' . uniqid(rand()) . '\',\'scrollbars=yes,toolbar=no,status=no,resizable=yes,width=' . ((int)$thumb['pwidth']+(int)$CONFIG['fullsize_padding_x']) .  ',height=' .   ((int)$thumb['pheight']+(int)$CONFIG['fullsize_padding_y']). '\');';
                   }
               } elseif ($aid == 'random') {
                   $target = "displayimage.php?pid={$thumb['pid']}$uid_link#top_display_media";
               } elseif ($aid == 'lastcom' || $aid == 'lastcomby') {
                   $page = cpg_get_comment_page_number($thumb['msg_id']);
                   $page = (is_numeric($page)) ? "&amp;page=$page" : '';
                   $target = "displayimage.php?album=$aid$cat_link$date_link&amp;pid={$thumb['pid']}$uid_link&amp;msg_id={$thumb['msg_id']}$page#comment{$thumb['msg_id']}";
               } else {
                   $target = "displayimage.php?album=$aid$cat_link$date_link&amp;pid={$thumb['pid']}$uid_link#top_display_media";
               }
               $params = array(
                   '{CELL_WIDTH}' => $cell_width,
                   '{LINK_TGT}'   => $target,
                   '{THUMB}'      => $thumb['image'],
                   '{CAPTION}'    => $thumb['caption'],
                   '{ADMIN_MENU}' => $thumb['admin_menu'],
               );
           }

       } else {  // mode != 'thumb'

           // Used for mode = 'user' from list_users() in index.php
           $params = array(
               '{CELL_WIDTH}' => $cell_width,
               '{LINK_TGT}'   => "index.php?cat={$thumb['cat']}",
               '{THUMB}'      => $thumb['image'],
               '{CAPTION}'    => $thumb['caption'],
               '{ADMIN_MENU}' => '',
           );

       }

       // Plugin Filter: allow plugin to modify or add tags to process
       $params = CPGPluginAPI::filter('theme_display_thumbnails_params', $params);
       echo template_eval($thumb_cell, $params);

       if ((($i % $thumbcols) == 0) && ($i < count($thumb_list))) {
           echo $row_separator;
       }
   } // foreach $thumb

   unset($thumb);  // unset $thumb to avoid conflicting with global

   for (;($i % $thumbcols); $i++) {
       echo $empty_cell;
   }
   $footer = CPGPluginAPI::filter('theme_thumbnails_footer', $footer);
   echo $footer;

   if ($display_tabs) {
       $params = array(
           '{THUMB_COLS}' => $thumbcols,
           '{TABS}'       => $tabs_html,
       );
       echo template_eval($tabs, $params);
   }

   endtable();
   CPGPluginAPI::action('theme_thumbnails_wrapper_end', null);
   /* Start Code to display Album Description */
   $curr_alb_desc = $CURRENT_ALBUM_DATA['description'];
   echo "<p style=\"text-align: center !important;\">$curr_alb_desc</p>";
   /* End Code to display Album Description */
   echo $spacer;
}
/******************************************************************************
** Section <<<theme_display_thumbnails>>> - END
******************************************************************************/

right above the

?>


All I added to the function is (you will see it near the bottom):

   /* Start Code to display Album Description */
   $curr_alb_desc = $CURRENT_ALBUM_DATA['description'];
   echo "<p style=\"text-align: center !important;\">$curr_alb_desc</p>";
   /* End Code to display Album Description */

It is styled to display center, of course this can be changed. You can even add an id the <p> tag and style it in the css file.

If you get errors make sure this section (<<<theme_display_thumbnails>>>) isn't already in your themes theme.php. (it shouldn't be if your using curve)
Thinking is the hardest work there is, which is probably the reason why so few engage in it. - Henry Ford

dawjv

Quote from: Jeff Bailey on August 21, 2010, 08:50:33 PM
This probably isn't the best way to do this.

Try this:
On your server make a copy of the theme you want to edit by following these instructions => http://documentation.coppermine-gallery.net/en/theme_create.htm#theme_create_rename

After that, in your new themes "themes/new_theme/theme.php" paste

/******************************************************************************
** Section <<<theme_display_thumbnails>>> - START
******************************************************************************/
function theme_display_thumbnails(&$thumb_list, $nbThumb, $album_name, $aid, $cat, $page, $total_pages, $sort_options, $display_tabs, $mode = 'thumb', $date='')
{
   global $CONFIG, $CURRENT_ALBUM_DATA;
   global $template_thumb_view_title_row,$template_fav_thumb_view_title_row, $lang_thumb_view, $lang_common, $template_tab_display, $template_thumbnail_view, $lang_album_list, $lang_errors;

   $superCage = Inspekt::makeSuperCage();

   static $header = '';
   static $thumb_cell = '';
   static $empty_cell = '';
   static $row_separator = '';
   static $footer = '';
   static $tabs = '';
   static $spacer = '';

   if ($header == '') {
       $thumb_cell = template_extract_block($template_thumbnail_view, 'thumb_cell');
       $tabs = template_extract_block($template_thumbnail_view, 'tabs');
       $header = template_extract_block($template_thumbnail_view, 'header');
       $empty_cell = template_extract_block($template_thumbnail_view, 'empty_cell');
       $row_separator = template_extract_block($template_thumbnail_view, 'row_separator');
       $footer = template_extract_block($template_thumbnail_view, 'footer');
       $spacer = template_extract_block($template_thumbnail_view, 'spacer');
   }

   $cat_link = is_numeric($aid) ? '' : '&amp;cat=' . $cat;
   $date_link = $date=='' ? '' : '&amp;date=' . $date;
   if ($superCage->get->getInt('uid')) {
     $uid_link = '&amp;uid=' . $superCage->get->getInt('uid');
   } else {
     $uid_link = '';
   }

   $album_types = array(
       'albums' => array('lastalb')
   );
   $album_types = CPGPluginAPI::filter('theme_thumbnails_album_types', $album_types);

   $theme_thumb_tab_tmpl = $template_tab_display;

   if ($mode == 'thumb') {
       $theme_thumb_tab_tmpl['left_text'] = strtr($theme_thumb_tab_tmpl['left_text'], array('{LEFT_TEXT}' => in_array($aid, $album_types['albums']) ? $lang_album_list['album_on_page'] : $lang_thumb_view['pic_on_page']));
       $theme_thumb_tab_tmpl['page_link'] = strtr($theme_thumb_tab_tmpl['page_link'], array('{LINK}' => 'thumbnails.php?album=' . $aid . $cat_link . $date_link . $uid_link . '&amp;page=%d'));
   } else {
       $theme_thumb_tab_tmpl['left_text'] = strtr($theme_thumb_tab_tmpl['left_text'], array('{LEFT_TEXT}' => $lang_thumb_view['user_on_page']));
       $theme_thumb_tab_tmpl['page_link'] = strtr($theme_thumb_tab_tmpl['page_link'], array('{LINK}' => 'index.php?cat=' . $cat . '&amp;page=%d'));
   }

   $thumbcols = $CONFIG['thumbcols'];
   $cell_width = ceil(100 / $CONFIG['thumbcols']) . '%';

   $tabs_html = $display_tabs ? create_tabs($nbThumb, $page, $total_pages, $theme_thumb_tab_tmpl) : '';

   if (!GALLERY_ADMIN_MODE && stripos($template_thumb_view_title_row, 'admin_buttons') !== false) {
       template_extract_block($template_thumb_view_title_row, 'admin_buttons');
   }
   // The sort order options are not available for meta albums
   if ($sort_options) {
       if (GALLERY_ADMIN_MODE) {
           $param = array(
               '{ALBUM_ID}'   => $aid,
               '{CAT_ID}'     => ($cat > 0 ? $cat : $CURRENT_ALBUM_DATA['category']),
               '{MODIFY_LNK}'     => $lang_common['album_properties'],
               '{MODIFY_ICO}'     => cpg_fetch_icon('modifyalb', 1),
               '{PARENT_CAT_LNK}' => $lang_common['parent_category'],
               '{PARENT_CAT_ICO}' => cpg_fetch_icon('category', 1),
               '{EDIT_PICS_LNK}'  => $lang_common['edit_files'],
               '{EDIT_PICS_ICO}'  => cpg_fetch_icon('edit', 1),
               '{ALBUM_MGR_LNK}'  => $lang_common['album_manager'],
               '{ALBUM_MGR_ICO}'  => cpg_fetch_icon('alb_mgr', 1),
           );
       } else {
           $param = array();
       }
       $param['{ALBUM_NAME}'] = $album_name;
       // Plugin Filter: allow plugin to modify or add tags to process
       $param = CPGPluginAPI::filter('theme_thumbnails_title', $param);
       $title = template_eval($template_thumb_view_title_row, $param);
   } elseif ($aid == 'favpics' && $CONFIG['enable_zipdownload'] > 0) { //Lots of stuff can be added here later
       $param = array(
           '{ALBUM_ID}'   => $aid,
           '{ALBUM_NAME}' => $album_name,
           '{DOWNLOAD_ZIP}' => cpg_fetch_icon ('zip', 2) . $lang_thumb_view['download_zip'],
       );
       // Plugin Filter: allow plugin to modify or add tags to process
       $param = CPGPluginAPI::filter('theme_thumbnails_title', $param);        
       $title = template_eval($template_fav_thumb_view_title_row, $param);
   } else {
       $title = $album_name;
   }

   CPGPluginAPI::action('theme_thumbnails_wrapper_start', null);

   if ($mode == 'thumb') {
       starttable('100%', $title, $thumbcols);
   } else {
       starttable('100%');
   }

   echo $header;

   $i = 0;
   global $thumb;  // make $thumb accessible to plugins
   foreach($thumb_list as $thumb) {
       $i++;
       if ($mode == 'thumb') {
           if (in_array($aid, $album_types['albums'])) {
               $params = array(
                   '{CELL_WIDTH}' => $cell_width,
                   '{LINK_TGT}'   => "thumbnails.php?album={$thumb['aid']}",
                   '{THUMB}'      => $thumb['image'],
                   '{CAPTION}'    => $thumb['caption'],
                   '{ADMIN_MENU}' => $thumb['admin_menu'],
               );
           } else {
               // determine if thumbnail link targets should open in a pop-up
               if ($CONFIG['thumbnail_to_fullsize'] == 1) { // code for full-size pop-up
                   if (!USER_ID && $CONFIG['allow_unlogged_access'] <= 2) {
                      $target = 'javascript:;" onclick="alert(\''.sprintf($lang_errors['login_needed'],'','','','').'\');';
                   } elseif (USER_ID && USER_ACCESS_LEVEL <= 2) {
                       $target = 'javascript:;" onclick="alert(\''.sprintf($lang_errors['access_intermediate_only'],'','','','').'\');';
                   } else {
                      $target = 'javascript:;" onclick="MM_openBrWindow(\'displayimage.php?pid=' . $thumb['pid'] . '&fullsize=1\',\'' . uniqid(rand()) . '\',\'scrollbars=yes,toolbar=no,status=no,resizable=yes,width=' . ((int)$thumb['pwidth']+(int)$CONFIG['fullsize_padding_x']) .  ',height=' .   ((int)$thumb['pheight']+(int)$CONFIG['fullsize_padding_y']). '\');';
                   }
               } elseif ($aid == 'random') {
                   $target = "displayimage.php?pid={$thumb['pid']}$uid_link#top_display_media";
               } elseif ($aid == 'lastcom' || $aid == 'lastcomby') {
                   $page = cpg_get_comment_page_number($thumb['msg_id']);
                   $page = (is_numeric($page)) ? "&amp;page=$page" : '';
                   $target = "displayimage.php?album=$aid$cat_link$date_link&amp;pid={$thumb['pid']}$uid_link&amp;msg_id={$thumb['msg_id']}$page#comment{$thumb['msg_id']}";
               } else {
                   $target = "displayimage.php?album=$aid$cat_link$date_link&amp;pid={$thumb['pid']}$uid_link#top_display_media";
               }
               $params = array(
                   '{CELL_WIDTH}' => $cell_width,
                   '{LINK_TGT}'   => $target,
                   '{THUMB}'      => $thumb['image'],
                   '{CAPTION}'    => $thumb['caption'],
                   '{ADMIN_MENU}' => $thumb['admin_menu'],
               );
           }

       } else {  // mode != 'thumb'

           // Used for mode = 'user' from list_users() in index.php
           $params = array(
               '{CELL_WIDTH}' => $cell_width,
               '{LINK_TGT}'   => "index.php?cat={$thumb['cat']}",
               '{THUMB}'      => $thumb['image'],
               '{CAPTION}'    => $thumb['caption'],
               '{ADMIN_MENU}' => '',
           );

       }

       // Plugin Filter: allow plugin to modify or add tags to process
       $params = CPGPluginAPI::filter('theme_display_thumbnails_params', $params);
       echo template_eval($thumb_cell, $params);

       if ((($i % $thumbcols) == 0) && ($i < count($thumb_list))) {
           echo $row_separator;
       }
   } // foreach $thumb

   unset($thumb);  // unset $thumb to avoid conflicting with global

   for (;($i % $thumbcols); $i++) {
       echo $empty_cell;
   }
   $footer = CPGPluginAPI::filter('theme_thumbnails_footer', $footer);
   echo $footer;

   if ($display_tabs) {
       $params = array(
           '{THUMB_COLS}' => $thumbcols,
           '{TABS}'       => $tabs_html,
       );
       echo template_eval($tabs, $params);
   }

   endtable();
   CPGPluginAPI::action('theme_thumbnails_wrapper_end', null);
   /* Start Code to display Album Description */
   $curr_alb_desc = $CURRENT_ALBUM_DATA['description'];
   echo "<p style=\"text-align: center !important;\">$curr_alb_desc</p>";
   /* End Code to display Album Description */
   echo $spacer;
}
/******************************************************************************
** Section <<<theme_display_thumbnails>>> - END
******************************************************************************/

right above the

?>


All I added to the function is (you will see it near the bottom):

   /* Start Code to display Album Description */
   $curr_alb_desc = $CURRENT_ALBUM_DATA['description'];
   echo "<p style=\"text-align: center !important;\">$curr_alb_desc</p>";
   /* End Code to display Album Description */

It is styled to display center, of course this can be changed. You can even add an id the <p> tag and style it in the css file.

If you get errors make sure this section (<<<theme_display_thumbnails>>>) isn't already in your themes theme.php. (it shouldn't be if your using curve)

Thanks. I am able to get this working. But now the problem is that it does not allow bbcode tags in thumbnails view, only allows in Albums View. :( Any Solution to this ?

As you can see in the same link as mentioned above for that album, I have added the description and link but only text is visible while the url tags are shown like normal. :(

dawjv

Or have the bbcode and html tags deliberately disallowed ?

Jeff Bailey

This only works for the

[url][/url]

bbcode.

replace

/* Start Code to display Album Description */
$curr_alb_desc = $CURRENT_ALBUM_DATA['description'];
echo "<p style=\"text-align: center !important;\">$curr_alb_desc</p>";
/* End Code to display Album Description */


with

/* Start Code to display Album Description */
$curr_alb_desc = $CURRENT_ALBUM_DATA['description'];
$curr_alb_desc = preg_replace("/\[url=(.*)]/Uis", "<a href='$1'>", $curr_alb_desc);
$curr_alb_desc = str_replace("[/url]", "</a>", $curr_alb_desc);
echo "<p style=\"text-align: center !important;\">$curr_alb_desc</p>";
/* End Code to display Album Description */
Thinking is the hardest work there is, which is probably the reason why so few engage in it. - Henry Ford

dawjv

Fair Enough.

Excellent Solution. Thanks a lot Jeff Bailey for your precious time & efforts. :)