Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Помощь с PHP в category.tpl


Recommended Posts

в catalogviewthemesolid_greytemplateproductcategory.tpl

переделал отображение товара списком, примертут

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

Пробовал реализовать через php if, но ничего не получилось, вообще перестало показывать сайт.

Надіслати
Поділитися на інших сайтах


а ты вставь в ..catalogcontrollerproductcategory.php

$this->data['category_id'] = $category_id;

и тогда в category.tpl у тебя будет доступна переменная $category_id в которой будет хранится id текущей категории, а вот с ней уже можно делать

<? if ($category_id == 999) { ?><div></div><? } else { ?><drugoi_div></drugoi_div><? } ?>
Змінено користувачем afwollis
edit -> save
  • +1 1
Надіслати
Поділитися на інших сайтах


Огромное спосибо!!!

Но вышло так, что в каждой категории дублирует, сначала кидает без картинки товар, потом тотже товар но с картинкой

Изображение

Код который получился в category.tpl

<? if ($category_id == 37) { ?><table class="list">        <?php $class = 'odd'; ?>        <?php foreach ($products as $product) { ?>        <?php $class = ($class == 'even' ? 'odd' : 'even'); ?>        <tr class="<?php echo $class; ?>">          <td align="left" valign="top"><a href="<?php echo str_replace('&', '&', $product['href']); ?>"><?php echo $product['name']; ?></a>           </td>          <td align="right" valign="top"><?php echo $product['model']; ?></td>              <td align="right" valign="top"><?php echo $product['price']; ?></td>          <?php } ?>      </table><? } else { ?><table class="list">        <?php $class = 'odd'; ?>        <?php foreach ($products as $product) { ?>        <?php $class = ($class == 'even' ? 'odd' : 'even'); ?>        <tr class="<?php echo $class; ?>">          <td align="center"><a href="<?php echo str_replace('&', '&', $product['href']); ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" /></a></td>          <td align="left" valign="top"><a href="<?php echo str_replace('&', '&', $product['href']); ?>"><?php echo $product['name']; ?></a>           </td>          <td align="left" valign="top"><?php echo $product['model']; ?></td>              <td align="right" valign="top"><?php echo $product['price']; ?></td>          </tr>        <?php } ?>      </table><? } ?>
Змінено користувачем afwollis
edit -> save
Надіслати
Поділитися на інших сайтах


Не выходит, пробовал по разному (внутри класа "лист", и как в первом варианте, по всякому) или выводит крякозяблы или дублирует или вообще ничего не выводит

Надіслати
Поділитися на інших сайтах


спосибо, помогло, чуть подредактировал под себя и как раз самый смак)

еще небольшой вопрос как в этом коде записать чтоб первая строка таблицы была типа заголовком.

<table class="list">        <?php $class = 'odd'; ?>        <?php foreach ($products as $product) { ?>        <?php $class = ($class == 'even' ? 'odd' : 'even'); ?>        <tr class="<?php echo $class; ?>">                    <td align="left" valign="top"><a href="<?php echo str_replace('&', '&', $product['href']); ?>"><?php echo $product['name']; ?></a>           </td>          <td align="center" valign="top"><?php echo $product['model']; ?></td>              <td align="center" valign="top"><?php echo $product['price']; ?></td>          </tr>        <?php } ?>      </table>
Всмысле вот так надо:

Изображение

Змінено користувачем afwollis
edit -> save
Надіслати
Поділитися на інших сайтах


самый простой способ, незадействуя языковые файлы и файлы контроллера это просто вставить

после <table class="list">

<tr> <td>Наименование</td> <td>Модель</td> <td>Цена</td></tr>

и сохранить в utf-8 кодировке

Змінено користувачем afwollis
edit -> save
Надіслати
Поділитися на інших сайтах


  • 7 months later...

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

подскажите что добавить в category.tpl, чтобы в категориях при нажатии на товар всплывало модальное окно colorbox'a.

в шаблоне вывел

<a href="<?php echo $popup?>" title="<?php echo $products[$j]['name']; ?>" rel="slideshow" rel="gallery"> 
	<img src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" alt="<?php echo $products[$j]['name']; ?>" id="image" style="margin-bottom: 3px;" /></a>
всплывает окно colorbox'a, но пустое.

это происходит потому что не объявлена переменная $popup. пробовал подключить, однако не хватило знаний и повалили ошибки - помогите, люди добрые!

Надіслати
Поділитися на інших сайтах


решено (спасибо, Fix305).

в ..\catalog\controller\product\category.php найти

$this->data['products'][] = array(

добавить туда

'popup' => $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')),

в category.tpl

заменить ссылку на категорию на

<a href="<?php echo $products[$j]['popup']; ?>" title="<?php echo $products[$j]['name']; ?>" rel="slideshow" rel="gallery"> 
		  <img src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" alt="<?php echo $products[$j]['name']; ?>" id="image" style="margin-bottom: 3px;" />
		  </a>
Надіслати
Поділитися на інших сайтах


решено (спасибо, Fix305).

в ..\catalog\controller\product\category.php найти

$this->data['products'][] = array(

добавить туда

'popup' => $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')),

в category.tpl

заменить ссылку на категорию на

<a href="<?php echo $products[$j]['popup']; ?>" title="<?php echo $products[$j]['name']; ?>" rel="slideshow" rel="gallery"> 
		  <img src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" alt="<?php echo $products[$j]['name']; ?>" id="image" style="margin-bottom: 3px;" />
		  </a>

У вас 2 раза прописано rel="slideshow" rel="gallery" и нет класса class="thickbox"

У меня заработал этот вариант

category.tpl

<a href="<?php echo $products[$j]['popup']; ?>" title="<?php echo $products[$j]['name']; ?>" class="thickbox" rel="gallery"><img src="<?php echo $products[$j]['thumb']; ?>" title=" <?php echo $products[$j]['name']; ?> " alt="<?php echo $products[$j]['name']; ?>" id="image" style="margin-bottom: 3px;"/></a>
Надіслати
Поділитися на інших сайтах


У вас 2 раза прописано rel="slideshow" rel="gallery" и нет класса class="thickbox"

У меня заработал этот вариант

category.tpl

<a href="<?php echo $products[$j]['popup']; ?>" title="<?php echo $products[$j]['name']; ?>" class="thickbox" rel="gallery"><img src="<?php echo $products[$j]['thumb']; ?>" title=" <?php echo $products[$j]['name']; ?> " alt="<?php echo $products[$j]['name']; ?>" id="image" style="margin-bottom: 3px;"/></a>

Забыл добавить, что я использую colorbox вместо стандартного thickbox, поэтому ссылки такого вида. В остальном то же самое)

Надіслати
Поділитися на інших сайтах


eninsergej, /catalog/view/theme/default/template/product

Найти

<?php if ($description) { ?>
	<div><?php echo $description; ?></div>
	<?php } ?>

Вырезать и вставить блок перед

</div>
  <div class="bottom">
    <div class="left"></div>

Не тестил, т.к шаблон другой и описания нет. Но должно работать

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.