[سوال] استفاده از پلاگین شی درختی در برنامه (tree object)

شروع موضوع توسط hrs192 ‏10 سپتامبر 2013 در انجمن برنامه Multimedia Builder

  1. hrs192

    hrs192 Member

    ارسال‌ها:
    70
    تشکر شده:
    18
    امتیاز دستاورد:
    6
    سلام دوستان
    من یک شی درختی ایجاد کردم به این صورت

    نام نویسنده (یا دسته بندیه کتب) > کتاب ها > جلد ها یا فصل ها > موضوعات

    میخوام وقتی کاربر روی آخرین طبقه زیر مجموعه ها (موضوعات) دابل کلیک میکنه یه لینک به آبجکت html بده و بروزر صفحه مربوط باز کنه
    در واقع باید برای همه موضوعات یک لینک تعریف کنم
    فقط توی نوشتن کد های، اسکریپت EventHandler در پلاگین شی درختی موتوجه نشدم باید چیکار کنم تا به هدفم برسم !!


    راستی اینکه در اسکریپت برای هر نود زیر مجموعه، یه لینک تعریف بشه درست هست ؟ راه استاندارد تری هم داره ؟
    چون تعداد موضوعات بسیار زیاده
    به نظر شما میشه کل دسته بندی شی درختی و لینکهای مربوط را وارد یک دیتا بیس کرد که بعدا اگر خواستیم یه کتاب به مجموعه اضافه کنیم راحتر باشیم؟
    به صورتی که دسته بندی درختیمون به صورت خودکار از روی دیتا بیس ساخته بشه و کار کنه!!!
     
    نوشته شده توسط hrs192 در ‏10 سپتامبر 2013
  2. nevercom

    nevercom کاربر متخصص انجمن مولتی مدیا بیلدر

    ارسال‌ها:
    2,906
    تشکر شده:
    6,919
    امتیاز دستاورد:
    113
    راه اصولیش همونی هست که گفتید، تو دیتابیس داده ها رو وارد کنید و ارتباطشون رو با هم مشخص کنید، که مثلاً بتونید تشخیص بدید کدوم آیتم ها زیر مجموعه ی یه آیتم دیگه هستن

    در یک حلقه باید داده ها رو از دیتابیس بخونید و به لیست درختی اضافه کنید.
    توضیحات انجام اینکار در حلقه هم در مثال پلاگین موجود هست

    اینطوری کد EventHandler هم ساده تر میشه چون مستقیم به دیتابیس ارتباطش میدید.
     
    نوشته شده توسط nevercom در ‏11 سپتامبر 2013
    MahmoodM30 از این پست تشکر کرده است.
  3. hrs192

    hrs192 Member

    ارسال‌ها:
    70
    تشکر شده:
    18
    امتیاز دستاورد:
    6
    اگر یه تیبل با 5 تا ستون بسازم بهتره یا برایه هر لول یه تیبل باشه که به هم ربط پیدا کنن ؟
    میشه بگین دستورات
    EventHandler چی میشه ؟
     
    آخرین ویرایش: ‏11 سپتامبر 2013
    نوشته شده توسط hrs192 در ‏11 سپتامبر 2013
  4. hrs192

    hrs192 Member

    ارسال‌ها:
    70
    تشکر شده:
    18
    امتیاز دستاورد:
    6
    کسی نیست ما را راهنمایی کنه تو این قضیه شی درختی و دیتابیس
     
    نوشته شده توسط hrs192 در ‏12 سپتامبر 2013
  5. nevercom

    nevercom کاربر متخصص انجمن مولتی مدیا بیلدر

    ارسال‌ها:
    2,906
    تشکر شده:
    6,919
    امتیاز دستاورد:
    113
    همه ی آیتم ها رو در یک جدول بزارید و با یه فیلد آیتم پدر رو مشخص کنید
    [TABLE="class: grid, width: 500, align: center"]
    [TR]
    [TD="align: center"]parent[/TD]
    [TD="align: center"]title[/TD]
    [TD="align: center"]id[/TD]
    [/TR]
    [TR]
    [TD="align: center"]0[/TD]
    [TD="align: center"]General[/TD]
    [TD="align: center"]1[/TD]
    [/TR]
    [TR]
    [TD="align: center"]1[/TD]
    [TD="align: center"]Option One[/TD]
    [TD="align: center"]2[/TD]
    [/TR]
    [TR]
    [TD="align: center"]1[/TD]
    [TD="align: center"]Option Two[/TD]
    [TD="align: center"]3[/TD]
    [/TR]
    [TR]
    [TD="align: center"]0[/TD]
    [TD="align: center"]Advanced[/TD]
    [TD="align: center"]4[/TD]
    [/TR]
    [/TABLE]
    آیتم هایی که parent برابر 0 هست، گره های اصلی هستن که زیر مجموعه ی هیچ عنصری نیستن
    آیتم هایی که parent بزرگتر از 0 هست، زیر مجموعه ی آیتمی هستن که id اون برابر مقدار فیلد parent هست
    الان تو این جدول، Option One و Option Two زیر مجموعه ی General هست و آیتم های General و Advanced خودشون گره های اصلی هستن.

    باید با یک حلقه دیتابیس رو پیمایش کنید و یکی یکی عناصر رو در محل مناسب اضافه کنید، برای همین نیاز هست که هنگام نوشتن Query برای دیتابیس نتایج رو بر اساس فیلد parent دسته بندی کنید (ORDER BY parent ASC)

    دقیقاً خاطرم نیست که در اسکریپت EventHandler برای هر آیتمی که انتخاب میشد چه پارامترهایی دریافت میشد، اما اطمینان دارم میشه در این اسکریپت هر آیتم رو با فیلد id اون در دیتابیس (که unique هست) مرتبط کرد.
     
    نوشته شده توسط nevercom در ‏13 سپتامبر 2013
    MahmoodM30، Prof.Khojasteh و hrs192 از این ارسال تشکر کرده اند.
  6. hrs192

    hrs192 Member

    ارسال‌ها:
    70
    تشکر شده:
    18
    امتیاز دستاورد:
    6
    خیلی خوب.. اینجوری میشه درخت را ساخت
    حالا لینک هایی که به نود های رده پایین جدول مربوط هستند و نباید در درخت نمایش داده بشند کجا ثبت میشن ؟
    همون لینک هایی که با کلیک روی نود فرستاده میشن به مرورگر!
     
    نوشته شده توسط hrs192 در ‏13 سپتامبر 2013
  7. nevercom

    nevercom کاربر متخصص انجمن مولتی مدیا بیلدر

    ارسال‌ها:
    2,906
    تشکر شده:
    6,919
    امتیاز دستاورد:
    113
    خب من به ازای هر رکورد سه تا فیلد قرار دادم (بخونید هر سطر سه تا ستون داره)، هر رکورد مربوط به یک آیتم هست. شما میتونید هرچندتا فیلد دیگه لازمه اضافه کنید
    مثلاً فیلد لینک رو اضافه کنید، فیلد title همونیه که نمایش داده میشه، فیلد parent برای تشخیص محل قرارگیری آیتم هست و نمایش داده نمیشه، فیلد id برای شناسایی هر رکورد هست و جایی نمایش داده نمیشه
     
    نوشته شده توسط nevercom در ‏13 سپتامبر 2013
    MahmoodM30، Prof.Khojasteh و hrs192 از این ارسال تشکر کرده اند.
  8. hrs192

    hrs192 Member

    ارسال‌ها:
    70
    تشکر شده:
    18
    امتیاز دستاورد:
    6
    فقط میمونه کد ها و اسکریپت هایی که باید در رابطه با شی درختیمون ایجاد بشه ..
    دارم روش فکر میکنم ولی فعلا به نتیجه ای نرسیدم ... دستورات اون حلقه را نمیدونم چطور باید بنویسم (تو کد نویسی خیلی ضعیفم)
    ایشالا آماده شد پروژه های نرم افزار ساخت دیتا بیس و نرم افزار اصلی را ارائه میکنم

    نمونه تیبل دیتا بیس

    [TABLE="class: cms_table_grid, width: 500, align: center"]
    [TR]
    [TD="align: center"]link[/TD]
    [TD="align: center"]parent[/TD]
    [TD="align: center"]title[/TD]
    [TD="align: center"]id[/TD]
    [/TR]
    [TR]
    [TD="align: center"]0[/TD]
    [TD="align: center"]0[/TD]
    [TD="align: center"]General[/TD]
    [TD="align: center"]1[/TD]
    [/TR]
    [TR]
    [TD="align: center"]0[/TD]
    [TD="align: center"]1[/TD]
    [TD="align: center"]General - part one[/TD]
    [TD="align: center"]2[/TD]
    [/TR]
    [TR]
    [TD="align: center"]http://www.yahoo.com[/TD]
    [TD="align: center"]2[/TD]
    [TD="align: center"]Option One[/TD]
    [TD="align: center"]3[/TD]
    [/TR]
    [TR]
    [TD="align: center"]http://www.google.com[/TD]
    [TD="align: center"]2[/TD]
    [TD="align: center"]Option Two[/TD]
    [TD="align: center"]4[/TD]
    [/TR]
    [TR]
    [TD="align: center"]0[/TD]
    [TD="align: center"]0[/TD]
    [TD="align: center"]Advanced[/TD]
    [TD="align: center"]5[/TD]
    [/TR]
    [/TABLE]
     
    نوشته شده توسط hrs192 در ‏13 سپتامبر 2013
    Prof.Khojasteh و nevercom از این پست تشکر کرده اند.
  9. Prof.Khojasteh

    Prof.Khojasteh New Member

    ارسال‌ها:
    3
    تشکر شده:
    1
    امتیاز دستاورد:
    1
    با سلام؛ البته لازم دونستم یه نکته ای رو اینجا اضافه کنم که این جدول برای تعداد داده های زیاد بهینه بودنش رو از دست میده .
    به خاطر اینکه هر کلید مشخص کننده زیر مجموعه به خود جدول بر می گرده , بهتره که برای دسترسی ها از دو تا جدول استفاده بشه . (آی دی پرنت در واقع داره به جدول خوده چیلد ها میره)
     
    نوشته شده توسط Prof.Khojasteh در ‏14 سپتامبر 2013
    hrs192 از این پست تشکر کرده است.

به اشتراک بگذارید