Magento Forum

   
Atribute cu checkbox
 
Alexandru Exael
Jr. Member
 
Total Posts:  5
Joined:  2008-12-13
 

Salutare la toata lumea…

Am si eu o mica intrebare.... cum fac un atribut cu checkbox-uri?… acum in lista de input type nu exista checkbox…

poate aveti un tutorial ceva.... cum se face treaba asta....

Merci mult

 
Magento Community Magento Community
Magento Community
Magento Community
 
danielifrim7
Member
 
Avatar
Total Posts:  63
Joined:  2009-04-29
Bucuresti
 

Buna Alexandru,

In Magento este implementat partial atributul cu checkboxes.
Mai intai adauga un atribut `dropdown` si vezi ce a adaugat in tabelele `eav_attribute`, `eav_attribute_option` si `eav_attribute_option_value`. Valorile atributelor sunt stocate in tabelele `catalog_category_entity*`, depinde de modul - de fapt de `entity_type_id` (tabela `eav_entity_type`).

Ar trebui sa stii cate ceva despre EAV din in Magento.
Despre Eav poti sa incepi cu schema asta http://prezi.com/x-beuw_bdqoi/ , pe forum, etc.
Bineinteles o sa trebuiasca sa stii cum se face override la blocuri/model/helpere in frontend si adminhtml.

Uita-te si prin lib/Varien/Data/Form/Element/Checkboxes.php ca sa intelegi cum sunt implementate/randate atributele mai complexe.
Poti sa pornesti de la a adauga in tabela `eav_attribute` un atribut cu campul `frontend_input`=’checkboxes’(entity_type_id ar trebui sa fie cel de la dropdown-ul pe care tocmai l-ai adaugat din interfata de admin - daca de asta ei nevoie).
* Adauga otiunile tale in cele 2 tabele si
* Daca selectiile atributului sunt mai “fancy” probabil o sa ai nevoie sa iti definesti si campul `source_model`="companiamea/entity_catalog_attribute_source_atributulmeu", care este 1 din cele 4 obiecte atasate la Mage_Eav_Model_Entity_Attribute (in cazul asta Mage_Catalog_Model_Entity_Attribute). Inca ceva, in source definesti optiunile pe care le poti avea(daca iti trebuie intr-adevar).

Am facut si eu ceva similar. In principiu m-am orientat dupa atributul `region` folosit la unele module. La `region` trebuie sa elimini faptul ca s-a vrut sa se optimizeze Magento pentru ca sunt multe tari/judete.

Ce pot sa iti zic este ca pe frontend trebuie sa iti declari si un renderer (campul `frontend_input_renderer`) care este de fapt un block.
In admin ai suport finalizat numai pentru atribute `text`, `select`, `multiselect` si `datetime`. In mare clasele facute deja pentru admin sunt in app/code/core/Mage/Adminhtml/Block/Widget/; mai sunt rendere, in functie de atribut, prin Mage/Adminhtml/Model/*.
O sa mai vrei sa faci override si la Mage_Adminhtml_Block_Widget_Form->
_setFieldset(); ceea ce nu bine pentru ca este o clasa extinsa peste tot in admin, dar se poate (daca vrei sa pastrezi numele modului - catalog merge, daca nu pastrezi numele nu vei reusi sa extinzi bine).Ca alternativa ar trebui sa extinzi blocurile unde te intereseaza sa apara checkboxes(in special functia initForm()).

Acum depinde de cat de mult vrei sa te complici. Nu ai zis ce ai vrea sa implementezi exact.
La prima incercare iti recomand sa treci cat mai mult peste generalizarea din Magento.

Daca mai ai vreo intrebare specifica poti sa imi dai un mesaj privat.

Succes smile

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
    Back to top