Сниппет TSVoffice Краткое описание Сниппет предназначен для создания продвинутого личного кабинета пользователя в дополнение к модулю/сниппету TSVshop. С его помощью пользователь может зарегистрироваться, авторизоваться, редактировать профиль, просматривать свои заказы, сделанные с помощью сниппета TSVshop. Зависимости Сниппет TSVoffice использует в работе следующие сниппеты MODx: WebLogin (авторизация пользователей) WebSignup (регистрация пользователей) Поэтому данные сниппеты должны быть установлены в системе. Они используются без какихлибо доработок (как есть) , поэтому при необходимости вы можете их обновлять/редактировать, и это напрямую отразится на работе сниппета TSVoffice. Установка и настройка – быстрый старт Рассмотрим ручную установку и настройку личного кабинета. 1) Создадим сниппет TSVoffice , содержимое которого взять в файле /assets/snippets/tsvoffice/install/TSVoffice.snippet.tpl 2) Создадим несколько документов для личного кабинета: 1) Страница Мой кабинет (или любое другое название). В данном документе будет выводиться кабинет пользователя (в случае, когда пользователь авторизован) или формы для регистрации и авторизации (если пользователь не зарегистрирован или не авторизовался) Вызов сниппета такой: [!TSVoffice? &orderpage=`` &groups=`названиегруппы`!] где orderpage – это ID страницы Просмотр заказа (смотрите пункт 3). А &groups=`` - это название группы веб-пользователей, к которой должен быть причислен регистрируемый пользователь (необязательный параметр). Крайне желательно ВСЕ страницы личного кабинета, кроме страницы Мой кабинет, причислить к этой же группе веб-пользователей, чтобы их могла просматривать только данная группа вебпользователей. 2) Страница Редактирование профиля (или любое другое название). На этой странице пользователь сможет редактировать свои персональные данные: телефон, адрес, почту и т.д. Вызов сниппета такой: [!TSVoffice? &act=`editprofile`!] 3) Страница Просмотр заказа, на которой будет отображаться подробная информация о выбранном заказе. Вызов сниппета такой: [!TSVoffice? &act=`showorder`!] 3) Создадим 2 чанка: 1) Чанк weblogin , содержимое которого взять в файле /assets/snippets/tsvoffice/install/weblogin.chunk.tpl 2) Чанк formsignup , содержимое которого взять в файле /assets/snippets/tsvoffice/install/formsignup.chunk.tpl Расширенные настройки сниппеты Кроме вышеперечисленных минимальных примеров вызова сниппета TSVoffice, вы можете дополнительно осуществлять более тонкую его настройку и создавать дополнительные страницы в личном кабинете. Рассмотрим несколько режимов работы сниппета: Режим &act=`office` этот режим установлен по-умолчанию. При его вызове отображается личный кабинет пользователя, если он уже авторизован. Если он еще не авторизовался, то вместо личного кабинета отображаются 2 формы: форма регистрации и форма авторизации. Внешний вид страницы, когда пользователь не авторизован, настраивается в файле /assets/snippets/tsvoffice/tpl/login.tpl Этот шаблон вы можете менять как угодно. В нем зарезервированы 2 плейсхолдера: Плейсхолдер Описание Отображает форму авторизации (на основе сниппета Weblogin). Внешний вид формы авторизации задается в чанке weblogin (по-умолчанию). Задать другой чанк вы можете с помощью параметра &logintpl=`имячанка`. [+weblogin+] [+websignup+] Обратите внимание, что поскольку сниппет TSVoffice использует в работе сниппет Weblogin, то вы можете в вызове TSVoffice использовать все параметры, доступные для Weblogin. Единственная разница, что вместо параметра &tpl нужно использовать &logintpl Отображает форму регистрации (на основе сниппета WebSignup). Внешний вид формы регистрации задается в чанке formsignup (по-умолчанию). Задать другой чанк вы можете с помощью параметра &signuptpl=`имячанка`. Обратите внимание, что поскольку сниппет TSVoffice использует в работе сниппет WebSignup, то вы можете в вызове TSVoffice использовать все параметры, доступные для WebSignup. Единственная разница, что вместо параметра &tpl нужно использовать &signuptpl Внешний вид личного кабинета (когда пользователь авторизован), настраивается в файле /assets/snippets/tsvoffice/tpl/tsvoffice.tpl Его также можно редактировать под свои нужды, например, составить список ссылок на Корзину, Редактирование профиля, на другие страницы. В данном шаблоне зарезервированы 2 плейсхолдера, которые можно использовать: Плейсхолдер [+listorders+] [+logoutlink+] Описание Отображает таблицу заказов пользователя. Внешний вид таблицы с заказами настраивается с помощью шаблона /assets/snippets/tsvoffice/tpl/ordertable.tpl В этом шаблоне между тегами <!--repeat--> и <!--/repeat--> содержится повторяющаяся часть, которая формирует строки таблицы заказа. Вместо других плейсхолдеров подставляются значения из одноименных полей таблицы заказов. Вместо этого плейсхолдера выводится адрес ссылки ВЫХОДА (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=``. Следует заметить, что в качестве названия шаблона вы можете указать: Название чанка. Пример: &edittpl=`имячанка` Файл. Пример: @FILE:/assets/snippets/tsvoffice/tpl/editprofile.tpl Код html. Пример: @CODE:<form>тут html</form> Режим &act=`showorder` В данном режиме выводится подробная информация о конкретном выбранном заказе. Внешний вид подробной информации о заказе можно поменять в файле /assets/snippets/tsvoffice/tpl/orderview.tpl. Вместо плейсхолдеров подставляются значения из одноименных полей таблицы заказов. Режим &act=`listorders` В данном режиме выводится таблица заказов. Как упоминалось выше, внешний вид таблицы с заказами настраивается с помощью шаблона /assets/snippets/tsvoffice/tpl/ordertable.tpl В этом шаблоне между тегами <!--repeat--> и <!--/repeat--> содержится повторяющаяся часть, которая формирует строки таблицы заказа. Вместо других плейсхолдеров подставляются значения из одноименных полей таблицы заказов. В данном режиме есть еще 1 ОБЯЗАТЕЛЬНЫЙ параметр: &orderpage=`id` - это id страницы Просмотр заказа, где будет отображаться подробная информация о выбранном заказе (режим &act=`showorder`)