@ agnasg

Joomla: Cómo resolver problemas con “required” en un field definido en xml

10-03-2016 10:14 AM

La respuesta corta es con suerte. Como el componente com_user y el plugin user-profile trabajando en conjunto es difícil descubrir dónde está el problema. Usualmente al definir en plugins/user/profile/profiles/profile.xml  los fields correctamente todo debe funcionar bien, pero hay veces que un campo que no está declarado como “required” insiste en aparecer como tal en la forma. Por qué es un misterio para mi por ahora. En google hay varios hacks para solucionarlo, pero en resumen:

  • En template/html/com_users/profile/edit.php coloca explicitamente el field como no requerido usando
    $this->setFieldAttribute('address2', 'required', 'false', 'profile');
  • En libraries/joomla/form/form.php debes atrapar el campo y retornar con “continue” para evitar la validación del lado del server
    // Validate the fields.
    foreach ($fields as $field)
    {
    $value = null;
    $name = (string) $field['name'];
    if ($name === "address2") {
    continue;
    }
    

Mi experiencia es que hay un bug en alguna parte pero todavía no he descubierto dónde. El problema es que este bug se presenta normalmente en medio de proyectos en los que no tengo tiempo para realizar búsquedas por el amor al arte. Y luego de que termina el proyecto estos horribles “hacks” se quedan así. Nada profesional, pero no hay forma de explicar esto a un cliente que quiere ver su sitio listo y funcionando lo antes posible. Terrible por decir lo menos.