Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Вывод полей в форме обратной связи в зависимости от значения поля

Автор webtrendРаздел Шаблоны XSLT

Ответов: 4
Просмотров: 2059
Последний ответ 06 Декабря 2017, 21:05:22
от webtrend
Вывод загружаемой фотографии из группы полей в шаблоне

Автор AxiomateriaРаздел Шаблоны XSLT

Ответов: 23
Просмотров: 9262
Последний ответ 14 Мая 2014, 12:50:52
от admin
Автоматическое заполнение некоторых полей товара при сохранении

Автор BaceHРаздел Custom макросы

Ответов: 3
Просмотров: 2680
Последний ответ 15 Сентября 2013, 02:50:21
от BaceH
Типы полей при разработке собственной выдачи в модуле...

Автор atachРаздел Разработка модулей

Ответов: 1
Просмотров: 3417
Последний ответ 03 Декабря 2013, 10:46:02
от admin
Вывод в шаблоне дополнительных полей при оформлении заказа

Автор max_ripРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 3271
Последний ответ 14 Мая 2014, 12:47:47
от admin

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

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Здравствуйте!
Надо отредактировать личный кабинет по примерному адресу www.site.ru/emarket/personal/ зарегистрированного покупателя так, что бы добавить к полям с его персональной информацией (логин/пароль/e-mail и т.п.) ещё и его данные адреса доставки в таком же простом виде, как они и выглядят при оформлении заказа на странице заполнения данный полей с адресом доставки (город/улица\дом и т.п.)
И вот что я делаю - исходя из руководства: http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/internetmagazin/emarket_purchase/#xslt-templating
в файле шаблонизатора demodizzy ...\xslt\modules\users\registration.xsl в код  добавляю строку
<xsl:apply-templates select="document(concat('udata://data/getCreateForm/', $user-id))" /> :
 <xsl:template match="udata[@method = 'settings']">
        <table>
            <tr>
                <td valign="top" width="20%">
                    <xsl:apply-templates select="document(concat('udata://data/getEditForm/', $user-id))" mode="portrait" />
                </td>
                <td valign="top">                 
                    <form enctype="multipart/form-data" method="post" action="{$lang-prefix}/users/settings_do/" id="con_tab_profile" class="form-inline">
                        <div class="form-group-cabinet col-md-3 col-sm-6 col-xs-12">
                            <label>
                                <span>
                                    <xsl:text>&login;:</xsl:text>
                                </span>
                                <input type="text" name="login" disabled="disabled" value="{$user-info//property[@name = 'login']/value}" class="form-control" />
                            </label>
                        </div>
                        <div class="form-group-cabinet col-md-3 col-sm-6 col-xs-12">
                            <label>
                                <span>
                                    <xsl:text>&password;:</xsl:text>
                                </span>
                                <input type="password" name="password" class="form-control" />
                            </label>
                        </div>
                        <div class="form-group-cabinet col-md-3 col-sm-6 col-xs-12">
                            <label>
                                <span>
                                    <xsl:text>&password-confirm;:</xsl:text>
                                </span>
                                <input type="password" name="password_confirm" class="form-control" />
                            </label>
                        </div>
                        <div class="form-group-cabinet col-md-3 col-sm-6 col-xs-12">
                            <label>
                                <span>
                                    <xsl:text>&e-mail;:</xsl:text>
                                </span>
                                <input type="text" name="email" class="form-control" value="{$user-info//property[@name = 'e-mail']/value}" />
                            </label>
                        </div>
                        <div class="float1"/>
                        <xsl:apply-templates select="document(concat('udata://data/getEditForm/', $user-id))" />
                       
                        <xsl:apply-templates select="document(concat('udata://data/getCreateForm/', $user-id))" />

                        <div class="form-group col-md-12 col-sm-12 col-xs-12">
                            <input type="submit" class="btn btn-primary" value="&save-changes;" />
                        </div>
                    </form>             
                </td>
            </tr>
        </table>
    </xsl:template>

В результате добавилось одно только поле и то не то, что надо:

<label title="">
    <span>id статуса:</span>
    <input type="text" name="data[new][publish_status_id]" value="" class="form-control">
</label>

Подскажите, пожалуйста, что я пропустил ?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
я правильно понимаю, что получилось вывести информация для редактирования личной информации пользователя, но остался вопрос с выводом списка ранее введенных адресов и возможность добавить новый адрес?

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
я правильно понимаю, что получилось вывести информация для редактирования личной информации пользователя, но остался вопрос с выводом списка ранее введенных адресов и возможность добавить новый адрес?
Да, Вы правильно понимаете и речь идёт о странице пользователя в его личном кабинете.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
по сути макрос на который вы ссылаетесь в форме /users/settings_do/ не работает с адресами, то есть он может связать пользователя с какими-то адресами, но не менять или добавлять их

Если вам надо организовать рбаоту с адресами, то либо делаем это в отдельном блоке form с отдельным action, либо делаем это через ajax опять же на отдельный action

Второй момент в том, что именно вы хотите дать вашему пользователю делать с адресами?

Если удалять, то стоит помнить, что данный адрес может использоваться в каком-то уже совершенном заказе и при удалении он пропадет от туда. Так что, адрес надо не удаль, а отвязывать от пользователя.

Если вы хотите дать возможность редактировать уже существующие адреса, то опять же помните, что они поменяются во всех заказах, в которых указан данный адрес.

Если хотите добавлять адрес, то тут нет подводных камней, просто добавляем адрес и привязываем его у текущему пользователю.

Насколько я знаю, чистых макросов именно для таких действий нет, так что их надо писать (куски нужного кода можно взять из макросов которые работают с адресами при оформлении заказа)

P.S. Для лучшего понимаю опишу логику сохранения адресов. Адрес - это, по сути, элемент справочника "Адрес доставки", в котором есть поля "индекс", "город" и т.п. Когда пользователь добавляет новый адрес, система добавляет новый элемент справочника "Адрес доставки", а затем изменяет поле "Адреса доставки" у конкретного пользователя (это поле типа выпадающий список множественного выбора, который использует справочник "Адрес доставки")