Типы товара vertuemart 1.0 - как убрать лишние параметры?

Тема в разделе "Модернизация расширений", создана пользователем Nikirinka, 07.08.2012.

  1. Offline

    Nikirinka Недавно здесь

    Регистрация:
    17.01.2012
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Женский
    Всем здравствуйте!
    У меня такой вопрос: каталог вертюмиарта 1.0 (Joomla 1.5), товарам присваивается тип товара (например, характеристики лампочек) и в этом типе создается несколько параметров (мощность, цоколь и т.д.), у параметров есть значения (20W, 100W). Если товару, мы присваиваем этот тип, то в карточке товара все его параметры отображаются вне зависимости, имеют ли они какие-нибудь значения или нет.
    Вопрос: можно ли и как сделать так, чтобы в карточке товара отображались лишь те параметры, которым поставлено значение, а если там оставить поле с параметром пустым, то он бы вообще не в карточке не выводился.
    Там должно быть какое-то условие, но я в PHP чайник, поэтому, прошу, пожалуйста подскажите, что нужно дописать в каком файле, чтобы все заработало.

    Опережу возможный ответ: создание другого типа товаров с другим набором параметров - это решение не подходит.

    Заранее спасибо.
     
  2.  
  3. Offline

    Nikirinka Недавно здесь

    Регистрация:
    17.01.2012
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Женский
    Может кустарно, но нашла решение.

    Но есть еще проблема, как изменить вид формы? Заменить поля множественного выбора на чекбоксы? В HTML это понятно как сделать, а в PHP я совсем не знаток...

    Поясню конкретнее. В файле administrator/components/com_vertuemart/html/shop.parameter_search_form.php есть кусок кода стр. 293



    Код (PHP):
    1. if (!empty($parameter_values)) { // List of values
    2.                     $fields=explode(";",$parameter_values);
    3.                     echo "<td width=\"55%\" height=\"2\" valign=\"top\">\n";
    4.                     echo "<select class=\"inputbox\" name=\"$item_name";
    5.                     if ($db->f("parameter_multiselect")=="Y") {
    6.                         $size = min(count($fields),6);
    7.                         echo "[]\" multiple size=\"$size\">\n";
    8.                         $selected_value = array();
    9.                         $get_item_value = vmGet($_REQUEST, $item_name, array());
    10.                         foreach($get_item_value as $value) {
    11.                             $selected_value[$value] = 1;
    12.                         }
    13.                         foreach($fields as $field) {
    14.                             echo "<option value=\"$field\"".(($selected_value[$field]==1) ? " selected>" : ">"). $field."</option>\n";
    15.                         }
    16.                     }
    17.                     else {
    18.                         echo "\">\n";
    19.                         echo "<option value=\"\">".$VM_LANG->_('PHPSHOP_SELECT')."</option>\n";
    20.                         foreach($fields as $field) {
    21.                             echo "<option value=\"$field\"".(($get_item_value==$field) ? " selected>" : ">"). $field."</option>\n";
    22.                         }
    23.                     }
    24.                     echo "</select>";

    как можно переделать этот код, чтобы вместо тега

    Код (html):
    1. <select>
    2.    <option>
    3.    <option>
    4.       ...
    5. </select>

    выполнялся тег

    Код (html):
    1. <input type="checkbox" name=" " value=" ">



    Я сделала во так:



    Код (PHP):
    1. echo "<input type=\"checkbox\" class=\"inputbox\" name=\"$item_name";
    2.                     if ($db->f("parameter_multiselect")=="Y") {
    3.                         $size = min(count($fields),6);
    4.                         echo "00" ;
    5.                         $selected_value = array();
    6.                         $get_item_value = vmGet($_REQUEST, $item_name, array());
    7.                         foreach($get_item_value as $value) {
    8.                             $selected_value[$value] = 1;
    9.                         }
    10.                         foreach($fields as $field) {
    11.                             echo "value=\"$field\"".(($selected_value[$field]==1) ? " selected>" : ">  "). $field."\n";
    12.                         }
    13.                     }
    14.                     else {
    15.                         echo "\">\n";
    16.                         echo "<value=\"\">".$VM_LANG->_('PHPSHOP_SELECT')."\n";
    17.                         foreach($fields as $field) {
    18.                             echo "<value=\"$field\"".(($get_item_value==$field) ? " selected>" : ">"). $field."\n";
    19.                         }
    20.                     }
    21.                     echo "00";


    Но проблема у меня в том, что select создается 1 раз, а <option> - столько раз, сколько значений в базе данных. А тег <input> должен тоже создаваться столько же раз сколько и <option>. А я не знаю как это прописать...
    Помогите, пожалуйста, очень надо!
     
  4. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 812
    Симпатии:
    771
    Пол:
    Мужской
    Попробуй применить перенос строк <br /> вместо \n
    Не знаю поможет ли тебе,но для себя интересно было
    Код (PHP):
    1. <?php
    2. $str=trim("Десант,Пехота,Летчик,"); //Создаём строку
    3. $arr= explode(",",$str); // Создаем массив из строки,где <,>- разделитель в строке,$str -строка
    4. echo "<label>Тестируем вывод input в цикле</label><br />";
    5. foreach($arr as $inp) {
    6. echo "<input type='checkbox' name='create' value='field' />$inp <br />";
    7. }
    8. ?>
     
    Последнее редактирование: 21.09.2012

Поделиться этой страницей

Загрузка...