مووبل تایپ از الف تا ی (قسمت نهم)

16
3983

بار دیگر با قسمت جدیدی از سلسله آموزشهای مووبل تایپ در خدمت خوانندگان عزیز Writeageهستم. در این سلسله آموزش ها کوشیده ام با زبانی بسیار ساده مووبل تایپ را از ابتدا و به صورت عملی به دوستان علاقمند بشناسانم. در این قسمت شما را با یکی از مهمترین قابلیتهای هر سیستم مدیریت محتوی (CMS) که مووبل تایپ یکی از قویترین آنهاست آشنا می کنم: آرشیو مطالب. در ادامه این قسمت از آموزش مووبل تایپ با ما باشید.

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

آرشیو در MT می تواند به اشکال مختلف وجود داشته باشد:
آرشیو موضوعی٬ آرشیو زمانی (روزانه٬ ماهانه٬ هفتگی٬ سالانه)٬ آرشیو نویسندگان و آرشیو صفحات مستقل(Pages)
همچنین دقت داشته باشید که صفحه تکی مطالب (که در قسمت هفتم نحوه ساخت آن را فرا گرفتیم) هم نوعی آرشیو محسوب می شود و به آن آرشیو تکی می گوییم.
بعد از این معرفی کوچک و پیش از آن که به کار عملی یعنی ساخت آرشیو برای سایتمان بپردازیم لازم می دانم در باره یکی از مهمترین مفاهیم مووبل تایپ که معمولا درک آن برای تازه کارها مشکل است یعنی مفهوم نشر ایستا (Static) و پویا (Dynamic) توضیحاتی ارائه کنم.

 

استاتیک در مقابل دینامیک

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

 

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

 

2- دینامیک: در این حالت با ورود مطلب به ام تی چیزی به عنوان صفحه فیزیکی روی سرور بوجود نمی آید چرا که ام تی مطلب را فقط وارد بانک اطلاعاتی می کند٬ اطلاعات قالب هم که قبلا وارد بانک شده است. در این حالت در همان لحظه ای که بیننده درخواست دیدن صفحه را می کند ام تی مجددا وارد عمل شده و اطلاعات مطلب را با اطلاعات قالب در هم می آمیزد تا نتیجه به صورت یک صفحه کامل در مرورگر نمایش داده شود (در این حالت اگر سری به شاخه انتشار مطلب بزنید آن را خالی می یابید).

همینجا ببینیم هر کدام از این دو حالت  انتشار چه مزایا و یا معایبی دارند؟

مهمترین مزیت سیستم استاتیک این است که به سرور(Server) فشار وارد نمی شود. سایتی را تصور کنید که در هر لحظه تعداد بسیار بالایی درخواست برای دیدن صفحات مختلف دارد. چون هر کدام از این درخواستها قبلا آماده و مهیا در سرور وجود دارند پس سرور متحمل بار سنگین نمی شود. این دقیقا عیب بزرگ یک سیستم دینامیک هم هست. جایی که با تعداد بالای درخواست برای دیدن یک صفحه چون در هر بار درخواست باید ام تی وارد عمل شود و فایل را از بانک اطلاعاتی بازخوانی کند لذا سرور متحمل بار سنگینی می شود که گاه به از کار افتادن (Down شدن) موقتی سایت می انجامد (شاید متوجه شده باشید که این مشکل به علت ازدیاد بازدید کننده گهگاه درWriteage هم پیش می آید. در این مواقع سایت به مدت 10 تا 15 دقیقه در دسترس نیست).
اما مزیت اساسی انتشار دینامیک همانا حجم کمتری است که سیستم برای انتشار مطالب به آن نیاز دارد. چون در این حالت فایلی از قبل بوجود نمی آید بلکه با درخواست بازدید کننده ام تی وارد عمل می شود و فایل را به صورت مجازی در مرورگر نشان می دهد.
البته شاید ذکر یک نظریه قدیمی که البته با وجود منسوخ شدن هنوز عده ای را دچار اشتباه می کند خالی از لطف نباشد و آن اینکه در گذشته معتقد بودند صفحات دینامیک قابلیت ایندکس پذیری کمتری برای موتورهای جستجو دارند. حال آنکه اکنون ثابت شده است این فاکتور نقشی در ایندکس شدن سایت در موتورهای جستجو ندارد.
البته انتشار دینامیک یک مشکل دیگر هم دارد و آن پیچیدگی زیاد آن برای توسعه دهندگان است. باز به همین دلیل است که بعضی افزونه (Plugin)  ها در حالت انتشار دینامیک کار نمی کنند.

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

