En 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(' ', '', $categories[$i]->text);
if (substr(ltrim($cat_text), 0, 1) != '-') {
$categories[$i]->disable = true;
}
}
}