همه چیز درباره‌ی panels

این مقاله‌ی مختصر اندر باب فوائد ماژول panels است!

در خصوص panel و mini panel باید بگویم که در کل با نصب کردن ماژول panels در دروپال، سه جور پنل متفاوت ایجاد می شود (که البته هرکدام ماژول خاص خود را دارند. شما می توانید همه‌ی ماژول های مربوط به panels را فعال کنید)

  • panel node: یک نوع محتوا است مانند نوع های محتوای دیگر. شما یک مطلب جدید (یا پست جدید) در سایت ایجاد می کنید و این پست جدید، این مزیت را دارد که می تواند دارای قابلیت panel باشد و دارای layout و سطر و ستون باشد و سایر ویژگی های ابتدایی panels نیز در آن فعال است.
    از طرفی نوع محتوای panel node مانند نوع های محتوای دیگر، ویژگی های node ها را دارد. یعنی می تواند دارای دیدگاه (کامنت) ، دسته بندی (taxonomy) و نسخه (revision) باشد. و همچنین هر panel node دارای author و تاریخ ارسال و ... است
  • panel page: یک صفحه‌ی اختصاصی پنل است که دارای آدرس URL ثابت است و دیگر یک node به حساب نمی‌آید. بلکه یک آیتم menu به حساب می آید.
    شاید در دید اول panel node با panel page یکی به نظر برسد، ولی در واقع این طور نیست. زیرا panel node در اصل یک node است ولی panel page دیگر node نیست.
    یکی از دلایلی که ممکن است بخواهید از panel page استفاده کنید، این است که بخواهید صفحات دروپال را Override کنید. مثلا ممکن است بخواهید صفحه‌ی نمایش خبر ها در سایت را استایل بدهید.
    برای این منظور می توانید یک panel page درست کنید و آدرس آن را برابر node/% قرار دهید و در Selection Criteria  شرط کنید که فقط برای node های از نوع news فعال شود و ... (به این نوع پنل، node template می گویند)
    کابرد اصلی panel page در ساختن صفحات ثابت و ویژه است که فقط در سایت یکی از آن ها وجود دارد. مثلا صفحه‌ی درباره‌ی ما را می توانید با panel page درست کنید.
    اما کاربر panel node بیشتر می تواند در مواردی باشد که کاربران سایت می خواهند محتواهای پنل گونه ایجاد کنند.
    توجه: این ها فقط تعبیر من است. کاربر ماژول panels بسیار گسترده تر و مفصل تر از این موارد است و باید در خصوص این ماژول یک کتاب 500 صفحه ای مطالعه کنید!
  • mini panel: مینی پنل هم مانند panel page است با این تفاوت که دیگر صفحه ایجاد نمیکند! بلکه بلوک ایجاد می کند. یعنی mini panel دقیقا همان panel page است که به جای page بلوک درست می کند و در صفحه ی مدیریت block ها واقع در آدرس admin/build/block باید آن را در یکی از region ها قرار دهید.
    همچنین mini panel ها از آن جایی که block هستند، می توانند خودشان در داخل یک panel دیگر قرار گیرند. و به خاطر همین ویژگی است که به آن ها mini panel میگوییم: mini panel را می توان در درون panel گذاشت
    توجه کنید که واسط مدیریتی mini panel کمی متفاوت است و باید دقت بیشتری کنید. آخرین باری که من با mini panel کار کردم (چند هفته پیش) کمی گیج شدم! موقع کار با mini panel باید به لینک ها‌ی کوچک بالای صفحه که به چشم نمی‌آیند توجه کنید و روی آن‌ها کلیک کنید.

باز هم تاکید می‌کنم که امکانات panels بسیار زیاد و پیشرفته است. و به هیچ عنوان من در این مقاله نمیتوانم همه‌ی امکانات آن را ذکر کنم.

 ماژول panels در واقع یک جایگزین پیشرفته برای theming و فایل های template است. یعنی شما می توانید برخی از فایل های .tpl.php را با panels جایگزین کنید.

کاربرد عالی panels در Override کردن صفحات دروپال است که جای فایل tpl.php را میگیرد. ولی طبعا این ویژگی مثبت، به قیمت کند شدن سایت شما تمام می‌شود! زیرا همواره خواندن یک فایل tpl.php بسیار سریع تر از لود کردن panel با همه‌ ویژگی هایش از درون database است.

که البته panels برای این منظور هم راه حلی نسبتا مناسب دارد. هر pane ای قابلیت Caching دارد که می تواند سرعت لود panel را به طور قابل توجه ای افزایش دهد.

لطفا سوالات خودتان را بپرسید و مشکلات مقاله را مطرح کنید تا این نوشته پربارتر شود.

دیدگاه‌ها

فرق panel با views چی هست؟ من همیشه از views استفاده می‌کنم و لازم نشده تا حالا احتیاج به panel داشته باشم، مورد خاصی هست که مجبور شی حتماً ازش استفاده کنی؟

panel و views ربط زیادی به هم ندارند و تقریبا می توانم بگویم که هیچ ربطی ندارند.

