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

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

 
 

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 شويد و در آنجا مطلبي كه نظر براي آن گذاشته شده است را انتخاب كنيد و در صفحه اي كه باز ميشود در قسمت Edit Comments روي نظر مورد نظر خود كليك كنيد)

بعد از كليك روي Search در صورت يافت شدن مواردي كه منطبق با موارد وارد شده باشد در صفحه ليستي ظاهر ميشود شامل موارد زير:

  • Spam: با تيك زدن اين مورد ميتوانيد مورد يافت شده را حذف كنيد.
  • Author: نام نويسنده نظر
  • IP Address: آي پي شخص نظر دهنده (با استفاده از اين مورد ميتوانيد به IP كساني كه اكثرا نظرات مشكل دار ارسال ميكنند پي ببريد و ديگر به آنها اجازه ارسال نظر را ندهيد. براي اين كار به قسمت Weblog config>IP Banning وبلاگ برويد و IP را در آنجا وارد كنيد)
  • Email: ايميل نظر دهنده
  • URL: آدرس سايت نظر دهنده
  • Blacklist entry matched: نشان دهنده موردي از ليست سياه است كه با نظر يافت شده منطبق شده است.
  • …Posted to … entry: اين بخش يك لينك است كه نام وبلاگ و مطلبي كه نظر براي آن پست شده است را نشان ميدهد و با كليك روي آن وارد بخش ويرايش آن مطلب خواهيد شد.

زير اين ليست چك باكس Rebuild the relevant entries after comment deletion قرار دارد كه با چك زدن آن بعد از حذف شدن نظر مطلب مربوطه بازسازي خواهد شد.

وقتي دكمه Delete checked comments را بزنيد مواردي كه ستون Spam آنها چك خورده حذف خواهد شد.

بعد از حذف صفحه اي ظاهر خواهد شد كه حذف شدن موارد را اطلاع ميدهد. در زير اين صفحه دكمه Click to Inspect and add قرار دارد. با كليك روي اين دكمه به طور اتومايك URL (آدرس اينترنتي) نظرات حذف شده جهت قرار گيري در ليست سياه به صفحه ADD منتقل خواهد شد.

صفحه Add

در اين صفحه ميتوان موارد مورد نظر را به ليست سياه افزود. براي اضافه كردن كلمات به ليست سياه به اين نكات توجه كنيد:

  • هر مورد بايد در يك خط قرار گيرد.
  • با اضافه كردن علامت # بعد از هر مورد ميتوانيد توضيحي براي هر مورد بنويسيد.
  • خطوط خالي و خطوطي كه فقط شامل توضيح باشند ناديده گرفته خواهند شد.
  • رشته هاي http:// و www. از موارد وارد شده حذف خواهند شد.
  • موارد وارد شده به بزرگي و كوچكي حروف حساسيت ندارند.

صفحه List

در اين صفحه ميتوانيد موارد موجود در ليست سياه را مشاهده و آنها را حذف كنيد.

  • در قسمت Quick Add ميتوانيد موردي را به ليست سياه اضافه كنيد. تفاوت اين قسمت با صفحه Add در اين است كه در اين قسمت فقط يك مورد را ميتوانيد اضافه كنيد و همچين اجازه اضافه كردن توضيح را نداريد.
  • در قسمت Sort by ميتوانيد ليست سياه را مرتب كنيد.
  • در بخش ليست اين موارد وجود دارد:
     
    • info: با كليك روي اين لينك ميتوانيد خصوصيات كلمه مورد نظر را مشاهده كنيد همچنين به اين وسيله ميتوانيد به مورد توضيح اضافه كنيد و توضيح را ويرايش كنيد.
    • Remove: با استفاده از اين مورد ميتوانيد كلمه را حذف كنيد.
       
  • Delete: با چك زدن اين مورد و زدن دكمه Delete checked entries ميتوانيد چند مورد را همزمان حذف كنيد.

بهينه سازي ليست سياه

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

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

[^y]x[^z]|^x$|^x[^z]|[^y]x$

  • به جاي x ها كلمه اي كه ميخواهيد فيلتر شود را قرار دهيد. مثلا كلمه "خر"!
  • به جاي y ها حروفي كه مجاز هستند در اول كلمه قرار بگيرند را وارد كنيد. در اين مثال ما به جاي y حرف "آ" را قرار ميدهيم چون اگر در اول "خر" كلمه "آ" نوشته شود آن را تبديل به "آخر" ميكند. در صورتي كه چندين حرف به اين صورت وجود داشت آنها را بدون فاصله كار هم قرار دهيد.
  • به جاي z ها حروفي كه مجاز هستند در آخر كلمه قرار بگيرند را قرار دهيد. در اين مثال ما ميتوان در اينجا "دا" را وارد كرد. ("د" براي "خرداد" و "ا" براي "خراسان")

در آخر مثال ما به اين صورت در خواهد آمد:

[^آ]خر[^اد]|^خر$|^خر[^اد]|[^آ]خر$

(اين خط را در صفحه Add وارد كنيد)

MT-blacklist براي تشخيص كلمه هاي غير مجاز از دستورهاي شرطي Perl استفاده ميكند كه از انعطاف فوق العاده اي برخوردارند. انشاالله در آيند در اين مورد مطالب بيشتري خواهم نوشت.

نكته مهم: به علت اينكه MT-blacklist كد گذاري صفحه را تشخيص نميدهد لازم است خود كد گذاري صفحه را unicode كنيم. براي اين كار ابتدا روي يك جاي خالي از صفحه راست كليك كنيد و چك گزينه encoding>Auto-select را برداريد تا خود به خود كد گذاري صفحه تغيير نكند سپس دوباره روي يك جاي خالي از صفحه راست كليك كنيد و گزينه encoding>unicode (utf-8) را انتخاب كنيد. در صورت عدم انجام اين كار كلمات ممنوعه فيلتر نخواهند شد.

نكنه مهم دوم: براي حروف "ك" و "ي" دو نوع كلمه وجود دارد ( فارسي و عربي) و در نظرسنجي هر كدام ممكن است وارد شود بنابراين هنگام اضافه كردن كلماتي كه داراي اين حروف هستند به ليست سياه لازم است هر دو شكل را وارد كنيد. "ك" و "ک" براي حرف "ك" و "ي" و "ی" براي حرف "ي"

براي مطالعه بيشتر به راهنماي اصلي mt-blacklist و اين مطلب از وبلاگ خوب LostLord مراجعه نماييد.

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

 

 

March 07, 2004

 
 
 

تعويض عنوان نظر خواهی به طور اتوماتيك

يكي از چيزهايي كه توي بعضي از وبلاگها توجه من رو جلب ميكرد نظر خواهيهايي بود كه ميشد عنوانشون رو عوض كرد يعني به جاي اينكه فقط متني ثابت براي نظرخواهي در نظر گرفت بشه مثل Comments، نظرخواهي و... بتوان اين متن را در مواقع لازم با يك سوال سفارشي تعويض كرد. (يكي از نكات جالب اسپ سوار هم همين موضوع است)

من هم همين طور كه ميبينيد اين امكان رو به وبلاگ اضافه كردم و در اينجا نحوه به وجود آوردن اين امكان را در MT توضيح ميدهم.

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

بعد به بخش ويراش قالب اصلي برويد و قسمتي را كه مربوط به نظرخواهي است پيدا كنيد. اين بخش معمولا به اين صورت است:

<a class="links" href="<$MTCGIPath$><$MTCommentScript$>?entry_id=<$MTEntryID$>" onclick="OpenComments(this.href); return false">………</a>

سپس در بين لينك نظرخواهي (جايي را كه با چند نقطه مشخص كردم) موارد زير را وارد كنيد:

<$MTEntryKeywords$>
<MTIfEmpty var="EntryKeywords">نظرات</MTIfEmpty>
<span dir="ltr">(<$MTEntryCommentCount$>)</span>

به اين صورت وقتي براي مطلبي در بخش Key words صفحه New Entry متني وارد كنيد آن متن در عنوان نظرخواهي ظاهر ميشود و در صورتي كه در آن قسمت چيزي وارد نكنيد نوشته "نظرات" ظاهر ميشود.

البته به طور عادي بخش Key words در صفحه New Entry موجود نيست. براي نمايش اين بخش در صفحه New Entry روي Customize the display of this page كليك كنيد و در پنجره اي كه باز ميشود گزينه Custom را انتخاب كنيد و همه موارد آن را چك بزنيد.

[ 08:45 PM ]   .   [ Comments (0) ]

 

 

March 05, 2004

 
 
 

رفع مشكل ناسازگاری فونتها Windows در MT

