۱۳۸۹ تیر ۵, شنبه

آشنایی با قالب بلاگر- قسمت اول


قالب بلاگر ، یک سند xhtml است که بر اساس یکسری متغیر ارائه شده است . این خودآموز با هدف کمک به درک قالبهای بلاگر ، آزمایش ، آموختن و تغییر آن ایجاد شده است .قالب بلاگر ، در اصل از سه نوع متغیر تشکیل شده است که یکی از این متغیرها ، کدهایی که بدنبال آن می آید را کنترل می کند . دیگری داده ها را از پایگاه داده می گیرد و بالاخره آخرین متغیر نیز حاوی اصطلاحات است . سپس این متغیرها به کمک فضاهای اسمی xml ، از یکدیگر تفکیک می شوند .
این قسمت ، نخستین بخش از 3 سری آموزشی می باشد .
تمرکز این آموزش بر روی اصول قالب ، و فضاهای اسمی خواهد بود .
فهرست موارد آموزشی بدین شرح است : ( با کلیک بر روی هر قسمت ، می توانید منبع اصلی این مطالب را نیز ببینید )
  1. Blogger Template Explanation - Sections, widgets, includables, includes. b: namespace
  2. Blogger Template Explanation - Data access. data: namespace elements.



قالب بلاگر ، یک سند xhtml است که بر اساس مشخصات آدرس زیر می باشد :
http://www.w3.org/1999/xhtml
فضاهای اسمی زیر در قالب بلاگر به کار رفته است :
# <html  
#  xmlns  = 'http://www.w3.org/1999/xhtml'   
#  xmlns:b  = 'http://www.google.com/2005/gml/b'   
#  xmlns:data = 'http://www.google.com/2005/gml/data'   
#  xmlns:expr = 'http://www.google.com/2005/gml/expr'   
# >

 

 
این فضای اسمی در سراسر سند xml برای واکشی و نمایش داده بکار می روند . فلذا این خودآموز اساسا قصد تشریح متغیرها را در فضای اسمی 'b' دارد . متغیرها در این فضای اسمی ، طرح بندی و روند قالب وبلاگ را کنترل می کنند که به قرارگیری عناصر وبلاگ در مکان مشخص و شرایط شرطی همانند حلقه ها کمک می کند . بعدا در مورد فضاهای اسمی ، بیشتر توضیح می دهیم .
اصولا قالب به بخش هایی (sections) تقسیم شده است . این بخش ها نیز به نوبه ی خود ، شامل اشیایی (widgets) هستند . اشیاء هم ، زیرمجموعه هایی (includable) دارند . زیرمجموعه ها نیز اگر بوسیله ی برچسب « شمول » (include) بکار گرفته نشوند ، بلااستفاده خواهند بود .

 

 
برچسب « بخش » section
برچسب « بخش » ، تقسیم بندی قالب بلاگر شما را تعیین می کند . « بخش » نمی تواند به طور مستقیم ، یک کد را در برگیرد . « بخش » فقط می تواند در برگیرنده ی « اشیاء » (widget) باشد . آنچه در زیر می بینید ، مشخصات و پیکربندی پشتیبانی شده توسط برچسب « بخش » می باشد .

 
1. <b:section [attribs] >  
   2. </b:section>  

 
