Остальной синтаксис, возвращающий ошибку - PullRequest
0 голосов
/ 15 сентября 2011
      <?php if($this->item->params->get('itemExtraFields') && count($this->item->extra_fields)): ?>
      <!-- Item extra fields -->
      <div class="itemExtraFields">
          <h3><?php echo JText::_('Additional Info'); ?></h3>
          <ul>
            <?php foreach ($this->item->extra_fields as $key=>$extraField):?>


 <?php $user =& JFactory::getUser(); ?>
 <strong><?php if($extraField->name == "Price" && $user->get('guest') ==1) { ?></strong> 


<?php else: ?>   
                <li class="<?php echo ($key%2) ? "odd" : "even"; ?> type<?php echo ucfirst($extraField->type); ?> group<?php echo $extraField->group; ?>">
                    <span class="itemExtraFieldsLabel"><?php echo $extraField->name; ?>:</span>
                    <span class="itemExtraFieldsValue"><?php echo ($extraField->type=='date')?JHTML::_('date', $extraField->value, JText::_('K2_DATE_FORMAT_LC')):$extraField->value; ?></span>
                </li>
                <?php endif; ?>
            <?php endforeach; ?>
            </ul>
        <div class="clr"></div>
      </div>
      <?php endif; ?>

В чем здесь проблема?Он возвращает ошибку Ошибка разбора: синтаксическая ошибка, неожиданный T_ELSE в .

Это для видимости дополнительного поля K2

Ответы [ 3 ]

2 голосов
/ 15 сентября 2011

Вы смешиваете синтаксисы if() : и if() {.Один if() { в середине, когда все остальные используют :.

Совет по отладке: ошибка очень часто находится в одной строке перед строкой, на которую указывает сообщение об ошибке.

0 голосов
/ 15 сентября 2011

Изменить это -

<?php if($extraField->name == "Price" && $user->get('guest') ==1) { ?>

на это -

<?php if($extraField->name == "Price" && $user->get('guest') ==1): ?>
0 голосов
/ 15 сентября 2011

Вы смешиваете различные способы использования операторов if-else.В середине этого кода вы открываете оператор if с помощью {, а затем используете else :.Вы также никогда не закроете это, если.

...