@dmcscans It's already in the video. As long as you follow the tutorial it will work. Firebase database Will be active when you have opened the section "firebase database" And start setting the rules.
@Anonim That's because you didn't delete the part in the javascript, The element you removed has a class/id Try searching for class/id In javascript and delete if you have found it
It's on the video, in the first video (Min 2:35) there I created the Firestore database, it's the database I'm using, not a real-time database. The document ID that you said is a User ID, the user ID is randomly generated when you register In form register.
Maybe I misunderstood what you meant, if possible please give me a screenshot to make it clearer.
Of course it can be done, You have to find the element used to enclose the article and just add a div with class "lck". And skip step 4 and 5 because this step only for ZeistmangaV5 I want to ask, What theme do you use?
is there a way to hide the profile if the user is not logged? And when I tried to register or login, the message is very delayed. It took a minute to appear.
sorry but Unmified Code is not share, That's early stage code, for my development. And only a few web developers can get it. If you still want, Go Trakteer Link , it's not expensive, only 0,33$ dollar (for support development). If there is an update to the code, you will still get the Unminified code.
baguslah kalau sudah benar. Yep..Code Bakal Terus diupdate sampai benar-benar memberikan Kemanan ketat, karena targetku adalah Encrypt Kontent...Untuk Web Premium Yang sangat Butuh Ginian
Min untuk next update apakah bisa tambahkan fitur countdown waktu untuk mengembalikan Role 'Member' Ke role 'User', misal diatur ke 10 hari maka dalam 10 hari role 'Member' akan berubah menjadi role 'user' dan di profile user akan ada countdown nya, jadi seperti membership gitu
Ada banyak Kesalahan Saat kamu meletakan kodenya, Kamu pakai tema apa?,kalau zeistmangav5 tinggal ikuti video tutorialnya, kalau zeistmangav6 nanti aku buat tutorialnya
entah bisa atau gak, Soalnya Bingung Ambil data tanggal dan mencocokannya dengan tanggal saat ini itu gimana caranya. akan kucoba targetkan fitur itu.Otw cari di stackoverflow
dikarenakan timer coutdown realtime gak mungkin bisa dibuat olehku. Tapi kalau tanggal exp Member di Profile bisa aja, jadi ketika sudah Habis Waktunya maka Role Membernya akan balik ke User
kalau dashboard Admin Diupdate Secarah terpisah.. Itu Udah dibuat Cuman Belum direlease, soalnya belum ada stylenya dan stuck di button delete , Video.
Other role could be added, but it would be too complicated to explain. The point is you have to connect and add logic to the function checkUserRole(e), place the new code for the New Role check Logic condition in if else
minggu... soalnya tinggal cssnya doang (ada dua versi style,style ke2 pakai gambar anime Screenshot) dan upload video baru, wifi lemot jadi harus pakai kuota buat uploadnya, minggu baru ada kuota.
Ah... itu salahku, kamu Langsung Ngambil kodenya waktu aku lagi (proses) ubah Kode lama ke yang baru, itu kode step 4 lama, sekarang ganti ke yang baru, sudah aku upload
can you include a screenshot or video?, Someone has already installed this form in zmv6 and it worked, I have also tried it, so I don't understand what the error is.
/* Style the container for inputs */ .container { background-color: #f1f1f1; padding: 20px; }
/* The message box is shown when the user clicks on the password field */ #message { display:none; background: #f1f1f1; color: #000; position: relative; padding: 20px; margin-top: 10px; }
#message p { padding: 10px 35px; font-size: 18px; }
/* Add a green text color and a checkmark when the requirements are right */ .valid { color: green; }
<label for="psw">Password</label> <input type="password" id="psw" name="psw" pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" title="Must contain at least one number and one uppercase and lowercase letter, and at least 8 or more characters" required>
<script> var myInput = document.getElementById("psw"); var letter = document.getElementById("letter"); var capital = document.getElementById("capital"); var number = document.getElementById("number"); var length = document.getElementById("length");
// When the user clicks on the password field, show the message box myInput.onfocus = function() { document.getElementById("message").style.display = "block"; }
// When the user clicks outside of the password field, hide the message box myInput.onblur = function() { document.getElementById("message").style.display = "none"; }
// When the user starts to type something inside the password field myInput.onkeyup = function() { // Validate lowercase letters var lowerCaseLetters = /[a-z]/g; if(myInput.value.match(lowerCaseLetters)) { letter.classList.remove("invalid"); letter.classList.add("valid"); } else { letter.classList.remove("valid"); letter.classList.add("invalid"); }
// Validate capital letters var upperCaseLetters = /[A-Z]/g; if(myInput.value.match(upperCaseLetters)) { capital.classList.remove("invalid"); capital.classList.add("valid"); } else { capital.classList.remove("valid"); capital.classList.add("invalid"); }
Okay, I understand. In Step 6, this Chapter Terkunci Chapter Ini terkunci, Silahkan login terlebih dahulu Sesuai Role Unlock with Role: Member it keeps disappearing, and when the user's role is 'Member the content isn't showing..
Admin can you help me? I can't find the code "Forma email verification V2", I'm doing the firebase tutorial in tyour Zeistmanga 1.2 theme and it's not in that template. How can I continue?
if nothing is changed in the code then it will work fine. did you change the label? or class name? It's hard for me to know because the code worked fine when I tested it.
and for role notification issues Chapter Terkunci Chapter Ini terkunci, Silahkan login terlebih dahulu Sesuai Role Unlock with Role: Member which often disappears, that's because I set it using setTimeout 5 seconds,
in step 4... more precisely in function checkUserRole, there is this code setTimeout(()=>{s===r||s!==r?t.forEach(e=>{e.classList.add("hidden")}):t.forEach(e=>{e.classList.remove("hidden")})},5e3) Just replace the 5 seconds, with the seconds you want...
Don't forget the Firestore rules , replace using this rule rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.auth != null; } } }
because I didn't have enough time when creating the code.. that's why I used setTimeout , I have fixed this, where it will only disappear if the content is already open. I'll make a tutorial tonight
I didn't change the class name, I just changed the height and width here. #fixedform{position:fixed;top:0;right:0;left:0;display:grid;place-items:center;z-index:9999;overflow:auto;height:100%;width:100%;justify-content: center;}
it's the container that makes the form float....if you change max-height to height and max-width to width then the container will cover the screen
just try putting it on background:#222; then the whole screen goes dark, the reason why it doesn't work is because the container covers the whole screen so what you click is the container and nothing else
delete your account in authentication and firestore database then re-register, I've logged in there and it's normal, it's just a "member" problem that I haven't checked
I've already done it, but it only happens when you enter the wrong password. Perhaps I made a mistake while changing the language in id='jsfrm' to English?
function loadImg () { const imgTags = `<data:post.body.cssEscaped/>`; ImageManager.loadImages(imgTags); }
put this function " loadImg () " under unlockUser() in the function checkUserRole
like this "Member"===t?(n[0].classList.remove("member","guest","hidden","hidden1"),checkMembershipExp(),unlockMember(),unlockUser(),loadImg (),console.log("Role Member"))
Hi, I now understand the error. When I set it to Production Mode, "Login failed" appears, but it works correctly in Test Mode. Here's the demo image Screenshot
Is this correct? function checkMembershipExp(){let e=document.getElementById("profile-uid"),r=document.querySelector("#exp-role");if(e&&r){let t=e.textContent,l=r.textContent.trim(),i=l.split(", ");if(2===i.length){let o=i[0];i[1];let n=o.split("/");if(3===n.length){let a=parseInt(n[0],10),s=parseInt(n[1],10)-1,d=parseInt(n[2],10),m=new Date(d,s,a);if(!isNaN(m.getTime())){let c=new Date;(c==m||c>=m||c>m)&&db.collection("users").doc(t).update({role:"User",exp:"Membership has expired"}).then(()=>{alert("Your 'Member' role membership has expired, so we will change your role back to 'User'. Please renew if you want to remain a 'Member'. Have a great day!"),location.reload()}).catch(e=>{console.error("Failed to change user role:",e)})}}}}}function checkUserRole(e){db.collection("users").doc(e).onSnapshot(e=>{if(e.exists){let r=e.data().role,l=document.querySelectorAll(".admin"),i=document.querySelectorAll(".member"),o=document.querySelectorAll(".modder"),n=document.querySelectorAll(".staff"),a=document.querySelectorAll(".guest");"Admin"===r?(l[0].classList.remove("admin","member","staff","modder","guest","hidden","hidden1"),checkMembershipExp(),unlockAdmin(),unlockModder(),unlockStaff(),unlockMember(),unlockUser(),notiRole(),loadImg(),console.log("Role Admin")):"Modder"===r?(o[0].classList.remove("modder","member","staff","guest","hidden","hidden1"),checkMembershipExp(),unlockModder(),unlockStaff(),unlockMember(),unlockUser(),loadImg(),console.log("Role Moddertor")):"Staff"===r?(n[0].classList.remove("staff","member","modder","guest","hidden","hidden1"),checkMembershipExp(),unlockModder(),unlockStaff(),unlockMember(),unlockUser(),notiRole(),loadImg(),console.log("Role Staff")):"Member"===r?(i[0].classList.remove("member","guest","hidden","hidden1"),checkMembershipExp(),unlockMember(),unlockUser(),notiRole(),loadImg(),console.log("Role Member")):"User"===r&&(a[0].classList.remove("guest","hidden"),checkMembershipExp(),unlockUser(),notiRole(),loadImg(),console.log("Role User"))}})}auth.onAuthStateChanged(e=>{e&&e.emailVerified?(showContent(),showProfile(e.uid),checkUserRole(e.uid)):hideContent()}); function notiRole(){let t=document.querySelectorAll(".notifchapter");t?t.forEach(e=>{e.classList.add("hidden")}): t.forEach(e=>{e.classList.remove("hidden")})} function loadImg () { const imgTags = `<data:post.body.cssEscaped/>`; ImageManager.loadImages(imgTags); }
Delete this code (This code shouldn't be there ) function loadImg () { const imgTags = `<data:post.body.cssEscaped/>`; ImageManager.loadImages(imgTags); }
And look for a code like this then replace it window.addEventListener(`load`, function () { const imgTags = `<data:post.body.cssEscaped/>`; ImageManager.loadImages(imgTags); }); With this code function loadImg () { const imgTags = `<data:post.body.cssEscaped/>`; ImageManager.loadImages(imgTags); }
There are two reasons 1 Because the rules of the two modes are different, that's why I suggest changing the rules. 2 There is no database with the name "users"
yeah in zeistmaid it doesn't happen like that, because the code is a little different.
Does the form you use on the Zeistmaid theme use the same code as this post? then in the login section, register and profile or open content... is it all working normally?
delete class .hidden in this css .hidden,.hidden1,.form .register-fr,.form .reset-fr,.icon1.hidden,.icon2.hidden,.options li:first-child{display:none} example like this .hidden1,.form .register-fr,.form .reset-fr,.icon1.hidden,.icon2.hidden,.options li:first-child{display:none}
try this <b:if cond='data:post.labels any (labelLock => labelLock.name in ["MemberA1", "MemberA2","MemberA3","MemberA4","MemberA5","Admin","Staff","Modder","User","Member"])'>
rules_version = '3'; service cloud.firestore { match /databases/{database}/documents { // Allow read access for authenticated users. match /{document=**} { allow read: if request.auth != null;
// Allow write access only for authenticated users from a specific domain and subdomains. allow write: if request.auth != null && request.auth.token.email.matches(".*@yourdomain.com"); } } }
Eish my bad thats a wrong. the previous code only give write access to the custom domain email address service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read: if request.auth != null;
// Allow write access only for authenticated users with the custom claim 'domain' set to 'sdacvip.com'. allow write: if request.auth != null && request.auth.token.domain == 'domain.com'; } } }
Not much different, because this is the original code version of premium... when I was still developing it at the beginning, before the current premium was released.
Most different in the level of code complexity, this version is not flexible in setting roles or content... While premium is more flexible in setting roles, coins, content, notifications, And other features that will be created can be directly installed and used without any hassle.
thanks bro ! hello hiru bro , the profile header is not toggling on my theme . please help https://private-user-images.githubusercontent.com/121334995/381080804-ea578750-38c5-4ade-83ab-241622a283b6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzAyNjMyNjgsIm5iZiI6MTczMDI2Mjk2OCwicGF0aCI6Ii8xMjEzMzQ5OTUvMzgxMDgwODA0LWVhNTc4NzUwLTM4YzUtNGFkZS04M2FiLTI0MTYyMmEyODNiNi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQxMDMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MTAzMFQwNDM2MDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mOTNkODliMzI0YTg0ODlmZjUwNWY2YWNmMmVkMGQ0OWU2OTg2ZTA1ZTA0NWU5M2IwMzNiNmM5NGNkYTM0ZTVmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.Ca3-59AJl6-iYYV_ipooBX4PVq1_elV3bi4FStyDY6s
Do you mean the popup when you click on the Avatar profile in the header?, If yes, it must be created by yourself, because the header profile code only displays data without a popup or drawer.
Your Firebase config sdk is not found, maybe you haven't installed the Firebase config sdk, Make sure you have installed it here const config2 = { your sdk config is here };
Masukkan URL Gambar (imgbb) /
(im.ge) atau Potongan Kode, atau Quote, lalu klik tombol yang kamu inginkan untuk di-parse. Salin hasil parse lalu paste ke kolom komentar.
Can you give me an example? What do you want to edit?,Maybe that example can be useful when I update this login code
It's already in the video.
As long as you follow the tutorial it will work.
Firebase database Will be active when you have opened the section "firebase database" And start setting the rules.
That's because you didn't delete the part in the javascript,
The element you removed has a class/id Try searching for class/id In javascript and delete if you have found it
The document ID that you said is a User ID, the user ID is randomly generated when you register In form register.
Maybe I misunderstood what you meant, if possible please give me a screenshot to make it clearer.
You have to find the element used to enclose the article and just add a div with class "lck".
And skip step 4 and 5 because this step only for ZeistmangaV5
I want to ask, What theme do you use?
Di tunggu tutorialnya.
top: -25px;
font-size: 14px;}
this is the css section that creates the effect
Agak lama karena internetnya cuman 2Mb
Login: https://ibb.co/SKrJ2rs
Register: https://ibb.co/gS9H400
Ganti ini dengan punya kamu sendiri.
<script>/*<![CDATA[*/
const configformlogin={
apiKey: "AIzaSyCDUKoueS66e77qvqGbrc1Clb0eFJWi2JU",
authDomain: "formlogin-6e176.firebaseapp.com",
projectId: "formlogin-6e176",
storageBucket: "formlogin-6e176.appspot.com",
messagingSenderId: "197923569691",
appId: "1:197923569691:web:db39447bcd0f6d7bd6f8be",
measurementId: "G-9RHRPYQXVQ"
};
/*]]>*/
</script>
I'll make a tutorial later on Thursday, because I'm busy in the next two days.
Work Stage: https://demokodehiru.blogspot.com/p/dasboard-admin-hiru.html
That's early stage code, for my development.
And only a few web developers can get it.
If you still want, Go Trakteer Link , it's not expensive, only 0,33$ dollar (for support development).
If there is an update to the code, you will still get the Unminified code.
Yep..Code Bakal Terus diupdate sampai benar-benar memberikan Kemanan ketat, karena targetku adalah Encrypt Kontent...Untuk Web Premium Yang sangat Butuh Ginian
Update kali ini cuman bug kecil.
akan kucoba targetkan fitur itu.Otw cari di stackoverflow
Link
<!--Menu Login/Register-->
<div class='dropdown-opsi'>
<button class='dropdown-btn-opsi menu-login'>
<span class='sm:dn'>Login</span></button>
<div class='dropdown-content-opsi'>
<button class='dropdown-item-opsi' disabled='disabled' id='profiletab-button' onclick='document.getElementById("contentx").style.display="flex";' type='button'><svg height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path clip-rule='evenodd' d='M12 4a8 8 0 0 0-6.96 11.947A4.99 4.99 0 0 1 9 14h6a4.99 4.99 0 0 1 3.96 1.947A8 8 0 0 0 12 4Zm7.943 14.076A9.959 9.959 0 0 0 22 12c0-5.523-4.477-10-10-10S2 6.477 2 12a9.958 9.958 0 0 0 2.057 6.076l-.005.018l.355.413A9.98 9.98 0 0 0 12 22a9.947 9.947 0 0 0 5.675-1.765a10.055 10.055 0 0 0 1.918-1.728l.355-.413l-.005-.018ZM12 6a3 3 0 1 0 0 6a3 3 0 0 0 0-6Z' fill='currentColor' fill-rule='evenodd'/></svg>Profile</button>
<button class='dropdown-item-opsi' onclick='document.getElementById("login-register-form").style.display="";'><svg height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M4 22q-.825 0-1.413-.588T2 20V9q0-.825.588-1.413T4 7h5V4q0-.825.588-1.413T11 2h2q.825 0 1.413.588T15 4v3h5q.825 0 1.413.588T22 9v11q0 .825-.588 1.413T20 22H4Zm0-2h16V9h-5q0 .825-.588 1.413T13 11h-2q-.825 0-1.413-.588T9 9H4v11Zm2-2h6v-.45q0-.425-.238-.788T11.1 16.2q-.5-.225-1.012-.338T9 15.75q-.575 0-1.088.113T6.9 16.2q-.425.2-.663.563T6 17.55V18Zm8-1.5h4V15h-4v1.5ZM9 15q.625 0 1.063-.438T10.5 13.5q0-.625-.438-1.063T9 12q-.625 0-1.063.438T7.5 13.5q0 .625.438 1.063T9 15Zm5-1.5h4V12h-4v1.5ZM11 9h2V4h-2v5Zm1 5.5Z' fill='currentColor'/></svg>Login/Register</button>
</div>
</div>
<script>
/*<![CDATA[*/
const dropdownButton = document.querySelector('.dropdown-btn-opsi');
const dropdownContent = document.querySelector('.dropdown-content-opsi'); dropdownButton.addEventListener('click', () => { dropdownContent.classList.toggle('show-opsi');
});
window.addEventListener('click', (event) => {
if (!event.target.matches('.dropdown-btn-opsi')) {
if (dropdownContent.classList.contains('show-opsi')) {
dropdownContent.classList.remove('show-opsi');
}
}
});
/*]]>*/
</script>
<!--Menu Login/Register-->
Screenshot
Link video test
dikarenakan timer coutdown realtime gak mungkin bisa dibuat olehku.
Tapi kalau tanggal exp Member di Profile bisa aja, jadi ketika sudah Habis Waktunya maka Role Membernya akan balik ke User
Moga cepat sembuh.
Itu Udah dibuat Cuman Belum direlease, soalnya belum ada stylenya dan stuck di button delete , Video.
The point is you have to connect and add logic to the function checkUserRole(e),
place the new code for the New Role check Logic condition in if else
newRole1 = document.querySelectorAll(".guest");
else if ("User" === s) { newRole1[0].classList.remove("guest", "hidden");
console.log("Role User");
}
Screenshot,
Sama info usernya tidak muncul
Screenshot
Dan juga pas login dengan akun admin chapter yang terkunci tetap tidak terbuka
Ss 2: https://ibb.co/C6HmrT2
<style>
/* Style all input fields */
input {
width: 100%;
padding: 12px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
margin-top: 6px;
margin-bottom: 16px;
}
/* Style the submit button */
input[type=submit] {
background-color: #04AA6D;
color: white;
}
/* Style the container for inputs */
.container {
background-color: #f1f1f1;
padding: 20px;
}
/* The message box is shown when the user clicks on the password field */
#message {
display:none;
background: #f1f1f1;
color: #000;
position: relative;
padding: 20px;
margin-top: 10px;
}
#message p {
padding: 10px 35px;
font-size: 18px;
}
/* Add a green text color and a checkmark when the requirements are right */
.valid {
color: green;
}
.valid:before {
position: relative;
left: -35px;
content: "✔";
}
/* Add a red text color and an "x" when the requirements are wrong */
.invalid {
color: red;
}
.invalid:before {
position: relative;
left: -35px;
content: "✖";
}
</style>
</head>
<body>
<h3>Password Validation</h3>
<p>Try to submit the form.</p>
<div class="container">
<form action="/action_page.php">
<label for="usrname">Username</label>
<input type="text" id="usrname" name="usrname" required>
<label for="psw">Password</label>
<input type="password" id="psw" name="psw" pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" title="Must contain at least one number and one uppercase and lowercase letter, and at least 8 or more characters" required>
<input type="submit" value="Submit">
</form>
</div>
<div id="message">
<h3>Password must contain the following:</h3>
<p id="letter" class="invalid">A <b>lowercase</b> letter</p>
<p id="capital" class="invalid">A <b>capital (uppercase)</b> letter</p>
<p id="number" class="invalid">A <b>number</b></p>
<p id="length" class="invalid">Minimum <b>8 characters</b></p>
</div>
<script>
var myInput = document.getElementById("psw");
var letter = document.getElementById("letter");
var capital = document.getElementById("capital");
var number = document.getElementById("number");
var length = document.getElementById("length");
// When the user clicks on the password field, show the message box
myInput.onfocus = function() {
document.getElementById("message").style.display = "block";
}
// When the user clicks outside of the password field, hide the message box
myInput.onblur = function() {
document.getElementById("message").style.display = "none";
}
// When the user starts to type something inside the password field
myInput.onkeyup = function() {
// Validate lowercase letters
var lowerCaseLetters = /[a-z]/g;
if(myInput.value.match(lowerCaseLetters)) {
letter.classList.remove("invalid");
letter.classList.add("valid");
} else {
letter.classList.remove("valid");
letter.classList.add("invalid");
}
// Validate capital letters
var upperCaseLetters = /[A-Z]/g;
if(myInput.value.match(upperCaseLetters)) {
capital.classList.remove("invalid");
capital.classList.add("valid");
} else {
capital.classList.remove("valid");
capital.classList.add("invalid");
}
// Validate numbers
var numbers = /[0-9]/g;
if(myInput.value.match(numbers)) {
number.classList.remove("invalid");
number.classList.add("valid");
} else {
number.classList.remove("valid");
number.classList.add("invalid");
}
// Validate length
if(myInput.value.length >= 8) {
length.classList.remove("invalid");
length.classList.add("valid");
} else {
length.classList.remove("valid");
length.classList.add("invalid");
}
}
</script>
I'll make a tutorial on installing it tomorrow
Video : Link
file: Link
you see the gift menu above the header,
open the gift and enter the account
username: hiru
password : lumatina
[ account exp: 01/10/2023 ]
Check this video : Link
Chapter Terkunci
Chapter Ini terkunci, Silahkan login terlebih dahulu Sesuai Role
Unlock with Role:
Member it keeps disappearing, and when the user's role is 'Member the content isn't showing..
did you change the label? or class name?
It's hard for me to know because the code worked fine when I tested it.
and for role notification issues
Chapter Terkunci
Chapter Ini terkunci, Silahkan login terlebih dahulu Sesuai Role
Unlock with Role:
Member
which often disappears, that's because I set it using setTimeout 5 seconds,
in step 4... more precisely in function checkUserRole, there is this code
setTimeout(()=>{s===r||s!==r?t.forEach(e=>{e.classList.add("hidden")}):t.forEach(e=>{e.classList.remove("hidden")})},5e3)
Just replace the 5 seconds, with the seconds you want...
5e3
5000= 5e3 = 5sec
10000 10e4 = 10 seconds
60000 = 6e4 = 60 seconds
3600000 = 36e5 = 1 hour
do you mean zeistmaid v1.2?,
it is very difficult to install form login v3.2 into Zeistmaid v1.2, because code count bookmark.
code form login v3.2: Link
Contact me if you have any problems.
I will help you install it
https://t.me/webhiru
My profile not appear and How to give role? Did I skip look?
, replace using this rule
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
how to give role: Link
I'll make a tutorial tonight
Link video
just try putting it on
background:#222; then the whole screen goes dark, the reason why it doesn't work is because the container covers the whole screen so what you click is the container and nothing else
When I have free time I will make a tutorial
I've logged in there and it's normal, it's just a "member" problem that I haven't checked
Check it out
Firestore rules Have you replaced it?
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
To make it work... maybe you should put the function canvas in code function checkUserRole
const imgTags = `<data:post.body.cssEscaped/>`;
ImageManager.loadImages(imgTags);
});
I don't quite understand what you mean and what it's for
function loadImg () {
const imgTags = `<data:post.body.cssEscaped/>`;
ImageManager.loadImages(imgTags);
}
put this function " loadImg () " under unlockUser() in the function checkUserRole
like this
"Member"===t?(n[0].classList.remove("member","guest","hidden","hidden1"),checkMembershipExp(),unlockMember(),unlockUser(),loadImg (),console.log("Role Member"))
function notiRole(){let t=document.querySelectorAll(".notifchapter");t?t.forEach(e=>{e.classList.add("hidden")}): t.forEach(e=>{e.classList.remove("hidden")})}
function loadImg () {
const imgTags = `<data:post.body.cssEscaped/>`;
ImageManager.loadImages(imgTags);
}
function loadImg () {
const imgTags = `<data:post.body.cssEscaped/>`;
ImageManager.loadImages(imgTags);
}
And look for a code like this then replace it
window.addEventListener(`load`, function () {
const imgTags = `<data:post.body.cssEscaped/>`;
ImageManager.loadImages(imgTags);
});
With this code
function loadImg () {
const imgTags = `<data:post.body.cssEscaped/>`;
ImageManager.loadImages(imgTags);
}
1 Because the rules of the two modes are different, that's why I suggest changing the rules.
2 There is no database with the name "users"
find this code
find this code in jsfrm
loginMessage.textContent = "login failed. " + e.message;
replace with this
if (e.code === "auth/user-not-found") {
loginMessage.textContent = "Email not found. Please register";
} else if (e.code === "auth/wrong-password") {
loginMessage.textContent = "Wrong password. Please try again.";
} else {
loginMessage.textContent = "Login Failed. There is an error: " + e.message;
}
Does the form you use on the Zeistmaid theme use the same code as this post?
then in the login section, register and profile or open content... is it all working normally?
ZMv6 Search Bookmark Setting not work
.hidden,.hidden1,.form .register-fr,.form .reset-fr,.icon1.hidden,.icon2.hidden,.options li:first-child{display:none}
example like this
.hidden1,.form .register-fr,.form .reset-fr,.icon1.hidden,.icon2.hidden,.options li:first-child{display:none}
How css?
this is the video tutorial Link video
9 labels can be used if more there will be error
<b:if cond='data:post.labels any (labelLock => labelLock.name in ["MemberA1", "MemberA2","MemberA3","MemberA4","MemberA5","Admin","Staff","Modder","User","Member"])'>
I don't know where the error is because I don't know what changes you made to the jsfrm code.
screenshot code jsfrm and record console.log when you register
service cloud.firestore {
match /databases/{database}/documents {
// Allow read access for authenticated users.
match /{document=**} {
allow read: if request.auth != null;
// Allow write access only for authenticated users from a specific domain and subdomains.
allow write: if request.auth != null &&
request.auth.token.email.matches(".*@yourdomain.com");
}
}
}
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read: if request.auth != null;
// Allow write access only for authenticated users with the custom claim 'domain' set to 'sdacvip.com'.
allow write: if request.auth != null &&
request.auth.token.domain == 'domain.com';
}
}
}
I think this worked
Most different in the level of code complexity, this version is not flexible in setting roles or content... While premium is more flexible in setting roles, coins, content, notifications, And other features that will be created can be directly installed and used without any hassle.
setelah itu
saat membuat project pada Firebase, disitu setelah selesai setup bakal diperlihatkan config Sdk ..
Config Sdk dimenit 1:47 - 2:07
Video,
jika sudah terlanjur membuat project maka bisa dilihat dibagian menu settingVideo
please help
https://private-user-images.githubusercontent.com/121334995/381080804-ea578750-38c5-4ade-83ab-241622a283b6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzAyNjMyNjgsIm5iZiI6MTczMDI2Mjk2OCwicGF0aCI6Ii8xMjEzMzQ5OTUvMzgxMDgwODA0LWVhNTc4NzUwLTM4YzUtNGFkZS04M2FiLTI0MTYyMmEyODNiNi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQxMDMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MTAzMFQwNDM2MDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mOTNkODliMzI0YTg0ODlmZjUwNWY2YWNmMmVkMGQ0OWU2OTg2ZTA1ZTA0NWU5M2IwMzNiNmM5NGNkYTM0ZTVmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.Ca3-59AJl6-iYYV_ipooBX4PVq1_elV3bi4FStyDY6s
Can u resend the image link?, The image can't be opened.
screenshot : https://ibb.co/PcQX5pt
console screenshot : https://ibb.co/KDz58pR
screenshot : https://ibb.co/CvNTzKD
Make sure you have installed it here
const config2 = {
your sdk config is here
};
Also releasing the raw code without encryption.