روزنوشتهای من درباره اینترنت، کامپیوتر، سایبراسپیس و ...!

بازگشت به صفحه اصلی وبلاگ

 
 

May 22, 2006

 
 
 

تگ‌های پلاگ‌اين Paginate بخش 2

در ادامه مطلب قبلی که تعدادی از تگ‌های پلاگ‌اين Paginate را شرح دادم در اين بخش هم تعدادی ديگری از تگ‌ها را توضيح می‌دهم. اينجا توضيحاتی در مورد کليات اين‌ پلاگ‌اين داده ام.

تگ‌های شرطی

با استفاده از تگ‌های شرطی می‌توان براساس اين‌که کاربر در چه صفحه‌ای قراردارد، متن خاصی را نمايش داد. به علت اين‌که تتگ‌های شرطی پلاگ‌اين paginate کد php توليد می‌کنند، با استفاده از علامت «_» از تگ‌های شرطی خود MT متمايز شده‌اند. اين مسئله به‌اين معنی است که به‌جای تگ <MTElse> بايد از تگ <MTPaginateElse_> استفاده کنيد.

جدول نيز نشان می‌دهد هر کدام از تگ‌های شرطی در چه صفحاتی مثبت (true) می‌شوند:

  • MTPaginateIfFirstPage_
    متون داخل يک تگ فقط در صورتی صفحه، اولين صفحه يا تنها صفحه باشد، نمايش پيدا می‌کنند.
     
  • MTPaginateIfLastPage_
    متون داخل يک تگ فقط در صورتی صفحه، آخرين صفحه يا تنها صفحه باشد، نمايش پيدا می‌کنند.
     
  • MTPaginateIfMiddlePage_
    متون داخل يک تگ فقط در صورتی که چندين صفحه وجود داشته باشد و صفحه يک صفحه ميانی باشد (اولين و آخرين صفحه نباش)، نمايش پيدا می‌کنند.
     
  • MTPaginateIfPreviousPage_
    متون داخل يک تگ فقط در صورتی که چندين صفحه وجود داشته باشد و صفحه دارای صفحه قبلی باشد (اولين صفحه نباشد)، نمايش پيدا می‌کنند.
     
  • MTPaginateIfNextPage_
    متون داخل يک تگ فقط در صورتی که چندين صفحه وجود داشته باشد و صفحه دارای صفحه بعدی باشد (آخرين صفحه نباشد)، نمايش پيدا می‌کنند.
     
  • MTPaginateIfAllPages_
    متون داخل يک تگ فقط در صورتی صفحه، صفحه‌ای باشد که همه مطالب صفحات را نمايش می‌دهد، نمايش پيدا می‌کنند.
     
  • MTPaginateIfPageHeader_
    متون داخل يک تگ فقط در صورتی بخش جاری اولين بخش صفحه باشد، نمايش پيدا می‌کنند.
     
  • MTPaginateIfPageFooter_
    متون داخل يک تگ فقط در صورتی بخش جاری آخرين بخش صفحه باشد، نمايش پيدا می‌کنند.
     
  • MTPaginateElse_
    از اين تگ تنها می‌توان داخل ديگر تگ‌های شرطی اين پلاگ‌اين استفاده کرد. در صورتی که نتيجه تگ شرطی اصلی منفی باشد متون داخل اين تگ نمايش داده می‌شوند.
    در مثال زير اگر کاربر در صفحه‌ای باشد که همه مطلب صفحات را نمايش می‌شود متن «شما همه مطالب را مشاهده می‌کنيد» نمايش داده می‌شود و در غير اين صورت متن «شما تنها بخشی از مطالب را مشاهده می‌کنيد» نمايش داده می‌شود:

<MTPaginateIfAllPages_>
<p> شما همه مطالب را مشاهده می‌کنيد </p>
<MTPaginateElse_>
<p> شما تنها بخشی از مطالب را مشاهده می‌کنيد </p>
</MTPaginateIfAllPages_>

تگ MTPaginateContent

نوشته‌هايی که مايليد صفحه صفحه شوند در داخل اين تگ قرار می‌گيرند. شما با استفاده از خصوصيات زير می‌توانيد طريقه صفحه‌صفحه شدن مطالب را تعيين کنيد:

  • max_words="n"
    اين خصوصيت تعيين می‌کند در هر صفحه حداکثر چند کلمه‌ می‌تواند وجود داشته باشد. مقدار پيش‌فرض 400 است.
     
  • max_bytes="n"
    اين خصوصيت تعيين می‌کند هر صفحه حداکثر چند بايت‌ می‌تواند باشد. در صورت تعيين اين خصوصيت، خصوصيت “max_words” ناديده گرفته خواهد شد.
     
  • max_sections="n"
    اين خصوصيت تعيين می‌کند در هر صفحه حداکثر چند بخش وجود داشته باشد (شما می‌توانيد به‌صورتی که بعدا توضيح داده خواهد شد، محتويات خود را بخش‌بندی کنيد). در صورت تعيين اين خصوصيت، خصوصيات “max_words” و “max_bytes” ناديده گرفته خواهند شد.
     
  • section_start_tag="p"
    اين خصوصيت تعيين می‌کند کدام تگ برای شروع هر بخش در نظر گرفته شود. هر وقت نياز به اينجاد صفحه جديد وجود داشت، شکستی بين بخش‌ها صورت خواهد گرفت. در مثال زير هر پاراگراف (که در HTML با تگ p مشخص می‌شود) در يک بخش قرار می‌گيرد:

    <MTPaginateContent section_start_tag="p">
    ....
    </MTPaginateContent>

  • section_start="section start"
    اين خصوصيت تعيين می‌کند چه جمله‌ای در متن شروع هر بخش را مشخص ‌کند. هر وقت نياز به اينجاد صفحه جديد وجود داشت، شکستی بين بخش‌ها صورت خواهد گرفت. در صورت تعيين اين خصوصيت، مقدار خصوصيت section_start_tag ناديده گرفته خواهد شد. برای اين که شکسته شدن صفحه قبل از متن “<div class=”section”>” اتفاق بيفتد از کد زير بايد استفاده کنيد: )از کد HTML نمی‌توان به طور مستقيم استفاده کنيد. علامت “<” بايد تبديل به “&lt;” و علامت “>” بايد تبديل به “&gt;” شود.)
     
  • section_break="text"
    اين خصوصيت تعيين می‌کند چه جمله‌ای در متن بخش‌ها را از هم جدا می‌کند. هر وقت نياز به اينجاد صفحه جديد وجود داشت، شکستی بين بخش‌ها صورت خواهد گرفت. متن نشان دهنده فواصل بين بخش‌ها (که توسط اين خصوصيت تعيين شده است) در متن اصلی نمايش داده نخواهد شد. به طور پيش‌فرض مقدار اين خصوصيت “__MTPAGINATE_SECTION_BREAK__” است. اين به اين معنی است که هر جا در متن اين را بنويسيد، يک بخش جديد به وجود می‌آيد. برای تعيين “<p>----</p>” به عنوان جدا کننده هر بخش از کد زير بايد استفاده کرد:

<MTPaginateContent section_break="&lt;p&gt;----&lt;/p&gt;">
...
</MTPaginateContent>

  • page_break="text"
    اين خصوصيت تعيين می‌کند چه جمله‌ای در متن باعث ايجاد يک صفحه جديد شود. اين جمله در متن نمايش پيدا نمی‌کند. به طور پيش‌فرض جمله “__MTPAGINATE_PAGE_BREAK__” در متن باعث ايجاد صفحه جديد می‌شود. برای تعيين “<p>====</p>” به عنوان جدا کننده صفحه از کد زير بايد استفاده کرد:

<MTPaginateContent page_break="&lt;p&gt;====&lt;/p&gt;">
...
</MTPaginateContent>

تگ MTPaginateSectionBreak

اين تگ فاصله بين بخش‌ها را تعيين می‌کند. هر وقت نياز به ايجاد صفحه جديد وجود داشت، شکستی بين بخش‌ها صورت خواهد گرفت. برای مثال در کد زير بعد از هر مطلب يک بخش جديد ايجاد می‌شود (در واقع هر مطلب در يک بخش قرار می‌گيرد):

<MTPaginateContent max_bytes="1000">
<MTEntries lastn="20">
<p>
<b><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></b>
<$MTEntryExcerpt$>
</p>
<$MTPaginateSectionBreak$>
</MTEntries>
</MTPaginateContent>

تگ MTPaginatePageBreak

اين محل شکسته شدن صفحه را تعيين می‌کند. در مثال زير بعد از هر مطلب يک صفحه جديد ايجاد می‌شود:

