İmzalama eklentisi başlatma yüklü değil. CryptoPro CSP eklentisini Mozilla Firefox tarayıcısına yükleme. bu yol. Uygulama eklentilerini etkinleştir

Yayınlanan 02/03/2016 yılında

Zagalnye Vidomosti

Eklentinin yazılım arayüzü, söz verilen nesneler altında uygulanan eşzamansız işlemlere yönelik çağrıyı iletir. Eklenti spesifikasyonunun uygulanmasında Vicoristan hakkındaki raporu okuyabilirsiniz. Vaatlere iki tür çözümleyici kurmak gerekir:

  • yerine getirildi– sözün başarıyla yerine getirilip getirilemeyeceğini sorun;
  • Reddedildi– vaadin “merhametle tamamlanıp tamamlanmayacağını” sorun.
Vaatleri yüklemenin evrensel yöntemi şuna benzer: Promise.then(onFulfilled, onRejected)

Eklentinin başlatılması

Eklentiyle çalışmak için eklenti.initPKCS11 bileşeninin PKCS#11 başlatma işlevini kullanmanız gerekir. Bu işlev, parametre olarak modüllerin adlarını (dizi olarak) alır. Transfer modüllerinin seçimi gözden geçirilebilir. Modüller belirtilmezse eklenti tüm modülleri başlatacaktır.
Capi modülünü kullanırken hangi kripto sağlayıcıların capi modülünü kullanacağını belirtmeniz gerekiyorsa aşağıdaki kayıt formatını kullanın:

Capi:(prov1),(mod):(prov2),(mod)

Kimin kayıtları:

  • prov1, prov2 – kripto sağlayıcının adı. Şu anda aşağıdaki değerler vurgulanıyor:
    • Crypto-Pro GOST R 34.10-2001 Şifreleme Hizmet Sağlayıcısı;
    • Crypto-Pro GOST R 34.10-2012 Şifreleme Hizmet Sağlayıcısı;
    • Crypto-Pro GOST R 34.10-2012 Güçlü Kriptografik Hizmet Sağlayıcı;
    • Signal-COM CPGOST Şifreleme Sağlayıcısı;
    • Signal-COM GOST R 34.10-2012 (256) Şifreleme Sağlayıcısı;
    • Signal-COM GOST R 34.10-2012 (512) Şifreleme Sağlayıcısı;
    • Infotecs Şifreleme Hizmet Sağlayıcısı.
  • mod – PIN kodu giriş penceresini görüntüleme modu. Aşağıdaki değerleri alabilirsiniz:
  • 0 – kripto sağlayıcı tarafından yapılan transferler ve transferler için mod;
  • 1 – kripto sağlayıcının yerel penceresinin gösterimi.
    Not: Linux'ta Crypto-Pro ile çalışırken kripto sağlayıcının yerel penceresi kullanılamaz.
  • 2 – eklenti arayüzünde bir pencerenin görüntülenmesi.
    Not: Signal-COM kurulduğunda eklenti arayüzündeki görüntüleme penceresi kullanılamaz.

Anahtarları Windows sistem klasöründen almak için sağlayıcınızın adını takip edin ve mod Benim'dir.
Tüm modülleri başlatma örneği:

Plugin.initPKCS11(["ISBC ESMART", "Aladdin R.D. Unified JaCarta", "Rutoken", "SafeNet", "capi:Crypto-Pro GOST R 34.10-2001 Şifreleme Hizmet Sağlayıcısı,0:Crypto-Pro GOST R 3421 Şifreleme Hizmeti Sağlayıcı,0:Crypto-Pro GOST R 34.10-2012 Güçlü Şifreleme Hizmet Sağlayıcısı,0:Signal-COM CPGOST Şifreleme Sağlayıcısı,0:Signal-COM GOST R 34.10-2012 (256) Şifreleme Sağlayıcısı,0 R 34.10-2012 (512) Şifreleme Sağlayıcısı,0:Infotecs Şifreleme Hizmet Sağlayıcısı,0: ,Benim"])

Windows sistem klasöründen anahtarları almak için bir modül başlatma örneği:

Plugin.initPKCS11(["capi: ,Benim"])

Başarılı başlatmanın ardından işlev, nesneyi (bundan sonra ek söz mekanizması kullanılarak) işlev modüllerine ve getCertsForSign'a döndürür.

