Перейти к содержанию
magneto2010

Урок для нуба по php. Где косяк?

Рекомендуемые сообщения

Решил сделать стикеры к товару. Включаться стикеры будут у товаров, у которых в поле ean прописано что угодно.

 

Для категории забубенил - пашет, показывается как нужно, только у тех, у которых заполнено поле.

 

Вот для карточки товара не могу раздуплить как сделать, не читает стиль, хотя стиль пишу по аналогии как и в category.php, которой всё норм работает.

 

Пишу так (часть кода)

 

if ($product_info['ean']) {
    $data['ean'] = '<div class="look"><a href="best-price">' . $product_info['ean'] . '</a></div>';
} else {
    $data['ean'] = false;
}
$data['products'][] = array(
'ean'         => $ean,
 

 

Значение выводиться, только не обёртывается в стиль http://prntscr.com/ahrgz7

 

Интересует правильность кода для product.php, то что выше - правильная ли конструкция или нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В админке 
 
В файле  admin\view\template\catalog\product_form.tpl
 
находим 
 

<td><?php echo $entry_ean; ?></td>
<td><input type="text" name="ean" value="<?php echo $ean; ?>" />
</td>

меняем на переключатель Да-Нет
 

<td><?php echo $entry_ean; ?></td>
<td><?php if ($ean) { ?>
<input type="radio" name="ean" value="1" checked="checked" />
<?php echo $text_yes; ?>
<input type="radio" name="ean" value="0" />
<?php echo $text_no; ?>
<?php } else { ?>
<input type="radio" name="ean" value="1" />
<?php echo $text_yes; ?>
<input type="radio" name="ean" value="0" checked="checked" />
<?php echo $text_no; ?>
<?php } ?></td>

В контроллер карточки товара
 
после 

$this->data['model'] = $product_info['model']; 

Добавляем

$this->data['ean'] = $product_info['ean'];

если нужно в категории то соответственно
 

'ean'   => $result['ean'],

 
После

'name'        => $result['name'],

Далее добавляем див новый внутрь дива image и оборачиваем в условие
 
В карточке товара
 
 

<?php if ($ean) { ?>
       наш новый див
<?php } ?>

 
В категории
 
 

 <?php if ($product['ean']) { ?>
        наш новый див
<?php } ?>

Остальное стили.Вешаем на наш див бэкграунд или стилями обыгрываем как угодно.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо Том за ответ, но я немного по другому хотел.

 

 

if ($product_info['ean']) {
    $data['ean'] = '<div class="look"><a href="best-price">' . $product_info['ean'] . '</a></div>';
} else {
    $data['ean'] = false;
}
 

 

смысл вот этого был в том, что я любой текст писал в ячейке, (сегодня это распродажа, завтра товар дня или тп) и к этой записи, я цепляю ссылку на категорию, в которой дублируются товары имеющие этот знак. http://prntscr.com/ahszyz - стикер жмётся как ссылка.

 

Вот такая конструкция с дивом

 

if ($product_info['ean']) {

    $data['ean'] = '<div class="look"><a href="best-price">' . $product_info['ean'] . '</a></div>';
} else {
    $data['ean'] = false;
}

 

срабатывает только с cateory.php ( http://prntscr.com/aht2xc ) а в product.php - срабатывает без дива и ссылки( http://prnt.sc/aht503  )    Вопрос - почему див и ссылка не цепляется.

 

попробовал так, страница рубится

 

<?php if ($ean) { ?

       наш новый див
<?php } ?>

Изменено пользователем magneto2010

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

<?php if ($ean) { ?>

       наш новый див

<?php } ?>

закрывать надо

 

...

 

вобще, че-т такого мудрите.. зачем false присваивать, зачем хтмл в переменную пихать.. Объясните простому народу, че хотите, авось подскажут

Изменено пользователем pantagruel964

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

закрывать надо

 

...

 

вобще, че-т такого мудрите.. зачем false присваивать, зачем хтмл в переменную пихать.. Объясните простому народу, че хотите, авось подскажут

 

читайте первый пост.

 

Почему в категории таким способом 

if ($product_info['ean']) {

    $data['ean'] = '<div class="look"><a href="best-price">' . $product_info['ean'] . '</a></div>';

} else {

    $data['ean'] = false;

}

див читается и работает, а в карточке товара див не срабатывает, я хотел бы узнать ответ на этот вопрос. 

Изменено пользователем magneto2010

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Раз. В товаре

http://joxi.ru/Vm69076ix1GwNr

Два. В product.php

http://joxi.ru/n2YZD5efj43LBA

Три. В product.tpl

http://joxi.ru/823zZp9S6MPNRm

Четыре. Смотрим

http://joxi.ru/12MZMjWf4nZp0A

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасиб, скрин второй помог, вписал там div с ссылкой и заработало, вот только этот див теперь во всех товарах показывается независимо от того, заполнен ли ean или нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В product.tpl

<?php if(!empty($ean)){echo $ean;} ?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не, проверка не прокатит, у вас же там хтмл в переменной.

 

В контроллере

$data['ean'] = $product_info['ean']; 

А свой хтмл в  шаблоне вставляйте

<?php if($ean)
{echo '<b>' . $ean . '</b>';}
?>
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

if ($product_info['ean']) {

    $data['ean'] = '<div class="look"><a href="best-price">' . $product_info['ean'] . '</a></div>';

} else {

    $data['ean'] = false;

}

 

 

Говнокодить так нельзя! Все условия вывода HTML тегов прописывай в шаблоне!

<a href="best-price">' . $product_info['ean'] . '</a>

А это, что за? почему в теге а, ссылкой является обычный текст?

Изменено пользователем Designer

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Не, проверка не прокатит, у вас же там хтмл в переменной.

 

В контроллере

$data['ean'] = $product_info['ean']; 

А свой хтмл в  шаблоне вставляйте

<?php if($ean)
{echo '<b>' . $ean . '</b>';}
?>

 

Либо

<?php echo $ean ? '<div class="look">Лучшая цена</div>' : false; ?>
Изменено пользователем Designer

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
<?php if($ean)

{echo '<b>' . $ean . '</b>';}

?>

 

Только уже и в html оформляйте как html.

<?php if($ean){ ?>

<div class="look">Лучшая цена</div>

<?php } ?>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×