<MTPaginateContent max_bytes="1000">
<MTEntries lastn="20">
<p>
<b><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></b>
<$MTEntryExcerpt$>
</p>
<$MTPaginatePageBreak$>
</MTEntries>
</MTPaginateContent>

[ 11:55 PM ]   .   [ Comments (4) ]

 

 

October 21, 2005

 
 
 

تگ‌های پلاگ‌اين Paginate بخش 1

در مطلب قبلی کلياتی را در مورد پلاگ‌اين Paginate که مطالب را صفحه صفحه می‌کند شرح دادم. در اين مطلب همان طور که قول داده بودم تعدادی از تگ‌های اين پلاگ‌اين را شرح خواهم داد.

  • MTPaginate

    اين تگ، تگ اصلی پلاگ‌اين Paginate است و بايد همه تگ‌های ديگر مربوط به اين پلاگ‌اين داخل آن قرار بگيرد. شما می‌تواند از خصوصيات زير در اين تگ استفاده کنيد:

    • Page_selector="name"

      به وسيله اين خصوصيت می‌توانيد نام پارامتری که اين پلاگ‌اين برای تعيين شماره صفحه، به نشانی اضافه می‌کند را تعيين کنيد. مقدار پيش‌فرض اين خصوصيت ‘page’ است. به عنوان مثال وقتی چند صفحه به وسيله اين پلاگ‌اين ايجاد شده باشد، نشانی هر صفحه چيزی شبيه به index.php?page=1 و index.php?page=4 خواهد بود. با استفاده از اين خصوصيت می‌توانيد کلمه ‘page’ را تغيير دهيد. اين کار در صورتی که صفحه شما در حال‌حاضر از پارامتر ‘page’ استفاده می‌کند، مفيد خواهد بود.

    • default_page="1" يا "first" يا "last" يا "all"

      اين خصوصيت صفحه پيش‌فرضی را که برای اولين بار نمايش داده خواهد شد را تعيين می‌کند. علاوه‌بر شماره صفحه شما می‌تواند از مقدار ‘first’ برای نمايش صفحه اول، ‘last’ برای نمايش صفحه آخر و ‘all’ برای نمايش کل مطالب در يک صفحه استفاده کنيد.

    • base_address="_relative" يا "_absolute" يا "URL"

      با استفاده از اين خصوصيت می‌توانيد نوع لينک‌هايی که برای رفت و آمد بين صفحات توليد می‌شود را تعيين کنيد. شما می‌توانيد از يک نشانی مشخص يا "_relative" برای استفاده از نشانی نسبی (مثلا document.php?page=3) و "_absolute" برای استفاده از نشانی مطلق (مثلا http://www.yoursite.com/blog/page.php?page=3) استفاده کنيد.

    • debug="1"

      از اين خصوصيت می‌توانيد در زمان طراحی قالب برای نمايش ليست مطالب همه صفحه‌ها در پايين صفحه برای اشکال‌زدايی استفاده کنيد. به صورت پيش‌فرض Debug غير فعال است.

    • mode="php" or "cgi"

      با استفاده از اين خصوصيت می‌توانيد نوع کدهای توليد شده توسط اين پلاگ‌اين را تعيين کنيد. مقدار پيش فرض ‘php’ است.

  • MTPaginateIfSinglePage

    اين تگ شرطی در صورتی که فقط يک صفحه توليد شده باشد، مثبت می‌شود و مطالب داخل آن نمايش داده می‌شود.

  • MTPaginateIfMultiplePages

    اين تگ شرطی در صورتی که چند صفحه توليد شده باشد، مثبت می‌شود. برای مثال از اين تگ می‌توانيد برای نمايش ليست صفحات فقط در صورتی که چند صفحه وجود داشته باشد استفاده کنيد:

    <MTPaginateIfMultiplePages>
        <$MTPaginateNavigator$>
    </MTPaginateIfMultiplePages>

  • MTPaginateVersion

    اين تگ اطلاعات مربوط به نسخه پلاگ‌اين Paginate را نمايش می‌دهد.

  • MTPaginatePreviousPageLink

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

    <MTPaginateIfPreviousPage_>
        <a href="<$MTPaginatePreviousPageLink$>">صفحه قبل</a>
    </MTPaginateIfPreviousPage_>

  • MTPaginateNextPageLink

    اين تگ نشانی صفحه بعدی را نمايش می‌دهد. در صورتی که صفحه جاری صفحه آخر يا تنها صفحه باشد اين تگ يک رشته خالی را برمی‌گرداند. برای نمايش لينک صفحه بعدی در صورت وجود آن می‌توانيد از اين کد استفاده کنيد:

    <MTPaginateIfNextPage_>
        <a href="<$MTPaginateNextPageLink$>">صفحه بعد</a>
    </MTPaginateIfNextPage_>

  • MTPaginateAllPagesLink

    از اين تگ برای نمايش نشانی صفحه‌ای که محتويات همه صفحات را باهم در يک صفحه نمايش می‌دهد استفاده می‌شود. برای نمايش لينک صفحه‌ای که محتوات همه صفحات را باهم نمايش می‌دهد (در صورتی که چند صفحه وجود داشته باشد) از اين کد استفاده کنيد:

    <MTPaginateIfMultiplePages>
        <a href="<$MTPaginateAllPagesLink$>">همه صفحات</a>
    </MTPaginateIfMultiplePages>

  • MTPaginateNavigator

    اين تگ فهرستی از صفحات ايجاد شده را نمايش می‌دهد. با خصوصيات زير می‌توانيد طريقه نمايش فهرست را تعيين کنيد.

    • style="navigator style"

      اين خصوصيت نوع فهرست را تعيين می‌کند. شما می‌توانيد از يکی از مقادير زير استفاده کنيد: (مقدار پيش‌فرض ‘links’ است.)

      • links برای 1 | 2 | 3 | 4
      • popup برای
         
    • format="%d"

      با استفاده از اين خصوصيت می‌توان متن مربوط به لينک‌ها را تعيين کرد. برای مثال برای نمايش: «صفحه 1 | صفحه 2 | صفحه 3 | صفحه 4» از کد زير بايد استفاده کنيد:

      <$MTPaginateNavigator format="صفحه %d">

    • format_title="%d"

      با استفاده از اين خصوصيت می‌توان عنوان لينک‌ها را تعيين کرد. در بعضی از مرورگرها وقتی نشانگرموس را روی لينک ببريد، اين عنوان نمايش پيدا می‌کند. برای مثال، برای قرار دادن: «صفحه (شماره صفحه)» برای عنوان لينک‌ها از کد زير بايد استفاده کنيد:

      <$MTPaginateNavigator format_title="صفحه %d">

    • format_current="%d"

      با استفاده از اين خصوصيت می‌توان نوع نمايش متن مربوط به صفحه جاری را تعيين کرد. برای مثال، برای بزرگتر کردن صفحه جاری « 1 | 2 | 3 | 4» از اين کد استفاده کنيد: (کد مربوط به بزرگ کردن نوشته "<font size=+1>%d</font>" به صورت معمول قابل استفاده نيست. علامت "<" بايد تبديل به "&lt;" و علامت ">" بايد تبديل به "&gt;" شود.)

      <$MTPaginateNavigator format_current="&lt;font size=+1&gt;%d&lt;/font&gt;">

    • format_all="text"

      وقتی اين خصوصيت تعيين می‌شود به ليست لينک‌ها، لينکی به صفحه‌ای که همه مطالب صفحات را باهم نمايش می‌دهد، اضافه می‌شود. برای مثال برای نمايش: «همه 3 صفحه | صفحه 1 | صفحه 2 | صفحه 3» از کد زير بايد استفاده کنيد:

      <$MTPaginateNavigator format_all="همه %d صفحه">

    • format_all_title="text"

      با استفاده از اين خصوصيت می‌توان عنوان لينک‌ صفحه‌ای که همه مطالب را باهم نمايش می‌دهد را تعيين کرد. در بعضی از مرورگرها وقتی نشانگر موس را روی لينک ببريد، اين عنوان نمايش پيدا می‌کند. برای مثال، برای قرار دادن متن: «نمايش همه صفحات باهم» برای عنوان اين لينک‌ از کد زير بايد استفاده کنيد:

      <$MTPaginateNavigator format_all="همه صفحات" format_all_title="نمايش همه صفحات باهم">

    • format_all_current="text"

      با استفاده از اين خصوصيت می‌توان متنی که در صورت انتخاب صفحه «همه صفحات» نمايش داده می‌شود را تعيين کرد. برای مثال برای نمايش: «[ همه صفحات ] | صفحه 1 | صفحه 2 | صفحه 3» از کد زير بايد استفاده کنيد:

      <$MTPaginateNavigator format_all="All Pages" format_all_current="[ همه صفحات ]">

    • place_all="before" يا "after"

      اين خصوصيت مکان لينک صفحه «همه صفحات» تعيين می‌کند. برای قرار گرفتن لينک صفحه «همه صفحات» در قبل از ليست صفحات از کلمه "before" و برای قرارگيری آن بعد از ليست از "after" استفاده کنيد. کد زير لينک صفحه «همه صفحات» را بعد از ليست صفحات قرار می‌دهد:

      <$MTPaginateNavigator format_all="همه صفحات" placement_all="after">

    • list_pages="before" يا "after" يا "all"

      اين خصوصيت صفحاتی را که ليست بايد نمايش دهد را مشخص می‌کند. "all" برای نمايش همه صفحات: «1 | 2 | 3 | 4» ، "after" برای نمايش صفحات بعد از صفحه جاری: «3 | 4» و "before" برای نمايش صفحات قبل از صفحه جاری: «1». برای مثال کد زير فقط ليست صفحات قبل از صفحه جاری را نمايش می‌دهد:

      <$MTPaginateNavigator list_pages="before">

    • separator=", "

      اين خصوصيت علامتی را که لينک‌ها را از هم جدا می‌کند را تعيين می‌کند. به صورت پيش‌فرض علامت « | » لينک‌ها را از هم جدا می‌کند: «1 | 2 | 3 | 4». برای جدا کردن لينک‌ها با کاما «1، 2، 3، 4» از اين کد بايد استفاده کنيد:

      <$MTPaginateNavigator separator=", ">

    • target="name"

      اين خصوصيت محل باز شدن لينک‌ صفحات (مثلا در پنجره جديد يا يک فريم مشخص) را تعيين می‌کند. برای مثال، کد زير باعث بازشدن صفحات در يک پنچره جديد می‌شود:

      <$MTPaginateNavigator target="_blank">

تگ‌های مربوط به شماره صفحات:

  • MTPaginateNumPages
    اين تگ تعداد صفحات را نمايش می‌دهد.
     
  • MTPaginateCurrentPage
    اين تگ شماره صفحه جاری را نمايش می‌دهد.
     
  • MTPaginatePreviousPage
    اين تگ، در صورت وجود، شماره صفحه قبلی را نمايش می‌دهد.
     
  • MTPaginateNextPage
    اين تگ، در صورت وجود، شماره صفحه بعدی را نمايش می‌دهد.
     
  • MTPaginateNumSections
    اين تگ نشان می‌دهد که محتويات شما به چند بخش تقسيم شده است. (برای اين‌که در وسط يک پاراگراف صفحه شکسته نشود، بايد مطلب را به بخش‌های منطقی تقسيم کرد تا وقتی که لازم شد صفحه جديد ساخته شود، شکستی صفحه در بين بخش‌ها صورت بگيرد.)
     
  • MTPaginateTopSection
    اين تگ شماره اولين بخش داخل صفحه جاری را نمايش می‌دهد.
     
  • MTPaginateCurrentSection
    اين تگ شماره بخش جاری را نمايش می‌دهد.
     
  • MTPaginateBottomSection
    اين تگ شماره آخرين بخش داخل صفحه جاری را نمايش می‌دهد.

در بخش بعدی تعداد ديگری از تگ‌ها را شرح خواهم داد.

[ 08:04 PM ]   .   [ Comments (180) ]

 

 

October 07, 2005

 
 
 

قسمت کردن مطالب به چند صفحه در MT

در مواقعی که مطالب صفحه طولانی و سنگين می‌شنود، خوب است که مطلب را به چند صفحه کوچک‌تر تقسيم کرد. اين کار علاوه‌بر کاهش زمان باز شدن صفحات، باعث زيبا شدن و حرفه‌ای‌تر به نظر آمدن صفحات نيز می‌شود. در MT اين کار با استفاده از پلاگ‌اين Paginate به‌راحتی قابل انجام است.

پلاگ‌اين Paginate را می‌توانيد از اينجا دریافت کنيد.

نکته مهم: اين پلاگ‌اين کد PHP توليد می‌کند و برای استفاده از آن سرور شما بايد از PHP پشتيبانی کند و پسوند صفحات وبلاگ شما نيز بايد PHP باشد.

برای تغيير پسوند قالب‌های صفحات index (صفحات اصلی وبلاگ) در قسمت “Templates” قالب مورد نظر خود را انتخاب کنيد و در بخش “Output File” پسوند فايل را عوض کنيد. برای تغيير پسوند صفحات آرشيو وارد بخش “weblog config” و سپس “Preferences” شويد و در بخش “File extension for archive files” پسوند مورد نظر خود را وارد کنيد. بعد از انجام اين تغييرات وبلاگ را بازسازی کنيد.

اين پلاگ‌اين به‌طور خودکار محتويات يک صفحه طولانی را به چند صفحه تقسيم می‌کند. شما قادريد به کاربران اجازه دهيد بين صفحات با لينک‌های قبل و بعد، فهرستی از شماره صفحات ( 1 | 2 | 3 | 4 ) و يا فهرست بازشو () رفت و آمد کنند. شما قادر خواهيد بود حداکثر اندازه هر صفحه را تنظيم کنيد.

اين پلاگ‌اين برای اين‌که در وسط جملات يا پاراگراف‌ها و کلا جا‌های نامناسب صفحه شکسته نشود، صفحه شما را به بخش‌های مناسب تقسيم می‌کند و شکستن صفحه را فقط در بين اين بخش‌ها انجام می‌دهد. شما قادر خواهيد بود به عنوان مثال هر پاراگراف را در يک بخش قرار دهيد تا صفحه در وسط يک پاراگراف شکسته نشود.

در مثال زير شما يک قالب ساده که با استفاده از اين پلاگ‌اين ساخته شده است را مشاهده می‌کنيد. اين قالب لينک و خلاصه 20 مطلب آخر را نمايش می‌دهد. اگر صفحه شما از 1000 بايت بيشتر حجم پيدا کند در نقطه (<$MTPaginateSectionBreak$>) شکسته خواهد شد و يک صفحه جديد به آن اضافه خواهد شد. اگر بيش از يک صفحه وجود داشته باشد، ليستی جهت پرش بين صفحات نمايش خواهد داد:

<MTPaginate>
  <h1><$MTBlogName$></h1>
  <MTPaginateIfMultiplePages>
    <div><$MTPaginateNavigator style="popup"$></div>
  </MTPaginateIfMultiplePages>
  <MTPaginateContent max_bytes="1000">
    <MTEntries lastn="20">
      <p>
      <b><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></b>
      <$MTEntryExcerpt$>
      </p>
      <$MTPaginateSectionBreak$>
    </MTEntries>
  </MTPaginateContent>
</MTPaginate>

شرح کد

همين‌طور که می‌بينيد کل کد بين تگ MTPaginate قرار گرفته. برای استفاده از اين پلاگ‌اين بايد همه تگ‌های مربوط به پلاگ‌اين را در بين تگ MTPaginate قرار دهيد.

خط زير عنوان وبلاگ را نمايش می‌دهد:

<h1><$MTBlogName$></h1>

بخش بعدی کد باعث می‌شود در صورتی که چند صفحه وجود داشته باشد، فهرست صفحات نمايش داده شود. فهرست صفحات به صورت يک فهرست بازشو نمايش داده می‌شود. (برای نمايش فهرست به صورت لينک به جای “popup” از “links” استفاده کنيد):

<MTPaginateIfMultiplePages>
  <div><$MTPaginateNavigator style="popup"$></div>
</MTPaginateIfMultiplePages>

بخش بعدی تگ “MTPaginateContent” است. محتوياتی که می‌خواهيم صفحه‌صفحه شوند بايد داخل اين تگ قرار بگيرند. اين تگ نحوه تقسيم شدن صفحات را تعيين می‌کند. ما در اين‌جا حجم هر صفحه را 1000 بايت تعيين کرده‌ايم:

<MTPaginateContent max_bytes="1000">

بخش بعدی کد لينک و خلاصه 20 عدد از آخرين مطالب را نمايش می‌دهد. در اين بخش تگ “MTPaginateSectionBreak” باعث می‌شود هر يک از مطالب داخل يک بخش قرار بگيرد تا در وسط يک مطلب صفحه شکسته نشود:

<MTEntries lastn="20">
  <p>
    <b><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></b>
    <$MTEntryExcerpt$>
  </p>
  <$MTPaginateSectionBreak$>
</MTEntries>

در مثال زير يک قالب آرشيو تکی ساده که با استفاده از پلاگ‌اين Paginate ساخته شده است را مشاهده می‌کنيد. اين کد باعث قرارگيری هر پاراگراف (که با تگ p مشخص می‌شوند) در يک بخش می‌شود و هر صفحه بايد حداکثر 800 کلمه داشته باشد. هر صفحه شامل يک يا چند پاراگراف خواهد بود. (اگر يک پاراگراف بيشتر از 800 کلمه باشد، صفحه فقط شامل همان يک پاراگراف خواهد بود). اگر بيش از يک صفحه وجود داشته باشد فهرستی از صفحات را نمايش خواهد داد.

<MTPaginate>
  <h1><$MTEntryTitle$></h1>
  <MTPaginateIfMultiplePages>
    <div><$MTPaginateNavigator$></div>
  </MTPaginateIfMultiplePages>
  <MTPaginateContent max_words="800" section_start_tag="p">
    <$MTEntryBody$>
  </MTPaginateContent>
  <a href="<$MTBlogURL$>">Index</a>
</MTPaginate>

در بخش‌های بعدی تگ‌های پلاگ‌اين Paginate را با جزييات شرح خواهم داد.

[ 01:43 PM ]   .   [ Comments (165) ]

 

 

December 12, 2004

 
 
 

سيستم جديد بايگاني در MT 3 و نحوه استفاده آن در فارسي

يكي از خصوصيات جالب MT 3 نحوه آرشيو كردن مطالب است. به اين صورت كه براي هر ماه يك پوشه ايجاد ميكند و كليه آرشيوهاي تكي و ماهانه را داخل آن قرار مي‌دهد. به عنوان مثال براي مطالب ماه دسامبر سال 2004 پوشه‌اي به نام 2004/12 ايجاد ميكند و در فايل index پوشه (كه هنگام درخواست پوشه به طور خودكار ارسال مي‌شود) بايگاني ماهانه را قرار مي‌دهد و در كنار آن بايگانيهاي تكي مربوطه را ايجاد مي‌كند.

علاوه بر اين براي نام فايل بايگانيهاي تكي از عنوان مطلب استفاده مي‌شود. به عنوان مثال اگر عنوان مطلب "Archiving in mt 3" باشد نام فايل بايگاني تكي آن ممكن است به اين صورت درآيد: "archiving_in_mt_3.htm"

با اين امكانات مطالب به صورت بسيار بهتري در موتورهاي جستجو فهرست خواهند شد و براي يادآوري نشاني كاربران مشكلات كمتري خواهند داشت.
متاسفانه در صورتي كه عناوين مطالب به صورت غير لاتين باشد، عنوان براي نام فايل قابل استفاده نيست و mt مجبور است براي نام فايل از رشته درازي از حروف مثل "uoeioueuio.htm" استفاده كند كه اصلا مناسب نيست.

براي حل اين مشكل راه حلي پيدا كرده‌ام كه هر چند به صورت 100% مشكل را حل نمي‌كند ولي راه مناسبي براي استفاده از اين امكان جديد mt محسوب مي‌شود:

به قسمت Weblog config > Archive Files برويد و در جعبه متن مربوط به individual كدهاي زير را وارد كنيد:

<$MTEntryDate format="%Y"$>/<$MTEntryDate format="%m"$>/<MTIfNonEmpty tag="MTEntryKeywords"><$MTEntryKeywords dirify="1"$><MTElse><$MTEntryID pad="1"$></MTElse></MTIfNonEmpty>.html

از اين به بعد اگر براي مطلب خود يك عنوان انگليسي انتخاب كنيد و آن را در بخش Keywords (در صفحه New entry) وارد كنيد از آن براي نام فايل بايگاني تكي استفاده خواهد شد.

اين عنوان لازم نيست به فرمت مناسب نام فايل باشد، شما به هر صورتي كه نام را وارد كنيد به صورت خودكار به فرمت مخصوص نام فايل تبديل خواهد شد. در ضمن اگر در Keywords يك مطلب عنوان انگليسي مطلب را وارد نكنيد از ID مطلب در بانك اطلاعاتي براي عنوان فايل استفاده خواهد شد.

توجه:

  1. به طور پيش فرض بخش Keywords در صفحه New Entry نمايش داده نمي‌شود. براي نمايش اين قسمت، در صفحه New Entry روي لينك "Customize the display of this page." كليك كنيد و در صفحه‌اي كه باز مي‌شود Custom را انتخاب كنيد و كليه چك باكس‌هاي مربوطه را چك بزنيد.
     
  2. من قبلا در بعضي از راهنماهايي كه نوشته بودم براي Keywords استفاده كرده بودم بنابراين در صورت استفاده از اين راهنما قادر به استفاده از آنها نخواهيد بود.
     
  3. در صورتي كه قبلا از نسخه‌هاي قديمي mt استفاده ميكرديد مي‌توانيد همچنان از روش قبلي بايگاني mt استفاده كنيد. براي اين كار در بخش Weblog config > Preferences گزينه "Use Old-Style Archive Links" را چك بزنيد.

[ 10:28 AM ]   .   [ Comments (1) ]

 

 

September 26, 2004

 
 
 

ارتقاء نسخه‌هاي قبلي MT به نسخه 3.1

mt3-logo-small.gif

توجه: در نسخه 3 موويبل تايپ شما براي ايجاد بيشتر از يك كاربر و سه وبلاگ بايد License مخصوص را خريداري نماييد. اين محدوديت تنها به صورت قانوني است و هيچ گونه محدوديتي در نرم افزاري كه مي‌توانيد دريافت كنيد وجود ندارد. در صورت نقض اين قانون ممكن است سازندگان موويبل تايپ از سرور شما (كه غالبا در خارج از كشور قرار دارد) شكايت كنند كه اين امر موجب ايجاد مشكل مي‌شود. بنابراين با مسئوليت خود اين نسخه را نصب كنيد!

بهتر است ابتدا جهت جلوگيري از ايجاد هر گونه مشكلي از اطلاعات وبلاگ‌هاي خود نسخه پشتيبان تهيه كنيد.

گرفتن نسخه پشتيبان از اطلاعات موجود

براي ذخيره مطالب و كامنت‌ و ترك‌بك‌هاي مربوط به آنها به بخش Import/Export برويد و روي لينك "Export Entries From…" راست كليك كنيد و گزينه Save Target As… را انتخاب كنيد. در اينجا از شما محل ذخيره شدن اطلاعات سوال مي‌شود. بهتر است مكاني را انتخاب كنيد كه بعدا راحت بتوانيد آن را پيدا كنيد. اين كار را براي همه وبلاگ‌ها تكرار كنيد.

بهتر است همه قالب‌ها را هم ذخيره كنيد.

دريافت نسخه upgrade

نسخه upgrade شامل فايل‌هايي است كه براي ارتقاء MT لازم هستند. اين فايل‌ها شامل اسكريپت‌هاي مربوط به خود MT و تعدادي اسكريپت براي نصب نسخه جديد هستند.

براي دريافت نسخه upgrade به اين صفحه مراجعه كنيد و روي لينك Free download كليك كنيد. سپس در صفحه‌اي كه باز مي‌شود، گزينه I accept را چك بزنيد و روي كليد Continue كليك كنيد.

در صفحه بعد در صورتي كه قبلا در TypeKey عضو شده‌ايد، روي لينك Log in كليك كنيد و بعد از وارد كردن نام كاربري و پسورد، روي كليد Log in كليك كنيد. در صورتي كه ثبت نام نكرده‌ايد، روي Register كليك كنيد و بعد از وارد كردن مشخصات مورد نظر روي Sign up كليك كنيد.

در صفحه بعد (Download Movable Type) از ليست Select the distribution گزينه Upgrade version و از ليست Select download format گزينه zip را انتخاب كنيد. سپس كليد Download Movable Type را بزنيد و محل ذخيره را مشخص كنيد.

Upload فايل‌ها

بعد از باز كردن فايل zip به‌جز پوشه‌هاي doc و images و فايل‌هاي mt.js و style.css همه فايل‌ها را در مكان فعلي فايل‌هاي mt آپلود كنيد. دقت كنيد كه حتما اين فايل‌ها را در حالت ASCII آپلود شوند.

سپس فايل‌هاي style.css و mt.js و پوشه doc را در حالت ASCII و پوشه images را در حالت binary داخل شاخه‌اي كه فايل‌هاي استاتيك mt در آن قرار دارند آپلود كنيد. براي تشخيص مكان فايل‌هاي استاتيك فايل mt.cfg را كه داخل شاخه‌اي كه mt نصب شده قرار دارد باز كنيد و در آن به دنبال خط StaticWebPath بگرديد. در آن خط آدرس فايل‌هاي استاتيك نوشته شده است.

تنظيم permission فايل‌ها

با برنامه FTP در شاخه‌ اصلي mt همه فايل‌هاي cgi را انتخاب كنيد و به همه آنها اختيار 755 دهيد. در برنامه WS_FTP براي اين كار روي فايل‌ها راست كليك كنيد و گزينه chmod را انتخاب كنيد و سپس به Owner همه اختيارات و به Group و Other اختيارات Read و Execute دهيد. (همه چك باكس‌هاي ستون اول و دو چك باكس بالا و پايين دو ستون باقي مانده را چك بزنيد.)

در internet explorer براي تغيير permission بايد فايل‌ها را يكي‌يكي انتخاب كنيد و بعد از راست كليك گزينه properties را انتخاب كنيد.

اجراي اسكريپت‌هاي مربوط به نصب نسخه جديد

  • در صورتي كه نسخه 3.0D و 3.1D را مي‌خواهيد ارتقاء دهيد:
    mt-upgrade31.cgi را اجرا كنيد.
     
  • در صورتي كه يكي از نسخه‌هاي 2.6 را مي‌خواهيد ارتقاء دهيد:
    فايل mt-upgrade30.cgi و سپس mt-upgrade31.cgi را اجرا كنيد.
     
  • در صورتي كه يكي از نسخه‌هاي 2.5 را مي‌خواهيد ارتقاء دهيد:
    فايل mt-upgrade26.cgi ، سپس mt-upgrade30.cgi و در آخر mt-upgrade31.cgi را اجرا كنيد.
     
  • در صورتي كه يكي از نسخه‌هاي 2.1 را مي‌خواهيد ارتقاء دهيد:
    فايل mt-upgrade25.cgi ، سپس mt-upgrade26.cgi و سپس mt-upgrade30.cgi و در آخر mt-upgrade31.cgi را اجرا كنيد.

حذف فايل‌هاي مربوط به upgrade

بعد از پايان ارتقاء به علل امنيتي بهتر است فايل‌هاي زير را از روي سرور حذف كنيد:

  • mt-upgrade20.cgi
  • mt-upgrade21.cgi
  • mt-upgrade25.cgi
  • mt-upgrade26.cgi
  • mt-upgrade30.cgi
  • mt-upgrade31.cgi

براي اطلاعات بيشتر مي‌توانيد به اين راهنما كه در سايت رسمي mt ارائه شده مراجعه نماييد.

[ 07:29 PM ]   .   [ Comments (0) ]

 

 

September 17, 2004

 
 
 

پست به آينده با استفاده از MT 3.1

يكي از امكانات بسيار جالبي كه به موويبل تايپ 3.1 اضافه شده، امكان پست زمانبندي شده (Post Scheduling) است. اين امكان كه در ايران به نام پست به آينده شناخته شده امكان به روزسازي مرتب و دائم وبلاگ را مي‌دهد و با استفاده از آن مي‌توان حتي در مسافرت و مواقعي كه به اينترنت دسترسي وجود ندارد وبلاگ را به صورت خودكار به روز كرد.

اين امكان تا پيش از اين در سيستم‌هاي ديگري مثل «اسپ سوار» هم وجود داشت ولي در آن سيستم‌ها، صفحات به صورت ديناميك هستند و در هر بار درخواست صفحه‌هات ساخته مي‌شوند كه اين امر باعث تحميل شدن بار اضافه بر سرور مي‌شود؛ علاوه بر اين اگر مشكلي در بانك اطلاعاتي پيش بيايد دسترسي به وبلاگ براي بازديدكنندگان ناممكن مي‌شود. حالا موويبل تايپ 3.1 با حفظ صفحات استاتيك، اين امكان را هم فراهم كرده است.

براي فعال كردن اين امكان به صورت عمل كنيد:

در كنترل پنل (cPanel) وارد بخش Cron Jobs شويد و در آنجا با زدن دكمه Standard وارد آن قسمت شويد. سپس در قسمت «Command to run» اين دستور را وارد كنيد:

cd <MT Path>; ./tools/run-periodic-tasks

به جاي <MT Path> مسير موويبل تايپ در سرور را وارد كنيد. براي به دست آورد اين مسير فايل mt-check.cgi را اجرا كنيد و از قسمت Current working directory مسير را كپي كنيد.

سپس در بخش پايين صفحه زمان‌هاي اجراي اسكريپت پست مطالب را تعيين كنيد. من پيشنهاد مي‌كنم در بخش Minute عدد 0 را انتخاب كنيد تا سر هر ساعت اسكريپت اجرا شود و نوشته‌هاي مورد نظر منتشر شود. (البته براي آزمايش مي‌توانيد ابتدا Every Minute را انتخاب كنيد تا براي آزمايش مجبور نشويد تا سر ساعت صبر كنيد)

از اين به بعد براي پست مطلب به آينده ابتدا مطلب خود را به صورت معمولي بنويسيد، سپس در بخش Post Status گزينه Future (آينده) را انتخاب كنيد، و در آخر در قسمت Authored On تاريخ مورد نظر خود را انتخاب كنيد و دكمه Save را بزنيد.

[ 10:53 PM ]   .   [ Comments (0) ]

 

 

September 15, 2004

 
 
 

رفع مشكل مطالب بدون عنوان در MT

گاهي ممكن است نخواهيد براي مطالبي عنوان تعيين كنيد كه اين امر موجب ايجاد مشكل در بخش «آخرين مطلب» و ديگر بخش‌هايي كه از عنوان براي لينك دادن به مطلب استفاده مي‌كنند، مي‌شود. در اين مواقع در واقع يك جاي خالي به اصل مطلب لينك خواهد شد كه طبعا كار نخواهد كرد، علاوه بر اين يك جاي خالي در ليست ايجاد مي‌شود كه زيبا نيست.

براي جلوگيري از اين مشكل به اين صورت عمل كنيد:

ابتدا پلاگ اين mtifempty را نصب كنيد. از اينجا فايل mtifempty-1_11.zip را داون لود كنيد و بعد از باز كردن آن، فايل ifempty.pl را در پوشه plugins و ifempty.pm را در extlib/bradchoate آپ لود كنيد. پوشه extlib در پوشه MT قرار دارد اما اگر پوشه bradchoate داخل آن وجود نداشت آن را بسازيد.

سپس به جاي كدهاي معمولي MTEntries كه با استفاده از آن ليست مطالب تهيه مي‌شود از اين كد استفاده كنيد:

<MTEntries>
<MTIfNotEmpty var="EntryTitle">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><br />
</MTIfNotEmpty>
<MTIfEmpty var="EntryTitle">
[<a href="<$MTEntryPermalink$>"><$MTEntryCategory$></a>]<br />
</MTIfEmpty>
</MTEntries>

در كد بالا در صورتي كه مطلب عنوان داشته باشد (در واقع تگ MTEntryTitle پر باشد) كدي كه زير تگ MTIfNotEmpty قرار دارد را اجرا مي‌كند و در غير اين صورت كدي كه در بين تگ‌هاي MTIfEmpty اجرا مي‌شد.

با استفاده از اين كد در صورتي كه مطلب عنواني نداشته باشد به جاي عنوان از نام موضوع براي لينك به مطلب استفاده مي‌شود. اگر شما در وبلاگ از موضوعات استفاده نمي‌كنيد، مي‌توانيد از اين كد استفاده كنيد:

<MTEntries lastn="10">
<MTIfNotEmpty var="EntryTitle">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><br />
</MTIfNotEmpty>
<MTIfEmpty var="EntryTitle">
[<a href="<$MTEntryPermalink$>">بدون عنوان</a>]<br />
</MTIfEmpty>
</MTEntries>

براي استفاده از اين كدها جهت بخش «آخرين مطالب» به قسمت MTEntries بايد خصوصيت lastn را هم اضافه كنيد. به اين صورت:

<MTEntries lastn="10">

[ 11:31 PM ]   .   [ Comments (0) ]

 

 

September 13, 2004

 
 
 

ساخت ليست مطالب گذشته

همان طور كه قبلا قول داده بودم در اينجا طريقه ساخت ليست مطالب گذشته را توضيح خواهم داد.

ابتدا تگ MTEntries مربوط به مطالب اصلي وبلاگ را پيدا كنيد. همان طور كه مي‌دانيد براي نمايش مطالب وبلاگ از دو تگ زير استفاده مي‌شود:

<MTEntries>

</MTEntries>

و در بين آنها از تگ‌هايي نظير <$MTEntrybody$> و <$MTEntryTitle$> استفاده ‌مي‌شود.

در تگ MTEntries مربوط به مطالب اصلي وبلاگ تعداد مطالبي كه در صفحه بايد نمايش يابد را مشخص كنيد. به اين صورت كه به تگ MTEntries اين مورد را اضافه كنيد:

lastn="N"

(به جاي N تعداد مطالبي را كه ‌مي‌خواهيد در صفحه اول نمايش داده شود را وارد كنيد)

مثال:

<MTEntries lastn="10">

حالا بايد مطابق با طراحي قالب خود دو ستون را در زير مطالب اصلي وبلاگ ايجاد كنيد. (به علت اينكه قالب‌ها به صورت‌هاي متفاوتي طراحي مي‌شود من در اينجا نمي‌توانم راجع به اين مورد توضيح بيشتري بدهم)

براي ستون اول از اين كد استفاده كنيد:

<ul>
<MTEntries offset="10" lastn="15">
<li><a href="<$MTEntryLink$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ul>

در اين كد از خصوصيت offset براي نمايش عناوين نوشته‌هاي 11 به بعد (از نظر قدمت) استفاده شده. طريقه عمل offset به اين صورت است كه به تعداد تعيين شده نوشته‌ها را رد كرده و نوشته‌هاي بعد از آنها را نمايش مي‌دهد. در اينجا به علت اينكه براي offset مقدار 10 را تعيين كرده‌ايم به تعداد 10 عدد از آخرين نوشته رد شده و از مطلب شماره 11 شروع به نمايش عناوين مي‌كند.

از خصوصيت lastn هم براي تعيين محدوده نمايش عناوين استفاده شده. با تركيب دو خصوصيت lastn و offset در اين كد عناوين نوشته‌هاي 11 تا 25 نمايش داده مي‌شود.

در ستون دوم هم مي‌توانيد از اين كد استفاده كنيد:

<ul>
<MTEntries lastn="15" offset="25">
<li><a href="<$MTEntryLink$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ul>

با توضيحاتي كه داده شد كد بالا كاملا قابل فهم است. ما به علت اينكه عناوين 25 مطلب قبلي را نمايش داده‌ايم offset را برابر با 25 قرار داده‌ايم تا عناوين مطالب 26ام به بعد نمايش داده شود.

تصحيح: تگ MTEntryTitle كد دوم مشكل داشت كه تصحيح شد. با تشكر از مصطفي

[ 10:11 PM ]   .   [ Comments (0) ]

 

 

September 06, 2004

 
 
 

تغييرات mt.cfg در Movable type 3

امروز كه داشتم فايل mt.cfg مربوط به Movable type 3 رو بررسي ميكردم متوجه دو تغيير خوب شدم. اول اينكه MT به طور پيشفرض unicode شده و ديگه لازم نيست براي فارسي نوشتن توش تنظيمات خاصي انجام داد.

تغيير ديگه‌‌اي كه متوجه شدم در قسمت تنظيمات مربوط به ديتا بيس هست كه تنظيمات مربوط به My sql رو خيلي راحت‌تر مي‌كنه. خطوطي به mt.cfg اضافه شده به اين صورت:

# Configuration for MySQL databases. Add the name of your database
# and the username that you have for logging in to that database
# below. The password needs to go in the file mt-db-pass.cgi.
#
# ObjectDriver DBI::mysql
# Database <database-name>
# DBUser <database-username>
# DBHost localhost

اينجوري فقط كافيه نام كاربري و نام ديتا بيس رو تعيين كرد و علامت‌هاي # رو برداشت. قبلا براي اينكه اشتباهي نشه مجبور بوديم از تو راهنماي mt تنظيمات مربوط به My sql پيدا كنيم و اونجا پيست كنيم.

(حتما مي‌دونيد كه براي تنظيمات اساسي mt از mt.cfg استفاده مي‌شه!)

بعدا بيشتر راجع به MT 3 مي‌نويسم.

[ 11:47 PM ]   .   [ Comments (0) ]

 

 

September 04, 2004

 
 
 

قرار دادن لينكدوني خود در وبلاگ‌هاي ديگر!

شايد دوست داشته باشيد بتوانيد لينكدوني وبلاگتان را در وبلاگ‌هاي ديگر هم نمايش بدهيد تا به اين صورت بتوانيد براي خودتان تبليغ كنيد. من در اين راهنما روش انجام اين كار را توضيح خواهم داد:

  • به بخش Templates وبلاگ لينكدوني خود برويد و روي لينك Create new index template كليك كنيد.
  • در بخش Template Name نام « JavaScript links » را وارد كنيد.
  • در بخش Output File نام فايل را « linkdump.js » تايين كنيد.
  • مطمئن شويد چك باكس Rebuild this template automatically… حتما چك خورده باشد. (در صورت چك خوردن اين گزينه هنگام پست هر مطلب قالب بازسازي خواهد شد)
  • در بخش Template Body اينها را وارد كنيد:

document.write('<ul id="mojdelinkdump">')
<MTEntries lastn="15">
document.write('<li><a href="<$MTEntryBody escape_html="1"$>"><$MTEntryTitle$></a><div class="alt"><$MTEntryExcerpt></div></li>');
</MTEntries>
document.write('</ul>');
document.write('از وبلاگ <a href="http://weblog.mojde.com">مژده</a>');

  • براي اينكه استفاده كننده از اين كد به طور دقيق قادر به فرمت بندي و تايين Style اين ليست باشد نام وبلاگ خود را به جاي mojde بنويسيد.
  • در خط دوم عدد 15 تعداد لينك‌هايي كه در صفحه درج خواهد شد را مشخص مي‌كند، شما مي‌توانيد هر تعدادي را خواستيد در اين بخش تايين كنيد.
  • نام و آدرس وبلاگ خود را در خط آخر وارد كنيد؛ ولي در صورتي كه نمي‌خواهيد نام و آدرس وبلاگتان در پايان ليست قرار گيرد مي‌توانيد خط آخر را حذف كنيد.

از اين به بعد با كد زير مي‌توان لينكدوني را در صفحات HTML و وبلاگهاي ديگر درج نمود:

<script language="javascript" type="text/javascript" src="http://www.mojde.com/tinyblog/linkdump.js">
</script>

(به جاي بخش پررنگ شده بايد آدرس لينكدوني خود را وارد كنيد)

حالا مي‌توانيد كد بالا را براي استفاده عموم در وبلاگ خود قرار دهيد.

[ 11:39 PM ]   .   [ Comments (0) ]

 

 

August 29, 2004

 
 
 

بستن نظرسنجي‌های قديمي جهت جلوگيری از Spam

مدتي هست كه عده‌اي كه مي‌خوان توي نظرخواهي‌ها تبليغ‌ سايت‌هاي خودشون رو بكنن برنامه‌هايي درست كردن كه به طور اتوماتيك توي مطالب قديمي وبلاگ نظر مي‌دن. (البته نظر كه چه عرض كنم! تبليغ مي‌كنن!) دليل اينكه توي مطالب قديمي اين كار رو مي‌كنن اينه كه به اين صورت كمتر اين نظرات به چشم صاحب وبلاگ مي‌آد و احتمال حذف شدن‌شون كم‌تر ميشه. ولي در عين حالي كه مردم كمتر ميبينن‌شون جستجوگرهايي مثل Google اين لينك‌هايي كه به‌طور ناخواسته توي صفحه‌ات درج شدن رو پيدا مي‌كنن و اين باعث افزايش Page Rank اون سايت‌ها مي‌شه.

براي جلوگيري از اين امر توسط آقاي David Raynes اسكريپتي نوشته شده كه قادر است نظرخواهي‌هاي مطالب قديمي را ببندد. (يعني ديگر كسي قادر نخواهد بود براي آن مطالب نظر دهد، ولي نظرات قديمي را ميتوان ديد)

براي نصب اين اسكريپت از اينجا آن را دانلود و بعد از باز كردن آن، فايل mt-close.cgi را در جايي كه فايلهاي MT قرار دارد آپ‌لود كنيد. (منظورم همان جايي است كه فايل mt.cgi قرار دارد) سپس به آن فايل پريميژن 755 دهيد. (به اين صورت كه در برنامه FTP خود دنبال گزينه permission يا chmod بگرديد و سپس به Owner همه اختيارات و به Group و Other اختيارات Read و Execute دهيد)

براي استفاده از اين اسكريپت آدرس آن را در مرورگر وارد كنيد (همان آدرسي كه براي وارد شدن به MT از آن استفاده مي‌كنيد، فقط به آخر آن يك close اضافه كنيد) و سپس در صفحه‌اي كه باز مي‌شود وبلاگي را كه مي‌خواهيد انتخاب كنيد و تعداد روزهايي كه نظرات قديمي‌تر از آنها بايد بسته شوند را تعيين كنيد. (من توصيه ميكنم شماره‌اي را انتخاب كنيد كه حداقل 5 عدد از آخرين مطالب وبلاگ نظرات‌شان باز بماند). بعد از اينكه دكمه Close را زديد بعد از چند دقيقه نظرسنجي‌ها بسته خواهند شد.

لينك اسكريپت از elise.com

[ 09:38 PM ]   .   [ Comments (0) ]

 

 

August 26, 2004

 
 
 

آرشيو ماهانه به صورت لیست بازشو

وقتي آرشيوهاي ماهانه وبلاگ زياد و دراز ميشن حالت زشت و مسخره اي به وبلاگ ميدن! براي حل اين مشكل ميشه به جاي ستون كردن لينكها، فهرست آرشيو رو داخل يك فهرست بازشو قرار داد تا بازديد كننده فقط در مواقع لزوم كل لينكها رو مشاهده كنه. همين طور كه ميبينيد من از اين شيوه براي آرشيو ماهانه وبلاگم استفاده كردم.

براي ايجاد اين فهرست بازشو در MT از اين شيوه استفاده كنيد:

داخل قالب اصلي وبلاگ اين كدها را پيدا كنيد:

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

سپس كدهاي زير را جايگزين آنها كنيد:

<select size="1" name="archivelist" onchange="gotoarchive(this)">
<option>انتخاب بايگاني</option>
<MTArchiveList archive_type="Monthly">
<option value="<$MTArchiveLink$>"><$MTArchiveTitle$></option>
</MTArchiveList>
</select>

ليست شما آماده است ولي براي اينكه موقع انتخاب هر مورد به طور اتوماتيك كاربر به صفحه آرشيو مورد نظر فرستاده شود اين كدها را در بالاي تگ </head> قرار دهيد:

<script language="JavaScript" type="text/JavaScript">
<!--
function gotoarchive(archive){
if (archive.selectedIndex > 0) {
document.location = archive.options[archive.selectedIndex].value;
}
}
//-->
</script>

[ 09:14 PM ]   .   [ Comments (0) ]

 

 

July 03, 2004

 
 
 

ايجاد نظر سنجي براي لينكدوني

براي ايجاد نظر سنجي در لينكدوني به اين صورت عمل كنيد:

  • به بخش قالبهاي وبلاگ اصلي برويد و سه قالب: Comment Listing Template, Comment Preview Template و Comment Error Template را به 1Notepad يا يك ويرايشگر متن ديگر منتقل كنيد.
  • در ويرايشگر متن در هر سه قالب آدرس وبلاگ خود را جايگزين عبارت <$MTBlogURL$> كنيد2. توجه داشته باشيد كه حتما در آخر آدرس وبلاگتان يك اسلش (/) وجود داشته باشد تا در آدرسها مشكلي پيش نيايد.
  • به وبلاگ لينكدوني برويد و هر سه قالب را (البته به صورت يكي يكي!) در قالبهاي Comment Listing Template, Comment Preview Template و Comment Error Template جايگزين كنيد.

اينجا براي لينكدوني معمولي و لينكدوني روزانه كه ساخت هر دو را قبلا آموزش داده بودم دو حالت وجود دارد:

براي لينكدوني معمولي

در قالب صفحه اصلي وبلاگ اصلي آن بخشي را كه مربوط به لينكدوني است، پيدا كنيد. (اين بخش با كد MTOtherBlog شروع ميشود). در آن قسمت كدهاي:

<$MTEntryTitle$></a>

را پيدا كنيد و بعد از آنها اين كدها را وارد كنيد:

<MTEntryIfAllowComments>
- <span dir="ltr">
<a class="links" href="<$MTCGIPath$><$MTCommentScript$>?entry_id=<$MTEntryID$>" onclick="OpenComments(this.href); return false">
نظرات
</a>
</span>
</MTEntryIfAllowComments>

(موقع ارسال نظر براي لينكدوني صفحه اول وبلاگ اصلي بازسازي نميشود بنابراين نميتوان از شمارنده نظرات استفاده كرد)

براي لينكدوني روزانه

در بخش قالبهاي وبلاگ لينكدوني وارد قالب Daily Link شويد و در آنجا بعد از كدهاي:

<$MTEntryTitle$></a>

اين كدها را وارد كنيد:

<MTEntryIfAllowComments>
<span dir="ltr">
<a class="links" href="<$MTCGIPath$><$MTCommentScript$>?entry_id=<$MTEntryID$>" onclick="OpenComments(this.href); return false">
[<$MTEntryCommentCount$>]
</a>
</span>
</MTEntryIfAllowComments>

پانويس

1- Notepad را به وسيله منو Start > All Programs > Accessories > Notepad اجرا كنيد.
2- در Notepad براي جايگزيني از منو Edit گزينه Replace را انتخاب كنيد.

[ 11:55 AM ]   .   [ Comments (0) ]

 

 

May 23, 2004

 
 
 

پولي شدن MT

Movable type 3 و موضوع لايسنس جديد اون يه كمي ناراحتم كرده. برداشتن نسخه مجاني رو محدود كردن و تو اون فقط اجازه ساخت سه وبلاگ با يك نوسنده رو دادن. به نظرم اين چند وقته فقط داشتن بازار گرمي ميكردن البته حقشون هست ولي احساس ميكنم اين چند وقته كه اينهمه براي MT راهنما مينوشتيم بازارياب بي مزد و مواجب Six Apart (شركت سازنده MT) بوديم. البته از حق هم نبايد گذشت من تا به حال بيشترين اعتبار و توجه رو از قِبل همين MT به دست اوردم.
به هر حال فعلا همين نسخه 2.66 به خوبي عمل ميكنه ولي قطعا تا يكي دو سال ديگه تا حد زيادي از تكنولوژي روز فاصله ميگيره.
يك چيزي كه تجربه كردم اينه كه آدم رو هر چيزي بيشتر تكيه كنه و بهش علاقه نشون بده زودتر از دستش ميده. حالا اين حكايت Movable type شده!
اين اتفاق نظر دوستاني مثل نيما شايانفر و حامد بنائي رو كه معتقد بودند بهتره از سيستم اختصاصي خودمون استفاده كنيم و روي برنامه هاي آماده تكيه نكنيم رو بيشتر تاييد ميكنه.
البته با اين كه توي وبلاگ بيشتر راجع به MT مينويسم و دوستان هم خيلي توجه نشون دادن و تشويقم كردن اما MT بيشتر براي من در حد يك سرگرمي بوده. كار اصلي من برنامه نويسي هست و تو شركتي كه كار ميكنم برنامه نويسي ASP انجام ميدم وخودم هم دارم روي ASP .net كار ميكنم. به خاطر همين اين پولي شدن MT اختلالي تو كار من پيش نمياره و فقط باعث شده از MT زده بشم و بيشتر به اون طرف برنامه نويسي متمايل بشم.

[ 10:07 AM ]   .   [ Comments (0) ]

 

 

April 26, 2004

 
 
 

به دست آوردن پسورد فراموش شده در MT

مشكل: پسورد موويبل تايپ گم شده است و شما ايميل و محل تولد خود را قبلا وارد نكرده بوديد تا بتوانيد از بخش Forgot your password موويبل تايپ براي بازيابي پسورد استفاده كنيد.

براي حل اين مشكل شما بايد به cPanel هاست خود دسترسي داشته باشيد. با طي اين مراحل ميتوانيد به پسورد MT خود دست پيدا كنيد:

  1. با وارد كردن آدرس cPanel و دادن يوزر نيم و پسورد وارد cPanel شويد.
  2. با كليك روي آيكون MySQL Databases كه به شكل mysql.gif  است وارد بخش بانك اطلاعاتي شويد.
  3. روي لينك phpMyAdmin كليك كنيد تا بتوانيد بانك اطلاعاتي را ويرايش كنيد.
  4. در صورتي كه در هاست خود از بيشتر از يك بانك اطلاعاتي استفاده ميكنيد در ليستي كه در قسمت بالا سمت چپ قرار دارد بانك اطلاعاتي مورد استفاده MT را انتخاب كنيد. در نام بانك اطلاعاتي به احتمال زياد كلمه mt وجود دارد.
  5. در سمت راست روي لينك جدول mt_author كليك كنيد.
  6. در بالاي جدولي كه ظاهر ميشود روي Browse كليك كنيد.
  7. در ستون author_name به دنبال نام كاربري خود بگرديد و سپس در سطري كه مربوط به نام كاربري شما است روي شكلك Edit (button_edit.png) كليك كنيد.
  8. در جدول، رديف author_email را پيدا كنيد و در ستون Value آدرس ايميل خود را وارد كنيد.
  9. در جدول، رديف author_hint را پيدا كنيد و در ستون Value محل تولد خود را وارد كنيد. (پسوردي كه در اين صفحه ميبينيد براي شما غير قابل استفاده است! به اين علت كه آن مقدار پسورد به صورت كد شده است.)
  10. كليد Go را بزنيد.
  11. وارد MT شويد و روي Forgot your password كليك كنيد.
  12. در پنجره باز شده يوزرنيم و محل تولد را وارد كنيد. با زدن دكمه RECOVER پسورد اصلي عوض شده و براي شما Email ميشود.
     

[ 04:22 PM ]   .   [ Comments (1) ]

 

 

March 22, 2004

 
 
 

فيلتر نظرات و پينگهای نامناسب

يكي از بزرگترين مشكلات وبلاگ ها نظرات نامربوط و غير بهداشتي است! كنترل دستي نظرات هم كاري بسيار سخت و وقتگير است به همين خاطر نياز به وجود سيستمي اتوماتيك براي اين مشكل كاملا احساس ميشد.

براي اين حل اين مشكل شخصي به اسم Jay allen يك Plug in طراحي كرده است به نام mt-blacklist. البته همين طور كه از نام آن پيدا است اين Plug in مربوط به سيستم MT است.

من در اينجا طريقه نصب و استفاده از اين Plug in را توضيح خواهم داد.

نصب:

  1. از اينجا mt-blacklist داونلود كنيد و بعد از باز كردن فايل، فايلها آن را به اين صورت داخل شاخه اي كه MT نصب شده است upload كنيد: (MT_DIR نشان دهند شاخه MT است)

    MT_DIR/mt-blacklist.cgi
    MT_DIR/plugins/Blacklist.pl
    MT_DIR/extlib/jayallen/Blacklist.pm
    MT_DIR/extlib/jayallen/MTBlPing.pm
    MT_DIR/extlib/jayallen/MTBlPost.pm


  2. به همه فايلها premission 755 دهيد (به اين صورت كه در برنامه FTP خود روي فايلها راست كليك كنيد و به دنبال گزينه اي با نام "Permissions" يا "Chmod" بگرديد سپس در آنجا شماره 755 را وارد كنيد و اگر به صورت گرافيكي است همه گزينه هاي بالا و پايين و گزينه سمت چپ وسطي را چك بزنيد)
     

  3. در داخل مرورگر خود آدرس فايل mt-blacklist.cgi را وارد كنيد. فايل در شاخه mt و در كنار فايل mt.cgi قرار دارد. براي مثال اگر براي وارد شدن به mt از آدرس http://domain.com/mt/mt.cgi استفاده ميكنيد اين آدرس را در مرورگر وارد كنيد:

    http://domain.com/mt/mt-blacklist.cgi

     
  4. وارد صفحه configure شويد و در قسمت MT-Blacklist Master Switch گزينه yes را انتخاب كنيد و دكمه Save configuration را بزنيد.

صفحات mt-blacklist

صفحه configure

  • Would you like to activate MT-Blacklist: اين بخش مشخص ميكند آيا blacklist mt- فعال باشد يا نه.
     
  • What actions would you like MT-Blacklist to take for each weblog: در اين قسمت ميتوانيد مشخص كنيد mt-blacklist روي كدام يك از وبلاگهاي شما عمل كند.
     
  • What response would you like to return for denied comments/pings: در اين قسمت ميتوانيد متن خطايي را كه mt-blacklist در هنگام فيلتر كردن نشان ميدهد را سفارشي كنيد.
    در اين قسمت ميتوانيد از اين متغيرها استفاده كنيد:
     
    • __TYPE__ = نوع خطا (ping يا comment)
    • __BLACKLIST__ = مشخص ميكند مورد فيلتر شده با كدام يك موارد ليست سياه منطبق است.
    • __TEXT__ = مشخص ميكند چه كلمه ايي فيلتر شده است.

    براي مثال در اين قسمت ميتوانيد از اين پيام استفاده كنيد:

    __TYPE__ شما به علت وجود كلمه اي ممنوع در آن ارسال نشد. لطفا كلمه __TEXT__ را حذف كنيد.
     

  • Would you like logging of blocked posts: اگر گزينه yes را انتخاب كنيد موارد فيلتر شده در activity log ثبت خواهد شد. ميتوانيد به اين وسيله از طرز عمل اين Plug in مطلع شويد. (براي مشاهده activity log در صفحه اول MT روي View Activity Log كليك كنيد). در activity log ميتوانيد گزارشاتي از اتفاقات رخ داده در سيستم را مشاهده كنيد.
     
  • Search & De-spam: در اين قسمت ميتوانيد تنظيمات پيش فرض صفحه De-spam را مشخص كنيد. البته در مواقع لازم ميتوانيد در آن صفحه تنظيمات را عوض كنيد. گزينه هاي ليستي كه در اين قسمت وجود دارد به ترتيب به اين شرح است:
     
    • Don't delete the comment/ping or rebuild: نظرات و پينگهي مشكل دار حذف نخواهند شد.
    • Delete the comment/ping: نظرات و پينگهاي مشكل دار حذف خواهند شد ولي صفحات شامل آن نظرات و پينگها بازسازي نخواهند شد.
    • Delete the comment/ping and rebuild the entry: نظرات و پينگهاي مشكل دار حذف خواهند شد و صفحاتي كه شامل اين موارد هستند بازسازي خواهند شد. (براي ظاهر شدن حذفيات در وبلاگ بايد صفحات بازسازي شوند)
    • Delete the comment/ping and rebuild the entry/indexes: دقيقا مثل مورد قبلي با اين تفاوت كه صفحات اصلي هم بازسازي خواهند شد. (براي به روز شدن شمارنده هاي Track back و نظرات كه در صفحه اصلي وجود دارند لازم است صفحه اصلي هم بازسازي شود)

    در How deep should search go? ميتوانيد مشخص كنيد در هنگام جستجو براي موارد مشكل دار در چه تعداد از نظرات و پينگها جستجو انجام شود.
     

  • Would you like to publish your blacklist on your site after each change?: اگر در اين قسمت yes را انتخاب كنيد ليست سياه شما در سايت منتشر خواهد شد به طوري كه ديگران هم قادر به مشاهده آن خواهند بود.
     
  • If yes, enter the full path and filename of the file: در صورتي جواب شما به سوال قبلي مثبت بوده است در اين قسمت ميتوانيد مشخص كنيد ليست سياه در كجا منتشر شود. مكان اين ليست به طور پيشفرض فايل blacklist.txt در ريشه سايت است. (به عنوان مثال www.mojde.com ريشه اين سايت است) اكثر وبلاگها تنظيمات پيش فرض را عوض نميكنند بنابراين ميتوانيد ليست سياه آنها را مشاهده كنيد.
     
  • Restore default settings: در صورت چك زدن گزينه I don't really want... و زدن دكمه Restore Default… كليه تنظيمات و ليست سياه شما حذف خواهد شد.

صفحه De-spam

در اين صفحه ميتوانيد در نظراتي كه قبلا در وبلاگ داده شده است به دنبال موارد مشكل دار بگرديد. به عنوان مثلا اگر به ليست سياه خود موارد جديدي را اضافه كرديد به اين وسيله ميتوانيد نظرات و پينگهاي قبلي كه شامل موارد جديد هستند را پاكسازي كنيد. موارد موجود در اين صفحه به اين شرح هستند:

در فرم بالاي صفحه ميتوانيد تعداد نظرات و پينگهايي كه جستجو ميشود را تائين كنيد و مشخص كنيد جستجو در پينگها انجام شود يا در نظرات. در قسمت بعدي اين فرم با انتخاب Blacklist matches جستجو براي يافتن موارد منطبق با ليست سياه انجام خواهد شد و با انتخاب IP Address جستجو براي يافتن مواردي كه توسط شخصي با يك IP خاص فرستاده شده است انجام خواهد شد. (براي اطلاع از اينكه IP شخص فرستنده يك نظر چيست ابتدا وارد صفحه Edit Entries شويد و در آنجا مطلبي كه نظر بر