Merci roland_d_alsace !
ha, bien vu : si je mets onAfterRoute alors je peux décommenter "'!= 'content'"... et ça fonctionne : edit-light.php est chargé au lieu de edit.php SI l'utilisateur appartient au groupe configuré dans le plugin.
NB : l'url reste le même (mais je n'ai pas désactivé le SEF puisque de toute façon le site aura le SEF activé)
Waouuuwww, une tuerie ce qu'on peut faire avec quelques lignes de code dans un plugin système (et les bons conseils du forum et de roland_d_alsace )
C'est vraiment pratique pcq du coup on peut p ex
- personnaliser le formulaire d'édition front-end en fonction du Groupe d'utilisateur
- mais aussi simplement court-circuiter le edit.php que certains templates customisent (en ajoutant leurs onglets, mais aussi parfois avec des erreurs)
Voici donc pour ceux qui nous lisent le code final :
ha, bien vu : si je mets onAfterRoute alors je peux décommenter "'!= 'content'"... et ça fonctionne : edit-light.php est chargé au lieu de edit.php SI l'utilisateur appartient au groupe configuré dans le plugin.
NB : l'url reste le même (mais je n'ai pas désactivé le SEF puisque de toute façon le site aura le SEF activé)
Waouuuwww, une tuerie ce qu'on peut faire avec quelques lignes de code dans un plugin système (et les bons conseils du forum et de roland_d_alsace )
C'est vraiment pratique pcq du coup on peut p ex
- personnaliser le formulaire d'édition front-end en fonction du Groupe d'utilisateur
- mais aussi simplement court-circuiter le edit.php que certains templates customisent (en ajoutant leurs onglets, mais aussi parfois avec des erreurs)
Voici donc pour ceux qui nous lisent le code final :
Code PHP:
<?php
defined('_JEXEC') or die;
class plgSystemAlternateedit extends JPlugin
{
function onAfterRoute()
{
if (JFactory::getApplication()->isClient('administrator')
|| JFactory::getApplication()->input->get('option', '', 'cmd') != 'com_content'
|| JFactory::getApplication()->input->get('view', '', 'cmd') != 'form'
|| JFactory::getApplication()->input->get('layout', '', 'cmd') != 'edit'
) {
return true;
}
$ugroups = JFactory::getUser()->getAuthorisedGroups();
$authgroups = $this->params->def('usergroups_publish_light', array());
if(count(array_intersect($ugroups, $authgroups)) > 0){
JRequest::setVar('layout', 'edit-light');
}else{
// JRequest::setVar('layout', 'edit-full');
}
return true;
}
}
Commentaire