بیایید کمی از دانسته هایمان استفاده عملی کنیم و به سراغ موضوع اصلی این قسمت برویم:

 

ساخت آرشیو موضوعی در مووبل تایپ

برای داشتن یک آرشیو موضوعی در اصل باید صفحات زیر را ساخت:
صفحه الف: صفحه ای که شامل عنوان تمام دسته (Category) ها به همراه مطلب (Entry) های هر دسته باشد. با کلیک روی عنوان هر مطلب باید بتوان به صفحه تکی آن مطلب رسید. همچنین با کلیک روی عنوان هر دسته باید بتوان به صفحه ب (که در ادامه توضیح داده ام) رسید.

 

صفحه ب: این صفحه در حقیقت آرشیو مخصوص هر دسته (Category) است. یعنی در آن علاوه بر نام دسته٬ لیستی از مطالب منتشر شده تحت آن دسته وجود دارد. باز هم با کلیک روی عنوان هر مطلب باید بتوان به صفحه تکی آن مطلب رسید.

 

صفحه ج: این یکی اختیاری است و به صورت یک Sidebar در صفحه اول سایت عمل می کند و به صورت لیستی شامل عنوان دسته ها دیده می شود که با کلیک روی عنوان هر دسته می توان به صفحه ب (که در بالا توضیح داده ام) رسید.

 

از صفحه ب شروع می کنیم. پیش از هر چیز بیایید نگاهی به نتیجه کار بیندازیم. اگر طبق مراحل ذکر شده در این قسمت پیش بروید در پایان کار باید برای هر دسته (Category) یک صفحه آرشیو مثل تصاویر زیر داشته باشید:

 

mt-guide-25.gif
تصویری از صفحه آرشیو دسته موبایل
mt-guide-26.gif
تصویری از صفحه آرشیو دسته کامپیوتر

1- پیش از هرچیز چند مطلب آزمایشی به مجموعه مطالب سایتتان اضافه کنید (مثلا 2 یا 3 مطلب به دسته کامپیوتر و 2 یا 3 تا به دسته موبایل). اگر هنوز روش اضافه کردن مطلب را نمی دانیدقسمت ششم را دوباره بخوانید.

2- صفحه index.html را در دریم ویور باز کنید و آن را به اسم category-each-archive.html مجددا Save کنید.

3- در دریم ویور فایل category-each-archive.html را در حالت کد در نظر بگیرید. حالا هرچیزی که بین دو تگ زیر وجود دارد را پاک کنید:

<MTEntries>
.
.
.
</MTEntries>

حالا به جای کدهای بالا٬ کدهای زیر را وارد کنید:

<h2><$MTCategoryLabel$></h2>
<ul>
<MTEntries>
<li><a href=”<MTEntryPermalink>”><MTEntryTitle></a></li>
</MTEntries>
</ul>

خط اول نام دسته (Category) را به صورت تیتر نشان می دهد. خطوط بعدی به صورت ساده یک لیست می سازند که محتوی عناوین (Title) مطالب منتشر شده تحت هر دسته است. هر کدام از این عنوان ها به صفحه تکی همان مطلب لینک می شود.

