DCSIMG
Internet Explorer 8 - Search Provider and Accelerators - שלמה גולדברג (הרב דוטנט)

שלמה גולדברג (הרב דוטנט)

מרצה בסלע ויועץ בעולם ה - net.

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)
 
נשלוף מתוכו את שם הקורס.
 
נבדוק האם הוא קיים במטמון, במידה ולא נשלוף מבסיס הנתונים ונכניס למטמון.
 
נכתוב את התוצאות על הדף.
 
 
קל ופשוט.
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 6 and 3 and type the answer here:


Enter the numbers above: