Jump to content

Problemas para añadir campos formularios registro.


debora_rojas

Recommended Posts

hola quien me puede ayudar, estoy intentando agregar campos al formulario de  registro en el archivo overrider/CustomerFormatter.php y para no copiar todo el script del archivo original hago un extend  del archivo, pero me arroja este mensaje. quizas no se que tengo que declarar

(1/1) ClassNotFoundException

Attempted to load class "CustomerFormatterCore" from the global namespace.
Did you forget a "use" statement?

Link to comment
Share on other sites

Buscando un poco por el foro puedes llegar a información sobre el tema.

Básicamente ya no se puede sobreescribir archivos del core como se hacía hasta la version 1.7.4. En estos modelos ya no hay compatibilidad y se espera que en breve deje de serlo con los restantes

SqlRequest
Customer
Language
Currency
WebserviceKey
Meta
Category
RootCategory
Contact
CmsPage
CmsPageCategory
Tax
Manufacturer
Employee
Profile
ManufacturerAddress

A partir de ese versionado será necesario hacerlo mediante hooks específico y nuevas directivas CQRS aplicadas para ello con la implantación de Symphony. Lo que si se puede seguir utilizando de momento es poder sobreescribir las classes principales para añadir nuevo registros en class principal, eg 

/modules/moduloFields/override/classes/Customer.php
use PrestaShop\PrestaShop\Adapter\ServiceLocator;
use PrestaShop\PrestaShop\Adapter\CoreException;
/***
 * Class CustomerCore
 */
class Customer extends CustomerCore
{

    public $newfield;

    public function __construct($id = null)
    {
        self::$definition['fields']['newfield'] = array('type' => self::TYPE_STRING, 'validate' => 'isGenericName');

        parent::__construct($id);
    }

}

Utilizando en el .php principal del módulo, los use

use Doctrine\DBAL\Query\QueryBuilder;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityRepository;
use PrestaShop\Customerfield\Entity\CustomerCustomField;
use PrestaShop\PrestaShop\Core\Grid\Column\Type\DataColumn;
use PrestaShop\PrestaShop\Core\Grid\Definition\GridDefinitionInterface;
use PrestaShop\PrestaShop\Core\Grid\Filter\Filter;
use PrestaShop\PrestaShop\Core\Search\Filters\CustomerFilters;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;

Y  hooks necesarios

displayCustomerAccountForm
additionalCustomerFormFields
actionCustomerAccountAdd
actionCustomerAccountUpdate
actionAfterCreateCustomerFormHandler
actionAfterUpdateCustomerFormHandler
actionCustomerGridDefinitionModifier
actionCustomerGridQueryBuilderModifier
actionCustomerFormBuilderModifier

Esta la opción de hacerlo desde un módulo o directamente sobreescribiendo los archivos necesarios del source (src)

  • Confused 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...