Ajouter lien dans menu du panneau d’administration (code php) (Créer un compte)

  • WordPress :5.2
  • Statut : non résolu
  • Ce sujet contient 26 réponses, 5 participants et a été mis à jour pour la dernière fois par JeanguyT, le il y a 2 mois.
12 sujets de 16 à 27 (sur un total de 27)
  • Auteur
    Messages
  • #2301812
    JeanguyT
    Participant
    Padawan WordPress
    77 contributions

    Bonjour,

    Je dois certainement mal m’exprimer.

    Actuellement, lorsqu’un auteur se connecte par l’accès réservé et loginPress, la barre d’administration se présente comme dans l’image 1 en pièce jointe.

    J’essaie d’obtenir que le lien ‘calendrier’ de la barre d’outils ouvre la page (exemple : “https://www.metmmetm.fr/?page_id=3698” pour longpont) contenant le shortcode ([tribe_events cat=’longpont’]) qui correspond au centre (ville) de rattachement de l’auteur (voir l’image 2 contenu dans le fichier joint).

    Bon WE

    Cordialement

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2301848
    ferman
    Participant
    Maître WordPress
    2514 contributions

    Bonjour,

    D’accord, c’est clair maintenant. A mon avis, modifier le lien  “calendrier” n’est pas souhaitable. Je peux vous proposer une solution alternative: ajouter un élément à la barre d’administration qui renvoie vers la page que vous voulez suivant l’auteur connecté.

    Pour cela je suis parti de ce code que l’on trouve aussi ici , auquel j’ai ajouté des conditions.

    function bs_toolbar_link($wp_admin_bar) {
    	
    	$current_user = wp_get_current_user();
    	
    	if ( 6 == $current_user->ID ){  
        $args = array(
            'id' => 'bloggersignal',
            'title' => 'calendrier 2',
            'href' => ' /metmmetm.fr/?page_id=3698#8221/'); 
    	}
    	
    	elseif ( 7 == $current_user->ID ){ 
        $args = array(
            'id' => 'bloggersignal',
            'title' => 'calendrier 2',
            'href' => ' /metmmetm.fr/une_autre_page/'); 
    	}
    	    
    	$wp_admin_bar -> add_node($args);
    	
    }
    add_action('admin_bar_menu', 'bs_toolbar_link', 999);

    Il faut ajouter autant de modules elseif {…………..} que souhaité en modifiant bien sûr l’id de l’auteur  et le href de la page cible.

    Vous pouvez aussi modifier le titre “calendrier 2”, le nom de l’id “bloggersignal” et même le nom de la fonction “bs_toolbar_link” au début et à la fin de la fonction pour que ce soit plus parlant.

    Il sera possible, si vous voulez, d’enlever par css l’onglet calendrier existant (il renvoie vers où quand on le clique?) mais comme je n’ai pas TEC installé il faudra votre collaboration.

    Voila. Il ne reste plus qu’à essayer.

     

    • Cette réponse a été modifiée le il y a 2 mois et 3 semaines par ferman.
    #2301875
    JeanguyT
    Participant
    Padawan WordPress
    77 contributions

    Encore Merci.

    J’avais créé ce lien avec le plugin Adminimize, mais il visualise le calendrier au complet. Je peux donc le désactiver puis installer votre script.

    Je vais essayer lundi.

    Bien cordialement

    #2301880
    ferman
    Participant
    Maître WordPress
    2514 contributions

    Je n’avais pas vu mais le code que je vous donne est le même que celui que vous aviez plus haut (+ des conditions).

    #2302611
    JeanguyT
    Participant
    Padawan WordPress
    77 contributions

    Bonjour,

    Le code fonctionne correctement pour l’appels du calendrier contenant les événements du centre (ville).

    Petit couac, la page de calendrier s’ouvre à la fois pour les abonnés et les auteurs. J’avais ajouté un bouton retour avec un lien vers une page (menu abonnés). Il faut maintenant que je remplace ce lien par un retour page précédente.

    Faut-il utiliser une fonction avec “history.back()”  mais comment l’implanter sur le bouton existant dans ma page.

    Cordialement

     

    #2302613
    ferman
    Participant
    Maître WordPress
    2514 contributions

    Bonjour,

    …mais comment l’implanter sur le bouton existant dans ma page.

    C’est impossible à dire car je ne vois pas votre code et de toute façon il faudrait enter dans le code du site ce que je ne peux pas faire. Mais vous pouvez le supprimer et le remplacer par un autre bouton., en mettant par exemple un shortcode dans la page.  Le code php/js (source ici) serait alors:

    function retourpage(){
    $referer = filter_var($_SERVER['HTTP_REFERER'], FILTER_VALIDATE_URL);
    		if (!empty($referer)) {
    		echo '<p class="retour"><a href="'. $referer .'" title="Return to the previous page"> Retour</a></p>';
    		
    		} else {
    		echo '<p class="retour"><a href="javascript:history.go(-1)" title="Return to the previous page"> Retour</a></p>';
    		}
    }
    
    add_shortcode ('shortcode1', 'retourpage');

    Et le code css de base à modifier à volonté et non compris css pour positionnement du bouton:

    .retour{width:80px;
    background-color:yellowgreen;
    }
    .retour a	{color:white!important;}

    Voyez si ça répond à votre question. Comme je ne sais pas ce que vous voulez faire, je réponds au coup par coup si je peux.

    • Cette réponse a été modifiée le il y a 2 mois et 2 semaines par ferman.
    #2302652
    JeanguyT
    Participant
    Padawan WordPress
    77 contributions

    Bonjour,

    Merci pour votre suggestion que je vais tenter d’utiliser.

    Le fichier joint (jpg) présente le lien installé initialement sur le bouton dans l’entête de la page du calendrier pour le retour sur la page de l’abonné, puis celui de l’un auteur suite à la modification que vous m’aviez adressée le 7 mars (#2301848) mais qui n’est pas adapté.

    Cordialement

     

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2302806
    JeanguyT
    Participant
    Padawan WordPress
    77 contributions

    Bonjour,

    Le bouton généré par Avada n’accepte pas de shortcode dans l’URL [retour]. Dommage !

    J’ai intégré le code dans la page de mon thème enfant. Le bouton ne réagit pas lors d’un hover seul le texte change de couleur mais n’applique pas celle inclus dans le css. Le bouton ne se positionne pas dans le container, il reste à gauche uniquement float right/left ne change rien et la marge de gauche (30px) n’est pas prise en compte.

    Y a t-il un code qui puisse améliorer l’apparence ?

    .retour {
      width:200px;
      height: 30px;
    	text-decoration: none;
    	font-family: Montserrat;
    	font-weight: 400;
    	letter-spacing: 0px;
    	font-style: normal;
    	font-size: 18px;
    	line-height: 24px;
    	color: #FFFFFF;
    	background: #31ba00;
    	border-radius: 5px;
    	-webkit-border-radius: 5px;
    	-moz-border-radius: 5px;
    	margin-left: 30px;
    
    }
    
    .retour hover {
    	color: #000000;
    	background-color: rgba(255,193,7,0.5);
    }

    Par contre le retour à la page précédente fonctionne.

    Cordialement

    #2302831
    ferman
    Participant
    Maître WordPress
    2514 contributions

    Bonjour

    Utilisez le code CSS suivant.

    .retour {
      width:200px;
      height: 30px;
    	text-decoration: none;
    	font-family: Montserrat;
    	font-weight: 400;
    	letter-spacing: 0px;
    	font-style: normal;
    	font-size: 18px;
    	line-height: 24px;
    	color: #FFFFFF;
    	background: #31ba00;
    	border-radius: 5px;
    	-webkit-border-radius: 5px;
    	-moz-border-radius: 5px;
    	margin-left: 30px;
    }
    
    .retour:hover {
    	color: #000000;
    	background-color: rgba(255,193,7,0.5);
    }
    .retour a {padding-left:60px;
    color:black!important;}
    .retour a:hover{padding-left:60px;
    color:blue!important;}
    
    .retour {position:absolute;
    	top:-200%;
    	left:120%;
    	z-index:100; }

     

    Il est valable pour PC et dans votre cas il faudra sans doute modifier les valeurs pour la règle “position-absolute”. Pour que ça marche sur mobile ou tablette il faudra aussi modifier cette règle et ajouter des @media rules. A voir plus tard.

    Avez-vous pensé au fait que cette façon de faire retourne à la page précédente quelle qu’elle soit? Si vous venez de la page d’accueil vous serez retourné à la page d’accueil.

    #2302869
    JeanguyT
    Participant
    Padawan WordPress
    77 contributions

    Bonsoir,

    Le code fonctionne après modifications.

    Il faut cliquer sur le texte du bouton et non sur le bouton pour obtenir le lien vers la page précédente (?).

    Encore merci pour l’aide que vous m’avez apporté.

    Bien cordialement

    #2302874
    ferman
    Participant
    Maître WordPress
    2514 contributions

    Oui, ce n’est pas un vrai bouton mais du texte déguisé en bouton. Peut être vaut-il mieux ne laisser que le texte en le formatant correctement (taille police, couleur et couleur au survol, peut être une simple bordure sans beaucoup de padding ni de marge, ou un soulignement. Après tout il n’y a que les auteurs qui verront ça.

    #2335814
    JeanguyT
    Participant
    Padawan WordPress
    77 contributions

    Bonjour,

    Concernant le sujet liens calendriers quelles modifications apporter pour que le lien ‘Calendrier’ de la barre d’outils soit déplacé sur la barre de menu à gauche ?

    Le script ci-dessous permet normalement d’ajouter le lien dans la barre à gauche (je n’ai pas encore testé), mais comment intégrer toutes les conditions ?

    function add_links_menu()
    {
        add_menu_page('Calendrier', 'Calendrier', 'author', 'script-cal', '', '', 50);
    }
    function page_gen()
    {
        include('script-cal.php');
    }
    
    add_action('admin_menu', 'add_links_menu');

    Cordialement

12 sujets de 16 à 27 (sur un total de 27)
  • Vous devez être connecté pour répondre à ce sujet.