mohammad-hossein-miri
Mohammad Hossein Miri

درد و دل های یک برنامه نویس - وب سایت شخصی محمد حسین میری

بیشترین دانلودها
کامپوننت فروش کارت شارژ و پین کد 3072
سیستم رزرواسیون جوملا 1129
ماژول ورود به سایت جوملا 3 599
ماژول گلوبال نیوز جوملا 3 - قابلیت صفحه بندی 402
ماژول اسلایدر آکاردئونی - جوملا 2.5 216

برنامه نویسی جوملا
آموزش Override در قالب های جوملا 3

سلام
در این آموزش می خوام نحوه چگونه Override کردن در قالب جوملا 3 رو بهتون آموزش بدم. Override که در اینجا میشه اون رو "برتری دادن یک سری فایل بر فایلهای دیگر" هم معنا داد یک روش بسیار ساده از لحاظ فنی و تاکنیکی ولی بسیار موثر از لحاظ طراحی قالب می باشد. این روش آنقدر محبوب و موثر است که امروزه کمتر قالبی دیده میشه که از این روش استفاده نکنه.
حالا بریم سر اصل آموزش
اولین چیزی که باید بدونید اینه که Override کردن یعنی نحوه چیدمان HTML تمامی صفحات سایت رو بسته به نیاز قالب تون تغییر بدید. هر چی که در سایت تون هست رو می تونید با Override کردن اونو با قالب تون سازگار کنید خب حتما می پرسید این چه فایده ای داره ؟! اولین و بزرگ ترین فایده این کار اینه که با بروزرسانی جوملا یا کامپوننت یا ماژول های سایت تون دیگه تغییرات تون از بین نمیره چون Override روی قالب تون انجام میشه و بروزرسانی ها روی قالب شما تاثیری نداره

فکر می کنم توضیح تا همین جا کافی باشه

مرحله اول :
یک پوشه به نام html در قالب تون بسازید که اینگونه بتوان به آن دسترسی داشت
templates/YOUR_TEMPLATE_NAME/html


مرحله دوم :
خب اینجا باید ببینید اصلا چه بخشی رو می خواهید تغییر بدید به عنوان مثال بنده می خواهم نحوه نمایش منوی "مطالب ویژه شده" که درون کامپوننت "مطالب" هست را تغییر بدم
اولین چیزی که باید بدونید اینه که اون بخشی که می خواهید تغییر بدید اصلا فایل های اصلی اون در کجای جوملا قرار دارد
فایل view (view یک بخش از 3 بخش تکنولوژی MVC می باشد که وظیفه نمایش HTML و داده های پردازش شده را بر عهده دارد "Developing and MVC Component") منوی "مطالب ویژه شده" در مسیر زیر قرار دارد :
components/com_content/views/featured/tmpl/default.php

حال که فایل مربوطه رو پیدا کردیم به مرحله بعد میریم

مرحله سوم :
تو این مرحله باید درون پوشه html که در مرحله اول ساختیم یک پوشه هم نام کامپوننت مربوطه بسازیم. کامپوننتی که ما انتخاب کردیم کامپوننت مطالب بود و اسم کامپوننت com_content می باشد پس یک پوشه دیگر درون پوشه html به نام com_content می سازیم
حال باید ببنیم منوی "مطالب ویژه شده" در کدام پوشه از پوشه های views قرار دارد همان طور که از کلمه "ویژه شده" معلومه این منو در پوشه featured قرار دارد پس ما یک منوی دیگر به نام featured درون پوشه com_content می سازیم

مرحله چهارم :
حال در این مرحله فایل default.php که در مرحله دوم ادرس آن را پیدا کرده بودیم را درون پوشه featured کپی می کنیم. پس اگر طبق آموزش پیش آمده باشید ما باید به فایل default.php اینگونه دسترسی داشته باشیم
templates/YOUR_TEMPLATE_NAME/html/com_content/featured/default.php

دقت کنید که باید حتما بدین گونه باشه یعنی اول نام پوشه html که همه جا ثابته بعد نام پوشه کامپوننت که تو این مثال com_content هست بعد باید نام پوشه ای که منو در آن قرار دارد و در آخر هم فایل default.php

حال جوملا از این به بعد فایل view کاموننت com_content یا همون کامپوننت مطالب رو از قالب شما فراخوانی می کنه. برای اعمال تغییرات باید به زبان HTML و PHP مسلط باشید تا بتوانید فایل را ویرایش کنید
برای تمامی کامپوننت ها تقریبا به همین شکل هست
اما برای Override کردن ماژول یکمی تفاوت دارد
تفاوت ان در پوشه هایی هست که شما باید بسازید همان طور که می دانید ماژول شامل یک فایل default.php می باشد
همانند کامپوننت یک پوشه هم نام ماژول باید بسازید مثلا نام ماژول ورود به سایت mod_login هست
پس ما هم یه پوشه به نام mod_login درون پوشه html می سازیم
سپس فایل default.php ماژول رو درون پوشه mod_login قرار می دهیم و تمام
دقت کنید بدین صورت خواهد شد :
templates/YOUR_TEMPLATE_NAME/html/mod_login/default.php

برای تمامی ماژول ها به همین صورت خواهد شد منتها همان طور که مشخص هست نام mod_login تغییر خواهد کرد زیرا ماژول تغییر خواهد کرد

بدین صورت شما به راحتی می توانید عملیات Override را در قالب خود پیاده سازی کنید

امیدوارم مفید واقع شده باشه
ارادت

Mohammad Hossein Miri ©Copyright 2018