همانطور که میدانید آخرین سری سیستم مدیریت محتوای جوملا به تازگی منتشر شده است. (در زمان انتشار این مقاله!) بعد از به روزرسانی هسته جوملا به ورژن 4.0 برخی از افزونه ها اعم از پلاگین ، ماژول یا کامپوننت ها ممکن است به خطاهایی مواجه شوند درصورتی که اگر قبل ازین سایت شما روی سری 3.9 فعال بوده باشد مطمئنا خطایی نداشتید.
یکی از علت های اصلی بروز این دست خطاها تغییراتی ست که هسته جوملا از نظر توابع و کلاس بندی های فریم ورک خود داشته است. به همین جهت نیازمند این هستیم که تغییراتی را در افزونه های دارای مشکل ایجاد نماییم.
حالا با یکی از خطاهای شایع در این زمینه آشنا میشویم.
ارور زیر یک ارور شایع در جوملای 4.0 است که با یک راهکار ساده این خطا را مرتفع خواهیم کرد.
0 Call to undefined method Joomla\CMS\Application\AdministratorApplication::isAdmin
در ابتدا دیباگ جوملا را فعال کنید تا افزونه ای که این خطا را داده مشخص شود. به طور مثال همانطور که در تصویر مشاهده میکنید خطای ما از جانب پلاگینی به نام afzsocial و فایل afzsocial.php و خط 18 صادر شده است.
1 |
JROOT/plugins/system/afzsocial/afzsocial.php:18 |
بر این اساس به مسیر موردنظر میریم. در اینجا با کدزیر مواجه میشیم:
1 2 3 4 |
function onAfterRoute(){ $app = JFactory::getApplication(); if ($app->isAdmin()) return true; |
در اینجا کافی ست که عبارت را به صورت زیر تبدیل کنیم.
1 2 3 4 5 |
function onAfterRoute(){ $app = Joomla\CMS\Factory::getApplication(); if ($app->getName() == 'administrator') //since 3.2 echo 'Client is administrator'; return true; |
با این ترفند مشکل مرتفع خواهد شد.