همان طور كه ميدانيد به علت ناسازگاري فونتهاي ويندوز هاي قديميتر با ويندوزهاي جديد، ويندوزهاي قديميتر در نمايش كلماتي مثل "ك" و "ي" مشكل دارند. البته در ويندوزهاي 2000 و xp ميتوان براي رفع اين اشكال براي حرف ي از كليد هاي Ctrl+x و براي ك از Alt+0223 (در بخش عددي صفحه كليد) استفاده كرد ولي اين كار طاقت فرسا است و در ضمن در بعضي اوقات ممكن است فراموش شود.
براي حل اين مشكل ميتوان از بخش Search Entries موويبل تايپ به بهترين وجه استفاده كرد. (اين بخش را در منو سمت راست MT ميتوانيد پيدا كنيد).
بنابراين اگر از ويندوز 2000 يا xp استفاده ميكنيد چند وقت يك بار به اين بخش برويد و "ي" (عربي) را جايگزين "ی" (فارسي) و "ك" (عربي) را جايگزين "ک" (فارسي) كنيد به اين صورت كه كلمه اي را كه ميخواهيد جستجو كنيد را در جعبه متن Search for و كلمه اي را كه ميخواهيد جايگزين آن كنيد در Replace with وارد كنيد و دكمه REPLACE را بزنيد. در كار وارد كردن كلمات دقت كنيد چون اين عمل بازگشت پذير نيست. بعد از اتمام كار همه فايلها را بازسازي كنيد.

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

 

 

February 11, 2004

 
 
 

طريقه ساخت لينكدوني روزانه

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

hoder-error.jpg

(هودر جان از اين راهنما استفاده كن!)
من بري اين لينكدوني ازphp استقاده كردم و برنامش رو هم خودم نوشتم. بنابراين اگه ازش استفاده كرديد بد نيست يادي از من و مژده هم بكنيد!

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


  2.  تنظيمات وبلاگ لينكدوني
     
  3. در MT يك وبلاگ جديد بسازيد به نام linkdooni (بري اين كار ميتوانيد از اين راهنمي بابك استفاده كنيد: مرحله اول : ساخت وبلاگ جديد در MT)
     
  4. داخل وبلاگ جديد به بخش weblog config در آنجا به بخش Preferences برويد و اين تنظيمات را انجام دهيد:
     
    • Default Text Formatting for new entries بايد none باشد.
    • Number of words in excerpt بايد 0 باشد.
    • Preferred Archive Type بايد Monthly باشد.
    • Allow Pings on by default? بايد بدون چك مارك باشد.
    • Allow Comments on by default? بايد بدون چك مارك باشد.
       
  5. داخل بخش Templates قالب Main index را تيك بزنيد و كليد DELETE را بزنيد.
     
  6. در بخش Templates روي Master Archive Index كليك كنيد و آنجا Output File را به index.html تغيير دهيد. به اين تريب هر كس وارد وبلاگ لينكدوني شود ابتدا با آرشيو آن روبرو ميشود.
     
  7. در بخش Templates براي ساخت يك قالب آرشيو جديد روي Create new archive template كليك كنيد. سپس در فيلد Template Name عبارت Daily Link را وارد كنيد و در قسمت متن قالب كد زير را وارد كنيد:

    <div class="linkdooniBox">
    <MTEntries>
    <MTDateHeader>
    <div class="linkdooniDate"><$MTEntryDate format="%x"$> <span class="linkdooniArchive">[<a href="http://yoursite.com/linkdooni">آرشيو</a>]</span></div>
    </MTDateHeader>
    <div class="linkdooniItem"><a href="<$MTEntryBody escape_html="1"$>"<MTIfNotEmpty var="EntryExcerpt"> title="<$MTEntryExcerpt escape_html="1" escape_htmlattr="1"$>"</MTIfNotEmpty>><$MTEntryTitle$></a></div>
    </MTEntries>
    </div>

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

  8. در بخش Templates روي Date-based Archive كليك كنيد و داخل متن قالب تگهاي:

    <MTEntries> و </MTEntries>

    و تگهاي بين آنها را انتخاب كنيد و سپس اينها را جايگزين آن كنيد:

    <MTEntries>
    <$MTEntryTrackbackData$>
    <MTDateHeader>
    <h2 class="date"><$MTEntryDate format="%x"$></h2>
    </MTDateHeader>
    <div class="blogbody">
    <a name="<$MTEntryID pad="1"$>"></a>
    <a href="<$MTEntryBody escape_html="1"$>"<MTIfNotEmpty var="EntryExcerpt"> title="<$MTEntryExcerpt escape_html="1" escape_htmlattr="1"$>"</MTIfNotEmpty>><$MTEntryTitle$></a><br />
    </div>
    </MTEntries>


  9. در بخش weblog config وارد Archiving شويد و دقت كنيد چك باكسهاي Archive Type مربوط به Daily و Monthly چك خورده باشد. (آرشيو Daily براي ذخيره لينكهاي هر روز است)
     
  10. در همان بخش كليد ADD NEW را بزنيد و در pop up اي كه بازميشود از ليست Archive Type گزينه Daily و از ليست Template گزينه Daily Link را انتخاب كنيد و سپس ADD را بزنيد.
     
  11. در همان صفحه (صفحه Archiving) در بخش Daily گزينه Daily Link را انتخاب كنيد در جعبه متن روبروي آن عبارت زير را وارد كنيد:

    <$MTEntryDate format="%Y-%m-%d" $>.html

  12. تنظيمات وبلاگ اصلي
     
  13. در وبلاگ اصلي وارد بخش Templates و از آنجا وارد قالب Main index شويد. در آنجا تگ زير را پيدا كنيد:

    <MTEntries>

    و دستورات زير را در بالاي آن قرار دهيد:

    <?
    $ArchivePath = "../linkdooni/archives/";
    $StartDate = strtotime(date("Y-m-d"));
    ?>

    در اين كد بايد تغييراتي به اين صورت اعمال كنيد:
    وبلاگها معمولا يا در صفحه اول سايت قرار ميگيرند يا در يك شاخه. در صورتي كه وبلاگ شما در صفحه اول سايت قرار دارد علامت هاي ../ را از خط $ArchivePath برداريد.
    تغيير دوم به صورت است كه اگر وبلاگ لينكدوني شما در شاخه ايي غير از linkdooni قرار دارد در همان خط قبلي نام شاخه وبلاگ لينكدوني خود را جايگزين كلمه linkdooni كنيد. (در كل آدرس آرشيو لينكدوني را بايد روبروي ArchivePath وارد كنيد)
     

  14. در همان قالب اصلي تگ زير را پيدا كنيد:

    <MTDateHeader>

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

    <?
    // Copyright (C) 2004 For http://weblolg.mojde.com
    $EndDate = strtotime("<$MTEntryDate format="%Y-%m-%d" $>");

    $SecondsDiff = $StartDate - $EndDate;
    $Datediff = floor($SecondsDiff / 86400);

    for ($i = 0; $i <= $Datediff ; $i++) {
    $Today = $StartDate - ($i * 86400);
    $FileName = date("Y-m-d",$Today) . ".html";
    $FilePath = $ArchivePath . $FileName;
    if (file_exists($FilePath)) {
    include($FilePath);
    }
    }
    $StartDate = $EndDate - 86400
    ?>
     

  15. در جعبه متن Output File نام index.php را وارد كنيد. به اين وسيله دستورات php شما اجرا خواهد شد.
     
  16. به وسيله يك برنامه FTP به سايت خود وصل شويد و در شاخه اي كه وبلاگتان قرار گرفته فايل index.html را حذف كنيد. اين كار به اين خاطر است كه سرور به طور پيش فرض فايل index.html را نمايش ميدهد و در صورت وجود آن در صورتي كه دقيقا كسي فايل index.php را فراخواني نكند آن فايل اجرا نخواهد شد.

  17. تنظيم شكل لينكدوني
     
  18. همان طور كه ديديد من براي لينكدوني روزانه چهار عدد كلاس تعريف كردم:

    linkdooniBox <!—براي جعبه اي كه لينكهاي هر روز در آن قرار ميگيرد -->
    linkdooniDate <!—براي تاريخ لينكدوني -->
    linkdooniArchive <!—براي آرشيو لينكدوني -->
    linkdooniItem <!—براي لينكها -->

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

    <style>
    .linkdooniBox {}
    .linkdooniDate {}
    .linkdooniArchive {}
    .linkdooniItem {}
    </style>

    البته شما بايد خصوصيات مورد نظرتان را در بين علامتهاي {} قرار دهيد. اين مقوله در زمينه css قرار ميگيرد. شما ميتوانيد از اين آموزشها بري يادگيري css استفاده كنيد.
    در اينجا يك نمونه از استيل لينكدوني را مشاهده ميكنيد:

    <style>
    .linkdooniBox {border: solid 1px black; padding: 2px}
    .linkdooniDate {border-bottom: solid 1px}
    </style>

