2 تجزیه و تحلیل قالبهای موویل تایپ 1

همانطوری که قول داده بودم تصمیم دارم در چند مقاله تمامی کدهایی که در قالبهای مختلف ام تی به کار رفته اند را به کلی تجزیه و تحلیل کنم که این مقاله را به آقا نوید تقدیم می کنم.

تجزیه و تحلیل قالب اصلی:
قالبها به دو دسته head و body تقسيم ميشوند.
الف:- کدها در بخش head


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
<title><$MTBlogName$></title>
<link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="<$MTBlogURL$>index.rdf" />
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="<$MTBlogURL$>rsd.xml" />


<script language="javascript" type="text/javascript">
function OpenComments (c) {
    window.open(c,
                    'comments',
                    'width=480,height=480,scrollbars=yes,status=yes');
}


function OpenTrackback (c) {
    window.open(c,
                    'trackback',
                    'width=480,height=480,scrollbars=yes,status=yes');
}
</script>


<MTBlogIfCCLicense>
<$MTCCLicenseRDF$>
</MTBlogIfCCLicense>
</head>


توضیحات:
• <$MTPublishCharset$> این تگ نوع اینکودینگ (Encoding) را مشخص می کند.
• <$MTBlogName$> این تگ اسم وبلاگ شما را در بالای نمایشگر (Browser) -- اسمی که در بخش Web Configuring نوشتید – به نمایش خواهد داد.
•  <$MTBlogURL$>این تگ آدرس وبلاگ را نمایش میدهد. برای مثال اگر وبلاگ شما به نام Blog باشد خروجی این تگ به این صورت خواهد بود: http://www.yourdomain.com/blog/
• این کدهای جاوا مربوط به بخشهای نظرات (Comments) و دنبالک  (TrackBack) میباشند که در این کدها نحوه باز شدن (طول, عرض, اسکرول بار و نوار وضیعت) تعریف شده اند.
• <MTBlogIfCCLicense><$MTCCLicenseRDF$></MTBlogIfCCLicense> این تگها مربوط به حقوق کپی رایت در وبلاگها ام تی میباشد.

ب:- کدها در بخش Body
کدها در بخش body به دو دسته بدنه (متنها, پستها) و منو تقسیم میشوند.

کدهای بخش بدنه (متن):
این کدها بین دو تگ <MTEntries></MTEntries> قرار می گیزند که به صورت زیر میباشند:


<MTEntries>
<$MTEntryTrackbackData$>
<MTDateHeader>
<$MTEntryDate format="%x"$>
</MTDateHeader>


<a name="<$MTEntryID pad="1"$>"></a>
<$MTEntryTitle$>
<$MTEntryBody$>


<MTEntryIfExtended>
<a href="<$MTEntryPermalink$>#more">Continue reading "<$MTEntryTitle$>"</a>
</MTEntryIfExtended>
Posted by <$MTEntryAuthor$> at <a href="<$MTEntryPermalink$>">
<$MTEntryDate format="%X"$></a>


<MTEntryIfAllowComments>
<a href="<$MTCGIPath$><$MTCommentScript$>
?entry_id=<$MTEntryID$>" onclick="OpenComments(this.href); return false">
Comments (<$MTEntryCommentCount$>)</a>
</MTEntryIfAllowComments>


<MTEntryIfAllowPings>
<a href="<$MTCGIPath$><$MTTrackbackScript$>
?__mode=view&entry_id=<$MTEntryID$>" onclick="OpenTrackback(this.href);
return false">TrackBack (<$MTEntryTrackbackCount$>)</a>
</MTEntryIfAllowPings>


</MTEntries>


