Chronoforms. Error con la validación en Internet Explorer

Joomla

Otra vez con un error que no hay manera de encontrar solución en Google.

Resulta que si tenemos un formulario con campos requeridos, el comportamiento normal, es que primero valide los campos, y si todo esta bien haga el submit, y sinó, que pinte los mensajes de error.

Pues resulta, que esto me funcionaba bien en FF y Chrome, pero no en IE (ni 7 ni 8), el cual, enviaba el formulario aunque estuviera vacío.

Después de mucho darle vueltas, hemos encontrado una solución que por lo menos en nuestro caso, funciona perfectamente.
Se trata de sustituir en el archivo ‘/components/com_chronocontact/js/livevalidation_standalone.js‘ la línea aprox. 409:

this.insertAfterWhatNode.parentNode.insertBefore(elementToInsert, this.insertAfterWhatNode.nextSibling);

Por:

this.insertAfterWhatNode.parentNode.appendChild(elementToInsert);

Pues nada. Si alguien traza mejor el problema y encuentra una solución mejor con el nodo ‘this.insertAfterWhatNode.nextSibling‘ que no dude en comentarlo!
XD

Chronoforms. Error con la validación de requerido de checkboxs

Joomla

Puede que te encuentres con el problema de que al añadir un checkbox como por ejemplo, el típico de que ‘Acepto la política de privacidad’, que necesitas que sea necesario marcar para que se envie el formulario, nos encontremos con que el componente chronoforms, no lo hace.

Una posible alternativa (a falta de una solución oficial), es modificar el fichero ‘\components\com_chronocontact\js\jsvalidation2.js‘ en la linea 47, donde pone:

var myoptions = $(chronoformname).getInputsByName(elm.getProperty('name'));

ponemos:

var myoptions = document.getElementsByName("check00");

Donde “check00” (son ceros) es en nuestro caso el nombre del input del checkbox en questión.

Para saber el nombre y comprobar que se va a llamar a la función de validación, podemos ver el código generado por chronoforms en la administrador > ‘Components’ > ‘Chronoforms’ > ‘Nombre del formulario de la lista’ > ‘Pestaña Form Code’ > ‘Desplegamos el Form Html’.

Entonces, buscamos nuestro checkbox en el código y comprobamos que lleve class=”validate-one-required” y apuntamos el nombre.

Además, en el javascript que os comentaba, veréis que tenéis la posibilidad de traducir los mensajes de error al castellano. XD

Sale el enlace para añadir item incluso en las categorias de K2 que no estan seleccionadas en el grupo de usuarios

Joomla

El escenario es el siguiente:

Tenemos un K2 con varias categorías, la edición de front end activada, pero en el grupo de usuarios ‘registrados’ o cualquier otro, hemos dicho que el usuario solo pueda añadir artículos a las categorías X e Y.

Navegando por el front con un usuario loggeado, vemos que el enlace para añadir un artículo sale en otras categorías.

Dfdsfghdfskldssdf.

Pues nada… googleando, solo me he encontrado este hilo abierto, que lamentablemente no daba la solución; así que ha tocado currar-se-lo. XD

Para solucionarlo, tenemos que editar el archivo ‘components\com_k2\views\itemlist\view.html.php‘ aproximadamente por la linea 26 y dejarla tal que así:

//Add link
if ($task != 'category'){
  if (K2HelperPermissions::canAddItem())
    $addLink = JRoute::_('index.php?option=com_k2&view=item&task=add&tmpl=component');
  $this->assignRef('addLink', $addLink);
}

Luego, un poco más adelante, donde hace el “case: ‘category’” debajo de la carga de la categoría (o antes) ponemos:

if (K2HelperPermissions::canPublishItem($id))
  $addLink = JRoute::_('index.php?option=com_k2&view=item&task=add&tmpl=component');
$this->assignRef('addLink', $addLink);

Lo que hemos hecho con esto es que en caso de tratarse de una categoría no haga una comprobación sobre los permisos generales, sino que mire los permisos sobre la categoría en cuestión.

Pues nada. Eso es todo.

Botón Cancelar no funciona en el formulario para añadir artículo de K2

Joomla

Puede que mucha gente que utiliza K2 con edición desde el front end, se haya encontrado con el problema de que el botón de ‘Cancelarno cierra el lightbox donde está el formulario.

Después de googlear un rato he encontrado una solución en este hilo del foro de la comunidad de K2.

Aunque en realidad, lo que propone el tio Catchai, no es realmente una solución, sinó un ‘wolkaround’, ya que el problema del error javascript que da al cargar la página, se sigue produciendo.

De todas formas, a falta de una solución mejor, lo que nos propone, es simplemente poner la función directamente en el onclick, quedando:

<a href="#" onclick="parent.$('sbox-window').close();return false;">

Pues nada. Se agradeceran todo tipo de comentarios sobre una solución mejor.