Jump to content
Sign in to follow this  
denskieva

Изменение страницы со списком товаров [Решено]

Recommended Posts

Добрый день,нужна помощь.Нужно чтобы все товары выводились не квадратиками а построчно,например как в корзине,чтобы можно было на нее нажать и перекинуло на страничку с товаром,где его уже можно заказать,так понимаю что это чисто верстка и помочь мне будет не сложно...И еще чтобы в этой строке выводилось небольшое описание,обрезаное до опр. количества символов.

Share this post


Link to post
Share on other sites

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

И еще в шаблоне есть 2 такие вот строчки пхп кода,так понимаю что они отвечают за то сколько товаров выводить на главной страничке,когда меняю цыфры,выводит не так как задумано,как увеличить количество выводимых товаров?

<?php for ($i = 0; $i < sizeof($products); $i = $i + 4) { ?>	<tr>		<?php for ($j = $i; $j < ($i + 4); $j++) { ?>

Share this post


Link to post
Share on other sites

Появилась еще одна проблемма,на главной страничке все нормально выводиться списком,а в категорияхподкатегориях выбивает Notice: Undefined offsetкак исправить?

Share this post


Link to post
Share on other sites

попробывал сам дописать в контролер вывод описания,дописал почти успешно,но мне по одной букве выводит((((кто нить поможет или нет?уже 2 дня фигней страдаю...

Share this post


Link to post
Share on other sites

чеж ты там 2 дня ковыряешь то?))

лови свое решение:

табличка где выводятся товары (файл ..catalogviewthemedefaulttemplateproductcategory.tpl)

<table class="list">      <?php for ($j = 0; $j < sizeof($products); $j++) { ?>	  <tr>        <td width="30%"><?php if (isset($products[$j])) { ?>          <a href="<?php echo $products[$j]['href']; ?>"><img src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" alt="<?php echo $products[$j]['name']; ?>" /></a>          <a href="<?php echo $products[$j]['href']; ?>"><?php echo $products[$j]['name']; ?></a>          [color= #999; font-size: 11px;]<?php echo $products[$j]['model']; ?>[/color]          <?php if ($display_price) { ?>          <?php if (!$products[$j]['special']) { ?>          [color= #900; font-weight: bold;]<?php echo $products[$j]['price']; ?>[/color]          <?php } else { ?>          [color= #900; font-weight: bold; text-decoration: line-through;]<?php echo $products[$j]['price']; ?>[/color] [color= #F00;]<?php echo $products[$j]['special']; ?>[/color]          <?php } ?>          <?php } ?>          <?php if ($products[$j]['rating']) { ?>          <img src="catalog/view/theme/default/image/stars_<?php echo $products[$j]['rating'] . '.png'; ?>" alt="<?php echo $products[$j]['stars']; ?>" />          <?php } ?>          <?php } ?></td>		 <td><?php echo $products[$j]['description']; ?></td>              </tr>	  <?php } ?>    </table>

в ..catalogcontrollerproductcategory.php найди где описывается массив

$this->data['products'][] = array(
и добавь туда строчку

'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),

Share this post


Link to post
Share on other sites

вот не пожалел 2 минут своего драгоценного времени, благо под рукой оказалась девственно чистая, не тронутая ни единым модулем сборка 1.4.7 v0.4 опенкарта, и все прекрасно заработало =) так что ищи проблемы у себя

Share this post


Link to post
Share on other sites

Скажите, а как сделать такой построчный вывод каталога на отдельной странице? )

Share this post


Link to post
Share on other sites

Нашел решение: скачал модуль All products с opencart.com и просто убрал вывод иконок, br + изменил количество единиц на странице по умолчанию.

Share this post


Link to post
Share on other sites

Скажите, какой идентификатор отвечает за название производителя?$j - переменная цикла, вывод цены товара echo $products[$j]['price'], названия $products[$j]['name'],а как выводить производителя? пробовал $manufacturer_id[$j]['name'] - не то.

Share this post


Link to post
Share on other sites

по умолчанию нету такого идентификатора.

добавить можно следующим образом:

в файле ..catalogcontrollerproductcategory.php (если я правильно понял в категориях его надо вам?)

найти массив

$this->data['products'][] = array(	'name'    => $result['name'],	'model'   => $result['model'],	'rating'  => $rating,	'stars'   => sprintf($this->language->get('text_stars'), $rating),	'thumb'   => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),	'price'   => $price,	'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),	'special' => $special,	'href'    => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']));
и добавить туда строчку

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

после чего в шаблоне станет доступна переменная $products[$j]['manufacturer']

Share this post


Link to post
Share on other sites

Получилось конечно сделать,но вот описание порезать не выходит...пытаюсь порезать функцией mb_substr...выходит что-то такого плана...<?php $products[$j]['price']; echo mb_substr($strname, 0, 30)."..."; ?>не показивает вообще ничего...

Share this post


Link to post
Share on other sites

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

'description' => mb_substr(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), 0, 200),

Share this post


Link to post
Share on other sites

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

'description' => mb_substr(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), 0, 200),
У вас получилось порезать?у меня почему то нет!!! еще хуже стало, текст перестал выводится и все фото товаров съехали вправо.

Share this post


Link to post
Share on other sites

ну да, вообще без проблем, да в этой строчке ничего криминального то и нету.

Share this post


Link to post
Share on other sites

Спасибо разобрался, работает - тестирую, доделываю.а так просто супер!!!только как убрать ? ?после обрезания строки получается.

Share this post


Link to post
Share on other sites

Обрезание строки не спасет ..и тем не менее если еще актуально то в catalog/controller/product/category.phpнеобходимо установить внутреннюю кодировку символов добавить строчку сразу после <?phpmb_internal_encoding("UTF-8");надеюсь кому нибудь пригодиться =)

Share this post


Link to post
Share on other sites

а я у себя сдела вывод в обоих вариантах :)

Share this post


Link to post
Share on other sites

Обрезание строки не спасет

Не понял, от чего не спасет?

СПАСИБО!!! Пример работает идеально, во врсяком случае пока.....

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

может отдельным ото было бы и лучше, но пока пуская так....

Если сделаю, выложу инструкцию....

Думаю по сути там то же самое, что и добавление палей к товару, как описано на этом форуме, только поле побольше....

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.