我正在使用Joomla的VirtueMart 2.0.10! 2.5.6我的问题是每个产品的自动生成的pdf文档不包括我的自定义字段。我不是php专家,但我认为文件 /components/com_virtuemart/views/productdetails/tmpl/default_pdf.php 中的帖子行与它有关,从第145行开始:
<?php // Product custom_fields TODO relation to Childs
if (!empty($this->product->customfields)) { ?>
<div class="product-fields">
<?php
$custom_title = null ;
foreach ($this->product->customfields as $field){
?><div style="display:inline-block;" class="product-field product-field-type-<?php echo $field->field_type ?>">
<?php if ($field->custom_title != $custom_title) { ?>
<span class="product-fields-title" ><strong><?php echo JText::_($field->custom_title); ?></strong></span>
<?php //echo JHTML::tooltip($field->custom_tip, $field->custom_title, 'tooltip.png');
} ?>
<span class="product-field-display"><?php echo $field->display ?></span>
<span class="product-field-desc"><?php echo jText::_($field->custom_field_desc) ?></span>
</div>
<?php
$custom_title = $field->custom_title;
} ?>
</div>
<?php
} // Product custom_fields END ?>
我测试了添加一个else语句,在上面的if语句和executetd之后回显一些文本。所以显然没有自定义字段......但确实有......
我没有发现其他人遇到这个问题,我认为这很奇怪,但我认为我没有搞砸了。我在 /components/com_virtuemart/views/productdetails/tmpl/default.php 文件中做了一些更改。
答案 0 :(得分:0)
我删除了我在问题中输入的所有代码,并将其替换为文件 /components/com_virtuemart/views/productdetails/tmpl/default.php 中的以下代码:
<?php
$custom_title = null;
foreach ($this->product->customfieldsSorted['normal'] as $field) { // I set the position to normal
if ( $field->is_hidden )
continue;
if ($field->display) {
?>
<?php if ($field->custom_title != $custom_title) { ?>
<b><?php echo JText::_($field->custom_title); ?></b><br />
<?php
if ($field->custom_tip)
echo JHTML::tooltip($field->custom_tip, JText::_($field->custom_title), 'tooltip.png');
}
?>
<?php echo $field->display ?><br />
<?php echo jText::_($field->custom_field_desc) ?><br />
<?php
$custom_title = $field->custom_title;
}
}
?>
我没有专家,但这对我有用。 PDF现在包含自定义字段。
正如您在代码中的评论中所看到的,我将位置更改为&#39; normal&#39; 。其他职位似乎是&#39; on&#39; 和&#39; onbot&#39; 。但是我不会改变那个设置,所以我留下它。
编辑:我忘了提及我在该细分受众群中添加了一些其他HTML代码,例如<br />
和<b>
仅用于表示。所以没什么大不了的,只是为了澄清代码并不像文件 default.php