طريقه اضافه كردن لينك
 

وارد وبلاگ لينكدوني شويد بعد به بخش New Enrty برويد و آنجا متن لينك را در Title آدرس لينك را در Entry Body و شرح آن را در Excerpt وارد كنيد.


توضيحات فني
 

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

2003-11-24.html

سپس در وبلاگ اصلي به وسيله php ابتدا چك ميكنيم كه در بين مطالب پست شده چه روزهايي وجود دارد سپس كنترل ميشود كه آيا بري آن روزها فايلي در آرشيو لينكدوني وجود دارد يا نه. در صورت وجود فايل آن فايل در بالاي هر روز اضافه (include) ميشود.

[ 04:00 PM ]   .   [ Comments (0) ]

 

 

February 05, 2004

 
 
 

اصلاح مطلب وبلاگ دو ستونی

اخيرا دو نفر از دوستان نوشته بودند مطلب "وبلاگ دو ستونی" اشکال داره. وقتی بررسی کردم متوجه شدم مشکل اون مطلب اين بوده که به جای علامت " از علامت ” استفاده کرده بودم. (برنامه word اين جوری مينويسه علامت نقل قول رو) به هر حال درستش کردم ميتونيد دوباره بخونيد.
ميگن که "همه عيبش به گفتی هنرش نيز بگو" ولی برعکسش هم صادقه! يکی از مشکلات MT اينه که برخلاف HTML که ميشه توش از " و ' استفاده کرد يا حتی ميشه هيچ علامتی نذاشت توی MT برای خصوصيات تگها حتما بايد از علامت " استفاده کرد.

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

 

 

January 07, 2004

 
 
 

تنظيمات بخش weblog config براي سايتهاي اختصاصي و netfirms

هنگام نصب Movable type يكي از مشكل دارترين بخشها تنظيمات بخش weblog config است. در اين بخش بايد مسير اجرا و مكان وبلاگ را مشخص كرد. در اينجا من به طور كامل راجع به اين تنظيمات در سايت اختصاصي و netfirms توضيح خواهم داد:

  1. فايل mt-check.cgi را اجرا كنيد. مكان اين فايل همان جايي است كه MT نصب شده. اين مكان در سايتهاي اختصاصي به اين شكل است:

    http://domain name/cgi-bin/mt/mt-check.cgi

    و يا به اين شكل:

    http://domain name/cgi-bin /mt-check.cgi

    در netfirms اين آدرس به صورت است:

    http://user name.netfirms.com/cgi-bin/mt/mt-check.cgi

  2. در mt-check.cgi آدرس جلوي Current working directory را در جايي ياداشت كنيد و آن را به اين صورت تغيير دهيد:

    در سايت اختصاصي آن آدرس تقريبا به اين صورت است:

    /home/mojde/public_html/cgi-bin/mt

    از cgi-bin به بعد را پاك كنيد و به جاي آن اسم شاخه (يا subdomainاي) را كه ميخواهيد وبلاگ در آن قرار گيرد بنويسيد. در صورت اينكه ميخواهيد وبلاگ در صفحه اول سايت قرار گيرد لازم نيست اسم شاخه اي را بنويسد.

    در netfirms آدرس تقريبا به اين شكل است:

    /mnt/web_a/d23/s47/a000qisb/cgi-bin/mt

    در اينجا هم از cgi-bin به بعد را پاك كنيد و به جاي آن www را بنويسيد در صورت تمايل به قرار دادن وبلاگ در يك شاخه با اضافه كردن / نام شاخه را بنويسيد. در اين صورت آدرس به اين شكل در خواهد آمد:

    /mnt/web_a/d23/s47/a000qisb/www/weblog

    دقت كنيد كه در آخر آدرس به دست آمده كاراكتر / را نبايد اضافه كنيد.

  3. وارد بخش weblog config شويد و آدرس به دست آمده در مرحله 2 را در قسمت Local Site Path بنويسيد.

  4. آدرس كامل وبلاگ را در Site URL بنويسيد. اين آدرس همان آدرسي است كه بازديدكنندگان از آن براي ديدن وبلاگ استفاده ميكنند. براي مثال اين آدرس براي وبلاگ من به اين صورت است:

    http://weblog.mojde.com/

    ممكن است در بعضي مواقع اين اشتباه پيش آيد كه قبل از subdomain كلمات www را وارد كنند. در صورت استفاده از subdomain كلمه www را حذف كنيد.

    در صورت تمايل به استفاده از شاخه آدرس به اين صورت خواهد بود:

    http://www.mojde.com/weblog/

    در آخر آدرس كاراكتر / را بنويسيد.

  5. در Local Archive Path آدرسي را كه در مرحله 2 به دست آورده ايد بنويسيد و به انتهاي آن كلمه /archives را اضافه كنيد.

  6. در Archive URL آدرسي را كه در مرحله 4 نوشته ايد بنويسيد و به انتهاي آن /archives را اضافه كنيد.

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

 

 

November 21, 2003

 
 
 

شکلک برای MT!

اگه يادتون باشه قبلا آقا فرهاد يه راهنما در مورد اضافه کردن شکلت به اديتور MT ترجمه کرده بود ولی به علت جابجايي وبلاگش اين مطالب پاک شد. ميتونيد متن اصلی اون راهنما رو اينجا پيدا کنيد.
How to Add a Smilie Bar to Movable Type

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

 

 

October 20, 2003

 
 
 

استفاده از Bookmarklets

نمی دونم تا حالا به قسمت Bookmarklets تو صفحه اصلی mt دقت کرده بوديد يا نه ولی اگه تا حالا نديده بوديتش کلی ضرر کرديد!
با استفاده از Bookmarklets می تونيد بدون اينکه وارد قسمت اصلی MT بشيد مطالب رو پست کنيد.
برای استفاده از Bookmarklets ابتدا وارد منو اصلی (همون جايی که ليست وبلاگها قرار داره) بشيد و روی لينک Set up bookmarklets کليک کنيد و بعد قسمتهايی رو که ميخوايند داخل پنجره Bookmarklets ظاهر بشن رو تيک بزنيد. بهتره موارد Category, Allow Pings و Allow Comments رو تيک بزنيد. بعد دکمه CREATE رو بزنيد.
اگه intenet explorer داريد روی Add MT It! to Windows right-click menu کليک کنيد. بعد فايل mt.reg رو سيو کنيد و اون رو اجرا کنيد. بعد مرورگر رو ببنيد و دوباره باز کنيد. از اين به بعد به منو راست کليک مرورگر گزينه mt it! اضافه ميشه که با کليک روی اون پنجره mt it باز ميشه. البته توجه کنيد که برای اومدن اون موقع وارد شدن به mt بايد Remember me? رو چک زده باشيد وگرنه اگر مدتی از وارد شدن شما به mt بگذره ديگه پنجره mt it باز نميشه.
اگر هم netscope داريد لينک Post to MT Weblog رو توی منو bookmark درگ کنيد.
بعد از اوردن Bookmarklets وبلاگی رو که مي خوايند مطلب رو به اون ارسال کنيد رو انتخاب کنيد.
نکته جالب Bookmarklets اينه که وقتی اون رو مياريد داخل اون به صورت پيش فرض لينک صفحه جاری ظاهر ميشه و می تونيد بدون انجام کار خاصی به اون صفحه لينک بديد.
(ميدونيد چرا هودر انقدر ليکدونيش فعاله!؟ خب واسه اينکه از bookmark استفاده ميکنه!)

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

 

 

September 23, 2003

 
 
 

تعيين نام برای آرشيو موضوعی

حتما متوجه شديد که MT برای نام آرشيوهای موضوعی از نامهايي قبيل cat_uoeuoeu.html و cat_oeoeoeuoeoeu.html استفاده ميکنه که صورت زشتی داره. برای تبديل اينها به اسمهايي مثل daily.html يا weblog.html اول به قسمت Categories موويبل تايپ بريد و اونجا برای هر کدوم از موضوعات داخل لينک Edit category attributes بشيد و اونجا توی Category Description برای موضوع يه عنوان انگليسی تايپ کنيد اين عنوان بايد انگليسی، بدون فاصله و علامت باشه در غير اين صورت به علت اينکه از اين حروف برای نام فايل استفاده ميشه ممکنه مشکل ايجاد بشه.
بعد وارد بخش Weblog Config>Archiving بشيد و اونجا داخل جعبه متن Category Archive اين عبارت رو وارد کنيد:

