доп поле в категории товара

  • 17 Ответов
  • 406 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн Stasweb

Кто то делал дополнительное поле в описании категории товара


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

*

Оффлайн Liss

Re: доп поле в категории товара
« Ответ #1 : 09.02.2016, 13:39:50 »
если нужно описание разбить на два (например, до списка товаров и после), то используй разделитель (например тэг <hr>). перед выводом делай разбор строки
$desc = explode('<hr>', $this->category->category_description);
получишь два блока
$desc[0]
$desc[1]
вывести которые можно в разных местах

*

Оффлайн Stasweb

Re: доп поле в категории товара
« Ответ #2 : 09.02.2016, 13:49:40 »
То есть в /html/com_virtuemart/category/default.php пишу так
<div class="category_description">
<?php
//echo $this->category->category_description;
$desc explode('<hr>'$this->category->category_description);
echo 
$desc[0];
?>

</div>
и ниже товаров
<div class="category_description">
<?php
echo $desc[1];
?>

</div>
так

*

Оффлайн Liss

Re: доп поле в категории товара
« Ответ #3 : 09.02.2016, 13:59:29 »
именно
только <hr> нужно будет проставить в описании всех категорий, даже там, где дробить описание не нужно

описание 1 <hr> описание 2
описание 1 <hr>
<hr> описание 2

ну и само собой перед выводом делать проверку
if (!empty($desc[0])){
echo $desc[0]
}

if (!empty($desc[1])){
echo $desc[1]
}

*

Оффлайн Stasweb

Re: доп поле в категории товара
« Ответ #4 : 09.02.2016, 14:10:09 »
То есть в старых где сейчас есть описание надо будет в конец добавлять <hr>

*

Оффлайн Stasweb

Re: доп поле в категории товара
« Ответ #5 : 09.02.2016, 15:20:26 »
Таким способом не помогло
<div class="category_description">
<?php
echo 
$this->category->category_description;
// $desc = explode('<hr>', $this->category->category_description);
//    if (!empty($desc[0])){
//     echo $desc[0]
//          }
?>

</div>
_____________________________________________________
<div class="category_description">
<?php
//if (!empty($desc[1])){
//echo $desc[1]
//}
?>

</div>
Просто пустую страницу показал.
Текст я хочу поделить на этой странице можно было бы его просто под товары но вот как с другими категориями тут вот баннер есть и получается что он также сползет в низ.

*

Оффлайн Liss

Re: доп поле в категории товара
« Ответ #6 : 09.02.2016, 15:28:24 »
пустая страница из-за ошибки синтаксиса, что-то не то пишешь
покажи код шаблона полностью

*

Оффлайн Stasweb

Re: доп поле в категории товара
« Ответ #7 : 09.02.2016, 15:34:45 »
Спойлер
[свернуть]

*

Оффлайн fsv

Re: доп поле в категории товара
« Ответ #8 : 09.02.2016, 15:39:59 »
В старых не надо в описание добавлять. Если в тексте нет вашего разделителя, весь текст будет в первом элементе получаемого массива.
В качестве разделителя не используйте тег, используйте символ, который вы в описании точно не будете использовать. Например, | .
P.S. код под спойлером не смотрел, способ рабочий, учите азы.
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения

*

Оффлайн Liss

Re: доп поле в категории товара
« Ответ #9 : 09.02.2016, 15:44:39 »
<div class="category_description">
  <?php
    
if (!empty($this->category->category_description)) {
      
$desc explode('<hr>'$this->category->category_description);
      if (!empty(
$desc[0])){
        echo 
$desc[0];
      }
    }
  
?>

</div>

*

Оффлайн Stasweb

Re: доп поле в категории товара
« Ответ #10 : 09.02.2016, 15:49:35 »
А вторую часть так и оставляю
<div class="category_description">
<?php
if (!empty($desc[1])){
echo 
$desc[1]
}
?>

</div>

*

Оффлайн Liss

Re: доп поле в категории товара
« Ответ #11 : 09.02.2016, 15:51:08 »
В старых не надо в описание добавлять. Если в тексте нет вашего разделителя, весь текст будет в первом элементе получаемого массива.
думаю, в этом будет и проблема. верху должен быть баннер на некоторых страницах, а основной текст - внизу - на всех страницах

*

Оффлайн Liss

Re: доп поле в категории товара
« Ответ #12 : 09.02.2016, 15:52:15 »
А вторую часть так и оставляю

нет, так же как верхнюю только с $desc[1]

*

Оффлайн fsv

Re: доп поле в категории товара
« Ответ #13 : 09.02.2016, 15:55:48 »
if (!empty($desc[1])){Если не будет 2-го элемента в массиве, то получите как минимум notice.
if ( isset($desc[1]) && !empty($desc[1]) ){
Цитировать
думаю, в этом будет и проблема. верху должен быть баннер на некоторых страницах, а основной текст - внизу - на всех страницах
Естественно, ЕСЛИ не надо, ТО не будет. А что там на конкретном сайте надо/не надо, не смотрел.
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения

*

Оффлайн Stasweb

Re: доп поле в категории товара
« Ответ #14 : 09.02.2016, 16:17:38 »
Все отлично все заработало.
Вот такой еще вопрос если понадобится делить на 3 части таким же путем идти
<div class="category_description">
<?php
//echo $this->category->category_description;
  
if (!empty($this->category->category_description)) {
      
$desc explode('|'$this->category->category_description);
      if (!empty(
$desc[2])){
        echo 
$desc[2];
      }
    }
?>

</div>

*

Оффлайн Liss

Re: доп поле в категории товара
« Ответ #15 : 09.02.2016, 16:19:27 »
да, только разделитель в описании ставить уже 2 раза

*

Оффлайн Stasweb

Re: доп поле в категории товара
« Ответ #16 : 09.02.2016, 16:21:32 »
Все спасибо понял

*

Оффлайн Liss

Re: доп поле в категории товара
« Ответ #17 : 09.02.2016, 16:25:15 »
и к совету FSV прислушайся, вторую (и далее) часть описания сделай так
<div class="category_description">
  <?php
    
if (!empty($this->category->category_description)) {
      
$desc explode('|'$this->category->category_description);
      if (isset(
$desc[1]) && !empty($desc[1])){
        echo 
$desc[1];
      }
    }
  
?>

</div>

т.е. используй команду isset в проверке, она определяет, задана ли переменная (!empty определяет только то, что переменная не пустая, но она может быть вовсе не задана)