فایل templateDetails.xml همواره باید در پوشه قالب جوملا موجود باشد . بعنوان مثال در قالب beez
در جوملا این فایل در دایرکتوری زیر قرار دارد :
templates/beez/templateDetails.xml/مسیر جوملا
در این مقاله به تشریح کامل این فایل می پردازیم پس تا آخر همراه ما باشید .
در جوملا 3.3 در قالب beez3 که فایل templateDetails.xml قرار دارد در ابتدای این فایل کد های زیر آمده است:
Title
1 <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install PUBLIC "-//Joomla! 2.5//DTD template 1.0//EN" "http://www.joomla.org/xml/dtd/1.6/template- install.dtd">
3 <extension version="3.1" type="template" client="site">
4 <name>beez3</name>
5 <creationDate>25 November 2009</creationDate>
6 <author>Angie Radtke</author>
7 <authorEmail>این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید</authorEmail>
8 <authorUrl>http://www.der-auftritt.de</authorUrl>
9 <copyright>Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.</copyright>
10 <license>GNU General Public License version 2 or later; see LICENSE.txt</license>
11 <version>3.1.0</version>
12 <description>TPL_BEEZ3_XML_DESCRIPTION</description>
در خط 1 گفته ایم که از xml می خواهیم استفاده کنیم .
در خط 2 :
در خط 3 ورژن جوملا را وارد می کنیم .
در خط 4 نام قالب را می نویسیم .
در خط 5 تاریخ ایجاد قالب را می نویسیم .
در خط 6 نام نویسنده ی قالب را می نویسیم .
در خط 7 ایمیل نویسنده ی قالب را می نویسیم .
در خط 8 آدرس سایت نویسنده را می نویسیم .
در خط 9 متن کپی رایت را می نویسیم .
در خط 10 لایسنس را می نویسیم .
در خط 11 ورژن قالب را می نویسیم .
در خط 12 یک توضیح در مورد قالب می آوریم .
همان طور که می بینید این توضیح به شکل یک متغیر با حروف بزرگ نوشته شده است .
این متغیر در پوشه ی language در یک فایل با پسوند ini تعریف شده است .
در مورد افزونه هایی که درون خود جوملا وجود دارند فایل ini در جوملا در پوشه ی language
وجود دارد . اما در مورد افزونه هایی که جدا از فایل های جوملا هستند پوشه ی language در خود این افزونه
وجود دارد .
کسانی که ماژول ها را ترجمه می کنند در واقع همین فایل ini را ترجمه می کنند .
در ادامه ی فایل templateDetails.xml داریم :
Title
<files>
<folder>css</folder>
<folder>html</folder>
<folder>images</folder>
<folder>javascript</folder>
<folder>language</folder>
<filename>index.html</filename>
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
<filename>template_preview.png</filename>
<filename>template_thumbnail.png</filename>
<filename>jsstrings.php</filename>
<filename>favicon.ico</filename>
<filename>component.php</filename>
<filename>error.php</filename>
</files>
در این کد های بالا تمام فولدرها و فایل های درون پوشه ی beez3 برای جوملا تعریف شده اند . در تگ های folder فولدرها و محتویات
داخل آنها تعریف شده اند و در تگ های filename فایل های درون پوشه ی beez3 تک تک تعریف شده اند .
در ادامه کد های زیر را داریم :
Title
<position>debug</position>
<position>position-0</position>
<position>position-1</position>
<position>position-2</position>
<position>position-3</position>
<position>position-4</position>
<position>position-5</position>
<position>position-6</position>
<position>position-7</position>
<position>position-8</position>
<position>position-9</position>
<position>position-10</position>
<position>position-11</position>
<position>position-12</position>
<position>position-13</position>
<position>position-14</position>
</positions>
در کدهای بالا پوزیشن ها تعریف شده اند . پوزیشن ها در واقع همان مکان هایی هستند که ما تعریف می کنیم تا ماژول ها و ...
در آن مکان ها قرار بگیرند . در اینجا این کد ها تنها تعداد پوزیشن ها و نام آنها را برای جوملا تعریف می کنند . در واقع با نوشتن
کد های بالا ما به سیستم جوملا خواهیم گفت که قصد داریم از این 16 پوزیشن با این نام ها در قالب خود استفاده کنیم .
در ادامه کد های زیر را داریم :
Title
<languages folder="language">
<language tag="en-GB">en-GB/en-GB.tpl_beez3.ini</language>
<language tag="en-GB">en-GB/en-GB.tpl_beez3.sys.ini</language>
</languages>
این قسمت ،قسمت language است . در تگ اول اسم فولدر ی که در پوشه ی قالب beez هست و فایل های language را در بر دارد
آورده شده است . این یعنی فایل های زبان ما در پوشه ی language قرار دارد .
و در ادامه خود فایل ها تعریف شده اند فایل هایی با پسوند ini :
فعلا وارد آموزش فایل های ini و ترجمه ی آنها نمی شویم . در ادامه کدهای زیر را داریم :
Title
1 <config>
2 <fields name="params">
3 <fieldset name="advanced">
4 <field name="wrapperSmall" class="validate-numeric" type="text" default="53"
label="TPL_BEEZ3_FIELD_WRAPPERSMALL_LABEL"
description="TPL_BEEZ3_FIELD_WRAPPERSMALL_DESC"
filter="integer" />
تشریح کدها : در خط 1 یک تگ config قرار دارد این تگ تمام تگ ها و پارامتر ها را در بر دارد . لازم به ذکر است که کلمه ی config به
معنی : پیکربندی است .
در خط 2 یک تگ داریم به نام fields این تگ تمام فیلد ها را در بر دارد . توجه داشته باشد که فیلدها در واقع همان پارامترهایی هستند
که در مقاله ی پارامترها در templateDetails.xml نشان داده شده اند .
در خط 2 name="params" چیست ؟
به نظر می رسد که params در واقع همان متغیر $params است که در قالب جوملا برای دست یابی به پارامترها از آن استفاده می شود .
پس با فرض صحت این موضوع می توان گفت که params در واقع نامی است برای دست یا بی به پارامتر های تعریف شده در درون آن .
خب بعد از اینکه ما یگ تگ ساختیم به نام fields (به معنی فیلدها) حالا وقت آن است که فیلد های درون آن را تعریف کنیم .
فیلد در جوملا چیست ؟
فیلد در جوملا در واقع تعریف مکانی است برای گرفتن اطلاعات قالب از کاربر و همچنین تعیین اطلاعات پیش فرض برای قالب .
یک فیلد انواع بسیار مختلفی دارد همچون : متن و دکمه ی بله و خیر یا آبشن منوی کشویی یا ... .
برای دیدن انواع فیلد ها می توانید به اینجا مراجعه کنید .
در خط 4 یک فیلد تعریف شده است . برای این فیلد یک نام انتخاب شده است : wrapperSmall و بعد برای آن یک کلاس انتخابی
سی اس اس را تعیین کرده است . و سپس در قسمت type="text" نوع فیلد را برابر با تکست یا همان متن قرار داده است ، و
بدین معنی است که طراح قالب قصد دارد در این فیلد عبارت متنی را از کاربر دریافت کند و در قالب به کار ببرد .
و سپس برای فیلد یک مقدار پیش فرض توسط کلمه ی default تعریف شده است .
و در ادامه label (برچسب یا نام نمایشی) و description(شرح) برای آن تعریف شده و به متغیر هایی در فایل های ini ارجاع داده
شده است .
خب تا اینجا یک فیلد را در جوملا یاد گرفتید و آن فیلد text بود . در ادامه ی دستورات فایل templateDetails.xml تعدادی دیگر فیلد
به کار رفته است که در مقالات بعدی آموزش یا تعریف آنها خواهد آمد .
دیدگاهها
سوالات خود را در بخش نظرات مطرح کنید ...