Modül akışının ve görünümlerinin gözden geçirilmesi

Modüllerin ve bunların aktarımını görüntülemek için modüller işlevine tıklamanız gerekecektir.
Bir örnek soracağım:

Pkcs11.modules.then(onFulfilled, onReddedildi);

Farklı işlevlere örnek (okuma kolaylığı için basılmıştır):

[ ( "enable": true, "name": "Aladdin R.D. Unified JaCarta" ), ( "enable": true, "name": "Rutoken ECP" ), ( "enable": false, "error": "100 :p11 modülü yüklenemedi", "name": "ISBC ESMART" ] ]

Sertifika listesinin gözden geçirilmesi

Tanımlanan sertifikaların listesini görüntülemek için getCertsForSign işlevini çağırmanız gerekir. Başlatılan PKCS#11 modüllerinin paralel test modunu kullanmak amacıyla çağrı işlevi için bir parametre belirlemek gereklidir:

  • doğru– modüllere paralel geliştirme (öneri modu);
  • YANLIŞ- Modüllere kadar sıralı ölçeklendirme.
Sertifikaların bir diziye (JavaScript Dizisi), her sertifika nesnesinin öğelerine aktarılması. Sertifika nesnesinde full_info, cms_sign_on_it ve start_signing işlevlerini seçebilirsiniz.

Belirli bir sertifikayla ilgili verilerin gözden geçirilmesi

Belirli bir sertifika hakkındaki bilgileri görüntülemek için, json nesne görünümünde sertifika hakkındaki bilgileri görüntüleyen full_info'ya tıklamanız gerekir. Aşağıdaki parametreleri içerir:

  • snseri numarası sertifika;
  • ders– bu elektronik imza sertifikasını alan kişiye ilişkin veriler. Json formatında, şu formatta görünür: değerler ve parametre, orijinal nesne tanımlayıcısının (OID) adıdır. Tüm standart nesne tanımlayıcılara standart adlar verilir, örneğin CN (Ortak Ad).
  • ihraççı– elektronik imza anahtarı sertifikasının verilmesine ilişkin bilgi. Json formatında, şu formatta görünür: değerler ve parametre, orijinal nesne tanımlayıcısının (OID) adıdır. Tüm standart nesne tanımlayıcılarına standart anlamlar verilmiştir;
  • önce değil– sertifikanın saati (veri türü – ASN1_TIME formatındaki satır);
  • sonra değil– sertifikanın tamamlanma saati (veri türü – ASN1_TIME formatındaki satır);
  • anahtar_kullanımı– dizide görünen anahtar tanıma hakkında bilgi.
ASN1_TIME formatındaki sertifikanın başlangıç/bitiş saati, ek bilgiler kullanılarak standart formata dönüştürülebilir. yeni işlevler Tarih(ASN1_TIME) .

Elektronik imza anahtarına ilişkin verilerin gözden geçirilmesi

Bir elektronik imza sertifikasının belirli bir anahtarı hakkındaki bilgileri görüntülemek için token_info yöntemini çağırmanız gerekir. Yöntem, bir json nesnesini aşağıdaki verilerle döndürür:

  • etiket– elektronik imza için anahtar kabının adı;
  • üretici kimliği– elektronik imzanın yayıncı tanımlayıcısı;
  • modeli– elektronik imza amaçlı model;
  • seri numarası- Bireysel elektronik imzanın seri numarası.
Capi modülü aracılığıyla işlenen anahtarlar için döndürülen veriler farklı bir görünüme sahiptir. Model özelliği her zaman “capi” değerini içerir, seriNumber özelliği her zaman kripto sağlayıcının adını belirtir ve etiket de konteynerin adını belirtir.

Seçilen sertifikayı kullanarak imzalama işlemi

Basit abonelik modu

Seçilen sertifikayı kullanarak bir satırı imzalamak için aşağıdaki giriş parametrelerini kabul eden cms_sign_on_it işlevini çağırmanız gerekir:

  • imza satırı;
  • imza türü - imzanın kabul edilip edilmediği (doğru değerinin iletilmesi gerekir) veya kabul edildiği (yanlış).
Kanıt olarak, işlev, imzanın CAdES-BES / PKCS#7 ekli/ayrık biçiminde olduğu satırı döndürür.
Bir sertifika nesnesine tıklayabilen tıklama işlevi örneği: cms_sign_on_it("1234", 3, true).then(function(cms)(console.log(cms)));

