使用自定义字段,它们的工作方式相同,但如果需要,请遵循以下方法。
我也有类似的要求。我需要添加新字段来显示一些与产品相关的 YouTube 视频。
我所做的是:
数据库表中的新字段
更改我们需要添加新字段的数据库表。
我必须做的是,我需要一些产品的自定义信息,如 YouTube 视频或其他一些可下载的内容等。所以在表中创建了一个字段 product_youtube_link | varchar=128
abcd_virtuemart_products(这里 abcd 是我对表格的前标题)
在虚拟机管理员的前端显示表格字段
进入下一页(因为我想在产品->自定义字段下的后端/管理视图中显示此字段)。
website/administrator/components/com_virtuemart/views/product/tmpl/product_edit_custom.php
我添加了以下代码行:
<fieldset style="background-color:#F9F9F9;">
<legend>Installation Guide</legend>
YouTube URL like this: http://www.youtube.com/watch?v=nwgLvK830xI
<div style="width: auto;">
<input type="text" size="40" name="product_youtube_link" id="product_youtube_link" value="<?php echo $this->product->product_youtube_link; ?>" />
</div>
</fieldset>
这将在 Virtuemart 3.x.x 中的 product->custom fields 下显示一个输入字段
到目前为止,它没有显示数据库中的任何值(我在 phpMyAdmin 中为一个特定产品手动添加了一些东西)。
要使该字段可读、可编辑或可删除,我们必须做很多工作。 :)
不要害怕。这是最简单的工作:
在以下文件中。
website/administrator/components/com_virtuemart/helpers/shopfunctions.php
并在第 980 行找到了一个函数getValidProductFilterArray() ...。并在 $filterArray 的值末尾添加了数据库字段标题。
这个数组现在应该结束了:
之前
.....'pc.ordering');
之后
.....'pc.ordering', 'product_youtube_link');
现在刷新了虚拟机管理员面板中的产品视图。哇,我的数据库值在那里(我手动添加的)
测试该值是否真的有效。我在虚拟机管理员面板的产品视图中更改了前端的这个值。保存了该产品,并更新了该值。我打开了 phpMyAdmin,并进行了更新。
如何在网站前端显示这个值。
我需要在产品详细信息下显示此内容。
因为我正在使用模板覆盖。所以在
website/templates/mytemplate/html/com_virtuemart/productdetails/default.php
或者如果不使用覆盖,则在 vm 的默认模板详细信息页面中......
website/components/com_virtuemart/views/productdetails/tmpl/default.php
我添加了以下几行
<?
if (!empty($this->product->product_youtube_link)) {
echo $this->product->product_youtube_link;
}
?>
这些数据出现在前端。