Форум русской поддержки Joomla!® CMS
11.12.2016, 12:06:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 245 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« : 09.02.2016, 10:45:21 »

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


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

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #1 : 09.02.2016, 12:39:50 »

если нужно описание разбить на два (например, до списка товаров и после), то используй разделитель (например тэг <hr>). перед выводом делай разбор строки
Код:
$desc = explode('<hr>', $this->category->category_description);

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

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #2 : 09.02.2016, 12: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
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #3 : 09.02.2016, 12: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
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #4 : 09.02.2016, 13:10:09 »

То есть в старых где сейчас есть описание надо будет в конец добавлять <hr>
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #5 : 09.02.2016, 14: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
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #6 : 09.02.2016, 14:28:24 »

пустая страница из-за ошибки синтаксиса, что-то не то пишешь
покажи код шаблона полностью
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #7 : 09.02.2016, 14:34:45 »

Показать текстовый блок
Записан
fsv
Moderator
*****

Репутация: +330/-2
Offline Offline

Пол: Мужской
Сообщений: 2247


« Ответ #8 : 09.02.2016, 14:39:59 »

В старых не надо в описание добавлять. Если в тексте нет вашего разделителя, весь текст будет в первом элементе получаемого массива.
В качестве разделителя не используйте тег, используйте символ, который вы в описании точно не будете использовать. Например, | .
P.S. код под спойлером не смотрел, способ рабочий, учите азы.
Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #9 : 09.02.2016, 14: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
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #10 : 09.02.2016, 14:49:35 »

А вторую часть так и оставляю
Код:
<div class="category_description">
<?php
if (!empty($desc[1])){
echo $desc[1]
}
?>
</div>
Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #11 : 09.02.2016, 14:51:08 »

В старых не надо в описание добавлять. Если в тексте нет вашего разделителя, весь текст будет в первом элементе получаемого массива.
думаю, в этом будет и проблема. верху должен быть баннер на некоторых страницах, а основной текст - внизу - на всех страницах
Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #12 : 09.02.2016, 14:52:15 »

А вторую часть так и оставляю

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

Репутация: +330/-2
Offline Offline

Пол: Мужской
Сообщений: 2247


« Ответ #13 : 09.02.2016, 14:55:48 »

Код:
if (!empty($desc[1])){
Если не будет 2-го элемента в массиве, то получите как минимум notice.
Код:
if ( isset($desc[1]) && !empty($desc[1]) ){

Цитировать
думаю, в этом будет и проблема. верху должен быть баннер на некоторых страницах, а основной текст - внизу - на всех страницах
Естественно, ЕСЛИ не надо, ТО не будет. А что там на конкретном сайте надо/не надо, не смотрел.
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #14 : 09.02.2016, 15: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
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #15 : 09.02.2016, 15:19:27 »

да, только разделитель в описании ставить уже 2 раза
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #16 : 09.02.2016, 15:21:32 »

Все спасибо понял
Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #17 : 09.02.2016, 15: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 определяет только то, что переменная не пустая, но она может быть вовсе не задана)
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet