Internet Explorer 8 – Search Provider and Accelerators

8 בספטמבר 2009

 


בהמשך לפוסט שהדגמתי איך לייצר ספק חיפוש (שמחפש בקורסים של סלע).

 

כתבתי גם מאיץ חיפוש.

 

אפשר להתקין את הספק והמאיץ מכאן (ויסלחו לי מייקרוסופט שהעתקתי את העיצוב של הדף)

 

אז מה זה בעצם מאיץ ?

 

מומלץ לקרוא ב – 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)

 

נשלוף מתוכו את שם הקורס.

 

נבדוק האם הוא קיים במטמון, במידה ולא נשלוף מבסיס הנתונים ונכניס למטמון.

 

נכתוב את התוצאות על הדף.

 

 

קל ופשוט.

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *