Wednesday, November 30, 2011

Java UI in Eclipse

"Develop Java graphical user interfaces in minutes for Swing, SWT, RCP, XWT and GWT with WindowBuilder Pro’s WYSIWYG, drag-and-drop interface. Use wizards, editors and intelligent layout assist to automatically generate clean Java code, with the visual design and source always in sync." Тут!

Sunday, November 27, 2011

Незапускається Update Manager

Якщо ви добавили якийсь карявий репозиторій через консольку чи щось в тому дусі, що призвело до відмови в запуску Update Manager. То не потрібно падати в відчай, а просто з допомогою пошуку і ключового слова "sources.list" все виправити))
Можливо вам знадобиться цей лінк!

Thursday, November 24, 2011

Корисні кусочки Jquery

$.each( { name: "John", lang: "JS" }, function(i, n){
 alert( "Name: " + i + ", Value: " + n );
});



Результат:
Name: name, Value: John
Name: lang, Value: JS

... was not found in haystack

Повідомлення яке ви бачите в заголовку може з'явитись в тому випадку, якщо ви використовуєте мульті-елементи форми Zend  і вони передають масиви даних. Збудником помилки є валідатор масивів який включений по замовчуванню, виключити його можна ось так: 
$your_form_element->setRegisterInArrayValidator(false);

Замітка по ajax і jquery

Так приблизно виглядає запит ajax для спілкування js із сервером на якому у вас працює скоріш за все php.
 $.ajax({
      url: "необхідні урл",
      data: (необхідні дані),
      success: function(data){
                   обробляємо успішну відповідь
      },
      error: function(msg){
                  обробляємо помилку що виникла
      },
      dataType: "необхідний тип даних",
      type: "МЕТОД ПЕРЕДАЧІ",
});


По заголовку ($.ajax ) зрозуміло що використовується jquery. Про сам ajax і про той же jquery і про них разом можна багато чого почитати користуючись гуглом).
Я хотів тільки привернути увагу до обробки відповідей від сервера, а саме якщо ви використовуєте передачу даних в форматі JSON який вказується в dataType, то не потрібно сподіватись що дані повернуться в якомусь іншому форматі). Записати дані форми найпростіше так: $("#form_name").serialize(). Отримані дані поміщаються в змінну data що передається в функцію в якості аргумента, щоб побачити ці дані вам не вистачить написати alert(data) так як це виведе тільки [object Object] чи щось в тому дусі, отже пишемо alert(JSON.stringify(data)) що і виведе нам всю структуру json об'єкта, що прийшов із сервера. При невдалому опрацюванні запиту буде викликатись функція з error, а в якості аргумента буде передаватись відповідь, та вона на відміну від попереднього випадку не змінюється від типу передачі, і дані з неї можна отримати написавши так: alert(msg.responseText).
І того маємо наступне:
$.ajax({
      url: "mysite.com/mypage",
      data: ($("#form_name").serialize()),
      success: function(data){
                   alert(JSON.stringify(data));
      },
      error: function(msg){
                  alert(msg.responseText);
      },
      dataType: "JSON",
      type: "POST",
});


А ось лінк по даній темі): api.jquery.com/jQuery.ajax

Friday, November 4, 2011

Працюємо з core в magento і залишаємо його буз змін

Із серії тих же заміток для початківців:

Напевно ви вже знаєте що вносити будь які зміни в ядро magento не є хорошим тоном і взагалі неправильним варіантом користування magento оскільки вона передбачає модульність і надає всі можливості для того щоб в ядро не вносити взагалі ніяких поправок.

Для такого типу файлів як блоки все дуже просто, а саме потрібно продублювати їєрархію папок до до тих файлів які ви хочете поміняти або підкорегувати в LOCAL, ну і не забути розмістити в вашій локалній ієрархії самі файли які ви вже змінили, але якщо ви бажаєте щоб і блоки і модулі були не просто продубльовані в локал, а містились в каталозі вашого модуля то потрібно дещо також змінити файл конфігурації і розмістити файли в відповідному місці, але про це згодом тому що контролери мене більше цікавлять на даний момент))

Отже що до такого типу файлів як контролери то тут трохи складніше, оскільки просте дублювання в локал навіть і не розглядається, для мене підійшов наступний метод розширення контролера,  в моєму випадку це був контролера ядра CustomControler, який можна знайти в контролерах Adminhtml.

Thursday, November 3, 2011

Нюанси Magento для початківців (Attribute)

Це перша і сподіваюсь не остання із із серії записок про Magento для початківців:

Припустимо ви добавили атрибут( розгляну на прикладі customer) і наш атрибут добавляється прекрасно в усі необхідні таблички (eav_attribute, customer_eav_attribute), але в мене постало запитання в тому як добавити даний атрибут до конкретного користувача??
я намагався вирішити питання так:


$customer = Mage::getModel('customer/customer')->load($customerId);
$customer->setMyattribute(myvalue);
$customer->save();


але дане рішення не буде ніяк впливати) якщо атрибут ще не є створеним в певній табличці (customer_entity_int, customer_entity_text і т.д.) тобто його ще не було для даного користувача і ніяких даних цей атрибут ще не зберігає. В такому випадку потрібний наступний блок:

$customer = Mage::getModel('customer/customer')->load($customerId);
$customer->setMyattribute(myvalue);
$customer->getResource()->saveAttribute($customer, 'myattribute');


ось цей запис додасть ваш атрибут у відповідну табличку в залежності від типу атрибуту( якщо інт то в табличку атрибутів інт і т.д.)
Після того як наш атрибут вже є доступним, то його можна змінювати і першим методом!

 
 
Blogger Templates