Uzantı abonelik modu

Uzatma modu şunları sağlar:

  • büyük bir nişanın haraçlarını, örneğin dosyaları imzalamak;
  • PIN kodunu yeniden girmeden çok sayıda dosyayı imzalayın.

Seçilen ek bir sertifikaya ilişkin verileri imzalamak için, öncelikle sertifika nesnesindeki ek start_signing işlevini kullanarak imzalayan nesnesinin başlatılması gerekir. Fonksiyon parametreleri:

  • imza türü - imzanın kabul edilip edilmediği (doğru değerinin iletilmesi gerekir) veya kabul edildiği (yanlış);
  • PIN kodunun girilmesine yönelik testlerin sayısı (örneğin, "1" değeri, kullanıcının yalnızca bir teste ihtiyacı olduğu anlamına gelir, bundan sonra işlev sıfırlamayı döndürür).

İmzalayan nesnesinde aşağıdaki yöntemler mevcut olacaktır:

  • add_data_in_hex(hexDataString) - onaltılık bir satırdaki verileri giriş olarak kabul eder;
  • add_data_in_base64(base64DataString) - base64 satırındaki verileri giriş olarak kabul eder;
  • add_data_in_string(stringData) - verileri utf-8 satır biçiminde giriş olarak kabul eder;
  • free() - doğru/yanlış değerlerini döndürür, bu da imzalamadan önce sertifikanın hazır olduğunu doğrulamanıza olanak tanır. Yineleme imzasının farklı sertifikalara uygulanması durumunda aşağıdaki seçeneğin kullanılması gerekmektedir. Yani birden fazla sertifika üzerinde sıralı imzalama söz konusu ise imzalamadan önce bu metodun çağrılması ve daha sonra true değerine çevrilmesi gerekmektedir;
  • Finish() - imzayı sonlandırır ve onu CAdES-BES/PKCS#7 formatına dönüştürür.
Kanıt olarak, işlev, imzanın CAdES-BES / PKCS#7 ekli/ayrık biçiminde olduğu satırı döndürür.

Satır imzası

Komut örneği, satırı imzalamanıza olanak tanır:

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

Bu komutta "1234" vardır - imzalanması gereken bir dizi.

Çoklu imza kurulumu

İmzayı sonlandırdıktan sonra imzalayan nesnesi döndürülür. hafta sonu kampı. Oturumun bir parçası olarak, örneğin yeni bir dosya gibi diğer verileri imzalamak için tekrar kaydolabilirsiniz. Bir daha PIN kodunuz istenmeyecektir.

Farklı bir sertifika imzalamak için imzalayan nesnesini temizlemeniz gerekir. Çoğu tarayıcıda bu nesne kapsamını kaybettiğinde otomatik olarak temizlenir. Fakat, İnternet Explorer Olası durumlarda, imzalayanın arıtılması mümkün değilse yıkama öncesinde işlem yapılmalıdır. Benzersizlik içinsigner.free() dosyasının temizlenmesi önerilir. Bu işlem, kodu birleştirmek için tüm tarayıcılarda gerçekleştirilebilir. İmzalayan nesnesini temizleyerek bir sertifika imzalama örneği:

İşlev işareti(sertifika, bilgi) ( function başarıCms(imza) ( warning(imza); ) cert.start_signing(false, 3) .then(function(signer) (signer.add_data_in_base64("MTIzNDU2") .then(function() ( var data =signer.finish(); var free =signer.free(); return data; ), e).then(successCms, e); ), e);

Büyük belirsizlik dosyasına abonelik

Function readFileByChunk(file, cbToRead, cbToFinish) ( var fileSize = file.size; var chunkSize = 1024 * 1024; // bayt var offset = 0; var chunkReaderBlock = null; var self = this; var var if (evt.target. error == null) ( cbToRead(evt.target.result, offset, fileSize); offset += evt.target.result.byteLength; ) else ( console.error("Okuma hatası: " + evt .target.error); showError("Dosya okuma hedefi: " + evt.target.error); return; ) if (offset >= fileSize) , dosya); ) chunkReaderBlock = function(_offset, _chunkSize, _file) ( var r = new FileReader(); if (_file.slice) ( var blob = _file.slice(_offset, _chunkSize + _offset); ) else if (_ .webkitSlice) ( var blob = _file.webkitSlice(_offset, _chunkSize + _offset); ) else if (_file.mozSlice) ( var blob = _file.mozSlice(_offset, _chunkSize + _offset); ) r.onload readAsArrayBuffer(blo b); ) // okumaya başlamak ilk blok chunkReaderBlock(offset, chunkSize, file); )

Aboneliğin parçalarının yerel olarak derlendiğini hatırlarsanız, seçilen veri dosyasını ve imzayı sunucuya daha fazla aktarmak için aynı mantığı web sayfasında da uygulamak gerekir.

Eklenti yükleme kuralları CryptoPro CSP V Mozilla Firefox Tarayıcı sürümüne (52 veya üstü veya daha eski) bağlı olarak değişirler.

Mozilla Firefox sürümleri 52'den düşük

Mozilla Firefox'ta belgeleri imzalamak için:

  • Viktnіt otomatik güncellemeler. Bunu yapmak için “Menü” ⇒ “Özelleştirme” ⇒ “Eklemeler” ⇒ “Güncelleme” (Mal. 1) seçeneğine gidin.
Pirinç. 1. Mozilla Firefox'u döndürün ve güncelleyin
  • Resmi Mozilla Firefox web sitesinden 51.0.1 sürümünü yükleyin.

CryptoPro Tarayıcı eklentisini yüklemek için oturum açmanız gerekir:

  1. Kurulum programını Crypto-Pro şirketinin www.cryptopro.ru/products/cades/plugin resmi web sitesinden indirin ve derlenen dosyayı çalıştırın.

2. CryptoPro Tarayıcı eklentisi kurulum penceresinde “Yani” butonuna tıklayın (Küçük 2-a).

Pirinç. 2-a. CryptoPro Tarayıcı eklentisini yükleme

3. Kurulumun tamamlandığını kontrol edin (Mal. 2-b).

Pirinç. 2-b. CryptoPro Tarayıcı eklentisini yükleme

4. “Tamam” butonuna tıklayın ve web tarayıcısını yeniden başlatın (Küçük 2).

Pirinç. 2 inç. CryptoPro Tarayıcı eklentisini yükleme

Önemli

CryptoPro'yu yükledikten sonraTarayıcı fiş- içindetarayıcınızın çalışmak için eklentiler yükleyip yüklemediğini kontrol etmeniz gerekir. Elektronik İmza KriptoPro EDS Tarayıcı tarayıcılar için eklenti.

5. Tarayıcıyı açın, “Tarayıcı Menüsü” tuşuna basın, “Eklentiler” bölümünü seçin (Küçük 3).

Pirinç. 3. Tarayıcı menüsü

6. "Eklentiler" sekmesine gidin. Açılan menüden “CryptoPro CAdES NPAPI Tarayıcı Eklentisi” eklentisinin karşısında “Önce Aç” seçeneğini seçin (Küçük 4).


Pirinç. 4. Ek özelliklerin yönetimi

7. Tarayıcıyı yeniden başlatın.

Mozilla Firefox sürüm 52 ve üzeri

CryptoPro Tarayıcı eklentisini yüklemek için şu adrese gidin:

  1. www.cryptopro.ru/products/cades/plugin adresine gidin ve ardından “tarayıcı uzantısı”nı seçin (Mal. 5).


Pirinç. 5. CryptoPro web sitesi

2. “İzin Ver”e basın (Mal. 6).


Pirinç. 6. İsteğe izin verildi

3. “Ekle”ye basın (Mal. 7).

Bazı sitelerde sertifikalar ve haklarla ilgili bilgi alabilirsiniz. elektronik anahtarlar ve en baştan virishuvat yapmak gerekiyor farklı problemler Böylece her şey talep edilir. Bu makalede, istek olması ve nesnelerin oluşturulmaması durumunda CAdES eklentisinin temizlenmesi hakkında bilgiler bulunmaktadır.

Eklentiyle ilgili büyük sorun

O halde, merhamet yerinden geldiği için CAdES eklentisinin kendisi bir cazibedir. Artık robotunuza saygı duyan sistemdir. Sorun, Firefox'un sürüm 51'e kadar olan eski sürümlerinde ortaya çıkıyor (yeni eklentiler çalışmıyor). Bu makale elektronik olarak alınmış bir kıç gibidir Maidanchik ticareti ve sorunu çözmenin üç yolu vardır.

Yöntem 1: Akış sitesi için eklentiyi etkinleştirin

Akış siteleri için eklentinin yükseltilmesi, tarayıcının özel amaçlarla ve kendi koruması için kullanılması durumunda güvenlik standartlarına göre haklı çıkar. farklı taraflar. Ayrıca ofise elektronik anahtarlarla birden fazla giriş yapmanız gerekiyorsa.

Yöntem 2: Eklentiyi tüm siteler için devre dışı bırakın

Gıda güvenliği daha da çalkantılı çünkü... Bilgisayar çeşitli sitelerde çalışacak şekilde etkinleştirilmiştir, tüm siteler için CAdES eklentisini yükleyebilirsiniz. Bu, sayfayı ziyaret ettikten hemen sonra yapılmalıdır. Eklentiyi etkinleştirmek için koyu gri kareyi bulamazsanız bu soruna yardımcı olabilirsiniz.

Yöntem 3: Başka bir tarayıcı kullanma

Açıklanmayan nedenlerden dolayı CAdES eklentisi hâlâ kullanılabilir. Hatayı almanın başka bir yolu da başka bir tarayıcı kullanmaktır. Çoğu tarayıcı Chromium motorunu temel alır, benzerdir, örneğe bakalım Google Chrome.


Visnovok

Görünüşe göre sorunu çözmenin birkaç yolu var yanlış iş Eklenti. Çevrenize bağlı olarak kendinize en uygun olanı seçebilirsiniz.

) "Ürünler" bölümünde -> "CryptoPro EDS Tarayıcı eklentisi"

İndirdiğiniz dosyayı çalıştırdığınızda sistem sizden sistem yöneticisine hak atamanızı isteyecektir. Yönetici hakları olmadan kurulum mümkün değildir.

Kurulumdan sonra tarayıcınızı yeniden başlatmalısınız! Bazen (Chrome kullanıyorsanız) sistemi yeniden başlatmanız gerekebilir çünkü... Tüm pencereleri kapattığınızda Chrome, tarayıcıyı bir daha asla RAM'den kaldırmaz.

FireFox sürüm 52.0 ve daha yeni sürümler için ek kurulum

Eklentiyi kurmayı unutmayın

Sürüm 52'den itibaren FireFox eklentisini kullanmak için eklentinin en son sürümünü (2.0.12888'den düşük olmayan) ve FireFox için özel bir uzantıyı yüklemelisiniz.