Id
وجود این کارکن ، ضروری است
شناسه ای که سبب شناسایی « بخش » می شود ، بایستی یگانه و منحصر بفرد باشد .
این شناسه (id) می تواند برای شناسایی « بخش » ، پس از ارائه و عرضه ی وبلاگ بکار گرفته شود .
برچسبهای « بخش » بصورت برچسبهای div که از همین شناسه استفاده می کنند نیز حضور دارند .
Class
وجود این کارکن ، اختیاری است .
اسامی مشترک کلاس ، عبارتند از navbar , header,sidebar, footer
اگر شما بعدا قالب ها را تعویض کنید ، این اسامی به بلاگر کمک می کنند تا چگونه بهترین ارسال را بر روی محتویات شما داشته باشند .
Maxwidgets
وجود این کارکن ، اختیاری است .
این کارکن ، بیانگر تعداد حداکثر اشیاء مجاز در این « بخش » می باشد .
اگر شما محدوده ای را برای آن تعیین نکنید ، آن مقدار ، یک نخواهد شد .
Show addelement
وجود این کارکن ، اختیاری است .
پاسخ آن نیز می تواند بله یا خیر باشد . (yes/no)
حالت پیشفرض آن ، بله است (yes)
این فاکتور ، تعیین می کند که آیا برگه ی (tab) « عناصر صفحه » (page elements) ، پیوند « یک عنصر صفحه بیفزایید » را در این « بخش » نشان بدهد یا خیر.
Growth
وجود این کارکن ، اختیاری است .
این کارکن می تواند دارای حالات « افقی » یا « عمودی » باشد (horizontal/vertical)
حالت پیشفرض این کارکن ، عمودی است (vertical)
این کارکن ، روش ترتیب قرارگیری اشیاء درون این « بخش » را تعیین می کند که آیا « کنار به کنار » باشد یا « انباشته »

 

 

 

 
برچسب شیء (widget)
برچسب های اشیاء در درون برچسبهای « بخش » قرار دارند . دو شیوه برای دیدن کدهای HTML در صفحه ی « ویرایش HTML» وجود دارد . یک روش ، شکل ساده است که به صورت پیش فرض نشان داده می شود و دیگری شکل « گسترش اشیاء » با استفاده از جعبه ی بازرسی (check box) .
در شکل ساده ، اشیاء با پیکربندی «تک برچسب » (single tag ) ، درون « بخش ها » قرار گرفته اند .
یعنی باز و بسته شدن برچسب ، در یک خط صورت می گیرد .
# <!--Simple form.-->  
# <b:widget [attribs] />  
#   
# <!-- Expanded form. -->  
# <b:widget [attribs] >  
# </b:widget>

 

 
یک « شیء » می تواند حاوی مشخصات زیر باشد :
Id
وجود این کارکن ، ضروری است
این کارکن ، فقط می تواند شامل حروف و اعداد باشد .
هر شناسه ی « شیء » بایستی منحصر بفرد و یگانه باشد .
شناسه ی « شیء » بدون پاک کردن و ایجاد « شیء» جدید نباید تغییر کند .
همانند برچسب های « بخش » ، برچسب های « شیء » نیز به برچسب های div تبدیل شده که از همان شناسه استفاده می کند .
Type
وجود این کارکن ، ضروری است .
این کارکن نشان می دهد که این شیء از چه نوعی است و بایستی یکی از انواع صحیحی باشد که در زیر ، فهرست شده است .
Locked
وجود این کارکن ، اختیاری است .
این کارکن می تواند دارای حالات بله یا خیر باشد (yes / no )
حالت پیشفرض این کارکن ، نه می باشد (no)
اشیاء قفل شده (locked) ، قابلیت جابجایی یا حذف از برگه « عناصر صفحه » را ندارند .
Title
وجود این کارکن ، اختیاری است .
این کارکن ، یک عنوان برای اشیاء است .
اگر عنوانی برای اشیاء انتخاب نشود ، یک عنوان پیش فرض ، مثل "list1" بکار خواهد رفت .
Page type
وجود این کارکن ، اختیاری است .
این کارکن ، می تواند شامل هر یک از این موارد باشد : item , main , archive , all
حالت پیشفرض این کارکن ، all می باشد .
اشیاء صرفا در صفحات تعیین شده در وبلاگ شما به نمایش در خواهند آمد .
این در حالی است که در برگه ی عناصر صفحه (page elements) ، بدون توجه به نوع آنها ، به نمایش در خواهند آمد .

 

 

 
نوع « اشیاء » می تواند یک از انواع تعیین شده باشد ، از جمله موارد زیر :
BlogArchive, Blog, Feed, Header, HTML, SingleImage, LinkList, List, Logo, BlogProfile, Navbar, VideoBar, NewsBar
اشیاء در شکل ساده ، فقط موقعیت قرارگیری را به شما نشان می دهند . اگر شما خواهان ویرایش اشیاء هستید ، به حالت نمایش پیشرفته ، یعنی « گسترش اشیاء » (expand widget) تغییر حالت بدهید .

 

 

 

 
برچسب زیرمجموعه (includable)
اشیاء ، مجموعه ای از زیرمجموعه ها و معمولا شامل یک زیرمجموعه ی اصلی هستند . « زیر مجموعه ها » ، همانگونه که از نامشان پیداست ، تکه هایی از کدهایی هستند که می توانند با هم در تعامل باشند تا از برخی تکرارها ، جلوگیری کنند . فلذا این زیرمجموعه ها می توانند در جاهای مختلف بکار گرفته شوند . سوای موضوع جلوگیری از تکرارها ، زیرمجموعه ها به درک ساختار اشیاء کمک می کنند . برچسب « زیرمجموعه » بخشی از فضای اسمی 'b' نیز می باشد . از اینرو ، زیرمجموعه دارای برچسبی به این صورت خواهد بود .
1. <b:includable id='[some-unique-id]' [attribs] >  
   2. </b:includable>  

 
