手动将“产品型号”编号添加到Zen Cart中的产品列表中

时间:2013-04-09 14:24:25

标签: php mysql case zen-cart

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

似乎使用的任何实例:

$listing->fields['products_model']
只有当admin中的参数发送为true时,“product_listing.php”文件中的

才会起作用。这很好,但是我得到了产品模型的两个实例。一个是变量在它自己的列中(我不想要),还有一个我放置变量的地方。

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

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>

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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

我只需将产品型号($ listing-&gt; 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中测试过这个 - 希望它有所帮助。

答案 1 :(得分:1)

过了一段时间,我已经找到了自己问题的答案。它实际上比我想象的要容易得多。希望这可以帮助那些可能想要做同样事情的人。

转到&#34;包含/ index_filters / default_filter.php:

据我所知,这是所有查询都是针对&#34;产品列表&#34;模块显示特定类别或制造商的列表。默认情况下,当前查询不包含&#34; p.products_model&#34;。只需在每个查询中添加列标识符(总共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;
}

从那里,您可以拨打产品型号代码&#34; $ listing-&gt;字段[&#39; products_model&#39;]&#34;你想要的任何地方,没有管理后端的参数中断它显示。就我而言,我将它直接包含在产品名称的&#34; product_listing.php&#34;模块中的文件。

示例:

$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>

希望这有助于某人。为什么他们让你最初有一个完整的产品型号专栏超出了我,因为他们都是&#34;列出新的&#34;和#34;列出所有&#34;两者都显示在与标题和描述相同的列中。