Uzantıyı yüklemek için FireFox'unuzdaki talimatlara gidin. Geçişten sonra, FireFox için uzantıyı yüklemeniz istenecektir; Yükle'yi tıklatarak yüklemeyi onaylamanız gerekir.

52.0'a kadar FireFox sürümleri için ek kurulum, FireFox ESR (Not: Attraction eklentisi, aksi takdirde nesneler oluşturulmayacaktır)

Kurulduktan sonra lansmana ancak müşteri tarafından onaylandıktan sonra izin verilir. Superbuds'ın başlatılmasına izin vermek yalnızca bir yayın sitesi için veya yine tüm siteler için mümkündür

Seçenek 1: akış sitesi için vikoristannya nadbudovy tilki iznini ayarlama (https://www.site)

Eğer af varsa: Cazibe eklentisi, ancak nesneler oluşturulmuyor adres satırına değer katın - bir nadbudov simgesi görünecektir:

Bu simgeye tıklayın; sizden nabudova'yı başlatmanız istenecek ve bir dahaki sefere siteniz için nabudova'yı başlatmayı unutmayın.

Seçenek 2: vikoristannya nabudova'nın izninin tüm siteler için ayarlanması

Kurulum sayfasını açın FireFox eklentileri

Eklentiler listesinde CryptoPro CAdES NPAPI Tarayıcı Eklentisini bulun ve başlangıç ​​modunu "Önce etkinleştir" olarak değiştirin

Ek ayarlamalar Opera için

Yüklemek için arama seçeneğinin bulunduğu sayfayı açın:

"CryptoPro" arama terimini girin - "CAdES Tarayıcı Eklentisi için CryptoPro Uzantısı" uzantısı bulundu. Yüklemek için "Opera'ya Ekle"ye tıklayın.

Şunun için ek ayarlamalar Yandex tarayıcısı

Yandex tarayıcısı için Opera ile çıkış yapmaya benzer bir prosedürle çıkış yapmanız gerekir.

Google Chrome için ek parametreler: ayrı bina yüklü eklenti

Eklenti başarıyla yüklendiyse Chrome'u başlattığınızda eklentiyi başlatmanızı isteyen bir onay mesajı göreceksiniz.

Kimin diyaloğunun genişlemesine izin verilmesi gerekiyor?

Verilerin programlı olarak başlatılması önemlidir, bu nedenle programın ilk adımlarını belirleriz - nitelikler, gerekli dosyalar ve veriler, veritabanına bağlanma vb.

WordPress'in sabit bir başlatma prosedürü vardır. Sayfanın yaşam döngüsünü uygularken WordPress platformu daha önce tartıştığımız birçok etkinliği başlatır. Sistem, programları temel işlevlerini kurmadan önce başlatmak için kullanılan bir dizi başlatma kancasına sahiptir.

Geliştiriciler ve tasarımcılar için anlaşılır programlar oluşturmak amacıyla kancaların nasıl kurulacağını anlamak önemlidir. yemeğin kısımları vikoristana başlatma kancaları.

Bu makale, WordPress'te başlatma kancalarının önemini ortaya çıkaracak ve ayrıca bunların çeşitli durumlarda nasıl kullanılacağını da gösterecektir.

Başlatma kancalarıyla tanışın

WordPress, eklenti ve tema geliştirmede kullanılabilecek çok çeşitli kancalar sunar.

Tipik bir sayfa düzeninde tüm kancalar sıralanır. Tüm kancalar şu tarihten sonra sonlandırılır: temel ek WordPress genişlemesini tamamladı.

Bu nedenle, başlatma kancaları esas olarak, tahmin edebileceğiniz gibi, eklentilerde ve temalarda çalışma sürecini başlatmak için kullanılır. Mevcut WordPress başlangıç ​​kancalarına görünüm sırasına göre bir göz atalım:

  • Init, WordPress işini bitirdikten sonra ve herhangi bir başlık aktarılmadan önce çalışır. Bu kanca, işlemi başlatmak için eklentiler tarafından değiştirilir.
  • widgets_init, widget'ları kenar çubuğundaki programlara kaydetmek için kullanılır. Register_widget işlevi bu kancanın içine sarılmıştır.
  • Admin_init, kullanıcının WordPress yönetici paneline erişimi reddetmesinden sonraki ilk eylem olarak görüntülenir. Genel olarak yönetici alanına özel ayarları başlatmak için ayarları kontrol etmeniz gerekir.

Bu üç kancaya ek olarak, WordPress'te admin_bar_init adında, yönetici çubuğu başlatıldıktan sonra çağrılan başka bir kanca da vardır. WordPress Kodeksi bu kancanın açıklamasını içermiyor; yalnızca az sayıda eklenti kullanılıyor.

Canlandırabilirsin yeni süreç Vykonannya WordPress ve kodeks'te kancalar kullanıyor.

WordPress aynı sırayla (kodda açıklandığı gibi) bir dış görünüm kancası sunar. Cilt semptomlarının ortaya çıkma sırasına bakmak da önemlidir. Farkı anlamak için bu durumlara bakalım.

Başlatma kancasının ortasında admin_init anlamına gelir

İhtiyaç duyarsak WordPress hook’larını diğer hook’ların içerisinde tanımlayabiliriz. Tipik bir girişte init kancası admin_init kancasından önce yerleştirilir. Admin_init'i init kancasının ortasına yerleştirerek bunu göstermeye çalışalım:

Add_action("init", "test_init"); function test_init())( add_action("admin_init", "test_admin_init"); ) function test_admin_init() ( echo "Yönetici Başlatma İç Başlatma"; )

