Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace <vendor_name><module>Setup;
- use MagentoFrameworkModuleSetupMigration;
- use MagentoFrameworkSetupInstallDataInterface;
- use MagentoFrameworkSetupModuleContextInterface;
- use MagentoFrameworkSetupModuleDataSetupInterface;
- /**
- * @codeCoverageIgnore
- */
- class InstallData implements InstallDataInterface
- {
- /**
- * Customer setup factory
- *
- * @var MagentoCustomerSetupCustomerSetupFactory
- */
- private $customerSetupFactory;
- /**
- * Init
- *
- * @param MagentoCustomerSetupCustomerSetupFactory $customerSetupFactory
- */
- public function __construct(MagentoCustomerSetupCustomerSetupFactory $customerSetupFactory)
- {
- $this->customerSetupFactory = $customerSetupFactory;
- }
- /**
- * {@inheritdoc}
- * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
- */
- public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
- {
- /** @var CustomerSetup $customerSetup */
- $customerSetup = $this->customerSetupFactory->create(['setup' => $setup]);
- $setup->startSetup();
- $customerSetup->addAttribute(MagentoCustomerModelCustomer::ENTITY, 'profile_name', [
- 'type' => 'text',
- 'label' => 'Profile Name',
- 'input' => 'text',
- 'required' => 0,
- 'sort_order' => 110,
- 'visible' => 1,
- 'system' => 0,
- 'position' => 110
- ]);
- //add attribute to attribute set
- $attribute = $customerSetup->getEavConfig()->getAttribute('customer', 'profile_name');
- $attribute->setData('used_in_forms', ['adminhtml_customer', 'customer_account_create', 'customer_account_edit']);
- $attribute->save();
- $setup->endSetup();
- }
- }
- <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
- <body>
- <referenceBlock name="customer_form_register">
- <action method="setTemplate">
- <argument name="template" xsi:type="string"><Vendor>_<module>::form/register.phtml</argument>
- </action>
- </referenceBlock>
- </body>
- </page>
- <?php $_helper = $this->helper('<vendor><module>HelperData'); ?>
- <?php echo $block->getChildHtml('form_fields_before')?>
- <?php /* Extensions placeholder */ ?>
- <?php echo $block->getChildHtml('customer.form.register.extra')?>
- <form class="form create account form-create-account" action="<?php /* @escapeNotVerified */ echo $block->getPostActionUrl() ?>" method="post" id="form-validate" enctype="multipart/form-data" autocomplete="off">
- <fieldset class="fieldset create info">
- <legend class="legend"><span><?php /* @escapeNotVerified */ echo __('Personal Information') ?></span></legend><br>
- <input type="hidden" name="success_url" value="<?php /* @escapeNotVerified */ echo $block->getSuccessUrl() ?>">
- <input type="hidden" name="error_url" value="<?php /* @escapeNotVerified */ echo $block->getErrorUrl() ?>">
- <?php echo $block->getLayout()->createBlock('MagentoCustomerBlockWidgetName')->setObject($block->getFormData())->setForceUseCustomerAttributes(true)->toHtml() ?>
- <?php if ($block->isNewsletterEnabled()): ?>
- <div class="field choice newsletter">
- <input type="checkbox" name="is_subscribed" title="<?php /* @escapeNotVerified */ echo __('Sign Up for Newsletter') ?>" value="1" id="is_subscribed"<?php if ($block->getFormData()->getIsSubscribed()): ?> checked="checked"<?php endif; ?> class="checkbox">
- <label for="is_subscribed" class="label"><span><?php /* @escapeNotVerified */ echo __('Sign Up for Newsletter') ?></span></label>
- </div>
- <?php /* Extensions placeholder */ ?>
- <?php echo $block->getChildHtml('customer.form.register.newsletter')?>
- <?php endif ?>
- <?php $_dob = $block->getLayout()->createBlock('MagentoCustomerBlockWidgetDob') ?>
- <?php if ($_dob->isEnabled()): ?>
- <?php echo $_dob->setDate($block->getFormData()->getDob())->toHtml() ?>
- <?php endif ?>
- <?php $_taxvat = $block->getLayout()->createBlock('MagentoCustomerBlockWidgetTaxvat') ?>
- <?php if ($_taxvat->isEnabled()): ?>
- <?php echo $_taxvat->setTaxvat($block->getFormData()->getTaxvat())->toHtml() ?>
- <?php endif ?>
- <?php $_gender = $block->getLayout()->createBlock('MagentoCustomerBlockWidgetGender') ?>
- <?php if ($_gender->isEnabled()): ?>
- <?php echo $_gender->setGender($block->getFormData()->getGender())->toHtml() ?>
- <?php endif ?>
- <!-- Custom code for Profile-Name Field -->
- <div class="field profile-name">
- <label for="profile-name" class="label"><span><?php /* @escapeNotVerified */ echo __('Profile Name') ?></span></label>
- <div class="control">
- <input type="text" name="profile_name" id="profile-name" value="<?php echo $block->escapeHtml($block->getFormData()->getData('profile_name')) ?>" title="<?php /* @escapeNotVerified */ echo __('Profile Name') ?>" class="input-text" maxlength="250">
- </div>
- </div>
- <!-- End -->
- </fieldset>
- <?php if ($block->getShowAddressFields()): ?>
- <fieldset class="fieldset address">
- <legend class="legend"><span><?php /* @escapeNotVerified */ echo __('Address Information') ?></span></legend><br>
- <input type="hidden" name="create_address" value="1" />
- <div class="field company">
- <label for="company" class="label"><span><?php /* @escapeNotVerified */ echo __('Company') ?></span></label>
- <div class="control">
- <input type="text" name="company" id="company" value="<?php echo $block->escapeHtml($block->getFormData()->getCompany()) ?>" title="<?php /* @escapeNotVerified */ echo __('Company') ?>" class="input-text <?php /* @escapeNotVerified */ echo $this->helper('MagentoCustomerHelperAddress')->getAttributeValidationClass('company') ?>">
- </div>
- </div>
- <div class="field telephone">
- <label for="telephone" class="label"><span><?php /* @escapeNotVerified */ echo __('Phone Number') ?></span></label>
- <div class="control">
- <input type="text" name="telephone" id="telephone" value="<?php echo $block->escapeHtml($block->getFormData()->getTelephone()) ?>" title="<?php /* @escapeNotVerified */ echo __('Phone Number') ?>" class="input-text <?php /* @escapeNotVerified */ echo $this->helper('MagentoCustomerHelperAddress')->getAttributeValidationClass('telephone') ?>">
- </div>
- </div>
- <?php $_streetValidationClass = $this->helper('MagentoCustomerHelperAddress')->getAttributeValidationClass('street'); ?>
- <div class="field street required">
- <label for="street_1" class="label"><span><?php /* @escapeNotVerified */ echo __('Street Address') ?></span></label>
- <div class="control">
- <input type="text" name="street[]" value="<?php echo $block->escapeHtml($block->getFormData()->getStreet(0)) ?>" title="<?php /* @escapeNotVerified */ echo __('Street Address') ?>" id="street_1" class="input-text <?php /* @escapeNotVerified */ echo $_streetValidationClass ?>">
- <div class="nested">
- <?php $_streetValidationClass = trim(str_replace('required-entry', '', $_streetValidationClass)); ?>
- <?php for ($_i = 2, $_n = $this->helper('MagentoCustomerHelperAddress')->getStreetLines(); $_i <= $_n; $_i++): ?>
- <div class="field additional">
- <label class="label" for="street_<?php /* @escapeNotVerified */ echo $_i ?>">
- <span><?php /* @escapeNotVerified */ echo __('Address') ?></span>
- </label>
- <div class="control">
- <input type="text" name="street[]" value="<?php echo $block->escapeHtml($block->getFormData()->getStreetLine($_i - 1)) ?>" title="<?php /* @escapeNotVerified */ echo __('Street Address %1', $_i) ?>" id="street_<?php /* @escapeNotVerified */ echo $_i ?>" class="input-text <?php /* @escapeNotVerified */ echo $_streetValidationClass ?>">
- </div>
- </div>
- <?php endfor; ?>
- </div>
- </div>
- </div>
- <div class="field required">
- <label for="city" class="label"><span><?php /* @escapeNotVerified */ echo __('City') ?></span></label>
- <div class="control">
- <input type="text" name="city" value="<?php echo $block->escapeHtml($block->getFormData()->getCity()) ?>" title="<?php /* @escapeNotVerified */ echo __('City') ?>" class="input-text <?php /* @escapeNotVerified */ echo $this->helper('MagentoCustomerHelperAddress')->getAttributeValidationClass('city') ?>" id="city">
- </div>
- </div>
- <div class="field region required">
- <label for="region_id" class="label"><span><?php /* @escapeNotVerified */ echo __('State/Province') ?></span></label>
- <div class="control">
- <select id="region_id" name="region_id" title="<?php /* @escapeNotVerified */ echo __('State/Province') ?>" class="validate-select" style="display:none;">
- <option value=""><?php /* @escapeNotVerified */ echo __('Please select a region, state or province.') ?></option>
- </select>
- <input type="text" id="region" name="region" value="<?php echo $block->escapeHtml($block->getRegion()) ?>" title="<?php /* @escapeNotVerified */ echo __('State/Province') ?>" class="input-text <?php /* @escapeNotVerified */ echo $this->helper('MagentoCustomerHelperAddress')->getAttributeValidationClass('region') ?>" style="display:none;">
- </div>
- </div>
- <div class="field zip required">
- <label for="zip" class="label"><span><?php /* @escapeNotVerified */ echo __('Zip/Postal Code') ?></span></label>
- <div class="control">
- <input type="text" name="postcode" value="<?php echo $block->escapeHtml($block->getFormData()->getPostcode()) ?>" title="<?php /* @escapeNotVerified */ echo __('Zip/Postal Code') ?>" id="zip" class="input-text validate-zip-international <?php /* @escapeNotVerified */ echo $this->helper('MagentoCustomerHelperAddress')->getAttributeValidationClass('postcode') ?>">
- </div>
- </div>
- <div class="field country required">
- <label for="country" class="label"><span><?php /* @escapeNotVerified */ echo __('Country') ?></span></label>
- <div class="control">
- <?php echo $block->getCountryHtmlSelect() ?>
- </div>
- </div>
- <?php $addressAttributes = $block->getChildBlock('customer_form_address_user_attributes');?>
- <?php if ($addressAttributes): ?>
- <?php $addressAttributes->setEntityType('customer_address'); ?>
- <?php $addressAttributes->setFieldIdFormat('address:%1$s')->setFieldNameFormat('address[%1$s]');?>
- <?php $block->restoreSessionData($addressAttributes->getMetadataForm(), 'address');?>
- <?php echo $addressAttributes->setShowContainer(false)->toHtml()?>
- <?php endif;?>
- <input type="hidden" name="default_billing" value="1">
- <input type="hidden" name="default_shipping" value="1">
- </fieldset>
- <?php endif; ?>
- <fieldset class="fieldset create account" data-hasrequired="<?php /* @escapeNotVerified */ echo __('* Required Fields') ?>">
- <legend class="legend"><span><?php /* @escapeNotVerified */ echo __('Sign-in Information') ?></span></legend><br>
- <div class="field required">
- <label for="email_address" class="label"><span><?php /* @escapeNotVerified */ echo __('Email') ?></span></label>
- <div class="control">
- <input type="email" name="email" autocomplete="email" id="email_address" value="<?php echo $block->escapeHtml($block->getFormData()->getEmail()) ?>" title="<?php /* @escapeNotVerified */ echo __('Email') ?>" class="input-text" data-validate="{required:true, 'validate-email':true}">
- </div>
- </div>
- <div class="field password required" data-mage-init='{"passwordStrengthIndicator": {}}'>
- <label for="password" class="label"><span><?php /* @escapeNotVerified */ echo __('Password') ?></span></label>
- <div class="control">
- <input type="password" name="password" id="password"
- title="<?php /* @escapeNotVerified */ echo __('Password') ?>"
- class="input-text"
- data-password-min-length="<?php echo $block->escapeHtml($block->getMinimumPasswordLength()) ?>"
- data-password-min-character-sets="<?php echo $block->escapeHtml($block->getRequiredCharacterClassesNumber()) ?>"
- data-validate="{required:true, 'validate-customer-password':true}"
- autocomplete="off">
- <div id="password-strength-meter-container" data-role="password-strength-meter" >
- <div id="password-strength-meter" class="password-strength-meter">
- <?php /* @escapeNotVerified */ echo __('Password Strength'); ?>:
- <span id="password-strength-meter-label" data-role="password-strength-meter-label" >
- <?php /* @escapeNotVerified */ echo __('No Password'); ?>
- </span>
- </div>
- </div>
- </div>
- </div>
- <div class="field confirmation required">
- <label for="password-confirmation" class="label"><span><?php /* @escapeNotVerified */ echo __('Confirm Password') ?></span></label>
- <div class="control">
- <input type="password" name="password_confirmation" title="<?php /* @escapeNotVerified */ echo __('Confirm Password') ?>" id="password-confirmation" class="input-text" data-validate="{required:true, equalTo:'#password'}" autocomplete="off">
- </div>
- </div>
- <?php echo $block->getChildHtml('form_additional_info'); ?>
- </fieldset>
- <div class="actions-toolbar">
- <div class="primary">
- <button type="submit" class="action submit primary" title="<?php /* @escapeNotVerified */ echo __('Create an Account') ?>"><span><?php /* @escapeNotVerified */ echo __('Create an Account') ?></span></button>
- </div>
- <div class="secondary">
- <a class="action back" href="<?php echo $block->escapeUrl($block->getBackUrl()) ?>"><span><?php /* @escapeNotVerified */ echo __('Back') ?></span></a>
- </div>
- </div>
- </form>
- <script>
- require([
- 'jquery',
- 'mage/mage'
- ], function($){
- var dataForm = $('#form-validate');
- var ignore = <?php /* @escapeNotVerified */ echo $_dob->isEnabled() ? ''input[id$="full"]'' : 'null'; ?>;
- dataForm.mage('validation', {
- <?php if ($_dob->isEnabled()): ?>
- errorPlacement: function(error, element) {
- if (element.prop('id').search('full') !== -1) {
- var dobElement = $(element).parents('.customer-dob'),
- errorClass = error.prop('class');
- error.insertAfter(element.parent());
- dobElement.find('.validate-custom').addClass(errorClass)
- .after('<div class="' + errorClass + '"></div>');
- }
- else {
- error.insertAfter(element);
- }
- },
- ignore: ':hidden:not(' + ignore + ')'
- <?php else: ?>
- ignore: ignore ? ':hidden:not(' + ignore + ')' : ':hidden'
- <?php endif ?>
- }).find('input:text').attr('autocomplete', 'off');
- });
- </script>
- <?php if ($block->getShowAddressFields()): ?>
- <script type="text/x-magento-init">
- {
- "#country": {
- "regionUpdater": {
- "optionalRegionAllowed": <?php /* @escapeNotVerified */ echo($block->getConfig('general/region/display_all') ? 'true' : 'false'); ?>,
- "regionListId": "#region_id",
- "regionInputId": "#region",
- "postcodeId": "#zip",
- "form": "#form-validate",
- "regionJson": <?php /* @escapeNotVerified */ echo $this->helper('MagentoDirectoryHelperData')->getRegionJson() ?>,
- "defaultRegion": "<?php /* @escapeNotVerified */ echo $block->getFormData()->getRegionId() ?>",
- "countriesWithOptionalZip": <?php /* @escapeNotVerified */ echo $this->helper('MagentoDirectoryHelperData')->getCountriesWithOptionalZip(true) ?>
- }
- }
- }
- </script>
- <?php endif; ?>
- <?php
- MagentoFrameworkComponentComponentRegistrar::register(
- MagentoFrameworkComponentComponentRegistrar::MODULE,
- 'Vendor_Module',
- __DIR__
- <?php
- namespace VendorModuleSetup;
- use MagentoFrameworkSetupInstallDataInterface;
- use MagentoFrameworkSetupModuleDataSetupInterface;
- use MagentoFrameworkSetupModuleContextInterface;
- class InstallData implements InstallDataInterface {
- private $_eavSetupFactory;
- private $_attributeRepository;
- public function __construct(
- MagentoEavSetupEavSetupFactory $eavSetupFactory,
- MagentoEavModelAttributeRepository $attributeRepository
- )
- {
- $this->_eavSetupFactory = $eavSetupFactory;
- $this->_attributeRepository = $attributeRepository;
- }
- public function install( ModuleDataSetupInterface $setup, ModuleContextInterface $context )
- {
- $eavSetup = $this->_eavSetupFactory->create(['setup' => $setup]);
- // add customer_mob to customer
- $eavSetup->removeAttribute(MagentoCustomerModelCustomer::ENTITY, 'customer_mobile');
- $eavSetup->addAttribute(
- MagentoCustomerModelCustomer::ENTITY, 'customer_mobile', [
- 'type' => 'varchar',
- 'label' => 'Customer Mobile',
- 'input' => 'text',
- 'required' => true,
- 'system' => 0,
- 'global' => MagentoEavModelEntityAttributeScopedAttributeInterface::SCOPE_STORE,
- 'sort_order' => 75,
- 'is_used_in_grid' => 1,
- 'is_visible_in_grid' => 1,
- 'unique' => true,
- ]
- );
- // allow customer_mob attribute to be saved in the specific areas
- $attribute = $this->_attributeRepository->get('customer', 'customer_mobile');
- $setup->getConnection()
- ->insertOnDuplicate(
- $setup->getTable('customer_form_attribute'),
- [
- ['form_code' => 'adminhtml_customer', 'attribute_id' => $attribute->getId()],
- ['form_code' => 'customer_account_create', 'attribute_id' => $attribute->getId()],
- ['form_code' => 'customer_account_edit', 'attribute_id' => $attribute->getId()],
- ]
- );
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
- <module name="Vendor_Module" setup_version="1.0.0">
- <sequence>
- <module name="Magento_Customer"/>
- </sequence>
- </module>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement