BP Code Snippets 2.0 : finally #BuddyPress 1.5+ ready!

Je suis tr√®s heureux de vous annoncer la mise en ligne de la version 2.0 de BP Code Snippets. Et comme le titre l’indique cette version est enfin compatible avec BuddyPress 1.5+. Je dirais m√™me plus, elle ne s’ex√©cute que sous BuddyPress 1.5+ !!

Pour tous les utilisateurs de l’ancienne version : je vous invite √† lire les informations d’upgrade que j’ai √©crite en anglais, car certains d’entre vous ne sont pas fran√ßais ūüėČ

Ce plugin est tr√®s particulier pour moi : c’est le premier que j’ai d√©pos√© dans le WordPress repository. Aussi, j’ai souhait√© partager avec vous cette vid√©o (un show imaginaire anim√© par +batrieg ūüôā ) que @prestagogo a eu la gentillesse de concevoir. J’y pr√©sente le plugin, ses principales nouveaut√©s et je reviens sur mon exploration de WordPress et BuddyPress.. Un petit bilan en quelque sorte !

Quoi de neuf dans la v2 ?

Comme je l’explique dans la vid√©o, il y a les nouveaut√©s visibles et les autres ! Donc pour se r√©sumer : cette version optimise l’int√©gration de BP Code Snippets dans BuddyPress 1.5+, ajoute la possibilit√© de partager plus rapidement des snippets gr√Ęce √† son interface avec BP Bookmarklet, permet aux utilisateurs de mettre des snippets en favoris et √† tous les utilisateurs de r√©cup√©rer un code embed du snippet. Voici une d√©mo de ces diff√©rentes nouveaut√©s.

Pour la partie immerg√©e de l’iceberg, en voici quelques autres…

screen notifications en cas de commentaire sur un snippet

La pr√©c√©dente version ne permettait pas forc√©ment de bien suivre les commentaires apport√©s aux snippets d√©pos√©s. D√©sormais, l’auteur du Snippet recevra une screen notification et une notification email contenant le contenu du commentaire.

En cas d’installation Multisite, le blog enfant a le choix!

Auparavant, lorsque BP Code Snippets √©tait activ√© sur les articles de blog. Tous les blogs d’un r√©seau h√©ritaient de ce comportement sans avoir donn√© leur accord ! D√©sormais, dans le cas d’une installation multisite, √† c√īt√© de Code Snippets Manager qui est accessible depuis le network admin, chaque blog enfant aura sa ¬ę¬†Snippets Option¬†¬Ľ disponible depuis les r√©glages du blog.

Je me suis aussi amus√© √† tirer profit des screenshots qu’on ajoute au repository pour illustrer son plugin et qui sont rapatri√©s dans le r√©pertoire du plugin lorsqu’on l’installe. Ainsi depuis l’aide contextuelle, il sera possible d’ouvrir une fen√™tre modale qui lancera le screenshot illustrant l’aide.

J’ai √©galement am√©lior√© la gestion de l’enregistrement des activit√©s en me souciant de les effacer si toutefois le snippet √©tait supprim√©, √©vitant ainsi d’√©ventuelles 404.

Enfin, et ce sera ma transition vers le chapitre suivant, j’ai truff√© le plugin de hooks que vous pourrez intercepter pour customiser son comportement et l’adapter au plus proche de vos besoins

Personnaliser BP Code Snippets

Je vous propose ici quelques snippets pour vous permettre de personnaliser encore plus le plugin. Tous ces morceaux de codes sont réunis dans le functions.php de ce thème enfant de BuddyPress.

Ajouter de nouveaux champs au formulaire de d√©p√īt de snippets

Un BP Code Snippets meta !! – formulaire
<?php
/* saving bp_code_snippets_meta */
function imath_handle_custom_field_submit( $snippet_id ) {     
   $snippet_custom_field = wp_kses( $_POST['imath_custom_field'], array() );
     
   bp_code_snippets_update_meta( $snippet_id, 'my_meta', $snippet_custom_field );
}
add_action( 'bp_code_snippets_published_snippet', 'imath_handle_custom_field_submit', 10, 5 );

/**
 * Add custom field to the snippet form
 */
 function imath_add_custom_field() {
    if ( bp_code_snippets_is_edit_snippet() ) {
       $snippet_custom_field = bp_code_snippets_get_meta( bp_get_snippet_id(), 'my_meta' ) ;
       $snippet_custom_field = wp_kses( $snippet_custom_field, array());
    }
    ?>
    <label>My Meta : an external url for this snippet ?</label>
    <input type="text" name="imath_custom_field" id="imath_custom_field" value="<?php echo $snippet_custom_field;?>">
    <?php
}
// If new template
add_action( 'snippets_new_snippet_after', 'imath_add_custom_field' );
// If edit template add_action( 'snippets_edit_snippet_after', 'imath_add_custom_field' );
Un BP Code Snippets meta !! – display ūüėČ
/**
 * Display custom field value. 
 * You can also use these hooks instead 
 * bp_before_purpose_snippets
 * bp_after_purpose_snippets
 */
