Joomla CMS
Restringir secciones a los autores de Joomla
Resulta que tenemos un cliente el cual necesita que los usuarios que suscriban al sitio puedan publicar contenidos pero solamente en una sección en particular de Joomla.
La cuestión es que Joomla por defecto no te deja hacerlo desde el Administrador del sitio, por lo que estuvimos bastante tiempo para poder encontrar la forma de hacer esto desde el código.
Les dejo el código a modificar para que no pierdan el tiempo que perdimos nosotros:
El archivo a modificar se encuentra en components/com_content/views/article/view.html.php, y la función a modificar es _buildEditLists.
Lo que hay que hacer es cambiar las líneas:
$query = 'SELECT s.id, s.title' .
' FROM #__sections AS s' .
' ORDER BY s.ordering';
$db->setQuery($query);
Por:
$user =& JFactory::getUser();
$secciones_autores = array(1,2,5,9,15); //secciones permitidas para los autores
$where = $user->gid == 19 ? "WHERE s.id IN (".implode(",", $secciones_autores).")" : "";
//si el usuario es autor sólo puede publicar en esas secciones
$query = 'SELECT s.id, s.title' .
' FROM #__sections AS s' .
' '.$where.' ORDER BY s.ordering';
$db->setQuery($query);
Dentro del array de "$secciones_autores", deben poner las secciones que habilitarán para los autores.
Espero que sirva de ayuda para muchos y no pierdan tiempo pensando.