1 Отредактировано Алексей (23.12.2016 22:30:25)

Тема: Дополнительное поле на странице доставки

Добрый день.

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

{$conf_userfields->getForm('gps')}

но выводится насколько я понимаю не совсем правильно:

<input type="text" name="userfields_arr[gps]" value="" class="" placeholder="Координаты для доставки">

Спасибо.

Повысить оценку Понизить оценку

Re: Дополнительное поле на странице доставки

А что не правильно то?

Re: Дополнительное поле на странице доставки

Смущает поле name.
Имя дополнительного поля "gps", насколько я понимаю должно быть name="gps", а не так как есть с указанием массива, разве нет?

Повысить оценку Понизить оценку

Re: Дополнительное поле на странице доставки

нет. Это отдельный массив дополнительных полей. Он в итоге будет сохранён в заказ в одно поле. Но всё можно будет успешно получить.

5 Отредактировано Алексей (26.12.2016 17:31:07)

Re: Дополнительное поле на странице доставки

хмм.. а как тогда задать стиль именно этому полю?
задать ему id или class если и можно, то неясно как.
или в css всё же есть escape character чтоб его проставить перед квадратными скобками?

пока что проставляем его по "input[placeholder="Координаты для доставки"]", но это кажется не слишком надёжным

Повысить оценку Понизить оценку

6

Re: Дополнительное поле на странице доставки

Пожалуй самый простой вариант, вместо:

{$conf_userfields->getForm('gps')}

Просто вставить нужный вам HTML, так:

{$values=$conf_userfields->getValues()}
<input type="text" name="{$conf_userfields->getFieldName('gps')}" value="{$values.gps}" class="любой ваш класс" placeholder="Координаты для доставки">

По классу можете задать стиль

Повысить оценку Понизить оценку

Re: Дополнительное поле на странице доставки

Работает, но в этом случае placeholder нужно проставлять руками в файле. Может быть его тоже можно вывести автоматически с именем поля в админке как он выводится сейчас?

Повысить оценку Понизить оценку

8

Re: Дополнительное поле на странице доставки

Добавьте в файл /core/rs/config/userfieldsmanager.inc.php
метод (мы его включим в след. обновление):

    /**
     * Возвращает структуру дополнительных полей
     * @return array
     */
    function getStructure()
    {
        return $this->structure;
    }

Вы можете получить placeholder так:

{$structure=$conf_userfields->getStructure()}
{$placeholder=$structure.gps.title}

Повысить оценку Понизить оценку