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

Stasweb

  • Живу я здесь
  • 1087
  • 18
Кто то делал дополнительное поле в описании категории товара


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

Liss

  • Давно я тут
  • 238
  • 9
Re: доп поле в категории товара
« Ответ #1 : 09.02.2016, 11:39:50 »
если нужно описание разбить на два (например, до списка товаров и после), то используй разделитель (например тэг <hr>). перед выводом делай разбор строки
Код
$desc = explode('<hr>', $this->category->category_description);

получишь два блока
$desc[0]
$desc[1]
вывести которые можно в разных местах
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
Re: доп поле в категории товара
« Ответ #2 : 09.02.2016, 11: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

  • Давно я тут
  • 238
  • 9
Re: доп поле в категории товара
« Ответ #3 : 09.02.2016, 11: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

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

Stasweb

  • Живу я здесь
  • 1087
  • 18
Re: доп поле в категории товара
« Ответ #5 : 09.02.2016, 13: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

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

Stasweb

  • Живу я здесь
  • 1087
  • 18
Re: доп поле в категории товара
« Ответ #7 : 09.02.2016, 13:34:45 »
Спойлер
[свернуть]
*

fsv

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

Liss

  • Давно я тут
  • 238
  • 9
Re: доп поле в категории товара
« Ответ #9 : 09.02.2016, 13: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

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

Liss

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

Liss

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

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

fsv

  • Moderator
  • 2525
  • 367
Re: доп поле в категории товара
« Ответ #13 : 09.02.2016, 13:55:48 »
Код
if (!empty($desc[1])){
Если не будет 2-го элемента в массиве, то получите как минимум notice.
Код
if ( isset($desc[1]) && !empty($desc[1]) ){

Цитировать
думаю, в этом будет и проблема. верху должен быть баннер на некоторых страницах, а основной текст - внизу - на всех страницах
Естественно, ЕСЛИ не надо, ТО не будет. А что там на конкретном сайте надо/не надо, не смотрел.
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
Re: доп поле в категории товара
« Ответ #14 : 09.02.2016, 14: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

  • Давно я тут
  • 238
  • 9
Re: доп поле в категории товара
« Ответ #15 : 09.02.2016, 14:19:27 »
да, только разделитель в описании ставить уже 2 раза
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
Re: доп поле в категории товара
« Ответ #16 : 09.02.2016, 14:21:32 »
Все спасибо понял
*

Liss

  • Давно я тут
  • 238
  • 9
Re: доп поле в категории товара
« Ответ #17 : 09.02.2016, 14: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 определяет только то, что переменная не пустая, но она может быть вовсе не задана)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться