CSS menu uygulamaları menulerin CSS dosyalarından veya HTML dosyaların menu eklnemesi veya menu silinmesi gibi özelliklerin maule yapılması bu tür menu uygulamalarını kullanışsız kılmaktadır.
Bir PHP bilgisi olanların yapabileceği yöntemlerle bu menu uygulamaları daha kullanışlı hale getirilebilir.
Yaprığım örnekte menu bilgileri nasıl girileceği konunumuz dışında olduğu için sadece mysql tablo bilgilerini veriyorum. İsteyenler sitelerinden bir menu aracılığıyla menu/sil/ekle için bölüm ekleyebilirler.
db name = test
---
MySQL TABLE bilgileri;
id int(11)AUTO_INCREMENT
name varchar(50)
link varchar(100)
parent int(11)
JQuery Accordion Menu iki şekilde çalışmaktadır. Üzerine gelinve açılan menu veya tıklanınca açılan menu şeklinde.
Bu özelliklerinin belirlendiği yer;
Tıklanınca açılan menu;
Üzerine gelince açılan menu
Bu özelliklerden birini tercih edebilirsiniz. Her iki özelliği test edebileceğiniz örnek menu;
http://www.zbahadir.com/test/accordion-menu/
Örnek MySQL bağlantı ve sorgulama kodu;
mysql_connect("localhost", "user", "pass") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
$sql = mysql_query("SELECT * FROM menu") or die(mysql_error());
while($row = mysql_fetch_array($sql))
{
$mh[$row[parent]][]=$row[id]."*".$row[name]."*".$row[link]."*".$row[parent];
}
?>
Menuleri ekrana yazan bölüm;
foreach($mh[0] as $ls)
{
$header=explode("*",$ls);
$say = count($mh[$header[0]]);
if($say> 0) //alt menu yoksa devam etme...
{
echo "<p class='menu_head'>".$header[1]."</p>";
echo "<div class='menu_body'>";
foreach ($mh[$header[0]] as $ls2)
{
$veri=explode("*",$ls2);
echo "<a href='$veri[2]'>".$veri[1]."</a>";
}
echo "</div>";
}
}
?>
Kodun kullanılabilir tam hali bu şekilde;
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Accordion Menu Using jQuery</title>
<script type="text/javascript" language="javascript" src="jquery.js"></script>
<script type="text/javascript">
<!--
//---------------------------------+
// Developed by Roshan Bhattarai
// Visit http://roshanbh.com.np for this script and more.
// This notice MUST stay intact for legal use
// --------------------------------->
$(document).ready(function()
{
//slides the element with class "menu_body" when mouse is over the paragraph
$("#menupanel p.menu_head").click(function()
{
$(this).css({backgroundImage:"url(down.png)"}).next("div.menu_body").slideDown(500).siblings("div.menu_body").slideUp("slow");
$(this).siblings().css({backgroundImage:"url(left.png)"});
});
});
</script>
<link rel="stylesheet" href="menu.css" type="text/css" />
</head>
<body>
<?php //menu bilgileri db'den alınır...
mysql_connect("localhost", "user", "pass") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
$sql = mysql_query("SELECT * FROM menu") or die(mysql_error());
while($row = mysql_fetch_array($sql))
{
$mh[$row[parent]][]=$row[id]."*".$row[name]."*".$row[link]."*".$row[parent];
}
?>
<div style='float:left; margin-left:20px;'>
<p><strong> Üzerine gelince açılan menu</strong></p>
<div id='menupanel' class='menu_list'>
<?php
foreach($mh[0] as $ls)
{
$header=explode("*",$ls);
$say = count($mh[$header[0]]);
if($say> 0) //alt menu yoksa devam etme...
{
echo "<p class='menu_head'>".$header[1]."</p>";
echo "<div class='menu_body'>";
foreach ($mh[$header[0]] as $ls2)
{
$veri=explode("*",$ls2);
echo "<a href='$veri[2]'>".$veri[1]."</a>";
}
echo "</div>";
}
}
?>
</div>
</div>
</body>
</html>
Dosyalarım tam ve paketlenmiş halini buradan indirebilirsiniz.



zbahadir çok teşekkür ederim ilgin için.
Benim yapmaya çalıştığım menu tarzı buna çok benziyor fakat alt menusude olmayabiliyor onuda çözersem tamamlamış olacağım. üzerinde çalışıp kodları tam kavradıktan sonra takıldığım bir yer olursa seni tekrar rahatsız ederim.
zbahadir slm
kodları biraz kurcaladım ve yapmak istediğim şeyi bi nevi yaptım fakat şurada takıldım linkleri vt dan çağırılan link yerine id değerini almasını istiyorum yani (makaleler.php?id=$veri[0]) bu şekilde alt başlıklı olanlarda sorun yok.sorun alt başlığı olmayan menülerde bunu nasıl çözebilirim?
kodun son hali aşağıdaki gibi
0) //alt menu yoksa devam etme...
{
echo "".$header[1]."";
echo "";
foreach ($mh[$header[0]] as $ls2)
{
$veri=explode("*",$ls2);
echo "".$veri[1]."";
}
echo "";
}
else
echo "".$header[1]."";
}
?>