Bu kodu yazdıktan sonra echo operatörünü kullanarak adımları kaldırıyoruz.

admin_init kancasının ortasındaki init anlamı

Kod ve scripte bakalım, eğer önceki kanca daha sonra gelen kancanın değerlerine ardışık olarak sahipse.

Add_action("admin_init", "test_admin_init"); function test_admin_init() ( add_action("init", "test_init"); ) function test_init() ( echo "Init Inside Admin Init"; )

Bu durumda, herhangi bir önemi ortadan kaldırmayız - varsaydığımız gibi - init kancasının parçaları admin_init'ten sonra değil, admin_init'ten önce eklenir.

Gördüğünüz gibi başarılı eklentiler oluşturmak için kanca yükleme prosedürünü anlamak önemlidir. Görünme sırası tüm WordPress kancaları için önemlidir.

init ve admin_init kancalarını takip edebiliriz

Tüm başlatma kancaları arasında init ve admin_init'e dikkat etmek önemlidir çünkü bu iki kanca birçok eklentide sıklıkla kullanılır. Başlatma kancalarını çözmek bu iki kancayla çok daha kolaydır.

Ayrıca init ve admin_init kancalarının işlevselliğinden de etkilendik.

Başlangıç ​​kancası, bir WordPress sitesinin hem ön ucu hem de arka ucu için her uygulamaya eklenir.

