آموزش دروپال - قسمت ششم - افزونه ها

توسط amin, 7 تیر, 1392

سلام

این قسمت درباره افزونه ها در دروپال صحبت می کنیم. دروپالی که شما از سایت اصلی اون به نشانی www.Drupal.org دانلود می کنید به اصطلاح دروپال هسته یا core نامیده می شه. این هسته شامل یک سری ماژول ها یا افزونه هایی هست که برخی از اون ها هنگام نصب دروپال به صورت خودکار نصب می شوند مثلا افزونه node که به شما اجازه می ده بتوانید داخل سایت مطلب جدید ایجاد کنید (‌از هر نوعی )‌ و بعضی از افزونه ها هم به صورت خودکار نصب نمی شوند و ما خودمون بنابر نیاز اون ها را نصب می کنیم مثل افزونه  locale که به ما اجازه داد بتوانیم زبان فارسی را به سایتمون اضافه کنیم و سایر افزونه هایی که وجود دارند و شما می توانید خودتون یک امتحانی بکنید.

اما در خیلی از موارد این افزونه های هسته کافی هستند و برای راه اندازی یک سایت ساده مشکلی نخواهیم داشت ولی دروپال قدرتمند را انتخاب کرده ایم که کارهای ساده نکنیم با بهتره بگم فقط کارهای ساده نکنیم. مثلا اگر خواستیم امنیت یا SEO سایتمون رابالا ببریم در داخل هسته خیلی افزونه های خفنی برای این کار نداریم و فقط یک راه حل داریم که اون استفاده از افزونه های نوشته شده توسط کاربران دروپال از سراسر دنیاست که من بهش می گم افزونه های مشارکتی یا Contributed Modules.

برای دسترسی به افزونه های مشارکتی فقط و فقط به سایت اصلی دروپال که آدرسش را گفتم رجوع می کنید و از اون جا همون طور که از تصویر زیر مشخص است به قسمت ماژول ها می روید و به دنبال افزونه مورد نظر خود می گردید.

 

پس از نصب دروپال اگه به پوشه ی سایتمون سری بزنیم فایل های دروپال را می بینیم که همان هسته دروپال هستند. ما هرگونه تغییر را فقط و فقط داخل پوشه sites‌ اعمال می کنیم از اضافه کردن افزونه و قالب و کتابخانه (libraries)‌ گرفته تا نوشتن یک کد دلخواه به زبان PHP که همه و همه فقط داخل این پوشه قرار می گیرند. داخل این پوشه sites دو پوشه دیگر به نام all , default نیز وجود دارد که دلیل آن مربوط به مبحث مولتی سایت (multisite)‌ دروپال است که به صورت خلاصه اگر می خواهید در آینده تمامی سایت های شما از این ماژول یا قالب یا کتابخانه یا هرچیزی استفاده کنند آن را داخل پوشه all قرار دهید. پوشه default اختصاصی مربوط به سایت فعلی شماست.

به صورت خلاصه باید بگم که علت این که ما هسته را بدون تغییر رها می کنیم یک این هست که تغییر در این فایل ها باعث می شود که کل سایت ما تحت تاثیر قرار گرفته و کوچک ترین اشتباه و بی دقتی موجب بالا نیامدن سایت برای همیشه ! و یا ایجاد حفره های امنیتی بزرگی شود. علاوه بر آن پس از مدتی که نسخه بعدی دروپال منتشر شد برای مثال در حال حاضر که این متن را می نویسم آخرین نسخه 7.22 است ولی ممکن است فردا یا پس فردا هر موقعی نسخه 7.23 بیاید که یک ایراد امنیتی در دروپال را برطرف کرده است و حالا من باید هسته سایتم را با این نسخه جدید جایگزین کنم و به دلیل این که تمامی فعالیت های ما در داخل پوشه sites به راحتی تمامی پوشه ها و فایل های دیگر به جز همین پوشه sites‌ را با پوشه ها و فایل های نسخه 7.23 جایگزین می کنیم و نگران نیستیم که مواردی را از دست بدهیم ولی اگر در هسته تغییر داده باشیم پس از جایگذاری باید دقت کنیم تا دوباره تغییرات را اعمال کنیم که عملیاتی خسته کننده و پرزحمت است.

یکی از مواردی که نیاز به تغییر در هسته یا به اصطلاح تخصصی hacking core دروپال داریم زمانی است که قصد داشتیم ماژول calendar systems‌ را برای ایجاد تقویم شمسی نصب کنیم بود که باید هر بار که سایت را به روز می کنیم حواسمون باشد که دوباره این تغییرات را یا به صورت دستی و یا با اعمال patch آن انجام دهیم.

داخل پوشه all سه پوشه دیگر با نام های modules , themes , libraries ایجاد کنید (‌اگر وجود دارد ایجاد نکنید ) و تمامی قالب و افزونه و کتابخانه ها را داخل این پوشه ها ایجاد می کنیم.

