به جرات می توان یکی از مهمترین نقاط قوت سیستم مدیریت محتوای مووبل تایپ را امکانات بسیار زیاد آن در دسته بندی مطالب به انواع شکلها و فرمت ها دانست. جایی که وقتی کار به کدنویسی یک قالب ام تی می رسد می تواند یک قالب سایت را (با تمام پیچیدگیهای آن) از یک قالب وبلاگ ساده متمایز کند. در این مطلب می کوشم شما را با راههای گوناگون استفاده از کدهای مربوط به دسته (Category) آشنا کنم.
قطعا همه می دانیم که دسته بندی مطلب به نظم بهتر مطالب یک وبلاگ کمک می کند. مثلا هنگامی که شما مطالبتان را با دسته بندی های مختلف منتشر می کنید خواننده به راحتی می تواند مطالب مرتبط با هم را از طریق آرشیو موضوعی بلاگ شما پیدا کرده و مطالعه کند. این حالت حداقل استفاده ایست که شما می توانید از دسته ها با هر سیستم مدیریت محتوایی بکنید. در مووبل تایپ استفاده از این حالت به سادگی امکان پذیر است و از دوجنبه می توان به آن نگاه کرد: اول، از داخل سیستم مدیریت ام تی و دوم، در ساختار کدهای قالب (جایی که شما صفحه یا سایدبار آرشیو موضوعی تان را می سازید تا مطالب تحت هر دسته لیست شوند). بیایید از همینجا شروع کنیم.
دسته ها در داخل سیستم مدیریت ام تی
بدیهی است پیش از آنکه بتوانید از قدرت دسته ها استفاده کنید باید ابتدا خود دسته ها را تعریف کنید و بسازید. برای اینکار در داخل سیستم مدیریت ام تی به بخش
Manage>Categories
بروید. اگر سیستم ام تی شما تازه نصب شده باشد احتمالا دسته ای در آن وجود ندارد و این قسمت مانند تصویر زیر خالی است:
برای ساختن اولین دسته (Category) روی Create top level category کلیک کنید. حالا اسم دسته را وارد کرده و روی Create کلیک کنید. نخستین دسته سایت شما ساخته شده است:
در تصویر بالا (برای دیدن تصویر بزرگتر روی آن کلیک کنید) در صورتی که روی کلمه Create که روبروی نام دسته تازه ساخته شده شما قرار دارد کلیک کنید می توانید برای آن زیر شاخه (Sub Category) هم تعریف کنید که موضوع آموزش امروز ما نیست. در صورتی که روی نام دسته کلیک کنید وارد صفحه ای می شوید مانند تصویر زیر:
در این صفحه علاوه بر فیلدهایی برای ویرایش دسته با یک فیلد مهم روبروییم به نام Description که بسیار به درد غیر انگلیسی زبانها می خورد. از آنجا که اسم دسته معمولا در آدرس مطلب به نمایش در می آید و از طرفی خیلی از توسعه دهندگان وب ترجیح می دهند از متون غیر انگلیسی در آدرس مطلبشان استفاده نکنند فیلد Description به عنوان فیلدی کلیدی به کمک ما می آید. در اینجا می توانید به راحتی اسم فارسی دسته را بنویسید. در ادامه به شما خواهم گفت در کجا و چگونه می توانیم از آن استفاده کنیم.
تا اینجا دیدیم که ساختن دسته ها و اختصاص دادن مطالب به آنها بسیار ساده و آسان است. اما همانطور که گفتم این دسته بندی در صفحه آرشیو است که قدرت نمایش می یابد. در باره ساختن صفحه آرشیو موضوعی قبلا در "مووبل تایپ از الف تا ی (قسمت نهم)" توضیح داده ام. آنچه آنجا توضیح داده ام درواقع ابتدایی ترین حالت استفاده از Category ها در مووبل تایپ است. پیشنهاد من این است که حتما پیش از ادامه این مطلب، آن آموزش را بخوانید اما اگر وقت کافی ندارید به طور خلاصه در آن آموزش توضیح داده ام که چطور یک قالب آرشیو برای سایتتان کدنویسی کنید. کدهای نهایی که به صورت زیر هستند:
<h2><$MTCategoryLabel$></h2>
<ul>
<MTEntries>
<li><a href="<MTEntryPermalink>"><MTEntryTitle></a></li>
</MTEntries>
</ul>
این کدها در صورتی که در یک قالب آرشیو ذخیره شوند پس از بازسازی سایت صفحه ای برای هر موضوع می سازند که حاوی عنوان دسته و لینک تمام مطالب منتشر شده تحت آن دسته خواهند بود.
مورد بعدی که در قسمت نهم آموزشها به آن پرداختم ساخت یک صفحه ایندکس برای آرشیوها (Main Archive Index) بود. این صفحه که علیرغم اسمش در حقیقت نوعی قالب ایندکس به شمار می رود با تکه کد زیر ساخته می شد:
<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>
دقت داشته باشید از آنجا که این قالب به دسته قالبهای ایندکس تعلق دارد باید در هنگام کد نویسی به استفاده از ظرف مناسب (که در قسمت ششم توضیح داده شده) توجه داشته باشیم. مثلا برای اینکه کدهای مربوط به دسته ها را در یک صفحه ایندکس نمایش دهیم باید از ظرفی مشابه این استفاده کنیم:
<MTCategories>
.
.
.
</MTCategories>
در تکه کد قبلی اگر به جای تگ MTCategoryLabel از تگ MTCategoryDescription استفاده شود می توانیم بجای نام انگلیسی دسته، نام فارسی آن را که قبلا از آن صحبت شد به بیننده نشان دهیم.
استفاده های پیشرفته تر از دسته ها
همانطور که گفتم می توانیم از دسته بندی در ام تی استفاده های بیشتری در حد یک سایت پیشرفته ( نه وبلاگ) داشته باشیم. بگذارید مثالی بزنم:
به سایتی فکر کنید که در صفحه اول خودش چهار ستون مختلف دارد برای چهار نوع خبر یا مطلب مختلف:
راحت ترین راه برای نشان دادن چهار ستون مطلب در تصویر بالا استفاده از دسته هاست. برای اینکار باید بتوانیم نحوه نمایش مطالب را طوری تعیین کنیم که در هر ستون تنها مطالب همان دسته نمایش داده شود و باقی مطالب فیئلتر شوند. پیش از آنکه دست بکار شویم توجه شما را به این نکته جلب می کنم که برای ساخت صفحه ای مانند تصویر فوق باید قالبتان را به صورت یک قالب ایندکس (Index Template) بسازید و همانطور که در "مووبل تایپ: از الف تا ی (قسمت ششم)" گفته شد باید از ظرف های مناسب هرجا که نیاز باشد استفاده کرد. به تکه کد زیر نگاه کنید:
<h3>Computer</h3>
<MTEntries category="computer" lastn="10">
<a href="<MTEntryPermalink>"><MTEntryTitle></a><br />
</MTEntries>
با همین تکه کد می توانید هر چهار ستون مثال فوق را با عنوان مطالب یک دسته خاص پر کنید. خط اول به سادگی اسم دسته را نشان می دهد. خط دوم همان ظرفی است که از آن صحبت کردیم. با همین ظرف هم هست که می توانیم یک دسته خاص را فئیلتر کرده و نمایش دهیم. در صورتی که تکه کد:
category="computer"
را ننویسیم حاصل کد، عنوان کلیه مطالب نوشته شده در این بلاگ بدون در نظر گرفتن دسته آنها خواهد بود.
حالا تصور کنید که می خواهید مطالب دو یا سه دسته را تحت یک عنوان نمایش دهید. این کار هم در مووبل تایپ به راحتی امکان پذیر است. کافیست به تکه کد زیر نگاه کنید:
category="computer AND mobile"
امیدوارم این آموزش کوتاه به کدنویسی مووبل تایپی شما کمکی هرچند کوچک کرده باشد. این آموزش به درخواست دوستی گرامی نوشته شده است. در صورتی که شما هم احساس می کنید نوشتن مطلبی در باره قابلیتهای کوچک و بزرگ مووبل تایپ می تواند کمکی به گسترش بیش از پیش این سیستم مدیریت محتوای قدرتمند در بین علاقمندان کند آن را با ما در میان بگذارید.
توجه: این سلسله مطالب به طور اختصاصی برای سایت writeage.com نوشته شده است. درج تمام یا قسمتی از این مطالب، تنها با ذکر نام سایت و آدرس دقیق این صفحه مجاز است.
سلام دکتر ریتالین عزیز
خیلی لطف کردید
خیلی زیاد
اولین کامنت رو من باید میزاشتم ولی تازه امشب تونستم مطلب رو بخونم.
مشکلم حل شد ولی نمیتونم قول بدم که برای رفع اشکالاتم در مووبل تایپ دوباره مزاحمتون نمیشم :)
موفق باشید
توی هاستی که میخوام مووبل تایپ نصب کنم فقط فولدر cgi-bin هست فایلهایی رو که باید توی فولدر http کپی کرد، کجا کپی کنم؟
این سوال رو اگه کس دیگه ای اینجا مطرح می کرد جواب نمی دادم چون به این مطلب مربوط نمی شه اما چون شما باعث نوشتن این مطلب شدید می شه این دفعه رو استثنا قایل شد!
اگه کنترل پنلتون Plesk هست پس شاخه اصلی به نام httpdocs و شاخه cgi-bin بیرون اون قرار داره. پس فایلهای مربوط به خود ام تی رو توی شاخه cgi-bin و بقیه (یعنی mt-static) رو در httpdocs کپی کنید.
اگه کنترل پنلتون cPanel هست شاخه اصلی public_html و cgi-bin هم داخل اون هست. دوباره مثل بالا فایلهای مربوط به خود ام تی رو توی شاخه cgi-bin و بقیه (یعنی mt-static) رو در public_html کپی کنید.
موفق باشید
سلام دکتر جون
ایندفعه دیر رسیدم. وایرلسم قطع شد رفتم دنبال ADSL اما هنوز Dial up هستم.
لطفا در مورد سیستم رنکینگ مطالب توضیح دهید. همچنین مبحث نظرات را ادامه دهید. (چطوری پنجره ی نظرات به کمک جاوا اسکریپت داخل یک صفحه جانبی باز می شه؟؟
سلام و تشکر محمد جان
اگه منظورت از رنکینگ , رنک شدن سایت در موتورهای جستجو هست آرش یک مطلب سه قسمتی در باره رنکینگ در گوگل نوشته که می تونی با جستجوی google pagerank توی سایت اون رو پیدا کنی.
در مورد نظرات فکر می کنم هرچیزی که به ام تی ربط داشته گفتم. باقی چیزهایی هستند که شما می تونید با جستجو توی انجمن های تخصصی مربوطه پیداشون کنید. مثلا جاوا اسکریپت یا مباحث مربوط به طراحی و غیره.
موفق باشی
سلام و خسته نباشید
1. اشتباهاً امتیازدهی مطلب رو رنکینگ زدم!
2. سئوال دومی رو موندم چطوری بگم.
مثلا ما دوست نداریم کامنت ها پایین صفحه تکی مطلب بخوره. خودش جدا باشه. هم نمایش نظر هم فرم ارسال و هم response. آدرس صفحه رو چجوری باید بزارم؟
3. برای ساخت فرم (تماس با ما و ...) ام تی اسکریپت پردازش فرم داره و تو دیتابیس وارد میکنه یا باید دستی درست بشه؟؟
4. میشه چندتا دسته رو با هم و یه تعداد دیگه رو جدا گذاشت؟
ممنون
محمد جان سلام
1- امتیاز دادن یا Rating یه پلاگین داره که اینجا می تونی پیداش کنی(البته نسخه کاملش پولیه).اگه توی کارکردن باهاش مشکلی داشتی به این مطلب در انجمن مووبل تایپ مراجعه کن.
2-بازم سوالت رو درست نفهمیدم. کامنت با مطلب مربوطه معنا پیدا می کنه پس نمی شه فرم نمایش نظر و فرم ارسال رو جداگونه داشته باشی!
3- فرم تماس با ما هیچ ربطی به ام تی نداره. باید از فرمهای آماده استفاده کنی تا فرمت پردازش و ارسال بشه.
4- بله. فقط کافیه از دستور AND توی اسم دسته ها استفاده کنی. توی قسمت آخر نوشته توضیحش دادم گویا!
موفق باشی
سلام
از قدیم گفتن تا سه نشه بازی نشه!!
1. ok
2. این آدرسو یه نگاه بنداز ببین پای هر مطلب یه لینک داره نوشته Xنظر - اگه روش کلیک کنی یه صفحه باز میشه با آدرس comment.php?cid=XXX - فرم و نظرات داخل همین پنجره است.
3. ok
4. منظورم این نبود! اما از خیرش گذشتم.
ممنون
محمد جان سلام
چیزی که درباره کامنتها بهش اشاره کردی قبلا (دو سه سال پیش) دیفالت ام تی بود اما از وقتی که Pop Up Blocker ها رایج شدند و کلا این روش نشان دادن مطلب (دریک پاپ آپ) منسوخ شد ام تی هم اون رو عوض کرد.اما در کل درست کردن یه صفحه اختصاصی برای کامنتهای یک مطلب کار سختی نیست. کافیه یک قالب آرشیو به صورت Entry درست کنی و توی قسمت Path از فرمت دلخواه با کمک این صفحه استفاده کنی.مثلا من توی عصر نوشتن از چیزی مثل این استفاده کردم:
%b_comments.html
movable_type_categories_described_comments.html
سلام و خسته نباشید
خیلی متشکرم بابت جوابتون. عالی شد!
آموزش بعدی رو اگه صلاح دونستید برام رزرو کنید!!
همونطور که تو یکی از نظرات قبلی گفته بودم، "پلاگین paginate برای صفحه بندی".
تو چند سایت گشتم، اما هیچ کدوم آموزش درست و حسابی نبود.
آموزش استادمون بیشتر می چسبه!!
باسلام و ممنون از آموزشهای شما
اگر من بخواهم در صفحه مربوط به هر entry به جای نام دسته CategoryLable توضيح يا همان Description آن بيايد چه بايدكرد؟
سلام
در کامنت 10 که توضیح دادین، برای اینکه داخل صفحه لینک بزنم به نظرات مربوط به همون مطلب (b_comments.html%) باید چیکار کنم؟ آدرس لینک چیه؟
ممنون
مهدی جان
فقط کافیه از تکه کد زیر استفاده کنی:
<MTEntryCategories><MTCategoryDescription></MTEntryCategories>
محمد جان آدرس لینک اینه:
<MTEntryPermalink>_comments.html
سلام
نمیدونم چرا این ام تی خیلی به من گیر میده!!
یه قالب ماژول دارم entry summary گیر سه پیچ شده واسه همین بنده خدا !!
همش میگه:
MTEntryPermalink is unrecognized
سلام محمد جان
حتما از اون تگ بدون استفاده از ظرف مناسبش یعنی MTEntries استفاده کردی. دقت کن تگهایی که توشون کلمه Entry بکار رفته معمولا باید در ظرف بالا قرار بگیرند.
با سلام و با تشكر از مطالب آموزنده شما
من بدنبال كدي ميگردم كه بتونه مطالب مرتبط به يك مطلب رو نشون بده.در ضمن لطفا كد نمايش بهترين مطالب و يا پر بازديدترين مطالب رو بنويسيد ..ممنون ميشم.
با تشكر
عباس جان سلام
در مووبل تایپ این کار با استفاده از تگ ها (Tags) انجام می شه. دقت کن اینجا منظورم از تگ, کدهای مووبل تایپ نیست بلکه کلماتی هستند که شما با اونها مطلب خودتون رو طبقه بندی می کنید (مثل کلید واژه ها). اگه موقع نوشتن هر مطلب در ام تی به اون یک سری تگ نسبت بدین بعدش می تونید با کدهای نوشته شده در اینجا یا اینجا مطالب مرتبط (که تگهای مشترکی دارند) رو نمایش بدین.
برای بهترین مطالب یا پربازدید کننده ترین مطالب چیزی توی ام تی ندیدم. توی سایت عصر نوشتن من بنا رو بر این گذاشتم که مطالب پرکامنت تر پرطرفدارتر بودن پس یه لیستی از مطالب روبه ترتیب تعداد کامنت پایین قالب آوردم. برای اینکار از این پلاگین استفاده کردم.
موفق باشی
با سلام و تشكر از مطالبتون
من ميخوام در صفحه individual يا همون صفحه تكي وقتي يك مطلب اصلي داره نشون داده ميشه زير اون صفحه لينك عنوان چند تا مطلب مربوط به همون كتگوري نمايش داده بشه.
البته تا بحال چندين كد رو بكار بردم ولي اكثر اونا كل مطالب رو نشون ميدن
سلام ، از آموزش های شما ممنونم .
من اکنون یک وبلاگ دارم که با یک دامنه ی شخصی باز می شود . می توانم با مووبل تایپ سایتم را بسازم ، بدون این که مجبور بشم ارتباط دامنه و وبلاگ را قطع کنم . یعنی سایت را بسازم و بعد دامنه را از وبلاگ به سایت رهنمون(!) کنم .
و یک موضوع دیگه که شاید هنوز نتوانسته ام با آن کنار بیایم . وردپرس یا مووبل تایپ ؟!! هر چند خودم مووبل تایپ را بیش تر ترجیح می دهم ، اما می ترسم در هنگام کار و برخورد با یک مشکل پشیمان شوم که چرا وردپرس را انتخاب نکرده ام . آخه واقعا تازه کارم :(
دکتر جان خسته نباشید.
سه تا سوال داشتم
استفاده از بیش از یک category در تگ ایرادی داره؟
مثل این کد:
<mt:Entries category="camera AND desktop AND digital AND laptop AND mobile AND other" lastn="50"></mt:Entries>
از زحمات شما بسیار بسیار متشکرم.
سلام شقایق جان
1) نه هیچ ایرادی نداره. در این باره اینجا بیشتر می تونی بخونی.
2) کدت هیچ مشکلی نداره. ببین ام تی واقعا داره از روی کد تو اجرا می کنه یا یه جایی ارتباط قطعه؟!
3) من همچین چیزی ندیدم. فکر نمی کنم درست باشه.
موفق باشی
با سلام
من اين كدي رو كه دو تا كتگوري رو با هم نشون ميده رو در ام تي 3.38 امتحان ميكنم جواب نميده
لطفا براي ام تي 3 بگيد چطوري مطالب دو كتگوري رو با هم در يك صفحه نشون بديم
مثلا صفحه اصلي مون فقط مطالب دو گروه رو نمايش بده
ممنو ن ميشم
فقط خواهش ميكنم جواب بدين چون هر جا سوال ميكنم همون كد ام تي 4 رو ميدن و ديگه هيچي
من براي ام تي 3.38 ميخام
ممنون
عباس جان متاسفانه من حضور ذهن ندارم در نسخه 3 چه کاری می شه کرد. دوست من بهتره هرچه زودتر ارتقاء بدی. نسخه 4 دستت رو خیلی بازتر می کنه.
سلام
اگر میشه آموزش درختی کتگوری و ساب کتگوریها را هم بدهید.
بدین صورت که بعد از کلیک روی کتگوری وارد صفحهای بشویم که لیست سابکتگوریها را نمایش بدهد و بعد از کلیک روی هر سابکتگوری لیست مطالب قرار گرفته در آن سابکتگوری نمایش داده بشود و ...
ممنون میشوم
سلام دکتر جان دستت درد نکنه خیلی ممنون وظیفه ی خودم می دونم هر موقع اینجا مطلبی می نویسی بیام و تشکر کنم...