admin_init kancası, admin bölümü başlatma işlemini tamamladıktan sonra sonlandırılır. Böylece, bu kanca tüm sorgular için herhangi bir yönetici sayfasına bağlanır. Suçlular mevcut kancanın çıkarlarına hizmet etmek için kayıt altına alındı.

Occice Ofisi Tsі Khuki, derinin derisinde acımasızca ahlaksızlaştırılmış, işleyiş konusundaki düşünce rütbesini koruyor ve Khukiv'in çikleri ve sinemanın soyundan gelenlerin siteyi yönlendirmesi daha muhtemel.

Yak vikorystuvati başlangıç ​​kancaları

Çoğu zaman, başlatma kancaları diğer WordPress eklentilerinin çoğu tarafından kullanılır ve hatta önemli olanlar bile onların değişiklik sürecini takip eder.

WordPress, kendilerinin suçlu olduğu ve suçlanmayanların bağlantı kurmasını gerektirmez; Bu nedenle yetiştiriciler, kendi paralarıyla üretkenlikte önemli bir düşüşe yol açan küçük hoşgörülere kapılabilirler. Bu bölümde size init ve admin_init kancalarını etkili bir şekilde nasıl kullanacağınızı göstereceğiz.

Kötü niyetli başlatma kancalarının en iyi uygulamalarına bir göz atalım:

başlangıç ​​kancası

  • Yeni gönderi türlerini kaydetme – WordPress geliştiricileri, yeni gönderi türlerini kaydetmek için init kancasını kullanmanızı önerir.
  • Yapılandırmanın başlatılması ve eklentinin kurulması – eklentinin ayarları ve yapılandırmasının dış görünüm uygulaması için ayarlanması gerekir ve bunları orta kancaya yerleştirmek de iyi bir uygulamadır.
  • Muhabirin gönderilen verilerine erişim (Vikorist $_GET ve $_POST) - herhangi bir vikorystuvannya işlemi yapmadan veri aktarımını gerçekleştirebiliriz, bu durumda cilt uygulaması için Vikorist'i garanti eden Vikorist başlangıç ​​​​kancasının kullanılması önerilir. .
  • Yeni yeniden yazma kuralları ekleme - yeni yeniden yazma kuralları ayarlayabiliriz, vikoryst hook init, ancak bıraktıktan sonra çalışmazlar.
  • Ek eylemler ekleme veya seçme – eklentiler, işlevselliği genişletmek için birçok ek eylem sağlar. Yeni şeyler eklemek veya eskileri çıkarmak zorunda kalırsak bu durum sona erebilir. Bu gibi durumlarda tüm detayları init hook'a koymak önemlidir.
  • Bir eklentiye metin alanı eklemek – WordPress çok sayıda kelimeyi destekler, böylece satırları değiştirmek için bir dosya ekleyebiliriz. Bu, başlatma kancasıyla çalışacaktır.

admin_init kancası

  • Erişim Kontrolü – Müşterinin belirli bir dizi özellik ve işlevselliğe erişmesine izin vermeden önce, sisteme erişen kullanıcıların erişim haklarını gözden geçirmek önemlidir. admin_init – admin alanına girilecek ilk eylem, erişim için kullanabiliriz.
  • Yeni parametreler ekleme – bu kancayı orijinal WordPress parametreler alanından yeni sayfalar veya parametreler eklemek için kullanabiliriz.

Başkaları da var Olası seçenekler Ancak bu kancaların geçerliliği bazı durumlarda güçlü kancalar olduğundan vikory başlatma kancalarını kullanmaya gerek yoktur.

Vikoristan kancalarının ve başlatmanın olumsuz tavizleri