<$MTCategoryDescription$>.html

بعد وارد قسمت ويرايش قالب اصلی بشيد و اونجا اين کدها رو وارد کنيد:

<div class=sidetitle>
Category Archive
</div>
<div class=side style=”direction:rtl”>
<MTCategories show_empty="1">
<a href= "<$MTBlogArchiveURL$><$MTCategoryDescription$>.html"><$MTCategoryLabel$>
</a><br>
</MTCategories>
</div>

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

[ 08:15 AM ]   .   [ Comments (0) ]

 

 

September 20, 2003

 
 
 

موضوع مطلب کنار عنوان

در صورتی که موضوع هر مطلب در کنار عنوان مطلب ظاهر بشه بازديدکننده به علت اينکه فورا متوجه ميشه مطلب در چه باره ايی است کاربری وبلاگ به مقدار زيادی افزايش پيدا ميکنه.
برای اين کار ابتدا کد <$MTEntryTitle$> رو پيدا کنيد و بعد از اون کدهای زير رو قرار بديد:

 .:
<MTEntryCategories glue=", ">
<a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a>
</MTEntryCategories>
:.
 

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

 

 

September 18, 2003

 
 
 

زمان آخرين آپ ديت

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

<div class=sitetitle>
Last Update
</div>
<div class=side>
<MTEntries lastn="1">
<$MTEntryDate format="%x"$> <$MTEntryDate format="%X"$>
</MTEntries>
</div>

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

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

 

 

September 11, 2003

 
 
 

MT نمايشی

شايد خيلی از شما دوست داشته باشيد شخصا با MT کار کنيد و ببنيد امکاناتش چه جوريه واسه همين يه MT روی سايتم نصب کردم تا همه بتونن واردش بشن و ببينن چه ميکنه اين ام تی! آدرس و مشخصاتش اينه:
MT Address: http://mojde.com/cgi-bin/test/mt.cgi
Weblog Address: http://demo.mojde.com
User name: Melody
Password: Nelson
(MT به بزرگی و کوچکی حروف حساسه مواظب باشيد!)

[ 06:37 PM ]   .   [ Comments (0) ]

 

 

August 18, 2003

 
 
 

آرشيو تکی داخل پوپ آپ نظرسنجی!

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

[ 06:37 PM ]   .   [ Comments (0) ]

 

 

August 17, 2003

 
 
 

وبلاگ دو ستونی

يکی دوستان که تصميم دارن با برادرشون يه وبلاگ بزنن ازم پرسيده بودن چه جوری ميشه وبلاگ رو به صورت دو ستونی درست کرد. بهتر ديدم همين جا توضيح بدم.
MT يه تگ داره به نام MTEntries که با استفاده اون مطالب وبلاگ رو نشون میده. اين تگ هم يه خصوصيت داره به نام Author که نام نويسنده مطالب رو مشخص ميکنه. به عنوان مثال تگ زير مشخص ميکنه فقط مطالبی که توسط نويد نوشته شده اند نمايش داده بشن:

<MTEntries Author=”Navid”>

اين دوستا ن هم ميتونن برای وبلاگ تو ستونی به اين صورت عمل کنن:
اول برای وبلاگتون دو تا يوزر تعريف کنيد بعد برای قالب اصلی وبلاگ يه جدول دو ستونی درست کنيد و بعد داخل هرکدوم از ستون ها اين کدها رو بنويسيد:

<MTEntries Author="user">
<$MTEntryTrackbackData$>

<MTDateHeader>
<h2 class="date">
<$MTEntryDate format="%x"$>
</h2>
</MTDateHeader>

<div class="blogbody">

<a name="<$MTEntryID pad="1"$>"></a>
<h3 class="title"><$MTEntryTitle$></h3>

<$MTEntryBody$>

<MTEntryIfExtended>
<span class="extended"><a href="<$MTEntryPermalink$>#more">Continue reading "<$MTEntryTitle$>"</a></span><br />
</MTEntryIfExtended>

<div class="posted">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>
</div>
</div>
</MTEntries>

بعد برای هر کدوم از کدها خصوصيت Author رو مطابق با نام کاربری ميخواهيد مطالب مربوط به اون داخل ستون نمايش داده بشه تغيير بديد.
 

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

 

 

July 07, 2003

 
 
 

اصولا موويبل تايپ چی هست!؟

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

Movable type يک سيستم برای انتشار وبلاگ است و تقزيبا شبيه به سايتهای Blogger و Persianblog کار ميکنه و دقيقا مثل اونا ميتونيم تو ويرايشگرش مطالب رو بنويسيم و بعد منتشر کنيم. تنها تفاوت عمده موويبل تايپ با سيستم های ديگه اينه که بجای اينکه برنامه انتشار وبلاگ روی سرورهايي مثل سرور Blogger يا Persianblog قرار بگيره روی سرور خودمون قرار ميگيرد. يعنی بايد پولی بديد و يه سايت اختصاصی برای خودتون بگيريد و بعد فايلهای موويبل تايپ رو که ميتونيد به صورت مجانی از سايت movabletype.org بگيريد رو توی سايت آپ لود کنيد.(يعنی تو سايت کپی کنيد). بعد وقتی تنظيمات اختصاصی سايت رو روی فايلهای آپ لود شده انجام داديد از اون به بعد ميتونيد مثل سيستم های ديگه ابتدا آدرس مکانی که موويبل تايپ قرارگرفته رو به مرورگر بديد و بعد از وارد کردن نام کاربری و رمز وارد قسمت مديريت موويبل تايپ بشيد و از امکانات فراوانی که موويبل تايپ در اختيارتون قرار ميده استفاده کنيد.

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

  1. موويبل تايپ به جای اينکه مطالب رو داخل بانک اطلاعاتی نگهداری کنه و برای هر بازديدکننده نوشته ها رو از بانک اطلاعاتی بخونه و صفحه رو بسازه، صفحات ثابت HTML رو توليد ميکنه. اين شيوه هم روی سرور فشار کمتری وارد ميکنه و هم موتورهای جستجو بهتر ميتونن صفحات رو فهرست کنن. شايد اينجا اين سوال براتون پيش بياد که اگه صفحات ثابت هستند پس چوری شمارنده نظرات تعداد نظرات رو نشون ميده؟ جواب ساده است! هر وقت بازديدکننده نظر داد صفحه دوباره ساخته ميشه. ما ميتونيم جوری موويبل تايپ رو تنظيم کنيم که صفحات رو به صورت ASP يا PHP توليد کنه و به اين صورت به ما اجازه بده که تو صفحات برنامه نويسی هم انجام بديم.
  2. امکان اضافه کردن کدهای جديد. حتما تو پرشن بلاگ و بلاگر ديديد که يک سری کدهای معين وجود داره که فقط از اونا ميتونيم تو قالب استفاده کنيد. ولی موويبل تايپ اين امکان رو ميده که با آپ لود کردن يک سری فايلهای خاص به مجموعه بزرگ کد های موويبل تايپ موارد ديگری رو هم اضافه کنيم. اين فايلها رو با يه جستجوی ساده ميشه تو اينترنت پيدا کرد.
  3. امکان آرشيو کردن مطالب به صورت موضوعی، ماهانه، هفتگی و تکی. منظور از تکی اينه که هر مطلب داخل يک صفحه جدا گونه قرار ميگيره و برای لينک دادن مردم ميتونن از آدرس همون صفحه استفاده کنت. در ضمن داخل اون صفحه نظرات داده شده و فرم نظرخواهی مربوط به اون مطلب هم قرار ميگيره.
  4. امکان اضافه کردن قالبهايی اضافه بر قالبهای استاندارد. به عنوان مثال با استفاده از اين امکان ميشه از يک وبلاگ دو نسخه معمولی و مناسب چاپ داشت.
  5. امکان قرار دادن متون بلند وبلاگ در صفحه آرشيو تکی برای جلو گيری از سنگين شدن صفحه اصلی وبلاگ.
  6. امکان آپ لود کردن تصاوير. ميتونيم عکس يا تصويری رو از روی کامپيوتر خودمون انتخاب کنيم و کار آپ لود کردن و ساخت کدهای مورد نياز رو به خود موويبل تايپ محول کنيم. حتی مويبل تايپ ميتونه عکسها رو به تصاوير بند انگشتی تبديل کنه و اون رو به صورت لينک در بياره تا با کليک کردن روی آن تصوير معمولی باز بشه.
  7. امکان انتخاب موضوع برای هر مطلب.
  8. تغيير تاريخ و ساعت مطالب.
  9. امکان خاموش کردن نظر خواهی برای مطالبی که احتياج به نظر خواهی ندارند.
  10. [ 05:08 PM ]   .   [ Comments (0) ]

 

 

