<?php if( !empty($YagProduct->prices->salesPrice) ) : ?>
<?php echo YagendooTmplGlobal::getProductPriceHtml($YagProduct); ?>
此代码来自Yagendoo Suite和Joomla for Eshops的插件。 这是我第一次看到类似的东西,我不知道如何调用它,在谷歌搜索5小时后我什么都没发现。我可以理解的是,$ YagProduct是一个全局类var,在类中有许多其他变量。 echo发布4个html div。我想删除其中的2个,所以我需要一些如何翻译得到回显的变量并获得它的值,以便我可以编辑它。
我试过了:
<?php
$testvar= YagendooTmplGlobal::getProductPriceHtml($YagProduct);
print_r($testvar);
die();
?>
没有结果。有没有人知道如何翻译这个?
检查元素:
<div class="yagVmHomePriceWrap">
<div class="PricesalesPrice" style="display : block;"></div>
<div class="yagVmProdPriceAdditional">
<div class="PricediscountAmount" style="display : block;"></div>
<div class="PricepriceWithoutTax" style="display : block;"></div>
<div class="PricetaxAmount" style="display : block;">
<span class="PricetaxAmount"></span>
</div>
<div class="PricediscountedPriceWithoutTax" style="display : block;"></div>
</div>
<div class="yagVmFlyProdPriceOld"></div>
</div>
PHP:
<?php if( YagParams::get('showPrices') === '1' ) : ?>
<div class="yagVmHomePriceWrap">
<?php if( !empty($YagProduct->prices->salesPrice) ) : ?>
<?php echo YagendooTmplGlobal::getProductPriceHtml($YagProduct); ?>
<?php if( $YagProduct->prices->discountAmount != 0 ) : ?>
<div class="yagVmFlyProdPriceOld">
<?php echo YagendooTmplGlobal::getProductOldPriceHtml($YagProduct); ?>
</div>
<?php endif; ?>
<?php elseif( empty($YagProduct->prices->salesPrice) && YagParams::get('askPrice') === '1' ) : ?>
<a class="yagVmCategoryAskQuestionLink" href="<?php echo $yagVmAskQuestionUrl; ?>" title="<?php echo YagLang::_('YAG_ASK_PRICE'); ?>">
<?php echo YagLang::_('YAG_ASK_PRICE'); ?>
</a>
<?php endif; ?>
</div>
<?php endif; ?>
答案 0 :(得分:0)
可能是$testvar
为NULL,在这种情况下,print_r不会显示任何内容,因此页面只会死()并且不会显示任何内容。
尝试使用var_dump()来回显它:
<?php
$testvar= YagendooTmplGlobal::getProductPriceHtml($YagProduct);
var_dump($testvar);
die();
?>
然后你可以看到你的$ testvar的确切内容,你将能够进一步调试。
使用爆炸
$exploded = explode(' ', $testvar);
从这里开始,$ explosion将是一个数组。如果你想继续删除第3和第5个位置,那么你的数组将是:
$exploded = Array
(
[0] => 50,00
[1] => EUR
[2] => 25,00
[3] => EUR
[4] => 82,90
[5] => EUR
[6] => 9,35
[7] => EUR
[8] => 40,65
[9] => EUR
)
因为数字和符号之间有空格。因此,当你从数组中消除时,你必须要小心。
unset($exploded[4]);
unset($exploded[5]);
unset($exploded[8]);
unset($exploded[9]);
这将取消设置位置4,5,8和9,因此您将删除数字和符号。 在此之后你只需要内爆...
$imploded = implode(' ', $exploded);
然后,echo $imploded;
将产生:50,00€25,00€9,35€