SAVE 70% ON ALL OF OUR APPS
<< HERE >>
Çevrimiçi mağaza yönetim panelindeki her etkileşim genellikle bir tıklama ile başlar. Bu etkileşimlerden en önemlilerinden biri de 'Kaydet' düğmesidir. Basit gibi görünen bu öğe, arka planda karmaşık işlevler gerçekleştirir. Magento 2'de 'Kaydet' düğmesine tıkladığınızda neler olduğunu hiç merak ettiniz mi? Büyü tamamen koddadır.
Bu blog yazısında Magento 2 arka uç formlarında 'Kaydet' düğmesinin iç işleyişine dalmaya karar verdik. Yapılandırmasını, altta yatan süreçleri ve verilerinizi nasıl etkili bir şekilde kaydettiğine bakacağız. Bu kılavuzun sonunda Magento 2'deki bu kritik bileşeni kapsamlı bir şekilde anlamış olacaksınız.
Magento 2'deki 'Kaydet' düğmesi sadece bir kolaylık değil, gerekliliktir. Bir yönetici Magento arka uçta veri girdiğinde veya değiştirdiğinde, 'Kaydet' düğmesi bu değişikliklerin veritabanında doğru bir şekilde depolanmasını sağlar. Ürün açıklamalarını, müşteri bilgilerini veya yapılandırma ayarlarını güncelleseniz de, 'Kaydet' düğmesi e-ticaret mağazanızın bütünlüğünü ve işlevselliğini korumak için önemlidir.
Magento 2'nin arka uç formları UI bileşenleri tarafından yönlendirilir ve form oluşturma konusunda esnek ve modüler bir yaklaşım sunmak üzere özel olarak tasarlanmıştır. 'Kaydet' düğmesi de böyle bir UI bileşenidir. İşlevselliği, modülünüzün view/adminhtml/ui_component dizininde bulunan XML dosyalarında tanımlanır. İşte düğmenin yapılandırmasına basit bir bakış:
view/adminhtml/ui_component
<item name="buttons" xsi:type="array"> <item name="save" xsi:type="string">Magento_Ui/js/form/button</item> </item>
Bu XML parçası, Magento_Ui'ye bağımlılığı, özellikle düğme davranışını yöneten form/button adlı bir JavaScript modülüne işaret eder.
Magento_Ui
form/button
Magento 2, UI bileşenlerin dinamik yeteneklerini artırmak için JavaScript'i ve sıklıkla Knockout.js ile birlikte kullanır. 'Kaydet' düğmesi için, button.js sınıfı düğmenin eylemlerini belirli olaylara bağlar ve kullanıcı tıklamalarının düzgün bir şekilde kaydedilmesini ve işlenmesini sağlar.
button.js
define([ 'uiComponent', 'ko' ], function (Component, ko) { 'use strict'; return Component.extend({ onSave: function () { // Kaydetme işlemini başlatmak için kod } }); });
'Kaydet' düğmesine tıklandığında, çoğunlukla Magento 2'deki denetleyici (controller) sınıflarının yönlendirdiği bir dizi işlem tetiklenir.
İlk temas noktası ön denetleyicidir (front controller) ve HTTP isteklerini almakla görevlidir. Ön denetleyici, önceden tanımlanmış rotalara dayanarak isteği ilgili denetleyiciye yönlendirir.
<router id="admin"> <route id="mymodule" frontName="mymodule"> <module name="Vendor_MyModule" before="Magento_Backend"/> </route> </router>
Eylem denetleyicisi daha sonra isteği işler, doğrulamalar yapar, veriyi kaydeder ve gerekli yanıtı oluşturur. Tipik bir kaydetme eylemi şu şekilde görünebilir:
class Save extends \Magento\Backend\App\Action { public function execute() { $data = $this->getRequest()->getPostValue(); // Ek işleme ve veri doğrulama try { $model = $this->modelFactory->create(); $model->setData($data); $model->save(); $this->messageManager->addSuccessMessage(__('Kaydetme başarılı')); } catch (\Exception $e) { $this->messageManager->addErrorMessage(__('Kaydetme başarısız')); } $this->_redirect('*/*/'); } }
'Kaydet' düğmesi etkinleştirildiğinde, formdan gelen veriler toplanır ve doğrulanır. Bunun temel olarak Knockout.js aracılığıyla gerçekleştirilir ve form alanlarını ilgili veri modeline bağlar.
Doğrulandıktan sonra, veri önceki bölümde gösterildiği gibi işlem denetleyiciye iletilir. Denetleyici veriyi işler, POST parametrelerinden Magento'nun ORM (Nesne-İlişkisel Eşleme) tarafından depolanabilen bir forma dönüştürmektedir.
En sonunda modelin save() yöntemi veriyi veritabanına kalıcı hale getirir. Magento 2, verilerin bağlama bağlı veritabanına doğru bir şekilde eklenmesini, güncellenmesini veya silinmesini sağlamak için kendi varlık-yönetici-tarzı ORM'ini kullanır.
save()
Magento 2'nin bir gücü, 'Kaydet' düğmesinin işlevselliğini kolayca özelleştirebilmenizdir. Bu, düğme sorumlu olan JavaScript bileşenini genişleterek veya geçersiz kılarak yapılabilir. Örneğin, veriyi kaydetmeden önce harici bir hizmete gönderme gibi bir adım eklemek isteyebilirsiniz.
Özel bir doğrulayıcı eklemek için, 'Kaydet' düğmesine bağlı JavaScript bileşenini değiştirebilirsiniz:
define([ 'Magento_Ui/js/form/button', 'jquery', 'mage/translate' ], function (Button, $, $t) { 'use strict'; return Button.extend({ onSave: function () { var isValid = this.customValidation(); if (isValid) { // Orijinal kaydetme mantığıyla devam edin this._super(); } else { alert($t('Doğrulama başarısız')); } }, customValidation: function () { // Doğrulama mantığını uygulayın return true; // Sadece yer tutucu } }); });
Veriyi kaydetmeden önce her zaman doğrulayın ve temizleyin. Bu, veri bütünlüğünü sağlamakla kalmaz, aynı zamanda SQL enjeksiyonu gibi potansiyel güvenlik açıklarına karşıda korur.
Kapsamlı hata işleme uygulayarak kullanıcıya bilgilendirici geri bildirim sağlayın. Magento'nun mesaj yöneticisi, kullanıcı deneyimini geliştirmek için başarı ve hata mesajlarının görüntülenmesi için kullanılabilir.
Kaydetme işleminin verimli olduğundan emin olun. Bu, veritabanı sorgularını optimize etmek ve geçerli olduğunda önbellekleme mekanizmalarını kullanmak anlamına gelir.
Magento 2 arka uç formlarındaki 'Kaydet' düğmesi, ön uç etkileşimlerini arka uç veri yönetimiyle sorunsuz bir şekilde entegre eden kritik bir bileşendir. Yapılandırmasını, altta yatan süreçlerini ve özelleştirme tekniklerini anlayarak Magento mağazanızın yönetici işlevselliğini daha iyi yönetebilir ve optimize edebilirsiniz.
Arka uç formlarınızı özelleştirmek isteyen bir geliştirici veya veri sürekliliği mekanizmalarının arkasındaki çalışmaları anlamak isteyen bir mağaza sahibi olarak, umarız bu rehber, Magento 2 'Kaydet' düğmesinin nasıl çalıştığı hakkında değerli bilgiler sağlamıştır.
'Kaydet' düğmesine tıkladığınızda, ön uç JavaScript, form verilerini yakalar ve bunları POST isteği aracılığıyla sunucuya gönderir. Sunucu tarafında eylem denetleyicisi bu verileri işler, gerekli doğrulamaları yapar ve ardından veritabanına kaydeder.
Evet, 'Kaydet' düğmesinin işlevselliğini özelleştirebilirsiniz. Bu genellikle düğme sorumlu olan JavaScript bileşenini genişleterek veya kaydetme işlemini yöneten arka uç denetleyicilerini değiştirerek yapılır.
Veriyi kaydetmeden önce hem ön uçta (JavaScript kullanarak) hem de arka planda (denetleyici sınıfları içinde) ek doğrulama adımları uygulayabilirsiniz. Doğru doğrulama, veri bütünlüğünü ve güvenliğini sağlamaya yardımcı olur.
Magento 2, mesaj yöneticisini kullanarak hata işleme mekanizmaları sağlar. Verileri işleme veya kaydetme sırasında hata oluşursa, kullanıcıya uygun hata mesajları görüntülenebilir.
Temel işlev aynı kalsa da, farklı formlar işledikleri verilere özgü ek özelleştirme veya doğrulama mantığına sahip olabilir. Bununla birlikte, Magento 2'deki çeşitli formlarda aynı uygulama kalıbı tutarlı bir şekilde devam eder.
Vedran K. is a Marketing Associate at HulkApps, brings both passion and innovation to his work. Outside of work, his passion for seeking out the newest styles in shoes reveals his flair for fashion and keen sense of trends.
Get our news and insights delivered directly to your inbox.
Your cart is currently empty.
Please share a few essential pieces of information that'll help our support members work quickly on your project
As soon as we review your idea, we'll give you an update. Please notice that any access to the product(s) or service offered by HulkApps does not count for a refund. However, should you experience problems with your order, we urge you to reach out to our dedicated support team .
Rising to serve you better, we are delighted to announce that PlanetX has been acquired by HulkApps, a Chicago-based leading Shopify agency. The combination of HulkApps Shopify services and PlanetX's strong capabilities in the eCommerce industry will lead to continued growth for both companies.
Choose your wishlist to be added
Copy wishlist link to share
Copy
We will notify you on events like Low stock, Restock, Price drop or general reminders so that you don’t miss the deal
See Product Details