views برای گزارش گیری از دیتابیس است و به کمک آن می‌توانید بلوک و یا page و همچنین rss feed و ... از محتوای سایتتان ایجاد کنید.

اما panels در حالت ساده، ابزاری است برای مشخص کردن layout صفحات. panels دارای یک محیط گرافیکی Drag and drop است که می‌توان یک طرح را با سطر ها و ستون ها طراحی کرد. و سپس می‌توانید بلاک ها و همچنین view ها را داخل panel قرار دهید و یک صفحه سفارشی درست کنید.

panels برای ساخت صفحات سفارشی و همچنین برای Override کردن سایر صفحات موجود به کار می‌رود.

ماژول mini panel هم همان کار panels را انجام می‌دهد، با این تفاوت که به جای ساخت page، بلاک ایجاد می‌کند.

I love Drupal

ممنون به خاطر جوابتون، کلاً منظورم به این بود که چیزی رو که بخوای از panel استفاده کنی رو بدون استفاده از اون هم با گذاشتن block و غیره توی region ها میتونی بسازی، نهایتاً هم می‌شه یه صفحه رو مثل صفحه products به طور مجزا theme کرد (products-page.tpl.php) حالا باز هم اگه سوال قبل ام رو تکرار کنم، اینکه مورد خاصی هست که حتماً برای انجام اونکار نیاز به panel باشه؟

بله. من هم موافقم. بیشتر کارها رو میشه با پوسته انجام داد. panels هم در واقع یک جور ابزار برای تسهیل این کارها است. panels بیشتر به درد کسانی می‌خورد که نمی‌خواهند کدنویسی کنند.

مثلا به جای ساخت فایل node--page.tpl.php میشود با ماژول panels همین کار رو انجام داد. البته استفاده از panels به جای کدنویسی مسلما کند تر اجرا خواهد شد.

در ضمن panels یک سری امکانات بیشتر در اختیار قرار می‌دهد مانند سهولت ویرایش layout صفحه و ... که باید عملا امتحان کنید.

ولی گمان نمی‌کنم که کاری وجود داشته باشد که تنها راه حل آن panels باشد.

I love Drupal

سلام ممنون از مقاله خوبتون من تازه خوندن دروپال رو شروع کردم خود دروپال و ماژول های panel و view رم نصب کردم ولی اصلا نمی دونم چجوری تو برنامه باهاشون میشه کار کرد لطفا یکم توضیح بدین یا منبع خوب معرفی کنید من هر چی ام سرچ می کنم آموزش کامل پیدا نمی کنم ممنون

منبع خوب برای panels و views این کتاب است:
Drupal building blocks
البته این کتاب برای دروپال 6 نوشته شده.
برای دروپال 7 باید خودتان این قدر باهاش کار کنید و به تدریج یاد بگیرید. منبع خاصی هم نداره توی اینترنت سرچ کنید. فیلم های آموزشی هم به زبان انگلیسی براش یافت میشه.
موفق باشید

I love Drupal

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

ُسلام
یک سوال داشتم از خدمتتون
من از تم بارتیک برای ساخت یک سایت استفاده می کنم و میخوام پایین ضفحه به جای 4 بلاک، 3 بلاک داشته باشم در واقع میخوام یکی از بلاک ها کلا حذف بشه و فضای آزاد شده بین سه بلاک دیگه تقسیم بشه میشه این کار رو با پنل انجام داد؟ راه حل دیگه ای هم داره من کلا فضای اختصاصی مربوط به بلاک چهارم رو با پاک کردن سطر regions[footer_forthcolumn] = Footer forth column
ولی الان فضاش خالی مونده و بین بقیه تقسیم نشده
یک سوال دیگه اینکه من یک صفحه دارم که داخل اون عکس و توضیحات هست وقتی عکس ابعادش بزرگ باشه از محدوده ی وسط صفحه تجاوز میکنه ولی من نمیخوام اینطور بشه میخوام متن در محدوده بلوک content نمایش داده بشه از طرفی نمیخوام برای این متن ساده بلوک تعریف کنم. در واقع اگر کنار صفحه بلاک هایی در سمت راست و چپ داشته باشم عکس متن که باید در بلاک وسط قرار بگیره به بلاک های کناری هم تجاوز میکنه تصور کردم باید برای صفحه یک استایل تعریف کنم و از پنل استفاده کنم. درست فکر میکنم؟
لطفا راهنمایی کنید. من تا حالا از ماژول پنل استفاده نکردم و دیدی نسبت بهش ندارم

سلام
برای تقسیم فضای چهار بلاک، از کد css زیر استفاده کنید:

.region-footer-firstcolumn,
.region-footer-secondcolumn,
.region-footer-thirdcolumn,
.region-footer-fourthcolumn {
  width: 299px !important;
}

با ماژول panels هم میشه شبیه این کار رو انجام داد. ولی وقتی روش ساده تر داره، چرا از روش های سخت استفاده کنیم؟؟ :)

I love Drupal

