2

我试图找出如何手动将产品型号添加到 zencart 的类别产品列表中的每个标题,而不是让型号出现在它自己的列中。

似乎任何使用实例:

$listing->fields['products_model']

“product_listing.php”文件中的“product_listing.php”文件只有在admin中的参数被发送为true时才会起作用。这很好,但是我得到了产品模型的两个实例。一个在它自己的列中包含变量(我不想要),另一个是我将变量放在其他任何地方。

这是我所指的部分,您会注意到为模型设置了一个案例以拥有自己的列,但是我想将它放在标题之前而不是在产品列表名称案例下并删除该列。

for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
   $lc_align = '';
   switch ($column_list[$col]) {
      case 'PRODUCT_LIST_MODEL':
         $lc_align = '';
         $lc_text = $listing->fields['products_model'];
         break;
      case 'PRODUCT_LIST_NAME':
         $lc_align = '';
         $lc_text = '<h3 class="itemTitle"><a href="'.zen_href_link(zen_get_info_page($listing->fields['products_id']), 'cPath=' . (($_GET['manufacturers_id'] > 0 and $_GET['filter_id'] > 0) ?  zen_get_generated_category_path_rev($_GET['filter_id']) : ($_GET['cPath'] > 0 ? zen_get_generated_category_path_rev($_GET['cPath']) : zen_get_generated_category_path_rev($listing->fields['master_categories_id']))) . '&products_id=' . $listing->fields['products_id']) . '">' . $listing->fields['products_name'] . '</a></h3>

有没有一种方法可以在绕过管理中的参数集的同时引用型号并放置在每一行的标题中?

任何帮助将不胜感激。

4

2 回答 2

1

我只需将产品型号 ($listing->fields['products_model']) 附加到产品标题:

case 'PRODUCT_LIST_NAME':
    $lc_align = '';
    $lc_text = '<h3 class="itemTitle"><a href="' . zen_href_link(zen_get_info_page($listing->fields['products_id']), 'cPath=' . (($_GET['manufacturers_id'] > 0 and $_GET['filter_id'] > 0) ?  zen_get_generated_category_path_rev($_GET['filter_id']) : ($_GET['cPath'] > 0 ? zen_get_generated_category_path_rev($_GET['cPath']) : zen_get_generated_category_path_rev($listing->fields['master_categories_id']))) . '&products_id=' . $listing->fields['products_id']) . '">' . $listing->fields['products_name'] . '[' . $listing->fields['products_model'] . ']' . '</a></h3><div class="listingDescription">' . zen_trunc_string(zen_clean_html(stripslashes(zen_get_products_description($listing->fields['products_id'], $_SESSION['languages_id']))), PRODUCT_LIST_DESCRIPTION) . '</div>';
    break;

记得关闭 Zen Cart Admin 中的 Model Number 列。

我没有在 Zen Cart 中测试过这个 - 希望它有所帮助。

于 2013-06-06T23:43:35.030 回答
1

一段时间后,我想出了自己问题的答案。这实际上比我想象的要容易得多。希望这将帮助其他可能想做同样事情的人。

转到“包含/index_filters/default_filter.php:

据我所知,这是对“产品列表”模块进行所有查询的地方,以显示特定类别或制造商的列表。默认情况下,当前查询不包括“p.products_model”。只需在每个查询中添加列标识符(总共 4 个位置:类别、类别:全部、制造商、制造商:全部)。

例子:

// We are asked to show only specific category
  $listing_sql = "select " . $select_column_list . " p.products_id, p.products_model, p.products_type, p.master_categories_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, pd.products_description, IF(s.status = 1, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status = 1, s.specials_new_products_price, p.products_price) as final_price, p.products_sort_order, p.product_is_call, p.product_is_always_free_shipping, p.products_qty_box_status
  from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " .
  TABLE_PRODUCTS_DESCRIPTION . " pd, " .
  TABLE_MANUFACTURERS . " m, " .
  TABLE_PRODUCTS_TO_CATEGORIES . " p2c
  where p.products_status = 1
    and p.manufacturers_id = m.manufacturers_id
    and m.manufacturers_id = '" . (int)$_GET['filter_id'] . "'
    and p.products_id = p2c.products_id
    and pd.products_id = p2c.products_id
    and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
    and p2c.categories_id = '" . (int)$current_category_id . "'" .
    $alpha_sort;
}

从那里,您将能够在任何您想要的地方调用产品型号代码“$listing->fields['products_model']”,而不会在管理后端中的参数中断它的显示。就我而言,我将它直接包含在模块中“product_listing.php”文件中的产品名称下。

例子:

$lc_text = '<h3 class="itemTitle"><a href="' . zen_href_link(zen_get_info_page($listing->fields['products_id']), 'cPath=' . (($_GET['manufacturers_id'] > 0 and $_GET['filter_id'] > 0) ?  zen_get_generated_category_path_rev($_GET['filter_id']) : ($_GET['cPath'] > 0 ? zen_get_generated_category_path_rev($_GET['cPath']) : zen_get_generated_category_path_rev($listing->fields['master_categories_id']))) . '&products_id=' . $listing->fields['products_id']) . '">' . $listing->fields['products_name'] . '</a></h3><div id=\"listing_model\">Item Code: ' .$listing->fields['products_model'] . '</div>

希望这可以帮助某人。为什么他们让您最初为产品模型设置了一整列,这超出了我的理解,因为“Listing New”和“Listing All”都将其与标题和描述显示在同一列中。

于 2014-03-31T20:14:29.047 回答