27 November 2010

Array of Arrays (Two Dimensional Arrays) in JavaScript

כאשר רוצים ליצור מערך של מערכים  ב JavaScriptזה בדר"כ נראה קוד מסובך, וקשה לתחזק אותו.
בניתי קוד שדומה לHash או Dictionary שיש לו Key והוא האיבר המצביע על המערך השני שהוא הValue.
פונים אליו בשני דרכים
הראשונה, כל פעם (בדרך כלל בלולאות) מוסיפים למערך ב SetAnItem:
var arr1 = new RoiArray();
arr1.SetAnItem("One",1);
arr1.SetAnItem("Two",1);
arr1.SetAnItem("Three",1);
השנייה, בו זמנית מכניסים את כל המערך:
var arr2 = new RoiArray("One",[1,1,1],"Two", "two", "Three",3);


למערך יש אפשרות להסיר מהרשימה (RemoveAnItem) על פי הKey, לבדוק שקיים Key מסוים (HasItem) וכמובן לקבל את הערך (GetAnItem) של המפתח.

הקוד של הJS:
function RoiArray()
{
  this.length = 0;
  this.items = new Array();
  for (var i = 0; i < arguments.length; i += 2) {
    if (typeof(arguments[i + 1]) != 'undefined') {
      this.items[arguments[i]] = arguments[i + 1];
      this.length++;     
    }
  }
  
  this.RemoveAnItem = function(in_key) 

  
      
    var tmp_value; 
    if (typeof(this.items[in_key]) != 'undefined') {
      this.length--;
      var tmp_value = this.items[in_key];
      delete this.items[in_key];
    }     
    return tmp_value; 

  
   
  this.GetAnItem =
function(in_key) {
    return this.items[in_key]; 
  }
  this.SetAnItem = function(in_key, in_value) {
    if (typeof(in_value) != 'undefined') {
      if (typeof(this.items[in_key]) == 'undefined') {
        this.length++;
      }
      this.items[in_key] = in_value;    
    } 
     
    return in_value; 

  
  
  this.HasItem = function(in_key) 
        
    return typeof(this.items[in_key]) != 'undefined'

  }
}
נחמד, לא?
שבוע טוב,
רועי

13 November 2010

How to add an Icon to Search View or WebPart View in SharePoint

איך מצגים את הicon ב webpart תצוגות או בחיפוש?



בפוסט הזה אדגים איך להוסיף את האיקון של PDF, כך שנוכל לראות אותו בתצוגות ובחיפוש.




שלב 1: נעתיק את הicon לספריה - למשל MyPdfIcon16.gif:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Images

שלב 2: נוסיף את הicon לקובץ Docicon.xml שנמצא ב:

C:\Program Files\Common Files\Microsoft Shared\Web server extensions\12\Template\Xml

נפתח בnotepad את הקובץ, נוסיף את השורה במקום המתאים (mapping) את השורה הבאה
<Mapping Key="pdf" Value="MyPdfIcon16.gif"/>

שלב אחרון: IISRESET

נחמד לא?

הסבר ניתן למצוא גם Microsoft support


נתראה,

רועי ק'

10 November 2010

The page took too long to save

מכירים את ההודעה באקספלורר 8
“Are you sure you want to navigate away from this page?

The page took too long to save. You can click "Cancel", and then try to save the page again. If you click "OK", you might lose unsaved data.

Press OK to continue, or Cancel to stay on the current page.”

או אם יש לכם IE בעברית
 
שמירת הדף נמשכה זמן רב מדי. באפשרותך ללחוץ על "ביטול" ולאחר מכן לנסות שוב לשמור את הדף. אם תלחץ על "אישור", ייתכן שתאבד נתונים שלא נשמרו.
 

כל מה שצריך לעשות זה לשנות הגדרה בExplorer.
 
Tools > Internet Options > Advanced
ולבטל את ה - "Enable native XMLHTTP support"
 

פשוט לא?
 
את הפתרון מצאתי בsadomovalex's blog
 
תודה,
רועי

06 November 2010

Create a new scope in SharePoint search

CScope בחיפוש זה טווח החיפוש. לדוגמה אני רוצה לחפש רק תמונות, רק מאתר מסוים וכדומה.

בפוסט זה אדגים איך ליצור scope שיהיה אפשר לחפש רק במסמכים כמו וורד.

בShared Service יש לגשת Search Administration בעמודת הMetadata Properties

נחפש את FileExtension, נלחץ על Edit

נסמן את FileExtension כAllow this property to be used in scopes

עכשיו נחזור לSearch Administration בעמודת הScopes


נלחץ על New Scope


נרשום את שמו Documents, נגדיר לו דף חיפוש חדש (זה לכשנרצה לשנות את הxsl של תוצאות החיפוש). ונלחץ אישור OK.


עכשיו נשים לב שליד הScope שלנו יש קישור Empty – Add rules. נלחץ עליו.


מכיוון שהגדרנו את FileExtension כסוג של Scope,  נסמן אותו בProperty Query. נסמן בBehavior את הscope כinclude.


עכשיו נגדיר את FileExtension כסיומת WORD כמו doc ו docx. ונלחץ אישור.


כדי להוסיף עוד FileExtension כל מה שנצטרך זה ללחוץ New rule


תהנו,
רועי