Joomla 3.6.5,VirtueMart 3.0.18
我想知道是否有任何开发人员可以给我一个想法?任何帮助都会非常感激!
我的客户根据他的需求希望在管理面板中添加一个输入框字段,该字段将包含产品的目录价格。请不要问为什么..
1.此字段将保存在名为 catalog_price decimal(15,2)
的新列的 jos_virtuemart_product_prices 表中此字段将独立于任何calc-tax规则,;) ,,此后面exaclty中此字段中插入的价格将插入到jos_virtuemart_product_prices表中新列catalog_price
目标是此字段将显示在税前删除价格的前面
到目前为止,我已经完成了以下工作,
管理员\部件\ com_virtuemart \视图\产品\ TMPL \ product_edit_price.php
下一步是我要在db中保存那个价格...其中是保存 - 提交类?? ??函数?? post方法?? 我很困惑!! : - [: - [请帮助一些人!!
提前谢谢
答案 0 :(得分:0)
使用自定义字段,这些字段的工作方式相同,但如果需要,请按照以下方法操作。
我有类似的请求。我需要添加新字段才能显示与产品相关的YouTube视频。
我做的是:
数据库表中的新字段
更改我们需要添加新字段的数据库表。
我必须做的是,我需要一些产品的自定义信息,如YouTube视频或其他一些可下载内容等。因此在表格中创建了一个字段product_youtube_link | varchar=128
abcd_virtuemart_products (这里abcd是我的桌子预标题)
在VM管理员的前端显示表格字段
进入下一页(因为我想在产品 - >自定义字段下的后端/管理员视图中显示此字段)。
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中
到目前为止,它没有显示数据库中的任何值(我在phpMyAdmin中为一个特定产品手动添加了一些内容)。
为了使这个字段可读,可编辑或删除,我们必须做很多工作。 :)
不要害怕。这是最简单的工作:在以下文件中。
website/administrator/components/com_virtuemart/helpers/shopfunctions.php
并在第980行找到了一个函数getValidProductFilterArray() ...
。并在$ filterArray值的末尾添加了数据库字段标题。
此数组现在应该结束:
之前
.....&#39; pc.ordering&#39);
<强>后强>
.....&#39; pc.ordering&#39;,&#39; product_youtube_link &#39;);
现在刷新VM管理员面板中的产品视图。哇,我的数据库值在那里(我手动添加的)
测试该值是否确实有效。我在VM Administrator面板的产品视图中更改了前端的值。保存该产品,并更新该值。我打开phpMyAdmin,然后更新了。
如何在网站前端显示此值。
我需要在产品详细信息下显示。
因为我正在使用模板覆盖。所以
website/templates/mytemplate/html/com_virtuemart/productdetails/default.php
或者如果不使用覆盖,则在vm ..的defualt模板详细信息页面中
website/components/com_virtuemart/views/productdetails/tmpl/default.php
我添加了以下行
<?
if (!empty($this->product->product_youtube_link)) {
echo $this->product->product_youtube_link;
}
?>
这些数据出现在前端。