function imath_display_custom_field() {
    $snippet_custom_field = bp_code_snippets_get_meta( bp_get_snippet_id(), $meta_key = 'my_meta' ) ;
    if( $snippet_custom_field ) {
       echo '<p class="my_meta">First seen on <a href="' . $snippet_custom_field . '">' . $snippet_custom_field .'</a></p>';
    }
}
add_action( 'bp_after_content_snippets', 'imath_display_custom_field' );

Ajouter un bouton Twitter aux meta buttons

Un bouton twitter pour partager vos snippets ūüėČ
/**
 * Add meta buttons example > Twitter
 */ 
function imath_twitter_button() {
    $twitter_account = 'yourtwitteraccountwithout@';
    ?>
    <a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-via="<?php echo $twitter_account; ?>" data-url="<?php bp_snippet_permasnpt();?>" data-text="<?php bp_snippet_title();?>" data-lang="fr">Tweet</a>
    <script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
    <?php
}
add_action('bp_code_snippets_other_meta_buttons', 'imath_twitter_button');

Personnaliser le branding dans les iframes des embed snippets

mon avatar et un message perso au lieu du logo et du lien par défaut
function imath_custom_brand($href, $class) {
       $href = get_bloginfo('siteurl');
       $name = get_bloginfo('name');

       return '<span class="default-brand"><img src="'.get_stylesheet_directory_uri() .'/images/imath.jpg"><a href="'.$href.'" class="'.$class.'" target="top">Click to discover more snippets on '.$name.' !</a></span>';
}
add_filter( 'bp_code_snippets_add_brand', 'imath_custom_brand', 2, 2 );

Une petite astuce pour conclure..

Comme vous avez pu le voir, BP Code Snippets propose de r√©cup√©rer un iframe pour afficher un snippet directement dans un autre site ou blog… Or si on colle un iframe dans WordPress tel quel.. √ßa donne pas grand chose car cette balise n’est pas autoris√©e. Ci-apr√®s vous trouverez une astuce (√† utiliser dans un functions.php par exemple) pour pouvoir directement ajouter les snippets dans un blog WordPress n’ayant rien √† voir avec le site sur lequel est install√© BP Code Snippets. A manier avec pr√©cautions ūüėČ

<?php
function embed_snippets_shortcode_handler( $atts, $content ) {
    global $post, $bp;

    extract( shortcode_atts( array( 'url' => false, 'width'=>'100%', 'height' => '100px'), $atts ) );

    if( $url ) {
       return '<iframe src="'.$url.'" frameborder="0" width="'.$width.'" height="'.$height.'"></iframe>';
    } elseif ( ! $url && $content) {
       return $content;
    }
}

function embed_snippets_run_shortcode( $content ) {
   global $shortcode_tags;

   /**
    * many thanks to Viper007Bond for this trick
    * http://www.viper007bond.com/2009/11/22/wordpress-code-earlier-shortcodes/
    */
    // Backup current registered shortcodes and clear them all out
    $orig_shortcode_tags = $shortcode_tags;
    remove_all_shortcodes();
    add_shortcode( 'embedsnippet', 'embed_snippets_shortcode_handler' );

    // Do the shortcode (only the one above is registered)
    $content = do_shortcode( $content );

    // Put the original shortcodes back
    $shortcode_tags = $orig_shortcode_tags;
    return $content;
}
add_filter( 'the_content', 'embed_snippets_run_shortcode', 7 );

Upgrade information

Important : you’ll need to upgrade to BuddyPress 1.5 before upgrading BP Code Snippets to version 2.0. Once BuddyPress is upgraded, make sure to back up all your config (database and files) before attempting to upgrade BP Code Snippets to version 2.0.
If you upgraded to BP Code Snippets 2.0 and want to roll back to 1.3.3, make sure not to use the delete button of the plugin administration. Instead delete manually the files and paste those of previous version.

8 commentaires sur “BP Code Snippets 2.0 : finally #BuddyPress 1.5+ ready!

  1. Haha g√©nial l’interview, m√™me peu t√©l√©charg√©, tes plugins sont super utiles, merci!

    Je me consid√®re moi aussi comme un bricoleur lol ūüôā

  2. Bonjour,

    J’adore le plugin et je souhaiterais l’utiliser avec le theme Buddyboss. Cependant, les blocs sont comme ¬ę¬†cass√©s¬†¬Ľ. Si vous acceptez de r√©soudre mon probl√®me, je pourrais vous envoyer la traduction en espagnol en √©change?
    Merci d’avance

    María

    1. Bonjour Maria,

      la seule difficult√© est que je ne dispose pas de ce th√®me et que c’est un th√®me payant.. Mais pourquoi pas.. BuddyBoss est-il compatible BuddyPress 1.5+ ?

  3. Hello,

    I wanted to extract all the snippets I entered already using bp-code-snippets, I went to phpmyadmin but surprisingly all the codes were containing magic quotes, so there is no way for me to extract raw text of my snippets.

    Any idea on how to solve that, I want to get a csv or excel of all my snippets

    Thanks

Les commentaires sont fermés.