Ben bir sistem kurdum. Themes/ klasörü içinde belli sayfalar için kodlanmış PHP tema dosyaları var. Sistemimdeki tüm sayfalara index.php'den ?action=sayfa_adi şeklinde giriliyor. index.php'de template_above() isminde bir fonksiyonla <html></html> etiketlerinin arasında olması gereken kodları ve <body> etiketinden hemen sonra yer alan menüyü yazdırıyorum. Sonra $_GET['action'] değişkenine göre gereken tema dosyasını Themes klasörü içinden çağırıp yazdırıyorum. Daha sonra da template_below() isminde bir fonksiyonla sayfanın en altındaki footer kısmını yazdırıyorum. Buraya kadar sorunum yok.

Her sayfanın başlığı $_GET['action'] ile çağırılan sayfanın içinde yer alıyor. Bunu da ob (buffer) olayı ile hallettim. Menüde de şöyle bir şey var. Mesela $_GET['action'] == 'A' ise, A.template.php'yi çağırıp bu sayfada A olarak tanımlanmış $currentAction değişkenini menüdeki <li><a href="?action=a"> şeklinde tanımlanmış olan <li> etiketine class="active" eklemem gerek.

Yani adres index.php?action=a iken menüdeki href ?action=a olan menü butonunun <li> etiketi class="active" olarak tanımlanacak.

Ama menü kodları hep $_GET['action'] ile çağırılan sayfadan önce yazdırıldığı için $currentAction değişkeni hep boş gözüküyor.

Ayrıca "sistemini değiştir", "her sayfaya menüyü tek tek yaz" gibi önerilerde bulunmayın lütfen.