2010-08-03 20 views
0

Je configure Wordpress 3.0.1 pour un utilisateur novice. Les widgets Dashboard sont placés de manière appropriée, et j'aimerais qu'ils restent ainsi. Pour autant que je sache, il n'y a pas de hook add_filter ou add_action pour empêcher le glisser, donc une autre approche serait de faire un plugin qui utilise jQuery pour désactiver le glisser. Quel (s) gestionnaire (s) devrais-je redéfinir - click, mouseUp, mouseMove, etc - et sur quels éléments DOM?Comment empêcher les widgets de tableau de bord Wordpress d'être déplacés?

+0

Y a-t-il une raison pour laquelle l'utilisateur a besoin d'accéder aux paramètres Apparence? Pouvez-vous limiter l'accès des utilisateurs aux thèmes et aux widgets tous ensemble? – BandonRandon

+0

Ils n'ont pas accès à Apparence; ce sont des auteurs. Les seuls widgets que j'ai laissés sur le tableau de bord sont Right Now et Quickpress. Je veux juste désactiver le glisser-déposer de ces widgets. – Remy

Répondre

0

Utilisez un plug-in Rôles comme WordPress › Role Scoper « WordPress Plugins pour limiter ce que l'utilisateur peut faire. Ce n'est pas une bonne idée de modifier les fichiers de base, car vos modifications seront écrasées lors de la mise à jour.

+0

Je n'ai trouvé aucune fonctionnalité liée au glisser-déposer des widgets. Merci quand même. – Remy

+0

À la réflexion, les widgets sont une chose de base WP, alors oui, peut-être devoir pirater les fichiers de base. – markratledge

1

La solution la plus simple est peut-être d'empêcher l'enregistrement de la nouvelle commande. Cela permettra à l'utilisateur de modifier l'ordre, mais il ne sauvegardera pas les modifications pour la prochaine fois que la page est chargée.

Vous voulez éviter le meta-box-order événement ajax:

add_action('check_ajax_referer', 'prevent_meta_box_order'); 
function prevent_meta_box_order($action) 
{ 
    if ('meta-box-order' == $action /* && $wp_user == 'santa claus' */) { 
     die('-1'); 
    } 
} 

Il y a probablement d'autres actions que vous voulez éviter aussi. Ouvrez Firebug et vérifiez quelles sont les demandes faites à admin-ajax.php lorsque vous faites des choses que vous souhaitez éviter. Ou masquer l'onglet Options d'écran avec CSS.