ساخت صفحه یک Vocabulary در دروپال با ماژول Views

صفحه واژگان دسته بندی در دروپال

سیستم دسته بندی دروپال (Taxonomy)

سیستم دسته بندی (taxonomy) یکی از ویژگی های منحصر به فرد سیستم مدیریت محتوای دروپال است. امکان تعریف چند نظام دسته بندی (vocabulary) به همراه ایجاد دسته بندی سلسله مراتبی و تو در تو (hierarchical)، در گذشته نه چندان دور، ویژگی بود که در همه سیستم های مدیریت محتوا به سادگی در دسترس قرار نداشت.

ولی همین سیستم دسته بندی قدرتمند برای بعضی از پروژه ها محدودیت هایی دارد. یکی از این محدودیت ها، نبودن صفحه ای برای یک vocabulary است که دسته های ذیل آن را نمایش بدهد. در دروپال برای هر محتوا (node) و برای هر دسته (term)، یک صفحه دارید که محتوای آنها را نمایش می دهد ولی برای vocabulary چنین امکانی در نظر گرفته نشده است.

صفحه مدیریت دسته بندی یک vocabulary در دروپال

ساخت صفحه vocabulary در دروپال

تصور کنید که در سایت دروپالی که روی آن کار می کنید، باید برای هر vocabulary یک صفحه داشته باشید که دسته هایی که دقیقا در ریشه آن قرار دارند را نمایش دهد. برای نمونه یک vocabulary با نام ماشین forums را در نظر بگیرید که term های درون آن به صورت سلسله مراتبی به قرار زیر هستند:

  • دروپال
    • ماژول ها
    • توسعه ماژول
    • پیاده سازی قالب
  • برنامه نویسی
    • پی اچ پی (php)
    • جاوا اسکریپت
  • طراحی وب
    • سی اس اس (css)
  • سرور
    • لینوکس
  • موتور های جستجو گر (سئو)
  • ابزارها و سرویس ها
    • ابزار ها
    • سرویس ها

صفحه vocabulary باید دسته های اصلی را نمایش دهد یعنی لیست زیر:

  • دروپال
  • برنامه نویسی
  • طراحی وب
  • سرور
  • موتور های جستجو گر (سئو)
  • ابزارها و سرویس ها

ساخت صفحه Vocabulary در دروپال با ماژول Views

برای درست کردن چنین صفحاتی می توانید از ماژول قدرتمند و انعطاف پذیر Views استفاده کنید. آنچه که با این ماژول درست می کنیم، یک view حاوی یک Page است. مسیری که برای این صفحه درست می کنیم باید حاوی یک متغیر باشد که اطلاعاتی درباره vocabulary که باید نمایش داده شود، به view می دهد. این متغیر باید شناسه یکتای vocabulary باشد.

شناسه Vocabulary در دروپال

هر vocabulary در دروپال حاوی دو شناسه یکتا است. یک شناسه عددی که Vocabulary ID نامیده می شود و دیگری یک شناسه لاتین است که نام ماشینی (Machine name) آن vocabulary می باشد. اگر با دروپال 6 کار می کنید، از Vocabulary ID استفاده می کنید و اگر دروپال 7 نصب کرده اید، امکان استفاده از هر دو شناسه را دارید. ولی توصیه می کنیم در صورتی که دروپال 7 دارید، شناسه Machine name را به کار ببرید.

در مثالی که از یک vocabulary بیان کردیم و در شکل زیر مشاهده می کنید، نام ماشین forums است.

صفحه فرم ویرایش اطلاعات یک vocabulary در دروپال

تعیین مسیر صفحه Vocabulary در Views

با توجه به آنچه که بیان شد مسیر زیر را برای این صفحه در نظر می گیریم:

taxonomy/vocabulary/%

علامت % در مسیر (Path)، نشان می دهد که در این قسمت از آدرس، یک آرگومان متغیر خواهیم داشت. بنابراین در صفحه View که می سازید این مسیر را قرار دهید.

تنظیم مسیر یک صفحه در views

افزودن آرگومان شناسه Vocabulary به View

در مرحله قبل، محل قرار گرفتن متغیر آدرس را مشخص کردیم. اکنون باید تعیین کنیم که این آرگومان چه چیزی است. یعنی باید برای View مشخص کنیم که این آرگومان ارسالی، نام ماشین یک Vocabulary است.

برای انجام این کار، باید یک Contextual Filter (یا Argument در دروپال 6) به View اضافه کنیم که از نوع Taxonomy vocabulary: Machine name باشد.

افزودن آرگومان آدرس از نوع نام ماشین vocabulary در views

در تنظیمات این Contextual Filter، طبق شکل زیر عمل می کنیم. برای اینکه نام Vocabulary مورد نظر در عنوان صفحه (title) استفاده شود باید گزینه عنوان را در اینجا بازنویسی کنیم و مقدار %1 که بیان می کند، مقدار نمایشی اولین آرگومان استفاده شود.

تنظیم آرگومان آدرس از نوع نام ماشین vocabulary در views

نمایش دسته های سطح اول Vocabulary در ماژول Views

نتیجه View که تا اینجا درست کرده ایم، نمایش تمام دسته های درون یک Vocabulary است. ولی هدف ما نمایش دسته های سطح اول Vocabulary است. بنابراین باید از دسته والد (Parent term) استفاده کنیم. طبیعتا برای term های سطح اول، هیچ والدی وجود ندارد. بنابراین باید طوری در View تنظیم کنیم که فقط دسته هایی که والد آنها دارای شناسه صفر است، نمایش داده شود.

