การปรับใช้อะแดปเตอร์ควบคุมใน SharePoint

มีวิธีใดในการปรับใช้ Control Adapters โดยอัตโนมัติ (การปรับเปลี่ยนเมนูบางอย่าง) ใน SharePoint โดยใช้โซลูชันและคุณสมบัติ WSP หรือไม่ ฉันสามารถแก้ไข/ปรับใช้ไฟล์ ".browser" บางไฟล์โดยทางโปรแกรมได้หรือไม่

หากเป็นไปไม่ได้ ทางเลือกอื่นคืออะไร (แนวปฏิบัติที่ดีบางประการ) ?

ฉันต้องการสิ่งนี้สำหรับไซต์การเผยแพร่


person Robert Vuković    schedule 11.03.2009    source แหล่งที่มา


คำตอบ (3)


นอกจากนี้ ด้วยฟีเจอร์ คุณจะมีความสามารถในการกำหนด FeatureReceiver ซึ่งโดยพื้นฐานแล้วเป็นการเรียกไปยังนักพัฒนาที่จัดเตรียมแอสเซมบลีเพื่อจัดการเหตุการณ์วงจรชีวิตของฟีเจอร์ (เช่น onFeatureInstalled, onFeatureActivated เป็นต้น) คุณจะสามารถเขียนโค้ด .Net เพื่อโต้ตอบกับได้ โครงสร้างพื้นฐาน

person Mark Mascolino    schedule 12.03.2009
comment
คุณคิดว่าฉันควรเขียนโค้ด .NET เปลือยภายในฟีเจอร์และวางไฟล์ลงในโฟลเดอร์ฟิสิคัลใช่หรือไม่ บางทีมันอาจจะคุ้มค่าที่จะลองถ้าฉันสามารถหาเส้นทางแบบเต็มภายในฟีเจอร์นี้ได้ - person Robert Vuković; 12.03.2009
comment
ฉันคิดว่าคุณควรจะได้รับโฟลเดอร์แอปพลิเคชันผ่านโมเดลวัตถุ SharePoint เนื่องจากคุณทราบว่าคุณลักษณะของคุณถูกปรับใช้กับแอปพลิเคชันใด - person Flo; 13.03.2009
comment
นี่คือไซต์เผยแพร่และจะต้องปรับใช้กับโฟลเดอร์เสมือน (FBA) สองโฟลเดอร์ :( แต่บางทีฉันอาจจะจัดการมันได้เช่นกัน - person Robert Vuković; 16.03.2009

คุณสามารถให้โอกาส WSPBuilder ได้ เป็นโซลูชัน SharePoint ของชุดเครื่องมือโอเพ่นซอร์ส ฉันรู้ด้วย WSPBuilder ว่าคุณจะปรับใช้ไฟล์บนคลาวด์ในถังขยะและโฟลเดอร์ทรัพยากรภายในไดเร็กทอรีของแอปพลิเคชัน (...\Inetpub\wwwroot\wss\VirtualDirectories\80)

ดังนั้นบางทีอาจเป็นไปได้ที่จะปรับใช้ไฟล์ในโฟลเดอร์ App_Browsers ฉันคิดว่ามันคุ้มค่าที่จะลอง

person Flo    schedule 12.03.2009

นี่คือบทความ อธิบายงานนี้ คุณสามารถเพิ่มวิธีการเช่นนี้ในคลาสมาสเตอร์เพจของคุณได้:

private static void AddControlAdapterToType<T>(Type controlType) where T : ControlAdapter, new()
   {
       if (controlType == null)
       {
           throw new ArgumentNullException("controlType", "This argument can not be null!");
       }

       var adapters = HttpContext.Current.Request.Browser.Adapters;
       var key = controlType.AssemblyQualifiedName;
       if (!adapters.Contains(key))
       {
           var adapter = typeof(T).AssemblyQualifiedName;
           adapters.Add(key, adapter);
       }
   }

จากนั้นคุณเรียกมันจากตัวสร้างมาสเตอร์เพจดังนี้:

AddControlAdapterToType<YourCustomAdapter>(typeof(Microsoft.SharePoint.WebPartPages.ContentEditorWebPart));
person Serhiy    schedule 24.01.2013