4- بعد از Save کردن فایل در دریم ویور به سراغ ام تی بروید. از قسمت Design>Templates و در بخش Archive Templates روی Entry Listing کلیک کنید (منظور از Entry Listing هر نوع آرشیوی است که محتوی لیستی از مطالب منتشر شده باشد. این لیست می تواند طبقه بندی موضوعی٬ زمانی و یا هر نوع دیگری را شامل شود).

5- در قسمت نام Category Each Archive را وارد کنید. حالا در دریم ویور و در قسمت کد٬ تمام کدهای موجود در فایل category-each-archive.html را کپی و در قسمت مخصوص آن در ام تی Paste کنید و روی دکمه Save کلیک کنید.

6- حالا روی Template Options در پایین قسمت کدها کلیک کنید. سپس در قسمت Archive Mapping روی Create Archive Mapping کلیک کنید.

7- از منوی باز شونده گزینه Category را انتخاب کنید و روی Add کلیک کنید.

8- از منوی باز شوند گزینه آخر یعنی Custom را انتخاب کنید. اینجا و در قسمت Path همانطور که در قسمت هفتم توضیح دادم شما تعیین می کنید آرشیوی که به وجود می آورید با چه آدرسی به بیننده عرضه شود. مثلا می توانید تعیین کنید آرشیوهایتان در شاخه ای به نام دسته(category) مربوطه و در زیرشاخه ای به نام زیر شاخه احتمالی(sub category) آن ذخیره شود:

http://localhost/writeage_2/computer/laptop/index.html

این همان پیش فرض مووبل تایپ در این قسمت است که با انتخاب category/sub-category/index.html به دست می آید. اما ما برای سادگی بیشتر تصمیم داریم آرشیو را به صورت زیر نشان دهیم:

http://localhost/writeage_2/computer.html

یعنی آرشیومان در Root سایت و به صورت صفحه ای به نام خود دسته (category) نمایش داده شود. برای این ساختار کافی است در قسمت Path در مرحله 8 عبارت زیر را وارد کنید:

%c.html

c% در این عبارت معرف نام دسته(category) و پسوند html هم که مشخص است همان پسوند صفحات مان در سایت است.

همانطور که قبلا گفتم این کدها در حقیقت علایم اختصاری اجزاء آدرس در Archive Mapping هستند که به آنها Archive File Path Specifiers می گویند. برای دیدن فهرست کامل این اختصارات به این صفحه مراجعه کنید.

9- پیش از آنکه روی Save and Publish کلیک کنید توجه شما را به گزینه Publishing در سمت راست Path جلب می کنم.

 

mt-guide-27.gif

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

– Statically و Dynamically که مشخص هستند.

– Manually به طور ساده می گوید این آرشیو به صورت اتوماتیک منتشر نشود بلکه تنها در مواقع نیاز توسط شما به صورت دستی انتشار یابد (در این حالت مثلا با اضافه کردن یک مطلب جدید به دسته کامپیوتر آن مطلب در لیست مطالب موجود در صفحه آرشیو کامپیوتر دیده نمی شود تا زمانی که این آرشیو را به صورت دستی publish کنید).

– Do not publish یعنی اصلا آرشیو منتشر نشود.

– و گزینه آخر یعنی Via publish queue که فعلا به علت پیچیدگی از توضیح آن صرف نظر می کنیم.

ما در این مثال از گزینه پیش فرض یعنی Statically استفاده می کنیم در نتیجه فایلهای صفحات آرشیو به صورت فیزیکی روی سرور بوجود می آیند.

10- با کلیک روی Save and Publish اگر به شاخه ای که به عنوان محل انتشار سایتتان برای MT تعریف کرده بودید بروید (در این مثال writeage_2) با دو فایل جدید مواجه می شوید که همنام دسته (Category) های شما هستند: computer.html و mobile.html
با باز کردن آنها در مرورگرتان باید با تصاویر مانند آنچه در ابتدای کار به شما وعده داده بودم مواجه شوید:

 

