I've gone through the post: http://forum.coppermine-gallery.net/index.php?topic=40315.0
and the thumbnail page work fine but not the album page...the description in the album page is not truncate~
my link: www.hksps.net/photo/index.php
define('THEME_HAS_RATING_GRAPHICS', 1);
define('THEME_HAS_NO_SUB_MENU_BUTTONS',1);
define('THEME_IS_XHTML10_TRANSITIONAL',1); // Remove this if you edit this template until
// you have validated it. See docs/theme.htm.
// HTML template for sys_menu
$template_sys_menu = <<<EOT
|{BUTTONS}|
EOT;
// HTML template for template sys_menu spacer
$template_sys_menu_spacer ="|";
$album_desc = get_album_desc($_GET[album]);
// HTML template for template sub_menu
// special note: I left the JavaScript 'hide' off of the first and third buttons to help avoid trouble keeping sys_menu open. :Donnoman
if ($CONFIG['custom_lnk_url'] != '') {
$template_sub_menu = <<<EOT
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<!-- BEGIN custom_link -->
<td class="top_menu_left_bttn">
<a href="{CUSTOM_LNK_TGT}" title="{CUSTOM_LNK_TITLE}">{CUSTOM_LNK_LNK}</a>
</td>
<td><img src="themes/igames/images/menu_spacer.gif" width="2" height="35" border="0" alt="" /><br /></td>
<!-- END custom_link -->
<td class="top_menu_bttn">
<a href="{ALB_LIST_TGT}" title="{ALB_LIST_TITLE}">{ALB_LIST_LNK}</a>
</td>
<td><img src="themes/igames/images/menu_spacer.gif" width="2" height="35" border="0" alt="" /><br /></td>
<td class="top_menu_bttn">
<a href="{LASTUP_TGT}" title="{LASTUP_LNK}">{LASTUP_LNK}</a>
</td>
<td><img src="themes/igames/images/menu_spacer.gif" width="2" height="35" border="0" alt="" /><br /></td>
<td class="top_menu_bttn">
<a href="{LASTCOM_TGT}" onmouseover="MM_showHideLayers('SYS_MENU','','hide')" title="{LASTCOM_LNK}">{LASTCOM_LNK}</a>
</td>
<td><img src="themes/igames/images/menu_spacer.gif" width="2" height="35" border="0" alt="" /><br /></td>
<td class="top_menu_bttn">
<a href="{TOPN_TGT}" onmouseover="MM_showHideLayers('SYS_MENU','','hide')" title="{TOPN_LNK}">{TOPN_LNK}</a>
</td>
<!-- BEGIN search -->
<td><img src="themes/igames/images/menu_spacer.gif" width="2" height="35" border="0" alt="" /><br /></td>
<td class="top_menu_bttn">
<a href="{SEARCH_TGT}" onmouseover="MM_showHideLayers('SYS_MENU','','hide')" title="{SEARCH_LNK}">{SEARCH_LNK}</a>
</td>
<!-- END search -->
<td><img src="themes/igames/images/menu_spacer.gif" width="2" height="35" border="0" alt="" /><br /></td>
<td class="top_menu_right_bttn">
<a href="javascript:;" onmouseover="MM_showHideLayers('SYS_MENU','','show')">@</a>
</td>
<td width="100%"> </td>
</tr>
</table>
EOT;
} else {
$template_sub_menu = <<<EOT
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<!-- BEGIN custom_link -->
<!-- END custom_link -->
<td class="top_menu_left_bttn">
<a href="{ALB_LIST_TGT}" title="{ALB_LIST_TITLE}">{ALB_LIST_LNK}</a>
</td>
<td><img src="themes/igames/images/menu_spacer.gif" width="2" height="35" border="0" alt="" /><br /></td>
<td class="top_menu_bttn">
<a href="{LASTUP_TGT}" title="{LASTUP_LNK}">{LASTUP_LNK}</a>
</td>
<td><img src="themes/igames/images/menu_spacer.gif" width="2" height="35" border="0" alt="" /><br /></td>
<td class="top_menu_bttn">
<a href="{LASTCOM_TGT}" onmouseover="MM_showHideLayers('SYS_MENU','','hide')" title="{LASTCOM_LNK}">{LASTCOM_LNK}</a>
</td>
<td><img src="themes/igames/images/menu_spacer.gif" width="2" height="35" border="0" alt="" /><br /></td>
<td class="top_menu_bttn">
<a href="{TOPN_TGT}" onmouseover="MM_showHideLayers('SYS_MENU','','hide')" title="{TOPN_LNK}">{TOPN_LNK}</a>
</td>
<!-- BEGIN search -->
<td><img src="themes/igames/images/menu_spacer.gif" width="2" height="35" border="0" alt="" /><br /></td>
<td class="top_menu_bttn">
<a href="{SEARCH_TGT}" onmouseover="MM_showHideLayers('SYS_MENU','','hide')" title="{SEARCH_LNK}">{SEARCH_LNK}</a>
</td>
<!-- END search -->
<td><img src="themes/igames/images/menu_spacer.gif" width="2" height="35" border="0" alt="" /><br /></td>
<td class="top_menu_right_bttn">
<a href="javascript:;" onmouseover="MM_showHideLayers('SYS_MENU','','show')">@</a>
</td>
<td width="100%"> </td>
</tr>
</table>
EOT;
}
function theme_display_album_list(&$alb_list, $nbAlb, $cat, $page, $total_pages)
{
global $CONFIG, $STATS_IN_ALB_LIST, $statistics, $template_tab_display, $template_album_list, $lang_album_list;
$theme_alb_list_tab_tmpl = $template_tab_display;
$theme_alb_list_tab_tmpl['left_text'] = strtr($theme_alb_list_tab_tmpl['left_text'], array('{LEFT_TEXT}' => $lang_album_list['album_on_page']));
$theme_alb_list_tab_tmpl['inactive_tab'] = strtr($theme_alb_list_tab_tmpl['inactive_tab'], array('{LINK}' => 'index.php?cat=' . $cat . '&page=%d'));
$theme_alb_list_tab_tmpl['inactive_next_tab'] = strtr($theme_alb_list_tab_tmpl['inactive_next_tab'], array('{LINK}' => 'index.php?cat=' . $cat . '&page=%d'));
$theme_alb_list_tab_tmpl['inactive_prev_tab'] = strtr($theme_alb_list_tab_tmpl['inactive_prev_tab'], array('{LINK}' => 'index.php?cat=' . $cat . '&page=%d'));
$tabs = create_tabs($nbAlb, $page, $total_pages, $theme_alb_list_tab_tmpl);
$album_cell = template_extract_block($template_album_list, 'album_cell');
$empty_cell = template_extract_block($template_album_list, 'empty_cell');
$tabs_row = template_extract_block($template_album_list, 'tabs');
$stat_row = template_extract_block($template_album_list, 'stat_row');
$spacer = template_extract_block($template_album_list, 'spacer');
$header = template_extract_block($template_album_list, 'header');
$footer = template_extract_block($template_album_list, 'footer');
$rows_separator = template_extract_block($template_album_list, 'row_separator');
$count = 0;
$columns = $CONFIG['album_list_cols'];
$column_width = ceil(100 / $columns);
$thumb_cell_width = $CONFIG['alb_list_thumb_size'] + 2;
starttable('100%');
if ($STATS_IN_ALB_LIST) {
$params = array('{STATISTICS}' => $statistics,
'{COLUMNS}' => $columns,
);
echo template_eval($stat_row, $params);
}
echo $header;
if (is_array($alb_list)) {
foreach($alb_list as $album) {
$count ++;
$params = array('{COL_WIDTH}' => $column_width,
'{ALBUM_TITLE}' => $album['album_title'],
'{THUMB_CELL_WIDTH}' => $thumb_cell_width,
'{ALB_LINK_TGT}' => "thumbnails.php?album={$album['aid']}",
'{ALB_LINK_PIC}' => $album['thumb_pic'],
'{ADMIN_MENU}' => $album['album_adm_menu'],
'{ALB_DESC}' => myTruncate($album['album_desc'], 30, "..."), // the number changes the # of characters printed for the album description.
'{ALB_INFOS}' => $album['album_info'],
);
echo template_eval($album_cell, $params);
if ($count % $columns == 0 && $count < count($alb_list)) {
echo $rows_separator;
}
}
}
$params = array('{COL_WIDTH}' => $column_width,
'{SPACER}' => $thumb_cell_width
);
$empty_cell = template_eval($empty_cell, $params);
while ($count++ % $columns != 0) {
echo $empty_cell;
}
echo $footer;
// Tab display
$params = array('{COLUMNS}' => $columns,
'{TABS}' => $tabs,
);
echo template_eval($tabs_row, $params);
endtable();
echo $spacer;
}
// Function to display first level Albums of a category
function theme_display_album_list_cat(&$alb_list, $nbAlb, $cat, $page, $total_pages)
{
global $CONFIG, $STATS_IN_ALB_LIST, $statistics, $template_tab_display, $template_album_list_cat, $lang_album_list;
if (!$CONFIG['first_level']) {
return;
}
$theme_alb_list_tab_tmpl = $template_tab_display;
$theme_alb_list_tab_tmpl['left_text'] = strtr($theme_alb_list_tab_tmpl['left_text'], array('{LEFT_TEXT}' => $lang_album_list['album_on_page']));
$theme_alb_list_tab_tmpl['inactive_tab'] = strtr($theme_alb_list_tab_tmpl['inactive_tab'], array('{LINK}' => 'index.php?cat=' . $cat . '&page=%d'));
$tabs = create_tabs($nbAlb, $page, $total_pages, $theme_alb_list_tab_tmpl);
// echo $template_album_list_cat;
$template_album_list_cat1 = $template_album_list_cat;
$album_cell = template_extract_block($template_album_list_cat1, 'c_album_cell');
$empty_cell = template_extract_block($template_album_list_cat1, 'c_empty_cell');
$tabs_row = template_extract_block($template_album_list_cat1, 'c_tabs');
$stat_row = template_extract_block($template_album_list_cat1, 'c_stat_row');
$spacer = template_extract_block($template_album_list_cat1, 'c_spacer');
$header = template_extract_block($template_album_list_cat1, 'c_header');
$footer = template_extract_block($template_album_list_cat1, 'c_footer');
$rows_separator = template_extract_block($template_album_list_cat1, 'c_row_separator');
$count = 0;
$columns = $CONFIG['album_list_cols'];
$column_width = ceil(100 / $columns);
$thumb_cell_width = $CONFIG['alb_list_thumb_size'] + 2;
starttable('100%');
if ($STATS_IN_ALB_LIST) {
$params = array('{STATISTICS}' => $statistics,
'{COLUMNS}' => $columns,
);
echo template_eval($stat_row, $params);
}
echo $header;
if (is_array($alb_list)) {
foreach($alb_list as $album) {
$count ++;
$params = array('{COL_WIDTH}' => $column_width,
'{ALBUM_TITLE}' => $album['album_title'],
'{THUMB_CELL_WIDTH}' => $thumb_cell_width,
'{ALB_LINK_TGT}' => "thumbnails.php?album={$album['aid']}",
'{ALB_LINK_PIC}' => $album['thumb_pic'],
'{ADMIN_MENU}' => $album['album_adm_menu'],
'{ALB_DESC}' => myTruncate($album['album_desc'], 30, "..."), // the number changes the # of characters printed for the album description.
'{ALB_INFOS}' => $album['album_info'],
);
echo template_eval($album_cell, $params);
if ($count % $columns == 0 && $count < count($alb_list)) {
echo $rows_separator;
}
}
}
$params = array('{COL_WIDTH}' => $column_width,
'{SPACER}' => $thumb_cell_width
);
$empty_cell = template_eval($empty_cell, $params);
while ($count++ % $columns != 0) {
echo $empty_cell;
}
echo $footer;
// Tab display
$params = array('{COLUMNS}' => $columns,
'{TABS}' => $tabs,
);
echo template_eval($tabs_row, $params);
endtable();
echo $spacer;
}
// Get the name of an album
function get_album_desc($aid)
{
global $CONFIG;
global $lang_errors;
$result = cpg_db_query("SELECT description from {$CONFIG['TABLE_ALBUMS']} WHERE aid='$aid'");
$count = mysql_num_rows($result);
if ($count > 0) {
$row = mysql_fetch_array($result);
return bb_decode($row['description']);
} else {
return "Album not found";
}
}
// Function for truncating long text strings.
// Original PHP code by Chirp Internet: www.chirp.com.au
// Please acknowledge use of this code by including this header.
// Adapted for Coppermine Photo Gallery use by Billy Bullock - www.billygbullock.com
function myTruncate($string, $limit, $break=".", $pad="...")
{
// return with no change if string is shorter than $limit
if(strlen($string) <= $limit) return $string;
// is $break present between $limit and the end of the string?
if(false !== ($breakpoint = strpos($string, $break, $limit))) {
if($breakpoint < strlen($string) - 1) {
$string = substr($string, 0, $breakpoint) . $pad;
}
}
return $string;
}
// HTML template for title row of the thumbnail view (album title + sort options)
$template_thumb_view_title_row = <<<EOT
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td width="100%" class="statlink"><h2>{ALBUM_NAME}</h2><P><h3>${album_desc}</h3></p></td>
</tr>
</table>
EOT;
// Function to start a 'standard' table
function starttable($width = '-1', $title = '', $title_colspan = '1')
{
global $CONFIG;
if ($width == '-1') $width = $CONFIG['picture_table_width'];
if ($width == '100%') $width = $CONFIG['main_table_width'];
if ($title) {
echo <<<EOT
<!-- Start standard table title -->
<table align="center" width="$width" cellspacing="0" cellpadding="0" class="maintablea">
<tr>
<td>
<table width="100%" cellspacing="0" cellpadding="0" class="tableh1a">
<tr>
<td><img src='themes/igames/images/box_left_icon.gif' hspace="5" alt="" /> </td>
<td class="tableh1a" width="95%">$title</td>
<td width="5%"> </td>
</tr>
</table>
</td>
</tr>
</table>
<!-- Start standard table -->
<table align="center" width="$width" cellspacing="1" cellpadding="0" class="maintableb">
EOT;
} else {
echo <<<EOT
<!-- Start standard table -->
<table align="center" width="$width" cellspacing="1" cellpadding="0" class="maintable">
EOT;
}
}
$template_img_navbar = <<<EOT
<tr>
<td align="center" valign="middle" class="navmenu" width="48">
<a href="{THUMB_TGT}" class="navmenu_pic" title="{THUMB_TITLE}"><img src="{LOCATION}images/thumbnails.gif" align="middle" border="0" alt="{THUMB_TITLE}" /></a>
</td>
<td align="center" valign="middle" class="navmenu" width="48">
</td>
<td align="center" valign="middle" class="navmenu" width="100%">
{PIC_POS}
</td>
<!-- BEGIN report_file_button -->
<td align="center" valign="middle" class="navmenu" width="48">
<a href="{REPORT_TGT}" class="navmenu_pic" title="{REPORT_TITLE}"><img src="{LOCATION}images/report.gif" border="0" align="middle" alt="{REPORT_TITLE}" /></a>
</td>
<!-- END report_file_button -->
<!-- BEGIN ecard_button -->
<td align="center" valign="middle" class="navmenu" width="48">
<a href="{ECARD_TGT}" class="navmenu_pic" title="{ECARD_TITLE}"><img src="{LOCATION}images/ecard.gif" border="0" align="middle" alt="{ECARD_TITLE}" /></a>
</td>
<!-- END ecard_button -->
<td align="center" valign="middle" class="navmenu" width="48">
<a href="{PREV_TGT}" class="navmenu_pic" title="{PREV_TITLE}"><img src="{LOCATION}images/prev.gif" border="0" align="middle" alt="{PREV_TITLE}" /></a>
</td>
<td align="center" valign="middle" class="navmenu" width="48">
<a href="{NEXT_TGT}" class="navmenu_pic" title="{NEXT_TITLE}"><img src="{LOCATION}images/next.gif" border="0" align="middle" alt="{NEXT_TITLE}" /></a>
</td>
</tr>
EOT;
// HTML template for the album list
$template_album_list = <<<EOT
<!-- BEGIN stat_row -->
<tr>
<!--<td colspan="{COLUMNS}" class="tableh1" align="center"><span class="statlink">{STATISTICS}</span></td>-->
</tr>
<!-- END stat_row -->
<!-- BEGIN header -->
<tr class="tableb_compact">
<!-- END header -->
<!-- BEGIN album_cell -->
<td width="{COL_WIDTH}%" valign="top">
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3" height="1" align="center" valign="top" class="tableh2">
<span class="alblink"><a href="{ALB_LINK_TGT}"><b>{ALBUM_TITLE}</b></a></span>
</td>
</tr>
<tr>
<td colspan="3">
<img src="images/spacer.gif" width="1" height="1" border="0" alt="" /><br />
</td>
</tr>
<tr>
<td align="center" valign="middle" class="thumbnails">
<img src="images/spacer.gif" width="{THUMB_CELL_WIDTH}" height="1" class="image" style="margin-top: 0px; margin-bottom: 0px; border: none;" alt="" /><br />
<a href="{ALB_LINK_TGT}" class="albums">{ALB_LINK_PIC}<br /></a>
<p>{ALB_DESC}</p>
<img src="images/spacer.gif" width="1" height="1" border="0" alt="" />
{ADMIN_MENU}
<!--<p class="album_stat">{ALB_INFOS}</p>-->
</td>
</tr>
</table>
</td>
<!-- END album_cell -->
<!-- BEGIN empty_cell -->
<td width="{COL_WIDTH}%" valign="top">
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td height="1" valign="top" class="tableh2">
<b> </b>
</td>
</tr>
<tr>
<td>
<img src="images/spacer.gif" width="1" height="1" border="0" alt="" /><br />
</td>
</tr>
<tr>
<td width="100%" valign="top" class="tableb_compact">
<div class="thumbnails" style="background-color:transparent"><img src="images/spacer.gif" width="1" height="{SPACER}" border="0" class="image" style="border:0;margin-top:1px;margin-bottom:0" alt="" /></div>
</td>
</tr>
</table>
</td>
<!-- END empty_cell -->
<!-- BEGIN row_separator -->
</tr>
<tr class="tableb_compact">
<!-- END row_separator -->
<!-- BEGIN footer -->
</tr>
<!-- END footer -->
<!-- BEGIN tabs -->
<tr>
<td colspan="{COLUMNS}" style="padding: 0px;">
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
{TABS}
</tr>
</table>
</td>
</tr>
<!-- END tabs -->
<!-- BEGIN spacer -->
<img src="images/spacer.gif" width="1" height="7" border="" alt="" /><br />
<!-- END spacer -->
EOT;
?