توضیحات:
• <MTEntries> و </MTEntries> این دو تگ مربوط به بخش پست در ام تی میباشند که هر چیزی بین این دو تگ قرار گیرد در هر پست تکرار خواهد شد.
• <$MTEntryTrackbackData$> این تگ اطلاعات مربوط به دنبالک (TrackBack) را میسازد. که برای استفاده در bookmarklet استفاده میشود.
• <MTDateHeader><$MTEntryDate format="%x"$></MTDateHeader> این تگها تاریخ پست مطلب را نمایش می دهند که خورجی این تگ به صورت ماه / روز / سال (mm/dd/yyyy) خواهند بود برای مثال: February 11, 2004 توجه داشته به حرف x داشته باشید که این حرف به صورت کوچک نوشته شده اگر این حرف را به صورت X بنویسید زمان پست را به نمایش خواهند گذاشت که این در پایین هر پست به صورت نرمال خواهد بود. این حرف x معادل %B %e, %Y هست.
- حرف B% ماه را به صورت کامل (February)  نشان خواهند داد که اگر بخواهید اینرا به صورت کوتاه (Feb) نشان دهید باید از حرف b% استفاده کنید.
- حرف %e نمایش دهنده روز میباشد.
- حرف Y% عدد سال را به صورت کامل (چهار رقمی برای مثال 2004) نمایش خواهند داد که اگر بخواهیم آنرا به صورت دو رقمی به کار بریم باید از حرف کوچک آن y% استفاده کنیم.
• <$MTEntryID pad="1"$> هر پستی که شما ارسال می کنید دارای یک عدد (ای دی) میباشند که برای آرشیو شدن مطالب به کار می روند. علت به کار رفتن pad=1 برای نمایش این اعداد تا 6 رقم میباشند.
• <$MTEntryTitle$> این تگ عنوان هر پست (عنوان هر مقاله) را نشان خواهند داد.
• <$MTEntryBody$> این تگ متن نوشته ها (مقالات) را نشان خواهند داد.
• <MTEntryIfExtended></MTEntryIfExtended> کدهایی که بین این دو تگ به کار رفته اند ادامه مطالب شما را به نمایش خواهند گذاشت. توجه داشته باشید اگر شما از بخش Extended Entry استفاده کرده باشید نمایش داده خواهند شد.
• <$MTEntryPermalink$> این تگ حاوی لینک پست خواهند بود که باستفاده از ای دی و علامت (#) نوشته را به دیگر آرشیو ها (موضوعی, ماهانه, سالانه, روزانه و ...) توسط لینک (anchor) خواهند داد.  اگر بخواهید اینرا دقیقا به آرشیو به خصوصی ربط دهید می توانید از خاصیت archive_type="type" استفاده نماید که به جای type می توانید نوع آرشیو مورد نظر خود را بنویسید.) Category, Individual, Weekly, Monthly ویا  Daily)
• <$MTEntryAuthor$> این تگ نام نویسنده مطلب را نشان خواهد داد و یا می توان گفت که این تگ نا کاربری نویسنده را نشان خواهند داد. اگر بخواهید برای امنیت بیشتر و یا زیبایی کار می توانید از تگ <$MTEntryAuthorNickname$> استفاده کنید که این تگ نام مستعار (Nick Name) را نشان خواهند که بعد از به کار بردن این تگ باید در بخش Profile (مشخصات) خود اسم مورد نظر را بنویسید.
• <$MTEntryDate format="%X"$> همانطوری که در بالا نوشتم این تگ زمان (ساعت) پستها رو نشان خواهند داد. که در اینجا حرف X معادل با I%:M% p% میباشد که خروجی این تگ به صورت 12:30 PM خواهد بود.
- I% ساعت پست را به صورت 12 ساعت و دو رقمی نشان خواهد داد. اگر بخواهید آنرا به 24 ساعت تغییر دهید باید از حرف k% استفاده کنید.
- M% این حرف دقیقه رو نشان خواهد. توجه داشته باشید اگر حرف M رو به صورت کوچک m بنویسید عدد ماه را نشان خواهد داد.
- p% زمان پست (صبح یا عصر) را نشان خواهد داد که خروجی آن به صورت PM, AM خواهد بود.
• <MTEntryIfAllowComments></MTEntryIfAllowComments> این دو تگ و کدهایی که بین این دو به کار میروند مربوط به فورم نظرات (Comment) میباشند که اگر در پستی که فرستاده اید به خواننده این اختیار را داده باشید که درمورد پستی که ارسال کردید نظر بدهند فورم مربوط به آن فعال خواهد شد.
• <$MTCGIPath$> این تگ آدرس فایل CGI مربوط به کامنت را نشان خواهد داد.
• <$MTCommentScript$> این تگ مربوط به تنظیمات در فایل mt.cfg میباشد که به صورت پیش فرض فایل mt-comment.cgi خواهد بود.
• <$MTEntryCommentCount$> این تگ هم تعداد نظرات را نشان خواهد داد.
• <MTEntryIfAllowPings></MTEntryIfAllowPings> این دو مربوط به دنبالک (TrackBack) میباشند که تگهای مربوط به آن در بین این دو قرار میگیرند.
• <$MTTrackbackScript$> این تگ مربوط به تنظیمات در فایل mt.cfg میباشد که به صورت پیش فرض فایل mt-tb.cgi خواهد بود.
• <$MTEntryTrackbackCount$> این تگ هم تعداد دنبالکها رو نشان خواهد داد.

کدهای بخش منو:
در حال پیش فرض منوها به چند دسته تقویم, جستجو, آرشیو ماهیانه, نوشته های اخیر, لینکها, حقوق کپی رایت و پشتیبانی می باشد.
1. تقویم:
کدهای این بخش به صورت خلاصه به صورت زیر میباشند.


<table border="0" cellspacing="4" cellpadding="0" summary="Monthly calendar with links to each day's posts">
<caption><$MTDate format="%B %Y"$></caption>
<tr>
<th abbr="Sunday" align="center">Sun</th>
<th abbr="Monday" align="center">Mon</th>
<th abbr="Tuesday" align="center">Tue</th>
<th abbr="Wednesday" align="center">Wed</th>
<th abbr="Thursday" align="center">Thu</th>
<th abbr="Friday" align="center">Fri</th>
<th abbr="Saturday" align="center">Sat</th>
</tr>
<MTCalendar>
<MTCalendarWeekHeader>
<tr>
</MTCalendarWeekHeader>
<td align="center">
<MTCalendarIfEntries>
<MTEntries lastn="1">
<a href="<$MTEntryPermalink$>"><$MTCalendarDay$></a>
</MTEntries>
</MTCalendarIfEntries>
<MTCalendarIfNoEntries>
<$MTCalendarDay$>
</MTCalendarIfNoEntries>
<MTCalendarIfBlank> </MTCalendarIfBlank>
</td>
<MTCalendarWeekFooter>
</tr>
</MTCalendarWeekFooter>
</MTCalendar>
</table>


توضیحات:
• <$MTDate format="%B %Y"$>  این تگ مربوط به تاریخ می باشد که خروجی این تگ به صورت (MM/YYYY) خواهد بود برای مثال: February 2004
• <MTCalendar></MTCalendar>  این تگها, تگهای ابتدایی و پایانی آرشیو تقویمی هستند که همانند تگها MTEntries عمل می کنند که هر چیزی بین این دو قرار گرفت تکرار خواهد شد.
• <MTCalendarWeekHeader></MTCalendarWeekHeader> این دو تگ نمایش دهنده هفته ها میباشند.
• <MTCalendarIfEntries></MTCalendarIfEntries> این تگها زمانی فعال خواهند شد که پستی در آن روز ارسال شده باشد.
• <$MTCalendarDay$> این تگ روز را در تقویم نشان می دهد.
• <MTCalendarIfNoEntries></MTCalendarIfNoEntries> این دو تگ برای زمانی هست که شما در آن روز پستی نداشته باشید.
• <MTCalendarIfBlank> </MTCalendarIfBlank> این دو تگ سل (Cell) را به صورت خالی نشان می دهند.
• <MTCalendarWeekFooter></MTCalendarWeekFooter> این دو تگ هم آخر هفته را نشان میدهند.

2. جستجو:
کدها در سرچ (جستجو) به صورت زیر میباشند:


<form method="get" action="<$MTCGIPath$><$MTSearchScript$>">
<input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
<label for="search" accesskey="4">Search this site:</label><br />
<input id="search" name="search" size="20" /><br />
<input type="submit" value="Search" />
</form>


توضیحات:
• <$MTBlogID$> این تگ, ای دی وبلاگ شما را نشان خواهد داد.


3. آرشیو ماهیانه:
کدها در این آرشیو به صورت زیر خواهد بود:


<MTArchiveList archive_type="Monthly">
<a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a><br />
</MTArchiveList>


توضیحات:
• <MTArchiveList></MTArchiveList> این دو تگ آرشیو را لیست می کنند که آنرا می توان به صورتها زیر هم استفاده کرد:
- archive_type="type" اینرا می توانید همانند بالا استفاده کرد که به جای کلمه type می توانید انواع آرشیوها (ماهانه, روزانه, هفتگی, تکی, و موضوعی) را استفاده کنید. (Category, Individual, Weekly, Monthly, or Daily)
- lastn="N" در این نوع می توانید تعداد لیست در آرشیو رو مشخص کرد.
• <$MTArchiveLink$> این تگ لینکی را به آرشیو میدهد که می توانید نوع آنرا باستفاده از  archive_type="type" مشخص کنید.
• <$MTArchiveTitle$> این تگ عنوان را در لیست آرشیوها نشان میدهد که خروجی آن در انواع مختلف آرشیوها (اگر در کد بالایی به جای Monthly این نوع آرشیو را انتخاب کرده باشید)  به صورت زیر خواهد بود:
- Category: نام آرشیو موضوعی را نشان میدهد.
- Daily: تاریخ را به صورت ماه / روز / سال (MM/DD/YYYY) نشان خواهد داد.
- Weekly: عنوان در این نوع آرشیو به صورت هفتگی خواهد بود که خروجی آن به صورت زیر خواهد بود: (MM/DD/YYYY- MM/DD/YYYY) برای مثال: February 1 2004 – February 7 2004
- اگر بخواهید تعداد نوشته های در این نوع آرشیوها مشخص کنید می توان از تگ <$MTArchiveCount$> استفاده کنید که این را باید بعد از تگ <$MTArchiveTitle$> به کار برید که در هر خط لیست تکرار شود.


4. نوشته های اخیر:
تگها در این نوع آرشیو به صورت زیر خواهد بود:


<MTEntries lastn="10">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><br />
</MTEntries>



توضیحات:
• تمامی این تگها در بالاتر توضیح داده شد اما اگر بخواهید بخواهید تعداد نوشته های اخیر را کم و یا زیاد کنید می توانید با کم و زیاد کردن عدد 10 این کار را انجام دهید.
• اگر بخواهید به غیر از نوشته های اخیر نوشته های قبلی را هم داشته باشید می توانید از خاصیت lastn="N” و offset="M” استفاده کنید. (برای استفاده از این خاصیت می توانید به مقاله ای که تحت این عنوان آقای نوید مجاهد از وبلاگ مژده نوشته اند مراجعه کنید.)


5. لینکها, کپی رایت و پشتیبانی:
در این بخش چند تگ به خصوص به کار رفته اند که به صورت زیر میباشند:


<div class="syndicate">
<a href="<$MTBlogURL$>index.rdf">Syndicate this site (XML)</a>
</div>


<MTBlogIfCCLicense>
<div class="syndicate">
<a href="<$MTBlogCCLicenseURL$>"><img alt="Creative Commons License" border="0" src="<$MTBlogCCLicenseImage$>" /></a><br />
This weblog is licensed under a <a href="<$MTBlogCCLicenseURL$>">Creative Commons License</a>.
</div>
</MTBlogIfCCLicense>


<div class="powered">
Powered by<br /><a href="http://www.movabletype.org">Movable Type <$MTVersion$></a><br />   
</div>


توضیحات:
• در بخش اول با استفاده از تگ <$MTBlogURL$> لینکی به فایل XML داده میشود.
• در بخش دوم همانطوری که در ابتدا مقاله نوشتم اگر شما حقوق کپی رایت را ساخته باشید این بخش فعال خواهد شد.
• در بخش آخر هم لینک به سایت مووبل تایپ داده شده است که با استفاده از تگ <$MTVersion$>, از ورژن ام تی که برای وبلاگ/ سایت استفاده می کنید نمایش میدهد.


[ Posted by: Taha ] . [February 13, 2004 @ 05:40 PM]

 
Comments

داريوش كبير H | *

February 14, 2004

سلام عاليه مرجع از اين بهتر شما و نويد روی ام تی رو سفيد کرديد


 

داريوش كبير H | *

February 14, 2004

يک مشکلی دارم در فتوبلاگ .ميخوام اون رو در وبلاگ نمايش بده اين کارو واسه خودم کردم شد ولی نميدونم برای ديگران چرا جواب نميده .نمونه: www.weblog.malekionline.comممنون ميشم کمک کنيد


 

سينا H | *

February 14, 2004

سلام
خيلی عالی بود
تو لينکدونی معرفی کردم
به اينجا هم لينک دادم
با تشکر-سينا


 

mosaferkoochooloo H | *

February 14, 2004

من فكر مي كنم كه سرم گيج رفت!!!!!!!! (مهر افزون.. خوش زي...)


 

کمیل H | *

February 18, 2004

وبلاگت عالیه راستی چه طور میشه تو بلاگ اسکای وبلاگ ساخت اگه تونستی اموزش اونو به میلم بفرست موفق باشی


 

طوطی H | *

February 27, 2004

خيلی خوبه!


 

سروش H | *

April 06, 2004

مرسی از نهايت دقت و توضيح. ولی من ميخوام اول از طراحی قالبهای معمولی شروع کنم. چيکار کنم؟ ميشه يه منبع خوب معرفی کنين يا همين جا توضيح بدين. بی نهايت متشکرم