ایجاد ماژول مدیریت تب ها: تفاوت بین نسخهها
(صفحهای جدید حاوی «=مقدمه = در این مقاله چگونگی ایجاد یک ماژول مدیریت تب ها را در [http://www.joomlafarsi....» ایجاد کرد) |
|||
| (۱ نسخهٔ میانی ویرایش شده توسط ۱ کاربر نشان داده نشده) | |||
| سطر ۱: | سطر ۱: | ||
=مقدمه = | =مقدمه = | ||
| − | در این مقاله چگونگی ایجاد یک [[ماژول]] مدیریت | + | در این مقاله چگونگی ایجاد یک [[ماژول]] مدیریت تبها را در [http://www.joomlafarsi.com جوملا] بررسی خواهیم کرد. جهت ایجاد [[ماژول]] با چندین تب نیازمند آشنایی با دانش [[JavaScript]] خواهیم بود. |
| − | 1 | + | |
| − | 2 | + | 1-در ابتدا به یک ''' < div > ''' بایک '''id''' منحصر به فرد برای هر تب نیازمندیم. تبها خود در داخل یک سطر از ''' < table > ''' قرار گرفتهاند. |
| − | 3 | + | |
| + | 2-برای محتوایی که قرار است به ازای هر تب نمایش داده شود به یک < div > با idهایی منحصر فرد نیاز داریم این مجموعه نیز در داخل یک سطر دیگر از < table > قرار میگیرد. | ||
| + | |||
| + | 3-برای مشخص کردن رویداد کلیک بر روی هر یک از تبها باید از [[JavaScript]] استفاده کنیم. از آنجایی که استفاده از تکنولوژی جاوا اسکریپت در نسخههای قدیمی IE ممکن است با مشکلاتی همراه باشد باید از قبل مرورگر را مشخص کنیم که Internet Explorer است یا خیر؟ | ||
| + | |||
| + | اگر اینترنت اکسپلورر بود از تابع ''' attachEvent() ''' استفاده میکنیم و اگر هر مرورگری به جز IE بود از تابع ''' addEventListener() ''' جهت اجرا استفاده میشود. | ||
=چگونه مرورگرها را از یکدیگر تمیز دهیم؟= | =چگونه مرورگرها را از یکدیگر تمیز دهیم؟= | ||
| − | ''' window.addEventListener ''' مقدار ''' true ''' را زمانی | + | ''' window.addEventListener ''' مقدار ''' true ''' را زمانی باز میگرداند که مرورگر هر چیزی '''به جز''' IE است و مقدار ''' false ''' را برای IE باز میگرداند. |
<source lang="javascript"> | <source lang="javascript"> | ||
| سطر ۲۰: | سطر ۲۵: | ||
| − | 4 | + | 4-تابع ''' titleDivTab1Func ''' حاوی کدی است که زمانیکه کاربر برروی تبها کلیک میکند اجرا میشود. زمانیکه کاربر بر روی هر یک از آیتمهای تب کلیک کند محتوای هر تب باید در پایین نمایش داده شود. این هدف با عنصر ''' innerHTML ''' و به کمک یک id منحصر به فرد برای هر div انجام خواهد شد. |
| + | |||
| + | |||
<source lang="javascript"> | <source lang="javascript"> | ||
document.getElementById("divContentTab").innerHTML = " محتوای تب اول"; | document.getElementById("divContentTab").innerHTML = " محتوای تب اول"; | ||
</source> | </source> | ||
| − | 5 | + | |
| − | همانطور که مستحضر هستید روند اجرای [[ماژول]] | + | 5-فراخوانی تابع [[JavaScript]] از helper.php |
| + | |||
| + | همانطور که مستحضر هستید روند اجرای [[ماژول]]های [[جوملا]] بعد از mod_modulename از فایل helper.php آغاز خواهد میشود. عملیات فراخوانی توسط تابع script() موجود در کلاس ''' JHtml ''' انجام میشود. که به صورت زیر باید در فایل helper قرار گیرد. | ||
| + | |||
| + | |||
<source lang="php"> | <source lang="php"> | ||
JHTML::_('script',"tabbed.js",JURI::base().'/modules/mod_tabbed/js/',true); | JHTML::_('script',"tabbed.js",JURI::base().'/modules/mod_tabbed/js/',true); | ||
</source> | </source> | ||
| − | |||
| + | =فایلهای مورد نیاز= | ||
| − | + | ||
| − | + | #'''mod_tabbed.php ''' : از این فایل روند اجرای [[ماژول]] آغاز خواهد شد. این فایل وظیفه اجرای فایل helper و فراهم کردن مقدمات لازم برای مقدار دهیهای اولیه و ... را به عهده دارد. | |
| − | + | #''' Helper.php ''' : این فایل شامل کلاس helper میباشد که وظیفه جمع آوری دادههای مورد نیاز [[ماژول]] را از [[پایگاه داده]]ها یا سایر منابع به عهده دارد. | |
| − | + | #''' mod_tabbed.xml ''' : این فایل شامل اطلاعاتی در مورد [[ماژول]] است همچنین وظیفه نصب [[ماژول]] در [[جوملا]] را به عهده دارد. | |
| − | + | #''' tmpl/default.php ''' : از این فایل جهت نمایش خروجی [[ماژول]] استفاده میکنیم. | |
| + | #'''js/tabbed.js''' : این فایل شامل کدهای جاوا اسکریپت مورد نیاز برای [[ماژول]] خواهد بود. | ||
==ایجاد فایل Mod_tabbed.php == | ==ایجاد فایل Mod_tabbed.php == | ||
| − | کدهای موجود در فایل mod_tabbed.php به صورت زیر است | + | کدهای موجود در فایل mod_tabbed.php به صورت زیر است: |
| + | |||
| + | |||
<source lang="php"> | <source lang="php"> | ||
<?php | <?php | ||
| سطر ۵۳: | سطر ۶۷: | ||
?> | ?> | ||
</source> | </source> | ||
| + | |||
==ایجاد فایل helper.php == | ==ایجاد فایل helper.php == | ||
| − | این فایل شامل کلاس ''' modTabbedHelper''' است و شامل یک متد بانام getHello() | + | این فایل شامل کلاس ''' modTabbedHelper''' است و شامل یک متد بانام getHello() میباشد. کدهایی که باید در فایل Helper.php قرار گیرد به صورت زیر است. |
| + | |||
<source lang="php"> | <source lang="php"> | ||
| سطر ۷۲: | سطر ۸۸: | ||
?> | ?> | ||
</source> | </source> | ||
| + | |||
==ایجاد فایل mod_tabbed.xml == | ==ایجاد فایل mod_tabbed.xml == | ||
| − | همان طور که قبلا گفته شد این فایل شامل اطلاعاتی در مورد ماژول است. کدهای موجود در فایل mod_tabbed.xml به صورت زیر | + | |
| + | همان طور که قبلا گفته شد این فایل شامل اطلاعاتی در مورد ماژول است. کدهای موجود در فایل mod_tabbed.xml به صورت زیر میباشند. | ||
| + | |||
| + | |||
<source lang="xml"> | <source lang="xml"> | ||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
| سطر ۸۱: | سطر ۱۰۱: | ||
<author>JoomlaFarsi Team</author> | <author>JoomlaFarsi Team</author> | ||
<version>2.5</version> | <version>2.5</version> | ||
| − | <description>ماژول مدیریت | + | <description>ماژول مدیریت تبها</description> |
<files> | <files> | ||
<filename>mod_tabbed.xml</filename> | <filename>mod_tabbed.xml</filename> | ||
| سطر ۹۶: | سطر ۱۱۶: | ||
</extension> | </extension> | ||
</source> | </source> | ||
| + | |||
==ایجاد فایل tmpl\default.php== | ==ایجاد فایل tmpl\default.php== | ||
| + | |||
کد این فایل نیز شامل | کد این فایل نیز شامل | ||
| + | |||
| + | |||
<source lang="php"> | <source lang="php"> | ||
<html><body bgcolor="#FFFFFF"></body></html> | <html><body bgcolor="#FFFFFF"></body></html> | ||
</source> | </source> | ||
| − | است و باعث نمایش یک صفحه سفید | + | |
| + | |||
| + | است و باعث نمایش یک صفحه سفید میشود. | ||
==فایل js\tabbed.js== | ==فایل js\tabbed.js== | ||
| − | این فایل شامل کدهای جاوا اسکریپت است و همچنین محتوای درون | + | این فایل شامل کدهای جاوا اسکریپت است و همچنین محتوای درون تبها را میتوانید از این فایل تغییر دهید. |
| + | |||
| + | |||
<source lang="php"> | <source lang="php"> | ||
window.addEvent("domready",function(){ | window.addEvent("domready",function(){ | ||
| سطر ۱۶۳: | سطر ۱۹۱: | ||
} | } | ||
</source> | </source> | ||
| + | |||
= ایجاد بسته نصبی از ماژول = | = ایجاد بسته نصبی از ماژول = | ||
| + | |||
در این مرحله باید یک فایل '''zip''' با نام '''mod_tabbed''' ایجاد کنیم و این فایل باید شامل فایلها و فولدرهای زیر باشد. | در این مرحله باید یک فایل '''zip''' با نام '''mod_tabbed''' ایجاد کنیم و این فایل باید شامل فایلها و فولدرهای زیر باشد. | ||
| سطر ۱۷۵: | سطر ۲۰۵: | ||
* js\tabbed.js | * js\tabbed.js | ||
* js\index.html | * js\index.html | ||
| − | + | ||
| − | فایل zip بالا میتواند از قسمت مدیریت افزونهها در مدیریت [[جوملا]] نصب شود. همچنین جهت دانلود این افزونه | + | فایل zip بالا میتواند از قسمت مدیریت افزونهها در مدیریت [[جوملا]] نصب شود. همچنین جهت [http://upload.mambolearn.com/modules/mod_tabbed.zip دانلود این افزونه] میتوانید از لینک زیر استفاده کنید. |
| + | |||
| + | http://upload.mambolearn.com/modules/mod_tabbed.zip | ||
| + | |||
| + | <headertabs /> | ||
---- | ---- | ||
نسخهٔ کنونی تا ۱۸ نوامبر ۲۰۱۳، ساعت ۰۵:۵۲
محتویات
در این مقاله چگونگی ایجاد یک ماژول مدیریت تبها را در جوملا بررسی خواهیم کرد. جهت ایجاد ماژول با چندین تب نیازمند آشنایی با دانش JavaScript خواهیم بود.
1-در ابتدا به یک < div > بایک id منحصر به فرد برای هر تب نیازمندیم. تبها خود در داخل یک سطر از < table > قرار گرفتهاند.
2-برای محتوایی که قرار است به ازای هر تب نمایش داده شود به یک < div > با idهایی منحصر فرد نیاز داریم این مجموعه نیز در داخل یک سطر دیگر از < table > قرار میگیرد.
3-برای مشخص کردن رویداد کلیک بر روی هر یک از تبها باید از JavaScript استفاده کنیم. از آنجایی که استفاده از تکنولوژی جاوا اسکریپت در نسخههای قدیمی IE ممکن است با مشکلاتی همراه باشد باید از قبل مرورگر را مشخص کنیم که Internet Explorer است یا خیر؟
اگر اینترنت اکسپلورر بود از تابع attachEvent() استفاده میکنیم و اگر هر مرورگری به جز IE بود از تابع addEventListener() جهت اجرا استفاده میشود.
window.addEventListener مقدار true را زمانی باز میگرداند که مرورگر هر چیزی به جز IE است و مقدار false را برای IE باز میگرداند.
<source lang="javascript"> if(window.addEventListener) {
} else {
} </source>
4-تابع titleDivTab1Func حاوی کدی است که زمانیکه کاربر برروی تبها کلیک میکند اجرا میشود. زمانیکه کاربر بر روی هر یک از آیتمهای تب کلیک کند محتوای هر تب باید در پایین نمایش داده شود. این هدف با عنصر innerHTML و به کمک یک id منحصر به فرد برای هر div انجام خواهد شد.
<source lang="javascript">
document.getElementById("divContentTab").innerHTML = " محتوای تب اول";
</source>
5-فراخوانی تابع JavaScript از helper.php
همانطور که مستحضر هستید روند اجرای ماژولهای جوملا بعد از mod_modulename از فایل helper.php آغاز خواهد میشود. عملیات فراخوانی توسط تابع script() موجود در کلاس JHtml انجام میشود. که به صورت زیر باید در فایل helper قرار گیرد.
<source lang="php">
JHTML::_('script',"tabbed.js",JURI::base().'/modules/mod_tabbed/js/',true);
</source>
- mod_tabbed.php : از این فایل روند اجرای ماژول آغاز خواهد شد. این فایل وظیفه اجرای فایل helper و فراهم کردن مقدمات لازم برای مقدار دهیهای اولیه و ... را به عهده دارد.
- Helper.php : این فایل شامل کلاس helper میباشد که وظیفه جمع آوری دادههای مورد نیاز ماژول را از پایگاه دادهها یا سایر منابع به عهده دارد.
- mod_tabbed.xml : این فایل شامل اطلاعاتی در مورد ماژول است همچنین وظیفه نصب ماژول در جوملا را به عهده دارد.
- tmpl/default.php : از این فایل جهت نمایش خروجی ماژول استفاده میکنیم.
- js/tabbed.js : این فایل شامل کدهای جاوا اسکریپت مورد نیاز برای ماژول خواهد بود.
ایجاد فایل Mod_tabbed.php
کدهای موجود در فایل mod_tabbed.php به صورت زیر است:
<source lang="php">
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
// Include the syndicate functions only once
require_once( dirname(__FILE__).DS.'helper.php' );
$hello = modTabbedHelper::getHello( $params );
require( JModuleHelper::getLayoutPath( 'mod_tabbed' ) );
?>
</source>
ایجاد فایل helper.php
این فایل شامل کلاس modTabbedHelper است و شامل یک متد بانام getHello() میباشد. کدهایی که باید در فایل Helper.php قرار گیرد به صورت زیر است.
<source lang="php">
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
class modTabbedHelper
{
static function getHello($params)
{
JHTML::_('script',"tabbed.js",JURI::base().'/modules/mod_tabbed/js/',true);
return 'Helper Tabbed Pane';
}
}
?>
</source>
ایجاد فایل mod_tabbed.xml
همان طور که قبلا گفته شد این فایل شامل اطلاعاتی در مورد ماژول است. کدهای موجود در فایل mod_tabbed.xml به صورت زیر میباشند.
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="2.5" client="site" method="upgrade">
<name>tabbed</name>
<author>JoomlaFarsi Team</author>
<version>2.5</version>
<description>ماژول مدیریت تبها</description>
<files>
<filename>mod_tabbed.xml</filename>
<filename module="mod_tabbed">mod_tabbed.php</filename>
<filename>index.html</filename>
<filename>helper.php</filename>
<filename>tmpl/default.php</filename>
<filename>tmpl/index.html</filename>
<filename>js/index.html </filename>
<filename>js/tabbed.js</filename>
</files>
<config>
</config>
</extension>
</source>
ایجاد فایل tmpl\default.php
کد این فایل نیز شامل
<source lang="php">
<html><body bgcolor="#FFFFFF"></body></html>
</source>
است و باعث نمایش یک صفحه سفید میشود.
فایل js\tabbed.js
این فایل شامل کدهای جاوا اسکریپت است و همچنین محتوای درون تبها را میتوانید از این فایل تغییر دهید.
<source lang="php">
window.addEvent("domready",function(){
if(window.addEventListener) {
document.getElementById('divTitleTab1').addEventListener("click",titleDivTab1Func, false,true);
document.getElementById('divTitleTab2').addEventListener("click",titleDivTab2Func, false,true);
document.getElementById('divTitleTab3').addEventListener("click",titleDivTab3Func, false,true);
document.getElementById('divTitleTab4').addEventListener("click",titleDivTab4Func, false,true);
}
else if(window.attachEvent) { //IE
document.getElementById('divTitleTab1').attachEvent("onclick",titleDivTab1Func);
document.getElementById('divTitleTab2').attachEvent("onclick",titleDivTab2Func);
document.getElementById('divTitleTab3').attachEvent("onclick",titleDivTab3Func);
document.getElementById('divTitleTab4').attachEvent("onclick",titleDivTab4Func);
}
});
function titleDivTab1Func() { var oDiv = document.getElementById("divContentTab"); oDiv.style.display = "block"; document.getElementById("divTitleTab1").style.background = "#FFFFFF"; document.getElementById("divTitleTab2").style.background = "#F3F3F3"; document.getElementById("divTitleTab3").style.background = "#F3F3F3"; document.getElementById("divTitleTab4").style.background = "#F3F3F3"; oDiv.innerHTML = " you are under Tab 1"; }
function titleDivTab2Func() { var oDiv = document.getElementById("divContentTab"); oDiv.style.display = "block"; document.getElementById("divTitleTab2").style.background = "#FFFFFF"; document.getElementById("divTitleTab1").style.background = "#F3F3F3"; document.getElementById("divTitleTab3").style.background = "#F3F3F3"; document.getElementById("divTitleTab4").style.background = "#F3F3F3"; oDiv.innerHTML =" You are in Tab 2" ; }
function titleDivTab3Func() { var oDiv = document.getElementById("divContentTab"); oDiv.style.display = "block"; document.getElementById("divTitleTab3").style.background = "#FFFFFF"; document.getElementById("divTitleTab1").style.background = "#F3F3F3"; document.getElementById("divTitleTab2").style.background = "#F3F3F3"; document.getElementById("divTitleTab4").style.background = "#F3F3F3"; oDiv.innerHTML ="Congratulations! You have a Joomla! site! Joomla! makes it easy to build a website just the way you want it and keep it simple to update and maintain.in tab3" ; }
function titleDivTab4Func() { var oDiv = document.getElementById("divContentTab"); oDiv.style.display = "block"; document.getElementById("divTitleTab4").style.background = "#FFFFFF"; document.getElementById("divTitleTab1").style.background = "#F3F3F3"; document.getElementById("divTitleTab2").style.background = "#F3F3F3"; document.getElementById("divTitleTab3").style.background = "#F3F3F3"; oDiv.innerHTML ="Joomla! is a flexible and powerful platform, whether you are building a small site for yourself or a huge site with hundreds of thousands of visitors. You are in Tab 4" ; } </source>
در این مرحله باید یک فایل zip با نام mod_tabbed ایجاد کنیم و این فایل باید شامل فایلها و فولدرهای زیر باشد.
- mod_tabbed.php
- index.html
- mod_tabbed.xml
- helper.php
- tmpl\default.php
- tmpl\index.html
- js\tabbed.js
- js\index.html
فایل zip بالا میتواند از قسمت مدیریت افزونهها در مدیریت جوملا نصب شود. همچنین جهت دانلود این افزونه میتوانید از لینک زیر استفاده کنید.
جمع آوری شده توسط :شهاب مطاع پور
|
|