July 05, 2003

 
 
 

اضافه کردن نسخه مناسب چاپ به آرشيو

هميشه موويبل تايت من رو شگفت زده ميکنه! يکی امکانات خيلی جالب MT اينه که اجازه ميده به قالبهای موجود قالبهای ديگری هم اضافه کرد. همين طور که ميبينيد به آرشيو ماهانه نسخه مناسب چاپ را اضافه کردم. اين قسمت رو به وسيله همين امکان اضافه کردن قالب به وجود اوردم.

برای ساخت نسخه مناسب چاپ برای آريشو ابتدا به قسمت Templates موويبل تايپ برويد و روی لينک Create new archive template کليد کنيد و در فرم صفحه بعد در جعبه متن Template Name بنويسيد Printable Archive و در ناحيه Template Body کدهای زير را وارد کنيد:

<head>
<meta http-equiv="Content-Type" content="text/html; charset="<$MTPublishCharset$>" />
<title><$MTArchiveTitle$> Archives</title>
<style>
.title {text-align:center;font-size:250%;direction:rtl}
.title a:link {text-decoration:none;color:black}
.title a:hover {color:gray}
.posttitle {font-weight:bold;text-align:right;font-size:90%;direction:rtl;font-family:tahoma}
.date {font-weight:bold;text-align:right;font-size:80%;direction:rtl;font-family:tahoma}
.blog {text-align:justify;font-size:80%;direction:rtl;font-family:tahoma}
.posted {text-align:justify;font-size:80%;direction:rtl;font-family:tahoma;margin-bottom:5}
</style>
</head>
<body>
<div class="title"><a href="<$MTBlogURL$>" accesskey="1"><$MTBlogName$></a></div>
<MTEntries>
<MTDateHeader>
<div class="date"><$MTEntryDate format="%x"$></div>
</MTDateHeader>
<a name=""></a>
<div class="posttitle"><$MTEntryTitle$></div>
<div class="blog">
<$MTEntryBody$><br />
<MTEntryIfExtended>
<$MTEntryMore$>
</MTEntryIfExtended>
</div>
<div class="posted">
نوشته شده توسط <$MTEntryAuthor$> ساعت <a href="<$MTEntryPermalink$>"><$MTEntryDate format="%X"$></a>
<MTEntryIfAllowComments>
| <a href="<$MTCGIPath$><$MTCommentScript$>?entry_id=<$MTEntryID$>" onclick="OpenComments(this.href); return false">نظرات (<$MTEntryCommentCount$>)</a>
</MTEntryIfAllowComments>
<MTEntryIfAllowPings>
| <a href="<$MTCGIPath$><$MTTrackbackScript$>?__mode=view&amp;entry_id=<$MTEntryID$>" onclick="OpenTrackback(this.href); return false">ترك بك</a>
</MTEntryIfAllowPings>
</div>
</div>
</MTEntries>
</div>
</div>
</body>
</html>

سپس به بخش Weblog config و Archiving برويد و دکمه ADD NEW... بزنيد و از پوپ آپی که باز ميشود از ليست Archive Type گزينه Monthly و از ليست Template گزينه Printable Archive را انخاب کنيد. بعد از اينکه دکمه Add را زديد در صفحه قبل در جعبه متن Printable Archive کد زير را بنويسيد:

<$MTArchiveDate format="%Y_%m"$>_Print.html

بعد به قالب اصلی وبلاگ خود برويد و کدهای <MTArchiveList archive_type="Monthly"> و </MTArchiveList> را پيدا کنيد و بين آنها کد زير را بنويسيد:

<a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a> (<a href="<$MTBlogURL$>archives/<$MTArchiveDate format="%Y_%m"$>_Print.html">چاپ</a>)<br />

بعد در منو اصلی روی Rebuild کليد کنيد و تمام قسمتها را Rebuild کنيد.
 

[ 03:32 PM ]   .   [ Comments (0) ]

 

 

June 29, 2003

 
 
 

افزايش تعداد کامنتها

يکی از دوستان ازم پرسيده بودن چجوری ميشه تعداد پيامهای جديدی که تو منو اصلی MT نشون داده ميشه و تعدادشون 5 تاست رو افزايش داد. برای اين کار پلاگ اين خاصی وجود نداره و بايد تو خود کدهای MT دست کاری کرد. به همين علت اينی که الان ميگم ممکنه مشکلاتی رو ايجاد کنه ولی من روی ورژن 2.63 آزمايش کردم مشکلی نداشت و به احتمال زياد تو ورژن 2.64 که تازه دراومده هم مشکلی پيش نميآره. با اين حال اگه مشکلی ايجاد شد بنده مسئول آن نخواهم بود!

  • با يه برنامه FTP به شاخه ايي که MT نصب شده بريد و فايل زير رو پيدا کنيد:
    Lib\MT\App\CMS.pm
    بعد بازش کنيد و عبارت زير رو توش پيدا کنيد:
    $iter = MT::Comment->load_iter
    زير اون عبارت، عبارت limit => 5 وجود داره. عدد 5 رو به عدد 10 تغيير بديد.
  • تو شاخه MT فايل زير رو پيدا کنيد و بازش کنيد:
    tmpl\cms\menu.tmpl
    بعد عبارت Five Most Recent Comments رو پيدا کنيد و به جاش Ten Most Recent Comments رو بنويسيد.

برای دادن تغييرات ميتونيد فايلها رو يا همون جا به وسيله برنامه FTP تغيير بديد يا ميتونيد اونها رو ابتدا داون لود کنيد و بعد از اينکه تغييرات لازم رو انجام داديد دوباره آپ لودشون کنيد.

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

 

 

June 26, 2003

 
 
 

تعيين تعداد مطالب در وبلاگ

چند تا از دوستان ميخواستن مثل blogger.com بتونن تعداد نوشته ها رو تو صفحه اصلی وبلاگ تعيين کنن. MT تنظيمی برای اين نداره و فقط ميشه تعداد روزها را تنظيم کرد. برای تنظيم تعداد مطلب تو قالب اصلی <MTentries> رو پيدا کنيد و به جاش اين رو بنويسید:
<MTentries lastn="10">
بجای عدد 10 هر عددی که خواستيد ميتونيد وارد کنيد.

[ 02:50 PM ]   .   [ Comments (0) ]

 

 

June 25, 2003

 
 
 

شمارش تعداد کلمات مطلب در MT

با استفاده از اين plugin ميتونيد مثل من کاری کنيد که تعداد کلمات هر مطلب نمايش داده بشه. طريقه نصب اين plugin دقيقا شبيه به pluginهای ديگس يعنی بايد فايل WordCount.pl رو تو شاخه plugins آپ لود کنيد و اگر آن شاخه وجود نداشت بسازيدش.
برای استفاده از اين Plugin توی قالب اصلی <MTEntryIfAllowComments> رو پيدا کنيد و قبل از اون اين را اضافه کنيد:
در <MTWordCount> کلمه
يک قابليت جالب اين plugin اينه که ميتونه تعداد تصاوير موجود در هر مطلب رو هم شمارش کنه. برای اين کار ميتونيد از تگ <MTImageCount> استفاده کنيد. اين ميتونه برای فوتوبلاگها مفيد باشه.

[ 04:15 PM ]   .   [ Comments (0) ]

 

 

June 22, 2003

 
 
 

فهرست مطالب گذشته

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

برای اين کار تو قالب اصلی <div class="sidetitle"> رو پيدا کنيد و قبل از اون اين رو اضافه کنيد:



<div class="sidetitle" style="direction:rtl">
گذشته ها</div>
<div class="side" style="direction:rtl">
<MTEntries lastn="10" offset="50">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><br />
</MTEntries>
</div>



خصوصيت lastn تعداد مطالبی که فهرست ميشوند و خصوصيت offset مقدار قديمی بودن مطالب رو نشون ميدن. در مثال بالا فهرست مطالب 51 تا 60 نمايش داده ميشن.

[ 03:46 PM ]   .   [ Comments (0) ]

 

 

June 17, 2003

 
 
 

تكميليه براي راهنماي ساخت لينكدوني!

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

[ 03:34 PM ]   .   [ Comments (0) ]

 

 

June 14, 2003

 
 
 

اضافه كردن صورتك به MT

آقا فرهاد يه http://weblog.farhadweb.com/smiles.htm خيلي جالب ترجمه كردن راجع به طريقه اضافه كردن صورتك به ويرايشگر MT. حتما بخونيدش! در آخر هم اون مطلب رو به من تقديم كردن كه از لطفشون تشكر ميكنم!

