momentjs
kullanırsan çok kolay, kullanmazsan şöyle garip bir kod yazdım.
<input type="date" id="date">
<input type="date" id="nextDay">
<script>
let date = document.getElementById('date'),
nextDay = document.getElementById('nextDay');
date.addEventListener('change', function(){
let date = new Date(this.value);
let dateNextDay = new Date(date.setDate(date.getDate() + 1)).toLocaleString();
nextDay.value = dateNextDay.split(' ')[0].split('.').reverse().join('-');
});
</script>
@afsafsdf, eğer windows kullanıyorsan cmder
diye bir araç var onunla deneyebilirsin.
İstediğin her programlama dilini kullanabilirsin back-end için. İster firebase kullan, ister nodejs-mongodb kullan, ister php-mysql kullan tamamen senin back-end bilgine bağlı bir durum.
Ne kullanırsan kullan kendine bir API servisi hazırlayıp react ile bu servise istek atıp işlem yapman gerekiyor. Eğer ssr (server-side rendering) istersen arama motorlarında daha iyi bir seo için o zaman nextjs
kullanarak aynı işlemleri tekrarlayabilirsin.
dalga mı geçiyorsun? indirme sitesi deyip link kısaltma servisinin linkini paylaşman, amacın reklamsa bu kadar düşmeyin abi, gidin başka yerde yapın reklamınızı gına geldi sizin gibilerden. Silmiyorum linkini, reklam istiyorsan buyur reklamın olsun, yazıktır ya.
react'i front-end tarafında kullanabilirsin. php ile backend hazırlayacaksın, API hazırlayacaksın, front-end tarafında react ile bu api'ye istek atarak sayfalarını yöneteceksin.
eğer ssr (server-side rendering) istersende nextjs
kullanabilirsin.
unuttukları bir şey yok sen araştırmayı bilmiyorsun muhtemelen.
google'a react pagination
diye aratsan onlarcasını bulacaksın zaten.
htmlspecialchars()
kullanırsan daha sağlıklı olur. Böylece "'
gbi işaretler çevrileceği için sorguna müdahale edemezler.
Ve bunları bazı yerlerde tekrar düzgün halleriyle göstermek istersende htmlspecialchars_decode()
fonksiyonundan geçirmen yeterli.
permalink
için kullandığın php fonksiyonunun benzerini javascript için yazman lazım ilk olarak. Uğraşmaman için sana işe yarar bir fonksiyon verelim.
function slugify(text) {
return text
.toUpperCase()
.toLowerCase()
.normalize('NFD')
.trim()
.replace(/\s+/g, '-')
.replace(/[^\w\-]+/g, '');
}
Şimdi artık yapacağın başlığı yazdığın input'u dinleyerek değeri bu fonksiyondan geçirip url için oluşturduğun input'a değer olarak basmak.
<form action="" method="post">
<input type="text" id="title-input" placeholder="Başlık" name="baslik"> <br>
<input type="text" id="url-input" name="url" placeholder="Slug">
</form>
<script>
function slugify(text) {
return text
.toUpperCase()
.toLowerCase()
.normalize('NFD')
.trim()
.replace(/\s+/g, '-')
.replace(/[^\w\-]+/g, '');
}
const title = document.getElementById('title-input'),
url = document.getElementById('url-input');
title.addEventListener('keyup', (e) => {
url.value = slugify(e.target.value);
});
</script>
Artık php tarafında şunu kontrol edeceksin. Eğer url
gönderilmemişse php tarafında url'i başlıktan oluşturacaksın, eğer url gönderilmişse onu kullanacaksın ancak güvenlik kontrolü için onuda yine kendi slug fonksiyonundan geçirirsen daha garanti olacaktır, malum clint-side işlem olduğu için değiştirilebilir değerler daha garanti olur işin.
çünkü update yaparken üye id'ni belirtmiyorsun, doğal olarak tüm üyelerin bilgilerini güncelliyor.
zamanında şöyle bir videom vardı
https://www.youtube.com/watch?v=wjIYdfshSIw
öğreneceğin kaynak elbette kendi sitesi olacak. zaten kullanabileceğin her şeyi orada örnekleriyle gösteriyor.
anlaman gereken şey şu, amp sayfan asıl site içeriğin değil. mobil aramalarda daha hızlı sonuç vermesi için göstereceğin bir önsayfa gibi düşün.
yani bir sürü javascript işlemleri, oturum işlemleri vs. hiçbirisini ampde yapmak zorunda değilsin.
örneğin prototürk'ten örnek vereyim, makaleler sayfasında makale detayları için amp sayfası yaparım ve makale sayfasında amp linkini belirtirim. Ben genelde makalenin sonuna /amp
gibi belirterek kontrollerimi yapıyorum back-end'de.
ve google'da aramalarda bu amp sayfasını gösterir, burada gösterim limitli olur ve asıl mobil sayfasına yönlendirme yapabilirsin bir buton yardımı ile.
gözünde çok büyüteceğin bir konu değil kısaca.