برای یکی از سایتها یک منو باید می ساختم که تعداد نا محدود پدر و فرزند داشته باشد . یک کلاس ساختم که یک collection داشت از مدل خودش که وقتی از ToString برای کلاس اصلی استفاده می کرد می آمد به شکل بازگشتی تمام collection ها رو سیر می کرد و منو رو می ساخت .

گفتن که باید وقتی در یک صفحه ای می رویم در منو آن صفحه باز بماند . منو هم با javascript باز و بسته می شود . یک راهش استفاده از cookie در جاوااسکریپ بود که وقتی بیننده در منو می گردد cookie رو set کنه و وقتی می خواهد نشان دهد آن صفحه ای که باز است را باز نشان دهد . اما وقتی در یک browser دیگه ببیند دیگر آن صفحه باز نیست .

یک راه دیگه هم این بود که وقتی منو ساخته شد یک array از parent های یک ID بسازد و در کل منو گره هایی که id ش با parent یکی بود را نمایش دهد . که ساختن آن array می شد یک select تو در تو و پدر ِ sql رو در آورد .

آخر سر بهترین راه این شد که توی class یک property  ِ دیگه بزارم و وقتی برگ های منو رو می سازم اگر id صفحه با id ِ منو یکی بود آن property رو true کنم . وقتی می خواهم گره را به پدرش اضافه کنم collection فرزندانش رو چک کنم ، اگر یکی از آنها property ش true بود آن گره را هم true کنم و این بره برسه تا منوی اصلی .

OO همیشه هم مزخرف نیست !

Gravatarحميد
شنبه ساعت 08:52 , 29/11/1384
سلام من هم اين مشكل را دارم با اين تفاوت كه درخت من سه سطح دارد و در هر سطح آيدي پدر را نگه مي دارم حالا مي توانيد در مورد بدست آوردن آيدي پدربزرگ !!! در حالي كه آيدي سطح آخر را را داريم توضيح بدهيد؟ اگرQuery آن را بنويسيد ممنون مي شوم
Gravatarحامد بنايي
شنبه ساعت 17:51 , 29/11/1384
با SQL اين کار رو نکردم ، فقط استفاده از برنامه نويسي شي گرا بود . در اين هفته کد اين منو رو روي سايت قرار مي دم که بتوانيد استفاده کنيد .
نام :   
ايميل :      اين سايت از سيستم گراواتر استفاده می کند ، اگر در گراواتر دارای کد کاربری هستيد می توانيد از آن آدرس ايميل استفاده کنيد.  
وب سايت :   
ديدگاه :   
عدد زير را وارد کنيد :
  


  پيام شما بعد از بازبينی افزوده خواهد شد.