Налаштування Office для особистого кабінету на MODX

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Налаштування Office для особистого кабінету на MODX
Середня
~3-5 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Налаштування Office для особистого кабінету на MODX

Office — Extra MODX для створення особистих кабінетів користувачів: реєстрація, вхід, відновлення пароля, редагування профіля, зміна пароля. Працює через AJAX без перезавантаження сторінки.

Встановлення

Package Manager → Office → встановити. Залежності: pdoTools, Email.

Структура сторінок

Особистий кабінет (шаблон: lk-base)
├── Профіль (/profile/)
├── Налаштування (/settings/)
├── Історія замовлень (/orders/)  [опціонально]
└── Вихід (/logout/)

Авторизація:
├── Вхід (/login/)
└── Реєстрація (/register/)
└── Відновлення пароля (/forgot-password/)

Форма входу

[[!OfficeAuth?
    &loginTpl=`officeLoginForm`
    &successTpl=`officeLoginSuccess`
    &redirectTo=`42`
    &loginContext=`web`
]]

Чанк officeLoginForm:

<form class="login-form" data-office="auth">
    <div class="form-group">
        <label for="username">Email</label>
        <input type="email" id="username" name="username" required>
        [[+fi.error.username:notempty=`<span class="error">[[+fi.error.username]]</span>`]]
    </div>
    <div class="form-group">
        <label for="password">Пароль</label>
        <input type="password" id="password" name="password" required>
    </div>
    <button type="submit">Увійти</button>
    <a href="/forgot-password/">Забули пароль?</a>
</form>

Форма реєстрації

[[!OfficeRegister?
    &submitVar=`office-register`
    &successTpl=`officeRegisterSuccess`
    &activateTpl=`officeActivateEmail`
    &activateSubject=`Підтвердження реєстрації`
    &groups=`Member`
    &redirectTo=`42`
    &validate=`username:email:required,password:required:minLength=^8^,password_confirm:password_confirm=^password^`
    &placeholderPrefix=`of.`
]]

Форма редагування профіля

[[!OfficeProfile?
    &submitVar=`office-profile`
    &successTpl=`officeProfileSuccess`
    &placeholderPrefix=`of.`
]]

<form data-office="profile">
    <input type="text" name="fullname" value="[[!+of.fullname]]" placeholder="Повне ім'я">
    <input type="email" name="email" value="[[!+of.email]]" placeholder="Email" required>
    <input type="text" name="phone" value="[[!+of.phone]]" placeholder="Телефон">
    [[- Кастомні розширені поля ]]
    <input type="text" name="extended[company]" value="[[!+of.extended.company]]" placeholder="Компанія">
    <button type="submit">Зберегти</button>
</form>

Зміна пароля

[[!OfficeChangePassword?
    &validate=`password_old:required,password:required:minLength=^8^,password_confirm:password_confirm=^password^`
]]

Відновлення пароля

[[!OfficeForgotPassword?
    &emailSubject=`Відновлення пароля`
    &emailTpl=`officeForgotPasswordEmail`
    &redirectTo=`reset-password`
]]

Перевірка авторизації в шаблоні

[[- Показати різне вміст для авторизованих / гостей ]]
[[!OfficeAuth?
    &loginTpl=`@INLINE <a href="/login/" class="btn">Увійти</a>`
    &logoutTpl=`@INLINE Привіт, [[+username]]! <a href="/logout/">Вийти</a>`
]]

[[- Редирект неавторизованих на сторінку входу ]]
[[!OfficeCheck? &redirectTo=`login-page-id`]]

Кастомні поля профіля через Extended

MODX зберігає розширені дані користувача в JSON у полі extended:

$user = $modx->getObject('modUser', $userId);
$profile = $user->getOne('Profile');

// Записати
$profile->set('extended', json_encode([
    'company' => 'ACME Corp',
    'inn'     => '7700000000',
    'vip'     => true,
]));
$profile->save();

// Прочитати
$extended = json_decode($profile->get('extended'), true);
$company = $extended['company'] ?? '';

Терміни

Налаштування особистого кабінету (вхід, реєстрація, профіль, зміна пароля) — 3–4 дні.