برچسب زیرمجموعه دارای مشخصات زیر است :
Id
وجود کارکن شناسه ، ضروری است .
کارکن شناسه ، کارکن تعیین هویت است که از حروف و اعداد تشکیل شده است .
توجه : اشیاء بایستی حداقل دارای یک « زیرمجموعه » باشند که شناسه ی آن نیز "main" باشد .
Var
وجود این کارکن ، اختیاری است .
این کارکن ، یک کارکن تعیین هویت متشکل از حروف و اعداد است که برای ارجاع داده های درون این بخش ، بکار می رود .
داده ها نیز همانند فضای اسمی ، ارجاع داده خواهند شد . یعنی اگر "var=a" بکار رود ، سپس عنوان (title) در داده (data) می تواند به صورت a:title رجوع داده شود .

 

 

 
برچسب شمول (include)
« زیرمجموعه » هایی که در بالا ایجاد شد ، نیازمند آن است که زیرمجموعه ی اشیاء شود و بهمین منظور از برچسب « شمول » استفاده می کنیم . اگر « اشیاء » شما صرفا دارای یک « زیرمجموعه » است که در این صورت ، شناسه ی آن ، "main" خواهد بود ، نیازی نیست که بخاطر آن ، یک « شمول » جداگانه تشکیل دهیم ، چرا که « تک زیرمجموعه » بصورت پیش فرض ، تحت شمول قرار خواهد گرفت . برچسب « شمول » ، شامل دو مشخصه ی اصلی است : « نام » که به شناسه ی « زیرمجموعه » ارجاع می دهد و « داده » که به متغیر (var) زیرمجموعه ارجاع می دهد . برچسب « شمول » ، حالت « خودبسته شو » داشته و نیازی به برچسب « بستن » ندارد . 

1. <b:include name='[the-includable-name]' data='[the-expression-for-var]'/>  


