Phpde Masterpage Denemesi
-
selamlar,
sorunumu ve sorumu özetlemeden önce olaydan biraz bahsedeyim, orta düzey programlama yeteneğim var, web konularında çok da bilgili değilim.
php kullanmaya yeni başladım, bazı konularda sıkıntılar yaşıyorum haliyle..
online kitap satışı ile ilgili bir web sayfası hazırlamam gerekiyor..temasından anlaşılacağı üzere pek de karlı bişey olmayacak gibi, ama biraz olaya vakıf olabilmem açısından benim için de faydalı oldu.
bence şık bir tasarım yaptım, ve pek de karlı olmayan fikirler nedense cezbediyor.
şimdi problemi özetlersek;
zamanında html sayfalar yazarken index.html, aboutus.html filan gibi 50 tane çoğu içeriğin copy paste olduğu siteler hazırlıyorduk..
şimdi aklımda şöyle bişey var, maindiv id li divimizi bir php değişkeni haline getirebilirsek, about us a tıklandığında sayfada sadece maindiv değişkenini kaldırıp, yerine aynı ebatlardaki aboutusdiv değişkenini getirip, masterpage mantığını phpde uygulamak istiyorum.
fakat sorun şu ki, örneğin bir textboxın idsini değişken haline getirebiliyor veya içeriği değişkene atabiliyorken, divin idsini değişken haline getiremiyorum.
maindivdeki bütün içeriği değişkene atıp da tıklanan butona göre maindivdeki içeriği komple değiştirme fikri de pek sağlıklı bir çözüm gibi gelmiyor..
beynim durdu gibi..butona tıklandığında urlye bişey ekletip her yenilemede urlnin kontrolünü yapıp ona göre ortadaki divi ekleyen bişey de yazılabilir mi veya ben yazabilir miyim emin değilim..
aklıma başka çözüm de gelmiyor (50 farklı sayfa hazırlamaktan başka)
ilgili kod bloğu olsun, algoritma olsun, fikir olsun, herhangi bir şekilde yardımcı olabilecek mürid varsa çok güzel olur..
-
anlamışmıyım bi bakalım:
0x656e tarafından 28/Mar/13 01:32 tarihinde düzenlenmiştir
hocam header , content, sidebar, footer tarzı php dosyaları oluştur ihtiyacın olan yerde include et ? -
Demek istediğiniz olay, index.html yi yaptığınızda sonra about.html ya da contact.html ye tıkladığınızda tema hiç değişmeden sadece <body> </body> etiketlerinin arasındaki değerlerin değişmesini sağlamaksa eğer bunun o kadar da zor olmadığını düşünüyorum. php bilgim kıttır ama şöyle bir şey yardımınıza dokunabilir.
önce temanızı bir sayfaya giydirirsiniz. bu sayfaya da atıyorum tema.php adını verirsiniz sonra diğer bütün sayfalarda yalnızcaiçeriğini tanımlarsınız. sonra diğer tüm sayfalarda tema.php sayfasını include edersiniz. bu sayede de gereksiz bi dünya koddan kurtulursunuz.
1049 tarafından 28/Mar/13 01:42 tarihinde düzenlenmiştir -
include olayı mantıklı geldi, şimdi ne olduğuna baktım..
sadece ihtiyacım olan içerik divlerini koyarsam diğer sayfalara ve gerekli yere çağırırsam olacak gibi görünüyor..
teşekkürler..
benim php bilgim daha kıt işte bikaç günlük :)
çok hoş aslında..
sonuç elde edemezsem veya benzer sorunlar yaşarsam uplarım, tekrardan teşekkürler.
-
Ya bi template motoru kullan, ya da arkadaşın dediği gibi header footer diye dosyalar oluştur onları include et gerektikçe.
Mesela <html>den <body>e kadar olan kismi header </body> den </html> ye kadar olan kısmı footer de sadece body içini yazarsın diğer sayfalarda. Tabi süper bi yöntem değil sayfa başliklari falan değiştirmek sıkıntı olacak en temizi template motoru.
-
http://youtu.be/ytKc0QsVRY4
kvasir tarafından 28/Mar/13 08:57 tarihinde düzenlenmiştir -
ortak olan kısımları ortak.php'nin içine koy.sonra istediğin yerden include et.
-
Tecrubeyle sabittir.
Sakin oyle bir sey yapma.
Diyelimki index in icerigini a.php ye, hakkimizda nin icerigini b.php ye koydun bunlari url de parametre ile okuyacaksin.
Eeee sonucta yine ayni kodu yazmis olacaksin.
Onun yerine her sayfayi klasorlere ayirip iclerine index.php koy.
Eger sayfanin en ustu ve en alti her sayfada ayni ise o zaman include diye bir klasor olusturup icine top.php ve footer.php koy butun sayflarina include et.
-
Basit bir örnekle temayı bölerek şu şekilde yapabilirsin
<?php
include ("meta.php");
include ("ust.php");
switch($_GET['icerik']){
case 'hesapla': // index.php?icerik=hesapla şeklinde çağırıyoruz
include('hesapla.php');
break;
case 'iletisim':
include('iletisim.php');
break;
case 'bizeyazin':
include('bize-yazin.php');
break;
default: // Yukarıdaki koşşular gerçekleşmez ise anasayfa.php gelecek.
include('anasayfa.php');
break;
}
include ("sag.php");
include ("alt.php");
?>
-
ajax yöntemi ayrı güzel geldi gözüme, include yöntemi ayrı güzel.
js koşulunun bir sefer yazılması daha avantajlı tabi..bugün başlamayacaktım aslında ama heveslendim faydalı fikirler gelince :)
teşekkürler..
sniper hocam ben denemeden öğrenemiyorum bu tarz şeylerin sonuçlarını..bana faydalı olacakmış gibi geliyor ama olası kötü sonuçlarda kayıtlara geçer bidaha yapmamam gerektiği
-
<?php @$dosya = './inc/'. $_GET['sayfa'] .'.php'; switch(@$_GET['sayfa']){ case @$_GET['sayfa']: if(file_exists($dosya)) require $dosya; else require "./inc/anasayfa.php"; break; } ?>
örneğin index.php?sayfa=hakkimizda şeklinde hakkımızda sayfasını oluşturmak için /inc/ içerisine hakkimizda.php oluşturup atıyorsun. böylece yığınla switch caseden kurtuluyorsun