دروپال 7

مقدمه ای بر کلاس EntityFieldQuery دروپال برای پرس و جو از entity ها و فیلد ها

دروپال 7 یک API جدید به نام EntityFieldQuery ایجاد کرده است. API فوق یک کلاس است که به کمک آن می توان به سهولت و سرعت زیاد، از کلیه ی entity ها (از جمله node ها) و فیلد های موجود درسایت گزارش گیری کرد.

لایه ی انتزاع پایگاه داده (Database abstraction layer) دروپال 7 خیلی غنی تر از نسخه های پیشین دروپال است. با این حال، بازهم برای کار با پایگاه داده در دروپال 7 به گونه ای نیاز به ایجاد query های SQL می باشد.

اما کلاس EntityFieldQuery کمک می کند که بدون داشتن دانش SQL از فیلدها و entity ها query های گوناگون بگیریم.

باز هم مهاجرت از دروپال 6 به دروپال 7

مدتی بعد از مهاجرت وبلاگ خودم به دروپال 7 ، این بار سایت www.jahizieh.net را نیز به دروپال 7 منتقل کردم
این بار کار به مراتب دشوار تر بود چون سایت فوق دارای تعداد زیادی محصول بود و در ضمن من میخواستم کلا طراحی سایت رو عوض کنم و محصولات رو به ماژول commerce منقل کنم
کد زیر حاصل 24 ساعت تلاش مداوم من است که می تواند برای دیگران هم جنبه‌ی آموزشی داشته باشد.

مجددا عرض می کنم که کد ذیل، فقط برای سایت jahizieh.net کاربرد داشته و برای استفاده برای سایت های دیگر، لازم است که در آن تغییرات لازم انجام گیرد.
این کد در واقع تغییر یافته‌ی کدهایی است که برای وبلاگ خودم نوشته بودم.

پیغام پاورقی در دروپال 7

در دروپال 6 یک صفحه وجود دارد به نام Site information (یا اطلاعات سایت) که در آن برخی تنظیمات سایت از جمله نام سایت، شعار سایت و ... را پیکربندی می کنیم. همچنین در این صفحه، گزینه ای به نام پیغام پاورقی وجود دارد.
متنی که به عنوان پیغام پاورقی انتخاب می کنیم، در پایین سایت نمایش داده می شود. طرز کار آن هم به این صورت است که یک متغیر theme به نام $footer_message وجود دارد که پیغام پاورقی را در خود نگاه می دارد. پوسته ها هم در فایل page.tpl.php متغیر مذبور را echo می کنند.

این ویژگی "پیغام پاورقی" در دروپال 7 وجود ندارد. شاید دلیل آن این باشد که طراحان دروپال 7 با خود فکر کرده اند که بهتر است برای پیغام پاورقی، یک بلوک سفارشی جدید ایجاد کنیم و ان را در یکی از region هایی که در پایین سایت وجود دارد قرار دهیم. به این ترتیب انعطاف پذیری و همه گیر بودن سیستم بیشتر می شود.
این طرز فکر کاملا صحیح است و بهترین روش برای نمایش پیغام پاورقی هم همین است که یک بلوک سفارشی ایجاد کنیم.
با این همه، بعضی ها، از جمله من، به ویژگی پیغام پاورقی دروپال 6 علاقه داریم و از آن بیشتر خوشمان می آید!

اما مسئله ی مهم تری هم وجود دارد و آن این است که با حذف ویژگی پیغام پاورقی در دروپال 7، متغیر theme به نام $footer_message هم حذف شده و دیگر وجود ندارد. به این ترتیب، پوسته هایی که برای دروپال 6 نوشته شده اند، هنگام تبدیل به دروپال 7، باید این متغیر را از فایل page.tpl.php حذف کنند. کار سختی نیست، ولی خوب اگر این کار را نکنیم، راحت تریم!!
ماژول footer_message برای همین منظور نوشته شده است.

این ماژول را بررسی کنید:
http://drupal.org/project/footer_message

این ماژول سبب می شود که ویژگی مشابه دروپال 6، در دروپال 7 به وجود بیاید و متغیر فوق الذکر را هم ایجاد می کند و در اختیار پوسته ها قرار می دهد.
با این که از نظر من، اصلا این کار، کار سختی نیست، ولی از این ماژول در این سایت استفاده کردم!

مهاجرت به دروپال 7

بسم الله الرحمن الرحیم
بالاخره، ما هم تصمیم گرفتیم که دروپال 6 را کنار بگذاریم. اکنون وقت آن است که به دروپال 7 مهاجرت کنیم.
کم کم دارم تلاش می کنم تا با ویژگی های جدید دروپال 7 آشنا شوم و معلومات قبلی خود در مورد دروپال 6 را به فراموشی بسپارم!
اولین اقدام هم در این رستا، انتقال وبلاگ خودم از دروپال 6 به دروپال 7 بود. در حال حاضر این سایت از دروپال 7 استفاده می کند. از آن جایی که برای اولین بار بود که یک سایت نسبتا پر محتوا را از نسخه ی 6 به 7 Upgrade می کردم، کمی کار طولانی شد و کمی هم دشوار بود!
در حال حاضر تمامی مطالب سایت به Drupal7 منتقل شده اند، اما هنوز پیکربندی سایت و تنظیمات آن کامل نیست و بعلاوه پوسته ی قبلی سایت را هم دارم به دروپال 7 تبدیل می کنم و به زودی سایت به شکل قبلی خود در خواهد آمد!
برای دوستانی که تا حالا با دروپال کار نکرده اند، باید توضیح دهم که مهاجرت بین نسخه های Major دروپال چندان کار ساده ای نیست. یعنی بر خلاف برخی از CMS های دیگر، آپگرید کردن دروپال می تواند حتی در برخی شرایط بسیار بسیار مشکل باشد. زیرا میزان تفاوت هایی که بین دو نسخه ی 6 و 7 دروپال وجود دارد بسیار زیاد است.
به ویژه برای سایتی که (مثل همین سایت) بیش از 100 تا ماژول فعال دارد، مهاجرت کردن قدری مشکل می شود. سایت های تجاری و بزرگتر که گاهی حدود 400 ماژول فعال دارند کار پر زحمتی خواهد بود.
در ادامه شرحی از تجربیاتی که کسب کردم خواهم نوشت.

اشتراک در RSS - دروپال 7