برای انجام این کار می توانیم یک Contextual filter دیگر از نوع Taxonomy term: Parent term ایجاد کنیم.

افزودن یک آرگومان آدرس از نوع دسته والد در views

این آرگومان جدید، در آدرس صفحه وجود ندارد و کافی است یک مقدار ثابت که صفر است، برای آن در نظر بگیریم. به این صورت Views نیز انتظار ندارد که برای این آرگومان در آدرس صفحه مقداری پیدا کند.

تنظیم آرگومان آدرس از نوع دسته والد در views

تنها کار دیگری که باید انجام دهید، تعیین فیلد هایی است که باید نمایش داده شود و یا اگر معیارهای خاصی برای فیلتر و یا تنظیمات دیگر View مد نظر داشته باشید، را اضافه کنید. در نهایت می توانید View را ذخیره کنید.

مشاهده صفحه Vocabulary در سایت دروپالی

اکنون شما برای هر Vocabulary در سایت، یک صفحه دارید. می توانید آن را به صورت لینک به منو های سایت اضافه کنید. در نمونه ای که بررسی کردیم، برای مثال باید یک صفحه با آدرس

http://drupalika.org/taxonomy/vocabulary/forums

داشته باشید. برای هر Vocabulary دیگر کافی است نام ماشین آن Vocabulary را به جای forums بنویسید.

نمونه صفحه دسته های vocabulary در دروپالیکا

نظرات

ممنون از مطالب خوبتون دوست عزیز

تصویر admin
از اینکه از سایت دروپالیکا بازدید می کنید، تشکر می کنم و از لطف شما ممنونم

سلام
ممنون از مطالب خوبتون
آرزوی موفقیت روز افزون برای شما و سایتتون دارم
بدرود

آفا دهنم سرویس شده هنوز نتونستم یه مطالب دسته بندی شده در دروپال درست کنم -قبلا نیوک کار می کردم 2تا تیک زیر هر مطلبی که می خواستی اظافه کنی بود که مطالبو دسته بندی می کرد. این Taxonomy نمی دنم مشکلش چیه .

تصویر admin
آقا میثم! امکانات دسته بندی در دروپال خیلی خوب هست. در دروپال 7 شما باید ابتدا یک vocabulary بسازید. در آن دسته ها (term) ها را اضافه کنید. بعد در مدیریت فیلد های نوع محتوا یک فیلد term reference بسازید و به vocabulary ساخته شده، نسبت بدهید. به این صورت مطالب شما به راحتی دسته بندی پیدا می کنند.

یک تشکر می کنم از زحماتی که می کشین .

این مسیر add contrexual filters کجاست دفیفا
آموزش این قسمت "ساخت صفحه Vocabulary در دروپال با ماژول " خیلی گنگه . از اینجا به بعد هم که هیچی
کاش اون قسمتهای اصلی رو عکس می ذاشتین

تصویر admin
آقا میثم! در همان صفحه که view را دارید ویرایش می کنید، در ستون سوم (آخرین ستون) اولین قسمت مربوط به contextual filter هست. هر مقاله پیش نیازهای خاص خودش را دارد. این مطلب نیز بر اساس بعضی از پیش فرض ها نوشته شده است. ولی خوب قسمت کامنت های زیر مطالب برای همین موارد باز است که در صورت ابهام پرسش ها مطرح شود. لطفا ابهامات دیگری که به نظرتان می رسد را بیان کنید.

ممنونم از مقاله کامل و دقیقتون، خیلی مطلب مفیدی است.
لطفا در رابطه با ماژول view مطالب بیشتری بذارید.

تصویر admin
نسیم خانم! از نظر لطفی که دارید، تشکر می کنم. حتما مطالب بیشتری با محوریت views در سایت منتشر خواهم کرد.

تشکر از زحماتتتون
من تمام راه هارو درست رفتم یک مقاله ی جدید مربوط به والد آخر هم که دارم تو صفحه ی اول ویوز میاد ولی تو دسته ای که مربوط به اونه نمیاد
مثلا نسبت به دسته بندی عکس اول همین مقاله اگر یک مقاله رو والد لینوکس بزارم تو صفحه ی سرور که میرم هیچی نسیت. باید چیکار کنم ؟

تصویر admin
البته آقا میثم، این مقاله در مورد نمایش سر دسته های داخل یک vocabulary هست. یعنی view هم که می سازیم برای نوع Taxonomy term هست ولی حتما مطلب شما در مورد این است که چطور مطالب را نشان دهیم یعنی یک view که از جنس content است. برای مشکل شما، می توانید در view که می سازید، به جای اینکه از contextual filter ای به نام Has taxonomy term استفاده کنید باید از Hast taxonomy term depth استفاده کنید. به این صورت مطالب تا هر عمقی نمایش داده می شوند

تشکر از آموزش خوبتون

تصویر admin
مجتبی خان. ممنون از اظهار نظر شما

سلام ، ممنون بابت این مطلب ، خیلی مفید بود

من به یک مشکل برخورد کردم که وقتی به اون صفحه میره تو قسمت مسیر که اون بالاست سهتا لینک وجود داره که یکیش از لینک بودن خارج شده که معلومه تو اون صفحه هستم و یک لینک دیگه دو باره به همین صفحه وجود داره و یک لینک دیگه که میره از همه وکابولاری ها هر چی term وجود داره رو نمایش میده .
ممنون میشم اگه راهنمایی کنید

سلام لطفا کمک من چه جوری میتونم یه صفحه اینجوری توسایتم بسازم؟؟؟؟
http://www.iliatc.com/dorehha

ارسال نظر