Archivi per la categoria ‘Buddypress’
Problema plugin BP-events con Buddypress 1.0
Ultimamente mi sto divertendo molto (per lavoro
) con la creazione di Community che utilizzano quanto di meglio l’open source riesce a fare in questo campo, ovvero WordPress MU, Buddypress e una serie di plugin per Buddypress. Ma essendo la mia community un po’ particolare, perchè integra alcune funzioni/informazioni che derivano da un altro portale, ho dovuto combattere un po’ con alcuni plugin che non avevano la compatibilità con la versione 1.0 di buddypress, che è quella che io uso attualmente. Avendo modificato in una decina di punti il “core” di buddypress, rimando l’aggiornamento quanto più possibile…Non me ne abbiano i puristi di wordpress e buddypress, che mi diranno “perchè non hai scritto un plugin….”. Lo farò adesso non ho tempo. Così ho preso il plugin bp-events che consente ai membri del social, di inserire un evento e vederlo pubblicizzato nella home, tramite un widget, e nell’apposita sezione dedicata agli eventi. Nella doc del plugin avevo letto “require bp 1.0.1″, ma io essendo uno smanettone volevo comunque farlo funzionare lo stesso. Così l’ho intallato e funzionava quasi tutto tranne che quando andavo a cliccare sul nome dell’evento per visualizzarlo, mi compariva l’orribile messaggio “Non hai installato alcun tema su Buddypress, Copia dal….bla bla “. SGOMENTO !!!
Allora ho deciso che dovevo indagare e ho cominciato a spulciare il file bp_events.php, quello principale che sta sulla root di plugin e guardavo quali filtri avrebbero potuto influire sul fatto che il permalink dell’evento non avesse un tema associato. Per farla breve scopro due funzioni su questo file che fanno proprio questo mestiere, cioè forzano il template member al posto di quello Home quando si clicca sul nome dell’evento. Le funzioni sono :
1) function events_force_buddypress_theme( $template )Â
2) function events_force_buddypress_stylesheet( $stylesheet )
Dentro noto questo pezzo di codice:
 if ( $bp->is_single_item ) {
     add_filter( ‘theme_root’, ‘bp_core_filter_buddypress_theme_root’ );
    add_filter( ‘theme_root_uri’, ‘bp_core_filter_buddypress_theme_root_uri’ );
    return $member_theme;
}
Faccio una piccola indagine e scopro che le due funzioni indicate nella chiamata add_filter() cioè ‘bp_core_filter_buddypress_theme_root’ e ‘bp_core_filter_buddypress_theme_root_uri’ non esistono sulla versione 1.0 di buddypress. Un po’ di giri su Google (santo Google) e scopro che nella versione 1.0 di buddypress le funzioni hanno nome diverso. Allora sostituisco il pezzo di codice sopra conÂ
 if ( $bp->is_single_item ) {
  add_filter( ‘theme_root’, ‘bp_core_set_member_theme_root’ );
  add_filter( ‘theme_root_uri’, ‘bp_core_set_member_theme_root_uri’ );
  return $member_theme;
}
e tutto funziona. Indago ancora un po’ e scopro che nel forum del plugin c’era pure scritto ma difficile da trovare perchè non così chiaro.
Spero a qualcuno torni utile questo piccolo intervento.
A proposito se volete dare un occhio alla community che sto creando http://www.arounditaly-it.com

