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

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

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. :)