mohan21
Member
سلام
من یه گالری تصویر با امکان N بخش و زیر مجموعه دارم ...
تونستم تابع های زیر رو برای نمایش بنویسم ...
اما نمیدانم تا چه حد دارای کارایی هست ...
تونستم تابع های زیر رو برای نمایش بنویسم ...
اما نمیدانم تا چه حد دارای کارایی هست ...
کسی میتونه راهنمایی کنه و اشکالات این روش رو بگه و برای اصلاح کمک کنه ؟؟؟
در وهله اول تابع segments_to_array فراخوانی و اطلاعات لازم بصورت آرایه در list قرار میگیره
PHP:
function segments_to_array ()
{
$select_segments_arr = " select * from segments " ;
$result_segments_arr = mysql_query ( $select_segments_arr ) ;
if ( $result_segments_arr )
{
$num_segments_arr = mysql_num_rows ( $result_segments_arr ) ;
if ( $num_segments_arr )
{
$counter__arr = 0 ;
while ( $rows_segments_arr = mysql_fetch_array ( $result_segments_arr ) )
{
$id__segments_ [$counter__arr] = $rows_segments_arr ['id'] ;
$name__segments_ [$counter__arr] = $rows_segments_arr ['name_fa'] ;
$under__segment_ [$counter__arr] = $rows_segments_arr ['under_segment'] ;
$counter__arr ++ ;
}
return array ( $id__segments_ , $name__segments_ , $under__segment_ ) ;
}
}
}
list ( $id__segments_array , $name__segments_array , $under__segment_array ) = segments_to_array () ;
بعد از این تابع نوبت به نمایش مجموعه منو و زیر مجموعه هاست:
PHP:
echo '
<div id="menu_open" align="right">
<ul>' ;
$n_ = count ( $id__segments_array ) ;
for ( $i_ = 0 ; $i_ < $n_ ; $i_ ++ )
{
if ( $under__segment_array [$i_] == 0 )
{
echo "
<li class=\"hascld\">
<a class=\"arrow_menu\">$name__segments_array[$i_]</a>" ;
create_under_menu ( $n_ , $i_ , $id__segments_array , $under__segment_array , $name__segments_array ) ;
echo "
</li>" ;
}
}
echo '
</ul>
</div>' ;
در قسمت اول مجموعه نمایش داده میشه و برای نمایش زیر مجموعه ها تابع create_under_menu فراخوانی میشه :
PHP:
function create_under_menu ( $n_ , $i_ , $id__segments_array , $under__segment_array , $name__segments_array )
{
$okay = 0 ;
for ( $j_ = 0 ; $j_ < $n_ ; $j_ ++ )
{
if ( $id__segments_array [$i_] == $under__segment_array [$j_] )
{
if ( $okay == 0 )
echo "
<ul>" ;
echo "
<li class=\"hascld\">
<a class=\"arrow_menu\">$name__segments_array[$j_]</a>" ;
create_under_menu ( $n_ , $j_ , $id__segments_array , $under__segment_array , $name__segments_array ) ;
echo "
</li>" ;
$okay = 1 ;
}
}
if ( $okay == 1 )
echo "
</ul>" ;
}
که این تابع بصورت بازگشتی عمل میکنه:
آخرین ویرایش: