简洁版Featured Category/Shop by Category模块
网站首页的默认文件是tpl_index_default.php
需要在首页上显示类似兰亭的Featured Categories模块,需要添加以下代码:
<table width=100% border=0><tr>
<?php
$categories_query = "SELECT c.categories_id, cd.categories_name, c.categories_image, c.parent_id
FROM " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd
WHERE c.parent_id = :parentID
AND c.categories_id = cd.categories_id
AND cd.language_id = :languagesID
AND c.categories_status= '1'
ORDER BY sort_order";
$categories_query = $db->bindVars($categories_query, ':parentID', $current_category_id, 'integer');
$categories_query = $db->bindVars($categories_query, ':languagesID', $_SESSION['languages_id'], 'integer');
$categories_row = $db->Execute($categories_query);
$number_of_categories = $categories_row->RecordCount();
$new_products_category_id = $current_category_id;
$rows = 0;
while (!$categories_row->EOF) {
$rows++;
$cPath_new = zen_get_path($categories_row->fields['categories_id']);
// strio out 0_ from top level
$cPath_new = str_replace('=0_', '=', $cPath_new);
$width = (int)(100 / MAX_DISPLAY_CATEGORIES_PER_ROW) . '%';
$newrow = false;
if ((($rows / MAX_DISPLAY_CATEGORIES_PER_ROW) == floor($rows / MAX_DISPLAY_CATEGORIES_PER_ROW)) && ($rows != $number_of_categories))
{
$newrow = true;
}
if (!$categories_row->fields['categories_image']) !$categories_row->fields['categories_image'] = 'pixel_trans.gif';
// start amazon style sub-cats in category lists
// start config variables
// display limit - adjust $limit to the number of subcats to display under parent category (4 or 5 seems right)
$limit = '3';
// subcat prefix - enter your preferred subcat prefix (bullets are default)
$subs_indent = '• ';
// no sub-cats - display this if there are no sub-cats within a category. Leave both values blank (see below) if you want to display only the category name
$no_subs_indent = '» ';
$no_subs_prefix = 'View Products';
//$no_subs_indent = '';
//$no_subs_prefix = '';
// sub-cats exceed display limit - indent and text prefix to display if sub-cats exceed display limit (eg - More {CATEGORY NAME})
$limit_exceeded_indent = '»» ';
$limit_exceeded_prefix = 'More ';
// end config variables
$parent_id = $categories_row->fields[categories_id];
$sql = "select c.categories_id, cd.categories_name
from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd
where c.parent_id = '" . (int)$parent_id . "'
and c.categories_id = cd.categories_id
and cd.language_id = '" . (int)$_SESSION['languages_id'] . "'
and c.categories_status= '1'
order by sort_order, cd.categories_name";
$subcats = $db->Execute($sql);
$subs_string = "";
//if ($subcats->EOF) $subs_string .= '<br />' . $no_subs_indent . '<a href=' . zen_href_link(FILENAME_DEFAULT, $cPath_new) . '>' . $no_subs_prefix . '</a>';
if ($subcats->EOF) $subs_string .= '';
while (!$subcats->EOF) {
if ($limit == $subcats->cursor) {
//$subs_string .= '<br />' . $limit_exceeded_indent . '<a href=' . zen_href_link(FILENAME_DEFAULT, $cPath_new) . '>' . $limit_exceeded_prefix . $categories_row->fields[categories_name] . '</a>';
$subs_string .= '';
break;
}
$cPath_subs = $cPath_new . '_' . $subcats->fields[categories_id];
$subs_string .= '<br />' . $subs_indent . '<a href=' . zen_href_link(FILENAME_DEFAULT, $cPath_subs) . '>' . $subcats->fields[categories_name] . '</a>';
$subcats->MoveNext();
}
// end add sub-cat bullets to category rows
?>
<td align="center" width="<?php echo $width; ?>" valign="top" style="border-bottom: 1px solid #e5e5e5;">
<a href="<?php echo zen_href_link(FILENAME_DEFAULT, $cPath_new); ?>">
<?php echo zen_image(DIR_WS_IMAGES . $categories_row->fields['categories_image'], $categories->fields['categories_name'], 80, 80); ?>
</a>
<br>
<b style="font-size:120%;"><?php echo $categories_row->fields['categories_name']; ?></b><br>
<span><?php echo $subs_string; ?></span>
</td>
<?php
if ($newrow) {
?>
</tr>
<tr>
<?php
}
?>
<?
$categories_row->MoveNext();
}
?>
</table>
后来整理了一下思路,简单了弄了个类似的,优缺点也各有存在。
上面那个模块可以在大分类下显示小分类,代码贴上去就能用,不过冗余代码很多,比较难看懂
本文中的这个代码很小,只能显示一个分类(子分类或父分类都可以),推荐分类的ID需要在代码中加入进去。
代码:
<div class="centerBoxWrapper" id="feacat">
<h2 class="centerBoxHeading">Featured Category</h2>
<?php
$feacatARR = array("3","4","5","6","","","","","");//这里填写推荐分类的id,需要填写多少就填多少,最好不要为空
foreach($feacatARR as $feaID){
$sql_feaimg = "select c.categories_image from " . TABLE_CATEGORIES . " c where c.categories_id = '" . $feaID . "'";
$categories_img = $db->Execute($sql_feaimg);
echo '<div class="feacatcontent centeredContent back" style=" width:25%;">';
echo '<a href="'. zen_href_link(FILENAME_DEFAULT,'cPath='.$feaID) .'">' . zen_image(DIR_WS_IMAGES . $categories_img->fields['categories_image'], zen_get_categories_name($feaID), 150, 150) . '</a>';
echo '<h3 class="itemTitle"><a href="'. zen_href_link(FILENAME_DEFAULT,'cPath='.$feaID) .'">' . zen_get_categories_name($feaID) . '</a></h3>';
echo '</div>';
}
?>
</div> 也可以新建一个php文件,把这段代码贴进去,然后在tpl_index_default.php中调用那个文件即可。