mt-guide-25.gif

تصویری از صفحه آرشیو دسته موبایل

mt-guide-26.gif

تصویری از صفحه آرشیو دسته کامپیوتر

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

صفحه الف: صفحه ای که شامل اسم تمام دسته (Category) ها به همراه مطلب (Entry) های هر دسته باشد. با کلیک روی عنوان هر مطلب باید بتوان به صفحه تکی آن مطلب رسید. همچنین با کلیک روی عنوان هر دسته باید بتوان به صفحه ب (یعنی همان آرشیو مطالب هر دسته) رسید.  برای سهولت بیشتر نام این صفحه ب را Main Archive Index می گذاریم. فقط دقت داشته باشید که Main Archive Index تنها شامل آرشیو موضوعی نیست و می توان آرشیوهای دیگری هم  در آن تعریف کرد.

 

ساخت Main Archive Index
بگذارید در همین ابتدای مطلب نکته ای کمی عجیب را با شما در میان بگذارم. Main Archive Index با این که اسم آرشیو را یدک می کشد اما برای ایجاد آن باید از بخش Create index template عمل کرد! از این نکته عجیب که بگذریم باقی چیزها تقریبا راحت است:
پیش از هرچیز نگاهی به نتیجه کار می اندازیم:

 

mt-guide-28.gif

همانطور که می بینید در این صفحه همه دسته ها به همراه لینک مطالب منتشر شده در هر کدام از آنها نمایش داده می شود.
11- باز هم از فایل index.html شروع می کنیم. آن را با نام دیگری مثلا main-archive-index.html ذخیره کنید و در دریم ویور در حالت کد به سراغش بروید.
12- باز هم مانند مرحله 3 هرچیزی که بین دو تگ زیر قرار دارد را پاک کنید:

<MTEntries>
.
.
.
</MTEntries>

و به جایش کدهای زیر را وارد کنید:

<MTIfArchiveTypeEnabled archive_type=”Category”>
<MTCategories>
<h2><a href=”<MTCategoryArchiveLink>”><MTCategoryLabel></a></h2>
<ul>
<MTEntries>
<li><a href=”<MTEntryPermalink>”><MTEntryTitle></a></li>
</MTEntries>
</ul>
</MTCategories>
</MTIfArchiveTypeEnabled>

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

خط دوم شروع کننده ظرف مورد نیاز برای نشان دادن محتوای هر دسته است که با نشان دادن اسم دسته (category) به صورت تیتر شروع شده و با نشان دادن لیستی از مطالب موجود در هر دسته ادامه می یابد.

13- بعد از ذخیره کردن فایل main-archive-index.html کلیه کدهای موجود در آن را کپی کنید وبه سراغ MT بروید.

14- از قسمت Design>Templates روی  Create index template کلیک کنید.

15- نام این صفحه جدید را Main Archive Index بگذارید و محتوای کپی شده مرحله 13 را در قسمت کد Paste کنید.

16- در قسمت Output File نام main-archive-index.html را وارد کنید و روی دکمه Save کلیک کنید.

17- برای اینکه صفحه ساخته شود یکبار سایت را پابلیش کنید (اگر نمی دانید چگونه اینکار را انجام دهید به بخش 13 قسمت پنجم نگاهی بیندازید).

18- در مرورگرتان به آدرس زیر بروید و نتیجه کار را ببینید:

http://localhost/writeage_2/main-archive-index.html

تبریک میگویم. شما موفق شده اید مهمترین قابلیت یک CMS را در محیط ام تی و در قالب خودتان بکار گیرید: آرشیو موضوعی.

 

در قسمتهای بعدی هم با ما باشید.

 

توجه: این سلسله مطالب به طور اختصاصی برای سایت writeage.com نوشته شده است. درج تمام یا قسمتی از ‏این ‏مطالب، ‏تنها با ذکر نام سایت و آدرس دقیق این صفحه مجاز است.

 

