جوملا, کامپوننت, کامپوننت نویسی, توسعه جوملا, افزونه نویسی, ماژول, پلاگین, قالب, امنیت, سئو, seo, MVC, جوملا کار, جوملا نویس, مشاوره, طراحی قالب, آموزش, سایت, کامپوننت نویسی جوملا

کامپوننت نویسی جوملا و ماژول نویسی جوملا و پلاگین نویسی جوملا و خدمات جوملا و هاست جوملا

کامپوننت جوملا و ماژول جوملا و پلاگین جوملا و خدمات جوملا و هاست جوملا



برای آموزش مقدماتی طراحی قالب جوملا می توانید به لینک زیر مراجعه نمایید

آموزش مقدماتی طراحی قالب


یه آموزش هم خودم میذارم که بعد از مطالعه مشکلی در زمینه طراحی قالب نداشته باشید

یکی از مزایای جوملا نسبت به سیستم های دیگه اینه که طراحی قالب اون ساده ست. برای طراحی قالب جوملا کافیه یه مقدار HTML و CSS بدونید.

توی قالب های جوملا چندتا فایل هس که هر کدوم رو توضیح میدم:

پوشه ی images : نیاز به توضیح نیست که برشهای تصویری که باید HTML بشه, تو این پوشه قرار داده میشه

فایلindex.php: این فایل اصلی قالبمون هست, اگه دقت کنید قطعه کد <?php echo $this->baseurl?> آدرس مسیر نصب جوملا رو میده, پس کد

 

 <?php echo $this->baseurl ?>/templates/YOUR_TEMP_NAME/css/template_fa.css" type="text/css"


آدرس فایل CSS قالب هست. تو تگ body هم شروع میکنیم به HTML کردن قالب.

 

چارچوب و بدنه ی جوملا شامل 3 لایه است
1- Framework: این لایه شامل توابع درونی, پلاگین ها و کتابخانه هاست. پلاگین ها افزونه هایی جهت گسترش توابع درونی اند, بدون آنکه ساختار فریم ورک را تغییر دهند
2-Application: این لایه انجام وظیفه های خاص را به عهده دارد
3-Extension: این لایه Framework و Application را به صورت مشخص با کامپوننت ها, ماژول ها و تمپلیتها توسعه میدهد
فریم ورک جوملا از الگوهای برنامه نویسی بسیاری استفاده میکند از آن جمله : itorator .Factory. singleton. MVC
هر کدام از این الگوها مزایای بسیاری دارند که توضیحشات در چند خط دشوار و بعضا غیر ممکن است

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

 

 

فرض رو بر این میذارم که مطالعه کنندگان با زبان php آشنایی کامل داشته و برداشتی از کلاسها, شی ها, متغییر ها, و متدها در php دارند
تقریبا تمام کلاسهای جوملا از کلاس پایه ی jobject ناشی می شوند. این کلاس پایه به ما این امکان رو میده که از بعضی از توابع مفید آن استفاده کنیم, از جمله توابع مفید این کلاس get و set هستند که برای گرفتن و مقداردهی متغییرها در کلاسها استفاده میشوند.

یکی از پرکاربردترین ثابتهای از پیش تعریف شده در جوملا JEXEC _ است, از این ثابت به این دلیل استفاده میکنیم که مطمئن شویم که کاربر از یک نقطه ی ورود معتبر به صفحه ی فراخوانی شده دسترسی دارد
سیستم جوملا دو نقطه ی ورود دارد frontend و backend . به منظور رعایت مسائل امنیتی باید مطمئن باشیم که کاربر از همین دو نقطه فایل مورد نظر را اجرا کرده است. پس باید کد زیر رو در تمام فایل های php وارد کنیم:
defined( '_JEXEC' ) or die( 'Restricted access'); i

از جمله اصول دیگری که در طراحی افزونه ای جوملا باید به اون دقت کنیم, طراحی الگوها و به خصوص MVC ست.

حتی بدون رعایت این اصول هم میتوان افزونه هایی برای جوملا نوشت, به این معنی که برنامه را در قالب کدهای خام php و بدون استفاده از کلاسهای یا الگوهای جوملا مینویسند و در واقع اون رو به جوملا تحمیل میکنید. عدم استفاده از یک استاندارد ی واحد مثل MVC باعث سرعت اجرای کمتر, پیچیدگی کد  و به طبع آن عدم توسعه ی کد توسط افراد شخص ثالث و همچنین مانع کار گروهی می شود. رعایت این اصول در مسائل امنیتی نیز تاثیر بسزایی دارد.
همونطور که میدانید سرعت و امنیت دو پارامتر مهم در ارزیابی کیفیت یک وب سایت هستند

 

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

 

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

قسمت اول: ساخت یک ماژول ساده

ما نام ماژولمان را "hellojoomstar" قرار می دهیم, بدین ترتیب ماژول ما شامل فایل های زیر است :

mod_hellojoomstar.xml  (همنام با نام ماژول )

mod_hellojoomstar.php (همنام با نام ماژول)

helper.php

index.html

tmpl/default.php (فایل default.php که درون پوشه ی tmpl قرار دارد )

tmpl/index.html (فایل index.html که در پوشه tmpl قرار دارد)


دقت کنید که نامگذاری فایل ها و پوشه ها باید دقیقا متناسب با نام ماژول باشند.

 

در این آموزش قصد داریم کار با پایگاه داده ها را در ماژول نویسی آموزش دهیم

به جز فایل هایی که در قسمت اول معرفی شد دو فایل install.sql و unistall.sql نیز به فایل هایمان اضافه می شوند

توضیح فایل install.sql :

CREATE TABLE IF NOT EXISTS `#__hellojoomstar` (
        `id` int(10) NOT NULL AUTO_INCREMENT,
        `hello` text NOT NULL,
        `lang` varchar(25) NOT NULL,
 
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
 
INSERT INTO `#__hellojoomstar` (`hello`, `lang`) VALUES ('Hello joomstar', 'en-GB');
INSERT INTO `#__hellojoomstar` (`hello`, `lang`) VALUES ('Hola joomstar', 'es-ES');
INSERT INTO `#__hellojoomstar` (`hello`, `lang`) VALUES ('سلام جوم استار', 'fa-IR');

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

 

در این آموزش قصد داریم افزودن پارامتر به ماژول را آموزش دهیم

برای این منظور دستورات زیر را به فایل xml اضافه می کنیم

<config>
<fields name="params">
<fieldset name="basic">
<field
type="list"
name="lang"
id="myTextFieldLang"
default="1"
label="LANGUAGE"
description ="" >
<option value="en-GB">English</option>
<option value="es-ES">Spanish</option>
<option value="fa-IR">Persian</option>
</field>
</fieldset>
</fields>
</config>

چگونه آيكن جوملا را در آدرس بار مرورگر حذف كنيم و آيكن ديگری جايگزين آن نماييم.

درون فولدر قالب يک فایل با نام favicon.ico وجود دارد.
باید یک عکس با همین پسوند بسازید و جایگزین فايل قبلی نماييد.

ورود