[ 09:35 AM ]   .   [ Comments (0) ]

 

 

June 11, 2003

 
 
 

نمايش تاريخ آخرين تغييرات در مطالب

يك plugin جديد و خوب پيدا كردم(با تشكر از مجتبي). اين plugin نشون ميده آخرين بار يه مطلب كي تغيير كرده.

براي استفاده از اين پلاگ اين تو اين صفحه زير قسمت lastmodifies لينك Download رو بزنيد و فايل LastModified.tar.gz رو داون لود كنيد و بعد از باز كردن اون، فايل LastModified.pl رو مثل بقيه plugin ها نو پوشه plugins در پوشه اصلي MT آپ لود كنيد. اگر پوشه plugins وجود نداشت اون رو بسازيد.

بعد به قسمت ويرايش قالب اصلي بريد و بعد از قسمت </MTEntryIfExtended> اين رو اضافه كنيد:

<MTIfModified leeway="15">
آخرين تغيير در: <$MTLastModified format="%I:%M %p on %B %e, %Y"$>
</MTIfModified><br />

در خط اول خصوصيت leeway مشخص ميكنه كه اگر در طول پانزده دقيقه بعد از نوشته شدن مطلب تغييري در مطلب داده بشه اون تغيير ناديده گرفته ميشه و فقط تغييراتي كه بعد از اون پانزده دقيقه صورت گرفته رو نشون ميده. ميتونيد اون شماره 15 رو هر جور خواستيد تغيير بديد.

[ 12:22 PM ]   .   [ Comments (0) ]

 

 

June 10, 2003

 
 
 

توضيحي راجع به Top commenters

يكي از دوستان پرسيدن چرا وقتي يكي اسم هم وارد ميكنه باز هم اسمش تو ليست Top Commenters نمياد. دليل اين اتفاق اينه كه اين plugin سيستمش به اين صورته كه براي تشخص نظر دهندگان از آدرس ايميل و سايتشون استفاده ميكنه نه از اسم اونها. به اين دليل كه دو نفر ممكنه يه اسم داشته باشن ولي اي ميلشون ممكن نيست يكي باشه. مثلا اگه به Top Commenters وبلاگ من توجه كنيد اسم دو تا فريد رو ميبينيد چون آدرس هاشون با هم فرق داره.(البته فريد دومي رو خودم آزمايشي بجاش نظر دادم!) بنابراين اگر نظر دهنده هيچ كدوم از آدرسهاش رو وارد نكنه نظرش به قسمت Empty اضافه ميشه.
براي پيشگيري از اين اتفاق ميتونيد نظر دهندگان رو مجبور كنيد كه آدرس ايملشون رو وارد كنن به اين صورت كه به بخش Preferences در قسمت Weblog config بريد و چك مارك Allow anonymous comments? رو برداريد.

[ 12:03 PM ]   .   [ Comments (0) ]

 

 

June 09, 2003

 
 
 

كليدهاي ميانبر در ويرايشگر MT

يه مطلب خيلي ساده ولي به درد بخور!:

متن مورد نظرتون رو انتخاب كنيد و براي كارهاي زير كليدهاي روبروشون رو بزنيد:

Bold (ضخيم كرن): Ctrl-Shift-b
Italic (كج كردن): Ctrl-Shift-i
Underline (زير خط كردن): Ctrl-Shift-u
Hyperlink (لينك كردن):Ctrl-Shift-a

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

 

 

June 08, 2003

 
 
 

موضوع جديد!

براي اينكه بتونيد راحت تر به راهنماهايي كه براي MT نوشتم دست پيدا كنيد يه موضوع جديد به نام "راهنماهاي MT" اضافه كردم كه تو بخش موضوعات ميتونيد ببينيدش.

[ 12:34 PM ]   .   [ Comments (0) ]

 

 

 
 
 

راهنماي ساخت ليست Top Comments در MT

طبق قولي كه داده بودم راهنماي به وجود اوردن ليست كساني كه بيشترن نظرات را دادن رو نوشتم كه ميتونيد بخوندش:

  • به اين صفحه برويد و فايل CommentLeaders.zip را Download كنيد. (با كليك روي آنجا كه نوشته Click here to download CommentLeaders.zip v0.4) سپس آن را باز كنيد.
  •  با يك برنامه مخصوص FTP به سايت خود وصل شود و به شاخه ايي كه در آنجا MT نصب شده برويد. اگر شاخه Plugins وجود داشت به داخل آن برويد وگرنه آن را بسازيد. سپس فايل commentleaders.pl كه داخل همان فايلي كه داونلود كرده ايد قرار دارد را داخل شاخه Plugins آپلود كنيد.
  • به صفحه ويرايش قالب اصلي برويد و قيل از <div class="side"> اين را اضافه كنيد:

    <div class="sidetitle">
    Top comments
    </div>
    <div class="side" style="direction:rtl">
    <MTCommentLeaders lastn="20">
    <$MTLeaderAuthorLink$> <span dir="ltr"> (<$MTLeaderCount$>)</span> <br />
    </MTCommentLeaders>
    </div>

    كد بالا آمار بيست نفر از كساني كه بيشتر از همه نظر داده اند را نشان ميدهد. براي اينكه اين تعداد را تغيير دهيد مقدار پارامتر lastn را عوض كنيد.

    اگر خواسته باشيد آمار كاملي از نظر دهندگان را در وبلاگ نشان دهيد از اين كد ميتوانيد استفاده كنيد.

    <div class="sidetitle">
    Top comments
    </div>
    <div class="side" style="direction:rtl">
    <MTCommentLeaders lastn="5">
    <$MTLeaderAuthorLink$> <span dir="ltr"> (<$MTLeaderCount$>)</span><br />
    آخرين نظر: <small><$MTLeaderEntryDate format="%m/%d/%y %X"$></small> <br />
    در <a href="<$MTBlogArchiveURL$><$MTLeaderEntryLink$>#<$MTLeaderCommentID$>">
    <$MTLeaderEntryTitle$></a> <br /><br />
    </MTCommentLeaders>
    </div>
    كد بالا آمار نظردهندگان به اضافه تاريخ و لينك آخرين نظرشان را نشان ميدهد.
     

توضيح: كدهاي بالا مخصوص قالبهاي استاندارد MT هستند. براي قالبهاي مخصوص بايد كمي كدها را تغيير دهيد.

[ 12:25 PM ]   .   [ Comments (0) ]

 

 

 
 
 

Top comments

قسمت Top Comments رو سمت راست ميبينيد!؟ اون رو از وبلاگ احسان تقليد كردم. كارش اينه كه نشون ميده كيا بيشتر نظر دادن. انشا الله تا چند ساعت ديگه راهنماي درست كردنش رو براتون مينويسم.

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

 

 

May 23, 2003

 
 
 

ساخت آرشيو موضوعي در MT

به اين طريق كه اينجا توضيح ميدم ميتونيد براي وبلاگتون يه آرشيو موضوعي بسازيد به طوري كه در كنار اسم هر كدام از موضوعات تعداد مطالب موجود در آن موضوع نمايش پيدا كند.

براي ساخت آرشيو موضوعي به بخش weblog Config وبلاگ و بعد به بخش Archiving برويد و آنجا گزينه category را چك بزنيد.
بعد بايد دستوراتي را به قالب اصلي وبلاگ اضافه كنيد تا ليست موضوعات نمايش داده شود. اين دستورات به اين صورت هستند:

<MTCategories>
<a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a> (<$MTCategoryCount$>)<br>
</MTCategories>

اگر ار قالب استاندارد موويبل تايپ استفاده ميكنيد ميتوانيد داخل قالب دستورات <div class = Sidetitle> را پيدا كنيد و قبل از آن اين را اضافه كنيد:

<div class="SideTitle">
موضوعات
</div>
<div class="side" style="direction:rtl">
<MTCategories>
<a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a> (<$MTCategoryCount$>)<br>
</MTCategories>
</div>
 

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

 

 

May 17, 2003

 
 
 

طريقه شمسي كردن تاريخ در MT به وسيله php

با كليك كردن روي لينك زير ميتونيد اين مطلب رو مطالعه كنيد.

توجه: براي استفاده از اين راهنما بايد سرور شما php را ساپورت كند. براي اينكه از اين موضوع مطلع شويد با آنجايي كه از آن فضا گزفته ايد تماس بگيريد.
درMT به قسمت Templates برويد و سپس روي بخش Main Index كليك و در آنجا در قسمت Output File اسم Index.php را بنويسيد و در ابتداي قالب اين را paste كنيد:

