Сниппет TSVoffice - TSVshop - модуль интернет-магазина для MODx

Опубликовано: 01.09.2018

Сниппет предназначен для создания продвинутого личного кабинета пользователя в  дополнение к модулю/сниппету TSVshop. С его помощью пользователь может зарегистрироваться, авторизоваться, редактировать профиль, просматривать свои заказы, сделанные с помощью сниппета TSVshop.

Зависимости

Сниппет TSVoffice использует в работе следующие сниппеты MODx:

WebLogin (авторизация пользователей) WebSignup (регистрация пользователей)

Поэтому данные сниппеты должны быть установлены в системе. Они используются без каких-либо доработок (как есть) , поэтому при необходимости вы можете их обновлять/редактировать, и это напрямую отразится на работе сниппета TSVoffice.

Установка и настройка – быстрый старт

При автоматической утановке модуля/сниппета TSVshop (через инсталлятор или репозиторий как пакет), сниппет TSVoffice устанавливается автоматически. Но все же рассмотрим ручную установку и настройку личного кабинета.

Создадим сниппет TSVoffice , содержимое которого взять в файле /assets/snippets/tsvoffice/install/TSVoffice.snippet.tpl Создадим несколько документов для личного кабинета:

Страница Мой кабинет (или любое другое название). В данном документе будет выводиться кабинет пользователя (в случае, когда пользователь авторизован) или формы для регистрации и авторизации (если пользователь не зарегистрирован или не авторизовался)

Вызов сниппета такой: [!TSVoffice? &orderpage=`` &groups=`названиегруппы`!]   где orderpage – это ID страницы Просмотр заказа (смотрите пункт 3). А &groups=`` - это название группы веб-пользователей, к которой должен быть причислен регистрируемый пользователь (необязательный параметр). Крайне желательно ВСЕ страницы личного кабинета, кроме страницы Мой кабинет, причислить к этой же группе веб-пользователей, чтобы их могла просматривать только данная группа веб-пользователей.

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

Вызов сниппета такой: [!TSVoffice? &act=`editprofile`!] Страница Просмотр заказа , на которой будет отображаться подробная информация о выбранном заказе.

Вызов сниппета такой: [!TSVoffice? &act=`showorder`!]

3. Создадим 2 чанка:

Чанк weblogin , содержимое которого взять в файле /assets/snippets/tsvoffice/install/weblogin.chunk.tpl Чанк formsignup , содержимое которого взять в файле /assets/snippets/tsvoffice/install/formsignup.chunk.tpl

Расширенные настройки сниппеты

Кроме вышеперечисленных минимальных примеров вызова сниппета TSVoffice, вы можете дополнительно осуществлять более тонкую его настройку и создавать дополнительные страницы в личном кабинете.

Рассмотрим несколько режимов работы сниппета:

этот режим установлен по-умолчанию. При его вызове отображается личный кабинет пользователя, если он уже авторизован. Если он еще не авторизовался, то вместо личного кабинета отображаются 2 формы: форма регистрации и форма авторизации.

Внешний вид страницы, когда пользователь не авторизован, настраивается в файле  /assets/snippets/tsvoffice/tpl/login.tpl

Этот шаблон вы можете менять как угодно. В нем зарезервированы 2 плейсхолдера:

Плейсхолдер Описание
[+weblogin+]

Отображает форму авторизации (на основе сниппета Weblogin). Внешний вид формы авторизации задается в чанке weblogin (по-умолчанию). Задать другой чанк вы можете с помощью параметра &logintpl=`имячанка`.

Обратите внимание , что поскольку сниппет TSVoffice использует в работе сниппет Weblogin, то вы можете в вызове TSVoffice  использовать все параметры, доступные для Weblogin. Единственная разница, что вместо параметра &tpl нужно использовать &logintpl

[+websignup+] Отображает форму регистрации (на основе сниппета WebSignup). Внешний вид формы регистрации задается в чанке formsignup (по-умолчанию). Задать другой чанк вы можете с помощью параметра &signuptpl=`имячанка`.

Обратите внимание , что поскольку сниппет TSVoffice использует в работе сниппет WebSignup, то вы можете в вызове TSVoffice  использовать все параметры, доступные для WebSignup. Единственная разница, что вместо параметра &tpl нужно использовать &signuptpl    

