تثبيت البرنامج المساعد CryptoPro CSP في متصفح Mozilla Firefox. إصلاح الخطأ "تم تحميل البرنامج المساعد، ولكن لم يتم إنشاء الكائنات. تحديث متصفح الانترنت

💖 هل يعجبك؟شارك الرابط مع أصدقائك

قواعد تثبيت البرنامج المساعد كريبتو برو CSPالخامس موزيلا فايرفوكستختلف باختلاف إصدار المتصفح - 52 وما فوق، أو أقدم.

إصدارات موزيلا فايرفوكس أقل من 52

لتوقيع المستندات في Mozilla Firefox:

  • إبطال تحديث أوتوماتيكي. للقيام بذلك، انتقل إلى "القائمة" ⇒ "الإعدادات" ⇒ "إضافية" ⇒ "التحديثات" (الشكل 1).
أرز. 1. موقع إعدادات التحديث في Mozilla Firefox
  • قم بتثبيت الإصدار 51.0.1 من موقع Mozilla Firefox الرسمي.

من أجل التثبيت متصفح كريبتو بروالبرنامج المساعد عليك اتباع الخطوات التالية:

  1. قم بتنزيل برنامج التثبيت من الموقع الرسمي لشركة Crypto-Pro www.cryptopro.ru/products/cades/plugin وقم بتشغيل الملف القابل للتنفيذ.

2. في نافذة تثبيت البرنامج الإضافي CryptoPro Browser، انقر فوق الزر "Yes" (الشكل 2-أ).

أرز. 2-أ. تثبيت البرنامج الإضافي لمتصفح CryptoPro

3. انتظر حتى يكتمل التثبيت (الشكل 2-ب).

أرز. 2-ب. تثبيت البرنامج الإضافي لمتصفح CryptoPro

4. انقر فوق الزر "موافق" وأعد تشغيل متصفح الإنترنت (الشكل 2-ج).

أرز. 2 بوصة. تثبيت البرنامج الإضافي لمتصفح CryptoPro

مهم

بعد تثبيت CryptoProالمتصفح سدادة- فيتحتاج إلى التحقق من تثبيت وظيفة إضافية للعمل مع التوقيعات الإلكترونية في متصفحك كريبتو برو إي دي إسمتصفح المكونات الإضافية للمتصفحات.

5. افتح المتصفح، وانقر فوق الزر "قائمة المتصفح"، وحدد قسم "الوظائف الإضافية" (الشكل 3).

أرز. 3. قائمة المتصفح

6. افتح علامة التبويب "المكونات الإضافية". مقابل المكون الإضافي "CryptoPro CAdES NPAPI Browser Plug-in"، حدد خيار "التمكين دائمًا" في القائمة المنسدلة (الشكل 4).


أرز. 4. إدارة الوظائف الإضافية

7. أعد تشغيل المتصفح.

موزيلا فايرفوكس الإصدار 52 وما فوق

لتثبيت المكون الإضافي CryptoPro Browser، اتبع الخطوات التالية:

  1. اتبع الرابط www.cryptopro.ru/products/cades/plugin، ثم حدد "ملحق المتصفح" (الشكل 5).


أرز. 5. موقع CryptoPro

2. انقر فوق "السماح" (الشكل 6).


أرز. 6. طلب ​​القرار

3. انقر فوق "إضافة" (الشكل 7).

) في قسم "المنتجات" -> "البرنامج الإضافي لمتصفح CryptoPro EDS"

عند تشغيل الملف الذي تم تنزيله، سيطلب منك النظام رفع حقوقك إلى مسؤول النظام. التثبيت بدون حقوق المسؤول غير ممكن.

بعد التثبيت، تأكد من إعادة تشغيل المتصفح الخاص بك! في بعض الأحيان (في حالة استخدام Chrome) يلزم إعادة تشغيل النظام، لأن... إغلاق الجميع نوافذ الكروملا يقوم بتفريغ المتصفح من ذاكرة الوصول العشوائي في جميع الحالات.

إعدادات إضافية لإصدار FireFox 52.0 والإصدارات الأحدث

لا تنس تثبيت البرنامج المساعد

لكي يعمل البرنامج الإضافي في FireFox بدءًا من الإصدار 52، تحتاج إلى تثبيت أحدث إصدار من البرنامج المساعد (لا يقل عن 2.0.12888) (انظر) وملحق خاص لـ FireFox.

لتثبيت الامتداد، اتبع الرابط من FireFox الخاص بك. بعد النقل، سيُطلب منك تثبيت الامتداد الخاص بـ FireFox - يجب عليك تأكيد التثبيت بالنقر فوق "تثبيت".