<?php
// "jalali.php" is convertor to and from Gregorian and Jalali calendars.
// Copyright (C) 2000 Roozbeh Pournader and Mohammad Toossi
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// A copy of the GNU General Public License is available from:
//
// http://www.gnu.org/copyleft/gpl.html
//

$g_days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
$j_days_in_month = array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29);


function gregorian_to_jalali($g_y, $g_m, $g_d)
{
global $g_days_in_month;
global $j_days_in_month;

$div = create_function('$a,$b','return (int) ($a / $b);');

$gy = $g_y-1600;
$gm = $g_m-1;
$gd = $g_d-1;

$g_day_no = 365*$gy+$div($gy+3,4)-$div($gy+99,100)+$div($gy+399,400);

for ($i=0; $i < $gm; ++$i)
$g_day_no += $g_days_in_month[$i];
if ($gm>1 && (($gy%4==0 && $gy%100!=0) || ($gy%400==0)))
/* leap and after Feb */
$g_day_no++;
$g_day_no += $gd;

$j_day_no = $g_day_no-79;

$j_np = $div($j_day_no, 12053); /* 12053 = 365*33 + 32/4 */
$j_day_no = $j_day_no % 12053;

$jy = 979+33*$j_np+4*$div($j_day_no,1461); /* 1461 = 365*4 + 4/4 */

$j_day_no %= 1461;

if ($j_day_no >= 366) {
$jy += $div($j_day_no-1, 365);
$j_day_no = ($j_day_no-1)%365;
}

for ($i = 0; $i < 11 && $j_day_no >= $j_days_in_month[$i]; ++$i)
$j_day_no -= $j_days_in_month[$i];
$jm = $i+1;
$jd = $j_day_no+1;

return array($jy, $jm, $jd);
}

function jalali_to_gregorian($j_y, $j_m, $j_d)
{
global $g_days_in_month;
global $j_days_in_month;

$div = create_function('$a,$b','return (int) ($a / $b);');

$jy = $j_y-979;
$jm = $j_m-1;
$jd = $j_d-1;

$j_day_no = 365*$jy + $div($jy, 33)*8 + $div($jy%33+3, 4);
for ($i=0; $i < $jm; ++$i)
$j_day_no += $j_days_in_month[$i];

$j_day_no += $jd;

$g_day_no = $j_day_no+79;

$gy = 1600 + 400*$div($g_day_no, 146097); /* 146097 = 365*400 + 400/4 - 400/100 + 400/400 */
$g_day_no = $g_day_no % 146097;

$leap = true;
if ($g_day_no >= 36525) /* 36525 = 365*100 + 100/4 */
{
$g_day_no--;
$gy += 100*$div($g_day_no, 36524); /* 36524 = 365*100 + 100/4 - 100/100 */
$g_day_no = $g_day_no % 36524;

if ($g_day_no >= 365)
$g_day_no++;
else
$leap = false;
}

$gy += 4*$div($g_day_no, 1461); /* 1461 = 365*4 + 4/4 */
$g_day_no %= 1461;

if ($g_day_no >= 366) {
$leap = false;

$g_day_no--;
$gy += $div($g_day_no, 365);
$g_day_no = $g_day_no % 365;
}

for ($i = 0; $g_day_no >= $g_days_in_month[$i] + ($i == 1 && $leap); $i++)
$g_day_no -= $g_days_in_month[$i] + ($i == 1 && $leap);
$gm = $i+1;
$gd = $g_day_no+1;

return array($gy, $gm, $gd);
}
?>
 

بعد قسمت "<$MTEntryDate format="%x"$>" را پيدا كنيد و به جاي آن نوشته هاي زير را بنويسيد:

<?
$week= Array("Thursday" => "پنجشنبه","Saturday" => "شنبه","Sunday" => "يكشنبه","Monday" => "دوشنبه","Tuesday" => "سه شنبه","Wednesday" => "چهارشنبه","Friday" => "جمعه");
$month = Array("فروردين","ارديبهشت","خرداد","تير","مرداد","شهريور","مهر","آبان","آذر","دي","بهمن","اسفند");
list( $gyear, $gmonth, $gday ) = preg_split ( '/-/', '<$MTEntryDate format="%Y-%m-%d"$>' );
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($gyear, $gmonth, $gday);
echo "<div style='direction:rtl'>" . $week["<$MTEntryDate format="%A"$>"] . ", ". $jday . " " . $month[--$jmonth] . " " . $jyear . "</div>"
?>
 

حالا بايد به وسيله يك برنامه FTP به سايت خودتان وصل شويد و به پوشه ايي كه آنجا فايلهاي ثايت وبلاگ قرار دارد برويد و فايل Index.HTML را پاك كنيد.
همين طور كه ميدانيد MT مطالب نوشته شده را به صورت صفحات ثابت در محلي كه مشخص كرده ايد ذخيره ميكند. براي مثال صفحات اين وبلاگ در weblog.mojde.com قرار گرفته است در حالي كه MT در محل ديگري نصب شده است.
اگر برنامه FTP نداريد نگران نباشيد! چون از خود برنامه Internet explorer هم ميتوانيد براي اين كار استفاده كنيد. براي اين كار در قسمت آدرس IE آدرس را به اين صورت وارد كنيد:
ftp://username@domain.com
(بجاي username و domain.com مشخصات مربوط به سايت خودتان را وارد كنيد) بعد صفحه ايي ظاهر ميشود كه در آن بايد شماره رمز FTP سايتتان را وارد كنيد.

[ 01:36 PM ]   .   [ Comments (0) ]

 

 

May 12, 2003

 
 
 

Track Back

Track back يكي از قسمتهاي جالب MT هست كه كساني كه از اين سيستم مديريت وبلاگ استفاده ميكنند ميتونن ازش بهره ببرند. من اينجا كمي راجع به اين سيستم توضيح ميدم:

مثلا فرض كنيد كه تو يه وبلاگ مطلبي راجع به يك مسئله ميبينيد و دلتون ميخواد خودتون هم راجع به اون موضوع مطلبي بنويسيد. ميتونيد تو قسمت نظرخواهي اون وبلاگ مطلبتون رو بنويسيد. ولي اگر دوست داشته باشيد كه توي وبلاگ خودتون راجع به اون موضوع بنويسيد و همه اون كساني كه اون مطلب رو ميخونن بتونن از وجود مطلب شما هم آگاه بشن با استفاده از سيستم Track Back ميتونيد رو به راحتي انجام بديد.
براي اين كار بايد روي لينك Track Back كه در كنار بخش نظر خواهي زير مطلبي كه ميخواهيد راجع بهش بنويسيد قرار داره كليك كنيد و اونجا آدرسي كه براي ‏Track back وجود داره رو كپي كنيد. اين آدرس در وبلاگهاي مختلف ممكنه به صورت هاي مختلف مشخص شده باشه. در مورد وبلاگ خودم اين بخش زير عنوان TrackBack URL for this entry قرار داره. بعد به قسمت New entry وبلاگ خودتون بريد و مطلب مورد نظر خودتون رو بنويسيد و اون آدرس رو كه كپي كرديد در قسمت URLs to Ping (*) پيست كنيد. حالا وقتي اون مطلب رو پابليش كنيد به طور اتوماتيك به وبلاگ شخصي كه ميخواهيد بهش جواب بديد پيام مبني بر اينكه شما جواب داده ايد ارسال ميشه و آدرس مطلبتون در قسمت Track back آن مطلب قرار خواهد گرفت.
اگر دوست داريد اين امكان رو به وجود بياريد كه ديگران هم بتونن به وسيله Track back به مطالب شما جواب بدن، ميتونيد وقتي مطلب جديدي رو مينويسيد تو صفحه New entry گزينه Allow pings رو انتخاب كنيد.

(*) Ping اينجا معني ارسال پيام رو ميده.

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

 

 

May 07, 2003

 
 
 

راهنماي ساخت لينكدوني با MT

