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

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


این نوشتار ، قسمت دوم از خودآموز سه قسمتی « قالب بلاگر » است که در خصوص داده ها ، فضای اسمی و آشنایی با چگونگی دستیابی به متغیرهای آن به بحث می پردازد .
فضای اسمی داده ، مهمترین برچسب است ، چرا که راهی است که بدانوسیله شما می توانید به داده هایتان دسترسی پیدا کنید . اصولا فضای اسمی ، راهی برای شناسایی و حفظ یگانگی در گستره ای از عناصر موجود است . این شناسایی و یگانگی در اسناد xml بدین صورت است : [namespace-identifier]:[the-tag]
در اینجا ، داده ، شناسه ی فضای اسمی است و عناصر یکتای بیشتری نیز دارد . اصولا یک فضای اسمی ، در شناسایی و اختصاص اسامی یکتا به متغیرها کمک می کند .
متغیرهای داده ، تنوع فراوانی دارند . برخی از این متغیرها ، دسترسی کلی دارند . منظورم از دسترسی کلی ، این است که در هر جایی ، قابلیت دسترسی دارند . در حالیکه شناسه ها و برچسب های مشخص ، صرفا می توانند توسط شیء مشخص ، دسترسی داشته باشند .
اکنون به چگونگی عملکرد آنها می پردازیم :

 

 
داده های با دسترسی کلی The Globally available data
این داده ها در هر جایی از وباگ شما ، قابلیت دسترسی دارند . بنابراین هر جا که تمایل داشته باشید ، می توانید از آنها استفاده کنید . این داده ها به صورت بخشی از داده های « وبلاگ » ارجاع خواهند شد . مثلا در عنوان وبلاگ به صورت blog.title مورد مراجعه قرار می گیرند . فراموش نکنید که داده های فضای اسمی را در آغاز کار ، تحت شمول قرار دهید . کدهای زیر ، چگونگی کاربرد این کدها را تشریح می کند .
<!--[The blog's title.]-->  
 <data:blog.title/>   
   
 <!--[  
 The type of the current page. One of 'item', 'archive', or 'index'.  
 This var is quite useful for selectively showing content on   
 different type of pages. Put an if and check if its index page or   
 item page and then display selective content  
 ]-->  
 <data:blog.pageType/>  
   
 <!--  [The URL of the current page.]  -->  
 <data:blog.url/>  
   
 <!--  [The homepage of the blog.]  -->  
 <data:blog.homepageUrl/>  
   
 <!--[  
 The title of the current page. This is often the blog title,   
 but may contain additional information on archive or post pages.  
 ]-->  
 <data:blog.pageTitle/>   
   
 <!--  [The encoding to use for the blog, e.g. UTF-8.]  -->  
 <data:blog.encoding/>   
   
 <!--[  
 Either "ltr" or "rtl" for left-to-right   
 and right-to-left languages, respectively.  
 ]-->  
 <data:blog.languageDirection/>   
   
 <!--  [The autodiscovery feed links for the page header.]  -->  
 <data:blog.feedLinks/> 

 
جدای از داده های با دسترسی کلی ، داده های مشخصی نیز هستند که برای انواع مشخصی از اشیاء کاربرد دارند. در زیر ، فهرستی از انواع اشیاء را مشاهده می کنید . برای هر یک از این اشیاء ، برچسب های مختلفی موجود است .
  • Page Header
  • Blog Archives
  • Profile
  • Text / HTML / JavaScript
  • Feed
  • Picture
  • Labels
  • List
  • Link List
  • Logo
  • Blog Posts

 

 

 
اشیاء سرصفحه Page header widgets
این اشیاء ، اصولا توسط « بخش » سرصفحه (header section) در مدخل وبلاگ شما ، مورد استفاده قرار میگیرند . یعنی جایی که عنوان و توضیح وبلاگ آورده شده است . این شیء ، بسیار ساده بوده و صرفا از دو نوع از متغیرهای داده جهت دسترسی ، استفاده می کند . بخاطر داشته باشید که این اشیاء به کاربردی همچون شناسه ی وبلاگ (blog.identifier) که در مورد داده های با دسترسی کلی وجود داشت ، نیازی ندارند . این اشیاء می توانند بطور مستقیم در اشیاء از نوع سرصفحه به کار گرفته شوند .
1. <!--[The blog's title. ]-->  
   2. <data:title/>   
   3.   
   4. <!-- [ The blog's description. ]-->  
   5. <data:description/>  

 

 
آرشیو وبلاگ Blog Archive
سه نوع پیکربندی برای آرشیوهای وبلاگ وجود دارد .



  • فهرست (menu)



  • مسطح (flat)



  • سلسله مراتب (hierarchy)
اگر شما نسخه ی جدیدی را طراحی می کنید ، استفاده از پیکربندی « مسطح » آسانتر است . حالا می توانید ادامه ی کار را به شیوه ی دلخواهتان بپیمایید .
داده های کلیدی بشرح زیر هستند .



  • Title



  • Style



  • Data
Data : شامل نام مدت آرشیو ، آدرس پست و شماره ی پست در طول مدت می باشد .


Title : عنوان شی ء
Style : شامل یکی از حالات زیر خواهد بود :



  • Menu



  • Flat



  • Hierarchy
Data : لیستی از هر بخش از آرشیو که هر کدام از آنها ، شامل موارد زیر است :



  • Name : نام مدت یا دوره ی تکرار آرشیو



  • url : پیکربندی پستهای موجود در صفحه



  • Post-count : تعداد پست های موجود در این مدت
کاربرد : « زیر مجموعه » را برای حالت مسطح مورد بررسی قرار دهید که می تواند به صورت شمول در زیرمجموعه ی اصلی برای نمایش ، تحت شمول قرار گیرد .


<!--[ Simple usage of title ]-->   <b:if cond='data:title'>    <h2><data:title/></h2>   </b:if>      <!--[ For a includable flat type ]-->   <b:includable id='flat' var='data'>    <ul>     <b:loop values='data:data' var='i'>      <li class='archivedate'>       <a expr:href='data:i.url'>        <data:i.name/>       </a>       (<data:i.post-count/>)      </li>     </b:loop>    </ul>   </b:includable>


 
شیء نمایه profile widget
این شیء ، نمایه ی نویسنده ی وبلاگ است که می تواند یک نفر یا یک تیم نویسنده باشد . برای وبلاگی با یک نویسنده ، شیء نمایه ، دارای اطلاعات زیر خواهد بود



  1. title
    عنوان شیء




  2. userUrl
    آدرس نمایه ی نویسنده




  3. location
    مکان نمایه ی نویسنده




  4. aboutme
    اطلاعات « درباره ی من » در نمایه ی نویسنده




  5. displayname
    نام قابل نمایش نویسنده




  6. photo
    عکس موجود در نمایه ی نویسنده که حاوی موارد زیر است







    1. url
      آدرس عکس




    2. width
      عرض عکس در واحد پیکسل




    3. height
      ارتفاع عکس در واحد پیکسل




    4. alt
      نوشته های مربوط به عکس




 
شیء مربوط به تیم نویسندگان ، حاوی اطلاعات کمتری است که برچسبهای آن را در زیر می بینیم .
  • title
عنوان شیء




  • authors
    فهرست نویسندگان که هر کدام از آنها شامل موارد زیر است :




  1. displayname
    نام قابل نمایش نویسنده

  2. userURL
آدرس نمایه ی نویسنده

 
اگر شما می خواهید وبلاگتان را طوری طراحی کنید که به هر دو حالت تک نویسنده و تیم نویسندگان ، دسترسی داشته باشید ، می توانید از حالت زیر برای تعیین وضعیت بین دو حالت گفته شده استفاده کنید .
Data : team variable

 
در زیر نیز می توانید این حالت را مشاهده کنید .

 



 

 

 
شیء جاوااسکریپت- اچ تی ام ال – متن text/HTML/JavaScript widget
این شیء بسیار ساده بوده و فقط شامل دو عنصر است :
Title : عنوان شیء
Content : محتویات شیء
کاربرد این دو عنصر مشابه همان چیزی است که در بخش کدهای آرشیو توضیح دادیم .

 
 <b:if cond='data:team=="true"'>     <!--[display multiple authors] -->   </b:if>

 

 

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

 



  1. title
    عنوان شیء




  2. feedUrl
    آدرس خوراک




  3. feedData
    موارد و عناصر خوراک که هر کدامشان نیز شامل موارد زیر هستند







    1. title
      عنوان هر مورد




    2. str_published
      زمان انتشار آن مورد ( پیکربندی در محدوده ی زمانی وبلاگ )




    3. published
      زمان انتشار آن مورد ( در ثانیه هایی پس از آن زمان )




    4. str_updated
      زمان آخرین روزآمدسازی ( پیکربندی در محدوده ی زمانی وبلاگ )




    5. updated
      زمان آخرین روزآمدسازی ( در ثانیه هایی پس از آن زمان )




    6. author
      نویسنده ی مطلب




    7. summary
      قطعه ای از متن ( در صورت دسترسی )




    8. alternate
      مکانی که اطلاعات بیشتری در خصوص این مورد ، اخذ می شود . این قسمت شامل موارد زیر می شود :







      1. href
        پیوند دائمی این مورد




      2. type
        نوع مفاد این مورد






 


 
شیء تصویر Picture Widget

شیء تصویر ، شامل یک « تک تصویر » است و کلیه ی داده های مرتبط برای داده را تهیه می کند .


 



  1. title
    عنوان شیء




  2. sourceUrl
    آدرس تصویر




  3. width
    عرض تصویر در واحد پیکسل




  4. height
    ارتفاع تصویر در واحد پیکسل




  5. caption
    عنوان تصویر


 

شیء برچسب Labels Widget

شیء برچسب ، شامل لیستی از همه ی برچسب ها است که در وبلاگ استفاده شده اند .






  1. title: The widget title.
    عنوان شیء




  2. labels: The list of labels, each of which contains:
    فهرست برچسب ها که هر کدام از آنها شامل موارد زیر است :







    1. name
      متن برچسب




    2. count
      تعداد پستهایی که با این برچسب وجود دارند




    3. url
      یک پیوند به صفحه ای که پستهای دارای این برچسب را نشان می دهد .




 

شیء فهرست List Widget


 

این شیء ، ساده ترین نوع فهرست است . هر مورد فقط یک تکه متنی دارد ، بدون هیچ نوع متفاوتی از داده .




 



  1. title
    عنوان شیء




  2. items
    فهرست موارد





    کاربرد : مشابه آنچه که برای فهرست پیوندها توضیح داده شد .











فهرست پیوندها Link List Widget


 
یک لیست تقریبا تخیلی که هر مورد از آن ، دو بخش دارد : متن و پیوند

 



  1. title:
    عنوان شیء




  2. links:
    فهرست پیوندها ، که هر کدام از آنها شامل موارد زیر است :







    1. name:
      متن پیوند




    2. target:
      آدرس پیوند



 <!--[Check the complete implementaion of the linklist widget. ]-->   <b:widget id='LinkList1' locked='false' title='More Blogs' type='LinkList'>    <b:includable id='main'>     <b:if cond='data:title'>      <h2><data:title/></h2>     </b:if>     <div class='widget-content'>      <ul>       <b:loop values='data:links' var='link'>        <li>         <a expr:href='data:link.target'>          <data:link.name/>         </a>        </li>       </b:loop>      </ul>      <b:include name='quickedit'/>     </div>    </b:includable>   </b:widget>

 

 
لوگو یا آرم logo
از این ساده تر ، چیزی نداریم . اینجا فقط تکه ای از داده داریم . همین !

 



  1. fullButton
    آدرس دگمه ی بلاگری که توسط شما انتخاب شده است .


 


 


 


 


 


 


 


 

شیء پست وبلاگ Blog Post Widget

این شیء ، بخش مرکزی هر وبلاگ است . این بخش ، پیچیده ترین بخش وبلاگ نیز بشمار می رود .


 



  1. feedLinks
    فهرستی از خوراک های این صفحه است . در صفحه ی اصلی ، شامل خوراک وبلاگ اصلی خواهد بود . در صفحه ی موارد و عناصر ، شامل خوراک نظرات می باشد . شیء پست وبلاگ ، زیرمجموعه ای دارد که بصورت پیوند خوراک تهیه شده که به نوبه ی خود از زیرمجموعه ی دیگری به نام « بدنه ی پیوند خوراک » استفاده می کند .







    1. url
      آدرس خوراک




    2. name
      نام خوراک ( مثلا پست یا نظرات )




    3. feedType
      نوع خوراک (Atom or RSS)




    4. mimeType
      نوع تقلید خوراک






  2. olderPageUrl
    اگر پستهای قدیمی تر از پستی که هم اکنون بر روی صفحه وجود دارد نیز موجود باشد ، این گزینه ، آدرس آن پستها خواهد بود . نوع صفحه ، حساس به مفاد (contex-sensitive) می باشد ( این پیوند برای کلیه ی صفحات نمی باشد . بنابراین از دستورات شرطی برای آن استفاده می کنیم )




  3. olderPageTitle
    عنوان پیوند به صفحات پست های قدیمی تر




  4. newerPageUrl
    آدرس پستهای جدیدتر نسبت به پستهای قدیمی تر




  5. newerPageTitle
    عنوان پستهای جدیدتر نسبت به پستهای قدیمی تر




  6. commentLabel
    عبارت مورد استفاده برای نمایش تعداد نظرات ، مثلا « نظرات خوانندگان »




  7. authorLabel
    عبارت مورد استفاده برای تشخیص نویسنده ی پست ، مثلا « نوشته شده توسط »




  8. timestampLabel
    عبارت مورد استفاده برای تشخیص زمان نوشته شدن پست ، مثلا « تاریخ ارسال »




  9. postLabelsLabel
    عبارت مورد استفاده برای معرفی فهرست برچسب های مورد استفاده در هر پست ، مثلا « برچسب های این نوشتار »




  10. backlinksLabel
    عبارت مورد استفاده برای پیوندهای برگشتی به این پست ، مثلا « پیوندهای مربوط به این نوشتار »




  11. posts
    فهرستی از همه ی پستها ی موجود در این صفحه . هر پست ، شامل موارد زیر می باشد .







    1. dateHeader
      تاریخ این پست ، که صرفا اگر این پست ، نخستین پستی باشد که در این فهرست در روز جاری ارسال شده باشد ، نمایش داده خواهد شد .




    2. id
      شناسه ی پست عددی




    3. title
      عنوان پست




    4. body
      محتوای پست




    5. author
      نام قابل نمایش نویسنده ی پست




    6. url
      پیوند دائمی پست




    7. timestamp
      برچسب زمان پست . این مورد با آنچه در بند یکم دیدیم متفاوت است . این تاریخ برای همه ی متن ها وجود خواهد داشت .




    8. labels
      فهرست برچسب های پست . هر برچسب ، حاوی موارد زیر خواهد بود .







      1. name
        متن برچسب




      2. url
        آدرس صفحه ای که کلیه ی پستهای این وبلاگ را که دارای این برچسب هستند ، فهرست می کند .




      3. isLast
        درست یا غلط . مشخص می کند که آیا این برچسب ، آخرین برچسب در فهرست است یا خیر ( مورد استفاده ی این بخش ، برای این است که سامانه بداند که آیا باید از ویرگول استفاده کند یا نه ؟ ) (true or false )






    9. allowComments
      « درست » (true) در صورتیکه این پست ، اجازه ی اعمال نظرات کاربران را داشته باشد .




    10. numComments
      تعداد نظرات موجود در این پست




    11. showBacklinks
      تعیین وضعیت نمایش یا عدم نمایش پیوندهای برگشتی برای این پست




    12. numBacklinks
      تعداد پیوندهای برگشتی برای این پست




    13. addCommentUrl
      آدرس فرم « افزودن نظر » از این پست




    14. emailPostUrl
      آدرس فرم « ایمیل این پست » برای این پست




    15. editUrl
      آدرس فرم « ویرایش » برای این پست




    16. feedLinks
      فهرستی از خوراک های مشخص برای این پست ( این بخش ، متفاوت از آنچیزی است که در بخش پیوند خوراک وبلاگ دیدیم . این می تواند صرفا خوراکی حاوی نظرات پست باشد ) . هر کدام از اعضای این فهرست ، دارای موارد زیر خواهند بود .







      1. url
        آدرس خوراک




      2. name
        نام خوراک ( مثلا پست ها یا اینکه نظرات )




      3. feedType
        نوع خوراک (Atom or RSS).




      4. mimeType
        نوع تقلید خوراک






    17. comments
      فهرستی از کلیه ی نظرات این پست ( صرفا بر روی صفحات آیتم ) . هر مورد آن نیز شامل موارد زیر خواهد بود .







      1. id
        شناسه ی عددی نظر




      2. body
        بدنه ی نظر




      3. timestamp
        زمان ایجاد نظر




      4. author
        نمایش نام نویسنده ی نظر یا اعلام به صورت ناشناس




      5. authorUrl
        آدرس نمایه ی نویسنده ی نظر ( در صورتیکه ناشناس نباشد )




      6. deleteUrl
        آدرسی برای پاک کردن نظر




      7. isDeleted
        تعیین وضعیت پاک شدگی نظر ( متنی با عنوان « نظر حذف شده » جایگزین مکان قبلی همان نظر می شود .





   1. <!-- [Using feedlinks ]-->     2. <!-- [feedlinks for the blog can be used displayed using the elements in this way. ]-->     3. <data:feedlinks.url/>     4. <!-- [whereas feedlinks for a post which include e.g. comments can be shown this way. ]-->     5. <data:post.feedlinks.url/>     6.      7.      8. <!--[     9. if inside a includable and a var is assigned to it while using the include     10. then use it in this manner    11. ]-->    12. <b:include data='post.feedLinks' name='feedLinksBody'/>    13. <b:includable id='feedLinksBody' var='links'>    14.  <b:loop values='data:links' var='f'>    15.   <a class='feed-link' expr:href='data:f.url' expr:type='data:f.mimeType'>    16.    <data:f.name/> (<data:f.feedType/>)    17.   </a>    18.  </b:loop>    19. </b:includable> 

 

 

 
بنابراین از فهرست بالا ، عناصر داده ای که در فهرست اصلی هستند ، می توانند به طور مستقیم ، قابل دسترسی باشند ، همانند آنچه در بالا در خصوص پیوند خوراک وبلاگ دیدیم . « زیرفهرستها » در فهرست اصلی می توانند با استفاده از عامل نقطه ، قابل دسترسی گردند . بعبارتی همانند برنامه نویسی شیء گرا که [classNameVar].[objectVar] به شما دسترسی به متغیرهای عنصر یک کلاس را میدهد ، عمل می کند . فلذا برای دسترسی عمیق تر به متغیرهای فهرست ، از عامل نقطه (dot operators) بهره بگیرید .

 <!--[  
 For accessing the comment id you will have to use either the   
 includable method shown previously or use this one.  
 ]-->  
 <data:post.comments.id/>  
 <!-- [but you should use includable as they are cool :) ]--> 



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

 
ادامه ی مطلب را در قسمت سوم بخوانید .

 
اگر هر گونه نظر تکمیلی یا اصلاحی دارید ، در بخش نظرات وارد کنید .

 

 

 

 

 

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

ارسال یک نظر

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

Free counter and web stats