رفتن به مطلب
سامان آخته

تبدیل قالب جوملا سری ۱.۰ به ۱.۵

پست های پیشنهاد شده

بسم تعالی

راهنمای گام به گام

تبدیل قالب سری 1 به سری 1.5

همانطور که می دونید، برای اینکه قالبهای جوملا سری 1.0.x را بتوان در نسخه های 1.5.x مورد استفاده قرار داد، باید پلاگین legacy را فعال کرد ولی این روش توصیه نمی شود چرا که بسیاری از امکانات قالبهای 1.5 را از دست خواهیم داد. همچنین برخی از کلاسهای تعریف شده در خروجیهای تولید شده توسط هسته مرکزی 1.5 در فایل css نسخه های 1.0.x وجود ندارد لذا خروجی کاملآ یکسانی را دریافت نخواهیم کرد.

بدین منظور توصیه می شود که قالب را به نسخه 1.5 ارتقاء داده و به عبارتی بصورت Native از آن استفاده کرد. منظور از واژه Native، اینست که قالبهایی که برای سری 1.0.x طراحی شده اند همان کارائی خود را در سری 1.5 و بدون استفاده از پلاگین legacy حفظ خواهند کرد.

برای شروع کار تبدیل، کافیست که فایلهای index.php, templateDetails.php را ویرایش کنیم. مراحل کار بصورت زیر است:

1. ابتدا فایل index.php را در ادیتور دلخواه خود باز کرده و دستور زیر را پیدا می کنیم:

<?php defined ('_VALID_MOS') or die ('Direct Access to this file is not allowed'); ?>

حال دستور فوق را با دستور زیر جایگزین می کنیم:

<?php defined( '_JEXEC' ) or die( 'Restricted index access' ); ?>

بعد از دستور فوق عبارتهای مربوط به DOCTYPE را مشاهده می کنیم که یکی از بخشهای مهم فایل index.php به شمار می آید. در جوملا 1.0.15 این دستورات به صورت زیر است:

برای جوملای 1.5 تغییرات زیر را اعمال می کنیم:

با این تغییرات در واقع ما امکان استفاده از زبانهای بین المللی و همچنین تغییر جهت نوشتاری برای زبانهایی نظیر فارسی و عربی و ... را پیدا می کنیم.

مرحله بعدی ویرایش کدهای موجود در قسمت HEAD فایل index.php است. در نسخه های 1.0.x این دستورات در قسمت HEAD قرار می گرفتند:

<?php if ( $my->id ) { initEditor(); } mosShowHead(); ?>

در جوملای 1.5 به جای استاده از کدهای فوق کافیست از دستور ساده تر زیر استفاده کنیم:

مرحله بعدی، ویرایش کدهای مربوط به بارگذاری فایل CSS قالب و آیکون Favicon است. این کد ها در سری 1.0.x بصورت زیر می باشد:

در سری 1.5 کدهای فوق به صورت زیر تغییر می کنند:

همانطور که می بینید، استفاده از دستور

<?php echo $mosConfig_live_site;?>

منسوخ شده و همچنین بجای دستور طولانی

<?php echo $mainframe->getTemplate(); ?>

ز عبارت کوتاهتر

<?php echo $this->template ?>

استفاده شده است.

مرحله بعدی، ویرایش کدهای موجود در بخش Body فایل index.php است. در این قسمت کدهای مربوط به بارگذاری ماجولها، pathway و محتویات اصلی صفحه main body تغییر خواهند کرد.

همانطور که می دونید در نسخه های 1.0.x برای لود کردن ماژولها درون یک position خاص، از عبارت زیر استفاده می شد:

<?php mosLoadModules('position name', option); ?>

که position name نام موقعیتی بوده که ماجولهای تعریف شده در آن موقعیت در صفحه لود شوند و پارامتر option نحوه تولید خروجی HTML لازم برای نمایش محتویات ماجولها در صفحه می باشند که می تواند مقادیر -3,-2,-1,0,1 را به خود اختصاص دهد.

در نسخه 1.5 از دستور متفاوتی استفاده می شود:

