Показаны сообщения с ярлыком help. Показать все сообщения
Показаны сообщения с ярлыком help. Показать все сообщения

вторник, 3 апреля 2012 г.

Magento: Добавление нового атрибута для кастомера

В Magento Community Edition присутствует возможность управления атрибутами продуктов. Но что если нам нужно создать атрибут для кастомера? В таком случае нам на помощь приходит mysql upgrade.

Допустим, я хочу создать атрибут "navoq_textmagic_phone", в котором будет храниться телефон кастомера для моего модуля. Пример кода:
/* @var $installer Navoq_TextMagic_Model_Resource_Setup */
$installer = $this;

$installer->startSetup();

$installer->addAttribute('customer', 'navoq_textmagic_phone', array(
    'label'    => 'Phone',
    'visible'  => true,
    'required' => false,
    'type'     => 'text',
    'input'    => 'text'
));

/** @var $eavConfig Mage_Eav_Model_Config */
$eavConfig = Mage::getSingleton('eav/config');

/** @var $attribute Mage_Customer_Model_Attribute */
$attribute = $eavConfig->getAttribute('customer', 'navoq_textmagic_phone');
$attribute->addData(array(
    'is_used_for_customer_segment' => true,
    'used_in_forms'   => array('customer_account_edit', 'adminhtml_customer'),
    'is_user_defined' => true,
    'backend_type'    => 'varchar',
    'is_system'       => false,
    'is_visible'      => true,
    'is_unique'       => false,
    'sort_order'      => 250
))->save();

$installer->endSetup();

Результатом выполнения апгрейда будет новый атрибут кастомера. Таким способом можно создавать атрибуты для разных сущностей: customer, customer_address, etc. Их полный список можно посмотреть в таблице "eav_entity_type".
Читать далее

воскресенье, 19 февраля 2012 г.

Полезные команды Git

Я начал использовать git совсем недавно и не могу назвать себя git экспертом. Но каждый день я сталкиваюсь с ситуациями и командами, описание которых, думаю, будет полезным для вас. Описание даю на английском, так как это будет понятнее.

Create and Checkout a New Branch
#branches from currently checked out directory
git checkout -b 

Checkout a Remote Branch
git checkout -b  origin/

Abort Changes of a File
git checkout -- 

Modify the Previous Commit’s Message
git commit --amend

Partial Change Checkin
git add --edit

Undo the Previous Commit
git revert HEAD^

Temporarily Stash Changes, Restore Later
# After changes have been made...
git stash

# Do some other stuff here, like switch branches, merge other changes, etc.

#Re-apply the changes
git stash pop

Delete a Remote Branch
git push origin :

Pull in the Latest from a Shared Repository
# Add a remote branch
git remote add  
 # For example:  git remote add lightfaceOfficial git://github.com/darkwing/LightFace.git

# Get changes from that branch
git fetch 

Tagging, Deleting, and Pushing Tags
# Create a Tag
git tag 

# Delete the tag
git tag -d 

# Push Tags
git push --tags

Who F’d it All Up?
git blame 

Читать далее

вторник, 31 января 2012 г.

Git: подключаем новый удаленный репозиторий

Сегодня будем учиться подключать удаленный репозиторий к уже существующему. Для чего это нужно? Есть много вариантов. Например, мне это понадобилось для выполнения git cherry-pick из бранча одного репо в бранч другого. Итак, предположим, что вы сделали git clone и у вас есть 'origin' remote репозиторий. Если все так, то команда git remote покажет на экран следующую информацию:
$ git remote
origin

Сошлось? Прекрасно. Далее добавляем новый репозиторий с именем new_repo:
$ git remote add new_repo http://git.site.com/project/new_repo

Проверяем, что он добавился:
$ git remote
origin
new_repo

Получаем изменения из новой ветки:
$ git fetch new_repo

Удаленный репозиторий подключен. Список бранчей можно просмотреть с помощью команды:
$ git branch -r

Читать далее

понедельник, 30 января 2012 г.

PhpStorm: работа с разными CVS (SVN + Git) в одном проекте

На прошлой неделе возникла необходимость работы с SVN и Git на одном проекте. По-умолчанию, PhpStorm работает только с одной CVS. Например, если вы сделали git clone, а потом внутри проекта создали папку tests и сделали туда svn checkout, то IDE будет видеть только Git. То есть, выполнить какие-либо действия (up, commit, etc.) в папке с тестами будет невозможно. Но это можно легко исправить.

1. Открываем настройки:

2. Заходим в Project Settings -> Version Control. Если у вас проект на Git, то картинка будет примерно следующей:

3. Нажимаем Add и добавляем папочку tests:

После этого в списке меню Project Settings -> Version Control появится наша новая запись:

4. Сохраняем настройки. Теперь можно выполнять SVN-команды над папкой tests прямо из IDE.
Читать далее

четверг, 19 января 2012 г.

Проверка наличия класса

Если вам нужно проверить наличие определенного класса, вы можете использовать функцию class_exists(). Ее важная особенность состоит в том, что class_exists() даже при отсутствии проверяемого класса автоматически вызывает автолоадер. Чтобы запретить такое поведение, необходимо передавать false в качестве второго параметра фунции class_exists().

Следующий код демонстрирует такое поведение:
    require_once('Zend/Loader.php');
 
    Zend_Loader::registerAutoload();
 
    if (!class_exists('MyTestClass')) {
       // class doesn't exist, but now the auto-loader will try and load it
    }
 
    if (!class_exists('MyOtherTestClass', false)) {
        // class doesn't exist, and the auto-loader will not be used
    }

Читать далее