قالب جستجوي مويبل تايپ کجاست ؟
يکي از امکاناتي که بصورت پيشرفته در مويبل تايپ پيش بيني شده ، امکان جستجو در وبلاگ و در قسمت نظرات است اما قالب صفحه جستجو در نسخه اوليه در ليست قالبها وجود ندارد زيرا که به اعتقاد طراح ، براي وبلاگهاي ابتدايي و تازه کار جستجو لزومي ندارد البته به نظر من اصلا اينطور نيست و همه وبلاگها نياز به اين جستجو دارند هم براي نويسنده وبلاگ و هم براي خواننده هاي وبلاگ اين امکان يکي از ملزومات است مخصوصا براي وبلاگهاي آموزشي و علمي ، که يکي از ابزارهاي ضروري براي خوانندگان است . خب با توجه به اين ضرورت آموزش کامل نحوه ايجاد قالب جستجو را برايتان مي نويسم .
:::::
مرحله اول : قرار دادن فرم جستجو در صفحه اصلي وبلاگ
کد هاي زير را در صفحه اول وبلاگ يا در صفحه هاي فرعي و آرشيو ميتوانيد قرار دهيد .
<form method="get" action="<$MTCGIPath$><$MTSearchScript$>">
<input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
<input type="submit" value="جستجو" />
<input id="search" name="Search" size="20" />
</form>
:::::
مرحله دوم : طراحي قالب صفحه جستجو
« صفحه جستجو » داراي 4 بخش مي باشد که يک بخش آن ثابت و بخشهاي ديگر
به مقتضاي نوع جستجو متغير است يعني شما بايد هر چهار بخش را پشت سر هم در صفحه جستجو قرار دهيد ولي
به مقتضاي نوع جستجو هر بار يکي از اين بخشها ظاهر ميشود.
بخش اول : ابتدا بايد فرم جستجو را مجددا در ابتداي صفحه جستجو
نيز قرار دهيم که البته همان فرم جستجو را که در صفحه اصلي وبلاگ
گذاشته بوديم را ميتوانيم دوباره استفاده کنيم ولي من پيشنهاد ميکنم
فرم زير را استفاده کنيد چرا که امکانات بیشتری را در اختيار
شما قرار ميدهد( البته خودتان هم ميتوانيد امکانات ديگري را نيز اضافه
کنيد ) و به عبارتی جستجوی پیشرفته است :
<form method="get" action="<$MTCGIPath$><$MTSearchScript$>">
<input type="text" size="30" name="search"
value="<$MTSearchString$>" />
<input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
<input type="submit" value="جستجو" />
<br>
جستجو در:
<input type="radio" name="SearchElement" value="entries" />
يادداشتها
<input type="radio" name="SearchElement" value="comments" />
نظرات
<input type="radio" name="SearchElement" value="both" /> هر دو
<br>
<input type="checkbox" name="RegexSearch" value="ON" /> عين کلمه
<input type="checkbox" name="CaseSearch" value="ON" /> ترکيب
مشابه
<br>
ترتيب قرار گرفتن بر اساس :
<select name="SearchSortBy">
<option value="created_on">تاريخ نگارش</option>
<option value="title">عنوان مطلب</option>
</select>
<br>
ترتيب قرار گرفتن در صفحه :
<select name="ResultDisplay">
<option value="ascend">صعودي</option>
<option value="descend">نزولي</option>
</select>
<br>
نتايج جستجو از:
<select name="SearchCutoff">
<option value="9999999">از شروع</option>
<option value="7">يک هفته قبل</option>
<option value="14">دو هفته قبل</option>
<option value="30">يک ماه قبل</option>
<option value="60">دو ماه قبل</option>
<option value="90">سه ماه قبل</option>
<option value="365">يک سال قبل</option>
</select><br />
</form>
اين قسمت همان بخش ثابت است و بخشهاي بعدي به مقتضاي جستجو ظاهر ميشود
.
بخش دوم : دقيقا بعد از فرم جستجو اين بخش را قرار ميدهيم که
اگر کلمه اي که جستجو شده نتيجه يا نتايجي داشته باشد اين بخش ظاهر
ميشود .
<MTSearchResults>
<MTBlogResultHeader>
نتايج جستجو در «<$MTBlogName$>»
</MTBlogResultHeader>
<br>
<h3><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></h3>
<$MTEntryExcerpt$><$MTEntryEditLink$><br />
<div> <$MTEntryDate$>: به تاريخ «<$MTBlogName$>» نوشته شده در
وبلاگ /></div>
<br>
</MTSearchResults>
بخش سوم : مجددا به دنبال کدهاي بالا کدهاي زير قرار ميگيرد که
اگر جستجو نتيجه اي در بر نداشته باشد بخش زير ظاهر ميشود.
<MTNoSearchResults>
<span> "<$MTSearchString$>" نتیجه جستجو براي</span>
<br>
<p>.باشد وجود نداشت "<$MTSearchString$>" هيچ مطلبي که شامل</p>
</MTNoSearchResults>
بخش چهارم : دوباره کدهاي اين قسمت را زير کدهاي بالايي قرار
ميدهيم که اگر هيچ کلمه اي جستجو نشده باشد يعني جستجويي انجام نشده
باشد اين بخش ظاهر مي شود .
<MTNoSearch>
: راهنمايي
<br>
در حالت عادي اين موتور جستجو کلمات وارد شده را به ترتيب جستجو مي
کند. براي اينکه عبارتي را عينا جستجو کنيد بايد اينگونه آنرا مشخص
کنيد:<br>
"movable type"
<br>
همچنين کلمات کليدي AND, OR و NOT هم براي درست کردن عبارات شرطي
پشتياني مي شود:
<br>
personal OR publishing
<br>
publishing NOT personal
</MTNoSearch>
خب کار طراحي قالب جستجو تمام شد ولي چونکه من فقط کدهاي ضروري را بدون
هيچگونه کد اضافي قرار دادم شما بايد بر اساس طرح ساير صفحه هاي
وبلاگتان اين صفحه را نيز طراحي گرافيکي کنيد.
:::::مرحله سوم : ايجاد قالب جديد
در مويبل تايپ در اين مرحله شما بايد يک قالب جديد در ليست قالبها اضافه نمايد ؛ براي
اينکار ابتدا به قسمت
List Templates مويبل تايپ برويد و در بخش
Template Modules روي
Create new template module کليک
نماييد .
صفحه اي که باز ميشود شامل سه قسمت است :
1- در
Template Name هر اسمي را ميتوانيد بنويسيد مثلا :
Template_Search.
2- در
Link this template to a file بايد عبارت زير را بنويسيد
:
../cgi-bin/mt/search_templates/default.tmpl
اگر مويبل تايپ را در مسير ديگري نصب کرده ايد بايد اين مسير را تصحيح
نماييد .
3- حالا کد قالبي را که درست کرده ايد را در
Module Body قرار
دهيد و
save را بزنيد و و سپس
Rebuild يعني بازسازي کنيد اکنون وبلاگ شما مجهز به يک جستجوگر قوي همراه با قالب دلخواهتان است .
نکته 1 : اگر شما چند وبلاگ در سايتتان داريد و مي خواهيد جستجو
در تمامي وبلاگهايتان انجام بپذيرد دستور زير را از فرمها حذف کنيد :
<input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
نکته 2 : اگر شما در سايتتان دو يا چند وبلاگ داريد و نمي خواهيد
قالب جستجوي آنها يکسان باشد بايد مراحل زير را انجام دهيد :
مثلا مي خواهيم دو قالب جستجو براي دو وبلاگ
http://gallery.shamsozoha.com و http://weblog.shamsozoha.com بسازيم،
قالبها را بر اساس توضيح بالا طراحي مي کنيم و سپس در
List
Templates به همان صورت بالا قرار مي دهيم . البته براي مسيرها به
شکل زير عمل مي کنيم.
براي gallery :
Template Name:
gallery_search_template
Link this template to a file:
../cgi-bin/mt/search_templates/gallery.tmpl
و براي weblog :
Template Name :
weblog_search_template
Link this template to a file:
../cgi-bin/mt/search_templates/weblog.tmpl
در فرم جستجوی هر وبلاگ نيز اين دستور را اضافه کنيد :
براي gallery :
<input type="hidden" name="Template" value="gallery" />
براي weblog :
<input type="hidden" name="Template" value="weblog" />
اکنون بايد فايل http://yourdomain.com/cgi-bin/MT/mt.cfg را ويرايش کنيد ( چگونگي
ويرايش اين فايل در
وبلاگ پارس مديا بخوبي توضيح داده شده است )
عبارت زير را در آن پيدا کنيد :
# AltTemplate work work.tmpl
# AltTemplate play
play.tmpl
و تبديل کنيد به :
AltTemplate gallery gallery.tmpl
AltTemplate weblog weblog.tmpl
حالا هر کدام از وبلاگهاي شما داراي قالب جستجوي مختص همان وبلاگ است .
نکته 3 : برای فراهم
کردن امکان جستجوی اختیاری در چند وبلاگ موجود در سایت می بایست ابتدا کد زیر را از
فرم جستجو حذف کنید:
<input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
سپس این کد را اضافه نمایید :
<MTBlogs>
<input type="checkbox" name="IncludeBlogs"
value="<$MTBlogID$>" checked /> <$MTBlogName$>
</MTBlogs>
کد بالا یعنی اینکه جستجو در همه وبلاگها انجام شود مگر اینکه چک باکس آن برداشته
شود حالا اگر بخواهید
که جستجو در همه وبلاگها انجام شود مگر اینکه با زدن چک باکس فقط در وبلاگهای خاصی
این جستجو انجام بپذیرد ، می باید کد زیر را اضافه کنید :
<MTBlogs>
<input type="checkbox" name="ExcludeBlogs"
value="<$MTBlogID$>" /> <$MTBlogName$>
</MTBlogs>
و اگر وبلاگهای متعددی داشتید و خواستید که فقط در چند وبلاگ بخصوص و با عناوین
دلخواهتان امکان جستجو داده شود می بایست کد زیر را برای هر وبلاگی که خواستید
امکان جستجو در آن را بدهید ، بنویسید :
<input type="checkbox"
name="IncludeBlogs" value="Blog ID" /> نام
وبلاگ مورد نظر
که
Blog ID آی دی وبلاگ مورد نظرتان است ، به عنوان مثال :
<form method="get" action="<$MTCGIPath$><$MTSearchScript$>">
<input type="submit" value="جستجو" />
<input id="search" name="Search" size="20" /><br>
<input type="checkbox"
name="IncludeBlogs" value="3" /> گالری قالب وبلاگ و سایت
<input type="checkbox"
name="IncludeBlogs" value="7" /> روزنگار
</form>
نکته 4 : فرم جستجو را نیز می توانید به دلخواه
تغییر دهید بعنوان مثال :
<form method="get"
action="<$MTCGIPath$><$MTSearchScript$>">
<input id="search" name="Search" size="20" />
<MTBlogs>
<select name="IncludeBlogs" size="1" >
<option selected value="<$MTBlogID$>"><$MTBlogName$></option>
</select>
</MTBlogs>
<input type="submit" value="جستجو" />
</form>
اميدوارم که اين آموزش برايتان مفيد باشد و احيانا اگر ايرادي مشاهده کرديد
حتما تذکر دهيد و يا اگر در مراحل انجام کار به مشکلي بر خورديد
تماس
بگيريد .
۹:۱۹ صبح