Убрать пиктограмму личного кабинета, добавить свои кнопки «Редактировать профиль» и «Выйти»

Многим не нравится стандартная плашка для действий с личным кабинетом, поэтому её скрывают. Однако это чревато тем, что пользователь не сможет выйти из кабинета или изменить профиль.

Вы можете создать собственные кнопки «Войти» и «Зарегистрироваться», используя стандартные ссылки (или ссылку на регистрацию в определённую группу). А для кнопок «Изменить профиль» и «Выход» потребуется использовать код. Но мы объединили всё это в один скрипт, чтобы вы не мучались. Обратите внимание на другие модификации, которые могут вам пригодиться.

Внимание! Скрипт будет работать только на страницах, которые подключены к личному кабинету.

Выберите, нужно ли скрывать значок профиля со страницы и пропишите ссылку регистрации:
Затем создайте на странице кнопки в Zero-блоке для действий с соответствующими ссылками или в любом блоке маркированный список, где каждая строка — это отдельная текстовая ссылка:
«Изменить профиль» — #profile:edit
«Логин» — #login;
«Регистрация» — #signup;
«Выход» — #logout.

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

Скопируйте код и вставьте его в блок T123. Сам блок расположите под задействованными элементами на странице (если ваши ссылки в меню, значит код надо размещать под меню).
<!-- Убрать пиктограмму личного кабинета, добавить свои кнопки «Редактировать профиль» и «Выйти» | https://necodim.ru/tilda/lk-buttons -->
<script>const nProjectId=parseInt(document.querySelector("#allrecords").dataset.tildaProjectId),nLsUser=window.localStorage.getItem("tilda_members_profile"+nProjectId),nUserEmail=!(null==nLsUser||!JSON.parse(nLsUser).login)&&JSON.parse(nLsUser).login;let userbarReady=!1;const generateUserbar=()=>{const o=document.querySelector(".tlk-userbar"),e=o.querySelector(".tlk-userbar__popup");t=o.querySelector(".tlk-userbar__popup-wrap"),r=o.querySelector(".tlk-userbar__popup-content"),s=o.querySelector(".tlk-userbar__user-image"),tma__userbar__showPreloader(s,t,r),tma__getObjProfile((function(){tma__userbar__hidePreloader(o,s,t,r)})),tma__userbar__showWidgetPanel(o,e,t),tma__userbar__calcCoordinatsWidgetPanel(o,e,t);const waitUserbarPopup=e=>{e.target.classList.contains("tlk-userbar__popup-login")&&(o.removeEventListener("DOMNodeInserted",waitUserbarPopup),tma__profile__drawProfilePopup(),userbarReady=!0)};o.addEventListener("DOMNodeInserted",waitUserbarPopup,!1)},waitUserbar=e=>{if(e.target.classList.contains("tlk-userbar")){document.body.removeEventListener("DOMNodeInserted",waitUserbar),generateUserbar();const userbarPopupInterval=setInterval(()=>{userbarReady&&(clearInterval(userbarPopupInterval),document.querySelectorAll('[href="#signup"]').forEach(btn=>btn.parentNode.remove()),document.querySelectorAll('[href="#login"]').forEach(btn=>btn.parentNode.remove()),document.querySelectorAll('[href="#profile:edit"]').forEach(btn=>{btn.addEventListener("click",()=>{var i=tma__getProfileObjFromLS(),e=tma__profile__getFormEditProfileHtml(i);tma__drawPopup({id:"edit-profile",main:document.getElementById("app"),content:tma__translate(e,"userbar_dict"),closeBtns:[".tlk-popup__close-cancel"]}),tma__profile__addUploadEvents();var p=document.getElementById("edit-profile"),l=document.getElementById("form-change-profile"),e=l.querySelector(".tlk-popup__change-password"),t=l.querySelector(".tlk-popup__change-lang"),o=l.querySelector('button[type="submit"]'),s=!1;i.memberlogo_uuid&&(tildaMembers.upload.id=i.memberlogo_uuid,tildaMembers.upload.oldId=i.memberlogo_uuid),l.addEventListener("submit",(function(e){e.preventDefault(),e.stopPropagation(),tma__resetErrorFields(l),tma__resetErrorRequest(l),0<(e=tma__validationFormFields(l)).length?tma__showErrorFields(l,e,"userbar_dict"):((e=tma__serializeArray(l)).projectid=i.projectid,e.token=i.token,e.tzoffset=(new Date).getTimezoneOffset(),tildaMembers.upload&&tildaMembers.upload.id&&(e.memberlogo=tildaMembers.upload.id),tildaMembers.userLang!==t.value&&(e.lang=t.value,s=!0),e=JSON.stringify(e),tma__request("/api/editprofile/",e,o,(function(e){var t;"ok"===e.status&&"object"==typeof e.data?(t=e.data,tildaMembers.upload.id="",i.name=t.name,i.login=t.login,t.memberlogo_uuid?(i.memberlogo=t.memberlogo,i.memberlogo_uuid=t.memberlogo_uuid):(i.memberlogo="",i.memberlogo_uuid=""),tma__showSuccessRequest(l,tma__translate("{{edit_profile_success_text}}","userbar_dict")),t="tilda_members_profile"+i.projectid,localStorage.setItem(t,JSON.stringify(i)),localStorage.setItem(t+"_timestamp",Math.floor(Date.now()/1e3)),s?setTimeout((function(){window.location.reload()}),1e3):tma__userbar__updateDataProfile()):tma__showErrorRequest(l,e.code,"userbar_dict","edit_profile")})))})),e.addEventListener("click",(function(){var e=tma__profile__getFormChangePasswordHtml();tma__drawPopup({id:"change-password",main:document.getElementById("app"),content:tma__translate(e,"userbar_dict"),closeBtns:[".tlk-popup__close-cancel"]});var t=document.getElementById("change-password"),l=document.getElementById("form-change-password"),o=l.querySelector('button[type="submit"]');tma__profile__addButtonShowHidePasswordEvents(l),l.addEventListener("submit",(function(e){e.preventDefault(),e.stopPropagation(),tma__resetErrorFields(l),tma__resetErrorRequest(l),0<(e=tma__validationFormFields(l)).length?tma__showErrorFields(l,e,"userbar_dict"):((e=tma__serializeArray(l)).projectid=i.projectid,e.token=i.token,e.tzoffset=(new Date).getTimezoneOffset(),e=JSON.stringify(e),tma__request("/api/editpassword/",e,o,(function(e){"ok"===e.status?(tma__showSuccessRequest(l,tma__translate("{{change_password_success_text}}","userbar_dict")),setTimeout((function(){tma__closePopup(t),tma__closePopup(p)}),1e3)):tma__showErrorRequest(l,e.code,"userbar_dict","change_password")})))}))}))})}))},500);document.querySelectorAll('[href="#logout"]').forEach(btn=>{btn.addEventListener("click",(function(e){e.preventDefault(),window.localStorage.removeItem("tilda_members_profile"+nProjectId),window.localStorage.removeItem("tilda_members_profile"+nProjectId+"_timestamp"),window.location.replace("/")}))})}};document.addEventListener("DOMContentLoaded",()=>{nUserEmail?document.body.addEventListener("DOMNodeInserted",waitUserbar,!1):(document.querySelectorAll('[href="#signup"]').forEach(btn=>btn.setAttribute("href","/members/signup/")),document.querySelectorAll('[href="#login"]').forEach(btn=>btn.setAttribute("href","/members/login/")),document.querySelectorAll('[href="#logout"]').forEach(btn=>btn.parentNode.remove()),document.querySelectorAll('[href="#profile:edit"]').forEach(btn=>btn.parentNode.remove()))});</script>
<style>.tlk-userbar, .tlk__userbar {display: none !important;}</style>
Для регистрации пользователя в конкретную группу, необходимо заменить ссылку «/members/signup/» на свою.

Если возникнут дополнительные вопросы, вы всегда можете задать их в Telegram-чате.
Смотрите также
Made on
Tilda