پارامتر option می تواند مقادیر زیر را به خود اختصاص دهد:

rounded(-3) xhtml(-2) raw(-1) table(0) horiz(1)

بطور مثال در هر کجای Body فایل Index.php دستور زیر را مشاهده کردید:

<?php mosLoadModules('right', -2); ?>

آنرا با عبارت زیر جایگزین کنید:

یکی از نکات مهمی که در طراحی قالبهای جوملا باید به آن دقت کرد، ایجاد حالت Collapsible برای position های قالب است. بطوریکه اگر در داخل یک Position هیچ ماجولی لود نشود، آن position نباید در صفحه بصورت یک جای خالی نمایش داده شود. به این ویژگی Collapsible بودن position های قالب گفته می شود. در نسخه های سری 1.0.x برای بوجود آموردن چنین امکانی، از دستورات شرطی برای بررسی وجود ویا عدم وجود ماجولها درون position مربوطه استفاده می شد. بطور مثال، برای بررسی اینکه آیا ماجولی در موقعیت Left وجود دارد یا نه از دستور زیر استفاده می شود:

<?php if (mosCountModules ('left')) : ?>

بنابراین، در هر کجا فایل index.php که به دستورات فوق برخورد کردیم، کافیست معادل آنرا برای 1.5 بصورت زیر قرار دهیم:

<?php if($this->countModules('left')) : ?>

اگر با دستورات شرطی ترکیبی مانند عبارت زیر روبرو شدیم،

<?php if (mosCountModules('user5') or mosCountModules('user6')) :?> معادل آن بصورت زیر خواهد بود:

<?php if ($this->coundModules('user5 or user6')) :?>

آخرین مرحله از ویرایش فایل index.php تغییر دستورات مربوط به بارگذاری Pathway و MainBody است. در نسخه های 1.0.x برای لودکردن Pathway از دستور زیر استفاده می شد.

<?php mosPathway(); ?>

در نسخه های 1.5 برای نمایش Pathway از عبارت زیر استفاده می شود:

ه عبارتی دیگر، Pathway بصورت یک ماجول در نسخه های 1.5 در آمده است.

همچنین، در نسخه 1.0.x برای بارگذاری محتویات اصلی صفحه از دستور:

<?php mosMainBody(); ?>

ستفاده می شد که در نسخه های 1.5 ازعبارت جایگزین زیر استفاده می شود:

در اینجا ویرایش فایل index.php به پایان می رسد. در قسمت بعدی نحوه ویرایش فایل templateDetails.xml را بررسی می کنیم.

ویرایش فایل templateDetails.xml

آخرین مرحله در ارتقای قالبهای 1.0.x به 1.5.x ویرایش فایل xml قالب است. این فایل را در ادیتور دلخواه خود باز کرده و در ابتدا دستور زیر را پیدا می کنیم:

وبا دستور زیر جایگزین می کنیم:

همچنین تگهای پایانی رو هم به همین صورت ویرایش می کنیم، یعنی به جای از تگ استفاده می کنیم.

مرحله بعدی در ویرایش فایل xml تعریف position هایی است که درون index.php از آنها استفاده کرده ایم. برای این منظور از دستورات زیر استفاده می کنیم:

positions> topleftrightuser1 ...

همچنین برای استفاده از سیستم یونیکد، دستور زیر را پیدا کرده:

<?xml version="1.0" encoding="iso-8859-1" ?>

و encoding را به utf-8 تغییر می دهیم: <?xml version="1.0" encoding="utf-8" ?>

همچنین برای نمایش پیام بایستی از کد زیر استفاده کنید همچنین برای نمایش پیام بایستی از کد زیر استفاده کنید

در صورتی که از کد زیر استفاده نشده باشد ، پیام در بخش سایت ظاهر نخواهد شد. به عنوان مثال پیامی حاوی بر اینکه ثبت نام شما به اتمام رسید و ...

:)

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید ارسال داشته باشید و بعد ثبت نام خود را در سایت کامل نمایید. اگر حساب کاربری در سایت دارید، جهت ارسال با حساب کاربری خود هم اکنون وارد سایت شوید

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • افزودن...