2012-03-21 10 views
2

Magento 1.11.2.0のバージョンを使用しています。顧客がマイアカウントページに画像をアップロードするオプションを追加します。カスタマー画像のアップロードとマゼンタのサイズ変更

adminに画像ファイルタイプの新しい顧客属性を追加しました。これはかなりうまく動作します。ただし、イメージの最大イメージ幅、最大イメージ高さオプションのみがあります。他の2つの入力を追加して、アバターのアップロード時に画像のサイズを変更する際の幅と高さを指定することができます。

これを行う方法はありますか?私はまた、モジュール/クラスが顧客の画像属性のアップロードに使われていることに興味があります。

+1

あなたはエンタープライズのお客様ですので、Magentoチームのサポートをリクエストすることができます。 –

答えて

7

処理にはいくつかの手順があります。まず、属性を作成し、それをデフォルトのグループと属性セットに追加する必要があります。

$installer = new Mage_Customer_Model_Entity_Setup('core_setup'); 

$installer->startSetup(); 

$vCustomerEntityType = $installer->getEntityTypeId('customer'); 
$vCustAttributeSetId = $installer->getDefaultAttributeSetId($vCustomerEntityType); 
$vCustAttributeGroupId = $installer->getDefaultAttributeGroupId($vCustomerEntityType, $vCustAttributeSetId); 

$installer->addAttribute('customer', 'avatar', array(
     'label' => 'Avatar Image', 
     'input' => 'file', 
     'type' => 'varchar', 
     'forms' => array('customer_account_edit','customer_account_create','adminhtml_customer','checkout_register'), 
     'required' => 0, 
     'user_defined' => 1, 
)); 

$installer->addAttributeToGroup($vCustomerEntityType, $vCustAttributeSetId, $vCustAttributeGroupId, 'avatar', 0); 

$oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'avatar'); 
$oAttribute->setData('used_in_forms', array('customer_account_edit','customer_account_create','adminhtml_customer','checkout_register')); 
$oAttribute->save(); 

$installer->endSetup(); 

fileinputを設定することがある重要なこと:ここではそうするようにセットアップスクリプトに追加することができ、いくつかのコードです。これにより、システムはバックエンドにファイルアップローダーを表示し、フォームの処理時にアップロードされたファイルを探します。 typevarcharです。ファイル名を格納するためにvarchar属性が使用されるためです。

属性が作成されたら、persistent/customer/form/register.phtmlテンプレートに入力要素を追加する必要があります。次のようにこれを行うにはいくつかのサンプルコードは次のとおりです。

<label for="avatar"><?php echo $this->__('Avatar') ?></label> 
<div class="input-box"> 
    <input type="file" name="avatar" title="<?php echo $this->__('Avatar') ?>" id="avatar" class="input-text" /> 
</div> 

もここで注意すべき主なものは、フィールドのIDと名前があなたの属性のコードと同じでなければならないことです。また、<form>タグにenctype="multipart/form-data"を追加することを忘れないでください。

これにより、登録時にアバター画像をアップロードすることができます。その後、画像が表示されたら、サイトのサイズに合わせてサイズを変更することができます。コードMagento画像ヘルパーはProduct画像で動作するように設計されていますが、this blog postは、画像のサイズを変更したり、サイズ変更したファイルをキャッシュするヘルパー関数を作成する方法を示します。私はカテゴリ画像のサイズを変更する前にこれらの指示を使用しており、うまく機能しています。

関連する問題