برای نصب یک افزونه جدید در دروپال یک راه حل سنتی و یک راه حل جدید وجود دارد. راه حل سنتی این است که پس از دانلود افزونه آن را extract کرده و پوشه آن را که شامل نام خالص افزونه است مثلا views در داخل مسیر /sites/all/modules کپی کنیم و با رجوع به مسیر افزونه ها در داخل سایت می بینیم که این افزونه اضافه شده و می توانیم تیک کنار آن را برای نصب کردن بزنیم و از پایین صفحه ذخیره را انتخاب کنیم تا این افزونه نصب شود.

اما راه حل جدید این است که در همان صفحه افزونه ها در بالای صفحه یک لینک تحت عنوان افزودن افزونه یا install new module وجود دارد که پس از کلیک کردن روی آن به صفحه ای می روید که می توانید به دو روش عمل کنید:

  1. آدرس فایل افزونه مورد نظر از سایت دروپال را وارد کنید مثلا       https://ftp.drupal.org/files/projects/views-7.x-3.7.zip
  2. خودتان فایل افزونه را دانلود کرده و در قسمت مشخص شده آن را آپلود کنید.

با انجام یکی از این دو کار و اعمال دکمه نصب عملیات نصب انجام شده و خود سایت پوشه مورد نظر را پس از Extract داخل مسیر /sites/all/modules کپی می کند و دیگر به کپی کردن از طرف شما نیاز نیست.

در واقع این دو روش سنتی و جدید هیچ تفاوتی ندارند و در نهایت باید فایل افزونه در داخل مسیر ذکر شده کپی شود. البته برای روش جدید اگر از vps استفاده می کنید باید اکانت ftp خود را بدانید تا از طریق آن اقدام به کپی کردن اطلاعات کند ولی برای host sharing نیازی نیست و عملیات به خوبی انجام می شود.

دیدید که اضافه کردن ماژول خیلی کار راحتی است و فقط با چند کپی و کلیک ساده قابل انجام است و حتی اگر کار کردن با drush‌ را بلد باشید با یک خط کد ناقابل هم افزونه را دانلود و هم نصب می کنید!

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

دلیل آن هم این است که این افزونه ها توسط افرادی مثل من و شما نوشته شده و احتمال بروز خطا و اشتباه در آن نسبت به افزونه هایی که داخل هسته هستند و توسط هزاران نفر ایجاد شده اند خیلی خیلی خیلی بیش تر است.

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

 

حالا یک قدم کار را راحت می کنیم. چطور؟ خدمتتان می گویم!

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

در این صفحه به ترتیب اول زمانی که سایت به صورت خودکار به روزرسانی افزونه ها و هسته اصلی را چک کند مشخص می کنید که می تواند هر روز چک کند و یا هر هفته یکبار. و همین طور مشخص کنید که آیا افزونه هایی که شما داخل پوشه مورد نظر کپی کرده اید ولی هنوز نصب نکرده اید نیز کنترل شوند که برای این کار تیک گزینه بررسی به‌روزرسانی برای ماژو‌ل‌ها و پوسته‌های غیرفعال را فعال کنید و اگر مایل نیستید فعال نکنید که من خودم این کار را نمی کنم به دلیل این که تا سعی می کنم اگر افزونه ای را به پوشه مذکور منتقل می کنم حتما بخواهم آن را نصب کنم و بی خود آن را منتقل نکنم و بخواهم روزهای بعدی آن را نصب کنم.

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

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

برای حذف یک افزونه هم به صفحه ماژول ها یا افزونه ها بروید و تیک افزونه مورد نظر را بردارید و ذخیره کنید.

با برداشتن این تیک در برخی موارد هنوز اطلاعات این افزونه داخل پایگاه داده شما وجود دارد و پاک نشده که اگر در همین صفحه به سربرگ حذف مراجعه کنید برخی از افزونه ها این امکان را دارند که بتوانید تمامی این جداول و اطلاعات را نیز پاک کنید که با احتیاط با این مورد برخورد کنید و حتما قبل از آن یک نسخه پشتیبان از سایت خود بگیرید که می توانید برای گرفتن پشتیبان به مقاله ۱+۵ افزونه ضروری دروپال مراجعه کنید. من خودم تا به هیچ افزونه ای را حذف نکرده ام و فقط آن ها غیر فعال می کنم (‌برداشتن تیک آن ها ).

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

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

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

از بابت وقتی که گذاشتید ممنونم

موفق باشید

متن ساده

  • No HTML tags allowed.
  • نشانی‌های وب و پست الکتونیکی به صورت خودکار به پیوند‌ها تبدیل می‌شوند.
  • خطوط و پاراگراف‌ها بطور خودکار اعمال می‌شوند.

اکبري (تایید نشده)

10 سال 5 ماه قبل

سلام. باز هم مثل هميشه عالي و قابل تقديره

omid (تایید نشده)

10 سال 3 ماه قبل

تشکر از همت بلندتان.