بازسازی تصاویر cache کامپوننت K2 در جوملا
سیستم مدیریت محتوای جوملا یکی از ابزارهای محبوب در طراحی سایت به شمار میرود. کامپوننت K2 نیز مشهورترین ابزار برای افزایش امکانات محتوایی جوملا به شمار میرود.
تصاویر آپلود شده در کامپوننت K2، به صورت پیشفرض در مسیر media/k2/items/src نگهداری میشوند. به ازای هر تصویر آپلود شده، چند نسخه از تصویر در اندازههای مختلف نیز به صورت خودکار در مسیر فوق و زیرشاخهی cache ایجاد میشوند.
این تصاویر در بخشهای مختلف مانند نمایش دستهبندی یا به عنوان تصویر بندانگشتی قابل استفاده میباشند. به دلایل مختلف از جمله کاهش حجم فایلهای سیستم پیش از انتقال، انجام تغییرات دستی روی فایلهای آپلود شده یا دلایل دیگر، ممکن است بخواهید تصاویری که قبلا آپلود کردهاید را تغییر دهید یا حذف نمایید. با تغییر دادن تصاویر آپلود شده در مسیر media/k2/items/src اثری روی خروجی سایت نخواهد داشت زیرا تصاویر مورد استفاده اغلب از مسیر cache خوانده میشوند. همچنین حذف فایلهای موجود در مسیر cache عملکرد سایت را مختل خواهد نمود.
اسکریپت بازسازی تصاویر cache
در ادامه اسکریپتی را به شما معرفی خواهیم کرد که کار بازسازی تصاویر cache از روی تصاویر اصلی src را به انجام میرساند.
با استفاده از اسکریپت موجود در نشانی https://github.com/rdeutz/rebuildK2imageCache میتوانید، تصاویر cache را مجددا از روی تصاویر src تولید نمایید.
کافی است فایل rebuild.php را از نشانی فوق دانلود و در مسیر media/k2/items آپلود نمایید. سپس این فایل را از طریق خط فرمان سرور یا با مرورگر اجرا نمایید.
اگر قصد دارید، اجرای اسکریپت فوق را از طریق مرورگر به انجام برسانید، ممکن است به دلیل طولانی شدن فرآیند، پس از تبدیل تعدادی از فایلها عملیات متوقف شود. برای رفع مشکل فوق و در زمانی که دسترسی کافی به خط فرمان سرور برای شما مقدر نیست، فایل فوق را باز کنید و در حدود خط ۸۰ فایل فوق، عبارت زیر را بیابید:
1 |
if (buildImage($sourcefile, $targetfile, $value) !== true) |
سپس کد زیر را در بالای دستور فوق درج نمایید:
1 |
if( file_exists( $targetfile ) ) continue; |
با اضافه کردن دستور بالا، اسکریپت تنها فایلهایی را بازسازی میکند که در شاخهی مقصد موجود نباشند. بنابراین لازم است، پیش از اجرای اسکریپت، تمامی فایلهای موجود در مسیر cache را حذف نمایید.
با هر بار اجرای اسکریپت فوق در مرورگر، تعدادی از فایلهای ناموجود بازسازی میشوند. اجرای اسکریپت را به صورت مکرر آنقدر ادامه دهید تا تمامی فایلهای cache ساخته شوند و اجرای اسکریپت با سرعت به پایان برسد.
هر بار اجرای اسکریپت فوق، نام فایلهایی که در ایجاد شدهاند را در مرورگر مشاهده خواهید نمود.