و اما مشخصات نام و داده
Name
وجود این کارکن ، ضروری است .
این کارکن ، به « زیرمجموعه » ای که بایستی تحت شمول قرار گیرد ، اشاره می کند .
بنابراین بایستی « زیرمجموعه » ای با شناسه ی این نام وجود داشته باشد .
Data
وجود این کارکن ، اختیاری است .
همانند فراسنجه ای (parameter) که به یک کارکرد یا تابع میرسد ، این داده نیز به « زیرمجموعه » می رسد .
این کارکن ، بخشی از داده است که به سمت بخش « زیرمجموعه » حرکت خواهد کرد .

 

 
ما می توانیم هر نامی را برای « زیرمجموعه » برگزینیم ، ولی آن اسم بایستی برای « اشیاء » یگانه و منحصر بفرد باشد . این زیرمجموعه می تواند در یک یا چند جا در اشیاء بوسیله ی برچسب « شمول » بکار رود .

 

 

 
برچسب شرطی اگر/ وگرنه (if/else)
این برچسب به شکل زیر است :
# <!-- Only if-->  
# <b:if cond='[some condn check]'>  
#  [Then do this]  
# </b:if>  
#   
#   
# <!-- both if and else-->  
# <b:if cond='[some cond check]'>  
#  <!--  [Then do this]  -->  
# <b:else/>  
#  <!--  [else do this]  -->  
# </b:if> 

 

 
از روی شکل بالا ، عملکرد این برچسب ، کاملا مشخص است .
چیزی که بایستی بدانیم ، این است که برچسب « وگرنه » (else) ، حالت « خود بسته شو » دارد .
برای درک بهتر مطلب ، مثالهای زیر را ببینید.
1. <!-- to check a boolean variable. -->  
   2. <b:if cond='data:useImage'>   
   3.  <!--  [execute if the header for your blog is image instead of text]  -->  
   4. </b:if>  
   5.   
   6. <!-- to compare equivalence of two values-->  
   7. <b:if cond='data:blog.pageType == "item"'>   
   8.  <!--  [True if the current page is an item page (post page).]  -->  
   9. </b:if>  
  10.   
  11. <!-- to compare non-equivalence -->  
  12. <b:if cond='data:displayname != "Fred"'>   
  13.  <!--  [True if this is not Fred's display name.]  -->  
  14. </b:if>  
  15.   
  16. <!-- comparing greater than, less than-->  
  17. <b:if cond='data:post.numComments > 1'>   
  18.  <!--  [True if the current post has more than one comment.]  -->  
  19. </b:if>  

 

 

 

 

 

 

 
برچسب حلقه (loop)
این برچسب نیز بخشی از فضای اسمی 'b' است . عملکرد آن نیز همانند یک حلقه است . یعنی برای هر عنصر در مجموعه ای از عناصر ، می توانید کار خاصی را انجام دهید . مثلا در بخش نظرات وبلاگ ، همه ی نظرات را نمایش دهد . اگر شما بدنبال ایجاد تغییراتی در بخش نظرات وبلاگ خودتان هستید ، بایستی نگاهی به یان حلقه داشته باشید . کارکرد این برچسب ، بسیار واضح و روشن است . فقط کافی است که نگاهی به آن بیندازید .

 
1. <b:loop var='some-identifying-var' values='set-of-something'>  
   2.  <!--  [For every var in the values i.e., for every data in the set of data do something here]  -->  
   3. </b:loop>  

 

 

 

 

 

 

 

 

 

 
اکنون شما ، پایه های کار را انجام دادید ولی هنوز یک چیز خیلی مهم باقی مانده است : نمایش داده های شما .
بدیهی است شما نمی خواهید که فقط یک صفحه ی خوشگل بدون داده داشته باشید .
شما بایستی داده هایتان را نیز نمایش دهید .
بنابراین بایستی چیزهایی را در مورد فضای اسمی داده نیز یاد بگیریم .
با توجه به چیزهایی که گفته شد ، فضای اسمی داده ، حاوی مهمترین متغیرهاست و اگر در این قسمت به آن بپردازیم ، سبب بهم ریختگی ذهنی شما خواهد شد .
پس مقاله ی جداگانه ای را در این رابطه خواهم نوشت .
بدانید که هنوز بایستی تجربه ی بیشتری کسب کنید ، پس مطلب بعدی را نیز حتما بخوانید .
بنابراین بروید یک استکان چای بنوشید و آماده شوید که مطالعه ی کدها را شروع کنیم .

 

 

 

 
از اینکه با نظرات ارزشمند خودتان ، به من کمک کنید ، خوشحال می شوم .
اگر توضیحات بهتری در این رابطه دارید ، در بخش نظرات بنویسید .

هیچ نظری موجود نیست:

ارسال یک نظر

بازدیدکننده ی گرامی ، از اینکه بنده رو مفتخر به دریافت نظرات ارزشمند خودتون می کنید ، متشکرم . حسین حقگو

Free counter and web stats