در این مجموعه مطالب، مستندات توسعه افزونه های جوملا را به زبان فارسی منتشر خواهیم کرد و با نکات فنی درباره توسعه افزونه های جوملا آشنا می شوید. توجه داشته باشید که در این مجموعه آموزش ها باید با زبان های php و html و css و java script آشنا باشید، زیرا که ما صرفا درباره مستندات آموزشی توسعه افزونه های جوملا صحبت میکنیم و آشنایی با زبانهای مذکور، پیش نیاز استفاده از این آموزش ها هست.

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال

قابلیت web assets‌در جوملا 4 اضافه شده است و به توسعه دهندگان و طراحان افزونه های جوملا این امکان را می دهد که از طریق ایجاد وابستگی بین فایل های CSS و JS مختلف، تنها فایل های مورد نیاز را در رندر نهایی صفحه بارگذاری کنند. این کار علاوه بر کاهش ریکوئست های سرور، از بارگذاری فایل های اضافه که در آن صفحه مورد نیاز نیست جلوگیریکرده و سرعت بارگذاری سایت رو بهبود می بخشد.

در ادامه ترجمه کامل کار با web assets را که از سایت رسمی جوملا جمعآوری شده خواهید خواند. توجه داشته باشید که این مقاله در چند نوبت و به مرور تکمیل و ویرایش می شود.

امتیاز کاربران

ستاره فعالستاره فعالستاره فعالستاره فعالستاره فعال

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

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال

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

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

برای اینکار معمولا مقدار فیلد کلاس صفحه آیتم منو ( مثلا صفحه اول ) را داخل body بصورت class یا id اضافه می کنند تا وقتی کاربر وارد آن صفحه میشود، استایل متناسب با آن صفحه تغییر کند.

کد زیر رو باید در index قالب قرار دهید

// Detecting pageclass_sfx
$menu = $app->getMenu()->getActive();
$pageclass = '';
if (is_object($menu))
$pageclass = $menu->params->get('pageclass_sfx');

و بعد متغیر pageclass رو بجای مقدار class یا  id ی تگ body قرار میدی. تومثال زیر من این متغیر رو برای id در نظر گرفتم:

<body id="<?php echo $pageclass ? htmlspecialchars($pageclass) : 'default'; ?>" class="clearfix">

با توجه به کدهای بالا اگر در تنظیمات آیتم هر منویی، در فیلد کلاس صفحه مقداری وارد شده باشه اون مقدار رو به عنوان مقدار صفت id داخل تگ body نمایش میده.

بعد تو فایل css برای منو یه همچنین چیزی می نویسی:

nav{
background-color:rgba(0,0,0,0.4);
}

امیدوارم php و css بلد باشی.