سؤال

بالتأكيد يجب أن تكون هناك طريقة بسيطة لوضع كتلة رمز بسيطة في صفحة رئيسية :( لقد حاولت استخدام ما هو واضح <%= "Hello, World!" %> بناء الجملة ولكن كتل التعليمات البرمجية غير مسموح بها. ثم جربت عمود موقع ، لكن لا تعرف كيفية استخدامه. ثم جربت مناطق الويب ولكن الصفحات الرئيسية لا يمكن استخدامها. حاول وضع جزء ويب (يصعب صنعه ونشره) في تخطيط الصفحة ، لكنه لا يقدم:/

كل ما أريده هو شيء لطيف وبسيط في الجزء العلوي من موقعي والذي يظهر تاريخ اليوم والتنسيق الذي أريد استخدامه هو DateTime.Today.ToString("ddd, d MMMM yyyy"). كيف فعلتها؟

(وإلا فإنني ألجأ إلى JavaScript Document.write!)

شكرا لكم جميعا،

هل كانت مفيدة؟

المحلول

الحل الموصى به لهذا هو استخدام عنصر تحكم من جانب الخادم. كما تقول ، يبدو تطوير موقع ويب لهذا الغرض. هناك خيار أبسط هو استخدام عنصر تحكم مستخدم .ASCX بسيط ثم المرجع إلى هذا على الصفحة. هذا المشنور يشرح كيفية إضافة عنصر تحكم المستخدم إلى مجلد Templates ثم الرجوع إليه في صفحتك الرئيسية.

على الرغم من أن هذه المشكلة البسيطة ، أعتقد أن فكرتك عن JavaScript على ما يرام بالفعل. وسوف يسمح لك بإظهار الوقت الحالي في المنطقة الزمنية للمستخدم والتي لن تكون سهلة على جانب الخادم. يبدو الأمر وكأنه اختراق لاستخدام رمز من جانب العميل لهذا النوع من الأشياء ، ولكن استخدام رمز JavaScript في SharePoint هو في الواقع أداة قوية حقًا.

نصائح أخرى

لا تحصل على استثناء "كتل الرمز غير مسموح بها في هذا الملف"?

على أي حال ، لا يُسمح بالرمز في الصفحات افتراضيًا. ما الذي ينتهي به الأمر إذا كان كل من يستطيع تحرير الصفحات باستخدام مصمم SharePoint سيبدأ في وضع بعض التعليمات البرمجية في الداخل؟

إذا اخترت ذلك ، فقم بتحرير web.conf:

<PageParserPaths> 
    <PageParserPath VirtualPath="/_catalogs/masterpage/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true" /> 
</PageParserPaths>

يعد التحكم في جانب الخادم هو الحل الموصى به بالتأكيد لوضع التعليمات البرمجية المخصصة على Masterpage. هذه إجابة واسعة لتشمل أي شيء تقريبًا تريد القيام به. ومع ذلك ، ليس دائمًا الخيار الأول والأخير.

في موقفك ، لن تحتاج بالضرورة إلى كتابة جزء مخصص للويب أو خادم تحكم في الخادم (والتعمق في احتياجات الأمان والنشر). في رأيي ، هذا في البحر. نظرًا لأن لديك بالفعل إمكانية الوصول إلى Masterpage ، والتاريخ/الوقت هو كل ما هو مطلوب ، يمكنك استخدام بعض رمز JavaScript البسيط:

var now = new Date();
document.write(now.format("ddd, d MMMM yyyy"));

هذا بالطبع سيظهر تاريخ ووقت العميل وليس الخوادم. ليست صفقة ضخمة في معظم الحالات حيث يمكنك بعد ذلك الاستفادة من GetTimeZoneOffset () لإصلاح أي تباين في المنطقة الزمنية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top