Внешний вид личного кабинета (когда пользователь авторизован), настраивается в файле /assets/snippets/tsvoffice/tpl/tsvoffice.tpl

Его также можно редактировать под свои нужды, например, составить список ссылок на Корзину, Редактирование профиля, на другие страницы. В данном шаблоне зарезервированы 2 плейсхолдера, которые можно использовать:

Плейсхолдер Описание
[+listorders+]

Отображает таблицу заказов пользователя. Внешний вид таблицы с заказами настраивается с помощью шаблона /assets/snippets/tsvoffice/tpl/ordertable.tpl

В этом шаблоне между тегами <!--repeat--> и <!--/repeat--> содержится повторяющаяся часть, которая формирует строки таблицы заказа. Вместо других плейсхолдеров подставляются значения из одноименных полей таблицы заказов.

[+logoutlink+] Вместо этого плейсхолдера выводится адрес ссылки ВЫХОДА (logout) из личного кабинета. Ее вы можете использовать так: <a href=”[+logoutlink+]”>Завершить сеанс</a>  

В остальном вы можете самостоятельно формировать внешний вид всех шаблонов данного режима.

В данном режиме есть еще 2 параметра:

&orderpage=`id`  - это id страницы Просмотр заказа , где будет отображаться подробная информация о выбранном заказе (режим &act=`showorder`) &groups=`названиегруппы` - это название группы веб-пользователей, к которой должен быть причислен регистрируемый пользователь (необязательный параметр). Режим &act=`weblogin`

В данном режиме выводится форма авторизации пользователя, которую вы можете вставить  в любое место сайта, а не только в личном кабинете. Как упоминалось выше, эта форма генерируется с помощью сниппета WebLogin, поэтому при вызове TSVoffice в этом режиме вы можете использовать все те параметры, которые доступны для WebLogin. Единственная разница, что вместо параметра &tpl нужно использовать &logintpl.

Внешний вид формы авторизации задается в чанке weblogin (по-умолчанию). Задать другой чанк вы можете с помощью параметра &logintpl=`имячанка`.

Режим &act=`websignup`

В данном режиме выводится форма регистрации пользователя, которую вы можете вставить  в любое место сайта, а не только в личном кабинете. Как упоминалось выше, эта форма генерируется с помощью сниппета WebSignup, поэтому при вызове TSVoffice в этом режиме вы можете использовать все те параметры, которые доступны для WebSignup. Единственная разница, что вместо параметра &tpl нужно использовать &logintpl.

Внешний вид формы регистрации задается в чанке formsignup (по-умолчанию). Задать другой чанк вы можете с помощью параметра &signuptpl=`имячанка`.

В данном режиме есть еще 1 параметр:

&groups=`названиегруппы` - это название группы веб-пользователей, к которой должен быть причислен регистрируемый пользователь (необязательный параметр). Режим &act=`editprofile`

В данном режиме выводится форма редактирования профиля пользователя, которую вы можете вставить  в любое место сайта, а не только в личном кабинете.  Внешний вид формы можно менять в файле /assets/snippets/tsvoffice/tpl/editprofile.tpl. Синтаксис этой формы практически идентичен синтаксису чанка для сниппета Weblogin. По желанию вы можете сменить шаблон формы на другой, используя параметр &edittpl=``. Следует заметить, что в качестве названия шаблона вы можете указать:

Режим &act=`showorder`

В данном режиме выводится подробная информация о конкретном выбранном заказе. Внешний вид подробной информации о заказе можно поменять в файле /assets/snippets/tsvoffice/tpl/orderview.tpl. Вместо плейсхолдеров подставляются значения из одноименных полей таблицы заказов.

Режим &act=`listorders`

В данном режиме выводится таблица заказов. Как упоминалось выше, внешний вид таблицы с заказами настраивается с помощью шаблона /assets/snippets/tsvoffice/tpl/ordertable.tpl

В этом шаблоне между тегами <!--repeat--> и <!--/repeat--> содержится повторяющаяся часть, которая формирует строки таблицы заказа. Вместо других плейсхолдеров подставляются значения из одноименных полей таблицы заказов.

В данном режиме есть еще 2 параметра:

&orderpage=`id`  - это id страницы Просмотр заказа, где будет отображаться подробная информация о выбранном заказе (режим &act=`showorder`) - обязательный   &perPage =`10` - количество записей на одной странице ( доступно с версии TSVshop 5.4 )
rss