Karşılaştığımız en yaygın durum, geliştiricilerin başlatma kancalarının doğruluğunu yanlış anlamalarıdır. Kancaların yanlış atanması ciddi üretkenlik sorunlarına neden olabilir.

Sorunun önemli kısımlarına ve onu aşmanın yollarına bir göz atalım:

  • Yeniden yazma kurallarının güncellenmesi, tüm yeniden yazma kurallarının güncellendiği ve yeni kuralların eklenmesi veya eski kuralların kaldırılması için yeniden sıralandığı, kaynak yoğun bir işlemdir. Birçok satıcı, başlangıç ​​eylemlerinin ortasında yeniden yazma kurallarını güncelliyor. Bu, cilt üretkenliğinin gereksiz israfına yol açar. Yolu belirlemek bizim hatamız manuel güncelleme ek düğmelerin yeniden yazılmasına veya örneğin eklenti ayarlarının kaydedilmesi gibi nadir eylemlerin kurallarının güncellenmesine yönelik kurallar.
  • Veritabanına erişim - çeşitli işlevlerin uygulanması için veritabanına erişim gereklidir, ancak aynı zamanda, parçaları Yıkandığında sona erecek olan başlatma kancalarının ortasında veritabanına yapılan gereksiz işlemlerden de kaçınmak önemlidir. Bunu başarmak için ideal çözüm, veritabanı kancalarını önemli bir üretkenlik kaybı olmadan işlevsellik sağlayan kancalara bağlamak olacaktır.
  • Çeşitli güncelleme prosedürleri – eklentiler, yeni sürümlerle güncel olduklarından emin olmak için güncelleme prosedürlerini içermelidir. Satıcılardan, güncelleme işlemine başlamadan önce eklenti sürümünü ve diğer parametreleri kontrol etmek için başlatma kancalarını kullanmalarını isteyin. Kullanıcıları, cilt sorunlarını otomatik olarak kontrol etmek için eklentiyi ekrana yüklemeye teşvik edebiliriz.
  • Başlatma kancalarının kullanımı, şarkı söyleme işlevselliği için kancaların yerini alır; bu, birçok kullanıcının beklediği en geniş azalma pahasına olur. WordPress, benzersiz işlevlerle ilişkili çok çeşitli kancalara sahiptir. Çakışmaları önlemek ve genişletilebilir kod üretmek için işlevsel kancaların kullanılması önemlidir. Belirli kancalar yerine init ve admin_init gibi kancalar kullanılabilir, bu nedenle birçok geliştirici, sahip oldukları yıkıcı etkinin farkına varmadan bunlara ulaşmaya çalışacaktır.

Önerilen kancalar yerine init ve admin_init kancalarını kullanan gelişmiş komut dosyası senaryolarına örnekler:

  • admin_menu – add_menu_page ek işlevi için menü sayfaları ekleyebiliriz. Yönetici menüsünde sayfalar oluşturmak için admin_menu kancasının kullanılması önerilir. Ancak birçok geliştirici admin_init kancasını kullanır ve bunların çoğu admin_menu kancasından sonra gelir.
  • wp_enqueue_scripts – stil ve komut dosyası ekleme önerileri wp_enqueue_scripts vikory kancasında bulunabilir. Ancak birçok geliştirici, komut dosyalarını ve stilleri sıraya koymak için init kancasının ortasında wp_enqueue_script kullanır.

Victory geliştiricilerinin şarkı söyleme işlevi için özel bir kanca yerine özel bir başlangıç ​​​​kancası kullandığı birçok benzer durum vardır ve mümkünse bu tür bir yaklaşımdan kaçınılmalıdır.

Visnovok

WordPress başlatma kancaları, eklentilerin ve temaların geliştirilmesinde hayati bir rol oynar. Çoğu geliştirici, üretkenliği engelleyen hack'leri hatalı bir şekilde kullanır. Bu istatistiği tartıştık bu doğru, vikoristannya birçok kancanın yanı sıra zagalni pomilki Bunlar onları atlamanın koşulları ve yollarıdır.

Artık aynı teknikleri eklentilerde kullanılan kancalara indirgeyebiliriz. Eklentileri genişletilebilir hale getirmek için çeşitli güç kancaları kullanan birçok eklenti satıcısı var. Bu tür eklentiler için, geliştiricilerin belirtilen başlatma kancasını kancaya "asmasına" olanak tanımak için eklentiye özel başlatma kancaları tanımlayabiliriz.