Extended Fields


Workcube üzerinde farklı özelleştirme seçenekleri vardır. Tanım ve Ayar özelleştirmeleri içerisinde yer alan page designer bunlardan biridir. Page designer ile ekranda yer alan tüm elementlerin (form elemanları input, selectbox vb.) yerleri değiştirilebilir, kaldırılabilir, zorunlu alan olarak düzenlenebilir. Bunun yanı sıra page designer içerisinde sayfaya ekstra yeni alanlar da eklenebilir. Extended Fields, Page Designer üzerinden formlara sayfa içerisinde ekstra yeni alanlar eklenmesini sağlayan araçtır.


Extended Fields Tasarlama

Yol: Kontrol Paneli > System > Page Designer



Page designer ekranında sol tarafta tasarım yapılacak Extended Fields ve altında elementler bulunur. Bunlar;

  • Text Input: Metin veya sayı verisi girilebilen alan.
  • Hidden Input: Kullanıcının arayüzde görmediği form verilerini kod tarafında taşıyan gizli bir değer. Örneğin; id değerleri
  • Selectbox: Belirli bir listeden seçenek seçildiği açılır liste. Selectbox ile seçeceğimiz verilerin listelenmesini sağlanır.
  • Textarea: Çok satırlı metin girebileceği metin alanı.
  • Radio Button: Kullanıcıya seçenek sunup yalnızca bir seçeneğin işaretlenebildiği düğme şeklindeki alanlar.
  • Checkbox: Kullanıcıya seçenek sunup bir seçeneğin işaretlenmesi veya işaretlenmemesi durumunda kullanılır.

Öncelikle yukarıdaki elementler içerisinden sürükle bırak yöntemi ile istenilen kolonlara alanlar taşınır.



İstenilen alan kolona eklendikten sonra sağ tarafta bulunan ayarlar (çark) ikonuna tıklanır. Eklenmiş olan elementin nasıl ve hangi doğrultuda çalışacağı belirlenir. Alanda yer alan seçim kriterleri; 

  • Label: Eklenilen alanın isimlendirilmesi. Burada sözlükten kelime seçilmesi zorunludur. Eğer sözlükte istenilen kelime yok ise sözlüğe eklendikten sonra seçilebilir.
  • Required: Zorunlu alan haline getirir.
  • Data Type: Text input veya hidden input seçilmesi durumunda açılır. 
  • Numeric: Sayısal değer girilir. Bu alan da girilecek olan maksimum ve minimum değer verilebilir.
  • Alphanumeric: Hem sayısal değer hem de harf olarak değer girilir.
  • Date: Tarih olarak değer girilmesi sağlanır.
  • E-mail: e-mail değeri girilir.
  • Phone: Telefon numarası girilmesi sağlanır.
  • DB Field: Arama işlemi sonucunda databaseden hangi alanların getirileceği belirlenir.
  • Option Settings: Checkbox veya radio button seçilmesi durumunda açılır. En tane seçenek eklenebilir. Her seçenek için ayrı bir numara ve text eklenmelidir.



Bütün ayarlamalar tamamlandıktan sonra "Save" butonu ile kaydedilir. Kaydedilmeyen düzenlemeler geçerli olmayacaktır.

Yapılan düzenlemeler istenmediği durumda "Cancel" ile iptal edilebilir. Bu doğrultuda değişiklikler eklenmeyecektir ya da güncellenmeyecektir.

"Remove" denildiği takdirde hem ayarlamalar kaydolmayacak hem de sürükle bırak yöntemi ile eklediğin alan direkt olarak kolondan kalkacaktır.



Dikkat: Save ile ilgili ayarlar kaydedildikten sonra "Page Designer" tarafında da “Kaydet” butonunun tıklanması unutulmamalıdır. Aksi halde "Extended Fields" ile yapılan değişiklikler geçerli olmayacaktır.

Tavsiye: Page designer ile ilgili detaylı bilgi edinmek için "Ekran Düzenlemeleri" dokümanımızı inceleyebilirsiniz.


Geliştiricilere Notlar

Aşağıdaki durumlar Extended Fields özelliğinin çalışmasına engel oluşturabilmektedir. Extended Fields özelliğinin çalışmadığı tespit edildiğinde aşağıdaki durumlar kontrol edilmeli ve müdahale edilmelidir.

1. Wo - Controller  farklılaşmaları

Page designer sayfa ayarları controller ve event değerlerine göre tutulur. Exdended Fields özelliklerini de page designer kayıtlarını tutan tablo ile ilişkilidir.

Bazı formların actionları mevcut fuseactiondan farklı olduğundan controller pathler de farklı olur. Bu gibi durumlarda sayfanın page designer ayarlarını yapılandırsanız da post işlemi farklı bir fuseactiona yapılacağından Extended Fields çalışmayacaktır.

Örn:

Satınalma talebi fuseaction: purchase.list_purchasedemand (controller var), form action: purchase.emptypopup_add_internaldemand (controller yok)

Bu durumda form ekranında page designer üzerinden extended field ekleyip kaydedildiğinde forma eklenen alan gelir fakat action fuseaction farklı olduğundan query tarafını fuseaction ya da controller değerleriyle yakalayıp bağlayamaz.

Bu gibi sayfaların controller ile tek bir fuseactionda çalışması ya da datagate alt yapısına çevrilmesi gerekir ki extended fields özelliğinden yararlanılabilsin.

Aynı şekilde bu sayfalar yukarıdaki sebepten ötürü extensions özelliklerinden de yararlanamamaktadır.

2. Action sayfadaki manuel yönlendirme

Post işlemleri sonrasında action dosyada manuel olarak cflocation ya da script ile url yönlendirmeleri yapılarak form_converter ya da basket_converter dosyalarının action kod çalıştıktan sonrasındaki kısımları egale edilmiş. Bu sebepten ötürü cf_extendedfields customtagi de çalışmamaktadır. 

Bu durumla karşılaşıldığında action dosyalardaki manuel yönlendirmeler kaldırılmalı ve controller dosyasında next_event tanımlanarak attributes.action_id parametresine identity değeri atanmalıdır.

Aynı şekilde bu sayfalar yukarıdaki sebepten ötürü extensions özelliklerinden de yararlanamamaktadır.

3. action_id atama problemi

Formların action dosyalarında ekleme işlemi sonrasında oluşun identityid değeri attributes.action_id parametresine atanmadığından kayıt bazlı ilişki kurularak tabloya veri yazılamaz. 

Bu durumla karşılaşıldığında ekleme dosyalarında ekleme işlemi tamamlandıktan sonra identity değerini en alt satırda attributes.action_id parametresine atamak gerekir. Güncelleme işlemlerinde ise controllerda ilgili eventin structında identity parametresi tanımlanarak kaydın id değeri verilmeli ya da update action dosyasında eklemede yapıldığı gibi attributes.action_id değeri atanmalıdır.

Geri Bildirim

Bu içeriği faydalı buldunuz mu?
İlişkili İçerikler