Internet Explorer 8 - Search Provider and Accelerators
בהמשך
לפוסט שהדגמתי איך לייצר ספק חיפוש (שמחפש בקורסים של סלע).
כתבתי גם מאיץ חיפוש.
אפשר להתקין את הספק והמאיץ
מכאן (ויסלחו לי מייקרוסופט שהעתקתי את העיצוב של הדף)
אז מה זה בעצם מאיץ ?
מומלץ לקרוא ב -
MSDN, בקצרה המשמעות של זה היא אפשרות לפנות לדף אחר או לשירות כלשהו עם פרמטרים מתוף הדף הנוכחי מבלי לגלוש לשם.
לדוגמא המאיץ שכתבתי לסלע - עושה את הדבר הבא.
בזמן שיטוט
בטבלת הקורסים שלנו אפשר ללחוץ קליק ימני על אחד הלינקים, לבחור במאיץ Details from Sela Syllabus ויפתח חלון תצוגה מקדימה עם תיאור הקורס.
איך עושים את זה - אני לא אסביר כאן את כל האפשרויות שיש במאיץ - (בפוסט אחר) אני רק אסביר במה אני השתמשתי.
שלב ראשון כתבתי את קובץ ה - xml שנראה ככה:
<?xml version="1.0" encoding="utf-8" ?>
<os:openServiceDescription
xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0">
<os:homepageUrl>http://www.sela.co.il</os:homepageUrl>
<os:display>
<os:name>Details from Sela Syllabus</os:name>
</os:display>
<os:activity category="Learning">
<os:activityAction context="link">
<os:preview action="http://www.sela.co.il/SSP/SyllabusDetails.aspx?url={link}"></os:preview>
<os:execute action="http://www.sela.co.il/SSP/RedirectToSyllabus.aspx" method="get">
<os:parameter name="url" value="{link}" type="text"></os:parameter>
</os:execute>
</os:activityAction >
</os:activity>
</os:openServiceDescription>
נעבור על האלמנטים החשובים:
name: השם של המאיץ כפי שיוצג ב - Context Menu (יכול להיות רק אחד כזה)
activityAction context=link: בכללי ניתן לבחור שהמאיץ יהיה זמין כשבוחרים טקסט או על לינק או בכל הדף.
preview: מפעיל שירות כלשהו בזמן השהיית העכבר על המאיץ כשניתן לשלוח כל מיני פרמטרים, במקרה שלנו בחרתי לשלוח את הלינק עצמו.
execute: הגדרה מה לעשות בזמן לחיצה על המאיץ.
נראה את הדף SyllabusDetails (שכאמור אליו פונים בזמן preview)
<div class="Container">
<span class="lbl">Description:</span><br />
<div class="Content">
<span id="spanContent" runat="server"></span>
</div>
</div>
נתעלם מה - css, ונראה את קוד השרת.
protected void Page_Load(object sender, EventArgs e)
{
string url = Request["url"];
if (!string.IsNullOrEmpty(url))
{
url = GlobalObject.unescape(url);
if (url.Contains("?"))
{
url = url.Split('?')[1];
}
NameValueCollection nvc = HttpUtility.ParseQueryString(url);
string courseCode = nvc["CourseCode"];
if (!string.IsNullOrEmpty(courseCode))
{
if (Cache[courseCode] == null)
{
InsertInCache(courseCode);
}
spanContent.InnerText = Cache[courseCode].ToString();
}
}
}
ננסה להוציא את הפרמטר url (שכזכור מכיל את המשתנה link (ב - xml)
נשלוף מתוכו את שם הקורס.
נבדוק האם הוא קיים במטמון, במידה ולא נשלוף מבסיס הנתונים ונכניס למטמון.
נכתוב את התוצאות על הדף.
קל ופשוט.