1
私はこれを試しましたが、何か不足していると思います。 このコードで何が問題になっていますか?私はそれを理解することはできません。誰でも助けることができるだろうか? 私はちょうど(年間/毎月のメンバーシップの)カテゴリータイトルを1回だけ表示したいだけですが、これはすべてのオプションで表示されます。私のスクリーンショットをご覧ください。これは主に各ループのためであることを理解していますが、移動して試してみると、私はホームページにリダイレクトされます。私はそれを正しく書いていないかもしれません。どんな助けもありがとうございます。foreachループでタイトルを1回だけ表示する
このオプションはすべてのオプションで表示されますが、これは私が望むものではありません。
<?php
/**
* @package Joomla
* @subpackage Membership Pro
* @author Tuan Pham Ngoc
* @copyright Copyright (C) 2012 - 2016 Ossolution Team
* @license GNU/GPL, see LICENSE.php
*/
// no direct access
defined('_JEXEC') or die;
?>
<ul class="osm-upgrade-options">
<?php
$upgradeOptionCount = 0;
$display_title = true;
foreach ($this->upgradeRules as $rule)
{
$checked = '';
if ($upgradeOptionCount == 0)
{
$checked = ' checked="checked" ';
}
$upgradeOptionCount++;
$upgradeToPlan = $this->plans[$rule->to_plan_id];
$symbol = $upgradeToPlan->currency_symbol ? $upgradeToPlan->currency_symbol : $upgradeToPlan->currency;
$taxRate = 0;
if ($this->config->show_price_including_tax)
{
$taxRate = OSMembershipHelper::calculateMaxTaxRate($rule->to_plan_id);
}
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('a.title')
->from('#__osmembership_categories AS a')
->innerJoin('#__osmembership_plans AS b ON a.id = b.category_id')
->where('b.id = ' . $rule->to_plan_id);
$db->setQuery($query);
$categoryTitle = $db->loadResult();
if ($categoryTitle == "Annual Membership Plan" && $display_title) {
echo 'Annual Membership';
$display_title=false;
}
else {
echo 'Monthly Membership';
}
?>
<li class="osm-upgrade-option">
<input type="radio" class="validate[required]" id="upgrade_option_id_<?php echo $upgradeOptionCount; ?>" name="upgrade_option_id" value="<?php echo $rule->id; ?>"<?php echo $checked; ?> />
<label for="upgrade_option_id_<?php echo $upgradeOptionCount; ?>"><?php JText::printf('OSM_UPGRADE_OPTION_TEXT', $this->plans[$rule->from_plan_id]->title, $upgradeToPlan->title, OSMembershipHelper::formatCurrency($rule->price * (1 + $taxRate/100), $this->config, $symbol)); ?></label>
</li>
<?php
}
?>
</ul>
ありがとう@Bをフラグ変数を使用してそれを行うことができます。しかし、どうすればelse文を追加できますか?私は試してみましたが、追加すると複数回表示され続けます。 –
@Dilum Jayawardhanaがあなたのコードを更新するので、必要なものを手に入れることができます –
オリジナルコードが更新されました。 –