إعدادات إضافية لإصدارات FireFox حتى 52.0، FireFox ESR (خطأ: تم تحميل البرنامج الإضافي، ولكن لم يتم إنشاء الكائنات)

بعد تثبيت الوظيفة الإضافية، لا يُسمح بتشغيلها إلا بعد تأكيد المستخدم. يمكنك السماح بتشغيل الوظيفة الإضافية إما للموقع الحالي فقط أو لجميع المواقع إلى الأبد

الخيار 1:تعيين إذن لاستخدام الوظيفة الإضافية فقط للموقع الحالي (https://www.site)

عندما حدث الخطأ: يتم تحميل البرنامج المساعد، ولكن لا يتم إنشاء الكائناتانتبه إلى شريط العناوين - ظهر فيه رمز الوظيفة الإضافية:

انقر فوق هذا الرمز - سيُطلب منك تشغيل الوظيفة الإضافية وتذكر الإذن بتشغيل الوظيفة الإضافية لهذا الموقع إلى الأبد.

الخيار 2:تحديد إذن لاستخدام الوظيفة الإضافية لجميع المواقع

افتح الصفحة المثبتة إضافات فايرفوكس

في قائمة الوظائف الإضافية، ابحث عن CryptoPro CAdES NPAPI Browser Plug-in وقم بتغيير وضع التشغيل الخاص به إلى "Always Enable"

إعدادات إضافيةللأوبرا

افتح الصفحة التي تبحث عن وظيفة إضافية لتثبيتها:

أدخل "CryptoPro" في شريط البحث - سيتم العثور على الامتداد "CryptoPro Extension for CAdES Browser Plug-in". انقر فوق "إضافة إلى Opera" للتثبيت.

إعدادات إضافية ل متصفح ياندكس

بالنسبة لمتصفح Yandex، يتعين عليك اتباع إجراء مشابه لما حدث مع Opera.

إعدادات إضافية ل جوجل كروم: إذن الوظيفة الإضافية المثبتة

إذا تم تثبيت الوظيفة الإضافية بنجاح، في المرة القادمة إطلاق كرومسيتم عرض رسالة تطلب منك تأكيد تشغيل الوظيفة الإضافية

في مربع الحوار هذا، يجب عليك السماح باستخدام الامتداد

نشر على 02/03/2016 في

معلومات عامة

تتضمن واجهة برمجة المكون الإضافي استدعاء العمليات غير المتزامنة التي يتم تنفيذها بناءً على كائنات الوعد. يمكنك قراءة المزيد عن المواصفات المستخدمة في تنفيذ البرنامج المساعد. تحتاج إلى تثبيت نوعين من المعالجات على الوعود:

  • على الوفاء- النار عندما يكون الوعد في حالة "الناجح"؛
  • onRejected- إطلاق النار عندما يكون الوعد في حالة "اكتمل مع الخطأ".
الطريقة العامة لإعداد المعالجات هي كما يلي: Promise.then(onFulfilled, onRejected)

تهيئة البرنامج المساعد

للعمل مع البرنامج المساعد، تحتاج إلى استدعاء وظيفة التهيئة الخاصة بمكون PKCS#11 plugin.initPKCS11 . هذه الوظيفةيأخذ قائمة بأسماء الوحدات (في شكل مصفوفة) كمعلمات. يمكن الاطلاع على قائمة الوحدات المتوفرة. إذا لم يتم تحديد الوحدات، فسيقوم البرنامج المساعد ببدء تشغيل جميع الوحدات.
إذا كنت بحاجة إلى تحديد موفري التشفير الذين يجب استخدامهم عند تشغيل وحدة capi، فيجب عليك استخدام تنسيق التسجيل التالي:

كابي:(prov1)،(الوضع):(prov2)،(الوضع)

في هذا الإدخال:

  • prov1, prov2 – اسم موفر التشفير. القيم التالية مدعومة حاليًا:
    • Crypto-Pro GOST R 34.10-2001 مزود خدمة التشفير؛
    • Crypto-Pro GOST R 34.10-2012 مزود خدمة التشفير؛
    • Crypto-Pro GOST R 34.10-2012 مزود خدمة تشفير قوي؛
    • مزود التشفير Signal-COM CPGOST؛
    • Signal-COM GOST R 34.10-2012 (256) مزود التشفير؛
    • Signal-COM GOST R 34.10-2012 (512) مزود التشفير؛
    • مزود خدمة التشفير Infotecs.
  • الوضع – وضع العرض لنافذة إدخال رمز PIN. يمكن أن تأخذ القيم التالية:
  • 0 - الوضع الافتراضي الذي يوفره موفر التشفير؛
  • 1 – عرض نافذة موفر التشفير الأصلي.
    ملاحظة: عند العمل مع Crypto-Pro على نظام التشغيل Linux، لا يكون عرض نافذة موفر التشفير الأصلي متاحًا.
  • 2 – تظهر نافذة في واجهة البرنامج المساعد.
    ملاحظة: عند العمل مع Signal-COM، لا يكون عرض النافذة في واجهة البرنامج الإضافي متاحًا.

للحصول على المفاتيح من وحدة تخزين نظام Windows، يجب عليك تحديد ذلك ، والوضع هو My.
مثال لبدء جميع الوحدات:

Plugin.initPKCS11(["ISBC ESMART"، "Aladdin R.D. Unified JaCarta"، "Rutoken"، "SafeNet"، "capi:Crypto-Pro GOST R 34.10-2001 موفر خدمة التشفير،0:Crypto-Pro GOST R 34.10-2012 موفر خدمة التشفير،0:Crypto-Pro GOST R 34.10-2012 موفر خدمة تشفير قوي،0:Signal-COM CPGOST موفر تشفير،0:Signal-COM GOST R 34.10-2012 (256) موفر خدمة تشفير،0:Signal-COM GOST R 34.10-2012 (512) مزود التشفير،0:مزود خدمة التشفير Infotecs،0: ،لي"])

مثال لبدء وحدة للحصول على المفاتيح من وحدة تخزين نظام Windows:

Plugin.initPKCS11(["الرأس: ،لي"])

عند التهيئة الناجحة، تقوم الدالة بإرجاع كائن (يشار إليه فيما بعد باستخدام آلية الوعد) يحتوي على الوحدات النمطية ووظائف getCertsForSign.

عرض قائمة الوحدات وحالتها

لعرض قائمة الوحدات وحالتها، تحتاج إلى استدعاء وظيفة الوحدات.
طلب مثال:

Pkcs11.modules.then(onFulfilled, onRejected);

مثال على استجابة الوظيفة (يتم إعطاء فواصل لسهولة القراءة):

[( "تمكين": صحيح، "اسم": "Aladdin R.D. Unified JaCarta")، ( "تمكين": صحيح، "اسم": "Rutoken ECP")، ( "تمكين": خطأ، "خطأ": "100" :فشل في تحميل وحدة p11"، "name": "ISBC ESMART" ) ]

عرض قائمة الشهادات

لعرض قائمة الشهادات المكتشفة، يجب عليك استدعاء الدالة getCertsForSign. كمعلمة استدعاء دالة، يجب عليك تحديد ما إذا كان يجب استخدام الوضع المتوازي لاستقصاء وحدات PKCS#11 التي تمت تهيئتها:

  • حقيقي- الوصول المتوازي إلى الوحدات النمطية (الوضع الموصى به)؛
  • خطأ شنيع- الوصول التسلسلي إلى الوحدات.
قائمة الشهادات عبارة عن مصفوفة (مصفوفة JavaScript)، وعناصرها عبارة عن كائنات شهادة. يمكن تنفيذ الوظائف full_info وcms_sign_on_it وstart_signing على كائن الشهادة.

عرض معلومات حول شهادة معينة

لعرض معلومات حول شهادة معينة، تحتاج إلى استدعاء خاصية full_info، التي تقوم بإرجاع معلومات حول الشهادة ككائن json. ويشمل المعلمات التالية:

  • snرقم سريشهادة؛
  • موضوع– معلومات عن الموضوع الذي صدرت له هذه الشهادة التوقيع الالكتروني. يتم إرجاعها بتنسيق json بتنسيق "المعلمة: القيمة"، حيث تكون المعلمة هي اسم معرف الكائن المقابل (OID). يتم إعطاء كافة معرفات الكائنات القياسية تسميات مشتركة، على سبيل المثال، CN (الاسم العام).
  • المصدر– معلومات حول الجهة المصدرة لشهادة مفتاح التوقيع الإلكتروني. يتم إرجاعها بتنسيق json بتنسيق "المعلمة: القيمة"، حيث تكون المعلمة هي اسم معرف الكائن المقابل (OID). يتم إعطاء جميع معرفات الكائنات القياسية رموزًا مشتركة؛
  • ليس قبل- وقت بدء صلاحية الشهادة (نوع البيانات - سلسلة بتنسيق ASN1_TIME)؛
  • ليس بعد- وقت انتهاء صلاحية الشهادة (نوع البيانات - سلسلة بتنسيق ASN1_TIME)؛
  • key_usage- يتم إرجاع المعلومات حول الغرض من المفتاح كمصفوفة.
يمكن تحويل وقت البدء/الانتهاء للشهادة بتنسيق ASN1_TIME إلى تنسيق قياسي باستخدام وظيفة التاريخ (ASN1_TIME) الجديدة.

عرض بيانات مفتاح التوقيع الإلكتروني

لعرض معلومات حول مفتاح توقيع رقمي محدد لشهادة، يجب عليك استدعاء الأسلوب token_info. تقوم الطريقة بإرجاع كائن json بالبيانات التالية:

  • ملصق- اسم الحاوية الرئيسية لأداة التوقيع الإلكتروني؛
  • معرف الشركة المصنعة- معرف هوية الشركة المصنعة لأداة التوقيع الإلكتروني؛
  • نموذج- نموذج أداة التوقيع الإلكتروني؛
  • رقم سري– الرقم التسلسلي لأداة التوقيع الإلكتروني.
بالنسبة للمفاتيح التي تعمل من خلال وحدة capi، فإن البيانات التي يتم إرجاعها لها شكل مختلف. تأخذ سمة النموذج دائمًا القيمة "capi"، وسمة الرقم التسلسلي غائبة، ويتوافق معرف الشركة المصنعة مع اسم موفر التشفير، أما التسمية فهي اسم الحاوية.

عملية التوقيع باستخدام الشهادة المحددة

وضع التوقيع البسيط

لتوقيع سلسلة باستخدام الشهادة المحددة، يجب عليك استدعاء الدالة cms_sign_on_it، التي تقبل معلمات الإدخال التالية:

  • خط التوقيع؛
  • نوع التوقيع - ما إذا كان التوقيع مرفقًا (يجب أن يكون صحيحًا) أو منفصلاً (خطأ).
كاستجابة، تقوم الدالة بإرجاع سلسلة تحتوي على توقيع بتنسيق CAdES-BES / PKCS#7 مرفق/منفصل.
مثال لاستدعاء دالة يجب استدعاؤها على كائن شهادة: cms_sign_on_it("1234", 3, true).then(function(cms)(console.log(cms)));

وضع التوقيع المتقدم

الوضع المتقدم يسمح لك بما يلي:

  • التوقيع على كميات كبيرة من البيانات، مثل الملفات؛
  • التوقيع على ملفات متعددة دون طلب رمز PIN مرة أخرى.

لتوقيع البيانات باستخدام الشهادة المحددة، يجب عليك أولاً تهيئة كائن المُوقع باستخدام وظيفة start_signing على كائن الشهادة. معلمات الوظيفة:

  • نوع التوقيع - ما إذا كان التوقيع مرفقًا (يجب أن يكون صحيحًا) أو منفصلاً (خطأ)؛
  • عدد المحاولات لإدخال رمز PIN (على سبيل المثال، القيمة "1" تعني أن المستخدم لديه محاولة واحدة فقط، وبعدها تقوم الوظيفة بإرجاع خطأ).

ستكون الطرق التالية متاحة على كائن المُوقع:

  • add_data_in_hex(hexDataString) - يقبل البيانات كمدخلات كسلسلة سداسية عشرية؛
  • add_data_in_base64(base64DataString) - يقبل البيانات كمدخلات كسلسلة base64؛
  • add_data_in_string(stringData) - يقبل بيانات الإدخال في شكل سلسلة utf-8؛
  • free() - تقوم بإرجاع صحيح/خطأ، مما يسمح لك بالتحقق من أن الشهادة جاهزة للتوقيع. مطلوب لاستخدامه في الحالة التي يتم فيها تنفيذ عدة تكرارات للتوقيع على شهادات مختلفة. بمعنى آخر، إذا تم تنفيذ التوقيع التسلسلي على عدة شهادات، فقبل التوقيع، يجب عليك استدعاء هذه الطريقة والتأكد من إرجاعها بشكل صحيح؛
  • Finish() - ينهي التوقيع ويعيده بتنسيق CAdES-BES / PKCS#7.
كاستجابة، تقوم الدالة بإرجاع سلسلة تحتوي على توقيع بتنسيق CAdES-BES / PKCS#7 مرفق/منفصل.

التوقيع على الخط

مثال لأمر لتوقيع سلسلة:

Signer.add_data_in_string("1234").then(function(res)( returnsigner.finish();)).then(function(cms)(console.log(cms)));

في هذا الأمر، "1234" هو السطر الذي يجب توقيعه.

تثبيت توقيعات متعددة

بعد الانتهاء من التوقيع، يتم إرجاع كائن المُوقع إليه الحالة الأولية. ويمكن إعادة استخدامه خلال الجلسة لتوقيع بيانات أخرى، على سبيل المثال ملف جديد. وفي هذه الحالة، لن يتم طلب رمز PIN مرة أخرى.

لتسجيل الدخول على شهادة مختلفة، يجب عليك مسح كائن المُوقع. في معظم المتصفحات، يتم مسح هذا الكائن تلقائيًا عندما يغادر النطاق. ومع ذلك، في متصفح الانترنتقد تكون هناك حالات لا يتم فيها مسح الموقع، مما يؤدي إلى حدوث خطأ. لتجنب الخطأ، يوصى بمسح Signer.free() صراحةً. هذه العمليةيمكن تنفيذها في جميع المتصفحات لتوحيد الكود. مثال على التوقيع على شهادة مع مسح كائن المُوقع:

علامة الوظيفة (cert، info) ( function SuccessCms (signature) ( تنبيه (signature)؛ ) cert.start_signing (false، 3) .then (function (signer) (signer.add_data_in_base64 ("MTIzNDU2") .then (function () ( var data =signer.finish(); var free =signer.free(); إرجاع البيانات; ) , e).then(successCms, e); ), e); )

التوقيع على ملف كبير

الدالة readFileByChunk(file, cbToRead, cbToFinish) ( var fileSize = file.size; var ChunkSize = 1024*1024; // البايتات var offset = 0; var ChunkReaderBlock = null; var self = this; var readEventHandler = function(evt) ( إذا (evt.target.error == null) ( cbToRead(evt.target.result, offset, fileSize); offset += evt.target.result.byteLength; ) else ( console.error("خطأ القراءة: " + evt .target.error); showError("خطأ في قراءة الملف: " + evt.target.error); return; ) if (offset >= fileSize) ( cbToFinish() return; ) // إلى القطعة التالية ChunkReaderBlock(offset, ChunkSize) ، ملف)؛ ) ChunkReaderBlock = function(_offset, _chunkSize, _file) ( var r = new FileReader(); if (_file.slice) ( var blob = _file.slice(_offset, _chunkSize + _offset); ) else if (_file) .webkitSlice) ( var blob = _file.webkitSlice(_offset, _chunkSize + _offset); ) else if (_file.mozSlice) ( var blob = _file.mozSlice(_offset, _chunkSize + _offset); ) r.onload = readEventHandler; r. readAsArrayBuffer(blob); ) // ابدأ في قراءة الكتلة الأولى ChunkReaderBlock(offset, ChunkSize, file); )

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

أهلاً بكم! بالتأكيد، قد يرى العديد من المستخدمين الخطأ "فشل تحميل البرنامج الإضافي" على شاشة شاشتهم عند تشغيل الصوت أو الفيديو عبر الإنترنت، أو عند محاولة تشغيل نوع ما من رسوم الفلاش المتحركة (لعبة، لافتة، تطبيق، وما إلى ذلك). إذا وصلت إلى هذه الصفحة، فمن المرجح أنك رأيت خطأً مشابهًا. اليوم في هذه التعليمات القصيرة سوف نقوم بإزالة الخطأ " فشل تحميل البرنامج المساعد» في المتصفح بسرعة وسهولة.

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

الطريقة الأولى. تحديث متصفح الانترنت

هذه الطريقة هي الأبسط وتساعد في معظم الحالات. سأعرض جميع عمليات التلاعب باستخدام مثال متصفح Google Chrome الشهير. إذا كنت تستخدم متصفحًا آخر، فلا تقلق، فكل الخطوات هي نفسها. لذلك، من أجل تحديث المتصفح، انتقل إلى القائمة - تعليمات - حول المتصفح.


في صفحة "حول البرنامج"، ابحث عن زر "تحديث" وانقر عليه.


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

الطريقة الثانية. مسح التاريخ في المتصفح

ستساعد هذه الطريقة عند ظهور مثل هذا الخطأ في بعض الموارد فقط. الأمر بسيط جدًا - تحتاج إلى مسح ذاكرة التخزين المؤقت وملفات تعريف الارتباط في متصفحك.

ذاكرة التخزين المؤقت - ملفات المتصفح المؤقتة التي تخزن جميع مكونات الويب للموارد المعروضة (الصور والصفحات وملفات الفيديو والتصميم وما إلى ذلك). بفضل ذاكرة التخزين المؤقت، يقوم المتصفح بتحميل صفحات المواقع التي تمت زيارتها مسبقًا بسرعة، حيث يتم تحميل مكونات الموارد ليس عبر الإنترنت، ولكن من قرص محليحاسوب.

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

لذلك، دعونا نمسح ذاكرة التخزين المؤقت وملفات تعريف الارتباط في متصفحنا لمحاولة حل الخطأ. انتقل إلى القائمة، حدد "التاريخ".


ثم انقر فوق الزر "مسح السجل" وتحقق بعناية من تحديد مربعات الاختيار، كما هو موضح أدناه في لقطة الشاشة.


بعد ذلك، كل ما تبقى هو إعادة تشغيل المتصفح.

الطريقة الثالثة. تعطيل المكونات الإضافية غير الضرورية

إذا لم تساعد الطريقتان الأوليان، فانتقل إلى تعطيل البرنامج الإضافي الإضافي. أولاً، لنفتح الصفحة التي تحتوي على المكونات الإضافية المثبتة. يختلف العنوان لكل متصفح:

إذا كنت تستخدم Chrome، فاكتب chrome://plugins في شريط العناوين
إذا كنت تستخدم Yandex، فأدخل browser://plugins في شريط العناوين
إذا كنت تستخدم Opera، فاكتب Opera://plugins في شريط العناوين
إذا كنت تستخدم Firefox، فاكتب about:plugins في شريط العناوين


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


بعد قطع الاتصال، أعد تشغيل المتصفح وتحقق مرة أخرى.

الطريقة الرابعة. إعادة تثبيت أدوبي فلاش بلاير

إذا لم تساعد أي من الطرق الموضحة أعلاه، فإنني أنصحك بإعادة تثبيت Adobe Flash Player. للقيام بذلك، قم أولاً بإزالة نسخة قديمةمشغل الفلاش في لوحة التحكم - البرامج والميزات. ثم قم بالتنزيل احدث اصدارأدوبي فلاش بلاير من الموقع الرسمي.


آمل أن تكون تعليماتي الصغيرة حول إصلاح الخطأ " فشل تحميل البرنامج المساعد"ساعدتك. إذا قمت بحل هذه المشكلة بأي طريقة أخرى، يمكنك الكتابة في التعليقات، وهذا سيساعد العديد من المستخدمين! شكرا لاهتمامكم وكل التوفيق!

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

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

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

في هذه المقالة، سنغطي أهمية خطافات التهيئة في WordPress ونوضح لك أيضًا كيفية استخدامها في مواقف مختلفة.

مقدمة إلى خطافات التهيئة

يقدم WordPress مجموعة واسعة من الخطافات التي يمكن استخدامها في تطوير المكونات الإضافية والموضوعات.

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

وبالتالي، يتم استخدام خطافات التهيئة بشكل أساسي، كما قد تتخيل، لتهيئة عملية عملها في المكونات الإضافية والموضوعات. دعونا نلقي نظرة على خطافات init المتاحة في WordPress بترتيب التنفيذ:

  • يتم تشغيل Init بعد انتهاء تحميل WordPress ولكن قبل تمرير أي رؤوس. بشكل عام، يتم استخدام هذا الخطاف بواسطة المكونات الإضافية لتهيئة عملية عملها.
  • يتم استخدام widgets_init لتسجيل عناصر واجهة المستخدم للتطبيق في الشريط الجانبي. يتم تنفيذ وظيفة Register_widget داخل هذا الخطاف.
  • يتم تنفيذ admin_init كإجراء أول بعد وصول المستخدم إلى لوحة إدارة WordPress. بشكل عام، يتم استخدامه لتهيئة الإعدادات الخاصة بمنطقة الإدارة.

وبصرف النظر عن هذه الخطافات الثلاثة، يحتوي WordPress أيضًا على خطاف آخر يسمى admin_bar_init، والذي يتم تنفيذه بعد تهيئة شريط الإدارة. لا يحتوي WordPress Codex على وصف لهذا الخطاف، ولكن يتم استخدامه بواسطة عدد صغير فقط من المكونات الإضافية.

يمكنك التعرف على العملية الكاملة لتنفيذ خطافات الإجراء في WordPress في المخطوطة.

ينفذ WordPress كل ربط بترتيب معين (وهو موضح في الكود). من المهم أيضًا مراعاة الترتيب الذي تظهر به الأحداث في كل ربط إجراء. دعونا نلقي نظرة على المواقف التالية لفهم الفرق.

تعريف admin_init داخل الخطاف init

إذا أردنا ذلك، يمكننا تحديد خطافات WordPress ضمن خطافات أخرى. في الطلب النموذجي، يتم تنفيذ الخطاف init قبل الخطاف admin_init. دعونا نحاول عرض شيء ما على الشاشة عن طريق وضع admin_init داخل الخطاف init:

Add_action("init", "test_init"); وظيفة test_init())( add_action("admin_init", "test_admin_init"); ) وظيفة test_admin_init() ( echo "Admin Init Inside Init"; )

بعد تنفيذ هذا الكود، سنحصل على الإخراج المطلوب من خلال عبارة الصدى.

تعريف init داخل الخطاف admin_init

دعونا نلقي نظرة على الكود ومخرجات البرنامج النصي عندما يتم تعريف خطاف سابق في خطاف يأتي لاحقًا في ترتيب التنفيذ.

Add_action("admin_init", "test_admin_init"); وظيفة test_admin_init() ( add_action("init", "test_init"); ) وظيفة test_init() ( echo "Init Inside Admin Init"; )

في هذه الحالة، لن نحصل على أي مخرجات - كما هو متوقع - لأن الخطاف init يتم تنفيذه قبل الخطاف admin_init، وهو أمر غير مسموح به بعد تعريف الخطاف admin_init.

كما ترون، من المهم جدًا فهم الإجراء الخاص بتنفيذ الخطافات لإنشاء مكونات إضافية ناجحة. يعد الترتيب الذي تظهر به الأحداث مهمًا لجميع خطافات WordPress.

دعنا نستكشف الخطافات init وadmin_init

من بين جميع خطافات التهيئة، من المهم جدًا الانتباه إلى init وadmin_init، حيث يتم استخدام هذين الخطافين كثيرًا في العديد من المكونات الإضافية. يعد استخدام جميع خطافات التهيئة الأخرى أسهل بكثير مقارنة بهذين الخطافين.

سنلقي نظرة أيضًا على وظيفة خطافات init وadmin_init.

يتم تنفيذ الخطاف init عند كل طلب لكل من الواجهة الأمامية والخلفية لموقع WordPress.

يتم تنفيذ الخطاف admin_init بعد أن يكمل قسم الإدارة عملية التمهيد الخاصة به. لذلك يتم تنفيذ هذا الخطاف لجميع الطلبات المقدمة إلى أي صفحة إدارية. يجب أن يتم تسجيل المستخدمين للاستفادة من هذا الخطاف.

نظرًا لأنه يتم تنفيذ كل من هذه الخطافات عند كل طلب، يجب أن نأخذ في الاعتبار الوظيفة بناءً على تنفيذ هذه الخطافات وفقًا لذلك، حيث يمكن أن يكون لذلك تأثير ملحوظ على أداء الموقع.

كيفية استخدام الخطافات init

غالبًا ما يتم استخدام خطافات التهيئة بواسطة معظم مكونات WordPress الإضافية الموجودة، وهي مهمة جدًا لإدارة عملية تنفيذها.

لا يخبرنا WordPress بالضبط بما يجب علينا وما لا ينبغي أن ندرجه؛ لذلك، يمكن للمطورين ارتكاب أخطاء بسيطة، والتي بدورها يمكن أن تؤدي إلى انخفاض ملحوظ في الأداء. سنوضح لك في هذا القسم كيفية استخدام الخطافات init وadmin_init بشكل فعال.

دعونا نلقي نظرة على أفضل الممارسات لاستخدام خطافات التهيئة:

الخطاف الأول

  • تسجيل أنواع المنشورات المخصصة - يوصي مطورو WordPress باستخدام الخطاف init لتسجيل أنواع المنشورات المخصصة الجديدة.
  • تهيئة تكوين المكونات الإضافية وإعداداتها - يلزم تحديد خيارات تكوين المكونات الإضافية وتكوينها لكل طلب، مما يعني أنه من الممارسات الجيدة وضعها داخل هذا الخطاف.
  • الوصول إلى بيانات المستخدم المقدمة (باستخدام $_GET و $_POST) - يمكننا اعتراض بيانات المستخدم المقدمة دون استخدام أي إجراء، ولكن في هذه الحالة يوصى باستخدام الخطاف init لأنه يضمن التنفيذ لكل طلب.
  • إضافة قواعد إعادة كتابة جديدة - يمكننا تحديد قواعد إعادة كتابة جديدة باستخدام الخطاف init، إلا أنها لن تعمل إلا بعد إعادة التعيين.
  • إضافة أو إزالة الإجراءات المخصصة – تحتوي المكونات الإضافية على العديد من الإجراءات المخصصة لتوسيع الوظائف. قد تنشأ مواقف عندما نحتاج إلى إضافة إجراءات جديدة أو إزالة الإجراءات القديمة. في مثل هذه الحالات، من المهم تطبيق هذه الإجراءات في الخطاف init.
  • تحميل المجال النصي الإضافي – يدعم WordPress العديد من اللغات وبالتالي يمكننا تحميل ملف يحتوي على سلاسل مترجمة. يجب أن يتم ذلك أيضًا في الخطاف init.

ربط admin_init

  • التحكم في الوصول – من المهم التحقق من حقوق الوصول للمستخدمين الذين قاموا بتسجيل الدخول قبل السماح للمستخدم بالوصول إلى مجموعة محددة من الميزات والوظائف. admin_init هو الإجراء الأول الذي سيتم تنفيذه في منطقة الإدارة، حتى نتمكن من استخدامه للتحكم في الوصول.
  • إضافة خيارات جديدة - يمكننا استخدام هذا الخطاف لإضافة صفحات أو خيارات إعدادات جديدة إلى منطقة خيارات WordPress الموجودة.

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

المخاطر الشائعة عند استخدام خطافات التهيئة

غالبًا ما نواجه مواقف يسيء فيها المطورون فهم استخدام خطافات التهيئة. قد يؤدي استخدام هذه الخطافات بشكل غير صحيح إلى حدوث مشكلات خطيرة في الأداء.

دعونا نحدد الأخطاء الشائعة، بالإضافة إلى طرق التغلب عليها:

  • يعد تحديث قواعد إعادة الكتابة عملية كثيفة الاستخدام للموارد حيث يتم تحديث جميع قواعد إعادة الكتابة وإعادة ترتيبها لإضافة قواعد جديدة أو إزالة القواعد القديمة غير المطلوبة. يقوم العديد من المطورين بتحديث قواعد إعادة الكتابة داخل إجراءات init. يؤدي هذا إلى حمل أداء غير ضروري على كل استعلام. يجب أن نحدد الطريق تحديث يدويإعادة كتابة القواعد باستخدام الأزرار أو تحديث القواعد لإجراءات نادرة، مثل حفظ إعدادات المكونات الإضافية.
  • الوصول إلى قاعدة البيانات - لتنفيذ وظائف متنوعة، يجب أن يكون لديك حق الوصول إلى قاعدة البيانات، ولكن من المهم أيضًا منع استدعاءات قاعدة البيانات غير الضرورية داخل خطافات التهيئة، حيث يتم تنفيذها عند كل طلب. لهذا الغرض، سيكون الحل المثالي هو ربط خطافات قاعدة البيانات بخطافات ذات وظائف محددة، وتجنب الحمل الزائد للأداء.
  • تنفيذ إجراءات التحديث - يجب أن تتضمن المكونات الإضافية إجراءات التحديث للحفاظ على إمكاناتها محدثة في الإصدارات الجديدة. عادةً ما يستخدم المطورون خطافات التهيئة للتحقق من إصدار البرنامج المساعد والمعلمات الموجودة قبل إجراء عملية التحديث. قد نسمح للمستخدمين بتحديث المكون الإضافي على شاشة منفصلة بدلاً من إجراء عمليات التحقق تلقائيًا عند كل طلب.
  • يعد استخدام خطافات التهيئة بدلاً من الخطافات لوظائف معينة هو الخطأ الأكثر شيوعًا الذي يرتكبه العديد من المطورين. يحتوي WordPress على مجموعة واسعة من الخطافات التي توفر وظائف فريدة. من المهم استخدام خطافات الوظائف لتجنب التعارضات وجعل التعليمات البرمجية الخاصة بك قابلة للتوسيع. يمكن استخدام خطافات مثل init وadmin_init بدلاً من خطافات محددة، لذلك يميل العديد من المطورين إلى استخدامها دون إدراك التأثير المدمر لها.

أمثلة على السيناريوهات الشائعة حيث يستخدم المطورون الخطافات init وadmin_init بدلاً من الخطافات الموصى بها:

  • admin_menu - يمكننا إضافة صفحات القائمة باستخدام وظيفة add_menu_page. لإنشاء صفحات في قائمة الإدارة، يوصى باستخدام رابط admin_menu. ومع ذلك، يستخدم العديد من المطورين الخطاف admin_init لأنه يعمل بعد الخطاف admin_menu.
  • wp_enqueue_scripts - الطريقة الموصى بها لإضافة الأنماط والبرامج النصية هي استخدام الخطاف wp_enqueue_scripts. ومع ذلك، يستخدم العديد من المطورين wp_enqueue_script داخل الخطاف init لتحميل البرامج النصية والأنماط.

هناك العديد من المواقف المشابهة حيث يستخدم المطورون خطاف init عام بدلاً من خطاف محدد لوظيفة محددة، ويجب تجنب هذا الأسلوب إن أمكن.

خاتمة

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

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



أخبر الأصدقاء