صفحه اصلي جوملا - Joomla مفهوم Modules Chrome در جوملا ۱.۵

آخرین فعالیتهای کاربران

  • Administrator آواتار جدیدی بارگذاری کرد
    profile 166 روز قبل
  • Administrator همین الان بخش شبکه اجتماعی پرشیا سئو راه اندازی شد.
    profile 166 روز قبل
 

مفهوم Modules Chrome در جوملا ۱.۵

نوشته شده توسط رضا فرشباف   
یكشنبه, 18 January 2009 00:00

برای تعریف کرومهای سفارشی برروی ماجولهای قالب جوملا، شما باید یک فایل به نام modules.php در دایرکتوری html قالب جوملا ایجاد کنید. بطور مثال این فایل باید در آدرس زیر قرار بگیرد:

PATH_TO_JOOMLA/templates/TEMPLATE_NAME/html/modules.php

در داخل این فایل شما باید یک تابع به نام modChrome_STYLE تعریف کنید بطوریکه STYLE نام کروم ماجول سفارشی شما خواهد بود. این تابع آرگومانهای زیر را بصورت ورودی خواهد داشت:

$module
&$params
&$attribs

نمونه ای از این تابع در مثال زیر آورده شده است:

<?php 
function modChrome_STYLE( $module, &$params, &$attribs )
{
/* chromed Module output goes here */
}
?>

در داخل این تابع شما می توانید از تمامی ویژگیهای موجود برای ماجولها (فیلدهای موجود در جدول jos_modules بانک اطلاعاتی جوملا) برای آن ماجول استفاده کنید. اما مهمترین این ویژگیها که اغلب مورد استفاده قرار می گیرند عبارتند از:

$module->content
$module->showtitle
$module->title

ویژگی $module->showtitle یک متغیر بولی (منطقی) بوده که می تواند یکی از مقادیر true (هنگامی که عنوان ماجول باید نشان داده شود) ویا flase (هنگامی که عنوان ماجول نباید نشان داده شود)داشته باشد. ویژگیهای $module->title و $module->content عنوان ماجول و محتویات ماجول را نمایش خواهدداد.

این تابع، یک تابع نرمال PHP بوده و می تواند شامل کدهای مختلف PHP باشد. به عنوان مثال می توان به استفاده از دستورات شرطی برای بررسی مقدار $module->showtitle جهت نمایش و یا عدم نمایش عنوان، اشاره کرد:

<?php
if ($module->showtitle)
{
echo '<h2>' .$module->title .'</h2>';
}
?>

پارامترهای ماجول از طریق ابجکت $params در دسترس هستند. بطور مثال همانگونه که می دانید، می توان برای یک ماجول پسوند کلاس (Module Class Suffix) در قسمت ادمین جوملا تعریف کرد. این پسوند درون پارامترهای مربوط به ماجول مذکور تحت عنوان moduleclass_sfx ذخیره می شود. برای ایجاد یک <div> که متعلق به کلاس تعریف شده در Module Class Suffix باشد، شما بایستی به روش زیر عمل کنید:

<div class="<?php echo $params->get( 'moduleclass_sfx' ); ?>">
<!-- div contents -->
</div>

ویژگیهای سفارشی برای کرومهای جوملا

شما همچنین می توانید ویژگیهای بیشتری را به داخل تابع مربوط به کروم ماجول از طریق عبارت <jdoc:include /> ارسال کنید. این ویژگیهای اضافی می توانند هر چیزی که شما دوست دارید باشند و در داخل آرایه $attribs ذخیره می شوند. به مثال زیر توجه کنید:

<?php
function modChrome_custom( $module, &$params, &$attribs ) {
if (isset( $attribs['headerLevel'] ))
{
$headerLevel = $attribs['headerLevel'];
} else {
$headerLevel = 3;
}

if (isset( $attribs['background'] ))
{
$background = $attribs['background'];
} else {
$background = 'blue';
}

echo '<div class="' .$params->get( 'moduleclass_sfx' ) .'" >';

if ($module->showtitle)
{
echo '<h' .$headerLevel .'>' .$module->title .'</h' .$headerLevel .'>';
}
echo '<div class="' .$background .'">';
echo $module->content;
echo '</div>';
echo '</div>';
}
?>

با تعریف تابع فوق در داخل فایل modules.php حالا شما می توانید مقادیر ویژگیهای background و headerLevel را در عبارت <jdoc:include /> بصورت زیر تعریف کنید. اگر هیچ مقداری تنظیم نشود، مقادیر ویژگیها به ترتیب به مقدار پیش فرض blue و 3 تنظیم می شوند.

<jdoc:include type="modules" name="user1" headerLevel="1" background="yellow" /> 
آخرین بروزرسانی ( دوشنبه, 19 January 2009 07:58 )
 

Add comment


Security code
Refresh

RocketTheme Joomla Templates