مووبل تایپ: از الف تا ی (قسمت اول) | مووبل تایپ: از الف تا ی (قسمت دوم) | مووبل تایپ: از الف تا ی (قسمت سوم) | مووبل تایپ: از الف تا ی (قسمت چهارم) | مووبل تایپ: از الف تا ی (قسمت پنجم) | مووبل تایپ: از الف تا ی (قسمت ششم) | مووبل تایپ: از الف تا ی (قسمت هفتم) |مووبل تایپ: از الف تا ی (قسمت هشتم)

16 دیدگاه

  1. با عرض معذرت
    آقا من چند بار مطالب رو اجرا كردم اما دو تا مشكل رو نتونستم حل كنم
    اولي در صفحات هر بخش مثلا كامپيوتر يا موبايل همه بخشها باهم ميان
    دومي در صفحه main-archive-index هيچكدوم از بخشها
    ديده نميشه!
    لطفا اگه بشه كمك كنيد
    در ضمن روش توضيح دادن شما بسيار عاليه
    با تشكر فراوان

  2. میلاد عزیز
    ایندکس شدن در گوگل به تنها چیزی که هیچ ارتباطی نداره مووبل تایپه! در حقیقت ایندکس شدن در موتورهای جستجو حاصل ترکیبی از المانهای زیره:
    محتوا (که در مورد سایت شما خیلی تکراریه) و نحوه کدنویسی قالب.
    پیشنهاد من به شما اینه که تولید محتوا کنید و کدهای قالبتون روبرای موتورهای جستجو بهینه کنید.
    موفق باشی

  3. سلام فرهاد جان
    کدهاتو حذف کردم چون تو سیستم اشکال ایجاد می کرد. پیشنهاد می کنم همیشه کدهاتو توی یه فایل txt دخیره و جایی آپلود کنی تا دیگران بتونن ببینند و نظر بدند.
    ولی تونگاه اول دیدم دوبار تگ MTEntries روبه صورت ظرف استفاده کردی. همین باعث بروز مشکل می شه. اول یکی از اونا رو پاک کن و امتحان کن.

  4. سلام من این بخش رو 4 بار خواندم اما هنوزم آرشیو که ساختم درست از آب در نیامده…
    اگه کد به صورت بالا باید بیاد… خروجی به این صورت است.
    کتگوری1
    همه پست ها
    کتگوری 2
    همه پست ها
    نمی دونم چرا همه پست ها توی هر کتگوری هست..2 چرا توی صفحه هر کتگوری کتگوری های دیگه هم هست..
    ممنون می شم کمک کنی..خط تیره ها فقط برای نمایش درست در این جا استفاده کردم

  5. عرض سلام و ارادت خدمت استاد عزیزم..
    باید ببخشید نمی خوام جسارت کرده باشم اگه صلاح بدانید یه مطلب کوچیک همین جا برای دوستانی که می خواهند بیشتر بدونند اضافه می کنم:
    اگر دوستان بخواهند می توانند صفحه الف یا ب را در همان صفحه اصلی سایتشان در ستون کناری به صورت یک لیست داشته باشند، برای این کار کافیست به جای اینکه کدهای کپی شده از دریم ویور را در قسمت template>>indexes کپی کنند، در قسمت template>>modules این کار را انجام دهند،فقط تنها کاری که باقی می ماند اینست که در لابلای کد های صفحه اصلی (index.html) شان ماجولی را که ساخته اند فراخوانی کنند که این امر هم توسط کد:

    MTInclude module=”main-archive-index.html”

    انجام می پذیرد.

  6. عالي بود آقاي دکتر
    از لطفتون هم ممنونم که هرچه زودتر مطالب رو آماده مي کنيد.
    فقط يه سئوال داشتم. “تگ هايي که با دو علامت $ شروع ميشه و به پايان مي رسه چه معني ميده؟”
    بازم متشکرم

ارسال یک پاسخ