طبق قولي كه داده بودم امشب راهنماي ساخت لينكدوني براي MT رو نوشتم كه حالا اينجا ميتونيد بخونيدش:

  1. ابتدا به اينجا برويد و فايل otherblog.zip را داون لود كنيد. بعد از باز كردن آن فايل otherblog.pl را در پوشه plugins آپ لود كنيد. پوشه plugins در همان پوشه كه MT در آن نصب شده قرار دارد. اگر آنجا نبود آن را بسازيد و فايل را داخلش آپ لود كنيد.
    از اينجا فايل mtifempty-1_11.zip را داون لود كنيد و بعد از باز كردن آن، فايل ifempty.pl را در پوشه plugins و ifempty.pm را در extlib/bradchoate آپ لود كنيد. پوشه extlib در پوشه MT قرار دارد اما اگر پوشه bradchoate داخل آن وجود نداشت آن را بسازيد.
  2. داخل MT يك وبلاگ جديد بسازيد به نام linkdooni بعد در قسمت weblog config به بخش Preferences برويد و آن را به اين صورت تغيير دهيد:
    Default Text Formatting for new entries بايد none باشد.
    Number of words in excerpt بايد 0 باشد.
    Preferred Archive Type بايد Monthly باشد.
    Allow Pings on by default? بايد بدون چك مارك باشد.
    Allow Comments on by default? بايد بدون چك مارك باشد.
  3. در همان قسمت weblog config به Archiving برويد و آنجا همه چك مارك ها را بجر چك مارك Monthly را برداريد و روبروي آن در جعبه متن اين جمله را وارد كنيد:
    <$MTArchiveDate format="%Y_%B.html"$>
  4. به بخش Templates برويد و در آنجا در بخش Index templates همه را بجزMaster Archiving Index و Stylesheet چك مارك بزنيد و بعد كليد Delete را بزنيد. توجه كنيد كه نبايد قالبهاي بخش Archive-Related Templates را پاك كنيد.
  5. داخل قالب Master Archive Index برويد و در قسمت Output File نام Index.html را وارد كنيد و قالب را به اين صورت تغيير دهيد:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
    <title> آرشيو لينك دوني</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" />

    </head>

    <body>

    <div id="banner">
    <h1><a href="<$MTBlogURL$>" accesskey="1">آرشيو لينك دوني</a></h1>
    <span class="description"><$MTBlogDescription$></span>
    </div>

    <div id="container">
    <div class="blog">
    <div class="blogbody">
    <MTArchiveList>
    <a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a><br />
    </MTArchiveList>
    </div>
    </div>
    </div>

    </body>
    </html>
     
  6. قالب Date-Based Archive را به اين صورت تغيير دهيد:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
    <link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" />
    </head>
    <body>
    <div id="banner">
    <h1><a href="<$MTBlogURL$>" accesskey="1">آرشيو لينكدوني</a></h1>
    </div>
    <div class="blog">
    <MTEntries>

    <MTDateHeader>
    <h2 class="date"><$MTEntryDate format="%x"$></h2>
    <div class="blogbody">
    <ul>
    </MTDateHeader>

    <li><a href="<$MTEntryBody encode_html="1"$>"<MTIfNotEmpty var="EntryExcerpt"> title="<$MTEntryExcerpt escape_html="1" escape_htmlattr="1"$>"</MTIfNotEmpty>><$MTEntryTitle$></a></li>

    <MTDateFooter></ul></div></MTDateFooter>
    </MTEntries></body>
    </html>
     
  7. به وبلاگ اصلي خود برويد. بعد به قسمت Templates برويد و بعد به قسمت Stylesheet و همه مطالب را كپي كنيد. به وبلاگ لينكدوني برگردبد و آنجا هم به قسمت Templates برويد و بعد به قسمت Stylesheet برويد و در آنجا همه مطالب را انتخاب كنيد و مطالب كپي شده را Paste كنيد.
    اين كار براي شبيه شدن شكل آرشيو لينكدوني به وبلاگ اصلي بهتر است انجام شود.
  8. به وبلاگ اصلي خود برويد. بعد به قسمت ‏Templates برويد و آنجا روي Main Index كليك كنيد و آنجا دقيقا قبل از<MTEntries> اين را وارد كنيد:
    <div class="Linkdooni">
    <MTOtherBlog blog_name="linkdooni"><MTEntries lastn="10">
    <a href="<$MTEntryBody escape_html="1"$>"<MTIfNotEmpty var="EntryExcerpt"> title="<$MTEntryExcerpt escape_html="1" escape_htmlattr="1"$>"</MTIfNotEmpty>><$MTEntryTitle$></a><br />
    </MTEntries></MTOtherBlog>
    [<a href="http://weblog.mojde.com/linkdooni/">آرشيو</a>]
    </div>
     
    در نوشته هاي بالا در خط دوم اسم وبلاگي را كه ساخته ايد بايد وارد كنيد. من اينجا نام linkdooni را وارد كرده ام اما اگر شما اسم ديگري را روي آن وبلاگ گذاشته ايد بايد آن اسم را بنويسيد.
    در خط يكي مانده به آخر بايد آدرس وبلاگ لينكدوني را بنويسيد. اين آدرس براي من به اين صورت است:
     http://weblog.mojde.com/linkdooni/

    براي اينكه آدرس موبوط به لينكدوني خود را به دست آوريد در موويبل تايپ به قسمت مربوط به وبلاگ لينك دوني برويد و بعد روي قسمت View Site راست كليك كنيد و گزينه Copy Shortcut را انتخاب كنيد حالا آدرس را ميتوانيد به جاي http://weblog.mojde.com/linkdooni پيست (Paste) كنيد.
  9. در قسمت ‏Templates وبلاگ اصلي خود وارد بخش Stylesheet شود و در آخر آن اين را اضافه كنيد:
    .linkdooni {
    float:left;
    width:200;
    border-left:solid 1;
    border-top:solid 1;
    background-color:#EEEEEE;
    padding:10px;
    margin:0px;
    margin-right:15px;
    margin-bottom:15px;
    font-size:x-small;
    direction:rtl;
    align:right;
    font-family:Tahoma;
    }

    .linkdooni a:link { color: #993300; text-decoration: none; }
    A:visited { color:gray;}
    A:active { color:gray; }
    A:hover { color: black; }
     

    اگر كمي با HTML آشنايي داشته باشيد اينجا ميتوانيد شكل و فرم لينكدوني را متناسب با سليقه خود تغيير دهيد.
  10. براي اينكه وبلاگ اصلي هنگام اضافه كردن لينك به لينكدوني به صورت اتوماتيك بازسازي شود مراحل زير را انجام دهيد (البته براي اين كار بايد روي هاست تان SOAP Lite نصب شده باشد وگرنه نميتوانيد از اين دستورات استفاده كنيد):
    • اين فايل را ذخيره كنيد.
    • آن فايل را باز كنيد و $formblogID را پيدا كنيد و روبروي آن ID وبلاگ لينكدوني را بنويسيد. سپس $toBlogID را پيدا كنيد و ID وبلاگ اصلي خودتان را روبرويش بنويسيد. براي به دست آوردي ID يك ويلاگ داخل موويبل تايپ به آن وبلاگ برويد و در قسمت آدرس روبروي كلمه blog_id آي دي وبلاگ را بخوانيد.
    • پسوند فايل pingToRebuild.txt را به cgi تغيير دهيد و آن را در همان جايي كه فايل MT.cgi قرار دارد آپ لود كنيد.
    • به قسمت weblog config و proferenses وبلاگ لينكدوني برويد و آدرس فايل pingToRebuild.cgi را در جعبه متن قسمت ping وارد كنيد. مثلا اگر موويبل تايپ در http://yoursite.com/mt/ نصب شده باشد آدرس آن فايل به اين صورت ميشود: http://yoursite.com/mt/pingToRebuild.cgi
    • اينها را در فايل escapeHtmlattr.pl ذخيره كنيد و آن را در شاخه plugins آپ لود كنيد:

      use MT::Template::Context; MT::Template::Context->add_global_filter (escape_htmlattr => sub { my $s = shift; $s =~ s{"}{\"}g; $s; });
  11. براي اضافه كردن لينك به لينكدوني به قسمت New entry وبلاگ لينكدوني برويد و در قسمت عنوان مطلب نام و عنوان لينك و در قسمت متن مطلب آدرس لينك را بنويسيد. اگر مرحله 10 را طي نكرده ايد وقتي لينك پابليش شد به وبلاگ اصلي خود برويد و Index آن را Rebuild كنيد. (روي گزينه Rebuild در منو اصلي كليك كنيد و بعد از صفحه ايي كه ظاهر ميشود Rebuild Indexes Only را انتخاب كنيد)هيچي ديگه! موفق باشيد! اگر به مشكلي بر خورديد با من تماس بگيريد.

مطلب بالا براي قالب استاندارد MT كه تغييراتي براي فارسي در آن داده شده است تنظيم شده. اگر شما از قالبهاي مخصوص خودتان استفاده ميكنيد بايد متناسب با آن روي چيزهايي كه گفتم تغييراتي بدهيد.
من براي نوشتن اين راهنما از اين راهنما كمك گرفته ام.

[ 12:03 AM ]   .   [ Comments (0) ]

 

 

 

استفاده از مطالب این وبلاگ فقط با اجازه نویسنده آن مجاز می باشد

Design: © Mojtaba Dashtinejad