Publicado por: 0

Personalizar categorias del formulario para añadir artículos de los usuarios en K2En el post anterior contabamos como personalizar el formulario para añadir artículos de un usuario registrado de K2, modificando el archivo ‘form.php’.

Hay una cosa que no se puede hacer modificando este archivo, y es, modificar la forma en la que se eligen las categorías.

En nuestro caso, queríamos que el usuario pudiera crar articulos solo en las categorías hijas de las que habiamos marcado en la configuración del grupo de usuario ‘registrados’.

K2, por defecto, muestra todas las categorías, y solo como seleccionables las categorias marcadas y sus hijas (si marcas esa opción). Nosotros en cambio lo queremos es que muestre solo el árbol de las categorias elegidas, y que solo deje habilitadas las categorías hijas y no la raiz.

Para conseguir esto, solo tenemos que hacer las siguientes modificaciones al archivo “/components/com_k2/views/item/view.html.php”:
* Si alguien sabe si es posible sobrecargar esta vista en la plantilla que nos lo haga saber. XD

Línea 562:

for ($i = 0; $i < sizeof($categories); $i++) {
     if (!$user->authorize('com_k2', 'add', 'category', $categories[$i]->value))
          $categories[$i]->disable = true;
}

Por:

$num_categories = sizeof($categories);
for ($i = 0; $i < $num_categories; $i++) {
     if (!$user->authorize('com_k2', 'add', 'category', $categories[$i]->value)) {
          unset($categories[$i]);
     } else {
          // dehabilitamos la seleccion de las categorias raiz (las que no empiezan por -)
          $cat_text = str_replace('&nbsp;', '', $categories[$i]->text);
          if (substr(ltrim($cat_text), 0, 1) != '-') {
                    $categories[$i]->disable = true;
          }
     }
}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.