shortcode :: leptitcoindejol

Hello,

J'utilise depuis peu ce fameux Visual wizard et j'en suis très satisfait.
En pleine période d'apprentissage, j'ai besoin d'aide.

Comment créer un shortcode pour intégrer sur une page statique le code suivant :
[== Indéfini ==]

<h3>
	<colorcat class="colorcat">
	<?php $plxShow->lang('CATEGORIES'); ?> <br>
</h3>
<select id="catList" onchange="window.location = this.value;">
    <?php $plxShow->catList('Accueil', '<option class="#cat_status" value="#cat_url">#cat_name (#art_nb)</option>'."\n"); ?>
</select>
<script type="text/javascript">
    (function(query) {
        var option = document.querySelector(query);
        if(option != null) { option.setAttribute('selected', ''); }
    })('#catList .active');
</script>

Merci
Jol5926

Réponses

  • Bonjour,

    En aveugle (donc pas testé) ta fonction pourrait ressembler à ça :
    [== Indéfini ==]
    function viw_sidebar_func($atts, $content) {
    	extract( shortcode_atts( array(
    		'extra' => 'Accueil'
    	
    	), $atts ) );
    	
    	$plxShow=plxShow::getInstance();
    	ob_start();
    	$plxShow->catList($extra, '<option class="#cat_status" value="#cat_url">#cat_name (#art_nb)</option>'."\n");
    	$scatlist = ob_get_clean();
    	
    	$s='
    	<h3><colorcat class="colorcat">'.$plxShow->getLang('CATEGORIES').'</h3>
    	
    	<select id="catList" onchange="window.location = this.value;">
        '.$scatlist.'
    	</select>
    	<script type="text/javascript">
    		(function(query) {
    			var option = document.querySelector(query);
    			if(option != null) { 
    				option.setAttribute("selected", ""); 
    			}
    		})("#catList .active");
    	</script>
    	
    	';
    	
    	return $s;
    	
    }
    
    add_shortcode('viw_sidebar', 'viw_sidebar_func');
    

    et donc pour l'usage :
    [== Indéfini ==]
    [viw_sidebar]
    

    Je testerais dès que j'ai un moment.

    Cordialement,

    jerome
  • Super !

    ça fonctionne
    Vraiment puissant cette fonction !
    Une rubrique Shortcode serait la bienvenue

    Merci
  • :) J'ai tout fait en aveugle c'est un miracle ! Oui une rubrique shortcode serait bienvenue en effet dans le forum.
  • je-evrard a écrit:
    :) J'ai tout fait en aveugle c'est un miracle ! Oui une rubrique shortcode serait bienvenue en effet dans le forum.

    On arrive à Noël, il faut croire aux miracles :D
  • jol5926jol5926 Member
    décembre 2017 modifié
    Hello,
    J'aimerais intégrer dans une page statique un shortcode pour appeler un plugin (plxcounters de DPFPIC).
    Voilà mon code :
    <?php
    function viw_stats_func($atts, $content) {
     extract( shortcode_atts( array(
    
     ), $atts ) );
    
     $plxShow=plxShow::getInstance();
     return $plxShow->callHook('plxShowcounters');
    
    }
    
    add_shortcode('viw_stats', 'viw_stats_func');
    ?>
    

    Cela ne fonctionne pas, quand je veux accéder à mon site, plus rien ne s'affiche.

    J'ai besoin d'aide !

    Merci
  • Bien le Bonjour,
    après quelques essais, j'ai fini par trouver la solution, ci-dessous le code :
    [== Indéfini ==]
    <?php
    function viw_stats_func($atts, $content) {
     extract( shortcode_atts( array(
    
     ), $atts ) );
    
     $plxShow=plxShow::getInstance();
     
     return ($plxShow->callHook('plxShowCounters'));
    
    }
    
    add_shortcode('viw_stats', 'viw_stats_func');
    ?>
    
    

    Le seul bémol, c'est que sur la partie publique, j'ai bien l'affichage de mon plugin grâce au shortcode mais j'ai aussi ceci ?> qui s'affiche en plus.
    Quelqu'un a une idée pourquoi ?

    Merci
    Jol
  • Voici la solution :)
    [== Indéfini ==]
    function viw_stats_func($atts, $content) {
    	 extract( shortcode_atts( array(
    
    	 ), $atts ) );
    
    	$plxShow=plxShow::getInstance();
    	ob_start();
    	eval($plxShow->callHook('plxShowCounters'));
    	return ob_get_clean();
    }
    
    add_shortcode('viw_stats', 'viw_stats_func');
    

    Avec ça le shotcode [viw_stats] peut etre mis n'importe ou (thème, widget rawhtml....). Il est ou le bonheur il est ou ?

    Plus qu'a faire la même chose pour les autres.

    ++

    jéjé
  • je-evrard a écrit:
    Voici la solution :)
    [== Indéfini ==]
    function viw_stats_func($atts, $content) {
    	 extract( shortcode_atts( array(
    
    	 ), $atts ) );
    
    	$plxShow=plxShow::getInstance();
    	ob_start();
    	eval($plxShow->callHook('plxShowCounters'));
    	return ob_get_clean();
    }
    
    add_shortcode('viw_stats', 'viw_stats_func');
    

    Avec ça le shotcode [viw_stats] peut etre mis n'importe ou (thème, widget rawhtml....). Il est ou le bonheur il est ou ?

    Plus qu'a faire la même chose pour les autres.

    ++

    jéjé

    Super jéjé !
    ça fonctionne !

    que du bonheur !

    Merci

    Jol
  • jol5926jol5926 Member
    décembre 2017 modifié
    Hello JéJé,
    Je reviens vers toi pour un shortcode, j'ai réussi à en créer 3 mais je bute sur celui-là.
    Shortcode pour afficher le flux rss des article et commentaires, ci-dessous le code du shortcode à créer.
    Je suis que c'est simple pour toi.
    [== Indéfini ==]
    <a href="<?php $plxShow->urlRewrite('feed.php?rss/commentaires'); ?>" title="<?php $plxShow->lang('COMMENTS_RSS_FEEDS') ?>"><?php $plxShow->lang('COMMENTS'); ?></a>
    

    Merci
    Jol
  • Hello,

    En aveugle (attention on gagne pas à chaque fois), un truc comme ça
    [== Indéfini ==]
    function viw_linkfeed_func($atts, $content) {
    	 extract( shortcode_atts( array(
    
    	 ), $atts ) );
    
    	$plxShow=plxShow::getInstance();
    	ob_start();
    	$plxShow->urlRewrite('feed.php?rss/commentaires');
    	$link = ob_get_clean();
    	return '<a href="'.$link.'" title="'.$plxShow->getLang('COMMENTS_RSS_FEEDS').'">'.$plxShow->getLang('COMMENTS').'</a>';
    }
    
    add_shortcode('viw_linkfeed', 'viw_linkfeed_func');
    

    et pour afficher donc :
    [== Indéfini ==]
    [viw_linkfeed]
    

    ++

    jéjé
  • Eh ! JéJé !

    Trop fort
    Encore gagné !
    Merci

    Jol
    :D
  • Héhé Jamais deux sans trois :)
  • jol5926jol5926 Member
    mars 2018 modifié
    Hello,

    J'ai créé le shortcode ci-dessous pour récupérer les fichiers pdf d'un répertoire.
    Celui-ci fonctionne parfaitement sauf quand j'essaye de mettre une variable pour $dir à la place du chemin du répertoire, les fichiers pdf s'affiche mais le lien ne fonctionne pas et les données concernant la taille et la date sont à zéro.

    Comme j'utilise ce shortcode à plusieurs endroits pour récupérer des fichiers dans différents répertoires, j'aurai aimer paramétrer ce shortcode avec une variable pour $dir.

    Est-ce que quelqu'un peut m'aider ?

    Merci

    shortcode qui fonctionne :
    [== Indéfini ==]
    /*[== shortcode récupérer fichiers pdf d'un répertoire à visionner -- tutoriels ==]*/
        function viw_viewpdf_tutoriels_func($atts, $content) {
            extract( shortcode_atts( array(
       
        
        ), $atts ) );    
    ob_start();
            
        /*paramétrage de la fonction*/
           
         
    global $plxMotor;
    # Nom du sous-dossier contenant les fichiers à télécharger dans /data/medias/
    $dir = '/documents/tutoriels/';
    # Récupération et affichage de la liste des fichiers sous forme de liste
    $glob = plxGlob::getInstance(PLX_ROOT.$plxMotor->aConf['medias'].$dir);
    if ($files = $glob->query('/[a-zA-Z0-9-_-]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv|rtf|doc|txt)$/')) {
        sort($files);
        echo '<ul class="downloads">';
        foreach($files as $filename) {
            $fsize = plxUtils::formatFilesize(filesize(PLX_ROOT.$plxMotor->aConf['medias'].$dir.$filename));
            $root = PLX_ROOT.$plxMotor->aConf['medias'].$dir;
            $time = date('Y-m-d', filemtime($root.$filename));
            echo '<li><a href="'.$plxMotor->urlRewrite('?download/'.plxEncrypt::encryptId($dir.$filename)).'">'.$filename.'</a> - <font size="2px"> ('.$fsize.') - updated : '.$time.'</font></li>';
        }
        echo '</ul>';
    }
    else echo "Aucun document";
           
        /* fin du paramétrage de la fonction */
            
            return ob_get_clean();
        }
    add_shortcode('viw_viewpdf_tutoriels', 'viw_viewpdf_tutoriels_func');
    

    shortcode modifié avec variable pour $dir, ce que j'essaye de faire et qui ne fonctionne pas :
    [== Indéfini ==]
    /*[== shortcode récupérer fichiers pdf d'un répertoire à visionner -- tutoriels ==]*/
    
        function viw_viewpdf_tutoriels_func($atts, $content) {
            extract( shortcode_atts( array(
       
    	
         $file_name => '' // ajout de la variable
    
    	), $atts ) );	
    ob_start();
    		
    	/*paramétrage de la fonction*/
           
          
    
    global $plxMotor;
    # Nom du sous-dossier contenant les fichiers à télécharger dans /data/medias/
    
    $dir = $file_name; // variable ajoutée
    
    # Récupération et affichage de la liste des fichiers sous forme de liste
    $glob = plxGlob::getInstance(PLX_ROOT.$plxMotor->aConf['medias'].$dir);
    if ($files = $glob->query('/[a-zA-Z0-9-_-]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv|rtf|doc|txt)$/')) {
        sort($files);
        echo '<ul class="downloads">';
        foreach($files as $filename) {
            $fsize = plxUtils::formatFilesize(filesize(PLX_ROOT.$plxMotor->aConf['medias'].$dir.$filename));
            $root = PLX_ROOT.$plxMotor->aConf['medias'].$dir;
            $time = date('Y-m-d', filemtime($root.$filename));
            echo '<li><a href="'.$plxMotor->urlRewrite('?download/'.plxEncrypt::encryptId($dir.$filename)).'">'.$filename.'</a> - <font size="2px"> ('.$fsize.') - updated : '.$time.'</font></li>';
        }
        echo '</ul>';
    }
    else echo "Aucun document";
    
           
    	/* fin du paramétrage de la fonction */
    		
    		return ob_get_clean();
        }
    
    add_shortcode('viw_viewpdf_tutoriels', 'viw_viewpdf_tutoriels_func');
    
  • jol5926jol5926 Member
    mars 2018 modifié
    Hello,

    Afin que ma demande ne tombe pas dans l'oubli 8.(
    Post ci-dessus #16 : http://forum.pluxml.org/viewtopic.php?pid=56652#p56652
  • jol5926jol5926 Member
    jol5926 a écrit:
    Hello,

    Afin que ma demande ne tombe pas dans l'oubli 8.(
    Post ci-dessus #16 : http://forum.pluxml.org/viewtopic.php?pid=56652#p56652

    Pas de réponse !!
    :|
  • jol5926jol5926 Member
    Hello Jéjé,
    Sur tu es dans le coin, j'ai besoin de ton aide.
    J'utilise le plugin que Bazooka07 vient de créer, il permet le téléchargement de fichiers situés dans un répertoire en cryptant les liens de téléchargment.
    J'ai essayé de créer un shortcode mais sans succès.
    J'ai besoin de ton aide.
    Quand on veut visualiser le contenu du répertoire à télécharger, on utilise la fonction suivante :

    <div class="ma-class" data-download="nom-du-repertoire-fichiers-à-telecharger">Emplacement du tableau</div>

    Comment créer le shortcode ?

    Merci
Connectez-vous ou Inscrivez-vous pour répondre.