در خصوص سوال دوم تان، هم باید از css استفاده کنید. این قضیه ربطی به ماژول panels نداره.
استفاده از panels برای این کارها، فقط موضوع رو پیچیده تر می کنه. چون مجددا باید css بنویسید با این تفاوت که css پیچیده تر خواهد شد!
ضمنا، من برای این که بتوانم کد css آن را بنویسم باید صفحه را ببینم.

I love Drupal

ممنون از پاسختون
در رابطه با جواب دوم چون هنوز سایت رو آپلود نکردم نمیتونم صفحش رو نشون بدم عکسش رو میفرستم
یک صفحه ی معمولی هست. چیز خاصی نیست منتها ابتدا عکسش رو بزرگ گذاشته بودم و به همین دلیل از فضای وسط به قسمت های مربوط به بلوک های sidebar تجاوز میکرد.
دو سوال دیگه:
من میخوام در تم بارتیک عرض بلوک highlighted رو بیشتر کنم به طوری که دقیقا مثل بلوک featured بشه. اما هر چه قدر عرض این ناحیه رو افزایش میدم این افزایش فقط از یک طرف انجام میشه. در واقع قسمت سمت راستی بلوک اصلا تغییری نمیکنه و به سمت راست حرکت نمیکنه در عوض قسمت سمت چپی اضافه میشه
و سوال دوم اینکه:
در همون تم بارتیک در بلوک featured یک اسلایدشو قرار دادم چه تنظیماتی باید انجام داد که تصاویر slideshow دقیقا در مرکز صفحه قرار بگیرند؟
ممنون میشم اگر راهنمایی کنید.

ممنون از پاسختون
من دو تا سوال دیگه هم داشتم:
اول اینکه
داخل تم بارتیک میخوام طول بلوک highlighted رو افزایش بدم منتها هر چقدر width اون رو زیاد میکنم فقط از سمت چپ اضافه میشه و سمت راست بلوک ثابته. با استفاده از margine هم تنظیم کردم که وسط چین باشه ولی بازم درست نشد. در واقع میخوام بلوک highlighted مثل بلوک featuredبشه
سوال دوم اینکه
یک اسلایدشو از تصاویر رو داخل بلوک featured قرار دادم چکار میشه کرد که این تصاویر دقیقا وسط بلوک قرار بگیرند؟

بلاک highlighted کلا همینطوری هست. چون که کنار sidebar قرار گرفته نه بالای آن. به همین خاطر، همیشه از کنار به نوار کناری محدود میشه.
شما باید یک region جدید در theme تان ایجاد کنید. روش استاندارد و صحیح برای این کار، این است که تم bartik را ویرایش نکنید. در عوض یک تم جدید درست کنید که از bartik به عنوان base theme استفاده کند و بلاک جدید تان را داخل آن تعریف کنید.
در خصوص سوال بعدی هم باید عرض کنم که بلاک featured به خودی خود وسط چین است و نیازی نیست کار خاصی بکنید. با این حال اگر در سایت شما، وسط چین نیست، ممکن است مشکلی در css باشد و تا آن را نبینم، نمی توانم راجع به آن اظهار نظر کنم.
در خصوص سوال قبلی هم تصویر را ارسال نکردید. بعلاوه باید حتما خوب صفحه ی وب را ببینم تا بتوانم آن را debug کنم. تصویر ممکن است کافی نباشد.
موفق باشید.

I love Drupal

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

کلا من میخوام یه صفحه داشته باشم که یک مجموعه ی 30 تایی از فایلهای pdf با لینک دانلودشون موجود باشند. عاقلانه هست که یک view از روی فیلد فایل نوع محتوایی که دارم بسازم که به این ترتیب فایلای پی دی اف با لینک دانلودشون موجود باشند. من میخواستم این کار رو با کد html و تگ a انجام بدم که الان هر کاری میکنم لینکی تولید نمیشه
لطفا راهنمایی کنید
ممنون

من ماژول پنل را نصب کردم و با آن یک node ساختم و panel layout هم تنظیم نمودم. ولی در قسمت panel content که وارد می شوم جهت افزودن محتوا به مشکل خوردم و با کلیک روی اضافه کردن محتوا هیچ گزینه ای نمایش داده نمی شود.

سلام
من از تم zen برای قالب سایتم استفاده کردم.و تمام تنظیمات رو انجام دادم.
کدوم فایل های css رو باید تغییر بدم تا style سایتم به اون چیزی که بخوام در بیاد؟

و سئوال دوم من این هست که وقتی یک پنل ایجاد کنیم و بلاکها رو در اون جا دادیم چطور میشه از حالت پنل خارجش کنم و به صورت ظاهر اولش در بیارم.
با تشکر

راهنمای تم Zen در فایل README.txt موجود می باشد. از آن جایی که این راهنما، بسیار کامل و عالی است، توصیه میکنم حتما همان را مطالعه کنید.
2 - متاسفانه روش ساده ای وجود نداره. باید خودتان pane های مورد استفاده رو لیست کنید و کد نویسی کنید.

I love Drupal

افزودن دیدگاه جدید